事由
磁盘分区
slice
csh 简单入门
自动补全
chinese fonts
挂载
挂载 iso
二进制包管理
使用本地“源”
Flash
FreeBSD声卡驱动加载方法
方法一
方法二
铃声
ports
search 软件包
常见错误解决
简单用法
ports 安装常用软件
时间
常见错误
linuxulator is not (kld)loaded

事由

在 FreeBSD 6 的时候第一次听说有一群非常特别的人(主要是学校里的研究人 员)在搞 BSD ,带着景仰之情试了一把。可是与 Debian,Redhat,LFS 等完全 不同的使用方式,让我感到十分的没有归属感,(也不是完全不同,Geetoo 和的 emerge 就是从它的 ports 学习来的)。用了一会儿, 磁盘的 slice 和 partition,csh ,中文环境,完全不同的系统配置 ...... 。以前的 Linux 上 的那一点点知识到这里一点都用不上,让它在我的磁盘分区里躺了几天就格掉 了......

现在使用操作系统的中心已不再是安装/卸载/升级,使用新潮软件上。我日常使 用的 Gnome环境,Emacs23,Firefox等在 FreeBSD 上也都没有问题。加上 LFS 有点向独行侠,Debian,Fedora 也不在轻便。 最近 Linus 也表示 GNU/Linux 已经变得越来越臃肿。想起以前试用过的 FreeBSD ,启动了 Gnome 还是很快。 恰好最近 8.0-RC1 刚出来,于是决定开始使用 FreeBSD。既然它已经集万千荣耀 于一身,我想寻找和学习这些“荣耀”,以便我的“中文计算机环境”理想能加入这 些优点。

“操千曲而后晓声,观千剑而后识器”

本文是我从 GNU/Linux 转到 FreeBSD 的流水帐。

磁盘分区

slice

FreeBSD中|| Linux 中 表示 示例 FreeBSD 示例 Linux
磁盘最多有4个主分区,FreeBSD里称这些为 slice。Linux 里一个主分区如果设置为扩展分区后可以划分多个逻辑分区。FreeBSD 里每个 slice (Linux 中的主分区)都可以划分为多个 partition (后面解释)。 /dev/ad0s1| /dev/ad0s1 /dev/sda1
slice 主partition
partition 逻辑分区 一个主分区划分为

csh 简单入门

自动补全

在 csh 中使用自动补全需要先添加 "set autolist" 到 ~/.cshrc (csh 的初始 化文件)。自动补全时按 Esc 两次,我发现此时 Tab 也可以自动补全了。

chinese fonts

直接拷贝一个 ttf 字体到 /usr/X11R6/lib/X11/fonts/ 下的某个目录(比如 chinese,自己创建的目录)即可,现在 Xorg 会自动加载生效。

# mkdir /usr/X11R6/lib/X11/fonts/chinese
# cp -v XXX.ttf /usr/X11R6/lib/X11/fonts/chinese

挂载

挂载 iso

# mdconfig -a -t vnode -f dvd.iso -u 1
# mount -t cd9660 /dev/md1 /mnt/a/
# umount /mnt/mount-point
# mdconfig -d -u 1

二进制包管理

安装 pkg_add
删除 pkg_delete
查询 pkg_info

使用本地“源”

setenv PACKAGESITE "你的路径"

Flash

都说 "ports安装www/linux-flashplugin9后再安装www/linuxpluginwrapper" 就 可以,我没有成功,先不管 flash,我的机器在 Fedora 12 中一使用 flash cpu就很高,不用也罢。

我的机器:

# sysctl hw.model
hw.model: Intel(R) Celeron(R) M processor         1.40GHz
# sysctl kern.smp.cpus
kern.smp.cpus: 1

FreeBSD声卡驱动加载方法

参考 : http://www.lupaworld.com/bbs/thread-7948-1-15.html

我的声卡是集成的,很简单,参考上面的文章就可以

方法一

# kldload snd_driver

这是个 meta 驱动,一次加载了最常见的设备驱动。 这会提高搜索正确驱动的速 度。通常我们可以通过返回信息得到自己的声卡型号,参考文章中的示例:

