事由
在 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"
