S5PV210(TQ210)學習筆記——內核移植與文件系統(tǒng)構建
另外,從TQ210原理圖的DM9000部分還可以看到,DM9000使用的是外部中斷10,故將中斷號修改為10號。本文引用地址:http://m.butianyuan.cn/article/201611/322806.htm
最后需要說明的是smdkv210_dm9000_init函數(shù)的修改,這是因為DM9000的數(shù)據(jù)訪問、命令發(fā)送等是按照一定時序工作的,而DM9000接再SROMC上,因此需要配置SROMC時序,使其可以正確驅動DM9000,關于時序的詳細配置我還沒研究,不過韋東山老師的第二期視頻中講述了DM9000的驅動移植,也講了時序配置,需要的話可以參考。
五 掛接文件系統(tǒng)
我們現(xiàn)在配置好了網(wǎng)卡驅動,還需要對內核稍作配置才能使內核支持網(wǎng)絡文件系統(tǒng)掛載,具體的可以參考以下配置。
(1) 配置網(wǎng)絡支持
- [*]Networkingsupport--->
- Networkingoptions--->
- <*>Packetsocket
- <*>Unixdomainsockets
- [*]TCP/IPnetworking
- [*]IP:multicasting
- [*]IP:kernellevelautoconfiguration
- [*]IP:DHCPsupport
- [*]IP:BOOTPsupport
- [*]IP:RARPsupport
- [*]IP:multicastrouting
(2) 配置網(wǎng)卡設備支持
- DeviceDrivers--->
- [*]Networkdevicesupport--->
- [*]Ethernetdriversupport--->
- <*>DM9000support
- Filesystems--->
- [*]NetworkFileSystems--->
- <*>NFSclientsupport
- <*>NFSclientsupportforNFSversion2
- <*>NFSclientsupportforNFSversion3
- [*]NFSclientsupportfortheNFSv3ACLprotocolextension
- <*>NFSclientsupportforNFSversion4
- [*]RootfilesystemonNFS
配置完以上三項后保存配置,然后再次編譯內核,直接執(zhí)行make指令即可。
這時,重新下載內核測試運行,沒有意外的話現(xiàn)在內核已經(jīng)可以正常工作了,如果不幸的遇到了問題,那么問題應該是NFS服務器配置的問題,ubuntu下配置NFS服務器很簡單
- sudoapt-getinstallnfs-kernel-server
然后以根權限打開/etc/exports文件,我的NFS根目錄為/nfsroot,故,我設置export為
- /nfsroot/*(rw,sync,no_root_squash)
設置完成之后需要重啟NFS服務,ubuntu下執(zhí)行
- sudoservicenfs-kernel-serverrestart
重啟的時候會看到一些警告,如下圖
但是上述警告不影響使用。反之,如果設置為no_subtree_check,雖然系統(tǒng)可以正常掛載,但是無法進行創(chuàng)建文件等寫操作,也就是說,掛載的文件系統(tǒng)是只讀的。最后還要修改下/nfsroot的權限,為了以后使用方便。
- chmoda+x/nfsroot-R
到這里,基于TQ210的內核移植已經(jīng)初步完成了,接下來我們就可以進行驅動開發(fā)了。
六 問題總結
我在配置過程中遇到了很多問題,現(xiàn)在稍作總結
(1) 串口中斷打印完Starting kernel...之后就沒有任何輸出了
配置內核,指定調試信息輸出端口為UART0,文中講到了詳細配置。
(2) 解壓完內核之后沒有任何輸出了
a.檢查bootargs環(huán)境變量設置是否正確,必須設置console=ttySAC0
b.檢查uboot傳遞的機器碼根內核是否對應
c.檢查uboot傳給內核的taglist是否正確
(3) 內核無法掛接到NFS文件系統(tǒng)
a. 正確移植DM9000網(wǎng)卡驅動
b. 配置內核的網(wǎng)絡部分、網(wǎng)卡設備和文件系統(tǒng)中的網(wǎng)絡文件系統(tǒng)
c. 確認NFS服務器的配置是否正確,用另外其他linux或已經(jīng)移植好系統(tǒng)的linux進行測試(mount -o nolock xx.xx.xx.xx:/nfsroot/rootfs)。
(4) 文件系統(tǒng)掛接成功,無法執(zhí)行/linuxrc
a. 檢查NFS配置文件,最好以NFSv2方式配置,內核不支持的話會出現(xiàn)問題。
b. 最好以文中推薦的方式進行NFS服務器配置。
c. 配置完成之后需要重啟NFS服務或者是重啟系統(tǒng)。
七 其它問題
如果您在移植過程中出現(xiàn)了其他問題歡迎留言討論。
評論