Struggling with CIFS

This is less of a Jetson question and more of an L4T question, so please point me in the right direction if this is the wrong forum.

I picked up a Nano devkit to tinker with, and am trying to get access to my NAS. It’s been well documented that the stock L4T kernel doesn’t support anything but SMB 1.0, which is… let’s just say I won’t be downgrading my NAS security for this project.

No problem, I thought. I grabbed the build scripts from here, and built new modules with SMB3 support. I appear to have to specify vers=3.0, but it does attempt to connect, but fails:

[  738.646522] CIFS VFS: could not allocate crypto hmacsha256
[  738.652112] CIFS VFS: generate_key: crypto alloc failed
[  738.657365] CIFS VFS: Send error in SessSetup = -2
[  738.662382] CIFS VFS: cifs_mount failed w/return code = -2

All the kernel support for hmac and sha256 is turned on as far as I can tell, and some searching seems to indicate that CIFS doesn’t depend on external crypto anyway.

Thinking this might be peculiar to aarch64, I installed bionic on a Pi 4, and that works fine. (though the kernel in bionic for Pi is 5.3, vs. 4.9 for the Nano)

I’ve tried this with R32.3.1 and R32.4.2 with the same results. (using this fork of the build scripts)

Any suggestions would be welcome.

Yeah. Looks like only 1.0 is supported on the default kernel. Looks like your issue may be related to a missing “cmac” module. You might try adding it to the kernel config as “m” and rebuilding.

I saw that thread as well. ‘cmac’ is already built into the kernel as ‘y’, though.
$ zgrep -i cmac /proc/config.gz
CONFIG_CRYPTO_CMAC=y

That should work, but there might be something else missing or it may need to be a module. You may end up either having to go browsing through the kernel source, or report this an an issue. 1.0 is indeed too old a CIFS version and many samba servers (own NAS included) are configured to disallow this.