реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Linux + Buildroot, Проблемы с файловой системой
JeDay
сообщение Dec 23 2010, 10:51
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 276
Регистрация: 22-09-05
Из: Kiev
Пользователь №: 8 818



Добрый день коллеги.
Имеется плата 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?
Go to the top of the page
 
+Quote Post
dch
сообщение Dec 23 2010, 11:44
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 179
Регистрация: 15-09-04
Из: 141070 г. Королев МО, улица Горького 39-121
Пользователь №: 661



Цитата(JeDay @ Dec 23 2010, 16:51) *
после ввода root получаю символ "#", казалось бы можно вводить команды, но банальная LS не работает.

Она у Вас есть, те когда Вы собираете образ файловой системы, должен формироваться каталог где у Вас
эти командочки лежат, из которого собирается образ, который Вы прошиваете в флэш, ls --help пробовали?
Go to the top of the page
 
+Quote Post
JeDay
сообщение Dec 23 2010, 11:55
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 276
Регистрация: 22-09-05
Из: Kiev
Пользователь №: 8 818



Да они формируются как симлинки на бизибокс.
Вот что хелп выдает:
Код
# 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.gif
Go to the top of the page
 
+Quote Post
S_agent
сообщение Dec 23 2010, 12:32
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 208
Регистрация: 6-10-05
Из: Ukraine, Kiev
Пользователь №: 9 300



Цитата(JeDay @ Dec 23 2010, 16:55) *
Код
# ls -l
total 0
#


Т.е. вроди как все хорошо, только ниодного файла не выводится. Вот почему LS не видит файлов меня и смущает 05.gif


А Вы на всяк случай попробуйте
Код
ls /

или
Код
ls /bin

а то вдруг Вы случайно в /root заскочили,- а там пусто wink.gif

а по второй проблеме - делайте readonly rootfs рамдиском/инитрамфс, темп/лог итд каталоги монтируйте как tmpfs, а конфиги подключайте как mtd раздел с jffs2
и тогда не будет у Вас проблем с некоректным выключением железки без предупреждения sm.gif
Go to the top of the page
 
+Quote Post
JeDay
сообщение Dec 24 2010, 07:28
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 276
Регистрация: 22-09-05
Из: Kiev
Пользователь №: 8 818



Цитата
а то вдруг Вы случайно в /root заскочили,- а там пусто wink.gif

Действительно был в пустой директории. Я ожидал что по умолчанию в корневой раздел попаду. yeah.gif

Цитата
а по второй проблеме - делайте readonly rootfs рамдиском/инитрамфс, темп/лог итд каталоги монтируйте как tmpfs, а конфиги подключайте как mtd раздел с jffs2
и тогда не будет у Вас проблем с некоректным выключением железки без предупреждения sm.gif

Спасибо буду курить доки как это сделать.
А если я допустим создам раздел по указанному выше рецепту... после аварийного выключения питания как я понимаю все равно будут ошибки только в пользовательских файлах или логах?

Еще в догонку хотел спросить. После компиляции Buildroot (тулчейн и ФС) как правильно удалять сборку корневухи не удаляя при этом скомпиленные объектники?
make clean удалит все полностью..
Я попробовал грохнуть содержимое директорий /output/target и /output/images после чего у меня make вываливается с ошибкой.

Спасибо.
Go to the top of the page
 
+Quote Post
S_agent
сообщение Dec 24 2010, 12:43
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 208
Регистрация: 6-10-05
Из: Ukraine, Kiev
Пользователь №: 9 300



Цитата(JeDay @ Dec 24 2010, 12:28) *
А если я допустим создам раздел по указанному выше рецепту... после аварийного выключения питания как я понимаю все равно будут ошибки только в пользовательских файлах или логах?

да, именно так, и еще гляньте на cramfs , эт тоже вариант
Цитата
Еще в догонку хотел спросить. После компиляции Buildroot (тулчейн и ФС) как правильно удалять сборку корневухи не удаляя при этом скомпиленные объектники?
make clean удалит все полностью..
Я попробовал грохнуть содержимое директорий /output/target и /output/images после чего у меня make вываливается с ошибкой.
Спасибо.

просто удалите output/build/
или make proftpd-clean для клина и деинсталяции конкретного пакета
Go to the top of the page
 
+Quote Post
JeDay
сообщение Dec 26 2010, 08:03
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 276
Регистрация: 22-09-05
Из: Kiev
Пользователь №: 8 818



Цитата
просто удалите output/build/
или make proftpd-clean для клина и деинсталяции конкретного пакета

Если я не удалю раздел /output/target, то по идее в новый образ rootfs.jffs2 попадут пакеты с предыдущего когфига, которые в новом я мог исключить.
Пробовал удалить все каталоги в output кроме toolchain, после чего у меня Buildroot перестал собираться..

Как правильно "очищать" Buildroot чтобы не перекомпилировать toolchain каждый раз и по возможности пакеты с предыдущей сборки?
Go to the top of the page
 
