Это старая версия документа!
Boot image zImage from 10.163.2.126 via tftp.
setenv serverip 10.163.2.126 tftpboot zImage wtags go
Flash kernel image.
tftpboot zImage erase 1:4-13 cp.b $(fileaddr) 20000 $(filesize) reset
Flash filesystem image.
tftpboot rootfs.arm.jffs2 # По неведомой причине (особенности jffs?) стирать нужно до конца. erase 1:14- cp.b $(fileaddr) 160000 $(filesize) reset
Далее описан способ загрузки linux-системы через nfs (вообще без участия flash-памяти). Это очень удобно для мгновенной отладки, когда не нужно ничего перезаписывать во встроенную flash, а все файлы, в т.ч. и корневая файловая система, находятся на сервере.
Собираем ядро с опциями ROOT_NFS и CONFIG_IP_PNP
В buildroot они называются так:
Настраиваем tftp для zImage:
Настраиваем nfs для rootfs:
/data/work/em5root pandapc01(rw,sync,no_subtree_check,all_squash,anongid=1000,anonuid=1000,no_wdelay)
pandapc01 – ip удаленного хоста, на время настройки можно поставить *.
/data/work/em5root – папка под коневую фс.
После изменения не забываем сделать
sudo exportfs -a
Распаковываем корневую систему из buildroot:
cp rootfs.arm.tar /data/work/em5root cd /data/work/em5root # Без sudo не создадутся файлы устройств! sudo tar -xvf rootfs.arm.tar # id пользователя и группы те же, что в /etc/exports sudo chown -R 1000.1000 .
Настраиваем u-boot на целевом устройстве:
Предварительно рекомендуется выполнить printenv и скопировать старые значения переменных.
u-boot> setenv serverip 10.163.2.126 u-boot> setenv nfspath /data/work/em5root/ u-boot> setenv hostname pandapc01 u-boot> setenv bootargs root=/dev/nfs rw nfsroot=$(serverip):$(nfspath) ip=$(ipaddr):::$(netmask):$(hostname) debug console=ttyS0,38400 nfsrootdebug; u-boot> setenv bootcmd tftpboot zImage\; wtags\; go u-boot> printenv u-boot> saveenv u-boot> reset
Если всё было сделано правильно, система должна загрузиться по nfs.