当前位置: 首页 > news >正文

MeeGo handset 1.1开发环境[3]:直接使用Qemugl

  在安装MeeGo 1.1 SDK 中使用的是MeeGo 1.1新提供的工具mad-admin,从安装的过程可知,其依赖于qemugl。但是这个工具不能使用最新的img,runtimes已经限定,不能更换,也例如我们自己新作了一个img,希望安装在此新的img上运营,这就吃现问题。参考MeeGo SDK Building QEMU Tools ,可以使用qemugl来建立其他img的qemu。所有参考均可在http://wiki.meego.com/Developer_Guide 入口获取

  根据指引,step by step,可以工作,但是也有问题,在网上查,MeeGo将只维护mad-admin的方式,不在维护qemugl,例如-s aava的选项不起作用等等,尤其新的的img更有风险,但是其提供的xterm以及命令行方式,仍还能在开发中给予帮助。所以我们仍记录下来。而且这个步骤也展现了mic2的使用,并可用于封装我们自己的i㎎。因此跑一篇也是必要的。

  关于handset哈和qemu的问题。 qemu作为一个虚拟机模拟了x86的很多操作希望,这就是我们看到的加载kvm_intel内核模块的作用。Intel的atom系列号称x86,特别是最吸引人的mrst也号称x86,但是mrst为了适用于手持设备,估计是改动了不少,似的原有的qemu的VT所提供的x86无法支持。因此为mrst提供handset的img,是无法在QEMU中获得supported,需要将kernel更换为kernel-netbook,以获得qemu的支持。

  步骤一:安装所需的软件包:

$ sudo apt-get install yum rpm kpartx parted syslinux isomd5sum kvm zlib1g-dev squashfs-tools python2.6-dev
$ cat /etc/apt/sources.list.d,确保包括以下部分,否则加上,需要安装MIC2 deb http://repo.meego.com/MeeGo/sdk/host/repos/ubuntu/10.04/ /
deb http://repo.meego.com/MeeGo/tools/repos/ubuntu/10.04/ /
$ sudo apt-get install mic2,在/usr/local/bin目录中将看到安装的mic2的命令。
参考:http://wiki.meego.com/SDK/Docs/1.1/Building_a_MeeGo_chroot_on_Linux

  步骤二:更换㎎的kernel

  1、下子1123日的版本meego-handset-ia32-mtf-1.1.80.7.20101123.1-sda.bin.bz2,并通过bunzip2命令进行解压。

  2、为了麻烦,我们将解压后的meego-handset-ia32-mtf-1.1.80.7.20101123.1-sda.bin的绝对路径赋值给IMAGE:
$ IMAGE=/workspace/meego/image/meego1.1_release/meego-handset-ia32-mtf-devel-1.1-sda.bin

  3、MIC2的命令chroot的使用:

$ sudo kpartx -a -v $IMAGE
add map loop1p0 (252:1): 0 3906250 linear /dev/loop0 1
$ mkdir /tmp/handset
$ sudo mount /dev/mapper/loop0p1 /tmp/handset
$ sudo mic-chroot /tmp/handset

... 通过mic-chroot,在img解开后的目录中通过命令行的方式操作,进行更换kernel,使之可在QEMU上获得支持。

$ sudo extlinux --install /tmp/handset/boot/extlinux
$ sudo umount /tmp/handset

设置为启动盘
$ sudo fdisk /dev/loop0,依次敲入a,1,w。a-Enter a to toggle the "bootable" flag on a partition.Enter 1 to select the first partition as the bootable one. Enter w to write your changes to the partition table in the image.
$ sudo kpartx -d -v $IMAGE

  4、在mic-chroot中更换kernel,并安装开发软件包

# zypper remove kernel-mrst ,some is kernel-mid
# zypper install kernel-netbook mesa-dri-* xorg-x11-drv-vesa syslinux-extlinux
新建extlinux.conf,并计划在开机后进入命令行模式
# cd /boot/extlinux
# ln -sf ../vmlinuz-*netbook .
# MEEGO_KERNEL=`ls /boot/vmlinuz-*netbook | sed -e 's%/boot/%%'` && echo \
"PROMPT 0
TIMEOUT 1
DEFAULT meego
LABEL meego
KERNEL $MEEGO_KERNEL
APPEND ro root=/dev/sda1 3" \
> /boot/extlinux/extlinux.conf
# zypper addrepo http://repo.meego.com/MeeGo/sdk/target/repos/meego/trunk meego-sdk,这里可能用1.1代替trunk,在于采用哪个i㎎。
# zypper install meego-sdk-qemugl-addon-handset kmod-virtiogl
# zypper install openssh-server
# chkconfig --add sshd
# chmod u+s /usr/bin/Xorg
# exit 退出ch-root

  步骤三:采用Qemugl开启模拟器

$ sudo qemugl -m 1024 -net user,hostfwd=tcp:127.0.0.1:6666-:22 -net nic,model=e1000 -vga std -boot c -enable-kvm -enable-gl -device virtio-gl-pci -hda $IMAGE
对于采用mad-admin的runtimes,可以在/usr/lib/madde/linux-i686/runtimes,中有raw文件,实际上我们直接用qemugl来操作该raw文件,一样可以得到模拟器。同理,我们也可以对该img采用相同的步骤进行mic-chroot的操作。当然有ssh,好像意义不太大。

  开启后能够进入命令行,帐号和密码都是meego,采用命令uxlaunch开启界面,有些问题,如下所示。另外我们也在上面运行了一个hello world的小程序,到还勉强可以。右图是startx开启xterm的方式

   

这是我在mad-admin中运行hello小程序的截图,我觉得倒不一定是qemugl去出现了什么问题,MeeGo隔几天就给一个版本,自然不会太过稳定。

相关链接:我的MeeGo/Moblin相关文章

相关文章:

  • Resharper
  • C++ VS C#(1):注释,变量,控制台输出
  • 我的java mvc
  • 项目管理学习笔记三:项目管理一般知识
  • Markdown——入门指南
  • 项目管理学习笔记四:项目立项管理
  • 项目管理学习笔记五:项目整体管理
  • Extreme Learning Machine(ELM)的工程哲学
  • C++ VS C#(2):字符串,命名空间
  • URAL 2032 - Conspiracy Theory and Rebranding【本源勾股数组】
  • 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之89——BREW中的测试工具...
  • uva 571 素数的性质
  • 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之90——BREW中的调试信息...
  • C++中static用法
  • 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之90——BREW中的日志接口功能...
  • 【个人向】《HTTP图解》阅后小结
  • 2017届校招提前批面试回顾
  • Git初体验
  • Java 网络编程(2):UDP 的使用
  • Java-详解HashMap
  • node.js
  • Python中eval与exec的使用及区别
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • SQL 难点解决:记录的引用
  • vuex 学习笔记 01
  • vue数据传递--我有特殊的实现技巧
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 从零开始学习部署
  • 订阅Forge Viewer所有的事件
  • 回顾 Swift 多平台移植进度 #2
  • 京东美团研发面经
  • 前端设计模式
  • 前嗅ForeSpider中数据浏览界面介绍
  • 悄悄地说一个bug
  • Python 之网络式编程
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • ​secrets --- 生成管理密码的安全随机数​
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • #FPGA(基础知识)
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • $.ajax()方法详解
  • (Note)C++中的继承方式
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (第61天)多租户架构(CDB/PDB)
  • (定时器/计数器)中断系统(详解与使用)
  • (二)fiber的基本认识
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (南京观海微电子)——I3C协议介绍