Monthly Archives: 一月 2015

linux编译ATI显卡驱动

作者: dplord, 访问量 797





事情起于今天班上一个女生zcm问我她要做毕设, 老师让装linux, 自己装ubuntu12.04 32bit 有问题, 让我帮看看, 作为linux死忠又是大学同班同学我就答应帮她把ubuntu12.04 32bit搞好(难得有女生有兴趣学习linux啊, 确实是比较少见的)。

我拿过来一看, 她的电脑是Acer的, 当时按照她的描述:

自己在学校镜像站下载了ubuntu12.04镜像, 安装完了就进去系统, 然后update了一下, 装了 build-essential 跟  xorg-dev 、多媒体开发库SDL 、ffmpeg等要用工具后,重启就进不去了, 表现为在ubuntu logo页面一半天进不去

我拿过来一看, 当时报了一个错误如下:

[drm:r600_uvd_init] *ERROR* UVD not responding, trying to reset the VCPU!!!
[drm:evergreen_startup] *ERROR* radeon: error initializing UVD (-1).

看到radeon 就是AMD显卡问题。

zcm电脑较新是Acer的, 显卡信息如下

2015-01-07 23:47:38的屏幕截图

集显是APU上附带的 Radeon  HD 6520G, 其实这个集显(其实APU上的不叫集显, 不过作用可类比intel CPU上的集显) 还是很强的, 比intel i3集显强多了, 比intel i5的集显只强不弱, 相当于一个入门独显的级别。

独显是  AMD Radeon HD 6400M Series 。

关于AMD 显卡驱动,  其实Askubuntu 已经有人发问了, http://askubuntu.com/questions/434521/drmr600-uvd-init-error-uvd-not-responding-trying-to-reset-the-vcpu

这里我打算给她重做一个ubuntu12.04 32bit的, 下载好刻U盘后, 安装的时候诡异的时候到了, 一直卡在安装页面不动

后面没办法, 在安装的时候需要进入文本模式, F6选择  nomodeset 模式, 再安装, 但是这样安装好了。

安装好之后, 默认进入页面之后, 卡在登陆页面不动根本无法键盘输入。后面在grub启动时,按E在grub引导菜单,  找到 quiet splash 字样,在后面添加 nomodeset , 这样会引导进去一个1024*768 的低分辨率的页面, 有这么强集显跟独显的只能用渣画质的 1024*768 的,简直不能忍, 我决定多费点时间帮她编译一个A卡驱动。之前我大一给我家台式机(HP-GT2070CX , 显卡ATI Radeon HD 4550 也是A卡), 安装过一次A卡驱动, 一下子在我的家庭21寸台式机上有了 1440*900  的分辨率, 配合Opensuse的字体渲染, 写代码水论坛看视频超爽。

其实关于显卡的linux支持现状, 其实目前已经很好了。显卡主要分A卡(AMD APU附带的显卡, ATI显卡) 跟 Nvidia 显卡 以及 Intel集显, 这3类。Intel集显不用说, 英特尔对Linux的支持力度相当大, linux内核提交代码的前几就有intel, 一般的笔记本电脑都是Intel i3、i5、i7 系列CPU, 都自带一个Intel集显, 这些电脑安装上linux基本没任何问题的, 默认就是全分辨率很方便的。Nvidia系列的显卡, 其实性能更出众, 游戏玩家必追啊, nvidia 由于要大力发展跑在android的GPU以及nvidia推出的CUDA GPU并行计算, 对linux 系列支持也是特别好, 对应型号都有相应驱动, 性能相当不错。Ps: 各大网格计算、云计算平台都广泛部署了对CUDA并行计算库的支持,我上次去我们学校东5楼闲逛, 看到了各大网格计算中心的部署工具中CUDA计算库简直标配, 附图如下:

这是ChinaGrid 教育网内, 几个一级节点跟二级节点分布。

打大红点的是一级主干节点,一共7个全国一级节点, 我们学校是华中地区的国家一级主干节点。

1-1

每个节点配备的软件都大致类似 ,GPU计算资源就是其中一个重要指标, 大规模用到了CUDA

1

