百度首页 | 百度空间
 
文章列表
 
您正在查看 "Freebsd" 分类下的文章

2007-03-30 15:58
目录 介绍
/ 文件系统的根目录。
/bin/ 在单个用户和多用户环境下的基本工具目录。
/boot/ 在操作系统在启动加载期间所用的程序和配置。
/boot/defaults/ 默认每步引导启动的配置内容,请查阅loader.conf(5)
/dev/ 设备节点,请查阅 intro(4)
/etc/ 系统启动的配置和脚本。
/etc/defaults/ 系统默认的启动配置和脚本,请参考 rc(8)
/etc/mail/ 关系到邮件系统运作的配置, 请参考 sendmail(8)
/etc/namedb/ named 配置文件,请参考 named(8)
/etc/periodic/ 每天、每星期和每月周期性地运行的脚本, 请通过 cron(8)查阅 periodic(8)
/etc/ppp/ ppp配置文件,请查阅ppp(8)
/mnt/ 由管理员习惯使用挂接点的临时空目录。
/proc/ 运行中的文件系统,请参阅 procfs(5)mount_procfs(8)
/rescue/ 用于紧急恢复的一组静态联编的程序; 参见 rescue(8)
/root/ root用户的Home(主)目录。
/sbin/ 在单个用户和多用户环境下的存放系统程序和管理所需的基本实用目录。
/stand/ 独立的程序环境。
/tmp/ 临时文件。 /tmp 目录中的内容,一般不会在系统重新启动之后保留。 通常会将基于内存的文件系统挂在 /tmp 上。 这一工作可以用一系列 tmpmfs 相关的 rc.conf(5) 变量来自动完成。 (或者, 也可以在 /etc/fstab 增加对应项; 参见 mdmfs(8))。
/usr/ 存放大多数用户的应用软件。
/usr/bin/ 存放实用命令,程序设计工具,和应用软件。
/usr/include/ 存放标准 C include 文件.
/usr/lib/ 存放库文件。
/usr/libdata/ 存放各种实用工具的数据文件。
/usr/libexec/ 存放系统实用或后台程序 (从另外的程序启动执行)。
/usr/local/ 存放本地执行文件, 库文件等等, 同时也是 FreeBSD ports 安装的默认安装目录。 /usr/local/usr 中的目录布局大体相同,请查阅 hier(7)。 但 man 目录例外, 它们是直接放在 /usr/local 而不是 /usr/local/share 下的, 而 ports 说明文档在 share/doc/port
/usr/obj/ 通过联编 /usr/src 得到的目标文件。
/usr/ports 存放 FreeBSD 的 Ports Collection (可选)。
/usr/sbin/ 存放系统后台程序 和 系统工具 (由用户执行)。
/usr/share/ 存放架构独立的文件。
/usr/src/ 存放 BSD 或者本地源码文件。
/usr/X11R6/ 存放 X11R6 可执行文件、 库文件、 配置文件等的目录(可选)。
/var/ 多用途日志、 临时或短期存放的, 以及打印假脱机系统文件。有时会将基于内存的文件系统挂在 /var 上。 这一工作可以通过在 rc.conf(5) 中设置一系列 varmfs 变量 (或在 /etc/fstab 中加入一行配置; 参见 mdmfs(8)) 来完成。
/var/log/ 存放各种的系统记录文件。
/var/mail/ 存放用户mailbox(一种邮件存放格式)文件。
/var/spool/ 各种打印机和邮件系统spooling(回环)的目录。
/var/tmp/ 临时文件。 这些文件在系统重新启动时通常会保留, 除非 /var 是一个内存中的文件系统。
/var/yp NIS 映射。
类别:Freebsd | 评论(0) | 浏览()
 
2007-03-30 10:01

安装准备

1.1    下载安装介质

根据实际网络情况从FreeBSD主站或者其任何一个镜像站点下载ISO文件:6.1-RELEASE-i386-disc1.iso和6.1-RELEASE-i386-disc2.iso,如果具备刻盘条件或者决定刻盘的话,就直接转到第节。

1.2    下载辅助工具

1.2.1 FreeBSD6.1安装启动ISO

因为在用isoemu引导iso的时候,需要把iso文件和其配置文件放在同一个分区的根目录下,此时如果采用硬盘安装时,那么就需要在C盘根目录中放置硬盘安装介质和在其他分区根目录中放置被引导的iso文件,当然如果你的硬盘空间很大,你根本不在乎这600M左右的空间的话,可以不用下载这个23M的文件,直接用6.1-RELEASE-i386-disc1.iso来做isoemu引导的对象。

1.2.2 ISO文件引导工具

isoemu是一款可以在纯dos环境或者windows的启动管理器下直接引导iso文件的工具,有了它,你就不会再为刻盘而烦恼了。但是还是稍微有点问题,就是目前最新版本的程序也必须把isoemu的配置文件和需要引导的iso文件放在同一个分区的跟目录下面,而且iso文件的命名必须遵守8.3格式。如果你打算用windows的ntldr来启动isoemu工具的话,请跳过1.2.3节。

1.2.3 虚拟软驱工具

vfloppy是一款在windows环境下进行相关设置之后,通过windows的ntldr程序来虚拟软驱的工具,由于我们的目的是能进入一个纯dos环境,因此在使用vfloppy时,还需要一个能进入纯dos的镜像文件,比如:win98.img。

1.2.4 设置ntldr启动菜单

修改%SystemDrive%\boot.ini文件,在文件尾增加启动菜单项。比如:
C:\BOOT\setup98.bin="由虚拟启动软盘启动"
C:\ieldr="由ISOEMU工具引导ISO文件"

