最近特别忙,先将安装部分帖上,迟些整理完KMS/GEM部分,再帖到WIKI上。
下载
从FreeBSD官方的目录没有找到AMD64版本的,从下面地址找:
http://pub.allbsd.org/FreeBSD-snapshots/
http://pub.allbsd.org/FreeBSD-snapshots/amd64-amd64/9.0-HEAD-20110711-JPSNAP
安装
用光盘启动后,选择模式,提示login: 的时候,直接输入root回车就可以了。
创建分区
如果是旧硬盘,里面有数据,需要擦除的话,可以使用如下方法:
如果需要,此时用dd抹除硬盘内容,
例如 dd if=/dev/zero of=/dev/ada0 bs=1m count=1
代码:
gpart create -s gpt ada0 (重复此步直到所有硬盘皆包含GPT分区表)
gpart add -s 64K -t freebsd-boot ada0 (实际上只有启动盘需要,不过64K空间对现代硬盘来说基本上可以忽略不计)
gpart add -s 4G -t freebsd-swap -l swap0 ada0 (根据需要酌情配置)
gpart add -t freebsd-zfs -l zdisk ada0
gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada0
接下来是创建ZFS pool了。这时候有个关键点。如果硬盘支持4k扇区,那将zpool设置为4k扇区支持,磁盘性能将提升一倍。具体参考dj的文章:https://blog.delphij.net/2011/01/-neptune-zfs.html
代码:
硬盘支持4k扇区时的:
gnop create -S 4096 /dev/gpt/zdisk
zpool create -f zdisk /dev/gpt/zdisk.nop
代码:
如果硬盘不支持4K扇区,方法如下
zpool create -f zdisk /dev/gpt/zdisk
注意:创建zpool时会提示“cannot mount ‘/zdisk’: failed to create mountpoint”,直接忽略它。
代码:
zpool set bootfs=zdisk zdisk
zfs set checksum=fletcher4 zdisk
zfs set mountpoint=/mnt zdisk
zfs create zdisk/var
zfs create zdisk/usr
zfs create zdisk/home
zfs create zdisk/tmp
注意:创建分区时提示“cannot mount ‘/mnt/usr’: failed to create mountpoint
filesystem successfully create, but not mounted”
这些信息直接忽略。
更多的分区,可以根据自己的需要创建,设置可以使用ZFS的更多特性,如压缩等。
接下来是导出和导入ZFS分区:
代码:
zpool export zdisk
zpool import -o cachefile=/tmp/zpool.cache zdisk
安装系统
安装基本系统
代码:
sh
cd /usr/freebsd-dist
export DESTDIR=/mnt
for file in base.txz lib32.txz kernel.txz doc.txz src.txz;
do (cat $file | tar –unlink -xpJf – -C ${DESTDIR:-/}); done
拷贝zpool.cache文件
cp /tmp/zpool.cache /mnt/boot/zfs/zpool.cache
提示:这步一定要做,否则启动时找不到分区。
配置ZFS相关设置
代码:
cat < /mnt/etc/rc.conf
zfs_enable=”YES”
hostname=”gptzfsboot.16hot.com”
defaultrouter=”192.168.56.1″
ifconfig_em0=”inet 192.168.56.13 netmask 255.255.255.0″
EOF
提示: zfs_enable=”YES”这行是必须的,下面的配置主机名、网络部分,可以启动后配置。
代码:
cat < /mnt/boot/loader.conf
zfs_load=”YES”
vfs.root.mountfrom=”zfs:zdisk
vfs.root.mountfrom.options=”rw”
vfs.zfs.prefetch_disable=0
EOF
cat < /mnt/etc/fstab
# Device Mountpoint FStype Options Dump Pass#
/dev/gpt/swap0 none swap sw 0 0
EOF
代码:
zfs set readonly=on zdisk/var/empty
zfs unmount -a
zfs set mountpoint=legacy zdisk
zfs set mountpoint=/tmp zdisk/tmp
zfs set mountpoint=/usr zdisk/usr
zfs set mountpoint=/var zdisk/var
至此已经安装完基本系统了。直接reboot 重启就行。
如果重启过程有异常,不能正常启动,那得从头检查看看是那个环节出错了。我也因为某个环节出错,反复尝试,折腾了一整个下午才搞定。
应用KMS/GEM
重启后,为了使用KMS/GEM补丁,接下来就需要自己更新源码和重新编译系统和内核了。
在开始这部分之前,最好仔细看看 http://wiki.freebsd.org/Intel_GPU 。目前这个补丁还是内部开发过程,还不是正式测试阶段,功能还不完善,而且难免还有很多未知BUG。
代码:
cat < /root/stable-supfile
*default host=cvsup10.tw.freebsd.org
*default base=/usr
*default prefix=/usr
*default release=cvs tag=.
*default delete use-rel-suffix
*default compress
src-all
EOF
csup /root/stable-supfile
下载KMS补丁
到 http://people.freebsd.org/~kib/drm/ 找个最新的版本。
我当时最新的是 all.5.6.patch ,因此我下载的是 all.5.6.patch 。
代码:
cd /usr/src
mkdir drm
cd drm
fetch http://people.freebsd.org/~kib/drm/all.5.6.patch
fetch http://people.freebsd.org/~kib/drm/libdrm.1.patch
打补丁
cd /usr/src
patch -p1 < ./drm/all.5.6.patch
代码:
cat < /usr/src/mk.sh
#!/bin/sh
cd /usr/src
make -j2 buildworld && make -j2 buildkernel && make installworld && make installkernel
EOF
chmod +x /usr/src/mk.sh
time /usr/src/mk.sh
接下来就是等着编译完成,然后重启到新系统了。这里没有配置内核,因为使用KMS补丁不需要进行什么特定的内核配置。如果自己需要,可以根据自己的情况配置下。
最新评论