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

2019-07-13 00:14发布

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-8 keyboard us timezone --utc America/Los_Angeles part / --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 kernel part /boot --size=32 --ondisk mmcblk0p --fstype=vfat rootpw 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 primaII desktop --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-meego repo --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 mesa mesa-dri-swrast-driver xorg-x11-drv-fbdev xorg-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#14991 echo "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/inittab echo "s0:235:respawn:/sbin/agetty -L 115200 ttyS1 vt100" >> /etc/inittab # Set up proper target for libmeegotouch Config_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/sh exec /sbin/bootchartd -n 4000 EOF chmod +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=11484 echo 'arch = armv7hl' >> /etc/zypp/zypp.conf %end %post --nochroot if [ -n "$IMG_NAME" ]; then echo "BUILD: $IMG_NAME" >> $INSTALL_ROOT/etc/meego-release fi %end运行如下脚本可以得到Meego的image,之后解压缩,以loop方式mount并拷贝到SD卡的文件系统分区即可。 #!/bin/bash if [ `whoami` != root ]; then echo "This script must be run as root, e.g.:" echo "sudo $0" exit -1 fi # create meego image from kickstart. this will contain everything but the kernel mic-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.bz2 mkdir img mount -o loop meego-handset-armv7hl-prima2-1.2.0.90.12.20110809.2.img img if [ -d $1 ]; then echo "copy meego rootfs to $1" cp -fa img/* $1 umount img rm -fr img fi
启动Meego桌面的脚本如下: #!/bin/bash # # we have no EGL for the moment, so we use SW render to # bootup desktop # export QT_GRAPHICSSYSTEM=native export M_USE_SOFTWARE_RENDERING=1 export DISPLAY=":0.0" xhost + /usr/bin/mthemedaemon & /usr/bin/meegotouchhome -fullscreen -show-cursor -software &