INMYS WIKI

Инженерами для инженеров

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

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


boards:nms-sdm-am335x:firmware

Различия

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

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

Следующая версия
Предыдущая версия
boards:nms-sdm-am335x:firmware [2022/10/15 15:00] – создано Владимир Андреевboards:nms-sdm-am335x:firmware [2022/10/18 11:41] (текущий) – [Сборка rootfs] Владимир Андреев
Строка 1: Строка 1:
 ===== Подготовка программной части ===== ===== Подготовка программной части =====
  
 +===== Сборка Linux при помощи Docker =====
  
-===== Сборка Linux при помощи Buildroot и Docker =====+Для выполнение следующей инструкции, на компьютере должно быть установлено [[https://docs.docker.com/engine/install/|Docker окружение]]\\ 
 +Также необходимо скачать следующие файлы: 
 +  * [[ https://doc.inmys.ru/open?hash=704a57f1e171d813ab832b63e72a4def&fn=utils.tar.gz   | Набор скриптов и образ контейнера ]] 
 +  * [[ https://doc.inmys.ru/open?hash=4a879b1cc5739894027143998bc28fce&fn=u-boot_mir.tar | U-boot patch]] 
 +  * [[ https://doc.inmys.ru/open?hash=2196ec1f4bdc2f586e8b79b3d7fb129d&fn=kernel_mir.tar | Kernel patch]] 
 +  * [[ https://doc.inmys.ru/open?hash=f43106fe680cffc15679ca7162265ab2&fn=rootfs.tar.gz  | Rootfs]] 
 +  * [[ https://doc.inmys.ru/open?hash=650dc30f7e937fa12e37ea70ff6e10dd&fn=gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf.tar.xz | Standalone ARM Toolchain* ]] 
 +  * [[https://doc.inmys.ru/open?hash=729a2f87ae127622fc8c4e5d95d242ef&fn=am335x-evm-linux-sdk-src-06.03.00.106.tar.xz | AM335x Linux SDK BSP Source Code* ]] 
 +* файлы скачаны с сайта [[https://software-dl.ti.com/processor-sdk-linux/esd/AM335X/06_03_00_106/index_FDS.html | ti.com]]
  
-Для выполнение следующей инструкции, на компьютере должно быть установлено [[https://docs.docker.com/engine/install/|Docker окружение]]+Рекомендация: Удобнее скачать файлы в отдельный каталог и работать в этой папке. Для этого, необходимо переместить скачанные архивы в новую папку и перейти в неё в терминале. Распаковать архивы 
 +<code> 
 +tar -xf u-boot_mir.tar 
 +tar -xf kernel_mir.tar 
 +tar -xf rootfs.tar.gz 
 +tar -xf utils.tar.gz 
 +tar -xf am335x-evm-linux-sdk-src-06.03.00.106.tar.xz 
 +tar -xf gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf.tar.xz 
 +</code> 
 +Для подготовки обрза контейнера, необходимо перейти в папку utils и выполнить команду сборки образа 
 +<code> 
 +sudo docker build -t am335x utils/ 
 +</code> 
 +После этого в docker появится образ **am335x** 
 +===== Подготовка к сборке ===== 
 +Скопируйте два скрипта из каталога utils в текущую директорию 
 +<code> 
 +cp utils/kernel.sh . 
 +cp utils/u-boot.sh . 
 +</code>
  
-Также необходимо скачать следующие файлы: +===== Сборка spl/MLO/u-boot ===== 
-Набор скриптов и образ контейнера +Выполните команду  
-* {{ :playground:nms-som-e2am335x:u-boot_mir.tar |}} +<code> 
-* {{ :playground:nms-som-e2am335x:kernel_mir.tar |}} +sudo docker run -e USER=$USER  -e USERID=$UID -v $(pwd):/BR -t am335x bash u-boot.sh  
-*+</code> 
 + 
 +===== Сборка linux ===== 
 +Выполните команду  
 +<code> 
 +sudo docker run -e USER=$USER  -e USERID=$UID -v $(pwd):/BR -t am335x bash kernel.sh  
 +</code> 
 +Сборка может занять длительное время, в зависимости от конфигурации компьютера. 
 + 
 +После сборки, появится файлы  
 +  * Board-support/linux-4.19.94+gitAUTOINC+be5389fd85-gbe5389fd85/arch/arm/boot/zImage  
 +  * Board-support/linux-4.19.94+gitAUTOINC+be5389fd85-gbe5389fd85/arch/arm/boot/dts/am335x-mir_mb.dtb 
 + 
 +Проверить их наличие можно командой: 
 +<code> 
 +ls board-support/linux-4.19.94+gitAUTOINC+be5389fd85-gbe5389fd85/arch/arm/boot/zImage 
 +ls board-support/linux-4.19.94+gitAUTOINC+be5389fd85-gbe5389fd85/arch/arm/boot/dts/am335x-mir_mb.dtb 
 +</code> 
 +===== Сборка rootfs ===== 
 +Выполните команду  
 +<code> 
 +sudo docker run -e USER=$USER  -e USERID=$UID -v $(pwd):/BR -t am335x make -C rootfs 
 +</code> 
 +Сборка может занять длительное время, в зависимости от конфигурации компьютера. 
 + 
 +После сборки, появится файл __rootfs/buildroot-2018.05.1/output/images/rootfs.cpio.uboot__ 
 +===== Прошивка пустого модуля ===== 
 +собранные файлы {{ boards:nms-sdm-am335x:files:prebuild_bins.tar |bins}} 
 +<code> 
 +cd board-support/u-boot-2019.01+gitAUTOINC+333c3e72d3-g333c3e72d3 
 +picocom -b 115200  --send-cmd "sx -vv " /dev/ttyUSB1 
 +#ctrl a+s -> send by Xmodem spl/u-boot-spl.bin 
 +spl/u-boot-spl.bin 
 +#ctrl a+s -> send by Xmodem spl/u-boot.bin 
 +u-boot.bin 
 + 
 +setenv ipaddr 192.168.1.198 
 +setenv serverip 192.168.1.125 
 +tftp ${rdaddr} mir_am33/rootfs.cpio.uboot 
 +tftp ${loadaddr} mir_am33/zImage 
 +tftp ${fdtaddr} mir_am33/am335x-mir_mb.dtb 
 +setenv bootargs "console=ttyS0,115200n8 earlyprintk debug" 
 +bootz ${loadaddr} ${rdaddr} ${fdtaddr} 
 +#login with root/root 
 +fdisk /dev/mmcblk0 
 +
 +
 +
 + 
 ++1G 
 +
 +
 +
 +
 +
 +
 +
 + 
 + 
 +
 +#### 
 +mkfs.vfat /dev/mmcblk0p1 
 +mkfs.vfat -n STORE /dev/mmcblk0p2 
 +mount /dev/mmcblk0p1 /opt/ 
 +copy from build machine to /opt on som: am335x-mir_mb.dtb  MLO  rootfs.cpio.uboot  u-boot.img  zImage 
 +#scp <...>/bin/results/ root@192.168.1.198:/opt/umount /opt 
 +sync 
 +</code> 
 +===== Настройка rootfs ===== 
 +Изменение ip адресов 
 +<code> 
 +savevar.sh kernel NETWORK_IP   192.168.1.198 # ip on eth0 
 +savevar.sh kernel NETWORK_IP_1 192.168.2.198 # ip on eth1 
 +savevar.sh kernel NETWORK_IP_2 192.168.3.198 # ip on eth2 
 +</code> 
 +Для добавление автозапуска скриптових нужно записать в файл // /mnt/store/postup.sh // 
 + 
 +**Замечание:** после перезагрузки, данные в /mnt/store сохранятся, но всё остальное будет очищено. Соответственно пользовательские файлы должны хранится в /mnt/store. 
 + 
 +Настройки хранятся в файлах // /mnt/store/settings/kernel // и // /mnt/store/settings/userspace // 
 + 
 +// /mnt/store/settings/kernel // 
 +<code> 
 +NETWORK_MODE=<mode> 
 + 
 +#mode=static use NETWORK_IP, NETWORK_MASK, NETWORK_DEFAULT_GATEWAY for network setup 
 + 
 +#mode=dhcp get ip/dns via dhcp 
 + 
 +#defaultstatic 
 + 
 +#example: NETWORK_MODE=static 
 + 
 +NETWORK_IP=<ip> 
 + 
 +#default: 192.168.1.198 
 + 
 +#example: NETWORK_IP=192.168.1.198 
 + 
 +NETWORK_MASK=<mask> 
 + 
 +#default: 255.255.255.0 
 + 
 +#example: NETWORK_MASK=255.255.255.0 
 + 
 +NETWORK_DEFAULT_GATEWAY=<ip> 
 + 
 +#default: "" 
 + 
 +#example: NETWORK_DEFAULT_GATEWAY=192.168.1.1 
 + 
 +</code> 
 + 
 + 
 +// /mnt/store/settings/userspace // 
 +<code> 
 +CHANGEROOTPASSWD=<false|true> 
 + 
 +# use LOGIN_ROOTPASS or not 
 + 
 +#defaultfalse 
 + 
 +#exampleCHANGEROOTPASSWD=true 
 + 
 +LOGIN_ROOTPASS=<enc_passw> 
 + 
 +#enc_passw result of crypt from glibc password manipulation (md5 hash of the password and salt) 
 + 
 +#default: $1$.1o2Wll.$rZsjTFfqjfJAZuLeWkpuj0 
 + 
 +# default value hash of 'root' password 
 +  
 +#exampleLOGIN_ROOTPASS='$1$.1o2Wll.$rZsjTFfqjfJAZuLeWkpuj0' 
 +</code>
  
 +Пароль может быть изменён двумя способами:
 +  - Через // /mnt/store/settings/userspace // \\ Вызываем из glibc функцию crypt и результат записываем в LOGIN_ROOTPASS (и CHANGEROOTPASSWD=true ) \\ Можно выполнить команту passwd из консоли и посмотреть результат в /etc/passwd.
 +  - В // /mnt/store/postup.sh // <code>echo root:123 | chpasswd </code> У пользователя root будет пароль 123
boards/nms-sdm-am335x/firmware.1665846035.txt.gz · Последнее изменение: 2022/10/15 15:00 — Владимир Андреев