5514浏览
查看: 5514|回复: 0

如何在最新的Debian系统下使用BB-VIEW

[复制链接]
我想很多同学可能想知道如何让BB-VIEW在安装了最新的Debian beta系统映像的element14 BeagleBone Black上工作。

比较麻烦的是需要对内核重新编译。如果不重新编译的话,屏幕显示不会有问题(红蓝对调很容易解决),但是触摸屏控制引脚和标准的TI 4线接口不一样。我尝试过为ti_am335x_tsc.c文件打补丁,这样就只会对DTS进行重新编译,但是还没有成功(我敢肯定是状态机位分配的问题)。不扯远了,下面开始讲操作步骤。

步骤一览:

1) 下载需要用到的文件
     a) Robert Nelson编译工具,用于编译BeagleBone内核
     b)针对Angstrom的BB-VIEW源代码
2) 创建默认内核
3) 为内核打补丁并快速重新编译
4) 将新内核复制到BeagleBone
5) 编辑xorg.conf文件,纠正红蓝对调问题
6) 尽情享受你刚刚节省下来的整整4天的时间J

现在正式开始:

我用的是Ubuntu 12.04 LTS 64位版本,在VirtualBox虚拟机中来编辑内核:
> mkdir bb-view
> cd bb-view

安装git:
> apt-get install git

本地克隆Robert Nelson的linux-dev项目。下载文件有点大,交叉编译器大概100Mb,内核源码大概700Mb:
> git clone https://github.com/RobertCNelson/linux-dev.git

进入新的linux-dev目录,然后选择符合Debian版本的branch/tag:
> cd linux-dev
> git checkout 3.8.13-bone37 -b tmp

现在我们需要创建基本的映像,这样就能植入BB-VIEW驱动目录。脚本会提示操作或需要安装的内容:
> ./build_kernel.sh

大约一个小时以后创建完毕(下面的内容需要下载Angstrom源代码)

为内核打补丁

从Angstrom源码提取两个文件:
> unzip angstrom-source.zip
> tar -zxf bb-black-kernel-3.8.13-bb-view.tar.bz2
> cp ./kernel/kernel/drivers/input/touchscreen/ti_am335x_tsc.c ~/bb-view/linux-dev/KERNEL/drivers/input/touchscreen/
> cp ./kernel/kernel/firmware/capes/BB-VIEW-LCD7-01-00A0.dts ~/bb-view/linux-dev/KERNEL/firmware/capes/

现在我们需要让编译器知道我们要添加固件:
> nano ~/bb-view/linux-dev/KERNEL/firmware/Makefile

将以下代码添加到第192行附近(按CTRL-C可以显示当前光标位置):
BB-VIEW-LCD7-01-00A0.dtbo \

不要忽略了后面的反斜杠,这很重要。然后按下CTRL-O、Enter和CTRL-X键来保存和退出。

回到linux-dev根目录:
> cd   ~/bb-view/linux-dev

然后执行重新创建内核的命令,这一步需要的时间不会很长:
> ./tools/rebuild.sh

将内核复制到element14 BeagleBone Black:

以下命令的前提条件是已经在BeagleBone上安装了Debian beta系统并且成功启动。
最简单的方法是从网上通过“scp”命令复制文件:
> scp   ~/bb-view/linux-dev/deploy/3.8.13-bone37.zImage   debian@192.168.7.2:/home/debian

把上面的debian替换成你在BeagleBone上的用户名,并且把192.168.7.2替换成BeagleBone的IP地址。
登录BeagleBone,然后将内核映像复制到启动分区:
> ssh debian@192.168.7.2
bbb>  sudo cp 3.8.13-bone37.zImage   /boot/uboot/zImage

在让LCD正常工作前还需要做一件事情。由于BB-VIEW没有EEPROM,所以我们需要在启动命令中屏蔽HDMI驱动,并强行加载BB-VIEW驱动:
bbb>  sudo  nano  /boot/uboot/uEnv.txt

找到“optargs”那一行,然后修改为:
optargs=capemgr.disable_partno=BB-BONELT-HDMI,BB-BONELT-HDMIN  capemgr.enable_partno=BB-VIEW-LCD7-01

注意前面的“#”已经删除了。否则EMMC被禁用,无法从emmc启动。
然后按下CTRL-O、Enter和CTRL-X键来保存和退出。
重新启动BeagleBone后,LCD就能工作了,但是蓝色和红色显示对调了。

修复红蓝色对调

这个问题是由于TI AM335x处理器在16位和24位视频模式切换时的错误造成的。要修复这个问题,需要首先找到显示屏的名称:
> ssh debian@192.168.7.2
bbb> cat  /var/log/Xorg.0.log  |  grep  screen

我的显示屏名称是“Builtin Default fbdev Screen 0”
现在编辑X配置文件:
bbb> sudo nano  /usr/share/X11/xorg.conf.d/10-evdev.conf

在文件末尾添加“Screen”代码段:
Section "Screen"
        Identifier "Builtin Default fbdev Screen 0"
        Monitor "Configured Monitor"
        Device "Configured Video Device"
        DefaultDepth 24
EndSection

然后按下CTRL-O、Enter和CTRL-X键来保存和退出。
重新启动即可!(更多信息请访问英蓓特官方网站)


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

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail