Compile Intel i225-V NIC Driver into Kernel

jackowats

Cadet
Joined
Nov 28, 2021
Messages
3
I just did a fresh install of TrueNAS-12.0-U6 and was met with an error instead of an IP, "The web interface could not be accessed. Please check network configuration." After spending some time digging, I found that there were some compatibility issues with my motherboard's (Asus ROG Strix B550-I) onboard NIC (Intel i225-V). That being said, there were apparently resolved, as per this commit I found: https://github.com/truenas/os/blob/d7388d33b4ddffb8900b511ae767875916dd5126/share/man/man4/igc.4

The problem is I have no idea how to follow the instructions provided, as I am super new to using anything that isn't Windows. The post gives two options: to compile the driver into the kernel, or load it as a module at boot. I have looked around, but most resources want me to use the Tunables window to make these kinds of changes which I can't because the problem is the networking, so I only have access to the shell directly.

I meet all other minimum system requirements, and appreciate any help in solving this.

Hardware List:
  • Asus ROG Strix B550-I
  • Ryzen 5 3600
  • Samsung 16GB ECC Memory
  • 4 Seagate EXOS Drives (Storage) / 1 Samsung 970 EVO Plus (boot)
 

Samuel Tai

Never underestimate your own stupidity
Moderator
Joined
Apr 24, 2020
Messages
5,399
Unfortunately, there's no way to load the if_igc.ko driver via Tunables, because it's not packaged with TrueNAS in either the /boot/kernel or the /boot/modules directories. Even upstream FreeBSD is planning to include support in release 13.0, and not release 12.x, so there's no upstream binary to pull in.

As for adding Tunables from CLI, in your case, it would be midclt call tunable.create '{"var": "if_igc_load", "value": "YES", "type": "LOADER", "enabled": true}'. However, this won't have any effect, as the if_igc.ko driver doesn't exist.

You'll have to use a different board, or get a supported PCI-E NIC.
 

jackowats

Cadet
Joined
Nov 28, 2021
Messages
3
Thank you so much for the explanation! I'm glad to know how to add tunables from CLI now.

If you don't mind my asking, is there any way to manually add the driver into the 12.0-U6 build? Since it already exists, I feel like there should be some way to fold it in before an official launch. Other than that, I'll be holding off till the 13.0 build.
 

jgreco

Resident Grinch
Joined
May 29, 2011
Messages
18,680
You can try to copy it from or cross-compile it on a FreeBSD box and bring it over. However, FreeNAS is an appliance, and doesn't support this sort of thing, so you can expect that it is unlikely to continue to work after the next update.
 

jackowats

Cadet
Joined
Nov 28, 2021
Messages
3
I appreciate the cautionary advice. I think that settles it, I'll just have to wait for the 13.0 patch. Thank you both for your time!
 

gtz42

Cadet
Joined
Jan 13, 2022
Messages
6
While TrueNAS CORE 12 seams to be EOL and 13 is coming, FreeBSD has releases 12.3 with the icc Driver for the i225 NICs.
Is there a chance for an 12.0-U8 based on 12.3 /w the driver for the i225 NIC?
(or is there a HOWTO build my own TrueNAS kernel?)
 

sretalla

Powered by Neutrality
Moderator
Joined
Jan 1, 2016
Messages
9,703

gtz42

Cadet
Joined
Jan 13, 2022
Messages
6
I see in the last update that it's included in U8:

Seems scheduled for release in less than 2 weeks:
I can't access the linked Jira page, but I'm looking forward to u8.
 

cap

Contributor
Joined
Mar 17, 2016
Messages
122
TrueNAS Core 12.0-U8 Changelog
Include igc(4) driver for I225 Intel NICs

Any update on this? Does it work reliably now?

OT:
What about TrueNAS Scale? I think you need the latest Linux Kernel for Intel i225-V.

I have read in various forums about problems with i225-V also under Windows (OK, many posts were old). But there may be different revisions of i225-V.
Almost makes the impression that currently Realtek is the better choice for 2.5GBe?
 

cap

Contributor
Joined
Mar 17, 2016
Messages
122
Hardware List:
  • Asus ROG Strix B550-I
  • Ryzen 5 3600
  • Samsung 16GB ECC Memory
  • 4 Seagate EXOS Drives (Storage) / 1 Samsung 970 EVO Plus (boot)
