通過uboot燒寫帶QT的檔案系統到nand flash (K9F1208)

來源:互聯網
上載者:User

前幾天做好了帶qt的檔案系統,通過nfs掛接成功,但是介面閃爍的厲害。經過分析得出結論:網卡與vga有衝突導致的,因為關閉網路時,顯示正常,但是我是通過nfs掛接的檔案系統,沒有網卡是無法工作的。禁用網卡後顯示正常,但滑鼠鍵盤均無法使用了,故需要把檔案系統燒寫到flash中運行,查出原因。大致步驟如下:

1、使用mkyaffsimage工具把帶qt的檔案系統製作成yaffs格式的鏡像。

    #cd /home/ayj/work/nfsroot

    #mkyaffsimage fs_qtopia fs_qtopia.yaffs

    製作完成。

2、啟動開發板到uboot控制台(uboot已移植成功並支援nfs),通過nfs下載檔案系統到記憶體,然後通過nand write命令燒寫到flash中。

    #nfs 0x31000000 192.168.1.100:/home/ayj/work/nfsroot/fs_qtopia.yaffs   (通過nfs下載檔案系統到記憶體)

    #nand erase 0x00b00000  0x4000000  (擦除)

    #nand write.yaffs 0x31000000 0x00b00000 0x3800000  (燒寫)

修改命令列參數以MTD3分區作為要檔案系統(0x00b00000是mtd3的起始地址),在uboot控制台做如下設定:

#set bootargs noinitrd confole=ttySAC0 root=/dev/mtdblock3 rootfstype=yaffs

#saveenv

重啟開發板,核心啟動後會去mtd3掛載檔案系統。

 

啟動後檔案系統掛接成功,顯示如下資訊

......

IP-Config: Complete:
      device=eth0, addr=192.168.1.70, mask=255.255.255.0, gw=192.168.1.110,
     host=yc2440, domain=, nis-domain=arm9.net,
     bootserver=192.168.1.101, rootserver=192.168.1.100, rootpath=
yaffs: dev is 32505859 name is "mtdblock3"
yaffs: passed flags ""
yaffs: Attempting MTD mount on 31.3, "mtdblock3"
eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
VFS: Mounted root (yaffs filesystem).
Freeing init memory: 136K
init started: BusyBox v1.7.0 (2009-09-15 19:57:11 CST)
starting pid 755, tty '': '/etc/init.d/rcS'
Done
starting pid 767, tty '': '/usr/sbin/telnetd'

......

 

顯示器也顯示qt介面,但還是閃爍,於是關閉網路,顯示正常,滑鼠鍵盤也能使用了,看來真是網卡與vga有衝突導致之前的問題。(還沒有找到解決的方法。)

在控制台輸入如下命令關閉網路:

#ifconfig eth0 down

 

附加:在用nfs下載fs_qtopia.yaffs到記憶體時遇到的問題。

          剛開始通過命令nfs 0x31000000 192.168.1.100:/home/ayj/work/nfsroot/fs_qtopia.yaffs 進行下載時總下載不成功,顯示如下資訊就停止了。

U-Boot 2008.10 (Oct  6 2009 - 11:43:29)

I2C:   ready
DRAM:  64 MB
Flash:  1 MB
NAND:  NAND device: Manufacturer ID: 0xec, Chip ID: 0x76 (Samsung NAND 64MiB 3,3V 8-bit)
64 MiB
In:    serial
Out:   serial
Err:   serial
Hit any key to stop autoboot:  0
mini2440 # nfs 0x31000000 192.168.1.100:/home/ayj/work/nfsroot/fs_qtopia.yaffs
dm9000 i/o: 0x19000300, id: 0x90000a46
DM9000: running in 16 bit mode
MAC: 08:00:3e:26:0a:5b
File transfer via NFS from server 192.168.1.100; our IP address is 192.168.1.70
Filename '/home/ayj/work/nfsroot/fs_qtopia.yaffs'.
Load address: 0x31000000
Loading: *
   done

 

很鬱悶在這裡浪費了一個多小時,查了很多地方,就是找不出原因,通過nfs下載其它檔案都能下載,可就是下載fs_qtopia.yaffs提示上面的資訊,總不能下載。搞了好久還是不行,於是就停下來,開始分析:開始懷疑nfs不支援大文傳輸,因為製作好的fs_qtopia.yaffs接近31M。嘗試下載其它大檔案能下載呀,排除這個猜想。後來懷疑是許可權問題,因為編譯時間我用的是目前使用者編譯的。而在fedora8中啟動控制台minicom是通過su來啟動的,於是查看fs_qtopia.yaffs的許可權,果然是許可權問題,因為它只支援目前使用者ayj讀取,更改許可權下載成功!

(這是一個很簡單的問題,可有時候就是這些簡單的問題把我們寶貴的時間浪費了.....故做些記錄,以備參考!)

 

 

 

註:
uboot控制台命令使用方法可在控制台輸入help進行查看。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.