Panabit Support Board!

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8648|回复: 5

针对无法识别板载的螃蟹卡 FB 下编译驱动的方法

[复制链接]
发表于 2009-8-24 15:01:46 | 显示全部楼层 |阅读模式
编译过程在4楼

Atom主板 板载的RTL8102EL网卡(作为管理口用)无法识别 安装FreeBSD 7.2也无法识别
主板只带2个PCI口 没有多余的口再安装一快替换网卡 只能编译驱动了
官方提供了FreeBSD的驱动 不过没在FreeBSD下装过驱动不知道如何下手
官方的说明
=================================================================================
=  Realtek 8139C/8139C+/8169S/8169SB/8169SC/8168B/8168C/8168CP/8168D/8101E/     =
=  8102E/8103E Driver for FreeBSD v4.x/5.x/6.x/7.x                              =
=================================================================================

This driver is modified by Realtek Semiconductor corp. and it has been tested OK
on FreeBSD 4.7, FreeBSD v5.1, FreeBSD v5.4, FreeBSD v6.0, and FreeBSD v7.2. To
update the driver, you may use method 1. If method 1 failed, you must use
method 2 which is more complex.

Method 1:
        1.Copy if_rl.ko in "modules" directory to "/modules" directory and overwrite
          the existing file.
        2.Modify the file "/boot/defaults/loader.conf" and set "if_rl_load" in "Network
          drivers" section to "Yes"
        3.Reboot.

Method 2:
        Because the FreeBSD kernel has default drivers to support RTL8139C and RTL8169S. To use the RTL8139C+, RTL8169SB, RTL8169SC, RTL8168B, and RTL8101E, you need to update your NIC driver by recompiling your FreeBSD kernel.

        The main steps you have to doFreeBSDSrcDir means the directory of FreeBSD source code
        and it may be "/usr/src/sys")

                1. keep the orginal driver source code:
                        # cd /usr/src/sys/pci
                        # cp if_rl.c if_rl.c.org
                        # cp if_rlreg.h if_rlreg.h.org
                       
                        # cd /usr/src/sys/modules
                        # cp Makefile Makefile.org
                       
                        # cd /usr/src/sys/modules/rl
                        # cp Makefile Makefile.org
                       
                        # cd /usr/src/sys/i386/conf/
                        # cp GENERIC GENERIC.org
                       
                2. recompile your kernel (you must install your FreeBSD source code first !!)
                        # vim /usr/src/sys/i386/conf/GENERIC and delete rl and re
                        # vim /usr/src/sys/modules/Makefile and delete rl and re
                        # cd /usr/src/sys/i386/conf
                        # /usr/sbin/config GENERIC
                       
                        (for FreeBSD 5.x/6.x/7.x)
                        # cd ../compile/GENERIC
                        (for FreeBSD 4.x)
                        # cd ../../compile/GENERIC

                        # make depend
                        # make
                        # make install
                        # reboot
               
                3. update the driver source code:
                    Copy the dirver source code( if_rl.c and if_rlreg.h) into /usr/src/sys/pci
                    Copy the Makefile into /usr/src/sys/modules/rl
                    
                4. build the driver:
                        # cd /usr/src/sys/modules/rl
                        # make clean
                        # make
               
                5. install the driver
                        # cd /usr/src/sys/modules/rl
                        # kldload ./if_rl.ko
                       
                6. configurate the static IP address
                        # ifconfig rl0 xxx.xxx.xxx.xxx
                       
                7. configurate the IP address by DHCP
                        # /sbin/dhclient rl0

The user can use the following command to change link speed and duplexmode.
        1. For auto negotiation,
                #ifconfig rl<device_num> media autoselect

        2. For 1000Mbps full-duplex,
                #ifconfig rl<device_num> media 1000baseTX mediaopt full-duplex

        3. For 100Mbps full-duplex,
                #ifconfig rl<device_num> media 100baseTX mediaopt full-duplex

        4. For 100Mbps half-duplex,
                #ifconfig rl<device_num> media 100baseTX -mediaopt full-duplex

        5. For 10Mbps full-duplex,
                #ifconfig rl<device_num> media 10baseT/UTP mediaopt full-duplex

        6. For 10Mbps half-duplex,
                #ifconfig rl<device_num> media 10baseT/UTP -mediaopt full-duplex

[ 本帖最后由 tnt123 于 2009-9-9 21:55 编辑 ]
 楼主| 发表于 2009-8-24 15:10:01 | 显示全部楼层
