Инструменты пользователя

Инструменты сайта


howto:programming:embedded:uboot

Это старая версия документа!


u-boot

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

rootfs через nfs

Далее описан способ загрузки linux-системы через nfs (вообще без участия flash-памяти). Это очень удобно для мгновенной отладки, когда не нужно ничего перезаписывать во встроенную flash, а все файлы, в т.ч. и корневая файловая система, находятся на сервере.

Собираем ядро с опциями ROOT_NFS и CONFIG_IP_PNP

В buildroot они называются так:

  • Networking support → Networking options → IP: kernel level autoconfiguration
  • File systems → Network File Systems → Root file system on NFS (не видна без первой опции)

Настраиваем tftp для zImage: FIXME

Настраиваем nfs для rootfs:

/etc/exports
/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.

howto/programming/embedded/uboot.1333739852.txt.gz · Последние изменения: 2012/11/30 12:40 (внешнее изменение)