+Quote Post
~phase
сообщение Dec 27 2010, 06:22
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 24-06-07
Из: ukraine
Пользователь №: 28 658



сколько не боролся с такой проблемой к сожалению, только через make clean + make menuconfig + make busybox-menuconfig + make, так собирает все правильно. если другие манипуляции проводить, то или криво собирает или не выкидывает пакеты с проэкта =(
Go to the top of the page
 
+Quote Post
S_agent
сообщение Dec 27 2010, 06:55
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 208
Регистрация: 6-10-05
Из: Ukraine, Kiev
Пользователь №: 9 300



еще можно попробовать удалить output/build/.root & /output/target , сделать для каждого пакета клин и пускать сборку,
возможно первых пару раз она заругается, но должно с третьего собраться wink.gif
Go to the top of the page
 
+Quote Post
faa
сообщение Dec 27 2010, 08:22
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 726
Регистрация: 14-09-06
Из: Москва
Пользователь №: 20 394



Цитата(JeDay @ Dec 26 2010, 14:03) *
Как правильно "очищать" Buildroot чтобы не перекомпилировать toolchain каждый раз и по возможности пакеты с предыдущей сборки?


ЕМНИП, make clean
Можно еще сказать make distclean. Но тогда надо забекапить все закачанные при сборке исходники (а то будет качать по новой, если не найдет), почистить, а потом их снова подложить.
А toolchain собрать один раз, положить сбоку. И казать buildroot, что будем пользовать внешний toolchain.
Ну и посмотреть на сами скрипты buildroot-а на предмет их правильности, особенно где clean и distclean - там тоже косяки могут быть.
Go to the top of the page
 
+Quote Post
S_agent
сообщение Dec 27 2010, 10:36
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 208
Регистрация: 6-10-05
Из: Ukraine, Kiev
Пользователь №: 9 300



Цитата(faa @ Dec 27 2010, 13:22) *
ЕМНИП, make clean
Можно еще сказать make distclean. Но тогда надо забекапить все закачанные при сборке исходники (а то будет качать по новой, если не найдет), почистить, а потом их снова подложить.
А toolchain собрать один раз, положить сбоку. И казать buildroot, что будем пользовать внешний toolchain.
Ну и посмотреть на сами скрипты buildroot-а на предмет их правильности, особенно где clean и distclean - там тоже косяки могут быть.

действительно, екстернал это как вариант, но его нужно совсем сбокуsm.gif положить дабы не потереть при клине

а еще можно глянуть в сторону http://old.nabble.com/new-way-to-rebuld-ju...td30195561.html
там правда более поздний буилдрут используется, но идею можно захватить
Go to the top of the page
 
+Quote Post
JeDay
сообщение Dec 27 2010, 10:43
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 276
Регистрация: 22-09-05
Из: Kiev
Пользователь №: 8 818



Кстати хорошая идея его родной тулчейн положить отдельно и указать как внешний.
Пробовал в качестве внешнего указывать crosstoll-NG, которым пользуюсь для сборки ядра. Но в нем по умолчанию конфиг для uclibc неполный и некоторые компоненты с Buildroot не собираютсяsad.gif

Цитата
сколько не боролся с такой проблемой к сожалению, только через make clean + make menuconfig + make busybox-menuconfig + make, так собирает все правильно. если другие манипуляции проводить, то или криво собирает или не выкидывает пакеты с проэкта =(

Это правда. В файле TODO так и написано, что в будущем есть план сделать слежение за пакетами которые уже в /target лежат и выкидывать ненужные, но пока это не работает.
Go to the top of the page
 
+Quote Post
S_agent
сообщение Dec 27 2010, 12:09
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 208
Регистрация: 6-10-05
Из: Ukraine, Kiev
Пользователь №: 9 300



да, еще можете собрать openwrt, у него после сборки можно найти SDK, в котором есть тулчейн и библы
и его можно подключить в билдрут как экстернал, или использовать родную сборку рута от опенврт при нужности со своими правками
Go to the top of the page
 
+Quote Post
~phase
сообщение Dec 30 2010, 05:19
Сообщение #14


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 24-06-07
Из: ukraine
Пользователь №: 28 658



Цитата(S_agent @ Dec 27 2010, 17:09) *
да, еще можете собрать openwrt, у него после сборки можно найти SDK, в котором есть тулчейн и библы
и его можно подключить в билдрут как экстернал, или использовать родную сборку рута от опенврт при нужности со своими правками

При пересборке некоторых пакетов иногда нужно пересобирать тулчейн.
Go to the top of the page
 
+Quote Post
sasamy
сообщение Jan 11 2011, 21:36
Сообщение #15


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(~phase @ Dec 30 2010, 11:19) *
При пересборке некоторых пакетов иногда нужно пересобирать тулчейн.


Интересно - зачем sm.gif
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th August 2025 - 16:42
Рейтинг@Mail.ru


Страница сгенерированна за 0.01512 секунд с 7
ELECTRONIX ©2004-2016