大家刚开始接触meego的 时候会可能会感到有些陌生不过,当你熟悉了这个系统以后你就会深深的爱上他,从来没有见过一个系统可以有这么大的吸引力,也许是因为它是一个不断发展着的系统,最重要的是它是一个开放的系统,对于喜欢开放系统的同学来说,linux肯定是大家都在用的系统,网上有很多在windows上安装比较简单,下面介绍如何在Ubuntu linux上面安装MeeGo的开发环境。
硬件要求,一般的电脑都可以,安装上linux,推荐ubuntu—我的最爱
软件要求, 这里只介绍在ubuntu上面安装MeeGo开发环境,其他系统安装MeeGo开发环境请大家找其他资料
所有你需要有ubuntu 9.10, 10.04, 10.10当中的一个,不想在硬盘安装linux的可以用virtualbox在windows上面安装linux,具体问题可以跟贴问我,也可以采用wubi安装,这个是比较好的方法,而且和一
个独立的系统基本上是一样的,只不过硬盘的性能会稍微减弱,不过完全不影响我们的使用.大家有什么问
题可以发邮件给我
熟悉linux都知道shell,下面我用 “#” (没有引号)表示root权限的shell, 用 “$” 表示一般用户的shell,
在ubuntu下面开启终端,你可以选择登录界面,鼠标就可以点哦,熟悉shell的可以使用命令启动,这里就不再介绍了
好了,下面开始一步一步的安装MeeGo开发环境。
[准备条件]
1.我下载的系统是ubuntu 10.04 32位的一直没有更新,不过不太影响安装,官方最新的SDK只支持到
10.04,所有我们用10.04的SDK, 你可以把源直接添加到/etc/apt/sources.list里面去,必须用root打
开,你可以用gedit或者vi,下面是我已经
加到我本机的/etc/apt/sources.list里面后的结果。
root@meegozu:/opt/meego# grep “meego” /etc/apt/sources.list
deb http://repo.meego.com/MeeGo/sdk/host/repos/ubuntu/10.04/ /
复制代码
2.添加meego工具库的gpg密钥(必须的,不然没有权限下载SDK),这里是用的一般用户。
aries@meegozu:/opt/meego$ gpg –keyserver pgpkeys.mit.edu –recv 0BC7BEC479FC1F8A
gpg: 下载密钥‘79FC1F8A’,从 hkp 服务器 pgpkeys.mit.edu
gpg: 密钥 79FC1F8A:公钥“Moblin Build (Moblin Build User) ”已导入
gpg: 合计被处理的数量:1
gpg: 已导入:1
u@zhai.me:/opt/meego$ gpg –export –armor 0BC7BEC479FC1F8A | sudo apt-key add –
[sudo] password for u:
OK
复制代码
如果输出类似上面的东东,那就ok了。
3.更新你本机的软件库列表(如果看到类似”命中 http://repo.meego.com Release.gpg”的,那就ok了,
下面是一大堆输出)
u@zhai.me:/opt/meego$ sudo apt-get update
命中 http://cn.archive.ubuntu.com maverick Release.gpg
忽略 http://cn.archive.ubuntu.com/ubuntu/ maverick/main Translation-en
忽略 http://cn.archive.ubuntu.com/ubuntu/ maverick/main Translation-zh
命中 http://cn.archive.ubuntu.com/ubuntu/ maverick/main Translation-zh_CN
……
命中 http://repo.meego.com Release.gpg
……
复制代码
4. 查看MeeGo的软件库是不是成功添加到本机软件列表了(注意,我这里查询的结果是已经安装的,因为
我以前安装过,你查询到的结果可能是没有安装的哟)
u@zhai.me:/opt/meego$ apt-cache policy madde
madde:
已安装: 0.7.53-6
候选软件包:0.7.53-6
版本列表:
*** 0.7.53-6 0
500 http://repo.meego.com/MeeGo/sdk/host/repos/ubuntu/10.04/ Packages
100 /var/lib/dpkg/status
复制代码
PS: 其实”madde”就是maemo的开发工具。
[开始安装]
1. 安装meego-sdk(主要是Qt的一系列东西), 网络慢的兄弟要注意了,这个需要下载一会儿的哟,(由于我是已经安装过了,所以
我输入”sudo apt-get install meego-sdk”后提示已经安装好了。
u@zhai.me:/opt/meego$ sudo apt-get install meego-sdk
正在读取软件包列表… 完成
正在分析软件包的依赖关系树
正在读取状态信息… 完成
meego-sdk 已经是最新的版本了。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
复制代码
2.安装好SDK后,我们需要安装MeeGo的工具链和函数库了,现在有以下有3类工具链和函数库(比如gcc,
gdb, ld, libc, libstdc++等一些东东):
* meego-core-armv7l-1.1: 用来编译基于ARM CPU的智能手机的程序 (比如Nokia的N900)
* meego-handset-ia32-1.1: 用来编译基于Intel x86 CPU的智能手机的程序 (比如Aava)
* meego-netbook-ia32-1.1: 用来编译给予Intel x86 CPU的上网本的程序。
比如我要安装一个IA32 MeeGo上网本的工具链,可以使用如下命令(命令成功后会显示正在下载的界面(267M,我的天,要下载1个小时)):
u@zhai.me:/opt/meego$ sudo mad-admin create -f meego-netbook-ia32-1.1
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
1 267M 1 4056k 0 0 69262 0 1:07:22 0:00:59 1:06:23 67207
复制代码
如果你已经安装过MeeGo系统,那么可能会出现以下显示:
u@zhai.me:/opt/meego$ sudo mad-admin create -f meego-core-armv7l-1.1
Target ‘meego-core-armv7l-1.1’ already exists.
In case of premature ‘meego-core-armv7l-1.1’ installation enter
‘mad-admin remove meego-core-armv7l-1.1’ to clear the problem.
复制代码
你就等他漫漫下把
3. 检查是否下载安装成功.
创建一个名为针对armv7l指令集的qthello的项目:
u@zhai.me:/opt/meego$ mad -t meego-core-armv7l-1.1 pscreate -t qt-simple qthello
Skeleton ‘qthello’, type=qtprog created.
复制代码
进入项目目录:
u@zhai.me:/opt/meego$ cd qthello/
复制代码
使用qmake生成makefile:
aries@meegozu:/opt/meego/qthello$ mad -t meego-core-armv7l-1.1 qmake
-unix is deprecated.
复制代码
调用make编译qthello, 注意这里mad指定又指定了一次CPU的架构:
u@zhai.me:/opt/meego/qthello$ mad -t meego-core-armv7l-1.1 make
g++ -c -pipe -g -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector -fno-omit-frame-pointer –param=ssp-buffer-size=4 -fmessage-length=0 -march=armv7-a -mtune=cortex-a8 -mlittle-endian -mfpu=vfpv3 -mfloat-abi=softfp -D__SOFTFP__ -Wall -W -D_REENTRANT -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/lib/madde/linux-x86_64/sysroots/meego-core-armv7l-madde-sysroot-1.1-fs/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/lib/madde/linux-x86_64/sysroots/meego-core-armv7l-madde-sysroot-1.1-fs/usr/include/qt4/QtCore -I/usr/lib/madde/linux-x86_64/sysroots/meego-core-armv7l-madde-sysroot-1.1-fs/usr/include/qt4/QtGui -I/usr/lib/madde/linux-x86_64/sysroots/meego-core-armv7l-madde-sysroot-1.1-fs/usr/include/qt4 -Ibuild -o build/qtmain.o src/qtmain.cpp
g++ -o build/qthello build/qtmain.o -L/usr/lib/madde/linux-x86_64/sysroots/meego-core-armv7l-madde-sysroot-1.1-fs/usr/lib -lQtGui -lQtCore -lpthread
复制代码
最后用”file”命令看看是否正确生成了可执行文件,如果输出类似下面的输出,那恭喜你,你成功了,这里
输出的是ARM平台的qthello, 你无法在你自己机器上面运行,必须拷贝到你的模拟器或者是ARM CPU的真机
上面运行,比如N900.
u@zhai.me:/opt/meego/qthello$ file build/qthello
build/qthello: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.25, not stripped
复制代码
[在qemu(虚拟机)上安装MeeGo系统] 可选,如果你没有可以安装MeeGo的硬件,那你必须安装这个哟。
1. 首先用mad-admin查询下有哪些东西是可以安装的:
u@zhai.me:/opt/meego$ mad-admin list runtimes
qemu-n900-pr12 (installable)
rx48-diablo (installable)
meego-handset-ia32-qemu-1.1.20101031.2201-sda-runtime (installable)
meego-netbook-ia32-qemu-1.1.20101031.2037-sda-runtime (installable)
复制代码
2. 安装我们查询到的系统,(PS: 我不知道diablo是什么东东),这里我们安装Intel(ia32)的的上网本
系统,笔记本啊,无语啊哈哈
u@zhai.me:/opt/meego$ sudo mad-admin create -f -e meego-netbook-ia32-qemu-1.1.20101031.2037-sda-runtime
[sudo] password for aries:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 458M 0 701k 0 0 16351 0 8:09:38 0:00:43 8:08:55 12759
复制代码
这是考验网速的时候了…慢慢等
因为下载需要很久的原因,我使用我原有的Maemo系统模拟器给大家展示以下如何启动qemu以及启动后的
效果(你在qemu中启动刚才我们安装好的meego上网本系统只需要使用”mad remote -r meego-netbook-ia32-qemu-1.1.20101031.2037-sda-runtime poweron”命令:
u@zhai.me:/opt/NokiaQtSDK$ ./Maemo/4.6.2/bin/mad remote -r qemu-n900-pr13 poweron
Starting QEMU runtime qemu-n900-pr13
This may take some time …
复制代码
下面是Maemo 5在N900上面启动的效果(qemu):
如果使用qemu遇到问题,主要是OpenGL的问题(我现在这个maemo 5的模拟器就没有OpenGL加速,很慢的)
,那你运行qemu的时候可以加上
QEMU_NOGRAPHIC=yes
复制代码
环境变量,这样就可以运行无OpenGL加速的qemu版本,比如:
u@zhai.me:/opt/meego$ QEMU_NOGRAPHIC=yes mad remote -r meego-netbook-ia32-qemu-1.1.20101031.2037-sda-runtime poweron
复制代码
使用ssh登入qemu中的meego系统(可以使用”meego”和”root”用户,密码都是”meego”:
u@zhai.me:/opt/meego$ ssh meego@127.0.0.1 -p 6666
复制代码
因为我的meego系统还没有安装好,所有我登录我的maemo系统,如下:
u@zhai.me:/opt/NokiaQtSDK$ ssh developer@127.0.0.1 -p 6666
BusyBox v1.10.2 (Debian 3:1.10.2.legal-1osso30+0m5) built-in shell (ash)
Enter ‘help’ for a list of built-in commands.
/home/developer $ uname -a
Linux Nokia-N900 2.6.28-omap1 #1 PREEMPT Fri Aug 6 11:50:00 EEST 2010 armv7l unknown
复制代码
Ok,成功了。
今天就说到这里,明天再介绍如何在qtcreator中整合使用这些工具来开发应用程序。
不能启动qemu的童鞋们看这里:
如果你的电脑是AMD的cpu,而且报以下错误的话:
Could not access KVM kernel module: No such file or directory
failed to initialize KVM
解决方法就是安装qemu的内核模块,然后加载kvm,并且在bios开启VT支持:
1.sudo apt-get install qemu-kvm
sudo modprobe kvm
2.重启电脑,进入bios界面,设置advance选项里面的virtualization标签为Enabled,保存退出
3.开机后,通过命令 lsmod | grep kvm,如果出现以下内容,说明kvm加载成功了
kvm_amd 29264 0
kvm 244765 1 kvm_amd
4.重新开启模拟器就OK
作者:侯业伟houyewei@gmail.com