Meego Wiki
Views
From MeeGo wiki
< ARM(Difference between revisions)
Jump to: navigation, search
(Sourcery G++ Lite 2009q3)
 
(18 intermediate revisions not shown)
Line 11: Line 11:
= Prerequisites =
= Prerequisites =
-
== Sourcery G++ Lite 2009q3 ==
+
== Sourcery G++ Lite 2009q1 ==
  mkdir -p ${HOME}/tmp
  mkdir -p ${HOME}/tmp
  cd ${HOME}/tmp
  cd ${HOME}/tmp
-
  wget -c https://sourcery.mentor.com/sgpp/lite/arm/portal/package8739/public/arm-none-linux-gnueabi/arm-2011.03-41-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
+
  wget -c https://sourcery.mentor.com/sgpp/lite/arm/portal/package4571/public/arm-none-linux-gnueabi/arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
  mkdir -p ${HOME}/opt
  mkdir -p ${HOME}/opt
-
  tar -C ${HOME}/opt -vjxf arm-2011.03-41-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
+
  tar -C ${HOME}/opt -vjxf arm-2009q1-203-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
+
 +
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 ==
== MIC2 ==
Line 27: Line 26:
== Environment Variables and ${PANDASOURCE} creation ==
== Environment Variables and ${PANDASOURCE} creation ==
-
  export PATH=${HOME}/opt/arm-2011.03/bin:${PATH}
+
  export PATH=${HOME}/opt/arm-2009q1/bin:${PATH}
  export PANDASOURCE=${HOME}/panda.source
  export PANDASOURCE=${HOME}/panda.source
  export PANDAFS=${HOME}/meego-panda-rootfs
  export PANDAFS=${HOME}/meego-panda-rootfs
Line 43: Line 42:
== other files ==
== other files ==
* [[File:00-device-omapfb.conf]]
* [[File:00-device-omapfb.conf]]
 +
* [[File:Panda.ks.in.release]]
 +
* [[File:Panda.sh.release]]
 +
* [[File:Panda.ks.in.latest]]
 +
* [[File:Panda.sh.latest]]
 +
Old version (release)
* [[File:Panda.ks.in]]
* [[File:Panda.ks.in]]
* [[File:Panda.sh]]
* [[File:Panda.sh]]
Line 48: Line 52:
  cd ${PANDASOURCE}
  cd ${PANDASOURCE}
  wget -c http://wiki.meego.com/images/00-device-omapfb.conf
  wget -c http://wiki.meego.com/images/00-device-omapfb.conf
-
  To build a release:
+
  # To build a release:
  wget -c -O Panda.ks.in http://wiki.meego.com/images/Panda.ks.in.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
  wget -c -O Panda.sh http://wiki.meego.com/images/Panda.sh.release
-
  To build the latest build:
+
  # To build the latest build:
  wget -c -O Panda.ks.in http://wiki.meego.com/images/Panda.ks.in.latest
  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
  wget -c -O Panda.sh http://wiki.meego.com/images/Panda.sh.latest
Line 60: Line 64:
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:
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-2011.03/bin/arm-none-linux-gnueabi-mkimage
+
  cp -pi /usr/bin/mkimage ${HOME}/opt/arm-2009q1/bin/arm-none-linux-gnueabi-mkimage
Build the kernel:
Build the kernel:
Line 71: Line 75:
== MeeGo rootfs ==
== MeeGo rootfs ==
=== Proxy Settings ===
=== Proxy Settings ===
-
If you need to add proxy settings, you can place them in ${HOME}/.mic2.conf like this:
+
If you need to add proxy settings, you can edit/change the proxy settings in /etc/mic2/mic2.conf or copy the file over to your home directory:
 +
 
 +
cp /etc/mic2/mic2.conf ${HOME}/.mic2.conf
 +
 
 +
And change the proxy settings in this file.
-
  [main]
+
  Specifically these lines, they need to be hashed out and changed:
-
  proxy=http://PROXY_SERVER:PORT
+
  #proxy=http://proxy.yourcompany.com:8080/
 +
#no_proxy=localhost,127.0.0.0/8,.yourcompany.com
=== Prepare to build the rootfs ===
=== Prepare to build the rootfs ===
Line 113: Line 122:
== Install binaries to SD ==
== Install binaries to SD ==
-
  sudo cp -p ${PANDAFS}/boot/MLO /media/BOOT
+
  sudo cp -pf ${PANDAFS}/boot/MLO /media/BOOT
-
  sudo cp -p ${PANDAFS}/boot/u-boot.bin /media/BOOT
+
  sudo cp -pf ${PANDAFS}/boot/u-boot.bin /media/BOOT
-
  sudo cp -p ${PANDAFS}/boot/boot.scr /media/BOOT
+
  sudo cp -pf ${PANDAFS}/boot/boot.scr /media/BOOT
-
  sudo cp -p ${PANDASOURCE}/kernel-omap4/arch/arm/boot/uImage /media/BOOT
+
  sudo cp -pf ${PANDASOURCE}/kernel-omap4/arch/arm/boot/uImage /media/BOOT
-
  sudo cp -rfp ${PANDAFS}/* /media/rootfs
+
  sudo cp -rpf ${PANDAFS}/* /media/rootfs
= Issues/Remarks =
= Issues/Remarks =
Line 134: Line 143:
  # for a usb to RS232 converter cable
  # for a usb to RS232 converter cable
  set line /dev/ttyUSB*
  set line /dev/ttyUSB*
-
  set speed 155200
+
  set speed 115200
  set carrier-watch off
  set carrier-watch off
  connect
  connect

Latest revision as of 20:01, 10 September 2011

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 2009q1

mkdir -p ${HOME}/tmp
cd ${HOME}/tmp
wget -c https://sourcery.mentor.com/sgpp/lite/arm/portal/package4571/public/arm-none-linux-gnueabi/arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
mkdir -p ${HOME}/opt
tar -C ${HOME}/opt -vjxf arm-2009q1-203-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-2009q1/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-2009q1/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 edit/change the proxy settings in /etc/mic2/mic2.conf or copy the file over to your home directory:

cp /etc/mic2/mic2.conf ${HOME}/.mic2.conf

And change the proxy settings in this file.

Specifically these lines, they need to be hashed out and changed:
#proxy=http://proxy.yourcompany.com:8080/
#no_proxy=localhost,127.0.0.0/8,.yourcompany.com

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}/* /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 115200
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