Вопрос или проблема
Debian GNU/Linux 12 (bookworm) x86_64
Ядро: 6.1.0-28-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.119-1 (2024-11-22) x86_64 GNU/Linux
Установлен 10G AQtion Ethernet Controller с чипом AQC113C на pcie x4.
Не удаётся включить драйвер для AQC113. Здесь есть AQC111, но не AQC113. Команда modprobe atlantic не помогает.
# uname -a
Linux ***** 6.1.0-28-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.119-1 (2024-11-22) x86_64 GNU/Linux
# lsmod | grep atlantic
atlantic 245760 0
macsec 61440 1 atlantic
# modinfo aqc113
modinfo: ERROR: Module aqc113 not found.
# modinfo aqc111
filename: /lib/modules/6.1.0-28-amd64/kernel/drivers/net/usb/aqc111.ko
license: GPL
description: Aquantia AQtion USB to 5/2.5GbE Controllers
alias: usb:v1C04p0015d*dc*dsc*dp*ic02isc06ip00in*
alias: usb:v1C04p0015d*dc*dsc*dp*icFFisc*ip*in*
alias: usb:v20F4pE05Ad*dc*dsc*dp*ic02isc06ip00in*
alias: usb:v20F4pE05Ad*dc*dsc*dp*icFFisc*ip*in*
alias: usb:v0B95p2791d*dc*dsc*dp*ic02isc06ip00in*
alias: usb:v0B95p2791d*dc*dsc*dp*icFFisc*ip*in*
alias: usb:v0B95p2790d*dc*dsc*dp*ic02isc06ip00in*
alias: usb:v0B95p2790d*dc*dsc*dp*icFFisc*ip*in*
alias: usb:v2ECApC101d*dc*dsc*dp*ic02isc06ip00in*
alias: usb:v2ECApC101d*dc*dsc*dp*icFFisc*ip*in*
depends: usbnet,usbcore
retpoline: Y
intree: Y
name: aqc111
vermagic: 6.1.0-28-amd64 SMP preempt mod_unload modversions
sig_id: PKCS#7
signer: Debian Secure Boot CA
sig_key: 32:A0:28:7F:84:1A:03:6F:A3:93:C1:E0:65:C4:3A:E6:B2:42:26:43
sig_hashalgo: sha256
signature: 17:5F:68:C5:6F:6E:F3:F8:2D:78:C4:8A:6C:EC:37:E0:4A:E9:41:CE:
43:94:53:5E:BE:E6:7C:85:99:48:E0:43:E6:B3:0F:76:F8:47:E6:CF:
8B:B1:A7:03:68:AB:BC:51:0C:1B:82:99:CC:24:65:32:24:B5:8E:91:
0F:BA:3E:73:F3:C7:6B:09:AF:FC:9F:1B:A7:6E:21:5A:50:98:99:A9:
66:CF:95:88:BF:6B:31:FB:2D:7C:42:68:D8:92:DF:18:15:82:63:59:
E7:55:3E:AF:4C:BE:D6:D1:09:79:83:AD:CA:8A:F4:6E:A4:E5:D4:2F:
8C:59:1E:D9:F1:7E:43:4E:F0:D6:7B:0A:C8:04:79:5A:96:EB:61:AC:
A3:65:42:2E:D3:86:F5:DE:18:C4:71:52:C6:5D:82:6B:19:4B:CA:99:
4F:F8:53:2C:B0:C8:EE:0D:38:74:C1:3D:D9:19:58:57:B6:BE:9A:ED:
DC:BD:03:4E:A3:B2:9B:79:16:92:7D:47:61:F4:9C:44:67:E9:05:58:
B1:1B:E5:E8:DF:EA:2C:18:BD:E1:30:9C:69:B3:E4:CF:DA:A4:79:BA:
4C:35:14:54:06:8B:E2:6F:79:DB:9B:72:C4:C7:B9:CD:AC:7A:89:DC:
AC:4B:6B:8D:8B:76:4A:DC:83:F9:F7:C9:A8:E4:84:E1
Проблемы с ошибками сборки драйверов AQtion-2.5.5 “слишком много аргументов для функции ‘netif_napi_add'”. Пробовал ядро 6.13.0-rc5-custom, те же проблемы. Как мне запустить контроллер Ethernet AQC113?
Сборка драйвера v2.5.12 (18-07-24) скаченного с официального сайта Marvell.
root@debvm:/# cd /opt/
root@debvm:/opt# wget https://www.marvell.com/content/dam/marvell/en/drivers/07-18-24_Marvell_Linux_2.5.12.zip
--2025-01-02 15:14:29-- https://www.marvell.com/content/dam/marvell/en/drivers/07-18-24_Marvell_Linux_2.5.12.zip
Resolving www.marvell.com (www.marvell.com)... 104.94.100.138, 104.94.100.99
Connecting to www.marvell.com (www.marvell.com)|104.94.100.138|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/zip]
Saving to: ‘07-18-24_Marvell_Linux_2.5.12.zip’
07-18-24_Marvell_Linux_2.5.12.zip [ <=> ] 242.83K --.-KB/s in 0.1s
2025-01-02 15:14:30 (2.41 MB/s) - ‘07-18-24_Marvell_Linux_2.5.12.zip’ saved [248654]
root@debvm:/opt# 7zz x 07-18-24_Marvell_Linux_2.5.12.zip
7-Zip (z) 22.01 (x64) : Copyright (c) 1999-2022 Igor Pavlov : 2022-07-15
64-bit locale=en_US.UTF-8 Threads:128
Scanning the drive for archives:
1 file, 248654 bytes (243 KiB)
Extracting archive: 07-18-24_Marvell_Linux_2.5.12.zip
--
Path = 07-18-24_Marvell_Linux_2.5.12.zip
Type = zip
Physical Size = 248654
Everything is Ok
Folders: 1
Files: 3
Size: 280443
Compressed: 248654
root@debvm:/opt# ls -l
total 248
drwxr-xr-x 2 root root 4096 Sep 19 05:00 07-18-24_Marvell_Linux_2.5.12
-rw-r--r-- 1 root root 248654 Dec 6 08:34 07-18-24_Marvell_Linux_2.5.12.zip
root@debvm:/opt# cd ./07-18-24_Marvell_Linux_2.5.12/
root@debvm:/opt/07-18-24_Marvell_Linux_2.5.12# ls
atlantic.tar.gz README.txt Release_Notes_Linux_2.5.12.txt
root@debvm:/opt/07-18-24_Marvell_Linux_2.5.12# tar -zxf atlantic.tar.gz
root@debvm:/opt/07-18-24_Marvell_Linux_2.5.12#
root@debvm:/opt/07-18-24_Marvell_Linux_2.5.12# uname -a
Linux debvm 6.1.0-28-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.119-1 (2024-11-22) x86_64 GNU/Linux
root@debvm:/opt/07-18-24_Marvell_Linux_2.5.12#
root@debvm:/opt/07-18-24_Marvell_Linux_2.5.12# apt install apt linux-headers-6.1.0-28-amd64 build-essential
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
apt is already the newest version (2.6.1).
linux-headers-6.1.0-28-amd64 is already the newest version (6.1.119-1).
build-essential is already the newest version (12.9).
The following package was automatically installed and is no longer required:
linux-image-6.1.0-27-amd64
Use 'apt autoremove' to remove it.
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
root@debvm:/opt/07-18-24_Marvell_Linux_2.5.12# cd ./Linux/
root@debvm:/opt/07-18-24_Marvell_Linux_2.5.12/Linux# ls
aq_cfg.h aq_dash.c aq_drvinfo.h aq_filters.h aq_macsec.c aq_nic.c aq_phy.c aq_ring.c aq_sysfs.h aq_tsn.h build-deb.sh Kbuild kunit release_notes.txt
aq_common.h aq_dash.h aq_ethtool.c aq_hw.h aq_macsec.h aq_nic.h aq_phy.h aq_ring.h aq_trace.c aq_utils.h dkms.sh Kbuild.cflags macsec rpm-src.spec
aq_compat.c aq_dash_internal.h aq_ethtool.h aq_hw_utils.c aq_main.c aq_pci_func.c aq_ptp.c aq_rss.h aq_trace.h aq_vec.c hw_atl Kbuild.kunit Makefile ver.h
aq_compat.h aq_drvinfo.c aq_filters.c aq_hw_utils.h aq_main.h aq_pci_func.h aq_ptp.h aq_sysfs.c aq_tsn.c aq_vec.h hw_atl2 Kconfig README.txt
root@debvm:/opt/07-18-24_Marvell_Linux_2.5.12/Linux# make
make -j4 -C /lib/modules/6.1.0-28-amd64/build M="/opt/07-18-24_Marvell_Linux_2.5.12/Linux" modules
make[1]: Entering directory '/usr/src/linux-headers-6.1.0-28-amd64'
CC [M] /opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_main.o
CC [M] /opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_nic.o
CC [M] /opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_pci_func.o
CC [M] /opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_vec.o
CC [M] /opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_ring.o
CC [M] /opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_ptp.o
CC [M] /opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_filters.o
CC [M] /opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_hw_utils.o
CC [M] /opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_ethtool.o
CC [M] /opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_drvinfo.o
CC [M] /opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_trace.o
CC [M] /opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_phy.o
CC [M] /opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_compat.o
CC [M] /opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_tsn.o
CC [M] /opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_sysfs.o
CC [M] /opt/07-18-24_Marvell_Linux_2.5.12/Linux/hw_atl/hw_atl_a0.o
CC [M] /opt/07-18-24_Marvell_Linux_2.5.12/Linux/hw_atl/hw_atl_b0.o
CC [M] /opt/07-18-24_Marvell_Linux_2.5.12/Linux/hw_atl/hw_atl_utils.o
CC [M] /opt/07-18-24_Marvell_Linux_2.5.12/Linux/hw_atl/hw_atl_utils_fw2x.o
CC [M] /opt/07-18-24_Marvell_Linux_2.5.12/Linux/hw_atl/hw_atl_llh.o
CC [M] /opt/07-18-24_Marvell_Linux_2.5.12/Linux/hw_atl/hw_atl_fw_hostboot.o
CC [M] /opt/07-18-24_Marvell_Linux_2.5.12/Linux/hw_atl/hw_atl_fw_image.o
CC [M] /opt/07-18-24_Marvell_Linux_2.5.12/Linux/hw_atl2/hw_atl2_llh.o
CC [M] /opt/07-18-24_Marvell_Linux_2.5.12/Linux/hw_atl2/hw_atl2.o
CC [M] /opt/07-18-24_Marvell_Linux_2.5.12/Linux/hw_atl2/hw_atl2_utils.o
CC [M] /opt/07-18-24_Marvell_Linux_2.5.12/Linux/hw_atl2/hw_atl2_utils_fw.o
CC [M] /opt/07-18-24_Marvell_Linux_2.5.12/Linux/hw_atl2/hw_atl2_fw_hostboot.o
CC [M] /opt/07-18-24_Marvell_Linux_2.5.12/Linux/macsec/macsec_api.o
CC [M] /opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_dash.o
CC [M] /opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_macsec.o
/opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_macsec.c: In function ‘aq_mdo_dev_open’:
/opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_macsec.c:297:16: error: ‘struct macsec_context’ has no member named ‘prepare’
297 | if (ctx->prepare)
| ^~
/opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_macsec.c: In function ‘aq_mdo_dev_stop’:
/opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_macsec.c:312:16: error: ‘struct macsec_context’ has no member named ‘prepare’
312 | if (ctx->prepare)
| ^~
/opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_macsec.c: In function ‘aq_mdo_add_secy’:
/opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_macsec.c:475:16: error: ‘struct macsec_context’ has no member named ‘prepare’
475 | if (ctx->prepare)
| ^~
/opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_macsec.c: In function ‘aq_mdo_upd_secy’:
/opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_macsec.c:502:16: error: ‘struct macsec_context’ has no member named ‘prepare’
502 | if (ctx->prepare)
| ^~
/opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_macsec.c: In function ‘aq_mdo_del_secy’:
/opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_macsec.c:554:16: error: ‘struct macsec_context’ has no member named ‘prepare’
554 | if (ctx->prepare)
| ^~
/opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_macsec.c: In function ‘aq_mdo_add_txsa’:
/opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_macsec.c:617:16: error: ‘struct macsec_context’ has no member named ‘prepare’
617 | if (ctx->prepare)
| ^~
/opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_macsec.c: In function ‘aq_mdo_upd_txsa’:
/opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_macsec.c:648:16: error: ‘struct macsec_context’ has no member named ‘prepare’
648 | if (ctx->prepare)
| ^~
/opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_macsec.c: In function ‘aq_mdo_del_txsa’:
/opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_macsec.c:699:16: error: ‘struct macsec_context’ has no member named ‘prepare’
699 | if (ctx->prepare)
| ^~
/opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_macsec.c: In function ‘aq_mdo_add_rxsc’:
/opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_macsec.c:799:16: error: ‘struct macsec_context’ has no member named ‘prepare’
799 | if (ctx->prepare)
| ^~
/opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_macsec.c: In function ‘aq_mdo_upd_rxsc’:
/opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_macsec.c:829:16: error: ‘struct macsec_context’ has no member named ‘prepare’
829 | if (ctx->prepare)
| ^~
/opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_macsec.c: In function ‘aq_mdo_del_rxsc’:
/opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_macsec.c:897:16: error: ‘struct macsec_context’ has no member named ‘prepare’
897 | if (ctx->prepare)
| ^~
/opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_macsec.c: In function ‘aq_mdo_add_rxsa’:
/opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_macsec.c:974:16: error: ‘struct macsec_context’ has no member named ‘prepare’
974 | if (ctx->prepare)
| ^~
/opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_macsec.c: In function ‘aq_mdo_upd_rxsa’:
/opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_macsec.c:1005:16: error: ‘struct macsec_context’ has no member named ‘prepare’
1005 | if (ctx->prepare)
| ^~
/opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_macsec.c: In function ‘aq_mdo_del_rxsa’:
/opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_macsec.c:1057:16: error: ‘struct macsec_context’ has no member named ‘prepare’
1057 | if (ctx->prepare)
| ^~
/opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_macsec.c: In function ‘aq_mdo_get_dev_stats’:
/opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_macsec.c:1073:16: error: ‘struct macsec_context’ has no member named ‘prepare’
1073 | if (ctx->prepare)
| ^~
/opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_macsec.c: In function ‘aq_mdo_get_tx_sc_stats’:
/opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_macsec.c:1103:16: error: ‘struct macsec_context’ has no member named ‘prepare’
1103 | if (ctx->prepare)
| ^~
/opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_macsec.c: In function ‘aq_mdo_get_tx_sa_stats’:
/opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_macsec.c:1137:16: error: ‘struct macsec_context’ has no member named ‘prepare’
1137 | if (ctx->prepare)
| ^~
/opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_macsec.c: In function ‘aq_mdo_get_rx_sc_stats’:
/opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_macsec.c:1179:16: error: ‘struct macsec_context’ has no member named ‘prepare’
1179 | if (ctx->prepare)
| ^~
/opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_macsec.c: In function ‘aq_mdo_get_rx_sa_stats’:
/opt/07-18-24_Marvell_LINUX_2.5.12/Linux/aq_macsec.c:1129:16: error: ‘struct macsec_context’ has no member named ‘prepare’
1229 | if (ctx->prepare)
| ^~
make[2]: *** [/usr/src/linux-headers-6.1.0-28-common/scripts/Makefile.build:255: /opt/07-18-24_Marvell_Linux_2.5.12/Linux/aq_macsec.o] Error 1
make[2]: *** Ожидание завершения заданий...
make[1]: *** [/usr/src/linux-headers-6.1.0-28-common/Makefile:2034: /opt/07-18-24_Marvell_Linux_2.5.12/Linux] Error 2
make[1]: выход из каталога '/usr/src/linux-headers-6.1.0-28-amd64'
make: *** [Makefile:36: all] Error 2
Сборка драйвера v2.5.5 из git (игнорировать ошибки)
root@debvm:/opt# git clone https://github.com/Aquantia/AQtion
Cloning into 'AQtion'...
remote: Enumerating objects: 597, done.
remote: Counting objects: 100% (55/55), done.
remote: Compressing objects: 100% (12/12), done.
remote: Total 597 (delta 47), reused 43 (delta 43), pack-reused 542 (from 1)
Receiving objects: 100% (597/597), 586.56 KiB | 2.33 MiB/s, done.
Resolving deltas: 100% (451/451), done.
root@debvm:/opt# cd ./AQtion/
root@debvm:/opt/AQtion# ls
aq_cfg.h aq_dash.c aq_drvinfo.h aq_filters.h aq_macsec.c aq_nic.c aq_phy.c aq_ring.c aq_sysfs.h aq_tsn.h build-deb.sh Kbuild kunit README.txt
aq_common.h aq_dash.h aq_ethtool.c aq_hw.h aq_macsec.h aq_nic.h aq_phy.h aq_ring.h aq_trace.c aq_utils.h dkms.sh Kbuild.cflags macsec rpm-src.spec
aq_compat.c aq_dash_internal.h aq_ethtool.h aq_hw_utils.c aq_main.c aq_pci_func.c aq_ptp.c aq_rss.h aq_trace.h aq_vec.c hw_atl Kbuild.kunit Makefile ver.h
aq_compat.h aq_drvinfo.c aq_filters.c aq_hw_utils.h aq_main.h aq_pci_func.h aq_ptp.h aq_sysfs.c aq_tsn.c aq_vec.h hw_atl2 Kconfig README.md
root@debvm:/opt/AQtion# make -i
make -j4 -C /lib/modules/6.1.0-28-amd64/build M="/opt/AQtion" modules
make[1]: вход в каталог '/usr/src/linux-headers-6.1.0-28-amd64'
CC [M] /opt/AQtion/aq_vec.o
CC [M] /opt/AQtion/aq_ring.o
CC [M] /opt/AQtion/aq_ptp.o
CC [M] /opt/AQtion/aq_filters.o
/opt/AQtion/aq_ptp.c: In function ‘aq_ptp_init’:
/opt/AQtion/aq_ptp.c:2130:9: error: too many arguments to function ‘netif_napi_add’
2130 | netif_napi_add(aq_nic_get_ndev(aq_nic), &aq_ptp->napi,
| ^~~~~~~~~~~~~~
In file included from /usr/src/linux-headers-6.1.0-28-common/include/linux/etherdevice.h:21,
from /opt/AQtion/aq_common.h:14,
from /opt/AQtion/aq_hw_utils.h:15,
from /opt/AQtion/aq_ptp.c:19:
/usr/src/linux-headers-6.1.0-28-common/include/linux/netdevice.h:2575:1: note: declared here
2575 | netif_napi_add(struct net_device *dev, struct napi_struct *napi,
| ^~~~~~~~~~~~~~
make[2]: [/usr/src/linux-headers-6.1.0-28-common/scripts/Makefile.build:255: /opt/AQtion/aq_ptp.o] Error 1 (ignored)
/usr/src/linux-headers-6.1.0-28-common/scripts/check-local-export: nm failed
Прервано
make[2]: [/usr/src/linux-headers-6.1.0-28-common/scripts/Makefile.build:255: /opt/AQtion/aq_ptp.o] Error 143 (ignored)
CC [M] /opt/AQtion/aq_hw_utils.o
/opt/AQtion/aq_vec.c: In function ‘aq_vec_alloc’:
/opt/AQtion/aq_vec.c:126:9: error: too many arguments to function ‘netif_napi_add’
126 | netif_napi_add(aq_nic_get_ndev(aq_nic), &self->napi,
| ^~~~~~~~~~~~~~
In file included from /usr/src/linux-headers-6.1.0-28-common/include/linux/etherdevice.h:21,
from /opt/AQtion/aq_common.h:14,
from /opt/AQtion/aq_vec.h:15,
from /opt/AQtion/aq_vec.c:12:
/usr/src/linux-headers-6.1.0-28-common/include/linux/netdevice.h:2575:1: note: declared here
2575 | netif_napi_add(struct net_device *dev, struct napi_struct *napi,
| ^~~~~~~~~~~~~~
make[2]: [/usr/src/linux-headers-6.1.0-28-common/scripts/Makefile.build:255: /opt/AQtion/aq_vec.o] Error 1 (ignored)
/usr/src/linux-headers-6.1.0-28-common/scripts/check-local-export: nm failed
Прервано
make[2]: [/usr/src/linux-headers-6.1.0-28-common/scripts/Makefile.build:255: /opt/AQtion/aq_vec.o] Error 143 (ignored)
CC [M] /opt/AQtion/aq_ethtool.o
CC [M] /opt/AQtion/aq_drvinfo.o
CC [M] /opt/AQtion/aq_trace.o
CC [M] /opt/AQtion/aq_phy.o
CC [M] /opt/AQtion/aq_compat.o
CC [M] /opt/AQtion/aq_tsn.o
CC [M] /opt/AQtion/aq_sysfs.o
CC [M] /opt/AQtion/hw_atl/hw_atl_a0.o
CC [M] /opt/AQtion/hw_atl/hw_atl_b0.o
CC [M] /opt/AQtion/hw_atl/hw_atl_utils.o
CC [M] /opt/AQtion/hw_atl/hw_atl_utils_fw2x.o
CC [M] /opt/AQtion/hw_atl/hw_atl_llh.o
CC [M] /opt/AQtion/hw_atl/hw_atl_fw_hostboot.o
CC [M] /opt/AQtion/hw_atl/hw_atl_fw_image.o
CC [M] /opt/AQtion/hw_atl2/hw_atl2_llh.o
CC [M] /opt/AQtion/hw_atl2/hw_atl2.o
CC [M] /opt/AQtion/hw_atl2/hw_atl2_utils.o
CC [M] /opt/AQtion/hw_atl2/hw_atl2_utils_fw.o
CC [M] /opt/AQtion/hw_atl2/hw_atl2_fw_hostboot.o
CC [M] /opt/AQtion/macsec/macsec_api.o
CC [M] /opt/AQtion/aq_dash.o
CC [M] /opt/AQtion/aq_macsec.o
/opt/AQtion/aq_macsec.c: In function ‘aq_mdo_dev_open’:
/opt/AQtion/aq_macsec.c:296:16: error: ‘struct macsec_context’ has no member named ‘prepare’
296 | if (ctx->prepare)
| ^~
/opt/AQtion/aq_macsec.c: In function ‘aq_mdo_dev_stop’:
/opt/AQtion/aq_macsec.c:310:16: error: ‘struct macsec_context’ has no member named ‘prepare’
310 | if (ctx->prepare)
| ^~
/opt/AQtion/aq_macsec.c: In function ‘aq_mdo_add_secy’:
/opt/AQtion/aq_macsec.c:472:16: error: ‘struct macsec_context’ has no member named ‘prepare’
472 | if (ctx->prepare)
| ^~
/opt/AQtion/aq_macsec.c: In function ‘aq_mdo_upd_secy’:
/opt/AQtion/aq_macsec.c:498:16: error: ‘struct macsec_context’ has no member named ‘prepare’
498 | if (ctx->prepare)
| ^~
/opt/AQtion/aq_macsec.c: In function ‘aq_mdo_del_secy’:
/opt/AQtion/aq_macsec.c:549:16: error: ‘struct macsec_context’ has no member named ‘prepare’
549 | if (ctx->prepare)
| ^~
/opt/AQtion/aq_macsec.c: In function ‘aq_mdo_add_txsa’:
/opt/AQtion/aq_macsec.c:611:16: error: ‘struct macsec_context’ has no member named ‘prepare’
611 | if (ctx->prepare)
| ^~
/opt/AQtion/aq_macsec.c: In function ‘aq_mdo_upd_txsa’:
/opt/AQtion/aq_macsec.c:641:16: error: ‘struct macsec_context’ has no member named ‘prepare’
641 | if (ctx->prepare)
| ^~
/opt/AQtion/aq_macsec.c: In function ‘aq_mdo_del_txsa’:
/opt/AQtion/aq_macsec.c:691:16: error: ‘struct macsec_context’ has no member named ‘prepare’
691 | if (ctx->prepare)
| ^~
/opt/AQtion/aq_macsec.c: In function ‘aq_mdo_add_rxsc’:
/opt/AQtion/aq_macsec.c:790:16: error: ‘struct macsec_context’ has no member named ‘prepare’
790 | if (ctx->prepare)
| ^~
/opt/AQtion/aq_macsec.c: In function ‘aq_mdo_upd_rxsc’:
/opt/AQtion/aq_macsec.c:819:16: error: ‘struct macsec_context’ has no member named ‘prepare’
819 | if (ctx->prepare)
| ^~
/opt/AQtion/aq_macsec.c: In function ‘aq_mdo_del_rxsc’:
/opt/AQtion/aq_macsec.c:886:16: error: ‘struct macsec_context’ has no member named ‘prepare’
886 | if (ctx->prepare)
| ^~
/opt/AQtion/aq_macsec.c: In function ‘aq_mdo_add_rxsa’:
/opt/AQtion/aq_macsec.c:962:16: error: ‘struct macsec_context’ has no member named ‘prepare’
962 | if (ctx->prepare)
| ^~
/opt/AQtion/aq_macsec.c: In function ‘aq_mdo_upd_rxsa’:
/opt/AQtion/aq_macsec.c:992:16: error: ‘struct macsec_context’ has no member named ‘prepare’
992 | if (ctx->prepare)
| ^~
/opt/AQtion/aq_macsec.c: In function ‘aq_mdo_del_rxsa’:
/opt/AQtion/aq_macsec.c:1043:16: error: ‘struct macsec_context’ has no member named ‘prepare’
1043 | if (ctx->prepare)
| ^~
/opt/AQtion/aq_macsec.c: In function ‘aq_mdo_get_dev_stats’:
/opt/AQtion/aq_macsec.c:1058:16: error: ‘struct macsec_context’ has no member named ‘prepare’
1058 | if (ctx->prepare)
| ^~
/opt/AQtion/aq_macsec.c: In function ‘aq_mdo_get_tx_sc_stats’:
/opt/AQtion/aq_macsec.c:1087:16: error: ‘struct macsec_context’ has no member named ‘prepare’
1087 | if (ctx->prepare)
| ^~
/opt/AQtion/aq_macsec.c: In function ‘aq_mdo_get_tx_sa_stats’:
/opt/AQtion/aq_macsec.c:1120:16: error: ‘struct macsec_context’ has no member named ‘prepare’
1120 | if (ctx->prepare)
| ^~
/opt/AQtion/aq_macsec.c: In function ‘aq_mdo_get_rx_sc_stats’:
/opt/AQtion/aq_macsec.c:1161:16: error: ‘struct macsec_context’ has no member named ‘prepare’
1161 | if (ctx->prepare)
| ^~
/opt/AQtion/aq_macsec.c: In function ‘aq_mdo_get_rx_sa_stats’:
/opt/AQtion/aq_macsec.c:1210:16: error: ‘struct macsec_context’ has no member named ‘prepare’
1210 | if (ctx->prepare)
| ^~
make[2]: [/usr/src/linux-headers-6.1.0-28-common/scripts/Makefile.build:255: /opt/AQtion/aq_macsec.o] Error 1 (ignored)
/usr/src/linux-headers-6.1.0-28-common/scripts/check-local-export: nm failed
Прервано
make[2]: [/usr/src/linux-headers-6.1.0-28-common/scripts/Makefile.build:255: /opt/AQtion/aq_macsec.o] Error 143 (ignored)
LD [M] /opt/AQtion/atlantic.o
ld: cannot find /opt/AQtion/aq_vec.o: No such file or directory
ld: cannot find /opt/AQtion/aq_ptp.o: No such file or directory
ld: cannot find /opt/AQtion/aq_macsec.o: No such file or directory
make[2]: [/usr/src/linux-headers-6.1.0-28-common/scripts/Makefile.build:468: /opt/AQtion/atlantic.o] Error 1 (ignored)
Ответ или решение
Чтобы решить проблему с недоступностью драйвера для AQC113 на Debian 12, давайте подробно разберемся в вашем сценарии и предложим решение. Вам нужно установить и настроить драйвер для чипа Aquantia AQC113C.
-
Текущая ситуация:
- У вас установлена версия ядра 6.1.0-28-amd64.
- Сетевая карта 10G AQtion Ethernet с чипом AQC113C не работает.
- Драйвер
atlantic
установлен, но вашей карты он не поддерживает. - Вы столкнулись с ошибками при компиляции драйверов версии 2.5.12 и 2.5.5.
-
Анализ проблемы:
- Судя по выводам, AQC113C не поддерживается текущим модулем
atlantic
, что может быть связано с отсутствием поддержки этого чипа в дефолтной версии драйвера. - PCIE 10G адаптер нуждается в специфическом драйвере, который может быть не включен в вашу версию Debian по умолчанию.
- Судя по выводам, AQC113C не поддерживается текущим модулем
-
Предлагаемые решения:
А. Проверка системной поддержки:
- Убедитесь, что ваше ядро действительно поддерживает этот Ethernet чип. Можно проверить, не заблокирован ли этот чип в вашем ядре или не исключён ли он разработчиками Debian по умолчанию.
Б. Обновление ядра Linux:
- Попробуйте обновить ядро до более новой версии, где может быть добавлена поддержка вашего устройства. Использование более свежего ядра 6.2 или выше может оказаться полезным.
В. Сборка драйвера из исходников с изменениями:
- Поскольку во время сборки драйвера у вас возникают ошибки, возможно, необходимо внести изменения в драйвер, чтобы он компилировался корректно с вашим ядром. Измените вызов
netif_napi_add
в файлеaq_ptp.c
иaq_vec.c
, чтобы передать ему только допустимое количество аргументов.
Г. Сообщество и поддержка производителя:
- Обратитесь за помощью на поддержку Marvell или профильные сообщества, такие как GitHub, где уже рассмотрены подобные кейсы. Возможно, кто-то уже обновил драйвер для поддержки вашей версии ядра.
Д. Альтернативные методы:
- Рассмотрите возможность использования универсальных драйверов, которые могут лишь частично поддерживать вашу карту, пока не будет окончательно решена проблема.
-
Заключение:
- Исправление таких ошибок требует глубоких технических знаний. Какие-либо изменения в исходном коде драйвера должны проводиться с осторожностью, чтобы избежать нестабильности системы.
Эти шаги должны помочь вам активировать и использовать вашу сетевую карту на Debian 12. Однако для критически важных систем рекомендую протестировать изменения в изолированных средах перед внедрением в рабочую среду.