This should result in a very power efficient system. Thus, a power consumption of less than 10 watts in IDLE (without HDDs) is possible. At least under Windows. It probably looks similarly good with PowerTOP under Linux.
=> https://www.computerbase.de/forum/threads/renoir-und-b550-die-idle-kuenstler.1967755/

BSD is not suitable for real power saving (AFAIK). You probably can't get into the deep c-states and it lacks a tool like PowerTOP.
 

jgreco

Resident Grinch
Joined
May 29, 2011
Messages
18,680
Almost makes the impression that currently Realtek is the better choice for 2.5GBe?

What makes you think that Realtek is any better? And, based on history, which manufacturer's cards are going to work well going forward?
 

cap

Contributor
Joined
Mar 17, 2016
Messages
122
What makes you think that Realtek is any better? And, based on history, which manufacturer's cards are going to work well going forward?
This is just an impression I got and it may be wrong (I even hope so).
a) Realtek RTL8125B: The driver has been in the Linux kernel for a while (I think from 5.10) and should run OOTB in TrueNAS Scale. TrueNAS Core now also comes with the driver (Tunable). I believe i225-V support is only available in the latest Linux kernel, which we won't see in TrueNAS Scale anytime soon. With TrueNAS Core it seems to work now.
b) Performance/Reliabiltiy: I have read about problems with the i225-V while cross-reading in the Internet. Some people have even plugged in an external card to bypass i225-V. Possibly this was also due to something else. And supposedly there are different revisions of i225-V. Maybe those were the old revisions?

I would be interested in real experiences.
Because in general I also prefer the Intel.
 

jgreco

Resident Grinch
Joined
May 29, 2011
Messages
18,680
No people have "real experiences" because none of us have a TARDIS to come back from the future with them.

The point I was making is that Intel has a department of people who sit around and do nothing but write and tune drivers because they are heavily invested in their business, and they sell their cards for top dollar because people know that their stuff ranks up there among the best.

Realtek, by way of comparison, has released crappy bottom-of-the-barrel chipsets for years, doesn't offer much to authors developing drivers, so even if today's Realtek driver seems like it might be better, I wouldn't bet on it in the long run.
 

Arwen

MVP
Joined
May 17, 2014
Messages
3,611
@cap What makes you think Intel i225-V won't show up in Linux 5.10 kernels?

I just checked my PC that I am using, and it has the source for 5.10.76, which shows THIS;
│ │ [*] Intel devices
│ │ < > Intel(R) Ethernet Controller I225-LM/I225-V support (NEW)
For grins & giggles, I checked my media server, which is using 5.10.52, and it TOO has that network device support.

Checking the latest TrueNAS SCALE, it is using 5.10.81, so that driver is available, just not built as far as I can tell.

So, put in a Jira feature request to have that kernel driver module added. Don't know if it will make a different, but you can try. It's possible that it won't be included soon because they won't have a test environment for that hardware.

Edit: I take it back, it appears that the driver for Intel I225-LM/I225-V is already included in TrueNAS SCALE:
│ CONFIG_IGC:

│ This driver supports Intel(R) Ethernet Controller I225-LM/I225-V
│ family of adapters.

│ For more information on how to identify your adapter, go
│ to the Adapter & Driver ID Guide that can be located at:

│ <http://support.intel.com>

│ To compile this driver as a module, choose M here. The module
│ will be called igc.
root@truenas[/lib/modules/5.10.81+truenas/kernel]# uname -a
Linux truenas.local 5.10.81+truenas #1 SMP Mon Dec 20 21:03:38 UTC 2021 x86_64 GNU/Linux
root@truenas[/lib/modules/5.10.81+truenas/kernel]# find . -name igc
./drivers/net/ethernet/intel/igc
 
Last edited:
  • Like
Reactions: cap

cap

Contributor
Joined
Mar 17, 2016
Messages
122
This should result in a very power efficient system. Thus, a power consumption of less than 10 watts in IDLE (without HDDs) is possible. At least under Windows. It probably looks similarly good with PowerTOP under Linux.
=> https://www.computerbase.de/forum/threads/renoir-und-b550-die-idle-kuenstler.1967755/

BSD is not suitable for real power saving (AFAIK). You probably can't get into the deep c-states and it lacks a tool like PowerTOP.
- Of course, you need an efficient power supply!
- And a 4000 or 5000 APU. A 3000 APU is probably less efficient. I had overlooked that.
- Linux + PowerTOP => TrueNAS Scale
- Kernel-Support: https://www.truenas.com/community/threads/possible-to-upgrade-kernel.96933/page-2#post-683777
 
Top