Ссылка:
1 2 |
https://docs.yoctoproject.org/ https://github.com/nxp-qoriq/yocto-sdk/tree/kirkstone |
pre install yocto
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Для debian/ubuntu установить пакеты apt install vim sudo gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat cpio python python3 python3-pip python3-pyelftools python3-pexpect xz-utils debianutils iputils-ping libsdl1.2-dev xterm Версия python 3+ по умолчанию: update-alternatives --list python - проверяем update-alternatives --install /usr/bin/python python /usr/bin/python3.9 1 Для любителей поставить русскую local нужно добавить еще local en_US.UTF-8: 0. vim /etc/locale.gen ------------------- en_US.UTF-8 <---------- найти и раскоментить ------------------ 1. Перечитать local: locale-gen На этом все, теперь у вас должна появится local en_US.UTF-8 |
Создаем пользователя от которого будем собирать в его каталоге:
1 2 |
useradd useryocto su - useryocto |
Качаем бинарный файл для загрузки репы:
1 2 3 4 |
mkdir ~/bin curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo chmod a+x ~/bin/repo PATH=${PATH}:~/bin |
Создаем каталог yocto-sdk и скачиваем yocto:
1 2 3 4 |
mkdir yocto-sdk yocto-sdk repo init -u https://github.com/nxp-qoriq/yocto-sdk -b kirkstone repo sync --force-sync |
Теперь тебе надо в папке sources подменить meta-qoriq нашей
1 2 3 4 |
cd sources rm -rf meta-qoriq git clone https://Какой-то_наш_гитлаб/yocto/meta-qoriq cd .. |
Теперь нужно выполнить следующие (будет создан каталог) / в каталоге yokto-sdk
1 |
. ./setup-env -m ls1046ardb |
Теперь нужно отредактировать файл build_ls1046ardb/conf/local.conf
1 2 3 4 5 6 7 8 9 |
vim build_ls1046ardb/conf/local.conf В конец файла добавить: DISTRO_FEATURES:append = " systemd " DISTRO_FEATURES_BACKFILL_CONSIDERED:append = " sysvinit" VIRTUAL-RUNTIME_init_manager = "systemd" VIRTUAL-RUNTIME_initscripts = "systemd-compat-units" GLIBC_GENERATE_LOCALES = "en_US.UTF-8 ru_RU.UTF-8" IMAGE_LINGUAS = "en-us ru-ru" |
Первая сборка:
1 2 3 4 5 |
Первая сборка: bitbake fsl-image-networking Сборка образа под sd карту: wic create ls104x-uboot-bootpart --no-fstab-update -e fsl-image-networking |
На потом:
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 |
Параметры ядра /proc/cmdlist uboot setenv bootargs "console=ttyS0,115200 debug ignore_loglevel printk.synchronous=1 root=/dev/ram0 earlycon=uart8250,mmio,0x21c0500 mtdparts=1550000.spi-0:1m(rcw),15m(u-boot),48m(kernel.itb);7e800000.flash:16)" saveenv setenv othbootargs "debug ignore_loglevel printk.synchronous=1" saveenv orig boot_script: distroboot=\ 'sf probe;'\ 'env exists dtb || setenv dtb fsl-ls1046a-rdb-sdk.dtb;'\ 'env exists kernel_image || setenv kernel_image Image;'\ 'env exists devpart_boot || setenv devpart_boot 1;'\ 'env exists devpart_root || setenv devpart_root 2;'\ 'part uuid $devtype $devnum:$devpart_root partuuidr;'\ 'setenv bootargs console=ttyS0,115200 earlycon=uart8250,mmio,0x21c0500 root=PARTUUID=$partuuidr rw rootwait $othbootargs;'\ 'load $devtype $devnum:$devpart_boot $kernel_addr_r $kernel_image;'\ 'load $devtype $devnum:$devpart_boot $fdt_addr_r $dtb;'\ 'env exists secureboot && echo validating secureboot && run secureboot_validate;'\ 'booti $kernel_addr_r - $fdt_addr_r' boot_script fix: distroboot= 'sf probe; 'env exists dtb || setenv dtb fsl-ls1046a-rdb-sdk.dtb; 'env exists kernel_image || setenv kernel_image Image; 'env exists devpart_boot || setenv devpart_boot 1; 'env exists devpart_root || setenv devpart_root 2; 'part uuid $devtype $devnum:$devpart_root partuuidr; 'setenv bootargs console=ttyS0,115200 earlycon=uart8250,mmio,0x21c0500 root=PARTUUID=$partuuidr rw rootwait $othbootargs; 'load $devtype $devnum:$devpart_boot $kernel_addr_r $kernel_image; 'load $devtype $devnum:$devpart_boot $fdt_addr_r $dtb; 'env exists secureboot && echo validating secureboot && run secureboot_validate; 'booti $kernel_addr_r - $fdt_addr_r Сборка: mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "script" -d boot.script ls1046ardb_boot.scr uboot: setenv othbootargs "debug ignore_loglevel printk.synchronous=1" saveenv |
Файлы:
1 2 3 4 5 6 |
~/yocto-sdk/sources/meta-qoriq/recipes-support/bwt-tools/files - тут наши файлы wx и т.д ~/yocto-sdk/sources/meta-qoriq/recipes-support/bwt-tools/bwt-tools.bb - Вот этим рецептом вкарячивает ~/yocto-sdk/sources/meta-qoriq/recipes-fsl/packagegroups/packagegroup-nnz-tests.bb - тут список пакетов котоый будут собраны в образ |
Пример добавления новых файлов:
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 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
был добавлен архив с файлами(bwt и linux-kernel) для сборки ~/yocto-sdk/sources/meta-qoriq/recipes-support/bwt-tools/bwt-tools.bb tar -cvzf addrus.tar.gz addrus file://addrus.tar.gz \ cp -r ${S}/addrus/* -t ${D}/opt/ -------------------- LICENSE = "CLOSED" SRC_URI = " \ file://bwt-tools.tar.gz \ file://nxp_script.tar.gz \ file://bwt-logging-tools.tar.gz \ file://addrus.tar.gz \ " SRC_URI[sha256sum] = "f0f577a9cb50b9d5fdbe711fcc383da841c1762cd0d49930608184de39a38977" SRCREV = "81f14a00f1dd48e7b0138916224940ddb38cc765" S = "${WORKDIR}" INSANE_SKIP:${PN}:append = "already-stripped arch" RDEPENDS:${PN}="bash libftdi libpci python3 python3-core dbus-lib openssl libcrypto libudev libnl-genl libnl-route libnl libssl libusb1 libelf" do_install() { #${sysconfdir} = /etc #${bindir} = /usr/bin #${libdir} = /usr/lib #${localstatedir} = /var install -d ${D}${bindir} install -d ${D}/opt/bwt cp -r ${S}/bwt-tools/opt/* -t ${D}/opt/ cp -r ${S}/bwt-logging-tools/opt/* -t ${D}/opt/ cp -r ${S}/addrus/* -t ${D}/opt/ install -d ${D}/etc cp -r ${S}/bwt-tools/etc/* -t ${D}/etc/ cp -r ${S}/bwt-logging-tools/etc/* -t ${D}/etc/ install -d ${D}/lib/systemd/system install -d ${D}/lib/systemd/system-preset cp -r ${S}/bwt-logging-tools/lib/* -t ${D}/lib/ install -d ${D}/lib/firmware/bwt install -d ${D}${libdir}/engines-1.1 cp -r ${S}/bwt-tools${libdir}/* -t ${D}${libdir}/ install -d ${D}/usr/share/ifupdown2/addons install -m 644 -D ${S}/bwt-tools/usr/share/ifupdown2/addons/hydra.py ${D}/usr/share/ifupdown2/addons/hydra.py install -m 644 -D ${S}/bwt-tools/opt/bwt/bh2b/firmware/fw/bh2b_fw_sivers.bin ${D}/lib/firmware/bwt/bh2b_fw.bin install -d ${D}/etc/modprobe.d install -d ${D}/home/root install -m 644 -D ${S}/nxp_script/bh2.conf ${D}/etc/modprobe.d/bh2.conf install -m 644 -D ${S}/nxp_script/hint.txt ${D}/home/root/hint.txt install -m 644 -D ${S}/nxp_script/00_fm1-mac3.network ${D}/etc/systemd/network/00_fm1-mac3.network install -m 644 -D ${S}/nxp_script/set_mac.service ${D}/etc/systemd/system/set_mac.service install -m 744 -D ${S}/nxp_script/cpu_test.sh ${D}/usr/bin/cpu_test install -m 744 -D ${S}/nxp_script/wx.sh ${D}/usr/bin/wx install -m 744 -D ${S}/nxp_script/set_mac ${D}/usr/bin/set_mac } FILES:${PN} += "/opt /etc /lib /home /usr/lib /usr/bin /usr/share" INHIBIT_PACKAGE_STRIP = "1" INHIBIT_PACKAGE_DEBUG_SPLIT = "1" inherit systemd SYSTEMD_SERVICE:${PN} = "set_mac.service" -------------------- |
для тестов
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 |
для файл с пакетами выглядит вот так вот: cat ~/yocto-sdk/sources/meta-qoriq/recipes-fsl/packagegroups/packagegroup-nnz-tests.bb # Copyright (C) 2015 Freescale Semiconductor # Released under the MIT license (see COPYING.MIT for the terms) SUMMARY = "nnz Package group for tests" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" PACKAGE_ARCH = "${MACHINE_ARCH}" inherit packagegroup PACKAGES = "${PN}" RDEPENDS:${PN} = " \ lsof \ gdb \ make \ gcc \ cmake \ strace \ mc \ openssh-sftp \ ssh \ nano \ kernel-dev \ linux-libc-headers-dev \ git \ gawk \ kernel-module-bh2 \ bwt-tools \ distro-bootscr \ cryptodev-module \ wpa-supplicant \ iperf3 \ hostapd \ tcpdump \ vim \ ifupdown \ minicom \ screen \ tmux \ dhcpcd \ glibc-utils \ localedef \ p7zip \ htop \ lmsensors \ tzdata \ ntp \ batctl \ batman-adv \ i2c-tools \ iproute2-ss \ init-ifupdown \ fmlib \ fm-ucode \ bmon \ openvswitch \ lsof \ binutils \ zip \ flex \ bison \ findutils \ xz \ curl \ net-snmp \ net-snmp-server-snmpd \ " |