快速业务通道

Linux 的魅力: 开发 Nokia N800

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-01
牺牲一顿早餐为代价获得一台足够强大的 x86 机器(而 Linux 可免费下载).我的主机平台是 Kubuntu,但是似乎没有关系;我也使用 SuSE 实现过,我认为 maemo 网站上的人喜欢简单的 Debian.

Maemo 安装说明就足够了.先安装 scratchbox.使用提供的安装程序即可,尽管它的默认行为(即删除已经下载的所有文件以再次下载)不可理喻(也可以手动安装,但是我认为不必如此).

安装 Scratchbox 需要 root 访问权限,但是安装完之后使用 scratchbox 时不必拥有 root 访问权限.如果您使用提供的 maemo scratchbox 安装程序,则只需作为 root 用户使用您的用户名运行 /scratchbox/sbin/sbox_ctl start/scratchbox/sbin/sbox_adduser <user>.注销并再次登录,以便新的组成员(组 sbox)生效,如此即可.

然后再也不需要 root 访问权限.实际上,maemo SDK 安装程序(我使用的是 maemo-sdk-install_3.1.sh;新近的 3.2 更新是从 SDK 内部更新的)将不会作为 root 用户运行,只需拥有 scratchbox 访问的常规用户即可.系统管理员的负担减轻了.

实际上,我发现拥有在不必要的情况下不需要 root 权限的安装程序非常方便.在运行 maemo 安装程序之前,不必实际设置目标;请忽略警告您先运行 sb-menu 的消息(如果转移注意力,可能会在安装程序继续运行时错过它们).特别感谢 Freenode 的 #maemo 频道的朋友,他们让我确信该错误消息是无害的.

如果您以前从未使用过 scratchbox,则需要简要的介绍.历史上,交叉编译带来了许多挑战.最著名的是难以在目标环境中运行测试程序以及类似程序,如果它与主机环境不同,配置起来相当麻烦.

Scratchbox 以尽可能直接的方式解决了这个问题:在使用 CPU 仿真的本地环境中运行本地二进制文件.假设我的主机 CPU 速度大约是目标 CPU 速度的 8 倍,那么这是相当好的解决方案;节省开发时间能带来令人难以置信的好处.这是典型的技术进步例子:可以简单地忽略曾经难以克服的障碍.

Scratchbox 允许您拥有多个构建环境,您可以在其中搭配使用目标和主机二进制文件.如果在 x86 处理器上使用 ARM scratchbox,ARM 二进制文件就能神奇地进行工作,而 “cc” 创建 ARM 二进制文件.这相当酷.Nokia 可能通过该设备和其他类似的设备为其开发提供基金.

顺便提一下,如果过了一会儿您只收到晦涩的消息 “Scratchbox is not properly set up!”,那么可能需要启动它.请作为 root 用户,运行 /scratchbox/sbin/sbox_ctl start,应该就能工作.

如果在尝试停止系统之前,没有运行 sbox_ctl stop,则系统可能不会利落地关闭.如果您像我一样出于安装 scratchbox 和尝试安装 SDK 之类的不相干的原因重新引导系统,并且从未将系统设置为引导时运行 scratchbox,那么这可能是您意想不到的.

另一个常见的意外情况是 apt-get 在 scratchbox 中运行失败,不能解析 repository.maemo.org.要改正这个问题,请编辑 /scratchbox/etc/nsswitch.conf 并确保 “hosts:” 行中为 “dns”,而不是 “mdns”(注意这不同于 scratchbox 环境中的 nsswitch.conf).

熟悉的情形:实现 “hello, world!” 程序

第一步总是实现 “hello, world!” 程序.这不难,但是开始之前,选择一个目标.目标是一组相对于特定设备(N800)的设置和工具.对于典型的 scratchbox 环境,创建一个目标.Maemo 设置实际上创建了一对目标,顺理成章地命名为 SDK_X86 和 SDK_ARMEL.可以使用 sb-conf 命令在两者之间切换;例如,sb-conf select SDK_ARMEL 将选择 ARM 目标.

现在,分析代码:


清单 1. hello, world!


                

#include <stdio.h>



/* stop me if you''ve heard this one */

int

main(void) {

            printf("hello, world!n");

            return 0;

 }

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号