roboforum.ru

Технический форум по робототехнике.


mini2440 подготовка и размещение rootfs

Re: mini2440 подготовка и размещение rootfs

Сообщение Palachzzz » 30 июл 2010, 11:06

Да нет, что то кладется в своп) 9,3 мб сейчас занято)
Другое дело что это не сервер, и задачи возможно не так часто используют своп..
В любом случае найти альтернативу SD для данной задачи трудновато, при тех же затратах)
Palachzzz
 
Сообщения: 73
Зарегистрирован: 13 июн 2010, 13:34
Skype: Z_Z_Z-77
прог. языки: С++, Delphi
ФИО: Павел Новиков

Re: mini2440 подготовка и размещение rootfs

Сообщение setar » 30 июл 2010, 12:31

ну да , я и не спорю - просто говорю что не стоит "тренироваться" на любимой дорогой ёмкой и быстрой SD :)
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: mini2440 подготовка и размещение rootfs

Сообщение Resident » 02 авг 2010, 14:33

А когда с GPIO работаеш, через жо... тоесть через файл, он тоже убивает SDшку или этот файл виртуальный и на карточку не пишется?
Любой прибор, защищённый плавким предохранителем, сможет защитить этот предохранитель, сгорев первым.
Resident
 
Сообщения: 167
Зарегистрирован: 14 июн 2010, 17:19
прог. языки: Qt/C/C++

Re: mini2440 подготовка и размещение rootfs

Сообщение setar » 02 авг 2010, 14:36

это виртуальный файл, он нигде в физическом виде не лежит, просто место по адресу в оперативке
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: mini2440 подготовка и размещение rootfs

Сообщение galex1981 » 15 авг 2010, 03:15

По статье сделал образ root fs и через nfs пытаюсь его проверить. При загрузке миньки в логе выдается:
Код: Выделить всёРазвернуть
........................................
mmc0: new SD card at address 5775
mmcblk0: mmc0:5775 SD01G 982 MiB
mmcblk0: p1
eth0: link down
IP-Config: Guessing netmask 255.255.255.0
IP-Config: Complete:
     device=eth0, addr=192.168.1.110, mask=255.255.255.0, gw=255.255.255.255,
     host=192.168.1.110, domain=, nis-domain=(none),
     bootserver=255.255.255.255, rootserver=192.168.1.114, rootpath=
Looking up port of RPC 100003/2 on 192.168.1.114
eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
Looking up port of RPC 100005/1 on 192.168.1.114
VFS: Unable to mount root fs via NFS, trying floppy.
List of all partitions:
1f00             384 mtdblock0 (driver?)
1f01             128 mtdblock1 (driver?)
1f02            5120 mtdblock2 (driver?)
1f03             128 mtdblock3 (driver?)
1f04          125312 mtdblock4 (driver?)
b300         1006080 mmcblk0 driver: mmcblk
  b301         1005958 mmcblk0p1
No filesystem could mount root, tried:  jffs2
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)
Backtrace:
[<c0033228>] (dump_backtrace+0x0/0x10c) from [<c0337780>] (dump_stack+0x18/0x1c)
r7:c03bcd78 r6:00008000 r5:c3812006 r4:c044f590
[<c0337768>] (dump_stack+0x0/0x1c) from [<c03377d0>] (panic+0x4c/0x114)
[<c0337784>] (panic+0x0/0x114) from [<c0008e30>] (mount_block_root+0x1e8/0x228)
r3:00000000 r2:80000000 r1:c3823f60 r0:c03bcd10
[<c0008c48>] (mount_block_root+0x0/0x228) from [<c0008f34>] (mount_root+0xc4/0xfc)
[<c0008e70>] (mount_root+0x0/0xfc) from [<c0009094>] (prepare_namespace+0x128/0x180)
r5:c001f81d r4:c044ee00
[<c0008f6c>] (prepare_namespace+0x0/0x180) from [<c00084b0>] (kernel_init+0xe0/0x114)
r5:c001e1b0 r4:c044ebc0
[<c00083d0>] (kernel_init+0x0/0x114) from [<c004c638>] (do_exit+0x0/0x620)
r5:00000000 r4:00000000


