Posted tagged ‘archlinux’

开源的强大,Archlinux ATI R600 开源驱动安装

December 24, 2009

说起来,开源究竟有多强大谁也说不好,仅指与我相关的ATI显卡驱动一例。

ATI显卡驱动在Linux上真是要多Suck有多Suck,一般说来,闭源驱动的性能总归是要好一些,这也确实,闭源的驱动在BenchMark上的表现超过开源驱动,但是这不妨碍他Fuck itself。观感上的问题就是ATI的闭源驱动在窗口Resize的时候会有明显的延迟,CPU会刷的一下升上去,为此有人搞了一个补丁。但是这个补丁会带来显示的问题,在性能不如Compiz的Kwin上尤其明显,当然也不是说Compiz就没有这个问题,但是少。

其次,ATI只官方支持Ubuntu,这是什么意思呢?一旦Xorg或者Kernel更新了(这两个和驱动关系很大),ATI的驱动往往跟不上更新,为啥,因为Ubuntu没有使用新的版本的内核或者Xserver。Nvidia则不然,能在内核未发布的时候保证支持。这是态度问题啊……

Catalyst驱动到现在还没有支持Xorg 1.7,导致我等使用Archlinux的同学要么就等着不更新,要么就抛弃闭源驱动。不更新有很多麻烦,有可能有很多依赖的包都会出现问题,尤其是Archlinux这种滚动更新的发行版,长时间不更新会带来更多的麻烦。

说起来,这种时候大家的选择只有忍耐,或者投奔开源。这时我早早的就开始在网上寻找开源3d的支持。于是我发现了这个:http://aur.archlinux.org/packages.php?ID=28981

当时还尝试自己编译相关支持,但是失败……后来有人终于成功搞出来,不过那已经是很久之后的事情了。ATI的开源3d也确实牵动着众多用户的心,很多人都有关注,各个网站也有相关文章,主要关注的还是Phoronix上的新闻。

那时还曾经头脑发热想去参与开发,后来发现自己啥也不懂就作罢了……

列出历史上的几篇激动人心的文章:

AMD Releases R600/700 Programming Guide ATI发布了编程指南,这是走向开源的第一步,这样就不用苦苦逆向工程搞出来什么寄存器是干什么的,同时还能带来更好的性能。

Open-Source ATI R600/700 3D Driver Almost Working 这篇文章标志着开源驱动就要到来啦~

ATI R600/700 OSS 3D Driver Reaches Gears Milestone glxgears works!一个大家常用的benchmark

然后就是等待内核2.6.31,其实这时候我一直都还没尝试过开源驱动,其实是没有成功。当Xserver 1.7到来的时候,大局迫使我向开源驱动靠拢。这时候我编译了drm-next的radeon模块,终于看见了3d work,太感动了,太激动了……虽然渲染错误时常出现,但是我也坚定的向Catalyst说了fuck and goodbye!

说起来感觉内核发布得越来越快?2.6.32很快就到来了,这是声明有官方支持的r600/r700的3d,测试发现渲染错误依然,不过不用自己编译相关模块了,倒是不错。

期间也出现了一些问题,例如early load,为此我写了一个mkinitcpio的hook,发在了评论里,被别人拿走打包了radeon-initrd,确实可以尽量早的启动kms。

后来2.6.32.2内核会导致无法启动的错误,后来发现有人测试2.6.33rc1的内核很好使,于是我也下载自己搞了一通,最后发现没有firmware?!没办法,幸好我之前注意到了一个叫做radeon_ucode的包,于是装上,哇!没有渲染错误的KDE SC 4.4是多么美妙!

以下是相关流程:

安装kernel 2.6.33rc1,虽然kernel26-rc提供了这个包,但是没有firmware会导致非常不爽,幸好这个包写了被注释掉的拆包机制,于是拆成header,firmware和kernel三个包安装好。

安装libdrm,2.4.17版本就可以用,但是官方源的2.4.17-2已经去掉了radeon的支持,于是要么用2.4.17-1,要么自己重新编译一个。

glproto和dri2proto都可以直接用。

安装mesa,由于我一直有关注mesa的git,于是我发现mesa 7.7的提交记录可以满足我的需求,又不用时常抓git的新代码,于是从mesa 7.6的pkgbuild改了一个新的,编译完成,需要注意的是其中一个补丁不能再用在mesa 7.7上,从mesa-split里面抓出来一个覆盖是个很好的选择。

安装xf86-video-ati-git,必须装个git版,自己编了一个,挺好使。

radeon_ucode,其实就下载三个文件,必须装上,否则无法加载。

如果出了问题,可以采用reisub大法,或者在grub当中加入nomodeset禁用KMS。

体验开源驱动的强大吧!

Firefox的openSUSE patch

December 11, 2009

花了几个小时终于整合上了,现在用的很爽……

AUR地址:

firefox-kde-opensuse:http://aur.archlinux.org/packages.php?ID=32598

xulrunner-kde-opensuse:http://aur.archlinux.org/packages.php?ID=32599

kmozillahelper:http://aur.archlinux.org/packages.php?ID=32600

这么一看包的编号都是连续的……

非Archlinux用户也可以去看看,其中补丁想必还是有帮助的……

个人Linux唠叨——Linux发行版的唠叨

November 28, 2009

