最近忙着做畢業設計,做到系統底層軟體平台建構這一步,也就是移植uboot、linux核心和根檔案系統,目标平台是S3C2410。
經過一步步的移植,最後都移植成功了,燒到闆子上能夠正常啟動,但是經過我得測試後發現一個問題,無法加載驅動子產品。(紅色字型表示很嚴重!)這個問題嚴重,無論怎麼insmod或者modprobe發現都不行,剛開是提示“chdir(modules) No such file...”錯誤,無法加載,經過查詢資料發現是核心子產品在插入解除安裝時都會要轉到/lib/modules/核心版本号/
這個目錄裡。而我得檔案系統裡沒有這個目錄,是以又重新開機制作下檔案系統添加這個目錄。再次下載下傳到開發闆上,運作子產品加載指令,發現還是錯誤提示是沒有這個檔案“No such file..”,怎麼會沒有這個檔案哪?明明就在目前目錄下,這個郁悶壞了。然後千方百計的找資料實驗很多方法,發現都不行。最後無奈之下就換了一個busybox的版本,從之前的busybox1.12.2換成busybox1.9.2,然後再次配置編譯,配置如下:
Busybox Setting----->
build option-->
[ ] Build BusyBox as a static binary (no shared libs)
[*] Build shared libbusybox
[*] Produce a binary for each applet, linked against libbusybox
[*] Produce additional busybox binary linked against libbusybox
[ ] Build with Large File Support (for accessing files > 2 GB)
installation option-->
[*] Don't use /usr
Applets links (as soft-links) --->
(./_install) BusyBox installation prefix
Busybox Library Tuning --->
MD5: Trade Bytes for Speed
[*] Faster /proc scanning code (+100 bytes)
[*] Support for /etc/networks
[*] Support for /etc/networks
[*] Additional editing keys
[*] vi-style line editing commands
[*] History saving
[*] Tab completion
[*] Username completion
[*] Fancy shell prompts
Linux Module Utilities --->
[*] Support version 2.6.x Linux kernels
[*] insmod
[*] Enable load map (-m) option
[*] Symbols in load map
[*] rmmod
[*] lsmod
[*] lsmod pretty output for 2.6.x Linux kernels
[*] modprobe
[ ] Multiple options parsing
[ ] Fancy alias parsing
--- Options common to multiple modutils
[ ] Support tainted module checking with new kernels
[ ] Support version 2.2.x to 2.4.x Linux kernels
[*] Support version 2.6.x Linux kernels
(紅色字型表示關鍵地方)
其他的用預設值
我想無法加載驅動子產品的問題就出在紅色的配置選項地方,難道是busybox1.12.2版本有bug?這個目前還不是很清楚,希望知道的大牛們給一個解答(回複)!
配置完成後make一下出現一串錯誤,好像是什麼applets/applets.c 21:2 error #Abort error,無奈,根據提示找到這個檔案的第21行将其注釋掉,重新make,通過!然後make install完成,重新制作檔案系統。制作完成之後下載下傳到闆子上一切正常,再次加載驅動子產品OK,[root@ /mnt/yaffs]# insmod s3c2410-dc-motor.ko
s3c2410-dc-motor device initialized,加載成功!
另外發現一個問題,s3c2410平台上的dm9000網卡隻能配置成功一次,第二次啟動配置的時候就會出現:ifconfig: SIOCSIFFLAGS: Invalid argument
目前隻有一個非常笨得方法可以用:在啟動的時候停留在uboot,然後使用tftp下載下傳一個檔案到記憶體,然後再reset,就會再次配置成功網卡,否則無法正常網卡,好想現在就不正常!