Pages

Thursday, 5 April 2012

How to Create a MeeGo image on Ubuntu

一开始的时候安装MIC2,它本身有些dependencies解决的不太好,需要自己手动解决,现在的stable release依赖关系应该没多大问题,在安装MIC2的时候应该会自动安装好;现在最新的版本默认用zypper做package management,但是原来的yum也是可以用的,需要在运行mic-image-creator的时候加入相关的option,这个改变可能是因为 想和MeeGo对应起来吧,现在MeeGo默认才用的也是zypper;官方的wiki有些过时,建议大家选择性的看,有时候遇到问题不一定是你的原因, 有可能是wiki的内容过时了,所以最好还是自己搜索一下解决方法。因为我负责这个工具的测试也有一段时间了,所以如果大家有什么疑问,可以在后面添加评 论,我会尽力解答。
大部分过程可以在以下两篇上找到:
http://wiki.meego.com/Image_Creation
http://www.greenhughes.com/content/trying-create-meego-image
但是这两篇上面还是存在一些错误,以及操作顺序上的不合理的地方,所以做个总结。
首先安装制作镜像的工具MIC2。有两种方式,一种是通过源安装,一种是自己下载源码编译(不推荐这种方式)。
这里先说通过源安装。

1.添加这个到源列表
deb http://repo.meego.com/MeeGo/tools/repos/ubuntu/9.10/ /
注意最后面的那个斜杠哦,不要弄丢了。
2.sudo apt-get update
可能会出现报错:W: GPG error: http://repo.meego.com Release: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY 0BC7BEC479FC1F8A
通过以下命令添加公钥就可以了
gpg –keyserver subkeys.pgp.net –recv 0BC7BEC479FC1F8A
gpg –export –armor 0BC7BEC479FC1F8A | sudo apt-key add -
//这段好像已经过时,公钥好像不能用了,不过在apt上有没有公钥验证好像都可以安装,但是使用到yum或是zypper的时候,如果绕不开这个错误提示,可以修改repo文件,把gpgcheck改成0并且把gpgkey的那行删掉就可以了。
然后sudo apt-get update
3.sudo apt-get install mic2
下载源码自己编译:
1.首先配置好相关的包
sudo apt-get install git-core yum rpm kpartx parted syslinux isomd5sum kvm zlib1g-dev python-dev dmsetup build-essential
貌似wiki上说yum的版本最好是3.2.24或以上,yum主要作用是在后面mic2生成镜像的时候用,但是9.10上的是3.2.23,源里 面也没有更新的,所以最好自己下载个源码编译,我这边就是编译yum 3.2.28的时候出了点错误,所以最后虽然也生成了镜像,但是还是有点问题。
还有个Pykickstart的library是必须的,用来读kickstart配置文件,所以要自己编译一下:
找个有操作权限的目录
mkdir pykickstart
cd pykickstart
git clone git://git.fedorahosted.org/git/pykickstart.git
cd pykickstart
python ./setup.py install
成功以后就可以build MIC2的源码了。
首先找个有操作权限的目录:
mkdir mic
cd mic
git clone git://gitorious.org/meego-developer-tools/image-creator.git
这边额外提一点,在公司用的代理上网,git需要一个socks的代理 可以用tsocks这个工具,或者把协议git改成http。
cd image-creator
然后在http://meego.gitorious.org/meego-developer-tools/image-creator/trees/master查看版本号
git checkout 0.21.0(这是我用到的版本)
make
sudo make install
sudo ./tools/mic-check-alldeps #会确认一下所有必须的包都已经安装全了。
现在mic2已经安装好了。
里面主要工具有mic-image-creator用来创建镜像,mic-image-writer用来烧写镜像到U盘或者光盘,mic-image-convertor用于镜像格式的转换,mic-chroot用于直接进入镜像修改。
因为MIC2 highly depends on yum and librpm, but different Linux distributions used diffrent yum and librpm versions, so MIC2 has some compatibility issues on OpenSUSE, Ubuntu and Debian, bootstrap is just for fixing these compatibility issues.意思就是yum和librpm的版本不一致,会在suse Ubuntu debian这些版本上出现一些不兼容性,所以用bootstrap模式来纠正这些不兼容性。
mic-create-bootstrap 就是用来创建bootstrap环境的命令,其实就是创建一个文件系统,在create image的时候chroot进去,这样使用包管理工具可能受到distribution的影响就比较小。
sudo mic-create-bootstrap -n trunk -k /your/repo/cache/path -r http://repo.meego.com/MeeGo/devel/trunk/repo/ia32/os/ -o /your/final/bootstrap
其中/your/repo/cache是创建镜像时需要下载一些包,如果用了cache,每次创建的时候就会先从cache里读取,不用每次都下载了。这个目录和/your/final/bootstrap都可以自己修改创建。
然后下载镜像配置文件
For ARM based Nokia N900: http://repo.meego.com/MeeGo/devel/n900/images/
For Intel Atom based netbook and handset (Moorestown): http://repo.meego.com/MeeGo/devel/trunk/images/
下载完之后就可以自己修改配置
改为配置之后
sudo mic-image-creator –bootstrap=/your/final/bootstrap –format=livecd –config=default.ks –cache=/your/repo/cache/path
就可以生成了,具体支持的镜像格式可以查看wiki.
然后烧写镜像
sudo mic-image-writer -g meego-xxx.img
按照提示就可以完成了

No comments:

Post a Comment