1. 編譯並燒寫linux內核
1)先准備好內核源碼包urbetter-linux2.6.28-v1.0.tgz,輸入命令:tar -zxvf urbetter-linux2.6.28-v1.0.tgz 解壓
2)進入內核源碼包目錄,修改Makefile,將CROSS_COMPILE改為自己的交叉編譯工具。
3)執行命令:make
之后會在arch/arm/boot目錄下生成zImage文件
將zImage燒寫進Nandflash的0x200000地址
2. 准備文件系統
在6410目錄下創建一個名為rootfs的目錄,將文件系統壓縮包urbetter-rootfs-qt-2.2.0.tgz放置6410目錄下,輸入:sudo tar xzvf urbetter-rootfs-qt-2.2.0.tgz -c rootfs
輸入命令:vi /etc/exports
最后一行加入:/home/linux/zkf/6410/rootfs *(rw,sync,no_root_squash,no_subtree_check) 注意括號內沒有空格,否則重啟nfs服務時會報錯
之后輸入命令:sudo service nfs-kernel-server restart 重啟nfs服務
使用命令:showmount -e 可以看見當前可以用nfs掛載的目錄:
3. 修改U-boot啟動命令和參數
啟動U-boot后輸入以下命令:
setenv ipaddr 192.168.1.100
setenv serverip 192.168.1.200
setenv gatewayip 192.168.1.1
setenv bootargs "root=nfs nfsroot=192.168.1.200:/source/rootfs init=/linuxrc console=ttySAC0,115200 ip=192.168.1.100"
setenv bootcmd "nand read 50008000 200000 300000;bootm 50008000"
saveenv
重啟開發板,讓U-boot引導內核啟動,內核啟動后能看到LCD上顯示企鵝。
4. 修改linux開機logo
准備好一張480*272的png格式的圖片linux_logo.png,按順序輸入以下命令:
pngtopnm linux_logo.png > linux_logo.pnm
pnmquant 224 linux_logo.pnm > linux_logo_clut224.pnm
pnmtoplainpnm linux_logo_clut224.pnm > logo_linux_clut224.ppm
如果提示沒有軟件則使用:sudo apt-get install netpbm 獲取。
接下來將logo_linux_clut224.ppm復制到linux內核drivers/video/logo目錄下,替換掉原來的文件,同時刪除掉logo_linux_clut224.c和logo_linux_clut224.o,重新編譯下載內核。內核啟動后顯示的logo就是剛剛替換掉的圖片了。
5. 去掉屏幕打印信息
第4步完成后雖然開機logo修改成功了,但是啟動后屏幕上會顯示一些打印信息,如下:
我一直以為這部分代碼在內核里,於是在內核里搜了半天沒搜到,然后以為在U-boot里,搜了半天也沒搜到,最后發現是在文件系統里。。。
將開發板文件系統根目錄下etc/init.d/rcS中這幾句echo全部注釋掉再復位開發板,屏幕上那幾句打印信息就沒了。
6. 去掉開機logo上的光標
第5步去掉了屏幕上的打印信息,但是左上角還有一個光標,接下來我們要把它去掉。
將內核代碼drivers/video/console/fbcon.c文件中第395行左右的fb_flashcursor函數和第1359行左右的中的fbcon_cursor函數內容全部注釋掉,重新編譯下載內核,重啟開發板光標便去除了。