I hope this message finds you all well. I am reaching out to seek your expertise and assistance regarding a challenge I’ve encountered with iSCSI storage services on the NVIDIA Jetson AGX Orin platform. My project relies heavily on data management and scalability, making the integration of iSCSI storage networks with the Orin device a critical component of our infrastructure.
Despite thorough setup and configuration efforts, I’ve come across a significant hurdle: the Ubuntu kernel installed on the Jetson AGX Orin does not seem to natively support iSCSI services.
Given the pivotal role of the Jetson AGX Orin in my project and its impressive capabilities, it’s crucial for us to enable iSCSI support. I am seeking any known workarounds, updates, or upcoming plans that might introduce iSCSI support for the Orin platform. Additionally, detailed guidance on manually enabling iSCSI support by compiling the kernel with the necessary modules would be invaluable.
To provide a bit more context based on feedback I’ve received:
L4T Version: My device is running L4T version 35.3.1.
iSCSI Usage: Intended for post-boot operations through a switch, exclusively for read/write tasks, and not during the boot process.
External Storage: No other external storage devices are connected; iSCSI is the sole external storage resource.
OS Storage: The operating system is not running off network storage; the intention is for iSCSI to serve secondary storage purposes.
My lack of familiarity with kernel configuration, especially regarding the enabling of specific modules for iSCSI, prompts me to seek your collective wisdom. Any step-by-step instructions, resources, or examples would be greatly appreciated.
I am eager to explore all avenues to overcome this challenge and would deeply appreciate any insights, suggestions, or guidance the NVIDIA community and support team could offer. Enabling iSCSI storage would significantly bolster the Jetson AGX Orin’s functionality and flexibility for our use case.
Thank you immensely for your time and consideration. I am looking forward to any advice or assistance you can extend.
Hi,
We don’t have much experience in the use-case. This would need other users to check and provide suggestion. For kernel customization, we have a section in developer guide and please take a look: Kernel — NVIDIA Jetson Linux Developer Guide 1 documentation
For the kernel side, start with a kernel which exactly matches the running system’s configuration. Usually this is via using the target tegra_defconfig and manually setting CONFIG_LOCALVERSION to “-tegra”. Sometimes it can be by using “/proc/config.gz” as a .config after gunzip and rename, then manually setting CONFIG_LOCALVERSION. Then use a context-aware editor, such as the menuconfig or nconfig target (nconfig is my favorite since it has symbol search), and try to set what you need as a module.
If all builds, and then you build modules (you have to either build Image first or propagate config with the modules_prepare target), it is a simple case of copying files to the right place and running “sudo depmod -a”. Reboot. Then the kernel modules are available. Don’t use flash if you are just adding compatible modules.
The user space side should be no different on a Jetson than any other Linux system, so configuration and user space programs and such mentioned for a desktop PC would be the same on a Jetson. Sorry, I have not used iSCSI on a Jetson for about a decade, so I don’t remember details other than “it worked quite well with high performance”.
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:
Extracted the kernel source from the provided package:
tar xvf public_sources.tbz2 'Linux_for_Tegra/source/public/kernel_src.tbz2'
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
Set the environment and prepared the kernel configuration:
cd kernel/kernel-5.10
export TOP=`pwd`
make tegra_defconfig
make menuconfig
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.
In the new topic just restate your last reply, and add whether or not you set CONFIG_LOCALVERSION to “-tegra”, and if this was built natively on the Jetson. Also note if this boots to ordinary eMMC, or if it boots to some external storage device.
I am writing to follow up on my previous message regarding the issue I encountered after compiling and installing a new kernel for my device, which now only displays a black screen upon booting. I wanted to provide some additional details that might help in diagnosing the problem:
CONFIG_LOCALVERSION Setting: I have confirmed that I set CONFIG_LOCALVERSION to -tegra during the configuration process. This was intended to ensure compatibility with the Jetson platform’s specific requirements.
Build Environment: The kernel was compiled natively on the Jetson device itself, not via cross-compilation from another system. I believed this would minimize potential discrepancies between the build and the target environment.
Boot Storage: The device boots from the ordinary eMMC storage. There are no external storage devices involved in the boot process, which I hoped would simplify the troubleshooting process.
Additionally, I have opened a new topic on this forum to seek assistance with this matter, but it has been 13 hours without a response. I understand that everyone is busy, but any guidance or suggestions you could offer would be greatly appreciated. My device is crucial to my ongoing projects, and I am eager to resolve this issue as quickly as possible.
Thank you again for your time and support. I look forward to any insights you may be able to provide.
In Orin, fix the black screen. This is not required on Xavier.
a. Flash the system into your Jetson device.
b. At the first boot, log in, type sudo depmod -a, and then reboot. The GUI should now be back.
You should not hit the issue if you use non-RT kernel image. But may give it a try in first boot after flashing the image.
Can you attach the most recent serial console boot log? If serial console login works, also post the output of these commands (if you are running serial console logging, then this would be captured in the log):
uname -r
lsmod
Either “zcat /proc/config.gz” or actually attach config.gz (e.g., scp copy if networking is up).