目的:
配置内核,编译lcd模块,编译内核,在jz2440目标板上成功装载lcd内核模块
准备 | 作用 |
虚拟机版本ubuntu-16.04.2 | 编译程序 |
FileZilla | 虚拟机与PC机间文件传输 |
tftpd32 | 目标机TFTP传输文件给PC机 |
jz2440v3目标机 | 实验开发板 |
PC机win10 | —— |
MobaXterm_Personal_10.4 | 串口通信工具 |
实物连接:
步骤:
1、打开虚拟机,搜索terminal,打开命令行终端输入界面。
2、输入ifconfig查看虚拟机IP信息,如果ip地址没有显示,如下:
打开你的任务管理器,确定你的虚拟机服务是否都处于正在运行状态,并确认你的wifi是打开状态的。
3、读出虚拟机IP为:192.168.247.128(可能不一样)
4、依次输入 ubuntu 的 ip (192.168.247.128),用户名 book,密码***, 端口 21, 单击“快速链接”即可
5、成功连接后将3个内核所需文件整个移到虚拟机/work/system目录下,而4th_4.3则移到/home/book/tmp/lcd目录下
6、在/work/system目录下输入 tar xjvf linux-2.6.22.6.tar.bz2 解压内核文件(.bz2后缀应该用参数xjvf 解压,而不是xzvf)
7、cd linux-2.6.22.6
8、打补丁 patch -p1 <../linux-2.6.22.6_jz2440_v2v3.patch (以下操作应在linux-2.6.22.6目录下进行)
9、执行 mv ../4.3_LCD_mach-smdk2440.c arch/arm/mach-s3c2440/mach-smdk2440.c 命令覆盖原来的文件以支持4.3寸lcd
10、拷贝开发板配置文件 cp config_ok .config
11、配置内核 make menuconfig
-> Device Drivers
-> Graphics support
12、make uImage 编译内核
13、make modules 编译模块,以产生cfbcopyarea.ko,cfbfillrect.ko,cfbimgblt.ko
14、cd /home/book/tmp/lcd/4th_4.3 切换目录
15、make 编译产生lcd.ko
16、将cfbcopyarea.ko,cfbfillrect.ko,cfbimgblt.ko,lcd.ko,uImage传回pc,uImage地址在 /work/system/linux-2.6.22.6/arch/arm/boot/ 目录下
17、打开MobaXterm,点击左上角的 Session,在弹出的窗口左上角中选择 Serial
18、设置波特率为115200,com13为2440的usb串口信息输送端,Flow control(流控)为 None
19、接上以太接口,开启jz2440,三秒内空格输入进入uboot命令菜单
20、打开Tftpd32设置好目标文件位置,要设置好pc机和2440的网卡ip在同一网段。对于2440可以在bash中的/etc/init.d/rcS脚本文件输入,或者在uboot模式下执行set ipaddr xxx.xxx.xxx.xxx,再执行save保存
21、输入q退出菜单,在OpenJTAG中输入 tftpboot 30000000 uImage在0x30000000的地址存放uImage
22、在OpenJTAG中输入 bootm 30000000 启动新内核
23、ls /dev/fb* 发现没有该类设备是正常的
24、在bash中通过tftp命令接收PC文件
tftp -g -r cfbcopyarea.ko 169.254.205.207
tftp -g -r cfbfillrect.ko 169.254.205.207
tftp -g -r cfbimgblt.ko 169.254.205.207
tftp -g -r lcd.ko 169.254.205.207
25、装载各个模块
26、输入 echo MYGOD > /dev/tty1 观察到屏幕左上角显示MYGOD
27、输入 cat lcd.ko > /dev/fb0 观察到屏幕上半段花屏