1 1
ejolson

NanoPC T3 Kernel with iSCSI support

Recommended Posts

I am trying to set up Armbian as an iSCSI initiator using open-iscsi.  The result is


Mar 15 03:07:13 matrix iscsid[2207]: iSCSI logger with pid=2208 started!
Mar 15 03:07:13 matrix systemd[1]: iscsid.service: Failed to parse PID from file /run/iscsid.pid: Invalid argument
Mar 15 03:07:13 matrix iscsid[2208]: iSCSI daemon with pid=2209 started!
Mar 15 03:07:13 matrix iscsid[2208]: can not create NETLINK_ISCSI socket
Mar 15 03:08:43 matrix systemd[1]: iscsid.service: Start operation timed out. Terminating.
Mar 15 03:08:43 matrix systemd[1]: iscsid.service: Failed with result 'timeout'.

with a timeout of around 90 seconds.  I'm running the kernel


Linux matrix 4.14.171-s5p6818 #24 SMP Mon Feb 17 06:09:30 CET 2020 aarch64 GNU/Linux

in the Buster image.  It would appear from /boot/config-4.14.171-s5p6818 that


# CONFIG_SCSI_ISCSI_ATTRS is not set
# CONFIG_SCSI_SAS_ATTRS is not set
# CONFIG_SCSI_SAS_LIBSAS is not set
# CONFIG_SCSI_SRP_ATTRS is not set
CONFIG_SCSI_LOWLEVEL=y
# CONFIG_ISCSI_TCP is not set
# CONFIG_ISCSI_BOOT_SYSFS is not set

That ISCSI_TCP is not set for ISCSI_ATTRS.  On a Raspberry Pi (also based on Buster) with the default Raspbian kernel the modules


iscsi_tcp              20480  2
libiscsi_tcp           28672  1 iscsi_tcp
libiscsi               57344  2 libiscsi_tcp,iscsi_tcp

automatically load and all is well.  However, I can't get Armbian to work.  I think I might need to recompile the kernel, but am not very excited to do so.  A web search also indicated that incorrectly configured selinux could cause the same problem, but I don't think selinux is running.  Does anyone know what's wrong and how to fix it?

Share this post


Link to post
Share on other sites
6 hours ago, ejolson said:

with the default Raspbian kernel the modules

 

Raspberry Pi is a proprietary Videocore architecture (with added ARM cores) which hasn't changed (much) in past 10 years and has a large herd playing with it. Here we are operating with 10-15 ARM sub architectures, some supported by noone. We used to maintain 40 different kernels, now we "only" have 34 of them. RPi kernel is just one. X86 kernel is also just one. Actually both are in two binaries. One 32bit and one 64bit.


Kernels for Armbian supported boards is our common work. If something is not there, expect best effort support. If you want this feature, simply prepare a PR with (tested) changes and it will be inside. Perhaps someone will do that instead, perhaps not.

 

There is also ongoing initiative to merge/import non-hardware related features from upstream (Debian/Ubuntu/Raspbian) kernels and where your help is appreciated. We are already totally overwhelmed with work while our R&D budget is exactly zero. Your only alternative in this case is non-supported outdated FA kernel, where any recompilation is a nightmare, support n/a.

 

Here are kernel configurations: https://github.com/armbian/build/tree/master/config/kernel If you change this problem for one, change it for all. Thanks.

 

6 hours ago, ejolson said:

I think I might need to recompile the kernel


You can setup your own build environment - its really easy or wait for nightly update, Jenkins recompile or just ask for an update kernel. Many people has build system setup.

Share this post


Link to post
Share on other sites

Thanks for your reply.  Sorry for starting this thread after the one of the FriendlyARM website.  It took me a long time before figuring out that iSCSI support was missing from the kernel.  It seems the errors produced by iscsid and systemd are not very clear what's wrong--probably the wrong logging level somewhere.  At any rate, after a day and a half of installing Ubuntu in a QEMU session and running the suggested build script on my local desktop (an dual-core AMD A6-5400K APU), I have the files


armbian-config_20.05.0-trunk_all.deb
armbian-firmware_20.05.0-trunk_all.deb
armbian-firmware-full_20.05.0-trunk_all.deb
linux-dtb-legacy-s5p6818_20.05.0-trunk_arm64.deb
linux-headers-legacy-s5p6818_20.05.0-trunk_arm64.deb
linux-image-legacy-s5p6818_20.05.0-trunk_arm64.deb
linux-source-legacy-s5p6818_20.05.0-trunk_all.deb
linux-u-boot-legacy-nanopct3_20.05.0-trunk_arm64.deb

and am wondering what to do with them.  Which do I need to install to get the new kernel running?

Share this post


Link to post
Share on other sites
5 hours ago, ejolson said:

At any rate, after a day and a half


I am glad you made it. If you will need more changes, this will be much much faster. A few minutes job.
 

You need to install those two:

dpkg -i linux-dtb-legacy-s5p6818_20.05.0-trunk_arm64.deb
dpkg -i linux-image-legacy-s5p6818_20.05.0-trunk_arm64.deb

Optional:

dpkg -i linux-headers-legacy-s5p6818_20.05.0-trunk_arm64.deb

Make sure to push changes upstream. Your kernel will be, in couple of months, upgraded at next release, your changes overwritten. Alternatively you can freeze kernel upgrades in armbian-config to prevent that to happen.

Share this post


Link to post
Share on other sites
On 3/17/2020 at 12:17 AM, Igor said:

I am glad you made it. If you will need more changes, this will be much much faster. A few minutes job.

Woohoo!  It worked.  I now have wireguard installed and an iSCSI block device mounted over wireguard with a swap partition and a big /usr/local and my home directory.  I'll report some performance results soon.  Thanks!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
1 1