需要说明一点:对于用windows的ntldr直接启动ISOEMU,ieldr好像不能放在扩展分区,比如D盘,至于其配置文件能否放在扩展分区,这个我没有测试。如果这步配置正确的话,当重新启动电脑,选择"由ISOEMU工具引导ISO文件"菜单即可开启FreeBSD的安装进程了。

当然,如果你想从纯dos启动安装进程的话,你就不需要增加C:\ieldr="由ISOEMU工具引导ISO文件"菜单项了,此时你只需要把isoemu的可之行文件ieldr.exe和其配置文件ieldr.ini放在一起,当然还要包括你要引导的iso文件,然后进入到纯dos环境,执行%isoemuDir%\ieldr即可开始启动FreeBSD的安装进程了。

1.2.5 硬盘安装介质

由于FreeBSD的特殊性,要想从硬盘安装,那么必须在硬盘的主分区上创建一个叫6.1-RELEASE的目录(C:\6.1-RELEASE,这个名字千万不能弄错,否则就会在安装过程中报错),然后把6.1-RELEASE-i386-disc1中的6.1-RELEASE的所有内容拷贝到C:\6.1-RELEASE中,当然你也可以把第一张iso中的6.1-RELEASE目录整个拷贝到C盘,然后再把第一张光盘中的packages目录拷贝到C:\6.1-RELEASE中。看了很多相关的帖子,都建议最小安装,因此硬盘安装介质到此就算准备好了。

2      安装开始

2.1    基本系统

重启电脑,选择相应的启动菜单,开启安装进程。在安装过程中需要说明的一点就是在选择安装包的时候,先选择最小安装,然后再选定制,然后在定制窗口中可以看见base和kernel已经被选中,此时,应该把man和另外一个类man的部分也装上(当然这不是必须的),然后就一路的默认,等到了配置网络的时候,把网络配置好(反正没有网络,就别装FreeBSD了),再一路默认,然后根据提示重新启动电脑进入刚才新安装的基本系统。

2.2 基本配置

2.2.1 配置/etc/defaults/rc.conf

修改该文件,把与发送mail相关的变量全部设置的"NO",这个完全属于个人喜好。

2.2.2 配置/boot/defaults/loader.conf

通过修改该文件,可以加载声卡、Intel810的agp驱动等。当然你也可以不修改该文件,保持系统默认配置。

2.2.3 配置/etc/login.conf

修改该文件,完成对基本系统的本地化过程。需要说明的是,每次修改之后为了能修改生效,需要执行cap_mkdb /etc/login.conf命令。修改例子:

增加如下内容
#
# Chinese User Accounts
#
chinese|Chinese Users Accounts:\
   :charset=GBK:\
       :lang=zh_CN.GBK:\
       :LC_ALL=zh_CN.GBK:\
       :LC_CTYPE=zh_CN.GBK:\
       :LC_COLLATE=zh_CN.GBK:\
       :LC_TIME=zh_CN.GBK:\
       :LC_NUMERIC=zh_CN.GBK:\
       :LC_MONETARY=zh_CN.GBK:\
       :LC_MESSAGES=zh_CN.GBK:\  
   :XMODIFIERS='@im=SCIM':\
   :tc=default:
当然位置最好在#russian|Russian Users Accounts:\这个例子的后面吧,这样做只因为规范一些。
执行cap_mkdb /etc/login.conf命令
 用chsh命令改变用户信息,操作例子:
#chsh root
然后在用户信息中找到Class:,并为其设置值为chinese,然后保存,退出系统,重新登录,此时lang以及locale都已经设置成zh_CN.GBK了。

2.2.4 配置/etc/fstab

通过修改该文件,可以让系统在启动的时候,自动把本地其他硬盘挂载上来,这里需要说明的是挂载参数,否则将无法显示中文目录和文件名。在/etc/fstab中添加如下代码:
/dev/ad0s1 /mnt/hardc    msdos rw,-Lzh_CN.GBK 0 0
/dev/ad0s5 /mnt/hardd    msdos rw,-Lzh_CN.GBK 0 0
/dev/ad0s6 /mnt/harde    msdos rw,-Lzh_CN.GBK 0 0
同时修改光驱的挂载参数:
/dev/acd0    /cdrom      cd9660 ro,auto 0 0
需要说明一点:在修改/etc/fstab之前,应该把/mnt/hardx的属性修改一下,例如:chown -R user /mnt/hardx,否则非root用户会没有对该目录的写的权限。

2.3 更新port树

2.3.1 安装cvsup-without-gui

因为在前面安装系统时,只安装了最基本的系统和相应的smp,因此在更新port树之前,我们还需要安装cvsup软件,此时的系统,还没有X,因此我们应该安装cvsup-without-gui程序,安装命令:
#pkg_add [-r] cvsup-without-gui

2.3.2 更新port树

#cd /usr/share/examples/cvsup
#cvsup -L 2 -h cvsup.freebsdchina.org ports-supfile

cvsup.cn.FreeBSD.org
cvsup2.cn.FreeBSD.org
cvsup3.cn.FreeBSD.org
cvsup4.cn.FreeBSD.org
cvsup5.cn.FreeBSD.org

在经历一个漫长的时间后,port树更新完成。此时在/usr/ports下面将是目前最新的各种软件包的集合

2.4 替换下载工具

因为通过port树来安装软件时,系统默认的下载工具是fetch,而恰好fetch只是一个单线程的程序,所以下载速度很不理想,因此我们通过用axel替代fetch来安装软件。

2.4.1 安装axel

#cd /usr/ports/ftp/axel
#make install clean

2.4.2 修改/etc/make.conf

