Jetson nano and iscsi module support

Hi,

Im trying to run iscsi service in my jetson nano, and I found out is not supported in the kernel.

I’ve found this post with a possible fix to compile the kernel Jetson NANO iSCSI module

I have a really basic question, but can remember lastime I did this:

Anyone knows where I can find a simple guide how to compile a kernel like I need it and put it into the jetson nano?

thanks

Are you cross compiling from a host PC, or natively compiling from the Jetson? The official docs tell you how to do this if cross compiling.

Kernel customization (via cross-compile) is shown here in the “Kernel Customization” section:
https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/kernel_custom.html

Note that many features are available in the format of a module. This is by far the easiest way to create and install content since no flash is required…it is a simple file copy. Some more invasive features do require building a new kernel, which in turn also requires building and installing all new modules as well. Stick to modules if the feature is available as a module, and avoid flashing for installation. Unless you’ve enabled security keys you can use file copies and ignore flash (there are some cases where flash is better though).

FYI, if you want to know how to leave the original boot entry installed and able to be selected via serial console during boot, just ask. If you install only a module you don’t have to worry about a failed module, but if you install a new kernel Image file, then a failure will stop the system from booting unless you have the original Image set up for select via serial console.

Here is the problem I’m facing, maybe is better to explain this to see if recompiling a kernel with iSCSI support will fix the problem.

I’m trying to use my jetsnano in a Kubernetes cluster using k3s. As part of a kubernetes cluster (Kubernetes is a tool to handle many machines from a central place to deploy apps) I want to use Longhorn to manage storage.

Longhorn requires iSCSI on each machine with storage to share it in the cluster, my Jetsnano has a 500gb SSD.
I need to install open-iscsi and nfs-common.
open-iscsi works as a service, and when I check if the service is running in my Jestnano I see the following:

$ systemctl status iscsid.service
iscsid.service - iSCSI initiator daemon (iscsid)
   Loaded: loaded (/lib/systemd/system/iscsid.service; enabled; vendor preset: enabled)
   Active: activating (start) since Sun 2022-01-09 21:11:26 GMT; 6s ago
     Docs: man:iscsid(8)
  Process: 426 ExecStart=/sbin/iscsid (code=exited, status=0/SUCCESS)
  Process: 407 ExecStartPre=/lib/open-iscsi/startup-checks.sh (code=exited, status=0/SUCCESS)
    Tasks: 0 (limit: 4181)
   CGroup: /system.slice/iscsid.service

Jan 09 21:11:26 quino systemd[1]: Starting iSCSI initiator daemon (iscsid)...
Jan 09 21:11:26 quino iscsid[426]: iSCSI logger with pid=431 started!
Jan 09 21:11:26 quino systemd[1]: iscsid.service: Failed to parse PID from file /run/iscsid.pid: Invalid argument
$ journalctl -e -f -u iscsid
-- Logs begin at Sun 2022-01-09 02:44:58 GMT. --
Jan 09 18:16:57 quino systemd[1]: iscsid.service: Failed to parse PID from file /run/iscsid.pid: Invalid argument
Jan 09 18:16:57 quino iscsid[21406]: iSCSI daemon with pid=21412 started!
Jan 09 18:16:57 quino iscsid[21406]: can not create NETLINK_ISCSI socket
Jan 09 18:18:27 quino systemd[1]: iscsid.service: Start operation timed out. Terminating.
Jan 09 18:18:27 quino systemd[1]: iscsid.service: Failed with result 'timeout'.
Jan 09 18:18:27 quino systemd[1]: Failed to start iSCSI initiator daemon (iscsid).

From this post open-iscsi installation failed on TX1/TX2 Jetpack3.0/3.1 -- ubuntu 16.04 - #8 by asnail I can see the last comment saying “issue resolved with kernel missed iscsi initiator configuration.”
Does that mean I need to recompile the kernel with iscsi support?

Checking your answer on that post, is a configuration issue, no need it to recompile the kernel

It has been some time since I looked at iSCSI, so I don’t remember the requirements, but what do you see from "zcat /proc/config.gz | grep -i 'iscsi'? The default would be none of those. Any official document for Ubuntu or Linux on the topic would mention which features to enable, and this would be no different on a Jetson than it is on a desktop PC.

There is a difference in the procedure for installing those changes should you compile something, and not all features can be made as a module, but I suggest that if you can you make all of those features in the format of a module. Either way you can ask more about install once the right features are found.

it shows:

root@quino:/home/uqbar# zcat /proc/config.gz | grep -i 'iscsi'
# CONFIG_SCSI_ISCSI_ATTRS is not set
# CONFIG_ISCSI_TCP is not set
# CONFIG_ISCSI_BOOT_SYSFS is not set
# CONFIG_SCSI_CXGB3_ISCSI is not set
# CONFIG_SCSI_CXGB4_ISCSI is not set
# CONFIG_SCSI_BNX2_ISCSI is not set
# CONFIG_BE2ISCSI is not set
# CONFIG_SCSI_QLA_ISCSI is not set

I’m reading whats I need to do to make it work.

Once you have that information, if you need tips on building and installing, then that can be answered. Hopefully it can all be built as a module (or at least the features for the iSCSI).

Incidentally, I have used this before as a method of access for cloning from a failing system to a new drive via a Jetson in-between. Long ago I experimented with this, and found the performance to be quite good on a Jetson despite the difficulty in initial setup.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.