Installing ACQ107 drivers on IPFire

Greetings all.

I recently built my own pfSense box to replace my Asus router at home and wanted to install IPFire to give it a try to seen which one I prefer. I’ve got everything working except the Aquantia AQC107 NIC (2 of them). I know this card has a working linux driver since I’m using the same card in a home server running linux (Ubuntu Server since 18.04, currently 20.04). I’ve never had to install the driver so I didn’t expect to have to with IPFire but it looks like its not included. I have tried compiling and installing the driver but it seems like it needs to be signed and none of the tools to do so are available on the IPfire box. At this point I’m wondering if I’m doing something wrong so I thought I’d post up here and ask what the proper method of getting this card working is.

The card in question is:
Aquantia Corp. AQC107 NBase-T/IEEE 802.3bz Ethernet Controller [AQtion] (rev 02)

Any help appreciated.
Thanks

Hi,

I will admit upfront that am a total newbie to IPFire myself but upon checking the Wiki Pages for the list of compatibile cards (found here >>>> https://wiki.ipfire.org/hardware/networking) I cannot actually find your card listed so not sure that it will ever work.

It does also say on this link ’ If you can not find any information about your network card on the wiki, please begin a thread in the appropriate forum.’ so hopefully someone can advise you properly.

Regards

S

Is your card a 2.5G Ethernet device, @gcolds?
Which kernel are you using on your server?

It’s a 10G Ethernet device. I’m using ubuntu 20.04 on the server with kernel 5.4.

After poking around some more, I found that the driver for my card indeed seems to be there. I tried starting it with ‘modprobe atlantic’. The module seems to load but ‘ip a’ does not show any new interfaces brought up. Any idea what I should do next?

-Greg

Please post the PCI vendor and device ID’s
you can check this with lspci -n

Did you ever get this to work?

Generally, on Linux systems, if the driver isn’t automatically picked up during startup, you’ll need to add the driver name to a file with a name like /etc/modules. (On ipFire that would be /etc/modules.conf.) Then reboot.

No I don’t have such card. I ask for the ID’s to look inside the driver. Sometimes such ID’s are simply missing in older kernel versions and can easily added.

Manually load a driver will not work. Drivers contain a list of supported hardware ID’s.

‘lspci -n’ output for the 2 cards is:
05:00.0 0200: 1d6a:87b1 (rev 02)
06:00.0 0200: 1d6a:07b1 (rev 02)

‘lspci’ gives me this output for the cards in question if it helps:
05:00.0 Ethernet controller: Aquantia Corp. AQC107 NBase-T/IEEE 802.3bz Ethernet Controller [AQtion] (rev 02)
06:00.0 Ethernet controller: Aquantia Corp. AQC107 NBase-T/IEEE 802.3bz Ethernet Controller [AQtion] (rev 02)

I added
alias aq0 atlantic
alias aq1 atlantic

to my /etc/modprobe.conf file but it did not seem to have any effect after multiple reboots. I don’t even see atlantic driver loaded when I do lsmod.

-Greg

Where do I add the id’s?

-Greg

Just add the module name atlantic and remove the aliases. Then reboot. If it doesn’t work, check /var/log/messages for clues.

I made the change and it didn’t work. lsmod does not show the module loaded and /var/log/messages does not show any messages related the atlantic module loading or failing to load. I don’t see any other unexpected messages regarding interfaces. I doesn’t look like it even tried to start the module.

-Greg

modinfo shows that the atlantic driver supports the following VID:PID combinations:

1D6A:D109
1D6A:D108
1D6A:D107
1D6A:D100
1D6A:0001

I see that you provided two VID:PIDs of two cards

05:00.0 0200: 1d6a:87b1 (rev 02)
06:00.0 0200: 1d6a:07b1 (rev 02)

so you have a problem. There is a hack that might work but it usually requires you to plug the device in after running a command, so more suitable for USB devices. It might also cause instabiity on ipFire, but will be cleared after a reboot, so is relatively safe. You need to run the following commands:

modprobe atlantic 
echo "1d6a 87b1" > /sys/module/atlantic/drivers/pci:atlantic/new_id

You might be able to power the device off/on but you’d need to experiment. See https://askubuntu.com/questions/4546/how-do-i-turn-off-pci-devices for some ideas.

I have 2 ACQ107 10G cards in my box. That’s why there are 2 ids, there is no mistake. IPFire is seeing PCI devices.
I’ll give the commands a try.

-Greg

Ok, this problem is making me feel like quite the newbie.

I keep getting:
-bash: echo: write error: Invalid argument
when I try to echo the id to the new_id file. I’ve tried changing permissions but still I get the same message.

-Greg

I tried
echo 1d6a 87b1 > /sys/module/atlantic/drivers/pci:atlantic/new_id
and that didn’t return an error, but I still don’t see a new interface.

-Greg

Aargh!. It’s a formatting glitch. Markdown (I think that’s what we’re using) has transformed doubl quotes into 66/99 quotes. I’ll edit it for posterity but just change the quotes and it should work. Yep, you can omit them too.

As already mentioned, you’d probably need to stop/start the card.

It’s still not working but I’m seeing some error messages finally in /var/log/messages.

May 5 16:29:19 phoenix kernel: atlantic 0000:05:00.0: enabling device (0000 -> 0002)
May 5 16:29:19 phoenix kernel: atlantic: probe of 0000:05:00.0 failed with error -12
May 5 16:29:19 phoenix kernel: atlantic: probe of 0000:06:00.0 failed with error -12

I’m googling what they mean now.

-Greg