移植LCD、触摸屏、USB驱动 到内核3.4.2
2018-01-28 18:55
796 查看
http://blog.csdn.net/tpmamba/article/details/78870434
移植LCD
上传二期编写好的lcd驱动文件及其Makefile,修改其Makefile,编译后出现如图错误提示。—修改Makefile
—错误提示
根据错误提示,修改驱动文件后,重新编译,编译成功
—修改驱动
—编译成功
测试驱动
3.1 拷贝ko文件到根文件系统目录里
cp lcd.ko /work/nfs_root/fs_mini_mdev_new
3.2 配置(make menuconifg)3.4.2内核,将内核自带的LCD驱动配置为模块,重新编译内核
—配置内核
-> Device Drivers -> Graphics support -> Support for frame buffer devices <M> S3C2410 LCD framebuffer support1
2
3
4
5
—编译内核,编译模块,并将内核重命名为uImage_3.4.2_nolcd,并将/drivers/video目录下的所需的ko文件拷贝到根文件系统目录下
make uImage cp arch/arm/boot/uImage /work/nfs_root/uImage_3.4.2_nolcd //make modules //cd drivers/video //cp cfb*.ko /work/nfs_root/fs_mini_mdev_new1
2
3
4
5
6
7
3.3 修改etc/inittab,加上tty1::askfirst:-/bin/sh后,nfs下载新内核(uImage_3.4.2_nolcd),并用其启动
修改etc/inittab1
2
nfs 30000000 192.168.0.3:/work/nfs_root/uImage_3.4.2_nolcd bootm 300000001
2
3
3.4 加载驱动,屏幕上出现一行文字(如图1);在串口上输入echo tianpeng,hello! > /dev/tty1,屏幕上出现tianpeng,hello!(如图2)
—图1
—图2
移植符合输入子系统的按键驱动(8th_ buttons_ input)
上传8th_ buttons_ input整个文件夹,修改其下的Makefile,编译后出现如图错误提示。—修改Makefile
—错误提示
根据错误提示,修改驱动文件后,重新编译,编译成功
—修改驱动
—编译成功
测试驱动
3.1 拷贝ko文件
cp buttons.ko /work/nfs_root/fs_mini_mdev_new1
2
3.2 在新内核(uImage_3.4.2_nolcd)下,并在加载了上节的lcd驱动后,加载驱动,依次按下按键S2,S3,S4后,屏幕上会依次出现l,s,回车;若在串口上输入exec 0 < /dev/tty1(将标准输入重定位到/dev/tty1),依次按下按键S2,S3,S4后,屏幕上会显示和secureCRT上一样的效果,将整个根文件系统目录显示出来(如图)
—测试
—屏幕图片
{IRQ_EINT0, "S2", S3C2410_GPF(0), KEY_L}, {IRQ_EINT2, "S3", S3C2410_GPF(2), KEY_S}, {IRQ_EINT11, "S4", S3C2410_GPG(3), KEY_ENTER}, {IRQ_EINT19, "S5", S3C2410_GPG(11), KEY_LEFTSHIFT}
移植触摸屏驱动
上传11th_ ts整个文件夹,修改其下的Makefile,编译后出现如图错误提示。—修改Makefile
—错误提示
根据错误提示,修改驱动文件后,重新编译,编译成功
—修改驱动
—编译成功
测试驱动(1)
3.1 拷贝编译成功的ko文件
cp ts.ko /work/nfs_root/fs_mini_mdev_new
3.2 用tslib测试:将tslib-1.4.tar.gz复制到11th_ts文件夹下解压、编译、安装
编译: tar xzf tslib-1.4.tar.gz cd tslib ./autogen.sh mkdir tmp echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache ./configure --host=arm-linux --cache-file=arm-linux.cache --prefix=$(pwd)/tmp1
2
3
4
5
6
7
8
9
安装:make make install 进入到tmp文件夹下,将文件复制到文件系统根目录下: cd tmp/ cp * -rf /work/nfs_root/fs_mini_mdev_new1
2
3
4
5
6
7
3.3 加载触摸屏驱动
insmod ts.ko1
2
3.3 修改 /etc/ts.conf第1行(去掉#号和第一个空格):
# module_raw input 改为: module_raw input1
2
3
4
3.4 在串口上输入:这里event1是加载串口查看哪个是触摸屏设备(图1)
export TSLIB_TSDEVICE=/dev/event1 export TSLIB_CALIBFILE=/etc/pointercal export TSLIB_CONFFILE=/etc/ts.conf export TSLIB_PLUGINDIR=/lib/ts export TSLIB_CONSOLEDEVICE=none export TSLIB_FBDEVICE=/dev/fb01
2
3
4
5
6
7
3.5 校正(ts_calibrate),当屏幕出现校正点(图1),点击后,串口提示错误(图2)
—屏幕图
—错误提示
解决错误:在百问网论坛上,搜索tslib,搜到如图帖子,找到解决方法
—帖子
—修改arm交叉编译工具中的头文件(进入工具链目录,搜索EV_VERSION,找到需要修改的头文件,需和内核中头文件(include/linux/input.h)中定义保持一致)
echo $PATH cd /usr/local/arm/4.3.2 grep "EV_VERSION" * -nR sudo chmod +w arm-none-linux-gnueabi/libc/usr/include/linux/input.h sudo vi arm-none-linux-gnueabi/libc/usr/include/linux/input.h1
2
3
4
5
6
7
—修改
—重新编译tslib
cd /work/drivers_and_test_new/11th_ts/tslib make clean make make install cd tmp/ cp * -rf /work/nfs_root/fs_mini_mdev_new1
2
3
4
5
6
7
8
再次测试驱动
5.1 修改 /etc/ts.conf第1行(去掉#号和第一个空格):
# module_raw input 改为: module_raw input1
2
3
4
5.2 测试
ts_calibrate # 校正
ts_test # 进入tslib test program
ts_print # 打印坐标(真实坐标)
ts_print_raw # 打印原始坐标(电压值)
—ts_calibrate
—ts_test
—ts_print
—ts_print_raw
移植USB驱动(12th_usb)
上传12th_usb整个文件夹,修改其下的Makefile,编译后出现如图错误提示。—修改Makefile
—错误提示
根据错误提示,修改驱动文件后,重新编译,编译成功并拷贝文件
—根据提示,找到所在行,找到函数定义文件,继而找到新内核提供的函数,修改驱动
—编译成功
—拷贝文件
cp usbmouse_as_key.ko /work/nfs_root/fs_mini_mdev_new1
2
测试驱动(这里仅需lcd驱动配合即可)
3.1 加载驱动、插入鼠标
3.2 点击左键(l)–>点击右键(s)–>点击中键(Enter)
相关文章推荐
- 【移植驱动到Linux3.4.2内核之二】LCD,触摸屏,按键,USB等驱动程序的移植心得总结
- 移植Linux3.4.2版本内核到mini2440(二)--添加网卡、UVC摄像头、LCD驱动
- FL2440移植LINUX-3.4.2 -- 内核自带的触摸屏驱动移植
- linux-2.6.26.5内核的 lcd驱动移植 lcd 触摸屏移植 tslib-1.4移植 (转)
- FL2440移植LINUX-3.4.2 (七)--驱动移植LCD(移植自己写的和移植内核自带的)
- [ARM-LINUX]移植2.6.31.12内核到立宇泰ARMSYS2440开发板之LCD驱动+触摸屏驱动
- linux-2.6.26.5内核的 lcd驱动移植 lcd 触摸屏移植 tslib-1.4移植
- s3c2440 LCD驱动,USB驱动,触摸屏以及ADC驱动移植
- linux-2.6.26.5内核的 lcd驱动移植 lcd 触摸屏移植 tslib-1.4移植
- 移植Linux3.4.2版本内核到mini2440(二)--添加网卡、UVC摄像头、LCD驱动
- PART1 linux-2.6.26.5内核的 lcd驱动移植 lcd 触摸屏移植 tslib-1.4移植 (转)
- linux-3.6.6重新移植lcd及触摸屏驱动
- 【引用】Linux-2.6.32.2内核在mini2440上的移植(六)---添加LCD背光驱动
- 【TINY4412】LINUX移植笔记:(23)设备树LCD触摸屏驱动
- 05-S3C2440学习之内核(移植)linux3.4.2移植(4)支持LED驱动、按键驱动
- 基于tiny210v2的linux-3.9.6内核驱动移植3:LCD移植
- linux-2.6.35内核移植—LCD驱动的添加
- 【移植驱动到Linux3.4.2内核之一】移植DM9000C网卡驱动
- Linux-2.6.32.2内核在mini2440上的移植(六)---添加LCD背光驱动
- linux-2.6.35内核移植—USB驱动的添加