为S3C6410,S5PC110等ARM平台快速构建一个Meego环境

来源:互联网 发布:淘宝店家温馨寄语 编辑:程序博客网 时间:2024/06/14 23:12

Meego项目亦然停止,但是好的嵌入式Linux发行版舍Meego和Ubuntu以外,实难寻觅,所以我们很可能还存在Meego的移植需求,过程非常简单。依照http://wiki.meego.com/Image_Creation安装MIC2,准备如下的kickstarter文件(graphics使用软解码)

# -*-mic2-options-*- -f raw --save-kernel --arch=armv7hl -*-mic2-options-*-# # Do not Edit! Generated by:# kickstarter.py# lang en_US.UTF-8keyboard ustimezone --utc America/Los_Angelespart / --size=1750  --ondisk mmcblk0p --fstype=ext3# This is not used currently. It is here because the /boot partition# needs to be the partition number 3 for the u-boot usage.part swap --size=8 --ondisk mmcblk0p --fstype=swap# This partition is made so that u-boot can find the kernelpart /boot --size=32 --ondisk mmcblk0p --fstype=vfatrootpw meego xconfig --startxonboot# desktop --autologinuser=meego  --defaultdesktop=DUI --session="/usr/bin/mcompositor"## mcompositor depends on EGL, so we move to twm windowmanager for the moment for primaIIdesktop --autologinuser=meego  --defaultdesktop=DUI --session="/usr/bin/twm"user --name meego  --groups audio,video --password meego repo --name=1.2.0.90-oss --baseurl=http://repo.meego.com/MeeGo/builds/1.2.0.90/@BUILD_ID@/repos/oss/armv7hl/packages/ --save --debuginfo --source --gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-meegorepo --name=1.2.0.90-non-oss --baseurl=http://repo.meego.com/MeeGo/builds/1.2.0.90/@BUILD_ID@/repos/non-oss/armv7hl/packages/ --save --debuginfo --source --gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-meego%packages@MeeGo Compliance@MeeGo Core@X for Handsets@MeeGo Handset Desktop@MeeGo Handset Applications@MeeGo Base Development@Minimal MeeGo X Window System@Chinese Support# for bringup, we are now using fbdev and software mesamesa-dri-swrast-driverxorg-x11-drv-fbdevxorg-x11-utils-xev%end%post# save a little bit of space at least...rm -f /boot/initrd*rm -f /var/lib/rpm/__db*rpm --rebuilddb# Remove cursor from showing during startup BMC#14991echo "xopts=-nocursor" >> /etc/sysconfig/uxlaunch# open serial line console for embedded system# our board uses ttyS1## echo "s0:235:respawn:/sbin/agetty -L 115200 ttyO2 vt100" >> /etc/inittabecho "s0:235:respawn:/sbin/agetty -L 115200 ttyS1 vt100" >> /etc/inittab# Set up proper target for libmeegotouchConfig_Src=`gconftool-2 --get-default-source`gconftool-2 --direct --config-source $Config_Src \  -s -t string /meegotouch/target/name N900# Normal bootchart is only 30 long so we use this to get longer bootchart during startup when needed.cat > /sbin/bootchartd-long << EOF#!/bin/shexec /sbin/bootchartd -n 4000EOFchmod +x /sbin/bootchartd-long# Use eMMC swap partition as MeeGo swap as well.# Because of the 2nd partition is swap for the partition numbering# we can just change the current fstab entry to match the eMMC partition.sed -i 's/mmcblk0p2/mmcblk1p3/g' /etc/fstab# Without this line the rpm don't get the architecture right.echo -n 'armv7hl-meego-linux' > /etc/rpm/platform # Also libzypp has problems in autodetecting the architecture so we force tha as well.# https://bugs.meego.com/show_bug.cgi?id=11484echo 'arch = armv7hl' >> /etc/zypp/zypp.conf%end%post --nochrootif [ -n "$IMG_NAME" ]; then    echo "BUILD: $IMG_NAME" >> $INSTALL_ROOT/etc/meego-releasefi%end
运行如下脚本可以得到Meego的image,之后解压缩,以loop方式mount并拷贝到SD卡的文件系统分区即可。

#!/bin/bashif [ `whoami` != root ]; then    echo "This script must be run as root, e.g.:"    echo "sudo $0"    exit -1fi# create meego image from kickstart. this will contain everything but the kernelmic-image-creator  --cache=../mycachedir --format=loop --arch=armv7hl --pkgmgr=yum --config=handset-armv7hl-prima2.ks --release=1.2.0.90.12.20110809.2
这一过程也可以自动化进行:

CURDIR=`pwd`OUTDIR=${CURDIR}/1.2.0.90.12.20110809.2/images/meego-handset-armv7hl-xxx/cd ${OUTDIR}bunzip2 meego-handset-armv7hl-xxx-1.2.0.90.12.20110809.2.img.bz2mkdir imgmount -o loop meego-handset-armv7hl-prima2-1.2.0.90.12.20110809.2.img imgif [ -d $1 ]; thenecho "copy meego rootfs to $1"cp -fa img/* $1umount imgrm -fr imgfi

启动Meego桌面的脚本如下:

#!/bin/bash# # we have no EGL for the moment, so we use SW render to# bootup desktop#export QT_GRAPHICSSYSTEM=nativeexport M_USE_SOFTWARE_RENDERING=1export DISPLAY=":0.0"xhost +/usr/bin/mthemedaemon &/usr/bin/meegotouchhome -fullscreen -show-cursor -software &



原创粉丝点击