整理下移植思路

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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章