文章目录
  1. 失败的尝试
  2. NetKit
  3. Debian (PVE)
  4. OpenWrt
  5. 准备虚拟机
  6. 完善虚拟机
  7. 安装驱动
  8. 简单使用
  9. 鸣谢

由于我一直希望软路由可以自带无线 虽然由网卡发出的无线 信号和速率都比不上正儿八经的AP 但是用来给物联网设备连接 轻度使用 应急使用 还是很不错的,这样在AP意外断开后也可以有个基本的无线使用。

目前我在寝室使用的AP不支持5G无线 所以我便将目光瞄向了这仅需20元的AR9280,不仅支持5G/2.4G AP 无线功率也达到了20db

在上图中 可见我不但买了AR9280 还同时买了AR9382,因为一开始我查询到AR9382支持更快的无线速率(由AR9380阉割而来) 但由于这网卡卖家发货有问题,我上机后系统无法找到(lspci里都没有) 但是因为价格便宜懒得退了

由于网卡是双面的 所以是真的厚 minipcie槽被顶起来了(在网卡下再垫了一块防静电塑料片 防止短路) ,然后msata硬盘也无法正常装上 被网卡顶起来了 就这样微微拧上一点螺丝用吧(固态有一点点弯曲)

2021年1月1号更新 已另外购置minipcie延长线 来解决网卡无法妥善安装问题,同时为后期升级qca9880预留安装空间

待系统启动后 就可以通过lspci查看到新增加的网卡了 07:00.0

失败的尝试

NetKit

由于我家中服务器刚开学没多久就被电信掐了端口 一直无法连上 就让我父母帮忙关机了 所以没法将网卡驱动直接编译进固件。

固件基于openwrt 19.07.4 用的4.14.195内核 但因为是我自己编译的 所以内核后边的小尾巴跟官方编译的不相匹配 所以那怕将软件源更换到官方的19.07.4或下载ipk直接安装都无法成功(强制安装的驱动无法使用)

我明明看到载入了ath9k的驱动 但就是不能用 🙂🙂🙂

待我放假回家 就更新一波固件 集成驱动

Debian (PVE)

我也尝试过直接在pve下驱动使用 但是 debian自带的ath驱动也没法使用 在ifconfig中没有出现新的网络接口 于是便尝试安装网卡驱动 fireware-atheros

但是 不知道为什么安装这个驱动需要卸载pve组件??? 我一开始闭着眼睛直接Y后回车了 幸好pve并不能那么轻易被卸载掉 我TM直接差点去世🙂🙂🙂

OpenWrt

因为担心在PVE宿主系统下瞎搞 搞崩 所以还是单独再开了个openwrt的虚拟机去驱动网卡,由于官方的软件源中有编译好的启动ipk文件 所以就直接使用了原版系统(网络大佬编译的版本貌似基本都去掉了无线功能吧)

准备虚拟机

官方更新的比较积极 软件源也都一直有在维护 所以不管什么时候直接下载最新版应该都可以驱动 如果担心失败 可以选择我写文时使用的版本 19.17.5(x64)

虚拟机转盘使用 combined-ext4.img.gz 物理机写盘使用combined-squashfs.img.gz

squashfs在物理机下初次开机会自动扩展磁盘空间 虚拟机下由于转盘不会给任何空余空间 所以会导致空间不足以至于连 /etc/network/config等配置文件都无法正确生成

首先新建一台虚拟机 创建过程详见 家用 All in one 服务器 – Pasi’s Cat

在移除默认创建的硬盘和光驱后进入到PVE的终端(Terminal)后台

下载原版19.17.5 wget https://downloads.openwrt.org/releases/19.07.5/targets/x86/64/openwrt-19.07.5-x86-64-combined-ext4.img.gz

解压镜像 gzip -d openwrt-19.07.5-x86-64-combined-ext4.img.gz

你也可以选择先下载并解压后传入pve,再用SCP sftp MobaXterm 等操作传入镜像

下载img2disk 转盘软件 wget http://dl.everun.top/softwares/utilities/img2kvm/img2kvm

赋予img2kvm执行权限 chmod +x ./img2kvm

./img2kvm 镜像名称 虚拟机id号,以本次为例 命令如下 ./img2kvm openwrt-19.07.5-x86-64-combined-ext4.img 103 完成后记得到虚拟机页面双击硬盘以添加

由于AR9280网卡需要关闭MSI-X后才可以正常的直通 所以在此我们需要直接编辑虚拟机配置文件以添加网卡

事先需要通过lspci查看需要直通的硬件 id 在我这AR9280网卡为07:00

编辑id为103的虚拟机 nano /etc/pve/nodes/aptoide/qemu-server/103.conf

在配置文件中 添加 hostpci0: 07:00
为解决pcie传递错误 再添加 args: -set device.hostpci0.x-msix-relocation=bar2

说明:hostpci0为虚拟机pcie设备,如果之前已经直通了其他设备 该名称依次后推。
07:00 为网卡编号 可以通过lspci查看到

修改完成后 ctrl +x 输入y回车保存退出 文件内容如下图所示

在pve虚拟机后台硬件选项卡中 显示如下图所示

原版固件异常的省性能 128M的运存便足以运行,此时便可以启动该虚拟机

完善虚拟机

在虚拟机VNC界面中 首先设置一下网络 vi /etc/config/network修改ip地址并添加网关和dns服务器

option ipaddr '10.0.0.6'
option gateway '10.0.0.1'
list dns '10.0.0.1'

保存重启网络服务 /etc/init.d/network restart

迫于国内网络环境 更换为清华代理源(你如果对自家网络很有自信 那就随意

sed -i 's_downloads.openwrt.org_mirrors.tuna.tsinghua.edu.cn/openwrt_' /etc/opkg/distfeeds.conf

更新一下软件源 以便安装后续的驱动程式 opkg update

因为此虚拟机我是单纯驱动网卡以开启无线 所以本质上就是一个运行在虚拟机里的AP ,关闭DHCP功能

进入openwrt网页后台 网络 -> 接口 -> Lan 点击右侧编辑 进入DHCP选项卡 勾选 忽略此接口

安装驱动

安装openwrt luci网页后台中文语言翻译 opkg install luci-i18n-base-zh-cn

安装无线依赖 opkg install iw-full wireless-regdb kmod-cfg80211 hostapd-common

安装网卡驱动opkg install kmod-ath kmod-ath9k-common kmod-ath9k

理论上会自动完成依赖 只需要opkg install kmod-ath9k就可以

此时我们便可以在openwrt 后台 接口 无线选项卡中 进行无线的相关设置 但是你会发现 无线网络不支持设置WPA加密

一步到位安装WPA3支援 opkg install wpad-openssl

简单使用

嗯 比我那2.4G的AP速度快多了,就是信号不太行 因为我为了美观装的是贴片的天线 不知道能不能通过安装高增益天线来解决;网卡工作频率应该可以到20dBm,但此时被限制到了16dBm.

总之这网卡可比intel垃圾无线网卡好多了🙂🙂🙂

鸣谢

https://forum.proxmox.com/threads/pcie-passthrough-of-atheros-ar9280.45012