Skip to content
This repository has been archived by the owner on Nov 22, 2022. It is now read-only.

New Kernel install on Jetson AGX #9

Open
fmolinelli opened this issue Oct 11, 2021 · 7 comments
Open

New Kernel install on Jetson AGX #9

fmolinelli opened this issue Oct 11, 2021 · 7 comments

Comments

@fmolinelli
Copy link

Hi,
thank you so much for your great work.

Currently I'm trying to enable open-iscsi on NVIDIA Jetson Xavier AGX module, in order to use on it rancher/longhorn distributed storage.

The standard kernel isn't built with open-iscsi support, so I rebuilt it using the following kernel options:
CONFIG_CRYPTO=y
CONFIG_CRYPTO_CRC32C=y
CONFIG_ISCSI_TCP=m
CONFIG_SCSI_ISCSI_ATTRS=m
CONFIG_SCSI_LOWLEVEL=y
CONFIG_BLK_DEV=y
CONFIG_INET=y

I thoroughly followed your README and didn't see anything wrong

Kernel and modules build correctly, the board reboots fine with the new kernel, at least it seems so (see later...) but 'modprobe iscsi_tcp' fails:
blueadmin@BL-AGX01:/wdir/kernel/buildJetsonXavierKernel$ sudo modprobe iscsi_tcp
[sudo] password for blueadmin:
modprobe: ERROR: could not insert 'iscsi_tcp': Unknown symbol in module, or unknown parameter (see dmesg):
blueadmin@BL-AGX01:/wdir/kernel/buildJetsonXavierKernel$ dmesg | tail
[ 4021.062113] scsi_transport_iscsi: Unknown symbol bsg_request_fn (err 0)
[ 4423.947586] scsi_transport_iscsi: Unknown symbol bsg_setup_queue (err 0)
[ 4423.947789] scsi_transport_iscsi: Unknown symbol bsg_job_done (err 0)
bsglib should be included...
blueadmin@BL-AGX01:~/wdir/kernel/buildJetsonXavierKernel$ grep BSG /usr/src/kernel/kernel-4.9/.config
CONFIG_BLK_DEV_BSG=y
CONFIG_BLK_DEV_BSGLIB=y

Here's my Xavier AGX version:
blueadmin@BL-AGX01:~$ ./jetsonInfo.py
NVIDIA Jetson AGX Xavier [16GB]
L4T 32.6.1 [ JetPack 4.6 ]
Ubuntu 18.04.6 LTS
Kernel Version: 4.9.253-tegra
CUDA 10.2.300
CUDA Architecture: 7.2
OpenCV version: 4.1.1
OpenCV Cuda: NO
CUDNN: 8.2.1.32
TensorRT: 8.0.1.6
Vision Works: 1.6.0.501
VPI: ii libnvvpi1 1.1.12 arm64 NVIDIA Vision Programming Interface library
Vulcan: 1.2.70

Here are the available scsi related kernel modules:
blueadmin@BL-AGX01:~$ find /lib/modules/$(uname -r) -type f -name scs
/lib/modules/4.9.253-tegra/kernel/drivers/scsi/iscsi_tcp.ko
/lib/modules/4.9.253-tegra/kernel/drivers/scsi/libiscsi_tcp.ko
/lib/modules/4.9.253-tegra/kernel/drivers/scsi/scsi_transport_iscsi.ko
/lib/modules/4.9.253-tegra/kernel/drivers/scsi/scsi_transport_srp.ko
/lib/modules/4.9.253-tegra/kernel/drivers/scsi/libiscsi.ko

and here's the iscsi_tcp modinfo:
blueadmin@BL-AGX01:~$ modinfo iscsi_tcp
filename: /lib/modules/4.9.253-tegra/kernel/drivers/scsi/iscsi_tcp.ko
license: GPL
description: iSCSI/TCP data-path
author: Mike Christie michaelc@cs.wisc.edu, Dmitry Yusupov dmitry_yus@yahoo.com, Alex Aizman itn780@yahoo.com
depends: libiscsi,libiscsi_tcp,scsi_transport_iscsi
intree: Y
vermagic: 4.9.253-tegra SMP preempt mod_unload modversions aarch64
parm: max_lun:uint
parm: debug_iscsi_tcp:Turn on debugging for iscsi_tcp module Set to 1 to turn on, and zero to turn off. Default is off. (int)

Thinking I missed some kernel options... or that I failed to install it on the boot dir:

  • copied original Image to Image.backup
  • launched copyImage.sh
  • modifyied /boot/extlinux/extlinux.conf in order to keep an emergency fallback boot with older image

When testing a custom kernel, it is recommended that you create a backup of

the original kernel and add a new entry to this file so that the device can

fallback to the original kernel. To do this:

1, Make a backup of the original kernel

sudo cp /boot/Image /boot/Image.backup

2, Copy your custom kernel into /boot/Image

3, Uncomment below menu setting lines for the original kernel

4, Reboot

LABEL backup
MENU LABEL backup kernel
LINUX /boot/Image.backup
INITRD /boot/initrd
APPEND ${cbootargs}

  • then reboot....
    in fact my running kernel says
    blueadmin@BL-AGX01:~$ uname -a
    Linux BL-AGX01 4.9.253-tegra how to build L4T 32.1.0 #1 SMP PREEMPT Mon Jul 26 12:19:28 PDT 2021 aarch64 aarch64 aarch64 GNU/Linux

my new kernel's compil date should be semothing like MON Oct 11 12:xx:xx .....

Pls can you help me getting the new kernel booted in place of the older one?

Best regards
Flavio

PS
as per NVIDIA Kernel Customization Guide, the boot loader should load the given Image even if not signed ....

@jetsonhacks
Copy link
Owner

Are you running from the eMMC or a NVMe SSD?

@fmolinelli
Copy link
Author

fmolinelli commented Oct 12, 2021 via email

@jetsonhacks
Copy link
Owner

What does the rest of your extlinux.conf look like?
I would suggest that you take a look at the serial console and see where it is trying to load the Image.
Also, check to make sure that the modules are in the correct place.

@fmolinelli
Copy link
Author

fmolinelli commented Oct 13, 2021 via email

@fmolinelli
Copy link
Author

fmolinelli commented Oct 14, 2021 via email

@fmolinelli
Copy link
Author

fmolinelli commented Oct 14, 2021 via email

@jetsonhacks
Copy link
Owner

@fmolinelli I am glad you got something to work.

Without the serial debug kernel, it would have been very difficult indeed to figure out what was going on.
I'll leave your issue open so that others may benefit.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants