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

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


howto:programming:embedded:uboot

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
howto:programming:embedded:uboot [2012/02/02 18:35]
sergey
howto:programming:embedded:uboot [2019/10/26 21:15] (текущий)
sergey ↷ Страница перемещена из dev:embedd:uboot в howto:programming:embedded:uboot
Строка 1: Строка 1:
-====== u-boot ====== 
  
-<code u-boot+===== rootfs через nfs ===== 
-setenv server 10.163.2.126 +Далее описан способ загрузки встраиваемой linux-системы через nfs (вообще без участия flash-памяти). Это очень удобно для мгновенной отладки,​ когда не нужно ничего перезаписывать во встроенную flash, а все файлы, в т.ч. и корневая файловая система,​ находятся на сервере. 
-tftpboot ​zImage + 
-wtags +**Собираем ядро с опциями ROOT_NFS и CONFIG_IP_PNP** 
-go+ 
 +В buildroot они называются так: 
 +  * Networking support ->  Networking options ​->  IP: kernel level autoconfiguration 
 +  * File systems ​ ->  Network File Systems ​  ​-> ​ Root file system on NFS (не видна без первой опции) 
 + 
 +Предварительно убеждаемся,​ что в "make menuconfig"​ "​Target filesystem options"​ включена опция "tar the root filesystem"​ и правильно указан путь в "also copy the image to...". \\ 
 +**Добавляем /dev/nfs в файл device_table.txt и пересобираем корневую фс в buildroot (make).**  
 + 
 +<file device_table.txt>​ 
 +/​dev/​nfs b 777 0 0 0 255 0 0 - 
 +</​file>​ 
 + 
 +**Настраиваем tftp для ​zImage:** 
 +FIXME 
 + 
 +**Настраиваем nfs для rootfs:** 
 +<file nfs /​etc/​exports>​ 
 +/​data/​work/​em5root pandapc01(rw,​sync,​no_subtree_check,​all_squash,​anongid=1000,​anonuid=1000,​no_wdelay) 
 +</​file>​ 
 +pandapc01 -- ip удаленного хоста, на время настройки можно поставить *. \\ 
 +/​data/​work/​em5root -- папка под коневую фс. 
 + 
 +**После изменения не забываем сделать** 
 +   sudo exportfs -a 
 + 
 +**Распаковываем корневую систему из buildroot:​** 
 +<code bash> 
 +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 .
 </​code>​ </​code>​
 +
 +**Настраиваем u-boot на целевом устройстве:​**
 +
 +Предварительно рекомендуется выполнить printenv и скопировать старые значения переменных.
 +<code uboot>
 +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),​rsize=1024,​wsize=1024 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
 +</​code>​
 +
 +
 +
 +**Если всё было сделано правильно,​ система должна загрузиться по nfs.**
 +
howto/programming/embedded/uboot.1328193337.txt.gz · Последние изменения: 2012/11/30 12:41 (внешнее изменение)