openSUSE:Beagleboard (xM)
tagline: From openSUSE
Contents |
General information
Get some general information (Hardware description, installation of openSUSE, etc.) on HCL:BeagleBoard-xM.
Tests
audio in/out
For 12.2, you have to load the right modules with modprobe:
modprobe snd_soc_omap_mcbsp modprobe snd_soc_twl4030 modprobe snd-soc-omap3beagle
Then, you have to configure inputs and outputs. You can either:
- restore values from a file
wget http://guillaume.gardet.free.fr/openSUSE/beagleboard-alsa.conf alsactl -f beagleboard-alsa.conf restore
- configure it manually with alsamixer:
alsamixer
Then you can try to play some files:
aplay test.wav
And to record some sound:
arecord test_input.wav
CPU freq
Please DO NOT use BogoMIPS values but the provided script. BogoMIPS values are lower with new kernels used from openSUSE 12.3, but it has no effect on performances. For information, see: http://www.spinics.net/lists/arm-kernel/msg221672.html
In order to test CPU freq capabilities, please download this script:
http://guillaume.gardet.free.fr/openSUSE/cputest.sh
And execute it. You should see something like:
memtester: no process found 300000 600000 800000 is the available freqs bogomips@ boot: BogoMIPS : 175.65 Boot scaling frequency =300000 TESTING for 1 seconds at 300000 current scaling frequency(for 300000) =300000 bogomips@ frequency 300000: BogoMIPS : 175.65 TESTING for 1 seconds at 600000 current scaling frequency(for 600000) =600000 bogomips@ frequency 600000: BogoMIPS : 350.31 TESTING for 1 seconds at 800000 current scaling frequency(for 800000) =800000 bogomips@ frequency 800000: BogoMIPS : 467.41 More transitions TEST [0] 1000: 3 Seconds: jeu. mars 21 14:20:25 CET 2013 : time now = jeu. mars 21 14:20:28 CET 2013 [1] 1000: 3 Seconds: jeu. mars 21 14:20:25 CET 2013 : time now = jeu. mars 21 14:20:28 CET 2013 [2] 1000: 3 Seconds: jeu. mars 21 14:20:25 CET 2013 : time now = jeu. mars 21 14:20:28 CET 2013 ...
Automatic Voltage Scaling (AVS) (formerly known as Smartreflex)
AVS is not easily testable but is enabled in the kernel.
Adaptive Body Bias (ABB)
Not yet in mainline kernel.
DSP
Install what is needed:
zypper in dsp-tools tidsp-binaries
Load modules:
modprobe mailbox_mach modprobe tidspbridge base_img=/lib/dsp/baseimage.dof
For kernel 3.3.0 and previous, tidspbridge was named bridgedriver, so you need to do:
modprobe mailbox_mach modprobe bridgedriver base_img=/lib/dsp/baseimage.dof
Then you can try some dsp tools:
dsp-test
which returns:
copied 1000 times successfully
dsp-probe
which returns:
device: /codec device: /mixer device: /acdn device: /eteedn device: /mmmdn task: DASFTASK_TI task: SYNCCLOCK_TI task: dummy
DSP codecs for gstreamer
Install needed softs:
zypper in gst-dsp gst-omapfb gstreamer-utils
List the dsp codecs installed:
gst-inspect | grep dsp
which should return:
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
And then, run some trivial encoding tests:
gst-launch -v videotestsrc ! dspmp4venc ! fakesink enable-last-buffer=false gst-launch -v videotestsrc ! dsph263enc ! fakesink enable-last-buffer=false
Note: dsph264enc does not work.
You may need to install some gstreamer plugins to be able to play real files, such as :
gstreamer-0_10-plugins-good, gstreamer-0_10-plugins-bad, gstreamer-0_10-plugins-ugly
Then, you can play some real files:
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 #(need omapfbsink working but it seems broken...)
Ethernet
You can test functionality. Plug a cable on a network where a DHCP server and a router are running. Wait a while and then see if you have an IP address:
ifconfig eth0
Then try to ping something on the network:
ping 192.168.1.254 ping www.google.fr
You can also test the performances with iperf. Install iperf on a computer and on the board and run on one side the iperf server:
iperf -s
and on the other side, the iperf client:
iperf -c <ip_addr_of_iperf_server>
then you can invert the iperf server and client and rerun the tests.
On a Beagleboard xM, with kernel 3.4.0-3-omap2plus, we get 95 Mb/s.
SD/MMC
If you boot on your uSD card, then SD/MMC works! ;)
UART (debug)
Plug a serial cable (or serial/usb) between the board and your computer. Start minicom:
sudo minicom
And switch on the board. You should see something starting with:
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 hosts
Plug an USB stick and mount it:
mount /dev/sda1 /mnt
And see what is on your stick:
ls /mnt
Unmount it:
umount /mnt
USB OTG
module built and loaded on boot but do not know how to test it.
Video
DVI
omapdrm
omapdrm is the default driver and is auto-loaded on boot. You should see a login console on your DVI/HDMI screen.
omapdrm should auto-detect the best resolution of your DVI/HDMI display. If you want to force the resolution, add the video parameter to the kernel bootargs:
video=DVI-D-1:1440x900MR-24@60
Details on paramters are available here: http://nouveau.freedesktop.org/wiki/KernelModeSetting
If not, make sure libdrm_omap1 package is installed:
zypper in libdrm_omap1
omapfb driver
omapfb driver is not used by default. If you want to use it, unload omapdrm first (or black list it).
Then, load the right modules with modprobe:
modprobe panel-tfp410 modprobe omapfb mode=dvi:1440x900MR-24@60
And you should see a login console on your DVI/HDMI screen. Note that panel-tfp410 is needed for kernel 3.5+.
S-Video/Composite
You have to load the right module with modprobe.
For NTSC format:
modprobe omapfb mode=tv:ntsc
For PAL format:
modprobe omapfb mode=tv:pal
And you should see a login console on your TV screen.
2D/3D hardware acceleration (Powervr SGX 530)
You can find some testing RPMs named pvr-omapes* in this repo:
You have to find the right SGX core revision.
You should choose the sgx es version with the following table:
| 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 |
To be sure of your SGX core revision, you can use the devmem2 tool available in factory.
For OMAP35xx, AM35xx, AM/DM37xx family of chipsets (only), do:
devmem2 0x48004B48 w 0x2 devmem2 0x48004B10 w 0x1 devmem2 0x48004B00 w 0x2 devmem2 0x50000014
The last step shows a value like:
0x10205 0x10201 0x10003
Which means SGX core revision 1.2.5, 1.2.1 or 1.0.3.
For 1.2.5, use version es5.x.
For 1.2.1, use version es3.x.
For 1.0.3, use version es2.x. (Only very early beagleboards should have it and thus it is no more supported by the latest drivers provided by TI and are also dropped from openSUSE.)
If omapfb module is not yet loaded, load it (see DVI/TV section).
If SGX related modules are not yet loaded, load them:
/etc/rc.d/rc.pvr start
You may also load bufferclass_ti:
modprobe bufferclass_ti
Various tests are provided with *test* package.
Working tests (with version 4.08.00.02):
eglinfo gles1test1 gles2test1 pvr2d_test sgx_blit_test sgx_clipblit_test sgx_init_test sgx_render_flip_test -nf services_test
Not working tests (some are X11/DRI/DRM specific and Xorg support is not yet enabled here):
ovg_unit_test sgx_flip_test xeglinfo xgles1test1 xgles2test1 xmultiegltest xovg_unit_test
Lots of libs (including GLES) are also provided with *libs* package.
configuration
2D/3D hardware acceleration (Powervr SGX 530)
The file /etc/powervr.ini is used for runtime configuration.
| Libs which can be used for WindowSystem parameter in /etc/powervr.ini | Used for |
|---|---|
| libpvrPVR2D_FLIPWSEGL.so | For VSync synchronised writes to Framebuffer - slower, but avoids tearing |
| libpvrPVR2D_LINUXFBWSEGL.so | If you are running on a Linux console frame buffer (/dev/fb0). To prevent vertical tearing at the center of the screen |
| libpvrPVR2D_FRONTWSEGL.so | For direct writes to FrameBuffer - FRONT mode of operation - directly writes to FrameBuffer without waiting for vsync - fastest mode of operation |
| libpvrPVR2D_BLITWSEGL.so | For direct writes to back-buffer, which later gets written to FrameBuffer with sync |
| libpvrPVR2D_DRIWSEGL.so | For integration with X11/DRI/DRM drivers only |
More paramters can be found here: http://processors.wiki.ti.com/index.php/SGXDbg
Xorg x11 configuration
Several drivers are available:
- fbdev: generic driver (can use SGX drivers to have better performances)
- omap: Use X11/DRM/DRI (under developpment) (can use SGX drivers to have better performances)
- omapfb: NEON optimized (does not work)
fbdev driver
Install Xorg x11 and fbdev driver xf86-video-fbdev.
You can use this xorg.conf to use the fbdev driver.
Once SGX driver will be available, we will add 2D/3D accelerated driver to fbdev xorg config.
omap driver (omapdrm)
Install Xorg x11 and omap driver xf86-video-omap.
omapfb driver
The omapfb driver is NEON optimized and should be better than fbdev driver.
Install Xorg x11 and oampfb driver xorg-x11-drv-omapfb.
Uncomment lines in:
/etc/X11/xorg.conf.d/20-omapfb.conf
