整理下移植思路

1  查阅海思SDK,寻找拷贝加载LINUX内核和ROOTFS的方法。

2  因为架构相同,偷懒使用PANDA的ROOTFS,发现ROOTFS容积达到1 G,放弃制作YAFFS2文件系统拷贝至NAND FLASH的方法。

3  海思SDK,没有准确提供从LOADER通过NFS方式挂在ROOTFS的方法,只提供了常规的NFS MOUNT方法。

4  选择一,从Loader启动,暂没做。

5  选择二,借鉴PANDA的方法,利用CHROOT来得到ROOTFS。转换脚本借鉴PANDA。(有怀疑的空间)

6  通过步骤5 ,海思平台正常启动内核和ROOTFS。

7 修改转换脚本,挂载MEEGO-ROOTFS至 /MNT,同时注意相关/dev/ /proc目录的挂载。

8 chroot /mnt /bin/bash

9 海思平台启用了telnet,可以telnet至平台,提供了很好的调试输出方式。尤其是chroot后,telnet 登录的是原来的海思ROOTFS,方便使用MEEGO-ROOTFS下没有的命令。

10 直接调用startx,启动X11。遇到问题,查看/var/log/Xorg.0.log

11  找不到/dev/tty0 ,使用各种方法,ln -s /dev/tty /dev/tty0 或者是mknod 来创建/dev/tty0。但是后续运行startx会弹出  cannot find free vt

12  发现X11加载的是omapfb,查找各种X11的配置,基本上认为是配置的问题,但是没有X11 FB驱动。查看PANDA移植MEEGO的WIKI,发现的确对xorg.conf.d做了修改,但是搞不懂为什么拷贝过去的配置文件和生成的配置文件不同(可能是mic做了转化处理)

13 查看生成ROOTFS的KS文件,从里面找到下载软件包的链接地址,从里面找到FB RPM包。xorg-x11-drv-fbdev-0.4.1-1.5.armv7hl.rpm

14 xorg-x11-drv-fbdev-0.4.1-1.5.armv7hl.rpm包在UBUNTU下不能安装,因为架构不同,找不到依赖库。(想了想,MIC工具应该对此做了处理,不然那些RPM包都安装不到ROOTFS中,怎么实现的还没研究)

15 查看到MEEGO-ROOTFS下有rpm命令,决定到盒子上安装包。rpm -ivh xorg-x11-drv-fbdev-0.4.1-1.5.armv7hl.rpm 没有错误,想当然的以为安装成功。忘了查看安装之前的动态库,以为libfb.so或者libfbdevhw.so是FB驱动库,这里傻逼了,创建时间都没看。修改配置文件,折腾了很久,发现都找不到驱动。

16 还没想到是驱动没安装成功的原因,以为未知的地方出了问题,沮丧开始了。只好随便在网上查查有没有相关xorg-x11-drv-fbdev的消息和UBUNTU下的X11配置,发现X86版本安装FB驱动会生成FB_DRV.SO库。想到是不是可以RPM命令查看一下rpm包里面包含哪些文件。

17 rpm -pl  xorg-x11-drv-fbdev-0.4.1-1.5.armv7hl.rpm 果然里面有两个文件。但是为什么安装不成功呢,rpm -e卸载包也不成功,说明meego rpm配置有问题(一种可能是因为没有使用步骤4的原因),不知道怎么办,想到是不是可以用MIC重新编译一个ROOTFS,但是这个风险也太大,万一重新下载包覆盖以前下好的包,就太恶心了。

18 峰回路转,突然发现 海思的rootfs中也有RPM命令(如果没有,说不定可以自己编译一个)。使用rpm -i org-x11-drv-fbdev-0.4.1-1.5.armv7hl.rpm 什么log都没,但是在相关的目录下找到了驱动库。很高兴,拷贝到MEEGO-ROOTFS。

19 修改配置,这次LOG中终于显示加载的是FB驱动。但是悲剧的是又回到了步骤11 ,悲剧了。 现在猜测可能是没有选择4步骤的原因,等等再调研下有没有其他方法,真麻烦。


发布了23 篇原创文章 · 获赞 1 · 访问量 3万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章