树莓派论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 12716|回复: 7
收起左侧

Raspberry Pi 增加TFT显示屏

[复制链接]
发表于 2013-3-27 16:22:33 | 显示全部楼层 |阅读模式
   The Raspberry Pi Foundation是英国一个小型的慈善组织,成立的宗旨在于推广科技,而非以销售技术来营利。
   
Raspberry Pi是一款基于Linux系统的个人电脑,配备一枚700MHz的处理器,256内存,支持SD卡和Ethernet,拥有两个USB接口,以及 HDMI和RCA输出支持。

    有消息称,虽然Raspberry Pi看起来非常的迷你——只有一张信用卡大小,但是它能够运行像《雷神之锤三:竞技场》这样的游戏和进行1080p视频的播放。但是以这次接TFT屏试用结果看,我觉得至少SPI是纯属扯J8蛋,可能HDMI速度快点,但是就以那编译内核的速度来看,并不乐观。

    在一老外网站上看到使用Raspberry Pi改成一小街机
,正好想要加个TFT屏,以后调试什么的方便点。



硬件:Raspberry Pi、ili9325 TFT显示屏
软件:重新编译3.6的内核
原理:使用SPI通讯的方式,把屏幕内容写到新增的framebuffer设备。

硬件部分:使用ili9325的tft屏,首先跳线设置为8bit传输数据,背面有个小贴片电阻,R1R2R3R4,默认在R2上是16bit,我们把它改到R1上。然后如下图连接硬件



软件部分:
    建议使用8G或以上的SD卡,img写完后,先接上串口,方法看这里http://www.blogjava.net/baicker/archive/2012/08/10/385239.html(如果有HDMI或者AV接口的显示设备,请无视),第一次启动会要求一些基本配置,运行一下expand-rootfs,否则空间不够,建议开启ssh,结束后重启,会等很长一段时间才能完全启动完毕。

info            Information about this tool
expand-rootfs        Expand root partition to fill SD card
overscan        Change overscan
configure-keyboard    Set keyboard layout
change_pass        Change password for ‘pi’ user
change_locale        Set locale
change_timezone         Set timezone
memory_split        Change memory split
ssh            Enable or disable ssh server
finish            Finish config and don’t start raspi-config at boot
<Ok>                        <Exit>


如果想再次配置,执行:raspi-config

下一步,手动配置IP地址
编辑文件/etc/network/interfaces:
sudo vi /etc/network/interfaces
并用下面的行来替换有关eth0的行:
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.9
gateway 192.168.1.254
netmask 255.255.255.0
#network 192.168.1.0
#broadcast 192.168.1.255
将上面的ip地址等信息换成你自己就可以了.用下面的命令使网络设置生效:
sudo /etc/init.d/networking restart
启动网络后,就可以用ssh进行连接配置,GPIO口最终会给TFT屏接线用。
sudo apt-get updatesudo apt-get -y dist-upgradesudo apt-get -y install gcc make
网速实在慢,可以使用代理,在 /etc/apt/apt.conf 加入:
Acquire::http:roxy "http://user:passwd@proxyserver:port";
然后apt-get update



时间长的话,建议到后台执行:nohup sudo apt-get update &
这样就不怕ssh掉了,查看输出只要看一下nohup.out文件即可:tail -f nohup.out

编译内核部分参考了这里http://elinux.org/RPi_Kernel_Compilation

(其实最终还是使用另外的机器ubuntu交叉编译的,Raspberry Pi实在太太太慢了)
下载源码包:https://github.com/raspberrypi/linux/archive/rpi-3.6.y.tar.gz
tar zxvf rpi-3.6.y.tar.gz
cd到源码目录
patch -p0 < ili9325_gpio_driver_rpi.diff

make mrproper 去先删除之前编译所生成的文件和配置文件,备份文件等sudo zcat /proc/config.gz > .config 保存当前内核配置sudo make oldconfig 配置内核相关选项

#make config(基于文本的最为传统的配置界面,不推荐使用)
#make menuconfig(基于文本选单的配置界面,字符终端下推荐使用)
#make xconfig(基于图形窗口模式的配置界面,Xwindow下推荐使用)
#make oldconfig(如果只想在原来内核配置的基础上修改一些小地方,会省去不少麻烦)


