diff options
Diffstat (limited to 'yocto/README')
| -rw-r--r-- | yocto/README | 155 |
1 files changed, 131 insertions, 24 deletions
diff --git a/yocto/README b/yocto/README index ef99121..8e63844 100644 --- a/yocto/README +++ b/yocto/README @@ -7,6 +7,8 @@ https://developer.toradex.com/linux-bsp/os-development/build-yocto/build-a-refer https://developer.toradex.com/linux-bsp/os-development/build-u-boot-and-linux-kernel-from-source-code/build-u-boot/ https://developer.toradex.com/linux-bsp/os-development/build-u-boot-and-linux-kernel-from-source-code/build-linux-kernel-from-source-code/ https://developer.toradex.com/linux-bsp/os-development/build-u-boot-and-linux-kernel-from-source-code/build-device-tree-overlays-from-source-code/ +https://developer.toradex.com/linux-bsp/os-development/build-yocto/custom-meta-layers-recipes-and-images-in-yocto-project-hello-world-examples/ +https://developer.toradex.com/linux-bsp/os-development/build-yocto/device-tree-overlays-linux - install dependencies: # dependencies for yocto: @@ -18,7 +20,7 @@ apt-get install bc build-essential git libncurses5-dev lzop perl libssl-dev biso apt-get install u-boot-tools # dependencies for kernel: - apt-get install bc build-essential git libncurses5-dev lzop perl libssl-dev bison flex +apt-get install bc build-essential git libncurses5-dev lzop perl libssl-dev bison flex apt-get install u-boot-tools locale-gen en_US.UTF-8 @@ -43,12 +45,9 @@ curl https://commondatastorage.googleapis.com/git-repo-downloads/repo > bin/repo chmod 755 bin/repo - install the ARM GCC toolchain: -mkdir arm -cd arm wget https://developer.arm.com/-/media/Files/downloads/gnu/14.2.rel1/binrel/arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-linux-gnu.tar.xz tar xvf arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-linux-gnu.tar.xz ln -s arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-linux-gnu gcc-linaro-aarch64 -cd .. - install device tree compiler tool: git clone https://git.kernel.org/pub/scm/utils/dtc/dtc.git -b v1.7.2 @@ -74,13 +73,15 @@ yocto image ----------- - clone meta-information +cd /build mkdir oe-core cd oe-core -# branch: repo init -u git://git.toradex.com/toradex-manifest.git -b scarthgap-7.x.y -m tdxref/default.xml +# branch: +repo init -u git://git.toradex.com/toradex-manifest.git -b scarthgap-7.x.y -m tdxref/default.xml # specific tag: -repo init -u git://git.toradex.com/toradex-manifest.git -b refs/tags/7.1.0 -m tdxref/default.xml +# repo init -u git://git.toradex.com/toradex-manifest.git -b refs/tags/7.1.0 -m tdxref/default.xml repo sync -# repeat sync until successful +# repeat repo sync until successful - setup environment: . export @@ -90,17 +91,82 @@ vi conf/local.conf ... # set MACHINE: MACHINE ?= "verdin-imx8mp" -# append: +... +# set debian packages +PACKAGE_CLASSES ?= "package_deb" +... +# set distro +DISTRO ?= "mikrophone" +... +# append ACCEPT_FSL_EULA = "1" -TOOLCHAIN_TARGET_TASK:append = " kernel-devsrc" + +- append mikrophone layer: +vi conf/bblayers.conf +# append to BBLAYERS variable: +BBLAYERS ?= " \ ... + ${TOPDIR}/../layers/meta-mikrophone \ +" -- build: -bitbake -k tdx-reference-minimal-image -c populate_sdk +# copy yocto/meta-mikrophone to ../layers/ dir from mikroPhone repo + +- build image: +bitbake -k mikrophone-image +bitbake -k mikrophone-image -c populate_sdk + +- install sdk: +deploy/sdk/mikrophone-glibc-x86_64-mikroPhone-Image-armv8a-verdin-imx8mp-toolchain-7.x.y.sh +# install into: /build/tdx-xwayland/7.x.y + +- prepare sdk for building kernel modules: +vi /build/tdx-xwayland/7.x.y/environment-setup-armv8a-tdx-linux +... +# append +export KERNEL_SRC="$SDKTARGETSYSROOT/lib/modules/6.x.y-$OECORE_SDK_VERSION-devel/build" +... + +. /build/tdx-xwayland/7.x.y/environment-setup-armv8a-tdx-linux +cd /build/tdx-xwayland/7.x.y/sysroots/armv8a-tdx-linux/usr/lib/modules/6.x.y-7.x.y-devel/build +make prepare - machine.conf in: layers/meta-toradex-nxp/conf/machine/verdin-imx8mp.conf -- distro.conf in: layers/meta-toradex-distro/conf/distro/*.conf -- demo images in: layers/meta-toradex-demos/recipes-images/images/*.bb + layers/meta-mikrophone/conf/machine/include/verdin-imx8mp.inc +- mikrophone distro.conf in: layers/meta-mikrophone/conf/distro/mikrophone.conf +- mikrophone images in: layers/meta-mikrophone/recipes-images/images/mikrophone-image.bb + +- deployable tarballs in: build/deploy/images/verdin-imx8mp/ +- deployable sdk in: build/deploy/sdk/ + +- toradex distro.conf in: layers/meta-toradex-distro/conf/distro/*.conf +- toradex demo images in: layers/meta-toradex-demos/recipes-images/images/*.bb + + +upgrade yocto image +------------------- + +- upgrade yocto: +. /build/tools/start.sh +cd /build/oe-core +repo sync + +- build image: +. export +bitbake -k mikrophone-image +bitbake -k mikrophone-image -c populate_sdk + +- to launch TEZI installer: insert sdcard, reboot linux then stop u-boot auto boot and type: +setenv fdtfile imx8mp-verdin-wifi-dev.dtb +boot + + +install image (Tezi) +-------------------- + +Verdin iMX8MP # editenv fdtfile +edit: imx8mp-verdin-wifi-dev.dtb +Verdin iMX8MP # boot + u-boot ------ @@ -149,31 +215,72 @@ git clone -b toradex_6.6-2.1.x-imx git://git.toradex.com/linux-toradex.git cd linux-toradex git checkout 3493ccd66900420e2462daf4db187b315b50469e cp ../oe-core/build/deploy/images/verdin-imx8mp/kernel-config .config +# enable vivante gpu driver +# should be exactly the same as kernel module from NXP's linux-imx buit by oe-core +# diff -ur ../linux-imx/drivers/mxc/gpu-viv drivers/mxc/gpu-viv +vi .config +... +CONFIG_MXC_GPU_VIV=m +... # verify config make olddefconfig # copy yocto/kernel_lvds_freq.patch from mikroPhone repo # apply LVDS patch patch < ../kernel_lvds_freq.patch -# build kernel and dtb -make -j$(nproc) Image.gz 2>&1 | tee build.log -make freescale/imx8mp-verdin-wifi-dev.dtb +# build kernel (remove + from kernel version string) +make LOCALVERSION= -j$(nproc) Image.gz 2>&1 | tee build.log # ls ./arch/arm64/boot/Image.gz -# ls ./arch/arm64/boot/dts/freescale/imx8mp-verdin-wifi-dev.dtb # build kernel modules -make -j$(nproc) modules 2>&1 | tee build.log -mkdir modules -INSTALL_MOD_PATH=`pwd`/modules make modules_install -cd modules -tar -czf ../modules.tar.gz . +make LOCALVERSION= -j$(nproc) modules 2>&1 | tee build.log +# copy Module.symvers if there are some additional function exports: EXPORT_SYMBOL_GPL(...) +cp Module.symvers /build/tdx-xwayland/7.x.y/sysroots/armv8a-tdx-linux/usr/lib/modules/6.x.y-7.x.y-devel/build/ +make INSTALL_MOD_PATH=modules modules_install +# build dtb +cp ../oe-core/layers/meta-mikrophone/recipes-kernel/linux/linux-toradex/*.dts arch/arm64/boot/dts/freescale/ +cp ../oe-core/layers/meta-mikrophone/recipes-kernel/linux/linux-toradex/*.dtsi arch/arm64/boot/dts/freescale/ +make DTC_FLAGS="-@" freescale/imx8mp-verdin-nonwifi-mikrophone.dtb +make DTC_FLAGS="-@" freescale/imx8mp-verdin-wifi-mikrophone.dtb +# ls ./arch/arm64/boot/dts/freescale/*.dtb +# deploy +tar -czf modules.tar.gz modules/ +scp ./arch/arm64/boot/Image.gz root@mikrophone:/boot/ +scp ./arch/arm64/boot/dts/freescale/*.dtb root@mikrophone:/boot/ +scp modules.tar.gz root@mikrophone:. + + +esp32mod +-------- + +- setup environment: +. /build/tdx-xwayland/7.x.y/environment-setup-armv8a-tdx-linux + +- build: +# copy yocto/esp32mod from mikroPhone repo +cd esp32mod +make +cd .. + + +esp32tun +-------- + +- setup environment: +. /build/tdx-xwayland/7.x.y/environment-setup-armv8a-tdx-linux + +- build: +# copy yocto/esp32tun from mikroPhone repo +cd esp32tun +make cd .. -overlay -------- +overlays +-------- # toradex overlays (match branch to kernel branch) # git clone -b toradex_6.6-2.1.x-imx git://git.toradex.com/device-tree-overlays.git # copy yocto/overlays from mikroPhone repo cd overlays STAGING_KERNEL_DIR=../linux-toradex make mikroPhone-panel_overlay.dtbo +STAGING_KERNEL_DIR=../linux-toradex make mikroPhone-esp32_overlay.dtbo cd .. |
