原创文章,转载请注明出处,谢谢。http://ganquan.org
本文链接http://ganquan.org/blog/2009/12/maemo-dev/
看着诺基亚N900哈喇子流了一键盘,继续发挥穷鬼爱折腾的优良作风,用模拟器体验一下Maemo 5。
一、Maemo是什么?Maemo的特点。
Maemo是诺基亚推出的基于Linux的下一代智能手机操作系统。Maemo并不是刚出炉的新东西,几年前诺基亚就一直在搞了,现在的最新版系统是Maemo 5,诺基亚前段时间刚发布的N900使用的就是Maemo 5系统。根据最新消息,诺基亚将会逐步让塞班淡出智能机,将来的N系列应该都是采用Maemo系统。在未来的主流智能机市场上,Maemo,Android和iPhone到底谁能再现塞班当年的风光?
Maemo有什么特点呢?如果用一句话来描述Maemo,可以说Maemo就是把桌面版的Debian移植到了arm平台。
先看看Maemo的结构是什么样子的:

如你所见,Maemo把开源社区的精华都吸收了:从底至顶来看,Linux内核,GNU的各种库,Debian的包管理系统(最方便,最成熟,最可靠的包管理系统),D-BUS,SQLite,GNOME都融入到了Maemo中。从这个系统构架来看,Maemo的未来应该是一个如同Debian一样强大的系统。我在以前的日志里面说Android就是硬件通吃的Linux先生与无视平台的Java小姐生出来的怪物,这个妖怪异常强大。很容易就会想到Maemo是否能超越Android,其实我感觉Maemo和Android不是超越的关系,因为各自的定位不同。就我目前的了解和理解来看,Android还是比较传统的手机操作系统(虽然它被移植到了各种设备,但这要归功于Linux的优秀和Android的构架出色),至少它是以手机操作系统的身份走向大众的,而Maemo则定位于带通讯功能的MID系统,实现桌面PC到口袋终端的过渡。
Maemo几乎是桌面系统的构架,使得现有的桌面软件移植到Maemo是相当容易的,事实上现在已经有不少Linux桌面软件都移植到了Maemo。另外,Maemo的应用开发采用是C/C++语言,可以直接用gtk开发,这样的优势可以肯定将来这个系统的应用数量是不用发愁的。
二、安装Maemo的开发环境
Android有模拟器给我这样的没有真机的穷鬼过一把干瘾,至少能真实看到这个系统是啥样(这就是传说中的眼淫?)。Maemo也不例外,但是安装过程比Android要麻烦一些。
Maemo基本上就是一个Debian,Nokia官方也只提供了Debian的开发环境(长见识了,原来Nokia也用Debian)。
1.安装xserver-xephyr
xserver-xephyr是一个X server,她能够让你在一个运行中X server里面再运行一个X server,用来模拟设备的DISPLAY。
ganquan@debian:~$ sudo aptitude install xserver-xephyr
2.下载SDK的安装脚本
需要下载两个安装脚本,分别用来安装scrachbox和SDK,scratchbox是开发需要用到的交叉编译工具。
ganquan@debian:~$ wget http://repository.maemo.org/unstable/5.0beta2/maemo-scratchbox-install_5.0beta2.sh
http://repository.maemo.org/unstable/5.0beta2/maemo-sdk-install_5.0beta2.sh
2.1安装scrachbox
ganquan@debian:~$ chmod a+x ./maemo-scratchbox-install_5.0beta2.sh
ganquan@debian:~$ sudo ./maemo-scratchbox-install_5.0beta2.sh -u ganquan
注意,scrachbox在安装过程中会创建一个sbox组,上面的-u参数的后接的用户名就是把ganquan这个用户加入到这个组中。
另外,这个安装脚本在安装之前会自动检查一些环境需求,如果出错就根据相应的提示来解决,都是小问题,很容易解决。
我在安装过程中,遇到了如下问题:
Host kernel VDSO support… no
E: Host kernel VDSO support is incompatible with scratchbox.
E: You can disable VDSO support for this session with
E: ‘echo 0 > /proc/sys/vm/vdso_enabled’ as root
E: For a permanent solution you may add ‘vm.vdso_enabled = 0′
E: to /etc/sysctl.conf and run ‘sysctl -p’ as root
根据提示,在/etc/sysctl.conf中写入vm.vdso_enable = 0,然后用root权限执行sysctl -p即可,再次运行安装脚本,顺利安装完成。
安装需要去源里面下载东西,猜猜有多大,给你看看喽:
Need to get 439MB of archives.
After this operation, 1361MB of additional disk space will be used.
网速慢的话就去喝杯咖啡再来看看。
scratch在debian发行版是默认安装在/目录下的,如果你不想装在这里,就给脚本加上-s path参数,path就是你想安装的地方。
2.2装好了,把当前的会话切到新的组里面去,执行下面的命令即可
ganquan@debian:~$ newgrp sbox
3.接下来装SDK
ganquan@debian:~$ sh maemo-sdk-install_5.0beta2.sh
装好SDK之后就可以登到scratchbox去看看了
ganquan@debian:~$ /scratchbox/login
登录进去之后,你看到的PS1应该长这个模样:
ganquan@debian:~$ /scratchbox/login
Welcome to Scratchbox, the cross-compilation toolkit!
Use ‘sb-menu’ to change your compilation target.
See /scratchbox/doc/ for documentation.
[sbox-FREMANTLE_X86: ~] >
然后去这个链接获取诺基亚的源地址,把你得到的源地址加入到/etc/apt/sources.list,注意,不是加入你的Debian的源列表中,而是加入到从maemo的源列表。也就是上面login之后,vi /etc/apt/sources.list,然后加入你得到的地址。
加入源之后在maemo中执行更新源,安装nokia相关的一些工具、软件包:
[sbox-FREMANTLE_X86: ~] > apt-get update
[sbox-FREMANTLE_X86: ~] > fakeroot apt-get install nokia-binaries
这里又要下载很多东西。。。
4.终于装好了,启动模拟器,一睹Maemo芳容。
启动之前确定上面提到的Xephyr,SDK,还有Nokia proprietary binary packages都装好了。
4.1先开一个模拟器窗口
ganquan@debian:~$ Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac -kb &
得到这样的一个窗口:

