QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1752|回复: 1

基于Linux的Nokia 770: 几点开发建议

[复制链接]
发表于 2006-12-11 20:54:01 | 显示全部楼层 |阅读模式
基于Linux的Nokia 770: 几点开发建议

级别: 初级

Peter Seebach ([email protected]), 自由作家

2006年11月22日

原文: Linux on board: Linux powers Nokia 770
译: 赵珂 cn.zhaoke.com
http://blog.zhaoke.com/32.html

对linux爱好者来说, 基于linux的Nokia 770(Internet Tablet, 网络平板电脑)是一个非常吸引人的小型设备. 虽然它缺少很多个人信息管理(PIM)方面的应用程序(plamtop上的PIM程序非常丰富). 近来Nokia加大770的开发力度, 使其成为爱好者和专业嵌入式系统开发人员的工具.


Nokia 770推出时候受到很多linux爱好者的青睐. 不像以往的Zaurus, Pocket PC或Palm系统, 770不提供个人信息管理程序. 实际上, 它也不提供通常PDA的功能. 它主要定位于”网络平板电脑(Internet Tablet)”, 提供Web浏览器和电子邮件客户端程序.

Nokia最近升级了770的系统软件, 用户可以更方便的使用设备. 过去的版本用户必须在研发(R&D)模式下获得root权限. 现在1.05版本取消了这个限制.

Nokia 770有两个存储设备, 一个是内部闪存(使用JFFS2文件系统), 另一个是可插拔存储卡(使用FAT文件系统). 770的连接功能很有意思. 通过USB连接的设备会被当做一个大容量存储设备. 770的内部存储不使用这种方式. 替代的是, 770把可插拔存储卡做为USB存储设备, 这样可以更方便的传输文件. 我们也可以方便卸载存储卡, 从而更好的保护数据. 这对如何访问设备上的文件来说是一个很好的解决办法.

设备并不是在任何情况下都需要很多自定义的配置. 我们可以打开蓝牙电话或Wi-Fi网络, 也可以自动定义一些较少的配置. 基于linux的设备使用自动网络配置是一个不错的办法.

安装概览

770使用了BusyBox工具. 启动脚本是一个十分标准的Debian脚本, 有完整的帮助文件. 令人感兴趣部分是用户接口和开发工具, 而这些都是Zaurus相对粗糙的地方. 在开发人员支持方面, 770提供了maemo.org网站, 内容全面丰富. (见资源部分的网站链接.)

下面是770与以往基于linux设备不同的地方: 开发人员支持更加主动, 有更多参与机会. 770不是所有的地方都做的很好(web浏览方面是一个例外). 不过, Nokia正在挖掘开发社区的潜力. 开发工具定位于专业爱好者, 而不仅仅是商业开发人员. 开发工具主要用于加载新的ROM镜像, 设置特别的设备标志(比如研发模式). 我们可以从770网站下载最新的开发工具包.

770吸引了很多开发项目. 比如, 和许多tablet或PDA设备一样, 770在文本输入方面有着明显的缺点: 即使你很喜欢键盘或手写识别, 这些都会大大消耗屏幕寿命, 特别对一个价格不菲的4英寸屏幕. 而现在, 770爱好者可以使用蓝牙或USB键盘. (见右边栏目了解更多信息)

关于USB键盘的支持

Nokia 770对USB键盘的支持非常吸引人, 因为它主要是一个硬件设备. 问题实质在物理层上. 770的USB硬件有一个用于下游的设备接口, 接口仅提供5伏特的电压. 当然这里也存在软件的问题: 机器需配置成USB主模式, 而非USB设备模式. 我们需要用到flasher工具. 奇怪的是, Nokia主要提供Windows程序下载, flasher工具却只提供Mac OS X和Linux程序.

我发现了一个给USB连接增加5伏特电压的办法, 请参考资源栏目的参考链接.

设备访问

