/ 中存储网

如何在Ubuntu安装MeeGo开发环境SDK?

2016-01-20 11:34:38 来源:中存储网

如何在Ubuntu安装MeeGo开发环境SDK?

硬件要求,一般的电脑都可以,安装上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