在Moblin上继续尝试安装GMA500的驱动Poulsbo

   Moblin上开发一个很大的问题是moblin过分追究和 mainline的linux版本保持一致,包括大大小小的版本,导致的一些驱动无法跟上。Ubutun9.04使用的是2.6.28.x版本,fc10 使用的是2.6.27.x的版本,而Moblin迫不及待地将kernel版本提高到2.6.30,这引起driver无法跟进,例如阿土提供lpia的 psb驱动,但是无法在现有版本上支持。而moblin提供的硬件支持很少,连他自己的poulsbo也不支持。从Intel的角度,他们的目的有可能为了提供kernel来适配他的小型设备包括电源、快启等等。但是在完善系统过程中,追赶linux版本对于开发者不是一个好消息。

   我们查看kenrel.spec中的log,有下面的一些记录

- Updated PSB graphics driver
* Sun May 10 2009 Arjan van de Ven <[email protected]> 2.6.40-rc5
- add trace/ to the include dirs
* Sat May 9 2009 Arjan van de Ven <[email protected]> 2.6.30.rc5
- Rev to 2.5.30-rc5
* Tue May 5 2009 Anas Nashif <[email protected]> 2.6.30.rc4
- Move to 2.6.30 rc4
* Fri May 1 2009 Anas Nashif <[email protected]> 2.6.30.rc3
- Update PSB gfx driver support for 2.6.30rc
- Merged all psb fixes and patches into one single patch

   这里说明PSB的驱动成作为kernel的一部出现。在2.6.30-rc版本中,应该有相关patch提供。但是我们在社区公开的版本中并没有看到RC版本。我们注意到在moblin的repo中提供了xf86-video-psb,说明是psb的driver,通过-qpl,我们看到它提供*.so的库,显示它并不是真正的驱动,可能是提供X win调用的链接库。

   但是在社区公开的30后版本中,我们在配置中看到了CONFIG_DRM_PSB,这个PSB驱动的选项。根据配置对于IVI的版本,不提供,对于netbook版本,作为kernel module,对于menlow和mrst直接build在kernel中。不过奇怪的事情继续发生,在现在最新的版本中(7-27),可能包括以后的版本,通过rpmbuild -bp来解开源代码,我们发现通过merge生成不同kernel的config文件是包含这个选项,但是经过make ARCH=x86 nonint_oldconfig后,选项就都消失了。似乎Intel关闭了PSB的提供,有可能是涉及商业的问题。不过我们仍可以在2.6.30-1.x的中间版本中得到,或者我们可以在spec中注释掉nonint_oldconfig的步骤。

  我使用了中间2.6.30-1.x的版本,为了便于控制我将menlow中将该选项也置为module方式(实际上y和m我都尝过),编译后,确实有psb.ko文件。我们同时导入xf86-video-psb的rpm,我曾以为问题可以解决。但是经过测试,在modprobe psb后,显示出现问题,唯一方法只能power off。似乎这个驱动并不能适配menlow的platform,也可能因为这个原因在后期版本中PSB的选项消失。Intel可能是基于商务的考虑,也可能需要通过OSV来获取。

  一句话:再战GMA500失败。也许没有失败,至少证明此路不通。

  我只能根据别人的驱动进行适配,但是代码的问题我解决不了。世界上曾经有很多物种,很多都消失在历史中,失败吗?也许没有,生命创造的本身就是奇迹,在某个时间和空间中他们存在,也无须要通过人类来证明他们的存在。

相关连接:在Moblin上尝试安装GMA500的驱动,可惜还差一点

你可能感兴趣的:(linux,Module,Build,include,merge,patch)