Странное то, что после выполнения команды unmount, время изменения файла root_qtopia.jffs2 не изменилось с момента создания. Но при последующем выполнении команды mount.... в каталоге /rootfs создаются паки как и должно быть
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: mini2440 подготовка и размещение rootfs

Сообщение setar » 15 авг 2010, 14:38

ядро какое ? jffs2 знает ??
какая строка загрузки ядра ?
рекомендую сначала произвести загрузку с этого ядра в nfsroot и подмонтировать образ

Добавлено спустя 2 минуты 46 секунд:
перечитал вопрос, не понял
грузимся в NFS в каталог или в файл jffs2
сначала нужно добиться загрузки в nfs каталог
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: mini2440 подготовка и размещение rootfs

Сообщение galex1981 » 15 авг 2010, 15:21

Ядро jffs2 знает. Строка загрузки ядра:
Код: Выделить всёРазвернуть
setenv bootargs console=ttySAC0,115200 noinitrd init=/sbin/init mini2440=3tbc nfsroot=192.168.150.65:/tftproot/root_qtopia.jffs2 root=/dev/nfs rw rootfstype=jffs2 ip=192.168.150.33

Для загрузки с NFS каталога ./root какая строка загрузки должна быть?
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: mini2440 подготовка и размещение rootfs

Сообщение galex1981 » 16 авг 2010, 00:21

В общем разобрался с проблемой - у меня поддердка jffs2 в ядре было включено модулем. Естесственно, при загрузке ядра он не может подгрузить модуль потому что нет rootfs, а ее понять не может ;).

Добавлено спустя 2 минуты 19 секунд:
Еше вопрос: для загрузки rootfs из SD-карты, как она называется для u-boot? (для строки загрузки)
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: mini2440 подготовка и размещение rootfs

Сообщение Palachzzz » 16 авг 2010, 00:34

mmcblk0 если флешка разбита на разделы то соответственно - mmcblk0p1 (p2,p3,p4), если разделы логические то p5 p6 могут быть..
Palachzzz
 
Сообщения: 73
Зарегистрирован: 13 июн 2010, 13:34
Skype: Z_Z_Z-77
прог. языки: С++, Delphi
ФИО: Павел Новиков

Re: mini2440 подготовка и размещение rootfs

Сообщение setar » 16 авг 2010, 10:23

galex1981 писал(а):Для загрузки с NFS каталога ./root какая строка загрузки должна быть?

просто указывать на каталог где корень распакован например nfsroot=192.168.150.65:/tftproot/rootfs
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: mini2440 подготовка и размещение rootfs

Сообщение rotax » 28 авг 2010, 20:43

как проверить работает ли поддержка mtd в ядре
команда cat /proc/mtd возвращает:
dev: size erasesize name
накаких данных о mtd нет.
компилирование и инсталляция модулей прошли успешно, создание и монтироване образа так же прошли успешно
Аватара пользователя
rotax
 
Сообщения: 43
Зарегистрирован: 10 июн 2010, 23:31
Откуда: Краснодар
Skype: rotaxb
прог. языки: C
ФИО: Александр

Re: mini2440 подготовка и размещение rootfs

Сообщение setar » 29 авг 2010, 12:58

просто начать с ним работать
modprobe block2mtd
modprobe mtdblock
echo /dev/hde1 > /sys/module/block2mtd/parameters/block2mtd
# Note: `cat /proc/mtd` will now show mtd0 pointing to /dev/hde1
# strangely this is accessed by another device name, mtdblock0
dd if=/dev/zero | tr '\000' '\377' > /dev/mtdblock0
mount -t jffs2 /dev/mtdblock0 /mnt/hde1
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: mini2440 подготовка и размещение rootfs

