Getting Openmoko working on host with Xephyr/it
From Openmoko
(→In chroot'ed environment) |
m (→Migliorare il realismo del Display - Estendere Xephyr con Xoo: Category: Developer software) |
||
Line 165: | Line 165: | ||
<span id="bottom"></span> | <span id="bottom"></span> | ||
{{Languages|Templates}} | {{Languages|Templates}} | ||
+ | |||
+ | [[Category: Developer software]] |
Revision as of 18:24, 26 July 2007
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
Nell'ambiente chroot
Impostare le variabili d'ambiente
DISPLAY=:1 LANG=C HOME=/home/root export DISPLAY LANG HOME
Creare il file pango.modules
pango-querymodules > /etc/pango/pango.modules
Creare il file gdk-pixbuf.loaders
gdk-pixbuf-query-loaders > /etc/gtk-2.0/gdk-pixbuf.loaders
Rimuovere il calibratore del touch screen. Siccome l'hardware del touch screen è assente, il suo calibratore impedirebbe l'avvio di X sul PC.
rm /etc/X11/Xsession.d/30xTs_Calibrate
Avviare il server X annidato
Fornire i fonts
Potrebbe essere necessario installare i caratteri forniti da OpenMoko al sistema host. Il modo più semplice per eseguire questa operazione su Gnome, è andare in Preferences -> Font - > Details -> Vai alla directory dei caratteri e copiare-incollare i file TTF da build/tmp/rootfs/usr/share/fonts/ in Nautilus.
Eseguire Xephyr
In un altro terminale (non legato a mokobox), avviare Xephyr
Xephyr :1 -ac -2button -host-cursor -screen 480x640
Avviare il Client X
Tornare nell'ambiente chroot ed avviare il client X:
eval $(dbus-launch) /etc/X11/Xsession
A questo punto si dovrebbe vedere la fase di boot di OpenMoko nella finestra Xephyr.
Uno script di esempio
Lo script seguente imposta automaticamente l'ambiente OpenMoko in chroot.
#!/bin/bash # # Set-up x86 OpenMoko root jail. This script must be run as root. # # Root jail is an environment, where the file system root has been # changed to the OpenMoko root file system folder. Please don't # use the build/rootfs, but make a copy of it, since build/rootfs # gets overwritten each time you build openmoko-devel-image # # You need to set-up another X server (nested preferably) to # act as a OpenMoko screen. Otherwise chrooted applications are executed # as is on the host hardware and the kernel. # # See: # # http://wiki.openmoko.org/wiki/Getting_OpenMoko_working_on_host_with_Xephyr # # # 2007 Mikko Ohtamaa - Red Innovation Ltd. # <mikko@redinnovation.com> # # Do anything you wish with this script # # # # Setup required environment variables # Xephyr must listen to this DISPLAY DISPLAY=:1 # If we don't have locale, applications refuse to launch LANG=C # We are running as root in our chrooted environment HOME=/home/root export DISPLAY LANG HOME # Update pango modules pango-querymodules > /etc/pango/pango.modules # Update icon images gdk-pixbuf-query-loaders > /etc/gtk-2.0/gdk-pixbuf.loaders # Mount /dev and /proc file systems mount --bind /dev ./dev mount -t proc none ./proc # Remove touch screen calibration start up app # It doesn't launch on x86 and prevents X booting if [ -e /etc/X11/Xsession.d/30xTs_Calibrate ] ; then rm /etc/X11/Xsession.d/30xTs_Calibrate fi # Use host name server information so that # web browsing works cp /etc/resolv.conf etc/resolv.conf # Enter into chroot jail chroot . /bin/sh
Migliorare il realismo del Display - Estendere Xephyr con Xoo
Xoo estende Xephyr fornendo un emulatore dei dispositivi. Si rivolge agli sviluppatori che vogliono simulare un particolare dispositivo (una dimensione del display accurata, tasti hardware, temi del display, etc) su una macchina desktop.
Vedere Far funzionare OpenMoko su un host tramite Xoo per ulteriori informazioni.
Languages: |
English • العربية • Български • Česky • Dansk • Deutsch • Esperanto • Eesti • Español • فارسی • Suomi • Français • עברית • Magyar • Italiano • 한국어 • Nederlands • Norsk (bokmål) • Polski • Português • Română • Русский • Svenska • Slovenčina • Українська • 中文(中国大陆) • 中文(台灣) • Euskara • Català |