FreeBSD 中识别网络适配器
目前,FreeBSD 支持绝大多数的有线或无线网卡,配置前可以先查看系统中有哪些网络适配器。
查看网络适配器
使用如下的命令查看系统中的网络设备:
pciconf -lv | grep -A1 -B3 network
根据你系统中安装的设备,会输出类似如下的信息:
em0@pci0:0:25:0: class=0x020000 rev=0x03 hdr=0x00 vendor=0x8086 device=0x10f5 subvendor=0x17aa subdevice=0x20ee
vendor = 'Intel Corporation' # 网卡厂商
device = '82567LM Gigabit Network Connection' # 网卡型号
class = network
subclass = ethernet # 有线以太网网卡
--
iwn0@pci0:3:0:0: class=0x028000 rev=0x00 hdr=0x00 vendor=0x8086 device=0x4237 subvendor=0x8086 subdevice=0x1211
vendor = 'Intel Corporation'
device = 'PRO/Wireless 5100 AGN Network Connection' # 无线网卡型号
class = network
注:@ 符号前面的 em0/iwn0 是网卡驱动名称+序号,如果要查看具体内容,可查看其对应的手册 em(4) 或 iwn(4)。
加载网卡驱动模块
如果 FreeBSD 系统未能自动识别并加载网卡,那么就需要手动加载显卡驱动模块,加载的方式有如下两种:
- 临时加载,重启后就会失效
- 开机自动加载
临时加载驱动
以加载 alc 驱动为例,使用如下的命令加载驱动:
kldload if_alc
解释说明:
kldload:FreeBSD 的内核模块加载命令if_alc:网卡驱动模块名称,名称的形式为if_驱动名。
开机自动加载
将驱动加载指令写入 /boot/loader.conf 文件中,实现开机自动加载网卡驱动。
1)编辑 /boot/loader.conf 文件:
sudo vi /boot/loader.conf
2)添加如下内容:
if_alc_load="YES"
配置项解析:
if_alc_load:驱动加载指定,YES表示启用;/boot/loader.conf:FreeBSD 内核启动模块配置文件,修改后需要重启后才能生效。
查看网卡状态
使用 ifconfig 命令查看所有网卡的详细配置:
ifconfig
输出信息会与你自己的系统相关,会输出类似如下的信息:
em0: flags=8863<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=481249b<RXCSUM,TXCSUM,VLAN_MTU,...> # 网卡硬件特性
ether 00:1f:16:0f:27:5a # 网卡MAC地址
inet 192.168.1.19 netmask 0xffffff00 broadcast 192.168.1.255 # IPv4地址/掩码/广播地址
inet6 fe80::21f:16ff:fe0f:275a%em0 prefixlen 64 scopeid 0x1 # IPv6链路本地地址
media: Ethernet autoselect (1000baseT <full-duplex>) # 协商速率与双工模式
status: active # 链路状态:active=已连接;no carrier=未插网线
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
inet 127.0.0.1 netmask 0xff000000 # 本地回环地址
inet6 ::1 prefixlen 128 # IPv6回环地址
网卡说明:
- em0:以太网网卡
- lo0:回环网卡
关键信息说明:
UP:网卡已启用RUNNING:网卡正在运行status: active:物理链路已连通inet:配置的 IPv4 地址inet6:配置的 IPv6 地址