Сообщение rotax » 29 авг 2010, 17:33

пересобрал модули заново, пробую создать mtdblock устройство, а получаю:
Код: Выделить всёРазвернуть
RF-dev ~ # cd /tftproot/
RF-dev tftproot # dd if=/dev/zero bs=1k count=255616 | tr '\000' '\377' > ./root_qtopia.jffs2
255616+0 записей считано
255616+0 записей написано
скопировано 261750784 байта (262 MB), 30.6784 c, 8.5 MB/c
RF-dev tftproot # ls
rootfs  root_qtopia.jffs2
RF-dev tftproot # modprobe block2mtd
RF-dev tftproot # modprobe mtdblock
RF-dev tftproot # echo /dev/loop0, 131072 > /sys/module/block2mtd/parameters/block2mtd
RF-dev tftproot # cat /proc/mt
mtd   mtrr 
RF-dev tftproot # cat /proc/mtd
dev:    size   erasesize  name
RF-dev tftproot # mount -t jffs2 /dev/mtdblock0 ./rootfs
mount: /dev/mtdblock0 не является блочным устройством (может попробовать `-o loop'?)

где ошибка?
Как собранную rootfs загрузить на SD карту как прописать ее в u-boot?
Аватара пользователя
rotax
 
Сообщения: 43
Зарегистрирован: 10 июн 2010, 23:31
Откуда: Краснодар
Skype: rotaxb
прог. языки: C
ФИО: Александр

Re: mini2440 подготовка и размещение rootfs

Сообщение setar » 30 авг 2010, 12:22

ошибка в том что нет связи между loop0 и блочным девайсом

нужно так:
Код: Выделить всёРазвернуть
calculate ~ # dd if=/dev/zero bs=1k count=255616 | tr '\000' '\377' > ./root_qtopia.jffs2
255616+0 записей считано
255616+0 записей написано
скопировано 261750784 байта (262 MB), 2.59696 c, 101 MB/c
calculate ~ # modprobe block2mtd
calculate ~ # modprobe mtdblock
calculate ~ # lsmod | grep mtd
mtdblock                2922  0
mtd_blkdevs             4172  1 mtdblock
block2mtd               3395  0
mtd                     7097  5 jffs2,mtd_blkdevs,block2mtd
calculate ~ # losetup /dev/loop0 root_qtopia.jffs2
calculate ~ # losetup -a
/dev/loop/0: [0801]:1646556 (/root/root_qtopia.jffs2)
calculate ~ # echo /dev/loop0,262144 > /sys/module/block2mtd/parameters/block2mtd
calculate ~ # cat /proc/mtd
dev:    size   erasesize  name
mtd0: 0f9a0000 00040000 "block2mtd: /dev/loop0"
calculate ~ # mkdir 1 && mount -t jffs2 /dev/mtdblock0 ./1
calculate ~ # mount
rootfs on / type rootfs (rw)
--skip--
/dev/mtdblock0 on /root/1 type jffs2 (rw)
calculate ~ # df
Файловая система     1K-блоков      Исп  Доступно  Исп% смонтирована на
--skip--
/dev/mtdblock0          255488      5888    249600   3% /root/1



Добавлено спустя 2 минуты 30 секунд:
переписать проще всего поблочно на линукс хосте , вставив в кардридер
командой dd if={/путь/имя_файла} of={/dev/имя карточки SD}
имя карточки берётся из dmesg хоста
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: mini2440 подготовка и размещение rootfs

Сообщение rotax » 31 авг 2010, 11:25

Наконец удалось создать образ.
Спасибо
Аватара пользователя
rotax
 
Сообщения: 43
Зарегистрирован: 10 июн 2010, 23:31
Откуда: Краснодар
Skype: rotaxb
прог. языки: C
ФИО: Александр

Пред.След.

Вернуться в mini2440

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7