用本地repo制作Pandaboard的MeeGo镜像

1. 创建本地服务器的repo

将/obs/imports/MeeGo_1.2.90.0.0.20110824.2/core/armv7hl目录下的内容直接COPY到/obs/srv/repos的子目录下,就可以在http://192.168.129.140:82下面访问这些内容。

2. 参考http://wiki.meego.com/ARM/OMAP4_Panda制作镜像

要点1:需要根据需要修改Panda.ks.in文件

要点2:在执行“git checkout --track -b L24.11ti-2.6.35-omap4-L24.11

”时,要严格按照这个信息,不要擅自改变版本号。

3. 安装MIC2

参考http://wiki.meego.com/Image_Creation安装MIC2。

对于Ubuntu11.04,

step1:

sudo apt-get install yum rpm kpartxparted syslinux isomd5sum kvm zlib1g-dev squashfs-tools python2.6-devqemu-user-static python-urlgrabber

注意:Ubuntu11.04及以上的版本,没有qemu-arm-static,只有qemu-user-static。

        

                   step2:在/etc/apt/sources.list文件添加源:

                   debhttp://repo.meego.com/MeeGo/tools/repos/ubuntu/10.10/ /

                   (最新只有ubuntu10.10,虽然工作机器是Ubuntu11.04,也只好用这个)

        

                   step3:sudo apt-get update

                   Youshould see the following error: W: GPG error: http://repo.meego.comRelease: The following signatures couldn't be verified because the public keyis not available: NO_PUBKEY 0BC7BEC479FC1F8A

To add the repository public key use thefollowing command:

gpg --keyserver subkeys.pgp.net --recv0BC7BEC479FC1F8A

gpg--export --armor 0BC7BEC479FC1F8A | sudo apt-key add -

                   step4:sudo apt-get install mic2

4.      执行./Panda.sh

由于本地的repos中只有armv7hl的包,没有ia32的包,因此在创建bootstrap的时候会失败:

Installing mic2-0.24.14-1.1.noarch.rpm...

WARNING: Could not find package 'libgcc'suitable arch for arch 'i686' for bootstrap installation.

 

...

bind_unmount: /var/tmp ->/var/cache/meego-bootstrap//var/tmp

OSError: [Errno 2] No such file ordirectory

        

             因此,需要单独创建bootstrap:

                   sudomic-create-bootstrap -n trunk -rhttp://repo.meego.com/MeeGo/builds/trunk/latest/repos/oss/ia32/packages/ -o /var/cache/meego-bootstrap/

 

     在从repo.meego.com下载包的过程中,碰到超时问题。尝试将以前VMWare中的/var/cache/meego-bootstrap拷贝过来,然后在mic-create-image后面指定”--bootstrap=/var/cache/meego-bootstrp”,执行Panda.sh时报错:

         Error:Please specify a workable bootstrap env

        

         注意到mic-create-bootstrap有个”-k”选项,于是重新执行mic-create-bootstrp,并加上”-k”选项:

         sudomic-create-bootstrap -n trunk -k /home/zhanghui/MeeGo/panda.source/rpms -rhttp://repo.meego.com/MeeGo/builds/trunk/latest/repos/oss/ia32/packages/ -o/var/cache/meego-bootstrap

         (查看/home/zhanghui/MeeGo/panda.source/rpms目录,果然发现了trunk目录!)

 

         用mic-create-bootstrap制作meego-bootstrap后,执行Panda.sh就不会报“Error:Please specify a workable bootstrap env”了。但碰到新问题:

OSError: [Errno 2] 没有那个文件或目录: '/var/tmp/imgcreate-JtD_cH/install_root/tmp/ks-script-WcCRqN'

 

5.Imgcreate-xxx/install_root问题的解决

@ivi都不行,只有@NetBook可以;

首先怀疑是repomd.xml有问题,于是重新生成repomd.xml:

## Copy RPMpackages to a folder, oss/armv7hl,oss/noarch

   $ mkdir -p oss/repodata

   $ cp -f patterns.xml group.xml oss/repodata

   $ cd oss

   $ createrepo -g repodata/group.xml ./

   $ modifyreporepodata/patterns.xml ./repodata

自己生成的repodata,仍然一样有OSError;尝试几个办法:

(1)140上OSS包版本和官方NON-OSS包版本不匹配。已确认不是这个问题。

(2)ks文件有问题;

(3)140上的包有问题,可尝试直接从官方网站下载全部的包:问题依旧,看来不是这个问题。

最终定位应该是ks文件有问题。

 

在测试过程中,碰到 Unicode的问题:

Traceback (most recent call last):

 

  File"/usr/bin/mic-image-creator", line 1045, in <module>

 

    ret= main()

 

  File"/usr/bin/mic-image-creator", line 1019, in main

 

    raiseFatalError("failed to create image : %s" % e)

 

UnicodeEncodeError: 'ascii' codec can'tencode characters in position 36-38: ordinal not in range(128)

 

将”@MeeGo Core”改成”@Core”就没这个问题。原来是因为”MeeGo Core”在group.xml/patterns.xml中不存在。

而releases/MeeGo1.2.0的patterns.xml/group.xml就没有这个问题,原来MeeGo1.2.0和MeeGo1.2.90中的patterns.xml/group.xml中的group名字命名不同,比如对于MeeGo Core,在MeeGo1.2.0中是“MeeGo Core”,而在MeeGo1.2.90中是”Core”。

 

将repo.meego.com上releases/MeeGo1.2.0中的patterns.xml/group.xml拷贝到140上,重新生成repomd.xml等。然后重新执行mic-image-creator,找不到sysvinit包。对比MeeGo1.2.0和MeeGo1.2.90的repository发现,果然不同。

下面就剩两个思路:(1)尝试下载latest的Panda.ks.in和Panda.sh测试;(2)换用MeeGo1.2.0的repository。

 

用latest的Panda.ks.in,制作rootfs成功!

比较诡异,@Netbook就可以制作成功,@ivi就不行。

你可能感兴趣的:(vmware,python,ubuntu,command,meego,Codec)