上面说到了要替换下载工具,现在axel已经安装好了,因此要用axel替换fetch,只需要修改/etc/make.conf文件就能达到目的(如果该文件不存在,则创建一个),增加如下内容:
# added by root 2006-05-17 23:00:00
FETCH_CMD=axel
FETCH_BEFORE_ARGS= -n 10 -a
FETCH_AFTER_ARGS=
DISABLE_SIZE=yes

2.5 安装Xorg
一切准备工作都做完了,现在是到了该安装Xorg的时候了,不过要有思想准备哟,这个过程是漫长的,那我家的512k的adsl来说吧,大概要3个小时才能安装完成。好,闲话不说了,下面开始安装:
#cd /usr/ports/x11/xorg
#make install clean
对了,补充说明一点,在安装Xorg的过程中,/usr分区至少要有大于4G的空间哟。

2.6 安装kde3

这个过程是相当相当的漫长啊(当然我是说从/usr/ports中自己编译安装,如果你不介意kde的版本不是目前最需的版本的化,还是建议你别从/usr/ports来安装kde3了),这个过程,在我的本本上,估计大概需要20个小时吧,可是没有办法,我就是想用上kde3.5.2。安装命令:
#cd /usr/ports/x11/kde3
#make install clean
说明:在安装过程中,会出现几处人机对话,根据自己的需要选择即可,为了保证能正常编译,最好对所有的交互对话都采用默认值(不做任何修改)。

3 配置X

在安装完Xorg之后,现在该配置X了,配置过程:
执行Xorg -configure生成xorg.conf.new
修改xorg.conf.new,修改Monitor参数设置
Section "Monitor"
     Identifier    "Monitor0"
VendorName    "Monitor Vendor"
       ModelName    "Monitor Model"
       HorizSync    30-70      #增加
       VertRefresh 50-90      #增加
   Option      "DPMS"      #增加
EndSection
 修改xorg.conf.new,修改Screen参数设置
Section "Screen"
       Identifier "Screen0"
       Device    "Card0"
       Monitor    "Monitor0"
       DefaultDepth 24      #增加
       SubSection "Display"
           Viewport 0 0
           Depth    24
           Modes    "1024x768"
       EndSubSection
EndSection
执行X -config xorg.conf.new进行测试,修改
    Option    "SWcursor"#Option    "SWcursor"    
    Option   #Option    "DRI"     "DRI"
执行X -config xorg.conf.new进行测试
cp xorg.conf.new /etc/X11/xorg.conf

说明一下:由于我的本本是i810的芯片的,也打开了agp模块,但是在Xorg.0.log中还是有3个Warning,另外还有一个FreeFontPath: FPE的信息,一直没有找到解决的办法。到此为止,X的配置已经完成,现在需要修改用户根目录下的.xinitrc文件,以便通过startx命令来启动kde,因此需要执行:
#echo "exec /usr/local/bin/startkde" >> ~/.xinitrc
  
4.3 安装windows字体

这小节的操作,完全是根据使用手册中所说的一样,这里只是简单地重复一下:
#cd /usr/ports/x11-fonts/ttmkfdir
#make install clean
#mkdir -p /usr/X11R6/lib/X11/fonts/TrueType
#cd /usr/X11R6/lib/X11/fonts/TrueType
#cp /mnt/hdc/WINDOWS/fonts/simsun.ttc ./
#cp /mnt/hdc/WINDOWS/fonts/tahoma*.ttf ./
#cp /mnt/hdc/WINDOWS/fonts/verdana*.ttf ./
#/usr/X11R6/bin/ttmkfdir > fonts.dir
#cp fonts.dir fonts.scale
#fc-cache -f –v
#vi /etc/X11/xorg.conf
   RgbPath      "/usr/X11R6/lib/X11/rgb"
找到    ModulePath    "/usr/X11R6/lib/modules"
增加 FontPath    "/usr/X11R6/lib/X11/fonts/TrueType"
#vi /usr/X11R6/etc/fonts/local.conf
内容则是把使用手册中的简单地拷贝进来,到此为止,字体安装操作完成,需要进入kde之后把国家和地区语言设置成中国和简体中文。

4.4 gtk2.0程序的中文化

中文化gtk2.0程序,只需要在用户home目录下面编辑或者创建.gtkrc-2.0文件,其内容为:
style "default"
{
font_name="FontName 12"
}
widget_class "*" style "default"

4.5 安装输入法skim

4.5.1 安装scim-pinyin

#cd /usr/ports/chinese/scim-pinyin
#make install clean

4.5.2 安装skim

#cd /usr/ports/textproc/skim
#make install clean
重启kde之后,skim就自动启动了,Ctrl+space就能激活输入法了。

5 安装Java软件

5.1 安装jdk1.5

由于在安装jdk1.5的过程中需要用到linux的java自解压文件,因此需要挂载linux文件系统,才能进行安装。整个安装命令:
#kldload linprocfs
#mount -t linprocfs linprocfs /compat/linux/proc
#cd /usr/ports/java/jdk15
#make install clean
说明:在安装过程中,不能像安装其他软件包一样,自动下载所需要的文件,而这个过程中如果没有需要的文件,会返回错误而中止安装,并提示要求手工下载相应的软件包到/usr/ports/distfiles下面。

5.2 汉化jdk1.5

汉化比较简单,只需要在$JRE_HOME/lib/fonts下面建一个名字叫fallback的目录,同时把字体文件拷贝到这个目录即可。
#cd /usr/local/jdk-1.5.0/jre/fonts
#ln -s /usr/X11R6/lib/X11/fonts/TrueType fallback

5.3 安装eclipse

#cd /usr/ports/java/eclipse
#make install clean

6 存在问题

6.1 koffice和microsoft office的兼容问题

我的情况是koffice能打开microsoft office的文件,但是mic*却不能打开koffice的文件,比较郁闷。

