此文为转载:
 
在此对原作者表示无限敬意!
似乎 Marvell 的网卡在目前的低价双核主板上比较流行,要想在较低配置下的 PC 机器上安装 FreeBSD,就需要想办法解决这个网卡驱动问题。

也许是为了保护自己的硬件接口,Marvell 针对 FreeBSD 的网卡驱动都是自己提供的,可以从 marvell.com 免费下载。不管怎么样,能够专门为 FreeBSD 提供驱动,厂商已经做的非常不错了。

Marvell 官方提供的是一个 FreeBSD package,安装非常方便,假设以当前最新版本 mykbsd60×86-8.14.9.3.tgz 为例(Marvell 只提供了 i386 版本):
Copy code
[[email]root@gw.dirk.sh[/email]:~]# wget /url/to/mykbsd60x86-8.14.9.3.tgz (请使用相应的URL)
[[email]root@gw.dirk.sh[/email]:~]# pkg_add mykbsd60x86-8.14.9.3.tgz


我在 FreeBSD 6.2 下安装非常顺利,我们来看一下这个 package 在我们的系统中都安装了哪些文件:
Copy code

[[email]root@gw.dirk.sh[/email]:~]# pkg_info -L mykbsd60x86-8.14.9.3
Information for mykbsd60x86-8.14.9.3:

Files:
/boot/kernel/if_myk.ko
/usr/share/man/man4/myk.4.gz

可见,该 package 只在我们的系统上安装了一个内核模块 if_myk.ko 和一个 man 手册页,如果你需要帮助,你可以通过 man myk 来阅读了。

下面,让我加载这个模块,并看看加载情况吧:
Copy code

[[email]root@gw.dirk.sh[/email]:~]# kldload if_myk
[[email]root@gw.dirk.sh[/email]:~]# kldstat
Id Refs Address    Size    Name
1  11 0xc0400000 3a5228  kernel
2    1 0xc07a6000 3204    splash_bmp.ko
3    1 0xc07aa000 5628    vesa.ko
4    1 0xc0825000 64180    acpi.ko
5    1 0xc36f2000 5000    if_tun.ko
8    1 0xc487f000 31000    if_myk.ko
9    1 0xc361c000 2000    libmbpool.ko

这台机器是我的拨号网关,可以看到其他的模块,但已经成功加载 if_myk.ko 模块,如果你的系统上安装有 Marvell 相应的 Yukon 网卡,通过 ifconfig -a 命令就应该看到类似 myk0 这个样的网络接口设备了。

你可以试试给 myk0 这样的接口帮定 IP 地址,如果测试没有问题,为了在系统启动的时候自动加载 if_myk.ko 模块,需要在 /boot/loader.conf 文件中设置:
Copy code

if_myk_load="YES"

最后,你需要在 /etc/rc.conf 文件中为对应的网络接口设置 IP 地址,这些都是 FreeBSD 基本技能了。


附带两个驱动下载地址:
[url]http://marshall.kiev.ua/soft/drivers/net/mykbsd60x86-8.14.9.3.tgz[/url]
[url]http://www.marvell.com/drivers/upload/mykbsd60x86-8.14.9.3.tgz[/url] 
[url]http://www.marvell.com/drivers/driverDisplay.do?dId=139&pId=35[/url]