Many services failed to start after deploy my kernel and modules which were built following offical guide

hardware and base software

I use dahlia v1.1C + verdin.
I installed the official release of the standard image. Verdin-iMX8MP_Reference-Multimedia-Image-Tezi_6.3.0+build.7.

# cat /etc/os-release 
ID=tdx-xwayland
NAME="TDX Wayland with XWayland"
VERSION="6.3.0+build.7 (kirkstone)"
VERSION_ID=6.3.0-build.7
PRETTY_NAME="TDX Wayland with XWayland 6.3.0+build.7 (kirkstone)"
DISTRO_CODENAME="kirkstone"

My purpose

I need to add my own peripheral module and compile it into the Image. For the first step, I want to compile a standard image and successfully replace it. However, I encountered a failure in this step.

My operation

I downloaded the code for the kernel using the following command. Then, I followed this article to compile it and obtained the Image.gz and modules.

git clone -b toradex_5.15-2.1.x-imx git://git.toradex.com/linux-toradex.git linux --depth 1
git clone -b toradex_5.15-2.1.x-imx git://git.toradex.com/device-tree-overlays.git device-trees --depth 1

The problems encountered

I successfully replaced the Image and modules into the current board. However, the system encountered the following error during startup.

[  OK  ] Started Serial Getty on ttymxc2.
[  OK  ] Reached target Login Prompts.
[FAILED] Failed to start User Login Management.
See 'systemctl status systemd-logind.service' for details.
[  OK  ] Reached target Multi-User System.
         Starting Weston, a Wayland…ositor, as a system service...
Feb 23 05:53:50 verdin-imx8mp-14773666 authpriv.info systemd: pam_unix(weston-autologin:session): session opened for user root(uid=0) by (uid=0)
[  OK  ] Stopped BlueALSA service.
[FAILED] Failed to start BlueALSA service.
See 'systemctl status bluealsa.service' for details.
[  OK  ] Stopped User Login Management.
         Starting Load Kernel Module drm...
         Starting User Database Manager...
[  OK  ] Finished Load Kernel Module drm.
[FAILED] Failed to start User Login Management.
See 'systemctl status systemd-logind.service' for details.
[  OK  ] Stopped User Login Management.
         Starting Load Kernel Module drm...
[  OK  ] Started User Database Manager.
[  OK  ] Finished Load Kernel Module drm.
[FAILED] Failed to start User Login Management.
See 'systemctl status systemd-logind.service' for details.
[FAILED] Failed to start Weston, a …mpositor, as a system service.
See 'systemctl status weston.service' for details.
[  OK  ] Reached target Graphical Interface.
[  OK  ] Stopped User Login Management.
[FAILED] Failed to start Load Kernel Module drm.
See 'systemctl status modprobe@drm.service' for details.
[FAILED] Failed to start User Login Management.
See 'systemctl status systemd-logind.service' for details.
         Starting Record Runlevel Change in UTMP...
[  OK  ] Finished Record Runlevel Change in UTMP.

My assumptions and requests.

I noticed that the downloaded image used the aarch64-tdx-linux-gcc compiler, which is different from the one mentioned in the article. Is this related to the issue? Can you provide some guidance?

Hello @xumm,

Thanks for reporting this!
I have run across a similar problem during one of my tests. I figured out that these failing services were caused by some changes in the file permissions while extracting and copying the modules into the target. I could solve it by installing the modules as root:

After the kernel modules are compiled successfully, extract them as follows into a temporary file location (for example into /tmp on your host machine):

$ sudo -E env "PATH=$PATH" make INSTALL_MOD_PATH=/tmp/ modules_install

This creates a directory called lib in /tmp. Compress it into a file named modules.tar.gz:

user@build-machine:/tmp$ tar -czvf modules.tar.gz lib

Use scp to copy the tarball into your target:

user@build-machine:/tmp$ scp modules.tar.gz root@<target-ip>:/home/root

Extract the tarball in the rootfs and reboot the module, This should solve the problem.