RSB-3720 Ubunut creation by Yocto30 kernel
From ESS-WIKI
Contents
Prepare Image
- Build Yocto Linux image with your expected version (e.g. A0386)
- You can follow this SOP to build your Yocto image.
- Modify kernel to "Add commit to support the Ubuntu desktop version"
- Prepare Ubuntu image (e.g. A0362)
Mount image
- You can find Yocto image in${WORKSPACE}/build/tmp/deplay/image/${MC}, and copy to your ${WORKSPACE}.
$ sudo cp –a imx-image-${MC}-20230816082527.rootfs.wic.bz2 ${WORKSPACE}.
- Unpack rootfs.wic
$sudo bzip2 -d ${rootfs.wic_IMAGE}.bz2
- Create folders to mount
$mkdir ubuntu yocto
$mkdir ubuntu/rootfs yocto/rootfs
- Mount Yocto image and Ubuntu image Partition2
$sudo losetup --show -f -P ${rootfs.wic_IMAGE}
$sudo mount /dev/loop22p2 yocto/rootfs/
$sudo losetup --show -f -P 3720A1AIM30UIVA0362_iMX8MP_4G_2021-11-29.img
Change rootfs
- Copy Yocto module to ${WORKSPACE}, then you can find Yocto module in rootfs/lib
$ sudo cp -a yocto/rootfs/lib/modules/ /home/adv/
- Delete under Yocto rootfs all files, and replace with Ubuntu rootfs
$ sudo rm -rf yocto/rootfs/
$ sudo cd ubuntu/rootfs/
$ sudo cp -a bin boot dev etc home lib media mnt opt proc root run sbin srv swapfile sys tmp usr var ~/yocto/rootfs/
- Replace with Yocto module
$ cd ~/yocto/roosfs/lib
$ sudo rm -rf modules/
$ sudo cp -a ~/modules ~/yocto/rootfs/lib/
Analyze dependency file
- Enter target image root directory
$ sudo chroot rootfs/
- Analyze file replaced by module dependencies
$ depmod -a 5.4.70-2.3.0/
Umount target image
- Umount rootfs
$ exit
$ sudo umount ~/yocto/rootfs/
$ sudo umount ~/ubuntu/rootfs/
- Remove virtual device
$ sudo losetup -d /dev/loop22
$ sudo losetup -d /dev/loop23
Flash target image
- Creating boot-up on-board flash from built sdcard image
$ sudo dd if=${rootfs.wic_IMAGE} of=${SD_DEVICE} bs=1M conv=fsync
Complete
- Pleace insert SDcard to target machine and booting, You can see Ubuntu Desktop on the monitor.