lunedì 4 maggio 2009

Beagleboard, prendo nota...

Prendo nota di alcuni trucchetti:

echo "dvi e:1 u:1 t:0 h:1280/220/110/40 v:720/20/5/5 p:74000" >/sys/devices/platform/omapfb/displays

(abilita l'uscita DVI-D della Beagleboard a "720p", cioè 1280x720, a 60 Hz; dicono che funzioni anche col kernel 2.6.28 della validation, ma al momento non posso provare; le pubblico qui, sperando di poterle provare domattina).

L'unico limite della sezione video della Beagleboard è il pixel clock di poco sopra gli 80MHz (per cui può ottenere 1920x1080 full HD a non più di 24Hz)

Controllo del LED USR1 ("brightness" può valere solo 0:spento oppure 1:acceso):

cd /sys/class/leds/   ...
echo none > trigger
echo 1 > brightness
echo 0 > brightness

Per modificare manualmente il kernel Linux dopo la compilazione della OpenEmbedded:

cd tmp/work/beagleboard-angstrom-linux-gnueabi/linux-omap-2.6.29-r31...

(modificare i files; per esempio aggiungere la riga "omap_register_i2c_bus(2, 100, NULL, 0);" in arch/arm/mach-omap2/board-omap3beagle.c per avere la I2C2 supportata a 100 kHz, e quindi riavviare il make):

make ARCH=arm CROSS_COMPILE=/.../bin/arm-angstrom-linux-gnueabi-uImage

Nota: per la I2C2 serve anche un po' di configurazione dei MUX per l'expansion connector: nel sorgente board/omap3/beagle/beagle.h dell'UBoot bisogna cambiare:

MUX_VAL(CP(I2C2_SCL), (IEN  | PTU | EN  | M0)) /*I2C2_SCL*/\
MUX_VAL(CP(I2C2_SDA), (IEN  | PTU | EN  | M0)) /*I2C2_SDA*/\

Dovrò studiarmi anche la pagina di Hunyue Yau su come riconfigurare i MUX dell'OMAP3530 direttamente da Linux (in realtà mi sembra più pulito farlo da UBoot piuttosto che smanettarci dopo il caricamento del kernel).


Trovo perfino gente che vuole avviare non il kernel linux, ma il proprio software compilato staticamente e non abbisognante di sistema operativo. Mi sembra uno spreco, visto che con tutta quella potenza di calcolo e tutta quella RAM, non si può mica trattare la Beagleboard come se fosse una Arduino... :-) Avere un kernel Linux e tutto il resto, è davvero comodissimo (e poi si possono sempre disabilitare gli interrupt una volta avviato il programma).


Gran finale caotico, su cui magari dovrei indagare (vorrei capire perché vogliono complicarsi così tanto la vita): gst-launcher e tutti i suoi parametri da command line (forse al posto del '!' volevano scrivere '|'...?)

gst-launch filesrc location=/media/sda1/BigBuckBunny_640x360.m4v ! typefind ! qtdemux name=demux demux.audio_00 ! queue max-size-buffers=1800 max-size-time=0 max-size-bytes=0 ! typefind ! TIAuddec1 ! alsasink demux.video_00 ! typefind ! TIViddec2 ! xvimagesink

Nessun commento:

Posta un commento