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

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


howto:programming:embedded:uboot

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
howto:programming:embedded:uboot [2012/04/06 22:54]
sergey
howto:programming:embedded:uboot [2019/10/26 21:15] (текущий)
sergey ↷ Страница перемещена из dev:embedd:uboot в howto:programming:embedded:uboot
Строка 1: Строка 1:
-====== u-boot ====== 
-Boot image zImage from 10.163.2.126 via tftp. 
-<code u-boot> 
-setenv serverip 10.163.2.126 
-tftpboot zImage 
-wtags 
-go 
-</​code>​ 
  
-Flash kernel image. +===== rootfs через nfs ===== 
-<​code>​ +Далее описан способ загрузки встраиваемой linux-системы через nfs (вообще без участия flash-памяти). Это очень удобно для мгновенной отладки,​ когда не нужно ничего перезаписывать во встроенную flash, а все файлы, в т.ч. и корневая файловая система,​ находятся на сервере.
-tftpboot zImage +
-erase 1:4-13 +
-cp.b $(fileaddr20000 $(filesize) +
-reset +
-</​code>​+
  
-Flash filesystem image. +**Собираем ядро с опциями ROOT_NFS и CONFIG_IP_PNP**
-<​code>​ +
-tftpboot rootfs.arm.jffs2 +
-erase 1:14- +
-cp.b $(fileaddr) 160000 $(filesize) +
-reset +
-</​code>​+
  
-===== rootfs через nfs ===== +В buildroot ​они называются так
-Далее ​описан способ ​загрузки linux-системы через nfs (вообще без участия flash-памяти). Это очень удобно для мгновенной отладкикогда не нужно ничего перезаписывать во встроенную flash, а все файлы, в т.ч. и корневая файловая система, находятся на сервере.+  * 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:+**Настраиваем nfs для rootfs:**
 <file nfs /​etc/​exports>​ <file nfs /​etc/​exports>​
 /​data/​work/​em5root pandapc01(rw,​sync,​no_subtree_check,​all_squash,​anongid=1000,​anonuid=1000,​no_wdelay) /​data/​work/​em5root pandapc01(rw,​sync,​no_subtree_check,​all_squash,​anongid=1000,​anonuid=1000,​no_wdelay)
Строка 34: Строка 26:
 /​data/​work/​em5root -- папка под коневую фс. /​data/​work/​em5root -- папка под коневую фс.
  
-После изменения не забываем сделать+**После изменения не забываем сделать**
    sudo exportfs -a    sudo exportfs -a
  
-Распаковываем корневую систему из buildroot:+**Распаковываем корневую систему из buildroot:**
 <code bash> <code bash>
 cp rootfs.arm.tar /​data/​work/​em5root cp rootfs.arm.tar /​data/​work/​em5root
Строка 46: Строка 38:
 sudo chown -R 1000.1000 . 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.1333738444.txt.gz · Последние изменения: 2012/11/30 12:40 (внешнее изменение)