Enable Open Source UVD On Fedora 18

As Phoronix referred, UVD hardware decoding can work on AMD open source driver at this time, however, they just post how to use UVD on Ubuntu. I believe that it is not hard to port UVD to Fedora by myself in this weekend.

In the original post, UVD needs a drm-next branch kernel. Luckily, drm-next branch is merged into mainline by Dave Airlie. Since kernel-3.10.0.rc0.git15.fc20 on Fedora, the kernel could load UVD firmware normally. After installing new kernel, my machine looks laggy intermittently.  I manage to rebuild the kernel at the local machine without debug option. At this moment, I do not see any lag again.

The second step is updating linux-firmware. Clone the latest firmware from git.kernel.org and put the new radeon firmware to /lib/firmware/radeon directory. Or you could install my RPMs. When you reboot your machine, you could find out UVD firmware is loaded in dmesg. Look for ‘[drm] UVD initialized successfully’.

The next is building mesa with VDPAU support. Only the latest mesa source code could support UVD decoding. It is quite easy to git clone the code. Please pay attention that Fedora has not LLVM-3.3 so that you must disable llvm option. Moreover you need to disable radeonsi driver because radeonsi driver relies on llvm. I think it loses some performance improvement for r600g driver. Another is dropping –enable-osmesa option. The reason is it fails to build osmesa component. Finally you could use my UVD repository too. If you want to try UVD decoding, don’t forget to yum install mesa-vdpau-drivers. And mesa-git requires libdrm-2.4.44, newer than official repository.

Something extra I done is I upgrade libvpdau and radeon DDX driver. libvdpau bumps to 0.6. And xorg-x11-drv-ati bumps to 7.1.0-git with glamor library. I could make sure whether glamor works fine or not. Generally we could log in system normally. These pacakges are not necessary, I think. Just try it.

All the things are done. You must reboot the machine and select the latest kernel to boot. After logging in Fedora, you could choose a movie player with VDPAU support. Then you could play the movie under hardware decoding. MPlayer and smplayer works fine. Maybe all mplayer-based movie players are OK. VLC could not get hardware decoding. Totem could not, either.

All my packages are built on my local machine. They are not tested on Koji. If you want to try them, you just need to download the repo file and put it into /etc/yum.repos.d directory. Both RPM and SRPM are here.

开源世界的两种态度

参加过LUG活动的人大概也知道,在LUG内大概会划分是两派人,一派是理想派,另外一派是现实派。

理想派大多是Linux新手,其中又以在校学生为主。他们期望着自由软件能够完全替代专有商业软件,即使自由软件在功能上有部分缺陷,能够容忍都会坚持使用下去。核心理念是“自由软件”。

现实派则是以工作人士为主,是Linux的有经验用户。他们的倾向是开源软件,但首要考虑的是软件能否解决问题和使用成本。因此他们认为只要能够解决问题,并不会介意使用闭源软件。核心理念是“软件自由”。

开源软件是理想化的,但是开源软件也是人类社会的一部分,不能脱离社会现实。软件代码越来越不值钱,软件越来越多开放源代码,互联网也越来越普及。软件用来构造互联网的基础设施,但互联网最有价值的部分是运营、服务和数据。公司老板再有钱,也不会开源核心软件和核心数据,也不至于连饭碗都不要。再狂热的开源分子,也不会因为老板要开源某个软件而无偿上班。老板当然很开心,能省一大笔工资,但程序员没意见,家里的男女老少一定会有意见。更重要的是老板不会因为你写的是开源软件而推迟软件交付和服务上线的日期,任何的推迟都意味着巨额的赔偿和违约金。事实上大部分成功的开源项目,背后至少都有一个大公司做后盾。这些就是开源软件要面对的社会现实。

本质上LUG不应该划分成两派,因为每一个Linuxer都是从懵懂入门到熟悉精通。没有天真烂漫的理想,又何来开源软件和自由软件的今天呢?当初没有RMS的理想与坚持,恐怕到现在都没有自由软件。当初没有一群不知好歹的偏激学生,也就没有开源软件的繁荣。当初Linus没有坚持GPLv2许可证,也就没有众多大企业贡献Linux内核代码。当初没有红帽等公司以Linux作为产品推出市场,也就没有现在大公司积极跟进开源软件发展。理想与现实并不冲突,只有了解深浅的区别。

