如何在最新的Debian系统下使用BB-VIEW
发布网友
发布时间:2022-04-22 18:50
我来回答
共1个回答
热心网友
时间:2023-10-25 07:04
我想很多同学可能想知道如何让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 http冒号//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键来保存和退出。
重新启动即可!