6.2 skim与kde的问题

因为系统是启动到字符界面,然后startx进入kde,现在的问题是,在退出kde的时候,需要手工先退出skim,否则在kde退出的时候,会有错误,当然,也能退出kde,并不影响使用。

6.3 部分播放器的播放列表乱码问题

这个问题,不知道怎么解决。

6.4 普通用户不能启动eclipse的问题

这个同样是个比较麻烦的问题,总不能老那root来工作吧。

7 附录

7.1 *.conf文件

login.conf local.conf make.conf

类别:Freebsd | 评论(0) | 浏览()
 
2007-03-30 09:42

2、如何获取FreeBSD

这对我来说,也是一个大问题。我在网上找了半天,也没找到一个比较快的下载FreeBSD的FTP站点。最后没办法了,就去FreeBSD的老家ftp.freebsd.org试试,居然下载速度是150k/s,爽。如果使用wget访问ftp.freebsd.org,需要附加参数--passive-ftp。
wget --passive-ftp -r ftp://ftp.freebsd.org/pub/FreeBSD/re...SO-IMAGES/4.7/

3、Boot Manager

在进行其他配置之前,我想先解决多重引导问题。毕竟来回切换BIOS太麻烦了。当把Windows和Unix类操作系统安装在一台机器上时,安装各种Boot Mananger的时候一定要小心。以前,在使用RedHat 6.2的时候就曾经吃过大亏。那时候,胡里胡都地把lilo安装在Windows所在硬盘的MBR上,结果Windows引导不起来了。后来,为了避免出错,我都是每种操作系统单独使用一块硬盘,并在各自的MBR上安装Boot Manager。在以前,我甚至把Lilo安装在软盘上,反正启动的时候只是读一个sector,慢也慢不到哪里。后来,我用Windows NT的OS Loader进行多重引导。

像以前在Linux下作的那样,我进行了一下操作:

a)dd if=/dev/ad1 of=bootsect.bsd bs=512 count=1
b)把bootsect.bsd拷贝到Windows的c:\下。
c)编辑boot.ini,添加一行c:\bootsect.bsd="FreeBSD 4.7"。
d)重新引导系统。

这时候,我看到了NT OS Loader的Boot选择菜单。我想测试一下FreeBSD是否能够正常引导,于是我选择了FreeBSD 4.7菜单项。OK,显示出来FreeBSD的Boot Manager菜单。我按键F1,想引导FreeBSD。这时候:

..........................灾难发生了!!!
..........................别拦这我,我要跳楼!!!

发生什么事情了?FreeBSD的Boot Manager居然又跳回了Windows OS Loader菜单了。怎么回事?不清楚。我选择了Windows 2000,想进入Windows后,上网查查是怎么回事。但.........Windows启动不起来了。我重新启动,再次尝试进入Windows结果还是一样。晕。我赶紧跑到Linux下,用FDisk看看Windows的分区。..........发现,IDE0上的Windows分区变成了IDE1上的FreeBSD分区了。也就是说IDE0上的硬盘的分区和IDE1上的硬盘的分区完全一样了。晕毙。

怎么会这样呢?Windows完蛋了,上不了网,我只好跑到FreeBSD里去查阅FreeBSD的HandBook。HandBook关于FreeBSD和NT OS Loader是这样描述的:

a)如果FreeBSD和Windows安装在同一块硬盘上,可以把/boot/boot1直接拷贝到windows下当做引导文件。
b)如果不是安装在同一块硬盘上,/boot/boot1不能引导FreeBSD。这时候就需要/boot/boot0。但是不能简单的把boot0拷贝到Windows下。boot0相当于FreeBSD的Boot Manager。该Manager每次运行的时候读取分区表,通过分区的active标志判断上次启动的操作系统。当用Manager启动某个操作系统时,该Manager重写分区表。

现在我知道了,刚才我执行的操作相当于(其实就是)把boot0拷贝到windows里了。这是我见过的最缺德的一种Boot Manager了。你见过更缺德的么?

至于说如何把Windows NT OS Loader和boot0联合到一起使用,我就不知道了。因为,我再也没敢尝试。毕竟重新安装Windows需要很长的时间。在安装FreeBSD前,为了安全起见,我把我现在正在做的项目Looking备份到我的数码相机中。但我的硬盘中的大量的资料全都丢失了,特别是我们家宝宝从出生到现在的400多张相片。真是心疼呀!

于是安装FreeBSD变成了安装Windows 2000。在安装Windows 2000的过程中,我在想:如果Looking也没了,我该怎么办?改行,去开小买店。

经过这次沉重的打击后,我真想放弃FreeBSD。呵呵,但那不是我的风格。不仅要FreeBSD,而且一定要解决多重启动问题。FreeBSD的Boot Mannager不敢使了,就换一个更好的Boot Mananger。我选择了Grub。

cd /usr/ports/sysutils/grub
make install clean

OK,grub安装好了。FreeBSD的Ports真是个好东西。
mkdir /boot/grub
cp /usr/local/share/grub/i386-freebsd/* /boot/grub

为了安全起见,我制作了一个grub启动软盘。
dd if=/boot/grub/stage1 of=/dev/fd0 bs=512 count=1
dd if=/boot/stage2 of=/dev/fd0 bs=512 seek=1

用软盘启动进入grub交互界面。
进入FreeBSD:
root (hd1,0,a)
kernel /boot/loader

进入Windows 2000
rootnoverify (hd0,0)
chainloader +1

统统OK,Grub真是个好东东。根据上面的Grub命令编辑/boot/grub/menu.lst。我要把GRUB安装到IDE1上,也就是FreeBSD所在硬盘的MBR上。在GRUB中执行以下GRUB命令。

find /boot/grub/stage1
root (hd1,0,a)
setup (hd1)

OK,GRUB成功安装在IDE1的MBR上。reboot。但是,在GRUB中FreeBSD和Windows都不能启动。怎么回事?回到FreeBSD中,我把GRUB安装到软盘上。

find /boot/grub/stage1
root (hd1,0,a)
setup (fd0)

重新启动,一切正常,无论是Windows还是FreeBSD引导都没有问题。这真是见了鬼了。后来我发现,把GRUB安装到哪个IDE的MBR上,哪个IDE上的硬盘对于GRUB来说就事hd0。在我的这种情况下,GRUB中的hd分布如下:

IDE0 hd1
IDE1 hd0
IDE2 hd2
IDE3 hd3

因此必需修改menu.lst中的hd。但是Windows系统在引导的时候,必需要在hd0上。这时候就需要GRUB的map命令来互换hd0和hd1。修改后的menu.lst如下:

default 0
timeout 30

title Windows 2000
map (hd0) (hd1)
map (hd1) (hd0)
rootnoverify (hd1,0)
chainloader +1

title FreeBSD
root (hd0,0,a)
kernel /boot/loader

这回,终于一切太平了。

4、crazy mouse

我玩FreeBSD的最初目的,就是想看看在FreeBSD下启动GNome是否像linuxsir上的那位大虾所说的那么快。因此在解决了多重启动问题后,我立刻开始配置X-Window。

/stand/sysinstall

开始配置鼠标和显示卡。但是,在配置鼠标的时候,却又遇到了问题。我的鼠标是PS/2光电鼠标。在配置鼠标时,如果选择mouse type为ps/2,我的鼠标就会在屏幕上乱窜,成了真正的疯狂老鼠。选择其他类型时,要么依然crazy,要么一动不动,变成了死老鼠。我的天呀,我怎么这么倒霉呀。

上网查资料,但没有什么解决办法。想尽各种办法,还是crazy依然。换个鼠标,立刻好使。呵呵,但那不是我的风格。最后只好在FreeBSD的ps/2鼠标驱动上打主意。FreeBSD有一点特别好,它的man资料非常齐全。查找设备驱动的资料的办法就事“man device—name”。FreeBSD的ps/2鼠标的驱动名是psm。因此只需要man psm就可以查找psm的配置。关键在于psm的flags。我关心的flags bit位如下:

bit 0-3 鼠标的采样率。它控制这鼠标的速度。在Windows中,ps/2鼠标的采样率是100ppi。因此bit 3为1。
bit 4-7 是鼠标加速。windows中鼠标加速一般为中等。因此该4bit的值是8
bit 9 该bit如果置位,psm不去尝试识别鼠标的类型,只是把鼠标当做标准ps/2鼠标来驱动。这是关键。

这个flags可以在启动配置文件中设置,也可以通过编译内核设置。

a)在配置文件中设置:修改/boot/kernel.conf添加以下内容。

en psm0
ir psm0 12
f psm0 0x284

b)编译内核。在内核配置文件中把行

device psm0 at atkbdc? irq 12
修改成
device psm0 at atkbdc? flags 0x284 irq 12

这样,疯狂老鼠终于被制服了。不过我也损失了一些东西:我不能使用鼠标的滚轮。尽管我用不了mouse wheel,不过还是把mouse wheel的配置方法写在这里吧。首先要安装imwheel软件包,该软件包把鼠标的4、5健转换成相应的热键。因此要使用mouse wheel必需安装该软件包。

cd /usr/ports/x11/imwheel
make install clean

cp /usr/X11R6/etc/imwheelrc ~/.imwheelrc
你可以根据个人喜好修改.imwheelrc文件。在.xinitrc中添加下面这行来启动imwheel。

imwheel -k

wheel ps/2鼠标一共有5个健。
1 left click
2 right click
3 middle click
4 wheel up
5 wheel down
因此,你必需告诉moused哪个键是wheel健。在/stand/sysinstall程序的鼠标配置中,设置mouse flages中加入'-z 4'。或者在/etc/rc.conf文件中加入一行:
moused_flags="-z 4"

呵呵,这里所说的flages和上面的哪个flags可不是一回事呀。上面的那个是psm的flags,这个是moused的flags。

同时,你要告诉X-Windows关于wheel的信息。在InputDevice mouse中加入一下两行:
Option "Buttons" "5"
Option "ZAxisMapping" "4 5"

当然,上面所说的配置只是对于5健ps/2鼠标而言。如果鼠标健多于5个,修改相应的数字。

5、ADSL

在96年的时候,我使用Modem上网。那时候上网速度慢,而且花费昂贵,因此也没觉得Internet对我有多么重要,主要的知识来源是书店。但现在的我没有Internet几乎不能活了。每天查资料、写程序就是我的生活。

配置完鼠标,我立刻就开始配置ADSL。这次比较顺利,在网上查查资料很快就配置成功了。

首先,查看kernel配置文件,是否有以下几项。如果没有把他们加上,并重新编译内核。FreeBSD 4.7对ADSL是默认支持的,一般不用重新编译内核。
options NETGRAPH
options NETGRAPH_PPPOE
options NETGRAPH_SOCKET
options NETGRAPH_ETHER
options NETGRAPH_IFACE

其次,修改/etc/ppp/ppp.conf添加以下内容:
adsl:
set device PPPoE:网卡设备 #例如我的配置是set device PPPoE:vr0。
set mru 1492
set mtu 1492
set dial
set login
set ifaddr 10.0.0.1/0 10.0.0.2/0
add default HISADDR
nat enable yes
set authname a #用户名
set authkey a #口令

如果不清楚设备是什么,查看rc.conf查找ifconfig_???。???一般就是具体的网络设备,我的是vr0。如果没有,使用/stand/sysinstall配置。

现在,就可以通过一下命令启动pppoe了。
ppp -dedicated adsl

如果,你的ADSL是包月的,你可能更希望一开机就启动pppoe。特别是在FreeBSD中,没有网络实在是寸步难行。可以在/etc/rc.conf中加入一下内容,来自动启动pppoe。
ppp_enable="YES"
ppp_mode="ddial"
ppp_nat="YES"
ppp_profile="adsl"
上面的例子的最后一行中的adsl与/etc/ppp/ppp.conf的adsl段相对应,也就是二者要保持一致。如果你的pppoe提供商也支持nat(NETWORK ADDRESS TRANSLATION),你不需要配置gateway和dns。

adsl modem不一定非要插在网卡上。可以把adsl modem插在hub上。我在网上看到很多文章说用两块网卡配置adsl局域网接入的文章,我非常不理解。把adsl modem直接插到hub上不是更简单么?这只需要把modem和hub之间的网线改成交叉线。对于如何制作交叉线感兴趣的朋友,可参看http://data.96963.com/20030117/10374...??打Diablo。

不过,我很快就发现了新的问题,我的显卡刷新速度非常慢。

更新posts树


如果没有安装cvsup包,先安装cvsup。
whereis cvsup
显示:/usr/ports/net/cvsup
cd /usr/ports/net/cvsup
make install clean
这样,cvsup就安装上了。把/usr/share/examples/cvsup/ports-supfile文件拷贝到~/下,编辑~/ports-supfile。*default host一行的内容修改成ports所在的ftp地址。由于Ports的体积非常大,一个压缩成tgz文件的Ports也要有17、8M,所以最好找一个镜像站点。查阅一下FreeBSD的镜像,居然有一个国内镜像cvsup.cn.freebsd.org。现在执行如下命令,同步Ports:

cvsup -g -L 2 ~/ports-supfile

7、Ports、Package和Software
现在我的FreeBSD还是一个非常纯净的系统,几乎没有安装什么软件包。在Linux下我常用的软件wget和curl都没有安装。在安装Linux的时候我一般都选择安装所有的软件包,但有99%的软件我不知道是干什么用的。之所以要选择全部安装

在FreeBSD下的包管理机制是什么样的呢?FreeBSD也有一个包管理机制,但不象RedHat的RPM只有一个rpm命令,FreeBSD的包管理是由一组命令组成的。由于每个命令的参数都很少,因此看上去好象更容易使用。这些命令如下:

pkg_add 安装软件包
pkg_delete 卸载软件包
pkg_create 创建发布软件包
pkg_info 显示软件包信息
pkg_update 升级软件包
pkg_version 生成所有安装的软件包的摘要
所有的pkg_???命令都支持软件包的依靠关系,而且自动处理能力非常强。呵呵,当然了pkg_delete命令不是自动卸载所有的依靠的软件包,但如果你原意这么作也没什么不行的。

当前,我最常使用的是pkg_add和pkg_info。只需要简单的"pkg_add 包名_包版本.tgz"命令就可以完成一个包的安装。如果这个包需要其他软件包该命令会自动安装的。如果你下载了所有4张FreeBSD 4.7的ISO光盘,你就拥有了一个巨大的软件库。如果你想安装一个目录中的所有package,只需要使用命令pkg_add *。但pkg_add只能一次性安装200个软件包。如果你想一次性把那4个ISO里的package都安装上简单的使用pkg_add恐怕是不行的,但也用不着在sysinstall中一个一个的选择,用下面的这个命令试试:

cd 包所在的目录
find . -name "*.tgz" -exec pkg_add {} \;

呵呵,耐心等待吧。这方法虽然可行,但使用FreeBSD的人,恐怕没人原意这么作。

我最喜欢的pkg_add方法是使用pkg_add的远程安装:

pkg_add -r 包名

该命令会到ftp.freebsd.org上自动下载并安装软件包,如果该软件包有依靠的没有安装的软件包,它也会自动下载并安装。当然你可以不使用ftp.freebsd.org,而使用其他更快的镜像站点。有一个环境变量FTP_PASSIVE_MODE对该命令是非常重要的,在默认情况下该环境变量的值是YES。它控制着fetch操作使用passive模式,这是ftp.freebsd.org所要求的。

尽管FreeBSD上有数千个软件包,你可以用下面的这个命令看看,好象有6578个软件包。但这还远不是全部。

curl -l -s ftp://ftp.freebsd.org/pub/FreeBSD/po...elease/Latest/ | wc

让我们使用下面的命令看看ports里有多少软件包:

cd /usr/ports
find . -name "pkg-descr" | wc

现在,在我的ports里有8014个可安装的软件包。那么Ports到底是什么东西呢?Ports在我的眼里是一个巨大的目录结构,它用这个结构逐级分类各种软件包,最终的目录是某个具体的软件包。在某个具体的软件包所在的目录中一般有四个文件:

Makefile
distinfo
pkg-descr
pkg-plist

文件distinfo包含了该软件包要从网络下载的一些文件的md5信息,或者什么都没有。pkg-descr包含了包的描述信息,这些信息会注册到FreeBSD的包管理库中。当用pkg_info查看某个包的内容时,该信息会显示出来。pkg_plist文件中包含了安装该包时要安装的文件和目录以及卸载该包时要删除的文件和目录,这些信息也要注册到FreeBSD的包管理库中供pkg_info和pkg_delete使用。FreeBSD的包管理库位于/var/db/pkg目录。

这里最重要的文件时Makefile。它描述了这个包需要下载哪些文件,这个包依靠哪些包。这个文件控制着下载、安装检测依靠关系的所有过程。它的工作过程可以说非常复杂,呵呵,在浅度历险里就没有必要说了。不过,对于用户来说操纵却很简单。要安装一个包只需要如下操作:

cd /usr/ports/??/??/包目录
make build install clean

你可以不使用clean,但下载和编译所产生的临时文件可能非常巨大。像KDE这样的软件包,可能要占用你数百兆的硬盘空间。由于Ports是从网上下载软件包然后再编译安装的,有时某个网站可能上不去从而导致安装失败。在大多数情况下,不用担心会出现这种情况,Ports首先会到该软件的主站上下载,如果不成功它会到Makefile所描述的其他站点上下载,如果还不成功它会到ftp.freebsd.org上下载,如果ftp.freebsd.org上也没有,呵呵安装失败。这种情况很少发生,但不是没有,比如sourceforge.net对国内用户是关闭的。呵呵,该死的美国人。当我在安装mplayer的时候就遇到了这种情况,当时avifile.sourceforge.net就上不去,但也不是一点办法没有。你可以在网上找一个代理服务器,用浏览器通过代理服务器到那个站点上,比如avifile.sourceforge.net。找到无法下载的软件包,把它下载到/usr/ports/distfiles目录下。然后就继续make吧。

在这里我反复提到ftp.freebsd.org,它是ports的默认主站。但它不是惟一选择,如果你觉得它太慢了可以修改环境变量MASTER_SITES来指向其他镜像站点。

如果你不知道某个软件在ports的哪个目录里,可以用下面的办法解决:

a)如果你知道软件的准确的名字,比如说wget,可以使用:
whereis wget

b)如果你不知道准确的名字,那就search一下吧:

cd /usr/ports
make search key=???

有人说Ports是BSD的招牌菜,这话真是一点没错,真是一道美味的大餐。

8、FreeBSD的汉化

这真是一件令人讨厌的事情,但也没有办法。这些汉化,其实大多数是对XFree86和MW进行汉化,因此操作基本上和Linux上的汉化操作是一样的。把Windows的simsun.ttc拷贝道/usr/X11R6/lib/X11/fonts/TrueType/simsun.ttf。最简单的操作就是用KDE的字体安装程序安装该字体。修改KDE的区域和辅助功能中的国家/地区和语言,修改KDE的外观和主题中的字体。对于不同的shell添加以下内容:

a)对于sh或bash修改~/.profile添加:
LC_ALL=zh_CN.EUC
LANG=zh_CN.EUC
LC_CTYPE=zh_CN.EUC
export LC_ALL LANG LC_CTYPE

b)对于tcsh(这是FreeBSD默认的)修改~/.cshrc添加:
setenv LC_ALL zh_CN.EUC
setenv LANG zh_CN.EUC
setenv LC_CTYPE zh_CN.EUC

当你再次进入KDE的时候,就可以看到很漂亮的中文界面了。对于KDE程序来说,这样汉化就行了。但对于象xmms这样的非KDE程序来说,还是看不到simsun字体。没办法,只好执行下面的操作:

a)安装ttfm包
b)生成simsun的fonts.dir等文件
cd /usr/X11R6/lib/X11/fonts/TrueType
ttfm --add xttfm simsun.ttf
c)修改XF86Config-4文件,在Files段里添加如下内容:
FontPath "/usr/X11R6/lib/X11/fonts/TrueType"
在Module段里确保有如下一行:
Load "xtt"

重新进入KDE,这时xmms就可以看到simsun字体了。由于我很少使用GNOME,因此也就没有汉化,也不知道如何汉化GNOME。

汉化的XFree86和KDE后,下一个要解决的问题就是FreeBSD的中文文件名问题。这才是真正的FreeBSD汉化。不过操作起来很简单。在FreeBSD中,当你用ls中文文件名的时候,看到的不是各种乱码,而是多个?号或者-号。这时候,需要安装gnuls和gbfs包。使用上面的Ports操作,可以很容易安装他们。安装后reboot系统。你会在启动信息里看到一些错误信息:

module_register: module cd9660 already exists!
linker_file_sysinit "cd9660.ko" failed to register! 17

如果你没有看清楚,查看/var/log/message。查看/usr/local/etc/rc.d看到里面多了一个启动脚本gbfs.sh。其内容是用kldload加载/usr/local/modules下的模块。到/usr/local/modules/下看看,看到里面有两个模块文件cd9660.ko和msdos.ko。使用kldload来手动加载cd9660.ko。依然显示上面的错误。上网查资料才知道,需要修改kernel配置文件注释掉以下几行:
options MSDOSFS #MSDOS Filesystem
options CD9660 #ISO 9660 Filesystem
options CD9660_ROOT #CD-ROM usable as root, CD9660 required
然后重新编译并安装内核。ok先试试,反正FreeBSD编译内核的速度奇快。编译、安装内核后,reboot。但错误依然。这是怎么回事?这时,我在想为什么要注释掉上面呢三行,难道说要让FreeBSD不支持msdos和cd文件系统?显然不是,因为我还是可以mount上fat分区。我想,这可能是要强制FreeBSD对msdos和cd文件系统的支持在module模式下运行。而我在/etc/fstab中添加了在启动时mount我的fat分区的内容。因此FreeBSD先使用了原来的msdos.ko。当gbfs.sh加载自己的msdos.ko时,当然回出现错误了。ok,试试看。把/modules/cd9660.ko和/modules/msdos.ko备份一下。然后把/usr/local/modules/msdos.ko和/usr/local/modules/cd9660.ko拷贝到/modules下,删除/usr/local/etc/rc.d/gbfs.sh。reboot系统。在~/.cshrc下增加如下内容:

alias ls 'gnuls --show-control-chars'

这回看看msdos下的中文文件名。哈哈,OK了。


9、奇怪的UDMA错误

每次我启动FreeBSD的时候,都会在dmesg中出现下面的错误:

ad1s1a: UDMA ICRC error reading fsbn 255 of 96-127 (ad1s1 bn 255; cn 0 tn 4 sn 3) retrying

呵呵,可不是只出现一行,而是出现一打。有时,在控制台上还会反复出现。这时怎么回事?以前没时间处理它,现在可要研究研究了。上网查查,基本上没有什么结果。看看man吧。man ata。ata是ATA/ATAPI控制器的驱动。它说ata总是尝试使用控制器通道的最高速率来初始化。在我的机器上就是udma66。如果初始化失败,它会把相应的通道降到PIO模式。这就是上面那个错误的原因。但是可以使用atacontrol来控制。使用atacontrol mode 0命令看看,我的IDE1果然工作在PIO4模式。我的BIOS告诉我,我的IDE1是udma33,使用atacontrol mode 0 1 udma33后,我的IDE1控制器,回到了udma33模式。但我不知道,pio4和udma33在FreeBSD上的速度到底有多达的差距。我写了一个perl脚本来测算速度,脚本如下:

#!/usr/bin/perl

`rm Looking.rar`;
$t = time();
`cp /usr/Looking.rar .`;
$t = time() - $t;

print "$t\n";

Looking.rar这个文件有270M。我记录下了两种模式下运行该脚本的时间。
REBOOT后第一次运行的速度 多次运行后的速度
PIO4 57秒 29秒
UDMA33 27秒 11秒

这个速度上的差距真的是非常惊人。但我不知道如何强制ata在udma模式下运行,只好写了一个脚本放到/usr/local/rc.d下,该脚本叫ata.sh,内容如下:

/sbin/atacontrol mode 0 1 udma33
/sbin/atacontrol mode 1 1 udma33

尽管那些错误在启动的时候依然存在,但我的心里感觉好多了。

类别:Freebsd | 评论(0) | 浏览()
 
2007-03-30 08:41
作者:sir的 Freebird
1.mount FAT/FAT32分区:(C盘为例)
mount -t msdos /dev/ad0s1 /mnt

mount_msdos /dev/ad0s1 /mnt for 4.x

mount_msdosfs /dev/ad0s1 /mnt for 5.x

2.mout Windows的扩展分区(FAT/FAT32):
命令和1一样,只是要记住:扩展分区从s5开始,例如mount D盘,可用:
mount -t msdos /dev/ad0s5 /mnt
mount_msdos /dev/ad0s5 /mnt for 4.x
mount_msdosfs /dev/ad0s5 /mnt for 5.x


3.mount NTFS分区:(C盘为例)
mount -t ntfs /dev/ad0s1 /mnt

mount_ntfs /dev/ad0s1 /mnt
[注意]1.chinese/gbfs 的 ntfs 似乎有问题,不建议玩家级用户使用

注意2.:要让mount上的windows 分区(或CD-ROM)显示中文,需要升级你的ports,再安装gbfs:
#cd /usr/ports/chinese/gbfs
#make install clean

然后编译内核,注释掉options CD9660
options MSDOS


注意3.在5.1-current上不用安装gbfs,用:
mount_msdosfs -L zh_CN.GB18030 /dev/ad0sX /mnt
命令就可以支持FAT32分区上的中文文件名,当然,locale可以不用18030,zh_CN.eucCN, zh_CN.GBK都可以!


4.mount Linux Ext2fs/Ext3fs:

在内核里面加入options EXT2FS,编译内核。
mount 的时候用mount_ext2fs 命令即可,ext3fs的mount也用mount_ext2fs

5.mount 普通数据光盘:

mount_cd9660 /dev/acd0 /cdrom

6.mount ISO 文件
在5.x中如下
mdconfig -a -t vnode -f abc.iso -u 1
mount_cd9660 /dev/md1 /cdrom


4.8的版本
vnconfig /dev/vn0 /home/xiaoche/a.iso
mount -t cd9660 /dev/vn0 /mnt

umount /mnt
vnconfig -u /dev/vn0


7.mount CD、VCD、DVD

播放CD、VCD、DVD不用先mount上。
如果你一定要mount上,可以这样:#mount _cd9660 -s 0 /dev/acd0 /cdrom

8.mount 软盘:
1.Format:
# /usr/sbin/fdformat -f 1440 /dev/fd0
2. Run disklabel:
# /sbin/disklabel -B -r -w /dev/fd0 fd1440
3.Create New FS:
# /sbin/newfs_msdos /dev/fd0
4.Mount & Use
#mount_msdosfs /dev/fd0 /mnt


9.mount usb

确保内核中有如下项
device scbus
device da
device cd

在GENERIC中默认都有,如果没有,请编译内核。
大多数U盘用的是FAT 文件系统,所以用
mount -t msdos /dev/da0 /mnt
挂载

10.mount ZIP软盘: OneZ 兄提供

#mount_msdosfs /dev/afd0s4 /mnt/zip

类别:Freebsd | 评论(0) | 浏览()
 
     
 
 
文章分类
 
 
 
Apps(56)
 
Config(35)
 
Shell(47)
 
 
 
 
 
 
Others(17)
 
 
 
Emacs(16)
 
 
 
 
 
 
Games(17)
 
Asm(2)
 
Vim(10)
 
 
 
Hack(6)
 
 
Tip(23)
 
Sql(15)
 
 
Gtk(2)
 
Gentoo(35)
 
 
 
 
 
 
Ad(0)
 
     
 
文章存档
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
     
 
最新文章评论
   

信息要互通有无,谢谢分享
 

长见识啦
 

高手
 

汗...
 
 
     


©2008 Baidu