/usr/src/sys/conf/NOTES
和 /usr/src/sys/arch/conf/NOTES
,了解带有支持的芯片组的一些信息的 NIC 驱动程序列表。如果有疑问,请阅读驱动程序的手册页,因为它将提供更多关于支持的硬件和关于这个驱动程序的已知限制。/var/run/dmesg.boot
并使用空格键滚动浏览文本来查看。在这个例子中,系统上有两个使用 dc(4) 驱动的以太网网卡:kldload(8)
为网卡加载一个内核模块。要想在启动时自动加载驱动程序,可以在 /boot/loader.conf
中添加相应的行。并非所有的网卡驱动都可以作为模块使用。/usr/src/sys/conf/NOTES
, /usr/src/sys/arch/conf/NOTES
和驱动程序的手册页面,以确定在自定义内核配置文件中加入哪一行。更多关于重新编译内核的信息,请参考 第8章 配置 FREEBSD 内核。如果能在启动时检测到 NIC,则不需要重新编译内核。ndisgen(8)
,可以用来将 Windows® XP 驱动转换为可以在 FreeBSD上使用的格式。由于 ndis(4)
驱动程序使用的是 Windows® XP 二进制文件,它只能在 i386™ 和 amd64 系统上运行,支持 PCI、CardBus、PCMCIA 和 USB 设备。ndisgen(8)
, 需要以下准备:.SYS
后缀的 Windows® XP 驱动程序.INF
后缀的 Windows® XP 驱动配置文件.SYS
和 .INF
文件,这些一般能在驱动的光盘里或者提供商的网站上找到。接下来的例子我们将使用 W32DRIVER.SYS
和 W32DRIVER.INF
。root
,使用 ndisgen(8)
。kldload(8)
来加载新模块:ndis.ko
和 if_ndis.ko
模块还必须被加载。当任何依赖 ndis(4)
的模块被加载时,这个会自动执行。如果没有,请使用下列命令手动加载它们:ndis(4)
miniport 驱动包装器,第二条命令加载生成的网卡驱动。dmesg(8)
,看看是否有任何加载错误。如果一切顺利,输出应该与下面类似:ndis0
可以像其他网卡一样进行配置。ndis(4)
模块,将生成的模块 W32DRIVER_SYS.ko
复制到 /boot/modules
。然后,在 /boot/loader.conf
中添加以下一行。bsdinstall(8)
进行了配置。dc0
: 第一个以太网口dc1
: 第二个以太网口lo0
: 回环设备sis2
是系统中使用 sis(4) 驱动程序的第三块网卡。dc0
已经启动并运行,关键指标为:UP
表示网卡已经被配置好了并且能使用inet
) 地址,是 192.168.1.3
192.168.1.255
ether
)的 MAC 地址是: 00:a0:cc:da:da:da
media: Ethernet autoselect (100baseTX <full-duplex>)
)。在这个例子中,dc1
是被配置来和 10baseT/UTP
运行的。更多关于可用的媒介的驱动,请到它的手册页面上去寻找。status
)是 active
的,表明检测到了载波信号。对于dc1
,当以太网电缆没有插入卡中时,将显示:status: no carrier
。ifconfig(8)
的输出是像这样的:root
身份进行配置。网卡配置可以在命令行中用 ifconfig(8)
执行,但在重启后将不会持续,除非配置也被添加到 /etc/rc.conf
中。如果局域网上有 DHCP 服务器,只需添加这一行即可:dc0
。注意如果网络在安装过程中就配置了,NIC 的一些条目就可能已经存在。在对/etc/rc.conf
进行任何添加前,请仔细检查。
dc0
和 dc1
以及 IP 地址信息。关于允许的选项和 /etc/rc.conf
的语法的更多细节,请参考驱动程序、ifconfig(8)
和 rc.conf(5)
的手册页面。/etc/hosts
,如果局域网上的主机配置还没有在那里的话,添加它们的主机名称和 IP 地址。欲了解更多信息,请参考 hosts(5)
的手册页面和 /usr/share/examples/etc/hosts
。注意如果没有 DHCP 服务器,且需要访问互联网,请手动配置默认的gateway
和nameserver
:1# sysrc defaultrouter="your_default_router"2# echo 'nameserver your_DNS_server' >> /etc/resolv.confCopied!
/etc/rc.conf
的必要更改,就可以使用重新启动来测试网络配置,并验证系统重新启动时没有出现任何配置错误。或者,通过下面的命令将这些设置应用到网络系统:/etc/rc.conf
中设置了默认网关,也可以执行以下命令:ping(8)
接口本身,然后再 ping(8)
局域网上的另一台机器。/etc/hosts
。为此,编辑 /etc/hosts
,添加局域网上主机的名称和 IP 地址,如果它们还没有在那里。欲了解更多信息,请参考 hosts(5)
和 /usr/share/examples/etc/hosts
。device timeout
)的信息,这对某些卡来说是正常的。如果它们继续存在,或令人烦恼,请确定该设备是否与其他设备冲突,仔细检查电缆的连接,并考虑尝试另一块卡。watchdog timeout
)错误,首先检查网线。许多卡需要一个支持总线主控的 PCI 插槽。在一些旧主板上,只有一个 PCI 插槽允许,通常是 0 号插槽。检查网卡和主板文档,以确定这是否可能是问题所在。No route to host
)的信息。如果没有指定默认路由或拔掉电缆,就会发生这种情况。检查 netstat -rn
的输出,确保有一个到主机的有效路由。如果没有,请阅读 32.2. 网关和路由。ping: sendto: Permission denied
的错误信息通常是由防火墙的配置错误引起的。如果在 FreeBSD 上启用了防火墙,但没有定义规则,那默认策略是拒绝所有流量,甚至是对于 ping(8)
。更多信息请参考 第31章 防火墙。sutoselect
)设置为正确的媒体选择。虽然这对大多数硬件有效,但它也可能没法解决这个问题。同样,检查所有的网络设置,并参考 tuning(7)
的用户手册。