和ATI的显卡打交道已经有一个月了,这其中,包括调节屏幕亮度、调节开关屏等等……
一直很想把终端的显卡驱动重新装一遍,老大也说显卡是有点问题,什么aticonfig不能用,等等之类的。
调了一个月的屏幕亮度,从硬件到软件,从LVDS本身到显卡配置,不过最后总算是搞出来了。并且解决方法也很意外,从AMD官网下了AMD DISPLAY LIBRARY法人SDK,发现里面有亮度的接口,参照着Sample就写了个小程序,发现果真可以调节,心里那个开心和开心阿……
再说说,在调节亮度的过程中,最开始的方法是在驱动找接口,那时对ATI显卡驱动的流程和安装都不是很熟悉,所以,兜了好多圈子。他们告诉我说显卡的驱动就是一个.ko,把它insmod就可以用了。那时我也不知道,以为就和触摸屏什么的差不多,insmod一个ko就可以工作了。后来,我发现我错了,为什么,因为发现把ko重新编译一遍之后,insmod成功,但是显卡没有跑起来,屏幕是黑黑的一片。
google了一下,发现ATI的显卡有官方驱动和非官方驱动,两者最主要的区别,就是官方的是闭源的,而非官方的是开源的。刚开始接触的时候,问了下他们,他们告诉我说官方的也是开源,现在知道了,那所谓的开源就是给你用来编译ko的那几个文件。但是,这些并不是最底层的驱动代码,仅仅只是用来编译ko模块。因为官方的驱动在你每改变一次核心,或者升级一次核心的时候,对应的ko都要在当前核心下重新编译才行,所以,驱动安装的时候必然会提供编译ko的源码,但这已经是层层调用之后的代码了。
于是在网上找了个11-10的驱动,即ati-driver-installer-11-10-x86.x86_64.run,想自己安装下,因为我们通过amdcccle调节了亮度,但是找不到其接口,然后别人又说aticonfig不能用,总是报错,说不定这个aticonfig可以用,我想想,也有可能,于是,病急乱投医,马上就想装个新的驱动试试,甚至还为了aticonfig而跑去配置了好多天的framebuffer,现在想想,好可怜哦。
找到的资料多半都是这样的:
1. sh ati-driver-installer-11-10-x86.x86_64.run --buildpkg Ubuntu/lucid
2. dpkg -i fglrx*.deb
3. aticonfig --initial -f
4. fglrxinfo
我想对于标准的Ubuntu,或者说一台显卡为A卡的电脑来说,这样安装就会很顺利也很正确。但是,终端是裁剪了的,硬件和软件的原因,执行第一步的时候都会报错,说是要指定对应的版本,但是指定了Ubuntu/lucid又会出现其它的错误。
想想我的这个也不是完全的Ubuntu,估计这样指定版本肯定不对,于是我就直接运行了
$ sh ati-driver-installer-11-10-x86.x86_64.run
最后的结果为,停在
./lokixml.sh: line 359: ./packages/Slackware/ati-packager.sh: not found
./lokixml.sh: line 359: ./packages/Slackware/ati-packager.sh: not found
然后就不动了,Ctrl+Z暂停之后,会发现该目录下多了一个目录fglrx-install.4waOBW,有了这个目录,我们的安装就可以继续了。
$ cd fglrx-install.4waOBW/install/目录,该目录就是安装过程中需要用到的一些文件,具体可参考下一篇文章。
手动将这些文件拷贝到对应的目录下,并且把对应生成的fglrx/目录在对应核心下make,生成ko并insmod就可以了。
fglrx/目录
sh ati-driver-installer-11-10-x86.x86_64.run --force(因为系统已经安装了显卡驱动,故要强制安装)
然后根据其提示,一步一步的选择安装,最后会在/lib/modules/fglrx/build_mod目录下生成用来在核心下make生成显卡ko的源码。(对应安装选择的目录是/根目录)由于这样安装有可能使系统重启之后跑不起来,故可以把该目录打包之后上传到ftp,编译ko,并再次按照前面的步骤手动安装。