openSUSE:Beagleboard (xM)
Indice
Informazioni generali
Puoi ottenere alcune informazioni di carattere generale (come descrizione dell'hardware, installazione di openSUSE, ecc.) su en:HCL:BeagleBoard-xM.
Test
Audio in/out
Devi caricare i corretti moduli con modprobe:
modprobe snd_soc_omap_mcbsp modprobe snd_soc_twl4030 modprobe snd-soc-omap3beagle
A questo punto devi configurare gli input e gli output. E' quindi possibile :
- ripristinare i valori da un file, per es.:
wget http://guillaume.gardet.free.fr/openSUSE/beagleboard-alsa.conf alsactl -f beagleboard-alsa.conf restore
- condigurarli manualmente usando alsamixer:
alsamixer
Ora prova ad ascoltare un file
aplay test.wav
E registrarne uno:
arecord test_input.wav
Frequenza della CPU
La frequenza della CPU può essere testata facilmente. Mentre non fai nient'altro puoi eseguire:
cat /proc/cpuinfo | grep BogoMIPS
che dovrebbe mostrare qualcosa del tipo:
BogoMIPS : 262.08
Quindi, carica la CPU e fai mostrare di nuovo i BogoMIPS, per es. con:
dd if=/dev/urandom of=/dev/null & cat /proc/cpuinfo | grep BogoMIPS
il quale dovrebbe mostrare qualcosa di questo genere:
BogoMIPS : 700.57
Adesso puoi chiudere il processo di dd:
pkill dd
Smartreflex (auto voltage)
Smartreflex non è testabile facilmente tuttavia è abilitato nel kernel.
DSP
Installa il necessario:
zypper in dsp-tools tidsp-binaries
Carica i moduli:
modprobe mailbox_mach modprobe tidspbridge base_img=/lib/dsp/baseimage.dof
Per il kernel 3.3.0 e precedente, tidspbridge è stato rinominato bridgedriver, quindi devi invocare i comandi:
modprobe mailbox_mach modprobe bridgedriver base_img=/lib/dsp/baseimage.dof
Caricati quei moduli puoi provare alcuni strumenti dsp invocando il comando:
dsp-test
che dovrebbe restituire qualcosa di questo tipo:
copied 1000 times successfully
oppure
dsp-probe
che dovrebbe restituire qualcosa di questo tipo:
device: /codec device: /mixer device: /acdn device: /eteedn device: /mmmdn task: DASFTASK_TI task: SYNCCLOCK_TI task: dummy
codec DSP per gstreamer
Installa il software necessario:
zypper in gst-dsp gst-omapfb gstreamer-utils
Invoca il seguente comando per ottenere la lista dei codec dsp:
gst-inspect | grep dsp
che dovrebbe restituire qualcosa di simile:
dsp: dspdummy: DSP dummy element dsp: dspvdec: DSP video decoder dsp: dspadec: DSP audio decoder dsp: dsph263enc: DSP video encoder dsp: dspmp4venc: DSP MPEG-4 video encoder dsp: dspjpegenc: DSP video encoder dsp: dsph264enc: DSP video encoder dsp: dspvpp: DSP VPP filter dsp: dspipp: DSP IPP
A questo punto avviamo alcuni test banali di codifica:
gst-launch -v videotestsrc ! dspmp4venc ! fakesink enable-last-buffer=false gst-launch -v videotestsrc ! dsph263enc ! fakesink enable-last-buffer=false
Nota: dsph264enc non funziona.
gstreamer-0_10-plugins-good, gstreamer-0_10-plugins-bad, gstreamer-0_10-plugins-ugly
Ora puoi aprire alcuni file reali, ad es.:
gst-launch-0.10 filesrc location="/mnt/tests_video/big_buck_bunny_480p_surround-fix.avi" ! avidemux ! dspvdec ! ffmpegcolorspace ! fbdevsink gst-launch playbin2 uri=file:///mnt/tests_video/big_buck_bunny_480p_surround-fix.avi #(questa riga ha bisogno di omapfbsink funzionante il quale tuttavia sempre rotto...)
Ethernet
Puoi testare, inoltre, la funzionalità di rete. Per farlo collega il cavo di rete ad una rete con DHCP attivo su un router. Aspetta qualche istante che venga assegnato l'indirizzo IP:
ifconfig eth0
Quindi verifica se viene pingato qualcosa all'interno della rete e fuori (chiaramente sostituisci l'indirizzo IP seguente, con quello di un altro host della rete):
ping 192.168.1.254 ping www.google.it
Puoi anche verificare le performance con iperf. Installalo su un computer e sulla Beagleboard e avvialo come server in uno dei due host:
iperf -s
sul secondo host, avvia il client iperf:
iperf -c <INDIRIZZO_IP_DEL_SERVER_IPERF>
a questo punto puoi invertire le parti tra client e server e rieffettuare il test.
Sulla Beagleboard xM, con kernel 3.4.0-3-omap2plus, attualmente otteniamo 95 Mb/s.
SD/MMC
Se riesci ad effettuare il boot dalla tua scheda uSD, allora vuol dire che le SD/MMC funzionano! ;)
UART (debug)
Collega un cavo seriale (o seriale/usd) tra la board e il tuo computer. Avvia minicom:
sudo minicom
Adesso accendi la board. Dovresti vedere qualcosa che inizia in questo modo:
Texas Instruments X-Loader 1.5.0 (Feb 29 2012 - 23:37:23) Beagle xM Reading boot sector Error: reading boot sector fat load failed, trying ext2 Loading u-boot.bin from mmc
USB host
Per provare se la porta USB funziona collegaci una chiavetta USB, montala con il comando:
mount /dev/sda1 /mnt
e prova a vedere cosa c'e' dentro:
ls /mnt
Poi smontala con il comando:
umount /mnt
USB OTG
Questo modulo viene montato e caricato al boot ma non sappiamo come testarlo.
Video
DVI
omapfb driver
Devi caricare il modulo corretto con modprobe:
modprobe panel-tfp410 modprobe omapfb mode=dvi:1440x900MR-24@60
E dovresti essere in grado di vedere la consolo di login sul tuo monito DVI/HDMI. Nota che panel-tfp410 è necessario per kernel 3.5 e superiori.
omapdrm
omapdrm dovrebbe venire caricato automaticamente con le ultime immagini. Se non lo fa da solo, provvedi tu:
modprobe omapdrm
Per farlo funzionare avrai bisogno del pacchetto libdrm_omap1:
zypper in libdrm_omap1
Ora dovresti vedere la console di login sul tuo monitor DVI/HDMI.
S-Video/Composite
Anche qui si tratta di caricare il modulo corretto con modprobe.
Per il formato NTSC usa:
modprobe omapfb mode=tv:ntsc
Per il formato PAL:
modprobe omapfb mode=tv:pal
In questo modo dovresti vedere la console di login sullo schermo della tua TV.
2D/3D accelerazione hardware (Powervr SGX 530)
In questi repository puoi trovare alcuni pacchetti RPM di test chiamati pvr-omapes*
Devi trovare la giusta versione del core SGX. E' consigliabile sceglierla dalla seguente tabella:
SoC | sgx es version |
---|---|
OMAP35x (SGX core 1.2.1) | es 3.x |
OMAP37x/AM37x (SGX core 1.2.5) | es 5.x |
816x(389x)/814x(387x) (SGX core 1.2.5) | es 6.x |
335x (SGX core 1.2.5 ) | es 8.x |
Per essere sicuro della revisione del tuo core SGX, puoi usare devmem2 disponibile tra gli strumenti nella factory
Per le SOLE famiglie di chipset OMAP35xx, AM35xx, AM/DM37xx, invoca i comandi:
devmem2 0x48004B48 w 0x2 devmem2 0x48004B10 w 0x1 devmem2 0x48004B00 w 0x2 devmem2 0x50000014
L'ultimo passo dovrebbe mostrare qualcosa di questo tipo:
0x10205 0x10201 0x10003
Che vuol dire SGX core revisione 1.2.5, 1.2.1 o 1.0.3.
Per la 1.2.5, usa la versione es5.x.
Per la 1.2.1, usa la versione es3.x.
Per la 1.0.3, usa la versione es2.x. (solo le primissime Beagleboard dovrebbero averlo e queste non sono più supportate dagli ultimi driver rilasciati da TI e nemmeno da openSUSE.)
Se il modulo omapfb non è stato ancora caricato, caricalo (vedere la sezione DVI/TV).
Se i moduli legati a SGX non sono stati ancora caricati, caricali:
/etc/rc.d/rc.pvr start
Potresti anche caricare bufferclass_ti:
modprobe bufferclass_ti
Altri vari test sono disponibili con il pacchetto *test*.
Test funzionanti:
eglinfo pvr2d_test sgx_blit_test sgx_clipblit_test sgx_init_test services_test
Test non funzionanti (alcuni sono specifici per X11/DRI/DRM ma il supporto a Xorg non è stato ancora abilitato qui):
gles1test1 gles2test1 ovg_unit_test sgx_flip_test sgx_render_flip_test xeglinfo xgles1test1 xgles2test1 xmultiegltest xovg_unit_test
Molte altre librerie (includendo GLES) sono disponibili con il pacchetto *libs*.
Configurazione
Accelerazione hardware 2D/3D (Powervr SGX 530)
Il file /etc/powervr.ini viene usato per la configurazione runtime.
Librerie che possono essere utilizzate per il parametro WindowSystem in /etc/powervr.ini | Usate per |
---|---|
libpvrPVR2D_FLIPWSEGL.so | Per VSync sincronizzato scrivi nel Framebuffer - più lento, ma evita il tearing |
libpvrPVR2D_LINUXFBWSEGL.so | Se stai usando un frame buffer da console Linux (/dev/fb0). Per prevenire il tearing verticale al centro dello schermo |
libpvrPVR2D_FRONTWSEGL.so | Per scrivere direttamente al FrameBuffer - modalità FRONT - scrive direttamente sul FrameBuffer senza aspettare il VSync - modalità più veloce |
libpvrPVR2D_BLITWSEGL.so | Per scrittura diretta sul back-buffer, che dopo viene scritto sul FrameBuffer |
libpvrPVR2D_DRIWSEGL.so | Solo per l'integrazione con i driver X11/DRI/DRM |
Ulteriori parametri possono essere trovati: http://processors.wiki.ti.com/index.php/SGXDbg
Configurazione Xorg x11
Sono disponibili molti driver:
- fbdev: driver generico (puoi usare i driver SGX per ottenere prestazioni migliori)
- omap: usa X11/DRM/DRI (in sviluppo) (puoi usare i driver SGX per ottenere prestazioni migliori)
- omapfb: ottimizzati per NEON (non funziona)
fbdev driver
Installa Xorg X11 e il driver fbdev xf86-video-fbdev.
Puoi usare questo file xorg.conf con il driver fbdev.
Una volta che il driver SGX sarà disponibili, aggiungeremo il supporto ai driver con accelerazione 2D/3D nel file di configurazione di xorg per fbdev.
omap driver (omapdrm)
Installa Xorg X11 e il driver omap xf86-video-omap.
omapfb driver
Il driver omapfb è ottimizzato per NEON e dovrebbe funzionare meglio del driver fbdev.
Installa Xorg X11 e il driver omapfb xorg-x11-drv-omapfb.
Decommenta la linea:
/etc/X11/xorg.conf.d/20-omapfb.conf