4.2接下来登入Maemo
ganquan@debian:~$ /scratchbox/login
[sbox-FREMANTLE_X86: ~] >
4.3在Maemo中选择target为X86,设置display
[sbox-FREMANTLE_X86: ~] > sb-conf se FREMANTLE_X86
[sbox-FREMANTLE_X86: ~] > export DISPLAY=:2
4.4最后,启动UI就能看到Maemo的美貌了:
[sbox-FREMANTLE_X86: ~] > af-sb-init.sh start
下面贴一些截图
P1 默认桌面,有两个bookmark,一个是twitter,一个是facebook
P2 Android默认有3个桌面,Maemo默认是4个桌面,可以像Android那样拖着切换
在Maemo中失去焦点的部分自动模糊,这个效果不错

P3 Maemo中第三个view默认的两个bookmark,其他view就是干净的壁纸

P4 添加两个bookmark看看

贴图到此结束。
三、体验报告
1.视觉效果来说,非常漂亮,比Android的漂亮多了。
2.模拟器速度很快,占用资源也不算多。Android模拟器慢得要死,特能吃资源,似乎跟Java沾边的都很慢很恶心。
3.可用性超级差,为什么我只有bookmark的截图,没有打开bookmark的截图?因为所有的bookmark都打不开。
不仅bookmark打不开,Maemo自带的Setting工具里面有部分都不能用。这样的模拟器估计alpha版本都算不上。。。
跟Android模拟器比,这点差距实在太大了。
4.我本打算下载别人写好的app,安装到Maemo体验,结果安装不了。我去#Maemo问了一下,有个哥们告诉我说Maemo X86上的模拟器现在还在很渣,不能装写好的app,不能打开app是很正常的,只能用于测试自己写的app。
5.综合感觉,诺基亚加油啊!
继续关注诺基亚,关注Maemo。
后面有时间会继续写跟Maemo相关的东西,谁叫他跟Debian有关呢?


