[Closed - Upstream] [REQ] Add CISCO VIC Drivers to package

Problem/Justification
I am on Cisco UCS platform but your TrueNAS SCALE do not support ‘enic’, which are Cisco VIC 13xx 14xx 14xxx and so on network adapters.

Impact

Just can’t use your product

User Story
larger audience.

The Cisco driver source is readily available, but your TrueNAS SCALE is so locked down that I can’t compile them in developer mode.

Don’t forget to vote for your own feature request.

One thing you can do for added information on this request, is to check plain Debian and see if it supports the Cisco VNIC you want. Not saying this will change TrueNAS side any, but if plain Debian does not support the driver, that may make it harder to get TrueNAS to support it.

If you do check, try various Debian releases, and list which have it and which don’t.

There are drivers for the FreeBSD, which Core is based on

https://man.freebsd.org/cgi/man.cgi?enic(4)

I just figured TrueNAS SCALE would just “follow” suit.

I’ll find out about Debian

If you do check, try various Debian releases, and list which have it and which don’t.

Is there a way to find out which Debian kernel the current 6.12.15-production+truenas is using so I can spin up a Debian box and try to compile the drivers there?

Also there is no Debian drivers included, from Googling people just compile. Although, enic is included in Ubuntu distro.

No, I don’t know how to determine which Debian version TrueNAS is based on. It’s probably simple, I just don’t know it without researching it.

Unfortunately, if Debian, (any version), does not supply the Cisco VIC drivers, then you have 2 choices:

  1. Enable developer mode, and compile the driver yourself
  2. See if this feature request is accepted, and if so, see when it will be added.

One problem maybe that iX / TrueNAS does not have any Cisco UCS hardware with the appropriate NIC hardware. Without that specific hardware, they may take the position that distributing a custom built NIC driver that can’t be tested, is not something they want to do. (Because, then people will assume they can and will support it. Even at great cost.)

after a little sleuthing… there is one person that had output from Debian 10.

I spunned up a Debian 12 but nothing there.

> https://forums.servethehome.com/index.php?threads/cisco-vic-network-card-in-standard-pci-e.26997/

I have an old Cisco C240 M4S2 and a C220 M4S (ex-CallManager/Telepresence servers) sat doing nothing at the moment. Happy to do some testing with them if it would be of any help.

It would be useful to know if debian has support for Cisco enic… which version.

If its not supported in the Goldeye version, I’ll invite you to submit this as a bug report with links to all the driver source.

Please post the nas ticket number here.

We would need you and others to test it. Need some volunteers.

$> root@debian:~# modinfo enic
filename:       /lib/modules/4.19.0-6-amd64/kernel/drivers/net/ethernet/cisco/enic/enic.ko
version:        2.3.0.53
license:        GPL
author:         Scott Feldman <scofeldm@cisco.com>
description:    Cisco VIC Ethernet NIC Driver
srcversion:     7E57430A363BE1E7A2D3534
alias:          pci:v00001137d00000071sv*sd*bc*sc*i*
alias:          pci:v00001137d00000044sv*sd*bc*sc*i*
alias:          pci:v00001137d00000043sv*sd*bc*sc*i*
depends:       
retpoline:      Y
intree:         Y
name:           enic
vermagic:       4.19.0-6-amd64 SMP mod_unload modversions
sig_id:         PKCS#7
signer:         Debian Secure Boot CA
sig_key:        A7:46:8D:EF
sig_hashalgo:   sha256
signature:      7D:49:BB:9D:70:96:29:C3:53:3B:0D:D5:C8:F2:F0:5A:56:40:3C:C1:
       EF:7C:22:38:D0:4F:B4:57:8C:A1:64:5E:B3:5D:91:C6:64:C0:9D:49:
       74:78:74:32:4A:65:7A:A7:32:3A:4B:D8:67:71:CE:CE:C0:58:BB:30:
       68:06:6C:36:7C:66:5F:22:93:C1:A8:E0:7A:B4:9F:B7:4A:83:7F:C0:
       7C:28:2A:C0:96:76:63:5C:F7:D7:46:21:06:2A:59:AE:58:46:36:12:
       6D:1D:EE:82:FF:36:38:35:42:37:DA:40:30:8C:54:0A:2F:80:95:66:
       FE:AE:54:A8:EA:0C:9D:CB:9B:28:83:BC:27:40:8B:BA:DF:73:C4:3D:
       B3:54:71:58:C0:26:D6:A7:EB:D0:30:26:23:34:E3:5C:5A:E3:73:79:
       2E:D7:4E:E2:39:45:3A:8B:0C:BC:97:0D:74:74:BD:D8:CF:BA:59:84:
       B5:7C:1D:DF:E1:FC:0F:AD:A0:74:D4:E9:D7:29:3E:4A:33:13:2E:05:
       5D:E8:84:C2:FD:94:E8:1B:FE:02:E6:1A:5A:CB:32:31:DA:CA:C0:36:
       CA:8D:51:98:69:7F:5A:FB:25:5E:E1:97:FC:64:F8:A6:64:D6:D1:E1:
       64:B0:DC:76:0B:81:DE:CD:75:67:76:AD:27:D1:F8:62

According to kernelconfig dot io. It’s in kernel 6.16.2, but I have no idea how Debian uses the kernel.

TrueNAS is expected to use 6.18 (or therabouts) in Hlafmoon.

That is expected to BETA in 6 months time.

OKAY! I revisited this whole thing in a little more in-depth.

Debian 12 and TrueNAS SCALE DOES have the VIC drivers… HOWEVER, they are old.

the ‘enic’ drivers DO actually work, since I am on VMWare vSphere environment, I never/couldn’t try it as bare-metal install. And I didn’t try ‘Passthrough Mode’ till today. (I just assumed SR-IOV would work)

Passthrough mode does work, and pick up the vNIC.

When I first tried it, I was preparing to use SR-IOV. The drivers or kernel or modules that comes with doesn’t recognize PF or VF, in Debian/TrueNAS SCALE.

When I initially test Ubuntu, I also went straight to SR-IOV. However, Cisco’s Linux driver package ISO already contains the latest enic that support SR-IOV in a deb package… so it was really easy to install and get it running.

Which leads back to the initial problem.

  1. Need to be able to compile the kmod for the VIC newer drivers for TrueNAS SCALE

  2. Need help actually compiling it.

Or you need the vNIC drivers updated ?

I assume the VNIC drivers are in the kernel???

/usr/lib/modules/6.12.15-debug+truenas/kernel/drivers/net/ethernet/cisco/enic/enic.ko
/usr/lib/modules/6.12.15-production+truenas/kernel/drivers/net/ethernet/cisco/enic/enic.ko

I posted on the main debian email distribution list about getting it updated on main distro too.

and the old drivers are not in the kernel?

yes the old drivers are built into the kernel. I have found out more info. The old drivers do not have the ID Device 02b7 (based on the testing done on Ubuntu).

Closing as this is an upstream request.