开源软件跟女人择偶一样,总是从理想派演变为现实派。

2012一年败物

老K说过,科技的进步取决于花钱的程度。2012年,我感觉科技进步得很快。

农历新年前,Tommy He和当时的未婚妻现在的夫人去香港玩,回程时经过广州坐飞机,我就托他们俩买了一部ASUS Transformer Prime平板。听他们说新产品货源少挺难买,跑了好几个店才找到。出货跟机是Android 3.2 Honeycomb,Tommy顺手已经帮忙升级到Android 4.0 Ice Cream Sandwich。到了我手后就机不离手了,用它比用电脑还多。

后来我还入手了官方专属键盘底座,电量就更加充足了。键盘的按键偏小,需要一点时间适应一下。

最不爽的是六月份平板的触摸屏失灵了,幸好有全球联保。拿到国内官方的维修中心送修,一开始维修中心说是人为损坏维修需要全额自付,我一定是据理力争了,最后扰攘了两三个星期ASUS最终愿意免费更换整个显示屏。

三月份把小笔电的HDD换成SSD,买了一快Micron M4 128GB。想吐槽的点反而是主板。联想把原本可以支持SATA3的芯片组锁死在SATA2。M4的读取速度可以到450MB/s~500MB/s。现在最高也就跑到280MB/s~290MB/s。容量虽然略小,小笔电CPU也慢,但是在SSD加持之下,上班跑一两个虚拟机速度还是杠杠的。反正我是回不了头了。

六月份去香港参加GNOME.Asia 2012活动,第一天活动结束后晚上闲逛西洋菜街,被苏宁镭射的Sales MM“忽悠”买了部新手机HTC One X。其实当天是Galaxy S3的香港上市日,反正我是注定和Samsung没有缘分的了。

至于为什么这么狠心换手机呢?原来的手机只要一开3G上网就会疯狂发热,以致触摸屏完全失控,有时候Wifi上网也会有同样的问题。新手机虽然是用了四核处理器,热量大但仍然在可接受范围,就是用Wifi Tethering热量会超大。

八月底买了个新路由器Buffalo AG300H,四个千兆LAN口,2.4G和5G双频300M Wifi,还有一个USB口和官方DD-WRT支持。本来买它是用来当简易NAS和BT下载机的,折腾了一下就没有下文了,此外外接移动硬盘写入文件很容易导致路由器CPU狂飙而卡死。现在一直默默地当普通路由器用着,反倒是老爸把旧的TP-Link路由器放在厅里搭了个WDS网络增强无线信号。

十一月份家里的宽带续费了,升级到12Mbps的ADSL套餐,套餐中包含的东西蛮多的。IPTV一个,老爸每晚都会看的。Huawei C8812E 3G手机一部,套上老爸原来的电信卡给老爸用,是Snapdragon S4 Play的双核处理器和512MB RAM,配置不高当非智能机用也凑合了。这部手机也让我老爸养成了睡前睡醒玩手机的“良好”习惯。

ADSL套餐中两张UIM卡,一张留在家里插到老爸的旧手机用来当家庭电话,另外一张我就买了一只Huawei E5s CDMA版Pokect Wifi,1GB流量不用白不用。在不是太高用量的情况下,Huawei E5s能熬四五个小时没问题。

十二月我买了一部Huawei MediaPad 10 FHD平板,2GB RAM高配的3G版,价钱比Transformer Prime便宜很多了,我还趁着京东搞大特价的时候买的。这部平板打算是买给我爸当生日礼物的,到手以后一直懒得搞平板上的软件,到现在都没有送出手。我看重这部平板的部分是四核处理器和2GB RAM,显示屏也是1920×1200的IPS,但不知道为什么总是觉得屏幕亮度偏暗。

2012年我败的东西实在太多了,可以预期的是,2013年科技肯定没有2012年进步大了。