Meego Wiki
Views
From MeeGo wiki
< ARM
Revision as of 21:23, 8 September 2011 by Worldcitizen (Talk | contribs)
Jump to: navigation, search

Contents

Introduction

PLEASE NOTE: This page is currently under construction!

The following page describes how to create a bootable Meego image for the OMAP4 based Pandaboard. More information on this board can be found at pandaboard.org

Currently, running Meego on the Panda requires that the u-boot and Linux kernel are built by hand. We are working to get these packages into the OBS, and will keep this page updated.

Additionally, the image creation steps are also manual, owing to the very particular CHS requirements of the OMAP4 boards (255 heads/63 sectors). This issue is being discussed within the #meego-arm community.

Prerequisites

Sourcery G++ Lite 2009q3

mkdir -p ${HOME}/tmp
cd ${HOME}/tmp
wget -c https://sourcery.mentor.com/public/gnu_toolchain/arm-none-linux-gnueabi/arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
mkdir -p ${HOME}/opt
tar -C ${HOME}/opt -vjxf arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

Newer versions that might work can be found at: https://sourcery.mentor.com/sgpp/lite/arm/portal/subscription?@template=lite / http://www.codesourcery.com/sgpp/lite/arm/portal/subscription3057

MIC2

Reference http://wiki.meego.com/Image_Creation to set up MIC2

Environment Variables and ${PANDASOURCE} creation

export PATH=${HOME}/opt/arm-2009q3/bin:${PATH}
export PANDASOURCE=${HOME}/panda.source
export PANDAFS=${HOME}/meego-panda-rootfs
mkdir -p ${PANDASOURCE}

Get Files

kernel

cd ${PANDASOURCE}
git clone git://dev.omapzoom.org/pub/scm/integration/kernel-omap4.git
cd ${PANDASOURCE}/kernel-omap4
git checkout --track -b L24.11 ti-2.6.35-omap4-L24.11

other files

Old version (release)

cd ${PANDASOURCE}
wget -c http://wiki.meego.com/images/00-device-omapfb.conf
# To build a release:
wget -c -O Panda.ks.in http://wiki.meego.com/images/Panda.ks.in.release
wget -c -O Panda.sh http://wiki.meego.com/images/Panda.sh.release
# To build the latest build:
wget -c -O Panda.ks.in http://wiki.meego.com/images/Panda.ks.in.latest
wget -c -O Panda.sh http://wiki.meego.com/images/Panda.sh.latest

Build

kernel

Make sure that you have mkimage utility in your system. For example, in Fedora you need to have uboot-tools package installed, for openSuSE package cross-arm-linux-sheevaplug-uboot-mkimage in repository http://download.opensuse.org/repositories/home:/netsroth/openSUSE_11.4/. Copy this utility to ${HOME}/opt/arm-2009q3/bin directory under name arm-none-linux-gnueabi-mkimage:

cp -pi /usr/bin/mkimage ${HOME}/opt/arm-2009q3/bin/arm-none-linux-gnueabi-mkimage

Build the kernel:

cd ${PANDASOURCE}/kernel-omap4
make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm omap4_panda_defconfig
make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm uImage
make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm modules

MeeGo rootfs

Proxy Settings

If you need to add proxy settings, you can place them in ${HOME}/.mic2.conf like this:

[main]
proxy=http://PROXY_SERVER:PORT

Prepare to build the rootfs

Edit the third line of Panda.ks.in script is you want to have a timezone different than Asia/Taipei on the resulting system.

Make sure you either have /usr/bin/qemu-arm or /usr/bin/qemu-arm-static binary which is statically linked. Those paths are hardcoded in mic2.

For example, on Fedora /usr/bin/qemu-arm is dynamically linked, and there is no /usr/bin/qemu-arm-static available in package repositories. In this case you can install it from OpenSuse repository:

rpm -ivh http://repo.meego.com/MeeGo/tools/repos/opensuse/11.4/<arch>/qemu-arm-static-*.rpm
# For openSuSE as probably already added the repo via Image Creation
sudo zypper install qemu-arm-static

There are no dependency problems because qemu-arm-static is statically linked.

Build the rootfs

cd ${PANDASOURCE}
LANG=en_US.UTF-8 sh ./Panda.sh

Setting LANG environment variable is necessary if your locale is not English.

Be aware that if you use SElinux, mic2 invoked by Panda.sh script switches SElinux mode to premissive. Turn on the enforcing mode back when you've finished building rootfs:

/usr/sbin/setenforce 1 

Make Bootable SD Card

Format SD

Reference http://www.omappedia.org/wiki/SD_Configuration to format SD card. Insert formated bootable SD card, /media/boot & /media/rootfs should be mounted automatically, assuming you are logged in graphically.

Install binaries to ${PANDAFS}

# kernel modules
(cd ${PANDASOURCE}/kernel-omap4 ; sudo PATH=${PATH} make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm INSTALL_MOD_PATH=${PANDAFS} modules_install)
# 00-device-omapfb.conf
sudo cp ${PANDASOURCE}/00-device-omapfb.conf ${PANDAFS}/etc/X11/xorg.conf.d

Install binaries to SD

sudo cp -pf ${PANDAFS}/boot/MLO /media/BOOT
sudo cp -pf ${PANDAFS}/boot/u-boot.bin /media/BOOT
sudo cp -pf ${PANDAFS}/boot/boot.scr /media/BOOT
sudo cp -pf ${PANDASOURCE}/kernel-omap4/arch/arm/boot/uImage /media/BOOT
sudo cp -rpf ${PANDAFS}/install_root/* /media/rootfs

Issues/Remarks

The current build doesn't start X correctly automatically. 
X can be run by logging in on tty or via serial port (The password is set in the Panda.ks.in file, initially "meego"). 
Start runlevel 3 "init 3" after that "startx &".

To diagnose it advisable to connect via the serial port too. As you'll be able to see the boot messages. A Useful program to do this is for instance ckermit. For openSuSE ckermit can be found here: http://software.opensuse.org/search?q=ckermit&baseproject=ALL&lang=en&exclude_debug=true

kermit
# for a fixed port
set line /dev/ttyS*
# for a usb to RS232 converter cable
set line /dev/ttyUSB*
set speed 155200
set carrier-watch off
connect

Hardware-accelerated graphics on Pandaboard using MeeGo

See Hardware-accelerated graphics on Pandaboard using MeeGo how to enable accelerated graphics by means of the Ubuntu build.
Personal tools