过程中任何错误,缺什么apt-get什么,我记得好像有个sudo apt-get install libncurses-dev

  选择相应的配置时,有三种选择,它们分别代表的含义如下:
Y--将该功能编译进内核
N--不将该功能编译进内核
M--将该功能编译成可以在需要时动态插入到内核中的模块








sudo make menuconfig  图形界面的,友好一点





完了最后make一下,这个在Raspberry Pi上做的话,你会吐血的,我最终还是不得不选择了在我的台式机上编译
以下操作在我的台式机ubuntu执行

make ARCH=arm CROSS_COMPILE=<your_compiler>
//多次编译的话,make clean一下sudo ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- make menuconfigsudo make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j 4我的台式机4核,加了个-j参数,会快一点。
cd ~
wget https://github.com/raspberrypi/tools/archive/master.tar.gz
tar zxvf master.tar.gz
cd tools-master/mkimage
./imagetool-uncompressed.py <your_kernel_build_directory>/arch/arm/boot/zImage

然后把当前目录生成的kernel.img用sftp替换掉Raspberry Pi的/boot目录下的kernel.img文件,

生成新的modules
ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- make modules_install INSTALL_MOD_PATH=<modules_path>
在你指定的目录下,把modules和firmware目录覆盖到Raspberry Pi对应的/lib目录


wget https://github.com/raspberrypi/firmware/archive/next.tar.gz
tar zxvf next.tar.gz
把boot目录下的以下文件替换掉Raspberry Pi的/boot目录下对应文件
  • bootcode.bin
  • fixup.dat
  • start.elf

在Raspberry Pi上执行arm-none-linux-gnueabi-gcc -v 2>&1 | grep hard如果打印内容出现--with-float=hard,复制hardfp/opt/vc到Raspberry Pi的/opt目录下否则,复制opt/vc目录到Raspberry Pi的/opt目录下,我的使用后者。重启,你会看到显示屏亮了一下,然后就黑屏了,说明初始化没问题,
此时你会看到两个framebuffer,ls /dev/fb*里面会有fb0和fb1,fb0是默认的显示设备,fb1是我们接的TFT显示屏,可以尝试cat /dev/urandom > /dev/fb1如果出现花瓶噪点,说明软硬件都没问题了。
可以使用以下命令,让/dev/fb1播放mp4mplayer -v -vo fbdev:/dev/fb1 ~/test.mp4速度很令人蛋疼(如果你有的话)
如果要默认使用tft显示,在内核编译的时候,把BCM2708去掉即可,重启后tft就变成/dev/fb0了。
配置console字体可使用:sudo dpkg-reconfigure console-setup





回复

使用道具 举报

发表于 2013-3-27 23:10:40 | 显示全部楼层
树老大今天给力了!
回复 支持 反对

使用道具 举报

发表于 2013-4-2 10:19:19 | 显示全部楼层
大树,你的屏幕哪儿买的,分辨率不错
回复 支持 反对

使用道具 举报

发表于 2013-4-10 22:25:13 | 显示全部楼层
顶+收藏。
回复 支持 反对

使用道具 举报

发表于 2013-4-16 15:13:33 | 显示全部楼层
这个真是牛B啊。
我有3个旧手机,不知道能不能也接上树莓派做显示器使用?
回复 支持 反对

使用道具 举报

发表于 2013-5-8 16:43:08 | 显示全部楼层
太棒了 效果很好啊
回复 支持 反对

使用道具 举报

发表于 2013-5-16 17:18:47 | 显示全部楼层
请问树老大,那个屏哪买的,求链接
回复 支持 反对

使用道具 举报

发表于 2014-8-24 13:46:23 | 显示全部楼层
本帖最后由 historyme 于 2014-8-24 13:50 编辑

copy文章都不注明,哎!
文章出处:http://www.blogjava.net/baicker/archive/2012/12/18/392829.html
相关内容:http://blog.csdn.net/embbnux/article/details/17394793
http://spritesmods.com/?art=rpi_arcade&page=2
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|树莓派论坛 ( 粤ICP备15075382号-1  

GMT+8, 2024-11-25 20:54 , Processed in 1.187500 second(s), 28 queries , Gzip On.

Powered by Shumeipai.net! X3.2

© 2001-2015 树莓派论坛安全联盟

快速回复 返回顶部 返回列表