过去的770版本, 我们必须先使用flasher工具把设备切换到研发模式, 然后运行gainroot脚本.

列表1. gainroot脚本
#!/bin/sh -e
trap exit SIGHUP SIGINT SIGTERM
PATH=/bin:/usr/bin:/sbin:/usr/sbin
MODE=`/usr/sbin/chroot /mnt/initfs cal-tool –get-rd-mode`
if [ x$MODE = xenabled ]
then
echo “Root shell enabled”
/bin/sh
else
echo “Enable RD mode if you want to break your device”
fi

缺省的sudoers文件允许任何人通过sudo运行上面脚本. 如果你的770在研发模式下运行, 你需要打开一个 shell; 否则, 你将得到很多警告提示.

最新的版本提供了一些更方便的选项: 我们可通过ssh使用root. 首先需下载一个第三方的dropbear软件包, 然后通过ssh成为root用户, 口令输入为rootme. 登陆后, root口令需要修改. 如果你想通过安装ssh服务器来修改root口令. 这样太费时间. 最好的解决办法是设置用户口令, 配置/etc/suders文件 , 然后运行password -l root完全禁止root登陆.

说句题外话, 一些厂商过于消减和保护系统, 向客户提供最小安装的linux系统, Nokia险些就没有提供编译器. 这样的设备在市场上不是主要的消费产品, 仅仅是一个玩具. 而我们真正需要的是一个有着完整功能的小型设备.

桌面导航

770的安装不同于嵌入式系统或成熟的桌面linux系统. 过去的版本提供系统镜像文件, 安装后的文件(安装后的系统镜像文件)不受软件包管理系统的控制. 我仔细观察了最新的发行版, 软件包管理器提供900个软件包, 更多的信息见列表2.

列表2. 软件列表开始部分
# dpkg -l
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
||/ Name Version Description
+++-==============-==============-============================================
ii adduser 3.51 Add and remove users and groups
ii apt 0.6.42.3osso13 Advanced front-end for dpkg
ii archtunjo 0.0.8-4 the D-BUS wrapper for games
ii autoipd 0.9.6-1osso9 Autoipd from Howl
ii base-files 3.1.osso2 Debian base system miscellaneous files
ii base-passwd 3.5.7.osso1 Debian base system master password and group
ii bluez-utils 2.25-cvs200605 Bluetooth tools and daemons

现在系统提供了更复杂的安装设置, 你可能需要安装其它的程序 — 我们都不希望很快就没有了存储空间. 所以一些程序最好放在可移动的存储盘而不是主存中.

另外一些极少使用的程序可以考虑从现有系统中删除或在系统安装时不予选择. 比如, glibc.sh脚本用于在AMD64处理器上报告glibc的兼容情况, 无疑该脚本在770上没有任何作用(770使用IBM的CELL处理器, glibc.sh还可用于ARM系统, 内核版本需在2.4或更高的版本, 2.6.16内核不存在任何问题). 其它系统也存在这样的程序. 毫无疑问我们可以删除这些程序.

开发

770软件开发环境部分是全新的, 虽然终端用户不用关心这些. 系统缺省不提供开发工具包. 大概在3年前, 我为Sharp Zaurus开发了一个交叉编译工具(见下面资源栏目链接). 770使用了一个新的交叉编译工具叫做ScratchBox, 该软件由Nokia开发. 这是一个实质性的提高, ScratchBox为目标系统的二进制程序运行(模拟)提供了交叉开发环境. 这样一来那些倍受争论, 疑惑和不严谨的可移植测试程序也就派不上用场了. 而且机器系统的性能也会提高很多(比如, 编译程序的执行效率).

这些工具仍在开发之中, 逐渐会变得更加稳定, 具有更多功能. 而且这也会影响到其它不同系统的的工具软件开发. 更重要的是, 一个好的交叉编译环境可以使较少内存或CPU的机器做更大软件的编译工作.

必然的比较

