存档

文章标签 ‘KMS/GEM’

FreeBSD 9.0-STABLE + KMS补丁[分享]

2011年12月4日 16hot 2 条评论

由于kib提供的KMS补丁是基于HEAD版本的,有人提取了9.0-STABLE的版本补丁出来。

下面是原始下载地址:

https://docs.google.com/open?id=0BxbPi2OX4_B-NDcwZGI1OTAtOTQxOC00YmMxLTg5ZjEtNmIxYTY0M2I0OWI5

访问不了docs.google.com 兄弟,可以从下面地址下载:

http://www.16hot.com/tmp/drm-all.12.3-stable9.patch

打补丁:
代码:

# cd /usr/src
# patch -p3 < drm-all.12.3-stable9.patch

之后是编译和安装内核……

注:我已经使用12.3版本一天左右时间,目前没有发现异常。之前是一直用10.3。

分类: BSD/linux 标签: ,

关注KMS/GEM进展

2011年7月24日 16hot 没有评论

已经有人在做需要KMS支持的X相关的ports了。

http://trillian.chruetertee.ch/ports/browser/branches/xorg-dev

https://trillian.chruetertee.ch/svn/ports/branches/xorg-dev/

分类: BSD/linux 标签: ,

FreeBSD-9 Current ZFS安装

2011年7月19日 16hot 没有评论

最近特别忙,先将安装部分帖上,迟些整理完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补丁不需要进行什么特定的内核配置。如果自己需要,可以根据自己的情况配置下。

分类: BSD/linux 标签: , ,

用上FreeBSD9-current + KMS/GEM 补丁了

2011年7月16日 16hot 4 条评论

由于FreeBSD8.x还没有支持KMS/GEM,而无法使用intel的最新显卡驱动程序,无法很好的驱动X201i的集成显卡。使用Vesa驱动虽然能使用Xorg ,但是性能很差,屏幕刷新稍微快些,就耗CPU 100%。而且另外还有个很严重的问题,就是不支持外接显示器,更别说用投影仪了。

后来在2月份,看到freebsd官方公告说支持KMS/GEM项目研发。而7月初,KMS/GEM的补丁出来了,虽然还不是正式的测试版本。

居于上面的两点,一个是性能,一个是不能用投影。特别是不能使用投影仪,对日常工作多少有些影响,带来不便,特别是要给客户做演示的时候,只能使用同事的电脑,极其不便。看到KMS/GEM补丁之后,就开始动心了。

可是KMS/GEM补丁只能在FreeBSD9上使用,而FreeBSD9又没有进入Beta版,还是处于开发阶段。对于其稳定性实在没有什么把握,于是买了块新的500G笔记本硬盘用于安装FreeBSD9。原来的硬盘安装的FreeBSD-8-stable保留起来,可以随时切换。

这次安装FreeBSD9,直接使用ZFS文件系统。回头再写个安装文档。

使用KMS/GEM补丁,参考FreeBSD的wiki上的文档 http://wiki.freebsd.org/Intel_GPU 。不过intel的显卡驱动,从git获取的源码编译不通过,单独下了个xf86-video-intel-2.15.0版本使用。

安装配置好后,按平时的使用检测了下。性能确实提升很大,开启gnome2,编译东西时不再卡。而且用Vbox下用PPS看高清电影,也不卡了。而且CPU使用率只在20-30%。以前得80%以上。

其次,可以使用外接显示器了。

不过目前的KMS/GEM补丁还没有进入正式测试阶段,还是属于内部研发阶段,BUG是避免不了的。目前我遇到的问题是,启动X后,切换不回去终端界面了,被模糊的图形覆盖了。

总体而言,FreeBSD9支持KMS/GEM后,在笔记本上使用,更爽了。期待早日发布稳定版本。

分类: BSD/linux 标签: ,