У нас возникла следующая проблема. Пытаемся настроить GPRS. В инете нашли инструкцию. В ней среди всего прочего написано: «Заходим в каталог /etc/ppp/peers/ и создаём там файл beeline следующего содержания...» Прекрасно, сперва создали две директории, затем создали файл, записали в него всё что нам нужно при помщи редактора vi, а затем отключили питание платы. Когда снова плата была включена мы не обнаружили ни файла, ни директорий ppp и peers. У нас возникло такое предположение, что сейчас во флеше лежит архив, состоящий из ядра линукс и коневой файловой системы. При включении питания Uboot распаковывыет в озу ядро, созадёт в озу виртуальный диск, и уже из озу запускает ядро. Соответственно любые изменения файловой системы происходят в озу и обратно не архивируются, и после перезапуска системы теряются. Подскажите, пожалуйста, как нам поступить в подобной ситуации?
Загрузка системы происходит при помощи initramfs (если вы ничего не меняли), а в таком случае ВСЕ, что вы создаете или меняете находится ТОЛЬКО в оперативной памяти. Если вы посмотрите на вывод команды mount (без параметров) - вы увидите напрямую смонтированный раздел (что-то про mtd). Данные из этого раздела (может быть) не потеряются при выключении питания (а если перед выключением выполнить команду sync - точно не потеряются). Может быть вас спасет изменение конфигурации с указанием абсолютных путей на этот файл, находящийся на этом разделе. Либо пересоздание rootfs (что на форуме обсуждалось).
Сказать на 100% не могу, поскольку нет системы под рукой.
Может немного неясно выразился, но всегда готов ответить на вопросы.
есть плата сделанная на основе SK-MAT91SAM9XE512
раньше ей занимался не я, tootfs создаеться с ext2
вопрос можно ли этот файл монтировать и записывать на него, а не держать все в оперативке, если можно то как я понимаю нужно просто правильно подправить раздел загрузки в ядре
пока что не получаеться, пробовал что то типа этого :
mem=64M console= ttyS0,115200 root=/dev/mtdblock1 rootfstype=ext2 rw
так же буду рад ссылкам вроде как искал, но видимо запрос не правильно строю...
ext2 - ФС для блочных устройств, /dev/mtdblock1 как видно из названия - устройство mtd, для них используются специальные ФС. Так что либо ext2 на блочном устройстве (например mmc/sd, usb flash) либо mtdblock (по видимому в вашем случае NAND) со сециальной ФС типа jffs, ubifs etc.
ну мне надо как раз на nand запустить...
странно не нашол где включать ubifs в ядре...
а при jffs2 выдает следующее
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x007a0024: 0xcc33 instead
Further such events for this erase block will not be printed
Cowardly refusing to erase blocks on filesystem with no valid JFFS2 nodes
empty_blocks 1983, bad_blocks 1, c->nr_blocks 2046
VFS: Cannot open root device "mtdblock1" or unknown-block(31,1)
Please append a correct "root=" boot option; here are the available partitions:
1f00 256 mtdblock0 (driver?)
1f01 261888 mtdblock1 (driver?)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,1)
[<c002667c>] (unwind_backtrace+0x0/0xdc) from [<c025a300>] (panic+0x34/0x110)
[<c025a300>] (panic+0x34/0x110) from [<c0008e38>] (mount_block_root+0x25c/0x2b4)
[<c0008e38>] (mount_block_root+0x25c/0x2b4) from [<c0009054>] (prepare_namespace+0x158/0x1bc)
[<c0009054>] (prepare_namespace+0x158/0x1bc) from [<c0008404>] (kernel_init+0xb8/0xe8)
[<c0008404>] (kernel_init+0xb8/0xe8) from [<c0039644>] (do_exit+0x0/0x5a4)
[<c0039644>] (do_exit+0x0/0x5a4) from [<00000003>] (0x3)
до этого минуту где то сканил память
строка инита такая
mem=64M console= ttyS0,115200 root=/dev/mtdblock1 rootfstype=jffs2 rw
дак это.. так рутовая в ОЗУ , имхо, работать не будет.. ее надо прошить в нанд и объяснить ядру в файле платы разбивку нанда.. и вот тогда ядро при загрузке запустит поддержку ubifs, которая найдет разбиение нанда, отсчитает требуемый MTD и если он валиден, то смонтирует и тыпы..
блин я её хотел сначало как нить отладить что ли...
думал и из озу все прочитаеться xDDD
хотя сомнения были конечно же...
а как обьяснить ядру про разбивку нанда ???
где обьяснять я кажись понял...всмысле в каком файле....
к плате кита обычно прилагается полный комплект исходников из которых генерится софт для платы.. в т.ч. исходники ядра.. настройки для платы смотрите в arch/arm/mach-at91/board-sam92-что-то там.c, рядом должен быть объектник с расширением *.o
в этом сишном файле есть структура разбивки нанда..
для отладки удобно мигрировать рутовую на внешний накопитель типа SD или USB-flash и исследовать работу с нандом и ubifs оттуда..
как - читайте форум..