我不是技术的生产者,我只是技术的搬运工
准备工作:
交叉编译环境:ubuntu12.04(不要用14.04的编时会出问题)
TFT型号:ili9325(2.4"或者28")
树莓派
面包板 跳线若干
这个驱动是以补丁的方式加入内核 然后编译
过程都是看的大神的:
以下是网址:
http://blog.csdn.net/jinzheng_2010/article/details/8676213
内核编译:http://blog.csdn.net/jinzheng_2010/article/details/8676213
按照以上网址的步骤来就可以了(在ubuntu上的操作均在root 权限下执行)
说几点:
如果用这个命令创建不了 的话 sudo mkdir /media/agu/SD
可用这一个命令: sudo mkdir -p /media/agu/SD
这一条中 你要把 路径替换成自己的
sudo cp ~/gitpool/raspberrypi/RpiTools/mkimage/kernel.img kernel_new.img
我的是把 ~/gitpool/raspberrypi/ 替换成 /home/ubuntu/rpi
这一个也是 cd ~/gitpool/raspberrypi/RPiFirameware/boot
替换为 cd /文件所在路径/PRiFirmware/boot
注意 如果提示 没有该文件或者目录 仔细查看 路径是否正确 书写是否正确
文件名称是否正确 大小写 书写遗漏 !!!
在树莓派复制 配置文件到 ubuntu上 解压时 如果提示 意外的 文件尾 时
可在ubuntu终端 输入以下命令
scp -p pi@树莓派IP:config.gz /内核文件路径
这样你就把配置文件 复制到了 内核文件 用以下命令
zcat config.gz > .config 解压 基本就没问题了
如果你在连接树莓派是出现以下情况
这是应为你之前连接过树莓派 在树莓派冲刷系统后 密匙 改变了 你需要输入以下命令
rm -r /root/.ssh/known_hosts
再次连接 就OK了
再说一下 怎么在配置内核是 判断 配置文件是否生效很简单:
如果在配置文件 system Type -----→ 这个选项里面出现的是下图这样的 就是在树莓派复制的配置文件未生效
如果生效 出现的是下图 所示的 可以看到 BCM2708 型号被选中了
以上是 编译内核所要注意的 基本就是这些 (如果你遇到麻烦了,我乐意替你解决,我也能力有限)
下面是给树莓派打入TFT 驱动补丁
具体步骤:
网址:http://www.eeboard.com/bbs/forum.php?mod=viewthread&tid=23487
补丁分析:http://blog.csdn.net/embbnux/article/details/17394793
关于补丁:
网址提供的是 3.6.y 内核的 但是我们要用的是最新的内核3.12.29+
所以要修改一下补丁文件 我把文件拆成了俩个
(为啥要用两个呢,因为我不会制作补丁,修改完我发现一个怎么都打不上,我就摘出来增加一个补丁文件就好了)
如果你想用别的型号的TFT驱动IC怎么办
(第一:你至少要了解你手中TFT的驱动方式(8080或者SPI),并且你可以通过树莓派GPIO驱动起来)
详见:http://tieba.baidu.com/p/3275255122?pid=56925597434&cid=0#56925597434
详见:http://tieba.baidu.com/p/3285267721?pid=57194282015&cid=0#57194282015
(第二:你只需要打完补丁之后把/内核路径/drivers/video/ili9325.c替换成你的型号对应驱动,注意如果你不想重新打补丁那么:ili9325.c文件名保留,里面的函数名称不要变,只修改初始化寄存器配置,横竖屏幕寄存器配置 写数据写地址的时序 ,其他的不要动,如果你有单片机基础 这不会很难。——这是我的思路我在尝试 不知道对不对,你有更好的方法非常感你 提出来 让我少走些弯路 嘿嘿)
补丁地址:http://pan.baidu.com/s/1kToSa27
补丁地址:http://pan.baidu.com/s/1kToSa27
注意TFT的RD引脚 不用的话 一点要接3.3V!!!!
先打补丁 再编译内核 要是直接在TFT显示的话 编译的时候 在make menuconfig里面把刚才说到的BCM2708 framebuffer support取消掉就可以了,不过就不支持HDMI了
关于补丁的修改
首先了解一下
http://blog.chinaunix.net/uid-26000296-id-3507646.html
我用的笨方法
比较 把补丁之前的文件和之后的文本比较 找出差别 然后 比较3.6和3.12 内核 需要修改的文本差别 根据差别 修改补丁文件
我用的文本比较工具 :TextDiff
`