Beagleboard上运行ARM/MeeGo的整理
[2] Beagleboard上运行ARM/MeeGo的整理
[3] Beagleboard上运行ARM/MeeGo的整理
[4] Beagleboard上运行ARM/MeeGo的整理
QT演示
你可以运行qtdemo应用程序,它将给你一些简单的全屏GUI来启动demo.或者你也可以手动的启动位于/usr/lib/qt4/demos下的demo程序.他们中的一些程序需要很多的内存,所以安装swap内存是必须的.
启动MeeGo手持设备UX
由于PVR在启动时会被启用并且拥有了足够的虚拟内存,现在你可以重新启用/etc/sysconfig/uxlaunch路径下的MeeGo窗口管理器mcompositor.
在这一点上,我犯了一个愚蠢的错误:我仍然将TI 3D演示程序存储在/home/meego下.完整的MeeGo UX将会启用tracker来扫描/home/meego下的多媒体文件.大约有1GB左右的文件来自3D demos,这将使tracker在后台运行时一直占用100% CPU.为了避免发生这种情况,你需要确认/home/meego目录下的文件不会比示例图片文件多太多.我将包含3D示例程序的目录移到了/root目录下,但是它也有可能被移动到/home/meego的隐藏文件夹里(以.开头的文件夹).
现在重启电脑并且耐心等待.几分钟后你就可以看到MeeGo的UX了.
不幸的是目前还没有光标,但是在带触屏的情况下,这个UI还是可用的.当然,beagleboards的128MB内存还是不够用的并且在设备保持swap的情况下反应也是相当迟钝.
外围硬件设备
在这个装置上我已经测试了各种不同的外围设备,大部分设备都可以解决使用问题.
定制视频设定
你可以像通常一样通过内核命令行修改u-boot从而改变视频的设定.当前的MeeGo手持设备UX在设备上主要是使用800x480的屏幕分辨率.这个不能被标准内核的模式数据库所支持,需要进行一些简单的调整.
而且,一些显示器(比如我的)需要非常特别的显示时序.
以下的patch是添加和我的显示器(Toshiba LTA070B220F)的显示时序一样的800x480分辨率模式到内核模式数据库中.
如果你想要使用这个模式,只要下载文件 800x480.patch,然后将他置于内核编译目录的补丁目录(./patches)中,接着添加如下命令行在patch.sh的最后部分:
#dsp
# add local 800x480 patch
echo "Switch default display to 800x480"
patch -s -p1 < ${DIR}/patches/800x480.patch
echo "patch.sh ran successful"
这样就可以将一个800x480分辨率的视频模式添加到模式数据库中,如果你没有什么特殊的模式要求,这应该是一个比较好的方法.MeeGo的手持设备和平板的UX差不多都可以使用这个分辨率,总之,这样使用是行得通的.
为了使用这个分辨率,你需要在内核命令行(例如,在boot.cmd/boot.scr)中指定如'800x480-16@60'这样.
另一个达到修改这个分辨率的目的的方法是停止u-boot(在等待引导期间点击触屏),然后设置'dvimode'环境变量为'800x480-16@60'.从此以后,你都要在u-boot提示符界面中输入一下命令:
OMAP3 beagleboard.org # set dvimode 800x480-16@60
OMAP3 beagleboard.org # saveenv
相同地,这有可能减少在引导开始时的等待给变量'bootdelay'设置一个新值的时间.
USB hubs,麦和键盘
这些已经可以使用,无需配置.
蓝牙键盘
我的CSR蓝牙适配器在工具箱上可以使用.Hcitool可以很好地扫描到设备,通过hidd方式连接到蓝牙HID设备.这些都已经使用一个蓝牙键盘测试过了.
触屏
我的7英寸egalax触摸屏可以近乎完美得在工具箱上使用.它只是稍微有一点校准偏差.
最新的硬件抽象层驱动xorg可以给出输入配置文件来解决这个问题.将下列的内容放到root分区中的/etc/X11/xorg.conf.d/50-input-touch.conf文件里,以调节触屏到很好的状况:
Section "InputClass"
Identifier "evdev touchscreen catchall"
MatchIsTouchscreen "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
Option "Calibration" "80 1918 133 1863"
EndSection
这个配置会自动应用到所有在/dev/input/event*中存在映射的触屏设备.你可能不得不调整校准的值以适应你的设备.
当前的kickstart文件自动包含这个文件.如果你没有触摸屏,这个就用不到了.
以太网
一个D-Link DUB-E100以太网适配器工作在工具箱中,通过DHCP获得一个IP地址.在这个网络连接中,我可以确认zypper和包管理工具也可以使用."zypper up"命令成功得更新了一些包.
beagleboard XM的板载以太网卡(一个基于USB设备的SMSC95xx)也可以再工具箱中工作.
无线局域网
使用一个基于USB适配器的Ralink RT2501可以检测并扫描到网络.但是它不能通过DHCP提供一个地址.
音频
音频不能在beagleboard XM上使用.
音频在beagleboard revA, revB和revC上可以工作得很好,但是它缺省的是无声的.通过alsamixer工具可以将它启动. Alsamixer生成一些设定的控制台图形,但是不会为我展示连续的图像.我不得不使用xterm通过以太网登录的方式实现对alsamixer的实际控制.
你需要使用meego(而不是root)这个用户名登录并且启动alsamixer.你将看到一个简单的音量条.这是脉冲音频设定.如果它是静音的状态(在音量条的底部有'MM'的标示),你需要取消静音(按‘M’键).这时'MM'将会变成绿色的'00'.当然,如果能的话,你也可以使用光标增加音量到最大,
然后按'F6'键切换到omap3beagle设置.这是硬件的配置.你需要取消静音,然后至少按照以下条目增大音量:
DAC1 Analog
DAC1 Digital Course
DAC1 Digital Fine
Headset
HeadsetL Mixer AudioL1
HeadsetR Mixer AudioR1
输入以下命令将给你一段听得见的输出在耳机中:
aplay /usr/share/sounds/alsa/Rear_Center.wav
如果你听不到任何东西,可能需要通过alsamixer去调整omap3beagle设置.幸运的是这些设定在系统重启的时候将会自动地保存.你只需要调整一次就可以了.
制作快照
对你看到的东西满意吗?想要分享它吗?那就制作一个屏幕截图吧!这个不需要任何特定的软件.只要拷贝framebuffer的内容到一些文件中:
cp /dev/fb0 screenshot.raw
如果你是在16bits/pixel下使用800x480的显示尺寸,那么最后的文件将有一个精确地大小770048 bytes (800x480x2).在你的主机上使用ffmpeg将它转换成一些标准的图片格式比如png:
ffmpeg -vcodec rawvideo -f rawvideo -pix_fmt rgb565 -s 800x480 -i screenshot.raw -f image2 -vcodec png screenshot.png
wiki原文:http://wiki.meego.com/ARM/Meego_on_Beagleboard_from_scratch