以西北地区主干节点西安交大为例, 打红框的是该节点配备的资源大小与种类,有兴趣可以自己去玩玩这些软件。

扯歪了, 说完N卡的支持已经相当好了。再看A卡的支持, 其实AMD对linux近些年支持很不错, 各种 “AMD Linux催化剂驱动” 连续不断的紧急释出, 但是貌似由于时间、稳定性、协议之类的, 通用linux发行版没有把这些驱动给包含进去,需要自己手动编译。

去, AMD官网下载一个  amd-catalyst-omega-14.12-linux-run-installers.zip  的文件,

这个文件不能在vps上快速下载, 原因是限制了  Referer 跟  header

想命令行下下载amd驱动的, 可以写一个shell, 如下:

curl \
-H "Referer: http://support.amd.com/zh-cn/download/desktop?os=Linux+x86"  \
-H "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0
Accept: text/css,*/*;q=0.1" \
-H "Cookie: c_sccva=1420636121000%2CNA; s_fid=76ECADB0C01BD313-32D52C9175E1EF0A; s_cc=true; s_vi=[CS]v1|2A5697F3051D3FA3-4000010300002A71[CE]; fsr.s=%7B%22v2%22%3A-2%2C%22v1%22%3A-2%2C%22rid%22%3A%22d036702-53157432-4508-58ac-e4bc8%22%2C%22to%22%3A3%2C%22c%22%3A%22http%3A%2F%2Fsupport.amd.com%2Fzh-cn%2Fdownload%2Fdesktop%22%2C%22pv%22%3A1%2C%22lc%22%3A%7B%22d0%22%3A%7B%22v%22%3A1%2C%22s%22%3Afalse%7D%7D%2C%22cd%22%3A0%2C%22f%22%3A1420636735766%7D; com.silverpop.iMAWebCookie=1e589c02-c5a6-5556-d505-ac20ee930564; com.silverpop.iMA.session=8cc12ac6-6482-e51b-848a-c6a1bed35029; com.silverpop.iMA.page_visit=-1534868343,"  \
http://www2.ati.com/drivers/linux/amd-catalyst-omega-14.12-linux-run-installers.zip -o 1.zip 

执行这个shell即可下载了。

下载完了, 其实最好在 grub 添加参数进入 nomoset模式下安装, 以免现在的驱动影响新驱动的安装导致不成功。

这点A卡做的很好 , A卡可以在图形模式下安装, N 卡驱动只能关闭kdm 或者 gdm 在文本模式下安装, 而且安装N卡驱动需要你编译一次自己的内核, 这样才能把驱动模块安装到对应内核去, 更新内核的话, N卡驱动要重新安装的。

进入 nomodeset开始安装

1 先装依赖库

sudo apt-get install build-essential cdbs dh-make dkms execstack dh-modaliases fakeroot libqtgui4 debhelper debconf libstdc++6 dkms libqtgui4 libelfg0 linux-headers-generic

2 卸载可能存在的旧的A卡驱动

sudo apt-get remove --purge fglrx*

 

 3 解压缩执行下载的 amd-catalyst-omega-14.12-linux-run-installers.zip 的.run 安装文件

chmod a+x amd-driver-installer-14.501.1003-x86.x86_64.run 
./amd-driver-installer-14.501.1003-x86.x86_64.run  --buildpkg Ubuntu/precise  

其中:Ubuntu/precise 是 ubuntu12.04 代号, 这里代号要小写,每个版本的代号可以用  lsb_release -a 查询的。

此步编译deb过程也可以在图形化进行, 看个人喜好。

4 安装编译好的deb文件

sudo dpkg -i fglrx*.deb

 5 安装完,  还有一步初始化操作

sudo aticonfig --initial

重启后就好了, 部分电脑也许调整的Xorg.conf 参数不对, 需要自己手动去改一下。

这次的 amd-driver-installer-14.501.1003-x86.x86_64.run  驱动比以前稳定好多, 运行良好, 以前我给我家台式机(HP-G2070CX)装A卡驱动的时候, 当时版本还是一个beta版本, 不是很稳定, 每运行几个小时甚至30分钟就会崩一次, 现在进步太大了, 期待A 卡、N卡一如既往的给力啊。