Показаны различия между двумя версиями страницы.
| Следующая версия | Предыдущая версия | ||
| 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 ===== | ||
| - | ===== Сборка | + | Для выполнение следующей инструкции, на компьютере должно быть установлено [[https:// |
| + | Также необходимо скачать следующие файлы: | ||
| + | * [[ https:// | ||
| + | * [[ https:// | ||
| + | * [[ https:// | ||
| + | * [[ https:// | ||
| + | * [[ https:// | ||
| + | * [[https:// | ||
| + | * файлы скачаны с сайта [[https:// | ||
| - | Для выполнение следующей инструкции, на компьютере должно быть установлено [[https:// | + | Рекомендация: Удобнее скачать файлы в отдельный каталог и работать в этой папке. Для этого, |
| + | < | ||
| + | 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 | ||
| + | </ | ||
| + | Для подготовки обрза контейнера, необходимо перейти в папку utils и выполнить команду сборки образа | ||
| + | < | ||
| + | sudo docker build -t am335x utils/ | ||
| + | </ | ||
| + | После этого в docker | ||
| + | ===== Подготовка к сборке ===== | ||
| + | Скопируйте два скрипта из каталога utils в текущую директорию | ||
| + | < | ||
| + | cp utils/ | ||
| + | cp utils/ | ||
| + | </ | ||
| - | Также необходимо | + | ===== Сборка spl/ |
| - | * Набор скриптов и образ контейнера | + | Выполните |
| - | * {{ : | + | < |
| - | * {{ :playground:nms-som-e2am335x:kernel_mir.tar |}} | + | sudo docker run -e USER=$USER |
| - | * | + | </ |
| + | |||
| + | ===== Сборка linux ===== | ||
| + | Выполните команду | ||
| + | < | ||
| + | sudo docker run -e USER=$USER | ||
| + | </ | ||
| + | Сборка может занять длительное время, в зависимости от конфигурации компьютера. | ||
| + | |||
| + | После сборки, появится файлы | ||
| + | * Board-support/ | ||
| + | * Board-support/ | ||
| + | |||
| + | Проверить их наличие можно командой: | ||
| + | < | ||
| + | ls board-support/ | ||
| + | ls board-support/ | ||
| + | </ | ||
| + | ===== Сборка rootfs ===== | ||
| + | Выполните команду | ||
| + | < | ||
| + | sudo docker run -e USER=$USER | ||
| + | </ | ||
| + | Сборка может занять длительное время, в зависимости от конфигурации компьютера. | ||
| + | |||
| + | После сборки, появится файл __rootfs/ | ||
| + | ===== Прошивка пустого модуля ===== | ||
| + | собранные файлы | ||
| + | < | ||
| + | cd board-support/ | ||
| + | picocom -b 115200 | ||
| + | #ctrl a+s -> send by Xmodem spl/ | ||
| + | spl/ | ||
| + | #ctrl a+s -> send by Xmodem spl/ | ||
| + | u-boot.bin | ||
| + | |||
| + | setenv ipaddr 192.168.1.198 | ||
| + | setenv serverip 192.168.1.125 | ||
| + | tftp ${rdaddr} mir_am33/ | ||
| + | tftp ${loadaddr} mir_am33/ | ||
| + | tftp ${fdtaddr} mir_am33/ | ||
| + | setenv bootargs " | ||
| + | bootz ${loadaddr} ${rdaddr} ${fdtaddr} | ||
| + | #login with root/root | ||
| + | fdisk / | ||
| + | n | ||
| + | p | ||
| + | 1 | ||
| + | |||
| + | +1G | ||
| + | a | ||
| + | 1 | ||
| + | t | ||
| + | c | ||
| + | n | ||
| + | p | ||
| + | 2 | ||
| + | |||
| + | |||
| + | w | ||
| + | #### | ||
| + | mkfs.vfat / | ||
| + | mkfs.vfat -n STORE / | ||
| + | mount / | ||
| + | copy from build machine to /opt on som: am335x-mir_mb.dtb | ||
| + | #scp < | ||
| + | sync | ||
| + | </ | ||
| + | ===== Настройка rootfs ===== | ||
| + | Изменение ip адресов | ||
| + | < | ||
| + | savevar.sh kernel NETWORK_IP | ||
| + | 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 | ||
| + | </ | ||
| + | Для добавление автозапуска | ||
| + | |||
| + | **Замечание: | ||
| + | |||
| + | Настройки хранятся в файлах // / | ||
| + | |||
| + | // / | ||
| + | < | ||
| + | NETWORK_MODE=< | ||
| + | |||
| + | # | ||
| + | |||
| + | # | ||
| + | |||
| + | #default: static | ||
| + | |||
| + | #example: NETWORK_MODE=static | ||
| + | |||
| + | NETWORK_IP=< | ||
| + | |||
| + | #default: 192.168.1.198 | ||
| + | |||
| + | #example: NETWORK_IP=192.168.1.198 | ||
| + | |||
| + | NETWORK_MASK=< | ||
| + | |||
| + | #default: 255.255.255.0 | ||
| + | |||
| + | #example: NETWORK_MASK=255.255.255.0 | ||
| + | |||
| + | NETWORK_DEFAULT_GATEWAY=< | ||
| + | |||
| + | #default: "" | ||
| + | |||
| + | #example: NETWORK_DEFAULT_GATEWAY=192.168.1.1 | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | // / | ||
| + | < | ||
| + | CHANGEROOTPASSWD=< | ||
| + | |||
| + | # use LOGIN_ROOTPASS or not | ||
| + | |||
| + | #default: false | ||
| + | |||
| + | #example: CHANGEROOTPASSWD=true | ||
| + | |||
| + | LOGIN_ROOTPASS=< | ||
| + | |||
| + | # | ||
| + | |||
| + | #default: $1$.1o2Wll.$rZsjTFfqjfJAZuLeWkpuj0 | ||
| + | |||
| + | # default value - hash of ' | ||
| + | |||
| + | #example: LOGIN_ROOTPASS=' | ||
| + | </ | ||
| + | Пароль может быть изменён двумя способами: | ||
| + | - Через // / | ||
| + | - В // / | ||