Ссылки:
1 2 3 4 5 |
https://hackmd.io/@kushaltengli/B1ZSaMdY5 https://docs.nxp.com/bundle/GUID-1441E561-3EAD-47FD-A50D-72E1A4E4D69E/page/GUID-2C30B1D2-2E1A-49BC-A3F7-D481D76B00BE.html https://docs.nxp.com/bundle/GUID-1441E561-3EAD-47FD-A50D-72E1A4E4D69E/page/GUID-47B8F1F5-3A8F-45F4-A096-4D3DCDE8D07C.html https://solidrun.atlassian.net/wiki/spaces/developer/pages/197494288/HoneyComb+LX2+ClearFog+CX+LX2+Quick+Start+Guide https://downloads.openwrt.org/releases/22.03.3/targets/layerscape/armv8_64b/ |
1 2 3 4 5 6 7 8 9 10 |
https://docs.nxp.com/bundle/GUID-1441E561-3EAD-47FD-A50D-72E1A4E4D69E/page/GUID-2C30B1D2-2E1A-49BC-A3F7-D481D76B00BE.html #wget https://www.nxp.com/lgfiles/sdk/lsdk1909/flex-installer wget https://www.nxp.com/lgfiles/sdk/lsdk2108/flex-installer chmod +x flex-installer && sudo mv flex-installer /usr/bin flex-installer -i download -m lx2160ardb apt-get install device-tree-compiler |
flex-builder compile
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
!!! https://lsdk.github.io/components.html !!! need ubuntu 20.04 0. Достаем файл flexbuild_lsdk2108.tgz cd /opt wget 1. распаковываем его cd /opt tar -xvf flexbuild_lsdk2108.tgz cd flexbuild_lsdk2108 2. Меняем окружение source setup.env 3. использование flex-builder -h 4. Собираем полную среду (не обезательно) flex-builder -i auto flex-builder -i mkrfs -a arm64 flex-builder -c linux -a arm64 flex-builder -i mkfw -m ls1046afrwy -b sd |
Добыча исходников ядра из flex-builder
1 2 3 4 5 6 7 8 9 10 11 12 13 |
!!!https://community.nxp.com/t5/Layerscape/Obtaining-linux-headers-for-LS1046ARDB/m-p/1452465 0. Переходим в каталог flexbuild cd /opt/flexbuild_lsdk2108 1. Меняем окружение source setup.env 2. Производим загрузку исходников flex-builder -c linux-deb -p LS 3. Искать собранае тут cd /opt/flexbuild_lsdk2108/build/linux/linux/arm64/LS/output тут /opt/flexbuild_lsdk2108/build/linux/kernel/arm64/LS - тут есть Image тут /opt/flexbuild_lsdk2108/build/linux/linux/arm64/LS/output - тут у нас пакеты deb P.S. По какой то причине у меня не собрался Image в пакете deb, поэтому я его сам копировал в каталог /boot |
NXP docker image in debian 11
1 |
apt install docker docker-compose |
err LSDK 21.08 makefile error — Please set ‘PYTHON’ appropriately
1 |
sudo apt-get install -y python-dev |
flex-installer
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
flex-installer -i, --instruction Инструкция по выполнению, действительный аргумент, как показано ниже: auto' Автоматически разметить и отформатировать целевой накопитель, а затем загрузить и установить образы дистрибутивов. 'pf' Разметить и отформатировать только целевой накопитель без установки образов дистрибутивов. 'download' Загружать только образы дистрибутивов без установки 'install' Устанавливает только указанный образ, по умолчанию может быть опущен. 'mksdcard' Создать sdcard.img, включая составную прошивку и образы дистрибутивов. 'list' Показать список поддерживаемых машин и среды установки 'backup' Резервное копирование rootfs и загрузочного раздела в виде архива -b, --bootimg Образ загрузочного раздела -r, --rootfsimg Образ корневого раздела -B, --bootpart Указать номер загрузочного раздела для переопределения значения по умолчанию (загрузочный раздел по умолчанию — второй) -R, --rootpart Указать номер корневого раздела для переопределения значения по умолчанию (корневой раздел по умолчанию является последним) -d, --device Имя целевого накопителя SD/USB/SATA в Linux -p, --partition Настроить настраиваемые разделы целевого диска, по умолчанию «-p 4P=100M:2G:5G:-1», если не указано иное. -f, --firmware Составной образ прошивки для программирования на SD-карту (только для загрузки с SD) -F, --force Принудительно разметить и отформатировать целевой диск независимо от существующих данных на диске -e, --efi Используется в случае UEFI в качестве загрузчика вместо U-Boot, допустимый аргумент: dtb или acpi -m, --machine Имя целевой машины для указания имени составной прошивки для автоматического развертывания -u, --url Укажите URL-адрес веб-сервера дистрибутива, чтобы переопределить URL-адрес по умолчанию для автоматической загрузки дистрибутива. -o, --offset Укажите смещение для записи прошивки на устройство хранения (например, 1k, 4k, 32k, 33k) -v, --version Распечатать информацию о версии Автоматически загружать и устанавливать образы дистрибутивов LSDK на целевой накопитель на хост-компьютере или плате ARM: flex-installer -i auto -m ls1046ardb -d /dev/mmcblk0 (автоматически установить последний дистрибутив LSDK) Вы можете указать один или несколько параметров '-b <boot> -r <rootfs> -f <firmware> -u <url>', чтобы переопределить настройки по умолчанию. Чтобы разбить и отформатировать целевой SD/eMMC/USB-диск и установить пользовательский образ дистрибутива: flex-installer -i pf -d /dev/mmcblk0 (по умолчанию 4 раздела как 4P=128M:2G:5G:-1) flex-installer -i pf -d /dev/sdx -p 4P=128M:3G:6G:-1 (указать пользовательские разделы как 4P=128M:3G:6G:-1) flex-installer -b boot_arm64_lts_5.10.tgz -r rootfs_ubuntu_arm64.tgz -f firmware_<machine>_sdboot.img -d /dev/sdx (установить несколько образов) flex-installer -r rootfs_ubuntu_main_arm64.tgz -d /dev/sdx (установить только образ корневого раздела) flex-installer -b boot_arm64_lts_5.10.tgz -d /dev/sdx (устанавливать только образ загрузочного раздела flex-installer -f firmware_<machine>_sdboot.img -d /dev/sdx (устанавливать только составной образ прошивки) Установите образ локального дистрибутива с 3 пользовательскими разделами, чтобы указать раздел-1 для загрузочного раздела и раздел-3 для раздела rootfs: flex-installer -i pf -p 3P=2G:4G:-1 -d /dev/mmcblk0 flex-installer -b <загрузка> -r <rootfs> -f <прошивка> -d /dev/mmcblk0 --bootpart=1 --rootpart=3 После успешной установки запустите «setenv devpart_boot 1;setenv devpart_root 3;boot» в U-Boot, чтобы загрузить дистрибутив из определенного раздела) На плате ARM в среде TinyLinux сначала разбейте целевой диск, затем загрузите образы дистрибутива на плату и установите, как показано ниже: 1. flex-installer -i pf -d /dev/mmcblk0 (или /dev/sdx) 2. cd /mnt/mmcblk0p4 (или /mnt/sdx4) и загрузите образы дистрибутивов в этот раздел через wget или scp 3. flex-installer -r <rootfs> -b <boot> -f <прошивка> -d /dev/mmcblk0 (или /dev/sdx) Конвертируйте образы архивов локальных дистрибутивов в универсальный sdcard.img. flex-installer -i mksdcard -f <прошивка> -r <rootfs> [ -b <загрузка> ] Резервное копирование rootfs и загрузочного раздела с целевого устройства хранения flex-installer -i backup -d /dev/sdx Автоматически загруpзить и развернуть образ LSDK: Для автоматической загрузки и развертывания образов LSDK на доске с помощью съемного устройства хранения данных, которое можно подключить к локальная хост-машина Linux: 1. Подключите съемное запоминающее устройство к хост-компьютеру Linux. 2. Загрузите flex-installer для развертывания образов LSDK. $ wget https://www.nxp.com/lgfiles/sdk/lsdk2108/flex-installer && chmod +x flex-installer && sudo mv flex-установщик /usr/bin 3. Выполните следующую команду flex-installer, чтобы автоматически установить LSDK по умолчанию rootfs_lsdk2108_LS_arm64_main.tgz и boot_LS_arm64_lts_5.10.tgz. flex-installer -i auto -m ls1046afrwy -d <устройство> flex-installer -i auto -m ls1046afrwy -d /dev/sdh Доп: flex-installer -i pf -d <device>(partition and format target disk) flex-installer -i auto -m <machine> -d <device> - вместо авто можно использовать -f <firmware> -b <boot> -r <rootfs> -u <url> flex-installer -b boot_arm64_lts_5.10.tgz -r rootfs_lsdk2108_ubuntu_main_arm64.tgz -f firmware_ls1046ardb_sdboot.img -d /dev/sdx |
flex-builder
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
Главный конфиг файл со всеми настройками: configs/sdk.yml Все собранное валится в эти каталоги: DEFAULT_OUT_PATH: $FBDIR/build DEFAULT_PACKAGES_PATH: $FBDIR/components Сборка: flex-builder -c atf -m ls1046ardb -b sd flex-builder -i mkfw -m ls1046afrwy -b sd flex-builder -i mkrfs -a arm64 flex-builder -c linux -a arm64 Если вы хотите использовать другой RCW вместо стандартного, вы можете переконфигурировать переменную rcw_<boottype> в <flexbuild>/configs/board/<machine>/manifest, затем запустите flex-builder -i clean-firmware; flex-builder -c atf -m <machine> -b <boottype> для создания нового образа ATF с указанным RCW, если вы модифицировали исходный код U-Boot, RCW или ATF, flex-builder может автоматически перекомпилировать их с измененный источник. Показать включенные компоненты для сборки: bld -i list Собрать компоненты отдельно: packages/apps/networking/<component>.mk - Вот тут можно изменить параметры сборки компонента bld -c <subsystem> bld -c networking bld -c security bld -c graphics -r ubuntu:desktop bld -c eiq bld -c dpdk bld -c ovs_dpdk bld -c vpp bld -c fmc bld -c openssl bld -c perf bld -c armnn bld -c opencv bld -c tflite Для установки вручную вы можете просто скопировать архив и распаковать на целевой системе: tar xf app_components_ubuntu.tgz -C / Сборка firmware: Тут собирается all binary firmware images, including uefi_bin, mc_bin, mc_utils, fm_ucode, qe_ucode phy_cortina, phy_inphi, pfe_bin, ddr_phy_bin, dp_firmware. bld -c bin_firmware Сборка и генерация композитной firmware (хрен его знает что это): bld -i mkfw -m ls1046ardb -b sd flex-builder -i mkfw -m ls1046afrwy -b sd Сборка / ядро и компиляция: bld -c linux flex-builder -c linux -a arm64 flex-builder -c linux:custom -a arm64 (с выбором компонентов) Различные очистки: bld clean bld clean-firmware bld clean-apps bld clean-rfs -r <distro_type>:<distro_scale> -a <arch> flex-builder -i clean-rfs -r ubuntu:desktop Работа с репозитории: bld -i repo-commit bld -i repo-branch bld -i repo-update Сборка докера: bld docker |
flex-builder and flex-builder
1 2 3 4 5 6 7 8 |
flex-builder -c bin_firmware flex-builder -i mkdistroscr -e flex-builder -i mkdistroscr -e -k <key_id> Eg. Key_id = 0x20000000 flex-builder -c atf -m <machine> -b <boottype> -e; flex-builder -i signimg -m <machine> -b <boottype> -e flex-builder -i mkfw -m <platform> -b <boottype> flex-builder -i mkboot -a <arch> flex-installer -b build/images/bootp_LS_<arch>_lts_<version>.tgz -r build/rfs/ rootfs_lsdk_<version>_LS_<arch> -f build/images/firmware_<machine>_sdboot_secure.img -d /dev/sdx |
Пример создания образа sdcard.img
1 2 3 |
./flex-installer -i mksdcard -b boot_LS_arm64_lts_5.10_202310241400.tgz -r rootfs_lsdk2108_ubuntu_main_arm64_202310241423.tgz -f firmware_ls1046ardb_sdboot.img dd if=sdcard.img of=/dev/sdz |