标签:second save 源文件 pen roc x64 specified 控制 结束
主 机:VMWare--Ubuntu-16.04.2-x64-100ask
开发板:Mini2440--256M NandFlash, 2M NorFlash, 64M SDRAM, LCD-TD35;
bootlorder:u-boot1.16, Kernel:2.6.22.6;
编译器:arm-linux-gcc-3.4.5
目录
一、目的:配置一个没有LCD模块的内核,用新内核去挂接到开发板0x30000000(即SDRAM)进行测试
1、 编译一个新的没有LCD模块的内核--uImage_mlcd
3、 重新配置单板根文件系统的/etc/inittab文件,使得单板上的Linux系统拥有串口0终端和单板按键-LCD两个控制台
一、目的:配置一个没有LCD模块的内核,用新内核去挂接到开发板0x30000000(即SDRAM)进行测试:
# nfs 30000000 192.168.1.105:/work/nfs_root/uImage_mlcd
挂接(服务器上的)网络根文件系统到(开发板根文件系统的)/mnt,从flash上启动根文件系统:
# mount -t nfs -o nolock,vers=2 192.168.1.105:/work/nfs_root/fs_second /mnt
说明:经在单板测试,若单板上的根文件系统原本就是挂接的服务器上的根文件系统(例如:fs_second),则不需再用mount命令挂接网络根文件
系统到开发板了!可直接进行驱动模块加载等试,执行命令:
# echo hello > /dev/tty1
均可在单板LCD上打印出字符串“hello”!
二、操作步骤:
1、 编译一个新的没有LCD模块的内核--uImage_mlcd
$ cd /home/book/workbook/mini2440/systems/linux-2.6.22.6/
$ make menuconfig //配置内核,去掉原来的LCD驱动程序;
-> Device Drivers
-> Graphics support
<M> S3C2410 LCD framebuffer support //配置为<M>,即模块,可以事后加载使用;
$ make uImage //编译生成新内核;
$ cp arch/arm/boot/uImage /work/nfs_root/uImage_nolcd
$ make modules //编译模块,是为了把fb_ops结构体的3个cfb_xx函数对应的cfb_xx.c源文件编译成.ko文件(模块),供稍后测试时使用。
2、 用新内核启动开发板,在倒数计时结束前按下“空格”键,进入uboot菜单>
OpenJTAG> print
...(打印的内核信息..)
ipaddr=192.168.7.17
...(打印的内核信息..)
OpenJTAG> set ipaddr 192.168.1.17
OpenJTAG> save
OpenJTAG> nfs 30000000 192.168.1.105:/work/nfs_root/uImage_mlcd //uImage_mlcd是内核菜单配置时,LCD_fb配置为<M>,即模块,可以事后加载使用;
OpenJTAG> bootm 30000000 //启动新内核uImage_mlcd;
<启动内核...>
# mount -t nfs -o nolock,vers=2 192.168.1.105:/work/nfs_root/fs_second /mnt
# cd /mnt
# ls
bin driver_test lib mnt sbin usr
dev etc linuxrc proc sys
3、 重新配置单板根文件系统的/etc/inittab文件,使得单板上的Linux系统拥有串口0终端和单板按键-LCD两个控制台
# vi /etc/inittab
#/etc/inittab
#console::askfirst:-/bin/sh
::sysinit:/etc/init.d/rcS
s3c2410_serial0::askfirst:-/bin/sh
tty1::askfirst:-/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
# cat /etc/inittab
#/etc/inittab
#console::askfirst:-/bin/sh
::sysinit:/etc/init.d/rcS
s3c2410_serial0::askfirst:-/bin/sh
tty1::askfirst:-/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
OpenJTAG> nfs 30000000 192.168.1.105:/work/nfs_root/uImage_mlcd
OpenJTAG> bootm 30000000 //启动新内核uImage_mlcd;
<启动内核...>
# mount -t nfs -o nolock,vers=2 192.168.1.105:/work/nfs_root/fs_second /mnt
# cd /mnt
# insmod cfbcopyarea.ko
# insmod cfbimgblt.ko
# insmod cfbfillrect.ko
# insmod lcd_6.ko
Console: switching to colour frame buffer device 30x40
# insmod input_keys2.ko
input: Unspecified device as /class/input/input1
<此时,LCD屏幕显示提示信息...以下都是单板按键--LCD屏幕控制台的LCD屏幕的显示信息...>
Please press Enter to activate
starting pid 768, tty ‘/dev/tty1‘: ‘/bin/sh‘
# ls
bin dev etc driver_test ...
答:Linux下的LCD驱动默认在无操作之后10分钟后会自动关闭屏幕。
答:若加载了单板的输入子系统,可直接敲击单板上的指令“按键”,即可自动唤醒LCD屏幕进行指令操作。
在中断执行命令# echo wakakak > /dev/tty1 虽然仍然可以发送字符到单板LCD屏幕,但是不能唤醒LCD屏幕,需要用单板按键唤醒!
【内核配置】五、配置一个新的暂时性测试用的内核并下载到单板SDRAM测试
标签:second save 源文件 pen roc x64 specified 控制 结束
原文地址:https://www.cnblogs.com/xiaohujian/p/10158400.html