770从Zaurus身上学到了教训. 上面说到770缺少物理键盘的支持, 不过这已经吸引了很多来自外部社区开发人员的共同努力. 更令人关注的是可用内存; 770比以往设备有了更多的内存, 程序可以更轻松的运行, 甚至一个小容量的额外内存都会很有帮助. 另外, 全屏视屏回放也是770很不错的一个功能.

770没有一些PDA设备的扩展选项, 比如CompatFlash和安全数字卡插槽. 770提供了单独的SD卡插槽, 无可否认这是一个很实用的选项. 另外, 很少的PDA设备支持USB主设备模式. 如果你花费一些时间, 770可以使用USB硬盘.

由于770只有手掌般大小, 770可与不同的palmtop设备进行比较. 770不是PDA, 它是一个可上网的小型设备. 内置Opera Web浏览器, 显然是为手掌设备而设计. 它没有PDA的PIM(个人信息管理)程序. 但是许多PDA大小的设备都主要用于其它功能, 如web和收发电子邮件. 大多情况下, 770都能好的工作, 而且支持红外键盘.

Nokia在770上已做了大量的工作和思考, 目标是为爱好者和黑客来设计一个十分友好的互连网小型设备. 虽然缺省安装不提供任何类型的shell; 与Zaurus不同的是, 当前的桌面接口更像是一个简单的连网kiosk, 而不是一个桌面工作站. 与Tivo的相同的是, 你在使用770的时候不用知道什么是linux系统. 与Tivo不同是, 你可以通过linux来添加自己需要的功能.

展望未来?

在写这篇文章的过程中, 我阅读了大量有关770的评论, 我的印象是很多人都不清楚770是什么. 比如: 很多人都想拥有一个基于平板电脑的Web浏览器, 但是都不知道用它来做什么.

770是一个方便的web搜索工具, 提供Wi-Fi或蓝牙功能. 你也可以用于其它地方. 比如, 做为一个无线嗅探器.

770有很多不足之处, Nokia做了一些重要的研究, 他们开发了一个完整, 全新的交叉编译程序. 友好的开发环境吸引了很多黑客. 他们提交反馈和补丁来改进开发环境. 虽然每一件事情并不是都有意义, 但无疑770给linux嵌入开发领域带来了贡献. 而且我们会看到未来基于linux的设备会越来越便宜, 性能越来越好.

参考资料

学习
您可以参阅本文在 developerWorks 全球站点上的 英文原文 。
“交叉开发环境介绍“(Linux设备, 2003年10月), Peter讨论了一些有关在Zaurus上建立交叉编译环境的过程.
阅读”Zaurus: 嵌入式linux设备的先驱“(devloperWorks, 2005年报12月)了解基于linux的Sharp Zaurus.
“Maemo 2.1 教程“大概是学习如何在Nokia 770上开发的起点
一篇博客文章”USB电力 ‘injector注射器’: USB主机模式” 介绍了如何为Nokia 770 USB端口增加电压. 作者不对任何损坏付责.
随时关注 developerWorks 技术事件和网络广播.

获得产品和技术
访问Nokia 770 Internet Tablet主页学习更多知识
订购免费的 SEK for Linux,这有两张 DVD,包括最新的 IBM for Linux 的试用版软件,包括 DB2®、Lotus®、Rational®、Tivoli® 和 WebSphere®.
使用 IBM 试用软件 构建您的下一个 Linux 开发项目,这些软件可以从 developerWorks 上直接下载.

讨论
通过参与 developerWorks blogs 加入 developerWorks 社区.

关于作者
Peter Seebach 有多年使用计算机的经验,已经逐渐变成了计算机高手. 但是他仍然不知道为什么需要如此频繁地清理鼠标.

备注:
转载请保持文章完整性, 欢迎交流.
发表于 2006-12-11 22:29:19 | 显示全部楼层
原来是一帖多发,到处乱发……………
不相关的版面楼主就不要发了。
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-22 14:18 , Processed in 0.034977 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

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