Exynos4412系統移植總結
阿新 • • 發佈:2018-12-02
經過了三天的填坑,終於在Exynos4412上移植成功了Uboot2015+Linux4.1.36+Rootfs。
具體的移植操作過程在前文在Exynos4412上使用SD卡燒寫Linux已經贅述。本文用於記錄經驗總結。
問題一:設定的核心地址不正確,uboot無法啟動核心
解決辦法:
在SSH
工具上對SD卡進行hexdump
列印前5M
的地址資料,儲存到.txt
檔案,然後使用Hex Editor
開啟uImage
檔案,可以看到第一個資料是2705
,但是實際上這個資料的存放位置是顛倒的,於是在.txt
裡進行搜尋前三組資料,找到偏移地址200000
。
在uboot啟動的時候會打印出uboot
7fe7d000
,加上偏移地址得到核心啟動時所處的地址8007D000
,最後我們設定bootargs
裡的kerneladdr
為0x8007D000
,成功啟動核心!!問題2:無法掛接SD卡,提示找不到bootargs
裡的塊裝置
解決辦法:
2.1.首先是因為在Kernel列印資訊沒有sdhci有關的資訊,因此意識到Kernel沒有新增SD/MMC裡的S3C驅動,新增PCI驅動支援,另外防止出現由於核心映像是由虛擬機器生成,將Fusion MPT driver
和LPC
編進核心。
2.2.識別出了SD卡,但是找不到init /linuxrc
,由於我錯誤的將rootfs.ext2
直接地移到了檔案系統分割槽,沒有解壓所以找不到init /linuxrc
Buildroot
目錄output
下target/
裡的所有檔案拷貝到檔案系統分割槽即可找到init /linuxrc
。位於在Exynos4412上使用SD卡燒寫Linux的最後一步有寫具體操作。2.3.由於拔插SD卡步驟有問題,導致SD卡處於防寫狀態,因此需要格式化Rootfs所在的分割槽,再重新刷入Rootfs。
最後掛接成功。在設定bootargs
時可以設定root=179:2
,179
是SD卡的主裝置號,2
是SD卡檔案系統分割槽的從裝置號,當然也可以設定為root=/dev/mmcblk0p2
,0
代表SD卡,1
代表板子的emmc
,p2
指第二分割槽。
欠缺:
/*
*目前LCD功能尚未實現需要修改除錯,繼續填坑。
*SD卡作為檔案系統的可靠性有待提高
*/