summaryrefslogtreecommitdiff
path: root/yocto/README
diff options
context:
space:
mode:
Diffstat (limited to 'yocto/README')
-rw-r--r--yocto/README155
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 ..