#dmesg | grep pcm
pcm0: Intel ICH2 (82801BA) port 0xe000-0xe03f,0xdc00-0xdcff irq 11 at device 31.5 on pci0
pcm0: Analog Devices AD1881A AC97 Codec

声卡的状态可以通过 /dev/sndstat 文件来查询:

# cat /dev/sndstat
FreeBSD Audio Driver (newpcm: 32bit 2009061500/i386)
Installed devices:
pcm0: <HDA Sigmatel STAC9220 PCM #0 Analog> at cad 0 nid 1 on hdac0 kld snd_hda [MPSAFE] (1p:1v/1r:1v channels duplex default)

我的声卡的类型为: snd_hda

在 /boot/defaults/loader.conf 中的声卡设置里找到 snd_hda_load="NO" 项,把NO改成YES即可 , 或着在内核文件里面加入:

device sound
device "snd_hda"

重新编译内核以后即可使声卡投入使用。

方法二

如果是集成AC97声卡,试试编辑 /boot/defaults/loader.conf , 修改

snd_ich_load="NO" #Intel Tch 把“NO”改为“YES”

铃声

转载: http://blog.chinaunix.net/u2/66983/showart_1210944.html

在linux下面, 主板上面的铃声时由这个 pcspkr 模块控制, 如果想要彻底禁止 他, 去掉这个模块就可以: rmmod pcspkr.

不去掉模块的方法也有: 终端下, 设置 set bell-style none. 把它写入 /etc/console/inputrc 里面对所有用户都管用。写入自己的home下.inputrc对自 己管用。。。但是vim编辑的时候还时响铃, 好办: echo "set vb t_vb=" >> .vimrc.

而在freebsd下面了, 刚来这个世界, 模块我是找不到,但是可以通过 /etc/sysctl.conf加以动态改变内核设置 将 hw.syscons.bell=0 写入 sysctl.conf 就可以去掉铃声了。也可以指令: sysctl hw.syscons.bell=0..但 是sysctl.conf 以及 sysctl 指令只有root能够使用。。。 这时我们就要定制自 己的方案了:

tcsh下 echo "set nobeep" >> .cshrc 静止console下铃声。而vim此时照样叫, 可以 echo "set vb t_vb=" >> .vimrc

ports

search 软件包

创建 search index

cd /usr/ports
make index

search

make search name=wget
make search key="关键字"

常见错误解决

reconfig (wget reconfi)

参考: http://hi.baidu.com/rainchen/blog/item/c72b43a98c9144f91f17a24f.html

#cd /usr/ports/ftp/wget

保持默认选项,直接安装

# make install clean;rehash

第一次装时贪心都选了,结果被告知

===> wget-1.11.2 GNUTLS and OPENSSL are mutually exclusive, enable at most one of them.
*** Error code 1

两者只能选其一,这时可以删除配置文件再重新安装就可以更改选项了:

# make rmconfig

简单用法

进入 /usr/ports 目录下的某个软件包目录,比如 /usr/ports/sysutils/lsof

下载/编译 make
安装 make install
打包 make package

其它:

make deinstall 移除已安装的 Port
make reinstall 移除之后再安装一次
make clean 安装完毕后移除 make 数据夹下的档案
make distclean 移除安装后的源文件,以节省磁盘空间

ports 安装常用软件

cd /usr/ports/net/cvsup-without-gui; make install clean
cd /usr/ports/sysutils/portupgrade        ; make install clean
cd /usr/ports/ftp/wget                ; make install clean
cd /usr/ports/security/sudo        ; make install clean
cd /usr/ports/misc/gnuls ; make install clean

cvsup-without-gui 与 portupgrade 是属于系统更新( src 及 ports-tree )的 工具软件,建议要装。

时间

这个和 Linux 一样,同步时间:

ntpdate ntp.org # 这个服务器行
ntpdate asia.pool.ntp.org  # 用亚洲的也行

可以在 /etc/rc.conf 中添加下面两行,这样可以自动和时间服务器同步,不过 我们的个人 PC ,一般没有这个必要。

ntpdate_enable=”YES”
ntpdate_hosts=”asia.pool.ntp.org”

常见错误

linuxulator is not (kld)loaded

kldload linux

在 /etc/rc.conf里加linux_enable="YES"