我是从大二开始使用linux的,最早的其实是基本没用的redhat啦,redhat9,使用时间大概不超过半小时,因为实在太老了……后来就发现了fedora,开始了漫长的fedora之旅。说实话,是从fedora 7开始用的,也没做其他的尝试,就是觉得good,ok就用了。然后出了fedora 8之后重装升级,9和10都是在线升级,感觉还不错。我打算换发行版是从fedora 10开始的,因为,启动速度太慢了!从开机到登陆界面比我的XP还要慢,虽然从登录界面到桌面还是fedora更快一点点,但是,但是,如果没有卡巴斯基这个玩意,还是XP更快啊啊啊……

这时,我在鬼使神差下,选择了Archlinux(那时我还怀着小白们对Ubuntu的偏见),然后一用就用到了现在。其间还用debian给我们家的台式机装过一次系统。

老实说,我认为一个桌面发行版最重要的就是包管理系统,我现在对fedora非常不满,主要原因就是yum太太太太慢了!update一次不知道要折腾多少时间,还仅仅是更新数据库,还没安装包。对此,我对于deb系的包管理就比较满意。速度那叫一个快,和我用rpm时的痛苦,没什么说的了。

我对于Debian的不满主要是更新太慢,有人也许会建议我用sid,可这实在是对我说,喂喂,火炕在此,往里跳吧。当年为了用上xfce4,我还只能在网上找了个第三方源,心里实在是不舒服……

我对于ubuntu的包一直有一些问题,他们包的命名实在是有些雾里看花的感觉,由于我没有自己用过ubuntu,只是给别人装的时候一般都喜欢装Ubuntu,毕竟Archlinux要装出图形界面,还是比较费功夫的。Archlinux的AUR和Ubuntu的ppa,看起来是有些类似的东西。由于我在教育网,ppa总是很无力,这点特别体现在我安装ATI显卡驱动上。

说到ATI的显卡驱动,我不得不牢骚两句,且不说ATI的linux驱动跟不上XServer更新啊,跟不上内核,ATI显卡驱动最大的问题就是窗口在开启Composite的情况下Resize的时候异常卡,非得要给XServer一个补丁不可。Ubuntu的Compiz默认Resize的时候不显示窗口内容,倒是个迂回方法,但是为了解决这个问题还是得打补丁。这里就体现出了Archlinux和Ubuntu包管理系统的区别了。

由于Linux本身安装软件的复杂(各个文件),没有包管理几乎不能卸载,且不说你必须留个源码包make uninstall,而且碰上某些无良的软件甚至不提供make uninstall,就无语了。因此就算是要自己装个程序,也最好用包管理器管理起来。这里就出现了一个问题,我也是亲手写过RPM的SPEC文件,deb的包实在是不能忍了,难以打包的过分了。在某些源码下面特别会有一个debian的目录。F**K,为了打个包我还要写一个目录的配置?!因此在debian下面我只用过checkinstall打过包,但是心里还是不踏实,因此checkinstall总是可能出现这个那个的问题(虽然我还没有遇见过,毕竟我只打过一个gtk engine的包嘛)。

为了给Xserver打上这样一个补丁,我只能搜索一下看看究竟哪个ppa提供这个包,好在有人提供,ok,我顺利的安装了数个ok的ATI显卡驱动linux。

Archlinux怎么样呢,PKGBUILD实在是简单易懂,虽然AUR上也有一个提供了这个补丁的包,但是,ok我自己动手也是非常easy的,乃至于如果源没有提供最新版,自己手写一个也很容易。

我对Archlinux包管理不满的只有一点,难道你就不能在readline升级的时候写清楚依赖吗?!由于教育网网速的问题,有时我喜欢一个个的升级包,但是这就出了问题,更新之后,what?readline.so.4找不到,bash光荣牺牲,无法执行任何新程序,pacman都用不了……重启就更别想了,系统都会进不了。这种升级一般导致系统挂掉我倒是头一次见啊,其实解决也方便,只要在依赖的时候写清楚版本即可……好吧,这只是一个对于Archlinux打包人员的牢骚,不可否认,PKGBUILD带来了巨大的便利。

用了Archlinux之后,想要用其他的发行版,最大的一个问题就是软件包跟进速度,KDE 4.3出来了,Ubuntu这个发行版非要脑残的等到下一个Release才更新,What a f**k?! 我现在已经难以理解那些不好好更新的发行版了,慢一点可以,直接对我们说“hey buddy,we can’t do this”,就叫人难以忍受了。某些人说,hey,go to ppa,这又叫我心头大大不爽。ppa是个好东西,源内版本都很新,no problem,可是这叫我apt源的长度情何以堪啊?!为了一个程序,加一个源?!脑残了啊,10个程序10个源,为什么就没有一个好东西把他们都组织起来呢?所以才会出现Ubuntu tweaks这种TX大大写出的程序吧,为了管理ppa源。这里我要高喊,AUR万岁!

这里顺便牢骚两句我没用过的发行版:

Gentoo,一切源码编译,为了装一个系统还要我编译个几天?!为什么我不能马上开始工作啊,这是我绝对不选择gentoo的原因。

openSUSE,Mandriva,我对一切RPM管理的包都望而却步,不过据说还不错,openSUSE据说把firefox和KDE的集成做的很好,我很想把补丁抓下来搞上AUR。

现在,我对于喜欢折腾的Linux用户,推荐Archlinux,对于新手,推荐Ubuntu,我在给别人安装时也是这么做的。Archlinux我能做到15秒开机,这个数字是Windows难以企及的吧,我不和其他发行版比较,主要是没用过……也许也挺快呢?

Archlinux的快主要体现在对i686编译优化上,Fedora很多写的体系结构都是i386,god,哪年的了……为了兼容性,不必如此吧……

P.S.

我还打算对Linux的输入法,浏览器唠叨唠叨,敬请关注:)