Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
howto:programming:embedded:uboot [2012/04/06 21:05] 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 | + | **Собираем ядро с опциями ROOT_NFS и CONFIG_IP_PNP** |
| - | cp.b $(fileaddr) 20000 $(filesize) | + | |
| - | reset | + | В 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> | ||
| - | Flash filesystem image. | + | **Настраиваем u-boot на целевом устройстве:** |
| - | <code> | + | |
| - | tftpboot rootfs.arm.jffs2 | + | Предварительно рекомендуется выполнить printenv и скопировать старые значения переменных. |
| - | erase 1:14-30 | + | <code uboot> |
| - | cp.b $(fileaddr) 160000 $(filesize) | + | u-boot> setenv serverip 10.163.2.126 |
| - | reset | + | 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> | </code> | ||
| + | |||
| + | |||
| + | |||
| + | **Если всё было сделано правильно, система должна загрузиться по nfs.** | ||
| + | |||