guowenxue
2024-07-26 9cf87703eb60e121b47e6d577ea2bc6b63bd4ac4
yocto/meta-igkboard/images/yocto-image-full.bb
@@ -1,33 +1,26 @@
SUMMARY = "A console lite image for production"
SUMMARY = "A multimedia wth full command image for production"
LICENSE = "MIT"
inherit core-image
inherit extrausers
inherit populate_sdk_qt6_base
# additional free disk space created in Kbytes
#IMAGE_OVERHEAD_FACTOR = "1.0"
#IMAGE_ROOTFS_EXTRA_SPACE = "512000"
inherit extrausers
# Create the password hash with following command on host:
# >> mkpasswd -m sha256crypt password -S abcd6789
# Remember to escape the character $ in the resulting hash
CONFLICT_DISTRO_FEATURES = "directfb"
# Set the root password:
#PASSWD="\$5\$abcd6789\$Vuv1aLz04ZwhxgsB3lOQbwy1XUS6PJ.8h2A7.9HoUd3"
EXTRA_USERS_PARAMS = "\
    usermod -p '${PASSWD}' root; \
"
## Select Image Features
# Select Image Features
IMAGE_FEATURES += " \
    hwcodecs \
    ssh-server-openssh \
    package-management \
    ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'weston', \
       bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11-base x11-sato', '', d), d)} \
"
CONFLICT_DISTRO_FEATURES = "directfb"
CORE_IMAGE_EXTRA_INSTALL += " \
CORE_IMAGE_EXTRA_INSTALL_BASE += " \
    packagegroup-base-wifi \
    packagegroup-imx-isp \
    packagegroup-imx-security \
@@ -37,27 +30,56 @@
    packagegroup-core-ssh-openssh \
    packagegroup-fsl-gstreamer1.0 \
    packagegroup-fsl-gstreamer1.0-full \
    packagegroup-qt6-modules \
    packagegroup-fsl-tools-benchmark \
    packagegroup-fsl-opencv-imx \
    packagegroup-qt6-essentials \
    packagegroup-misc-utils \
    ${@bb.utils.contains('DISTRO_FEATURES', 'x11 wayland', 'weston-xwayland xterm', '', d)} \
"
CORE_IMAGE_EXTRA_INSTALL += " \
    kernel-modules \
CORE_IMAGE_EXTRA_INSTALL_BASE += " \
    kernel-modules hello-app hello-mod \
    rtl8188fu rtl8723du \
    firmwared linux-firmware \
    powertop tzdata ppp vim \
    xz lrzsz rsync dos2unix \
    gnupg parted inetutils \
    hostapd wireless-tools iw \
    i2c-tools spidev-test \
    libgpiod libgpiod-tools \
    i2c-tools spidev-test spitools \
    libgpiod libgpiod-tools mosquitto \
    fb-test fbgrab libdrm ffmpeg \
    opencv zbar v4l-utils yavta \
    alsa-state pulseaudio-server \
    python3 python3-pip tmux \
    openssh-sftp openssh-sftp-server \
    memtester pcsc-tools stunnel ntp \
    curl evtest cpufrequtils iperf3 \
    dosfstools ethtool iproute2 \
    dosfstools ethtool iproute2 modemmanager \
    e2fsprogs-mke2fs e2fsprogs-resize2fs \
    cryptodev-module openssl-bin \
    libsocketcan can-utils canutils \
    ${@bb.utils.contains('DISTRO_FEATURES', 'x11 wayland', 'weston-xwayland xterm', '', d)} \
"
# For machine igkboard-imx6ull
CORE_IMAGE_EXTRA_INSTALL = " \
    ${CORE_IMAGE_EXTRA_INSTALL_BASE} \
"
# For machine igkboard-imx8mp
CORE_IMAGE_EXTRA_INSTALL:igkboard-imx8mp = " \
    ${CORE_IMAGE_EXTRA_INSTALL_BASE} \
    packagegroup-fsl-tools-gpu \
    packagegroup-fsl-tools-gpu-external \
    ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'weston-init', '', d)} \
    git gcc gcc-symlinks binutils automake cmake autoconf freerdp \
"
# Set the root password:  >> mkpasswd -m sha256crypt 123456 -S abcd6789
# Remember to escape the character $ in the resulting hash
#PASSWD="\$5\$abcd6789\$2ayD.ZPdq5xejNiyE3XC3qCpkGZ.brSE5H0zSECVBSB"
EXTRA_USERS_PARAMS = "\
    usermod -p '${PASSWD}' root; \
"
modify_rootfs() {
@@ -75,18 +97,22 @@
    # remove unsed test apps
    rm -rf ${IMAGE_ROOTFS}/unit_tests
    # remove unused license files
    rm -rf ${IMAGE_ROOTFS}/lib/firmware/LICEN*
    rm -rf ${IMAGE_ROOTFS}/lib/firmware/*.ucode
    rm -rf ${IMAGE_ROOTFS}/lib/firmware/*.pnvm
    # remove unsed firmware
    mkdir -p ${IMAGE_ROOTFS}/lib/firmware/.bak
    mv ${IMAGE_ROOTFS}/lib/firmware/imx* ${IMAGE_ROOTFS}/lib/firmware/.bak
    mv ${IMAGE_ROOTFS}/lib/firmware/nxp* ${IMAGE_ROOTFS}/lib/firmware/.bak
    mv ${IMAGE_ROOTFS}/lib/firmware/mediatek ${IMAGE_ROOTFS}/lib/firmware/.bak
    mv ${IMAGE_ROOTFS}/lib/firmware/mt76* ${IMAGE_ROOTFS}/lib/firmware/.bak
    mv ${IMAGE_ROOTFS}/lib/firmware/rtl* ${IMAGE_ROOTFS}/lib/firmware/.bak
    rm -rf ${IMAGE_ROOTFS}/lib/firmware/*
    mv ${IMAGE_ROOTFS}/lib/firmware/.bak/* ${IMAGE_ROOTFS}/lib/firmware/
    rm -rf ${IMAGE_ROOTFS}/lib/firmware/.bak
    rm -rf ${IMAGE_ROOTFS}/lib/firmware/3com*
    rm -rf ${IMAGE_ROOTFS}/lib/firmware/[a-h]*
    rm -rf ${IMAGE_ROOTFS}/lib/firmware/i[9ns]*
    rm -rf ${IMAGE_ROOTFS}/lib/firmware/[j-l]*
    rm -rf ${IMAGE_ROOTFS}/lib/firmware/me[ls]*
    rm -rf ${IMAGE_ROOTFS}/lib/firmware/m[aiortwy]*
    rm -rf ${IMAGE_ROOTFS}/lib/firmware/n[ev]*
    rm -rf ${IMAGE_ROOTFS}/lib/firmware/[o-q]*
    rm -rf ${IMAGE_ROOTFS}/lib/firmware/r[18aops]*
    rm -rf ${IMAGE_ROOTFS}/lib/firmware/[s-z]*
}
ROOTFS_POSTPROCESS_COMMAND += "modify_rootfs; doclean_rootfs; "
ROOTFS_POSTPROCESS_COMMAND += " modify_rootfs; doclean_rootfs; "