December 9, 2019

在proxmox中编译qnap万兆nvme网卡驱动

由于本机的5千兆网卡aqc-108已经成功的在hackintosh里驱动成功,所以腾出了qnap的这张10G tn40xx的万兆网卡准备搭建软路由.proxmox在uefi启动上仍然有点小毛病,需要从BIOS里设置从传统GPT启动的选项,未来uefi成熟后可以切换回uefi boot.

兴奋地把QM2-2P10G1T 对,没错 就是这张https://www.qnap.com/zh-cn/product/qm2-m.2ssd-10gbe_pc 之前在群晖下死活没build出来驱动的卡,在proxmox中依然没有提供支持,看起来是tehuti每次新发布驱动都无法merge回linux内核的upstream.原因看issue是因为这卡用了太多杂七杂八的phy来做桥接芯片 无法统一Merge进内核,所以这个驱动只能用branch v3分支来支持qnap这张卡

直接去tehuti下载到这张万兆卡的驱动源码.  另外还要下载Marvell phy的头文件,拷贝到/usr/src/tn40xx-003 一起编译 否则的话 编译出来的tn40xx可以加载,但是无法识别显卡因为phy芯片没有正确驱动起来

x3310fw_0_3_4_0_9445.hdr 下载地址是:

https://github.com/acooks/tn40xx-driver/files/2982468/x3310fw_0_3_4_0_9445.hdr.gz

make clean && make install
git clone -b release/tn40xx-003 https://github.com/acooks/tn40xx-driver.git /usr/src/tn40xx-003
dkms add -m tn40xx -v 003
dkms install -m tn40xx -v 003 -k $(uname -r) 

看来是proxmox没有把自己的内核源码一并安装,所以apt install build-essential pve-headers-$(uname -r) dkms

然后pve-efiboot-tool refresh 重启后控制台发现新的万兆卡已经被系统识别并且直接可以在网页端使用.

https://github.com/acooks/tn40xx-driver/blob/release/tn40xx-003/docs/dkms.md