Jetson AGX orin recompiled the kernel because the iscsi service was not configured, but the reboot went black

Dear NVIDIA Forum Community,

I’ve encountered a critical issue after attempting to compile and install a new kernel for my device, following the steps outlined below. After completing the process and rebooting, my device only displays a black screen, showing no signs of booting properly.

Here are the steps I took:

  1. Extracted the kernel source from the provided package:
tar xvf public_sources.tbz2 'Linux_for_Tegra/source/public/kernel_src.tbz2'
  1. Renamed and organized the kernel source for clarity and to avoid conflicts with other releases:
mv -i Linux_for_Tegra/source/public/kernel_src.tbz2 kernel_src-R35-3-1.tbz2
rm -Rf ./Linux_for_Tegra
mkdir R35-3-1
cd R35-3-1
mv -i ../kernel_src-R35-3-1.tbz2 .
tar xvfj ./kernel_src-R35-3-1.tbz2
rm ../public_sources.tbz2
  1. Set the environment and prepared the kernel configuration:
cd kernel/kernel-5.10
export TOP=`pwd`
make tegra_defconfig
make menuconfig
  1. Compiled the kernel and modules, then installed them:
make prepare
make modules_prepare
time make -j8 Image
time make -j8 modules
sudo make modules_install
sudo cp arch/arm64/boot/Image /boot/Image

After completing these steps and rebooting, my device no longer boots up, instead displaying a black screen. I carefully followed the provided instructions, ensuring that each step was correctly executed. However, it seems something might have gone wrong during the process.

Could you please offer some guidance on what might have caused this issue and how I can resolve it? This situation is quite pressing, as the device is crucial for my ongoing projects. Additionally, if there are specific logs or information I should gather to aid in diagnosing the problem, please let me know.

Thank you very much for your support and assistance.

Best regards,

Building display drivers is also required:
https://docs.nvidia.com/jetson/archives/r35.5.0/DeveloperGuide/SD/Kernel/KernelCustomization.html#to-build-display-kernel-modules

Thank you very much for your information on kernel compilation and building display drivers. This is very helpful in understanding the entire kernel customization process.

However, my most pressing problem right now is that my Orin device won’t start. After I tried to follow the instructions to compile and install the kernel, the device rebooted with a black screen and could not enter the system. I would like to ask if there are any specific steps or recommendations that can help me diagnose and solve this startup problem?

Build the display driver, re-flash the device, login to the device with serial console, run

sudo depmod -a

, and reboot the device.

It’s similar to instructions for building the RT kernel:
https://docs.nvidia.com/jetson/archives/r35.5.0/DeveloperGuide/SD/Kernel/KernelCustomization.html#to-build-the-real-time-kernel

I’ve logged into the serial console, executed Sudo depmod-a, and restarted orin, but it’s still black

Are you sure nvidia-drm.ko , nvidia.ko , and nvidia-modeset.ko are available under
/usr/lib/modules/$(uname -r)/extra/opensrc-disp/?

Also, is the display showing if you don’t re-build kernel?

I appreciate your suggestion and the reference to the NVIDIA documentation on kernel customization at Kernel Customization — NVIDIA Jetson Linux Developer Guide 1 documentation. However, I did not follow those exact steps for compiling the kernel. I’ve detailed my specific steps at the beginning of my post.

After experiencing a black screen issue, I attempted to troubleshoot by accessing the serial console and executing sudo depmod -a, followed by a reboot. Unfortunately, this did not resolve the issue, and the display remained black. Additionally, I verified the status of iSCSI related services using zcat /proc/config.gz | grep -i 'iscsi', and found that iSCSI services are still disabled.

In an attempt to resolve the issue, I decided to try the kernel compilation method you provided earlier. However, when I executed $ ./nvbuild.sh -o $PWD/kernel_out, the process failed.

Could you offer any further advice or insight into what might be going wrong or any additional steps I should take?

Put the log here. Don’t just say the process failed.

So it already told you:

make ARCH=arm64 mrproper

2024-04-11 17-04-47屏幕截图

build kernel的問題麻煩你自己解決
這已經跟NV的東西沒什麼關係了
我們確定照文件上的步驟build display driver是沒問題的

If I just download the kernel source code and don’t configure the kernel, it will compile fine, but when I do ‘make tegra_defconfig‘
, ‘make menuconfig‘ to configure the SICSI service, or just ‘make tegra_defconfig‘, it will not compile.

你就是要先跑make tegra_defconfig才會生出.config檔才能繼續編譯
不config是要編什麼東西…
你去看nvbuild.sh裡面也是做一樣的事情

But when I finish configuring and generate the .config file, then execute the compilation step ‘./nvbuild.sh -o $PWD/kernel_out’, it requires me to execute ‘sudo make mrproper’, which deletes the previously generated .config file.

nvbuild.sh會call make tegra_defconfig
你要自己改kernel config的話就麻煩把那一段刪掉,不然你原本改好的當然會被蓋過去

I am afraid that it is troublesome to delete the wrong thing. Please tell me which line to delete

	"${MAKE_BIN}" -C "${source_dir}" ARCH=arm64 \
		LOCALVERSION="-tegra" \
		CROSS_COMPILE="${CROSS_COMPILE_AARCH64}" \
		"${O_OPT[@]}" "${config_file}"

這一段

2024-04-12 15-38-08屏幕截图
I made sure to delete this paragraph, but the same error occurred

不然你試試看make savedefconfig 把你生出來的.config檔再存回去變成tegra_defconfig
然後其他都請照文件上的操作

沒有external modules的話這兩步都不需要

I followed the steps below to compile and install the kernel. I was able to compile and install the kernel successfully, but the graphical interface was not displayed. I can now control it only through the serial console。The steps are as follows:

export TEGRA_KERNEL_OUT=pwd
sudo make mrproper
make O=$TEGRA_KERNEL_OUT tegra_defconfig
make O=$TEGRA_KERNEL_OUT menuconfig
sudo nano .config# modify LOCALVERSION=‘-tegra’

Compile kernel image and kernel modules

time make -j12 Image
time make -j12 modules

Install modules and kernel image

$ sudo make modules_install
$ sudo cp arch/arm64/boot/Image /boot/Image

sudo depmod -a
sudo reboot