官方驱动给了3个文件
if_rl.c
if_rlreg.h
Makefile
 楼主| 发表于 2009-8-26 08:04:31 | 显示全部楼层
官方给的驱动没有if_rl.ko 看来只能用第二种方法 自己编译if_rl.ko
自己编译需要FreeBSD 源代码 得重新装FreeBSD的完整版了
玩过linux,好多操作都很类似 回头自己先尝试编译下看看
 楼主| 发表于 2009-8-27 18:28:32 | 显示全部楼层
使用板载螃蟹卡的朋友也不少可惜没人回答
自行摸索经过多次尝试终于成功编译完驱动(还好以前用过linux 操作和FB差别不大,自己动手丰衣足食)
详细步骤
从官网下载到for FB的驱动后,解压并阅读Realme.txt,其中提供了两种方法来安装驱动:
很明显,下载到的压缩包里并没有if_rl.ko这个模块,所以第一个方法失败(其实也是对广大的用户负责,从源码安装的程序是最适合你的机器的,虽然麻烦了一些^_^),改用第二个方法。 自行编译适合自己软硬件环境的驱动
先去http://www.freebsdchina.org/下载FB7.2 的第一张光盘镜像刻盘安装到需要装Panabit的机器上 安装时一定记得把FreeBSD 开发工具和源代码装上(具体安装步骤网上很多)

装好后入到系统,根据驱动包的Realme.txt输入以下命令:

cd /usr/src/sys/pci
cp if_rl.c if_rl.c.org
cp if_rlreg.h if_rlreg.h.org
cd /usr/src/sys/modules
cp Makefile Makefile.org
cd /usr/src/sys/modules/rl
cp Makefile Makefile.org
cd /usr/src/sys/i386/conf/
cp GENERIC GENERIC.org
cd /root
复制官网下载的驱动 我下的是rtl_bsd_drv_v179.tgz
解压
tar -xf rtl_bsd_drv_v179.tgz

删除 rl re 设备名
vi /usr/src/sys/i386/conf/GENERIC
# PCI Ethernet NICs that use the common MII bus controller code.
# NOTE: Be sure to keep the 'device miibus' line in order to use these
NICs!
(删除)device          re              # RealTek 8139C+/8169/8169S/8110S
(删除)device          rl              # RealTek 8129/8139
这2行都删除

下面这个也是2行都删除
vi /usr/src/sys/modules/Makefile
# oldcard -- specialized use for debugging only.
# owi -- totally unsupported for debugging only.
SUBDIR= ${_3dfx} \
        ${_3dfx_linux} \
          :
          :
        rc4 \
        re \(删除)
        reiserfs \
        rl \(删除)
        rp \


重新编译内核 这一步会比较花时间 具体看你机器的性能
cd /usr/src/sys/i386/conf
/usr/sbin/config GENERIC
cd ../compile/GENERIC
make depend
make
make install
reboot
重起

下面升级驱动源码
cd /root
cd rtl_bsd_drv_v179
cp if_rl.c /usr/src/sys/pci
cp if_rlreg.h /usr/src/sys/pci
cp Makefile /usr/src/sys/modules/rl
cd /usr/src/sys/modules/rl
make clean
make
kldload ./if_rl.ko
载入驱动 如果能显示出网卡型号就说明编译成功

然后拷出if_rl.ko 以备后用

然后安装精简版FB 装完后先不要装Panabit 先装编译好的网卡驱动模块
也就是Realme.txt中的方法

不过注意:if_rl.ko文件实际应该拷贝到 /boot/kernel/ 目录下面 而不是Realme.txt中的/modules目录下
最后
编辑/boot/defaults/loader.conf,找到 Networking drivers 部分的
if_rl_load="NO"                        # RealTek 8129/8139
改为
if_rl_load="YES"
reboot
进入系统后 ifconfig 就应该能正常看到你的rl网卡了

安装panabit进行网口配置

希望能对不会编译驱动的朋友有所帮助

[ 本帖最后由 tnt123 于 2010-3-30 09:50 编辑 ]
发表于 2009-8-27 20:14:57 | 显示全部楼层
Good!!!
发表于 2009-8-27 21:57:58 | 显示全部楼层
太谢谢了!我正在找如何编FreeBSD网卡驱动发愁!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|北京派网软件有限公司 ( ICP备案序号:京ICP备14008283号 )

GMT+8, 2024-11-1 23:33 , Processed in 0.066563 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表