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函数内容全部注释掉,重新编译下载内核,重启开发板光标便去除了。