JeDay 0 23 декабря, 2010 Опубликовано 23 декабря, 2010 · Жалоба Добрый день коллеги. Имеется плата SK-AT91SAM9XE512-S3E, собраное ядро Linux. Buildroot собирался на базе конфига с сайта: http://dmilvdv.narod.ru/AT91SAM9260/index.html Конфиг busybox по умолчанию, версия 1.17.4. После загрузки выводится приглашение Welcome to Buildroot buildroot login: после ввода root получаю символ "#", казалось бы можно вводить команды, но банальная LS не работает. После нажатия ENTER получаю новый символ решетки.. Думал что с busybox проблемы, но ведь init то отрабатывает нормально... Ниже инфа по busybox: # busybox BusyBox v1.17.4 (2010-12-23 12:24:48 MSK) multi-call binary. Copyright (C) 1998-2009 Erik Andersen, Rob Landley, Denys Vlasenko and others. Licensed under GPLv2. See source distribution for full notice. age: busybox [function] [arguments]... or: function [arguments]... BusyBox is a multi-call binary that combines many common Unix utilities into a single executable. Most people will create a link to busybox for each function they wish to use and BusyBox will act like whatever it was invoked as. Currently defined functions: [, [[, addgroup, adduser, ar, arping, ash, awk, basename, bunzip2, bzcat, cat, catv, chattr, chgrp, chmod, chown, chroot, chrt, chvt, cksum, clear, cmp, cp, cpio, crond, crontab, cut, date, dc, dd, deallocvt, delgroup, deluser, devmem, df, diff, dirname, dmesg, dnsd, dnsdomainname, dos2unix, du, dumpkmap, echo, egrep, eject, env, ether-wake, expr, false, fdflush, fdformat, fgrep, find, fold, free, freeramdisk, fsck, fuser, getopt, getty, grep, gunzip, gzip, halt, hdparm, head, hexdump, hostid, hostname, hwclock, id, ifconfig, ifdown, ifup, inetd, init, insmod, install, ip, ipaddr, ipcrm, ipcs, iplink, iproute, iprule, iptunnel, kill, killall, killall5, klogd, last, length, less, linux32, linux64, linuxrc, ln, loadfont, loadkmap, logger, login, logname, losetup, ls, lsattr, lsmod, lspci, lsusb, lzcat, lzma, makedevs, md5sum, mdev, mesg, microcom, mkdir, mkfifo, mknod, mkswap, mktemp, modprobe, more, mount, mountpoint, mt, mv, nameif, netstat, nice, nohup, nslookup, od, openvt, passwd, patch, pidof, ping, pipe_progress, pivot_root, poweroff, printenv, printf, ps, pwd, rdate, readlink, readprofile, realpath, reboot, renice, reset, resize, rm, rmdir, rmmod, route, run-parts, runlevel, sed, seq, setarch, setconsole, setkeycodes, setlogcons, setsid, sh, sha1sum, sha256sum, sha512sum, sleep, sort, start-stop-daemon, strings, stty, su, sulogin, swapoff, swapon, switch_root, sync, sysctl, syslogd, tail, tar, tee, telnet, test, tftp, time, top, touch, tr, traceroute, true, tty, udhcpc, umount, uname, uniq, unix2dos, unlzma, unxz, unzip, uptime, usleep, uudecode, uuencode, vconfig, vi, vlock, watch, watchdog, wc, wget, which, who, whoami, xargs, xz, xzcat, yes, zcat И еще вопрос. После первой прошивки rootfs.jffs2 в NAND первый запуск проходит без ошибок. А после первой хардварной перезагрузки, появляются дефекты файловой системы. Выводится следующее: Empty flash at 0x01227854 ends at 0x01228000 Empty flash at 0x01230804 ends at 0x01231000 VFS: Mounted root (jffs2 filesystem) on device 31:0. Freeing init memory: 124K ... ... JFFS2 notice: (360) check_node_data: wrong data CRC in data node at 0x012307b8: read 0x186b259f, calculated 0xef3d92a5. ... Welcome to Buildroot buildroot login: Подскажите плиз как решить первую и вторую проблемы. По поводу дефекта ФС. Исправит ли ситуацию переход на YAFFS2? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dch 0 23 декабря, 2010 Опубликовано 23 декабря, 2010 · Жалоба после ввода root получаю символ "#", казалось бы можно вводить команды, но банальная LS не работает. Она у Вас есть, те когда Вы собираете образ файловой системы, должен формироваться каталог где у Вас эти командочки лежат, из которого собирается образ, который Вы прошиваете в флэш, ls --help пробовали? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
JeDay 0 23 декабря, 2010 Опубликовано 23 декабря, 2010 · Жалоба Да они формируются как симлинки на бизибокс. Вот что хелп выдает: # ls --help BusyBox v1.17.4 (2010-12-23 12:24:48 MSK) multi-call binary. Usage: ls [-1AacCdeFilnpLRrSsTtuvwxXhk] [FILE]... List directory contents Options: -1 List in a single column -A Don't list . and .. -a Don't hide entries starting with . -C List by columns -c With -l: sort by ctime --color[={always,never,auto}] Control coloring -d List directory entries instead of contents -e List full date and time -F Append indicator (one of */=@|) to entries -i List inode numbers -l Long listing format -n List numeric UIDs and GIDs instead of names -p Append indicator (one of /=@|) to entries -L List entries pointed to by symlinks -R Recurse -r Sort in reverse order -S Sort by file size -s List the size of each file, in blocks -T N Assume tabstop every N columns -t With -l: sort by modification time -u With -l: sort by access time -v Sort by version -w N Assume the terminal is N columns wide -x List by lines -X Sort by extension -h List sizes in human readable format (1K 243M 2G) # ls -l total 0 # Т.е. вроди как все хорошо, только ниодного файла не выводится. Вот почему LS не видит файлов меня и смущает :05: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
S_agent 0 23 декабря, 2010 Опубликовано 23 декабря, 2010 · Жалоба # ls -l total 0 # Т.е. вроди как все хорошо, только ниодного файла не выводится. Вот почему LS не видит файлов меня и смущает :05: А Вы на всяк случай попробуйте ls / или ls /bin а то вдруг Вы случайно в /root заскочили,- а там пусто ;) а по второй проблеме - делайте readonly rootfs рамдиском/инитрамфс, темп/лог итд каталоги монтируйте как tmpfs, а конфиги подключайте как mtd раздел с jffs2 и тогда не будет у Вас проблем с некоректным выключением железки без предупреждения :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
JeDay 0 24 декабря, 2010 Опубликовано 24 декабря, 2010 · Жалоба а то вдруг Вы случайно в /root заскочили,- а там пусто wink.gif Действительно был в пустой директории. Я ожидал что по умолчанию в корневой раздел попаду. :yeah: а по второй проблеме - делайте readonly rootfs рамдиском/инитрамфс, темп/лог итд каталоги монтируйте как tmpfs, а конфиги подключайте как mtd раздел с jffs2 и тогда не будет у Вас проблем с некоректным выключением железки без предупреждения sm.gif Спасибо буду курить доки как это сделать. А если я допустим создам раздел по указанному выше рецепту... после аварийного выключения питания как я понимаю все равно будут ошибки только в пользовательских файлах или логах? Еще в догонку хотел спросить. После компиляции Buildroot (тулчейн и ФС) как правильно удалять сборку корневухи не удаляя при этом скомпиленные объектники? make clean удалит все полностью.. Я попробовал грохнуть содержимое директорий /output/target и /output/images после чего у меня make вываливается с ошибкой. Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
S_agent 0 24 декабря, 2010 Опубликовано 24 декабря, 2010 · Жалоба А если я допустим создам раздел по указанному выше рецепту... после аварийного выключения питания как я понимаю все равно будут ошибки только в пользовательских файлах или логах? да, именно так, и еще гляньте на cramfs , эт тоже вариант Еще в догонку хотел спросить. После компиляции Buildroot (тулчейн и ФС) как правильно удалять сборку корневухи не удаляя при этом скомпиленные объектники? make clean удалит все полностью.. Я попробовал грохнуть содержимое директорий /output/target и /output/images после чего у меня make вываливается с ошибкой. Спасибо. просто удалите output/build/ или make proftpd-clean для клина и деинсталяции конкретного пакета Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
JeDay 0 26 декабря, 2010 Опубликовано 26 декабря, 2010 · Жалоба просто удалите output/build/ или make proftpd-clean для клина и деинсталяции конкретного пакета Если я не удалю раздел /output/target, то по идее в новый образ rootfs.jffs2 попадут пакеты с предыдущего когфига, которые в новом я мог исключить. Пробовал удалить все каталоги в output кроме toolchain, после чего у меня Buildroot перестал собираться.. Как правильно "очищать" Buildroot чтобы не перекомпилировать toolchain каждый раз и по возможности пакеты с предыдущей сборки? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
~phase 0 27 декабря, 2010 Опубликовано 27 декабря, 2010 · Жалоба сколько не боролся с такой проблемой к сожалению, только через make clean + make menuconfig + make busybox-menuconfig + make, так собирает все правильно. если другие манипуляции проводить, то или криво собирает или не выкидывает пакеты с проэкта =( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
S_agent 0 27 декабря, 2010 Опубликовано 27 декабря, 2010 · Жалоба еще можно попробовать удалить output/build/.root & /output/target , сделать для каждого пакета клин и пускать сборку, возможно первых пару раз она заругается, но должно с третьего собраться ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
faa 4 27 декабря, 2010 Опубликовано 27 декабря, 2010 · Жалоба Как правильно "очищать" Buildroot чтобы не перекомпилировать toolchain каждый раз и по возможности пакеты с предыдущей сборки? ЕМНИП, make clean Можно еще сказать make distclean. Но тогда надо забекапить все закачанные при сборке исходники (а то будет качать по новой, если не найдет), почистить, а потом их снова подложить. А toolchain собрать один раз, положить сбоку. И казать buildroot, что будем пользовать внешний toolchain. Ну и посмотреть на сами скрипты buildroot-а на предмет их правильности, особенно где clean и distclean - там тоже косяки могут быть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
S_agent 0 27 декабря, 2010 Опубликовано 27 декабря, 2010 · Жалоба ЕМНИП, make clean Можно еще сказать make distclean. Но тогда надо забекапить все закачанные при сборке исходники (а то будет качать по новой, если не найдет), почистить, а потом их снова подложить. А toolchain собрать один раз, положить сбоку. И казать buildroot, что будем пользовать внешний toolchain. Ну и посмотреть на сами скрипты buildroot-а на предмет их правильности, особенно где clean и distclean - там тоже косяки могут быть. действительно, екстернал это как вариант, но его нужно совсем сбоку:) положить дабы не потереть при клине а еще можно глянуть в сторону http://old.nabble.com/new-way-to-rebuld-ju...td30195561.html там правда более поздний буилдрут используется, но идею можно захватить Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
JeDay 0 27 декабря, 2010 Опубликовано 27 декабря, 2010 · Жалоба Кстати хорошая идея его родной тулчейн положить отдельно и указать как внешний. Пробовал в качестве внешнего указывать crosstoll-NG, которым пользуюсь для сборки ядра. Но в нем по умолчанию конфиг для uclibc неполный и некоторые компоненты с Buildroot не собираются:( сколько не боролся с такой проблемой к сожалению, только через make clean + make menuconfig + make busybox-menuconfig + make, так собирает все правильно. если другие манипуляции проводить, то или криво собирает или не выкидывает пакеты с проэкта =( Это правда. В файле TODO так и написано, что в будущем есть план сделать слежение за пакетами которые уже в /target лежат и выкидывать ненужные, но пока это не работает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
S_agent 0 27 декабря, 2010 Опубликовано 27 декабря, 2010 · Жалоба да, еще можете собрать openwrt, у него после сборки можно найти SDK, в котором есть тулчейн и библы и его можно подключить в билдрут как экстернал, или использовать родную сборку рута от опенврт при нужности со своими правками Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
~phase 0 30 декабря, 2010 Опубликовано 30 декабря, 2010 · Жалоба да, еще можете собрать openwrt, у него после сборки можно найти SDK, в котором есть тулчейн и библы и его можно подключить в билдрут как экстернал, или использовать родную сборку рута от опенврт при нужности со своими правками При пересборке некоторых пакетов иногда нужно пересобирать тулчейн. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 11 11 января, 2011 Опубликовано 11 января, 2011 · Жалоба При пересборке некоторых пакетов иногда нужно пересобирать тулчейн. Интересно - зачем :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться