红联Linux门户
Linux帮助

FreeBSD在ASUS笔记本上的安装&双引导FreeBSD和XP

发布时间:2008-01-04 00:00:58来源:红联作者:Interlude
买了个本本,准备装FB,遇到不少难题,现在会将遇到的问题和解决办法写下来,供大家参考、备查。
一、安装
  相信不少的朋友在初学FreeBSD的时候都曾想过在电脑上XP和FreeBSD,但并非是每个人的电脑上都是两块硬盘,尤其是想在笔记本上安装FreeBSD的朋友。VM这个东东好,但毕竟有时还是要在真机上进行试验,比如像内核编译、make world之类的操作,相信有过在VM下做这些工作的朋友一定会对此过程刻骨铭心,那个等待的过程用两个字来形容就是:难过。
  我安装双引导的时候,没有使用Linux里广泛使用的Grub,虽然我也找到了文档来进行操作。我的观点是简单最好,使用是FreeBSDChina上penguin的贴子里写的那个内容:
将BSD所在主分区Set Active(可以用PQ,Diskman等工具都可) 默认将引导BSD系统,进入BSD系统可后:
引用: #dd bs=512 count=1 if=/dev/ad0s3 of=bootsect.bsd
红色文字视你自己硬盘情况修改
将生成一个bootsect.bsd,将这个文件拷贝到XP盘根目录下(mount_msdos FAT系统拷贝过去,或是任何办法拷过去就行,再将XP所在主分区Set Active(也可以用FreeBSD自带的fdisk,不熟练慎用,还是PQ,Diskman吧)
编辑XP的boot.ini文件,加入 C:\bootsect.bsd="FreeBSD"
OK,下次启动XP将会有启动菜单选择
  需要单独说明的是,如果你不想破坏数据的话,可以使用PQ等软件进行分区调整,因为我的硬盘空间已经不够,在保存了所需要的文件后,选择的是将整个硬盘格式化掉后重新安装的系统。在安装时,先把XP安装到了硬盘的前67G,将120G硬盘的其他部分分给了FB。按照正常的程序安装好XP后,同样用正常的程序安装FB,在安装FB的过程中,有一个界面是选择安装FB引导程序的那个对话框,我在这里犯了不只一次的毛病,看到该界面时,担心FB写MBR到硬盘的开始部分,破坏掉XP的引导程序,一直使用的是NONE选项,所以之后的FB一直启动不起来(需知,WIN修复MBR相当之麻烦)。后来无意间安装了FB的标准引导程序,再用win98的光盘将WIN分区设置为活动(即可启动状态)之后就可以利用WIN的启动菜单来引导FB了。
将bootsect.bsd和boot.ini保存到一个安全的地方,将来重装XP的时候将这两个文件拷贝到C下,然后收工。
阶段总结:
1、以前传说的FB的启动信息要在1024柱面之内的那个限制似乎不再有用了。
2、万般无奈的情况下,抱着必死的心情去做,也许会有意外收获。
二、硬件驱动安装
  按说这个部分对于熟悉于安装WIN的朋友来说是一件再简单不过的事情了,但在Unix下这可能是一个噩梦都说不定^_^,不废话了,马上开始。
(一)网卡驱动的安装
我的本本华硕的说法是高性价比系列的机型,有一部分硬件是比较NB的,比如像WLAN,是intel 3945ABG的,网卡用的是RealTek RTL8168/8111 PCI-E Gigabit的以太网卡。麻烦的是FB 5.4不支持这一系列的网卡,还好RealTek公司提供for FreeBSD的驱动下载,FB才能得以进驻我的本本。
Method 1: //方法1:
1.Copy if_rl.ko in "modules" directory to "/modules" directory and overwrite the existing file. //复制 if_rl.ko 到/modules 目录并覆盖已存在的文件
3.Reboot.//这个不用说了吧?
很明显,我们下载到的压缩包里并没有这个模块,所以第一个方法失败(其实也是对广大的Unix用户负责,从源码安装的程序是最适合你的机器的,虽然麻烦了一些^_^),改用第二个方法。
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.
//因为FreeBSD的内核有自带的驱动来支持RTL8139C和RTL819S。要使用RTL8139C+、 RTL8169SB、RTL8169SC、RTL8168B 和 RTL8101E,你需要通过重新编译你的FreeBSD内核来升级你的NIC(Network Interface Card,网络接口卡)驱动。
The main steps you have to do:(FreeBSDSrcDir means the directory of FreeBSD source code and it may be "/usr/src/sys")//有一些主要的步骤你需要做(FreeBSDSrcDir 的是指你的FreeBSD 源代码的目录,路径可能是 /usr/src/sys,默认路径):
1. keep the orginal driver source code://保留原始驱动源码
# cd /usr/src/sys/pci
# cd /usr/src/sys/modules
# cd /usr/src/sys/modules/rl
# cd /usr/src/sys/i386/conf/
2. recompile your kernel (you must install your FreeBSD source code first !!) //重新编译你的内核(你必须要先安装你的FreeBSD 源代码)
# vim /usr/src/sys/i386/conf/GENERIC and delete rl and re//rl、re是RTL网卡在FB里的设备名,下同。
# vim /usr/src/sys/modules/Makefile and delete rl and re //在操作此步骤的时候,用#来注销含有 re、rl 的两行会出现编译错误,需要真正从文件中删除这两行编译才得以继续。
# cd /usr/src/sys/i386/conf
# /usr/sbin/config GENERIC//到这一步重新编译内核的时候,我参考的是《FreeBSD 技术内幕》P332的
# make kernel KERNCONF=zeroB(zeroB是我的内核的名称,请根据你的内核文件的名称及内核文件中的ident字段来确定),并省略了以下的步骤从step 3 开始。当然需要重启你的系统才能继续了。
(for FreeBSD 5.x/6.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 //复制 if_rl.c if_rlreg.h 到 /usr/src/sys/pci目录中
Copy the Makefile into /usr/src/sys/modules/rl //复制 Makefile 到/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 执行到这一步的时候,就可以使用 /etc/netstart 来重新加载网络配置和使用 ifconfig -a 来查看FreeBSD 是否识别了你的网卡,我的网卡的设备名是 rl0,显示使用是的 RTL8139 的芯片,是否支持千兆速率我不得而知,我用的是 10/100 傻瓜交换。接下来就是设置 IP 等信息,比较简单,我就不翻译了,请各位根据情况操作。
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 autonegotiation,
#ifconfig rl media autoselect
2. For 1000Mbps full-duplex,
#ifconfig rl media 1000baseTX mediaopt full-duplex
3. For 100Mbps full-duplex,
#ifconfig rl media 100baseTX mediaopt full-duplex
4. For 100Mbps half-duplex,
#ifconfig rl media 100baseTX mediaopt half-duplex
5. For 10Mbps full-duplex,
#ifconfig rl media 10baseT/UTP mediaopt full-duplex
6. For 10Mbps half-duplex,
#ifconfig rl media 10baseT/UTP mediaopt half-duplex
整个网卡驱动的安装基本上可以说是没有悬念的,这要感谢 RTL 公司的驱动研发人员和 Readme 文档的维护者,让我的本本可以遨游在网络的世界里。
PS:其实整个过程是比较简单的,这所以会加入翻译,主要是考虑到初学者对FB的不熟悉,论E文水平自然不敢和大虾们较劲,祝大家在新年身体健康,工作如意,早日小康,嘎嘎。
文章评论

共有 0 条评论