Getting Openmoko working on host with Xephyr/it

From Openmoko

Revision as of 15:24, 11 July 2007 by White (Talk | contribs)

Jump to: navigation, search

Lo scopo di questa pagina è quello di mostrare come eseguire un'immagine OpenMoko su una macchina x86 in un ambiente chroot.

Contents

Cosa è Xephyr

Xephyr è un moderno Server X eseguito in una finestra che può essere utilizzato per simulare un piccolo display in un ambiente di sviluppo su desktop. Xephyr è mantenuto sulla pagina del progetto OpenedHand. Da notare che nonostante OpenMoko verrà renderizzato pixel per pixel, probabilmente verrà visualizzato 4 volte più grande di quanto non sia nella realtà. Questo perché i dispositivi portatili tendono ad avere pixel più piccoli rispetto ai monitor dei computer.

Creare un'immagine OpenMoko

Prima di tutto, bisogna creare una openmoko-devel-image. Il file local.conf andrà modificato durante il processo (prima del passo 5).

Per creare una openmoko-devel-image per l'architettura adatta (x86 nel nostro caso) vedere Creare OpenMoko usando MokoMakefile. Assicurarsi di avere il makefile moko in /home/moko/Makefile .

Prima di questo, modificare il file build/conf/local.conf in questo modo:

MACHINE = "x86"
DISTRO = "openmoko"
BUILD_ARCH = "i686"
INHERIT += " devshell"
SRCDATE_eds-dbus = "now"

Una volta creata l'immagine, possiamo passare alla sua configurazione.

(User:Flerchjj) Ho dovuto aggiungere anche la seguente riga al file "build/conf/local.conf" per poter completare "make openmoko-devel-image".

TARGET_FPU = ""

Configurare il filesystem dell'immagine

Vedere anche lo script d'esempio alla fine di questo articolo. Sarà molto utile.

Il filesystem dell'immagine che vogliamo eseguire nell'ambiente chroot, si trova in /home/moko/build/tmp/rootfs .

Bisogna copiare la directory rootfs da qualche parte per poterla poi ricostruire (usando MokoMakefile per esempio) senza sovrascriverla.

Assicurarsi di avere i privilegi di root:

su -

Copia rootfs in una directory chiamata MokoBox. Di seguito chiameremo l'ambiente chroot MokoBox.

cp -r /home/moko/build/tmp/rootfs /home/moko/mokobox

Assicurarsi che /dev e /proc della macchina host siano visibili dall'interno di MokoBox.

mount --bind /dev /home/moko/mokobox/dev
mount -t proc none /home/moko/mokobox/proc

Avviare l'ambiente protetto MokoBox.

chroot /home/moko/mokobox /bin/sh

In chroot'ed environment

set environment variables

DISPLAY=:1
LANG=C
HOME=/home/root
export DISPLAY LANG HOME

Create pango.modules file

pango-querymodules > /etc/pango/pango.modules

Create gdk-pixbuf.loaders file

gdk-pixbuf-query-loaders > /etc/gtk-2.0/gdk-pixbuf.loaders

Remove touch screen calibrator. Since touch screen hardware is not present, the touch screen calibration prevents X start-up on PC.

rm /etc/X11/Xsession.d/30xTs_Calibrate

Avviare il server X annidato

Fornire i fonts

Eseguire Xephyr

Avviare il Client X

Uno script di esempio

Migliorare il realismo del Display - Estendere Xephyr con Xoo

Personal tools

Lo scopo di questa pagina è quello di mostrare come eseguire un'immagine OpenMoko su una macchina x86 in un ambiente chroot.

Cosa è Xephyr

Xephyr è un moderno Server X eseguito in una finestra che può essere utilizzato per simulare un piccolo display in un ambiente di sviluppo su desktop. Xephyr è mantenuto sulla pagina del progetto OpenedHand. Da notare che nonostante OpenMoko verrà renderizzato pixel per pixel, probabilmente verrà visualizzato 4 volte più grande di quanto non sia nella realtà. Questo perché i dispositivi portatili tendono ad avere pixel più piccoli rispetto ai monitor dei computer.

Creare un'immagine OpenMoko

Prima di tutto, bisogna creare una openmoko-devel-image. Il file local.conf andrà modificato durante il processo (prima del passo 5).

Per creare una openmoko-devel-image per l'architettura adatta (x86 nel nostro caso) vedere Creare OpenMoko usando MokoMakefile. Assicurarsi di avere il makefile moko in /home/moko/Makefile .

Prima di questo, modificare il file build/conf/local.conf in questo modo:

MACHINE = "x86"
DISTRO = "openmoko"
BUILD_ARCH = "i686"
INHERIT += " devshell"
SRCDATE_eds-dbus = "now"

Una volta creata l'immagine, possiamo passare alla sua configurazione.

(User:Flerchjj) Ho dovuto aggiungere anche la seguente riga al file "build/conf/local.conf" per poter completare "make openmoko-devel-image".

TARGET_FPU = ""

Configurare il filesystem dell'immagine

Vedere anche lo script d'esempio alla fine di questo articolo. Sarà molto utile.

Il filesystem dell'immagine che vogliamo eseguire nell'ambiente chroot, si trova in /home/moko/build/tmp/rootfs .

Bisogna copiare la directory rootfs da qualche parte per poterla poi ricostruire (usando MokoMakefile per esempio) senza sovrascriverla.

Assicurarsi di avere i privilegi di root:

su -

Copia rootfs in una directory chiamata MokoBox. Di seguito chiameremo l'ambiente chroot MokoBox.

cp -r /home/moko/build/tmp/rootfs /home/moko/mokobox

Assicurarsi che /dev e /proc della macchina host siano visibili dall'interno di MokoBox.

mount --bind /dev /home/moko/mokobox/dev
mount -t proc none /home/moko/mokobox/proc

Avviare l'ambiente protetto MokoBox.

chroot /home/moko/mokobox /bin/sh

In chroot'ed environment

set environment variables

DISPLAY=:1
LANG=C
HOME=/home/root
export DISPLAY LANG HOME

Create pango.modules file

pango-querymodules > /etc/pango/pango.modules

Create gdk-pixbuf.loaders file

gdk-pixbuf-query-loaders > /etc/gtk-2.0/gdk-pixbuf.loaders

Remove touch screen calibrator. Since touch screen hardware is not present, the touch screen calibration prevents X start-up on PC.

rm /etc/X11/Xsession.d/30xTs_Calibrate

Avviare il server X annidato

Fornire i fonts

Eseguire Xephyr

Avviare il Client X

Uno script di esempio

Migliorare il realismo del Display - Estendere Xephyr con Xoo