Difference between revisions of "User:Md84419/BeagleboardAngstrom"
m (Created page with 'A random collection of notes on the Angstrom builds for Beagleboard = Koen = Koen is responsible for the distribution at [http://www.angstrom-distribution.org/demo/beagleboard...') |
m (→On Beagleboard) |
||
(13 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
A random collection of notes on the Angstrom builds for Beagleboard | A random collection of notes on the Angstrom builds for Beagleboard | ||
+ | = MLO = | ||
− | = Koen = | + | The revC MLO does not work correctly from NAND on revB boards and will cause the boot process to fail unless the user button is pressed (to cause booting from MMC) during the boot process. |
+ | |||
+ | = uBoot = | ||
+ | |||
+ | Older uboots display a beagleboard splash. These are outdated and broken. | ||
+ | |||
+ | = Koen distribution = | ||
Koen is responsible for the distribution at [http://www.angstrom-distribution.org/demo/beagleboard/ http://www.angstrom-distribution.org/demo/beagleboard/]. | Koen is responsible for the distribution at [http://www.angstrom-distribution.org/demo/beagleboard/ http://www.angstrom-distribution.org/demo/beagleboard/]. | ||
Line 12: | Line 19: | ||
USR1: MMC IO activity monitor. | USR1: MMC IO activity monitor. | ||
+ | == SVideo == | ||
+ | |||
+ | Getting s-video working is a bit of a black art at the moment. Here is the script that tomba wrote that sets up svideo on fb2 (this requires the latest kernels with DSS2 support, such as the koen distribution). | ||
+ | |||
+ | <pre> | ||
+ | ovl2=/sys/devices/platform/omapdss/overlay2 | ||
+ | |||
+ | # check that display1 is really TV! | ||
+ | tv=/sys/devices/platform/omapdss/display1 | ||
+ | |||
+ | fb2=/sys/class/graphics/fb2 | ||
+ | |||
+ | tvw=`cat $tv/timings | cut -d "," -f 2 | cut -d "/" -f 1` | ||
+ | tvh=`cat $tv/timings | cut -d "," -f 3 | cut -d "/" -f 1` | ||
+ | |||
+ | mem=$((tvw*tvh*4)) | ||
+ | |||
+ | echo "0" > $tv/enabled | ||
+ | echo "0" > $ovl2/enabled | ||
+ | echo "" > $ovl2/manager | ||
+ | |||
+ | # allocate memory for framebuffer | ||
+ | echo $mem > $fb2/size | ||
+ | |||
+ | fbset -fb /dev/fb2 -xres $tvw -vxres $tvw -yres $tvh -vyres $tvh -depth 32 | ||
+ | |||
+ | echo "0,0" > $ovl2/position | ||
+ | echo "$tvw,$tvh" > $ovl2/output_size | ||
+ | echo "tv" > $ovl2/manager | ||
+ | echo "1" > $ovl2/enabled | ||
+ | |||
+ | echo "1" > $tv/enabled | ||
+ | |||
+ | # output random pixels to tv | ||
+ | cat /dev/urandom > /dev/fb2 | ||
+ | </pre> | ||
+ | |||
+ | For some reason, udev didn't create the devices for me. Check like so: | ||
+ | ls -l /dev/fb* | ||
+ | You should see: | ||
+ | lrwxrwxrwx 1 root root 3 Jun 13 2009 /dev/fb -> fb0 | ||
+ | crw-rw---- 1 root video 29, 0 Jun 13 2009 /dev/fb0 | ||
+ | crw-rw---- 1 root video 29, 1 Jun 13 2009 /dev/fb1 | ||
+ | crw-rw---- 1 root video 29, 2 Jun 13 2009 /dev/fb2 | ||
+ | |||
+ | If you only get two lines back issue the following commands as root: | ||
+ | mknod /dev/fb1 c 29 1 | ||
+ | mknod /dev/fb2 c 29 2 | ||
+ | chgrp video /dev/fb1 /dev/fb2 | ||
+ | chmod 660 /dev/fb1 /dev/fb2 | ||
+ | |||
+ | Various mailing list posts suggest a bootargs similar to below, although it didn't seem to make a difference for me. Your mileage may vary. | ||
+ | |||
+ | bootargs 'console=ttyS2,115200n8 root=/dev/mmcblk0p2 noinitrd omapfb.video_mode=720x576@50 init=/init rootfstype=ext3 rw rootdelay=2 video=omapfb:vram:2M,vram:4M,vram:4M omapdss.def_disp=dvi omapfb.mode=dvi:1024x768MR-24@60 omapfb.vram=0:4M,1:2M,2:4M' | ||
== DSS2A == | == DSS2A == | ||
Line 17: | Line 78: | ||
DSS2 is the display driver that has been virtually rewritten. It includes a sysfs interface at /sys/class/grpahics and /sys/driver/platform/omapdss. See for instance [http://groups.google.com/group/beagleboard/browse_thread/thread/a57950001eeb54be/fc252d23f8eebc17] for more info - or just search the google mailing list for DSS2. | DSS2 is the display driver that has been virtually rewritten. It includes a sysfs interface at /sys/class/grpahics and /sys/driver/platform/omapdss. See for instance [http://groups.google.com/group/beagleboard/browse_thread/thread/a57950001eeb54be/fc252d23f8eebc17] for more info - or just search the google mailing list for DSS2. | ||
+ | == Video playback == | ||
− | = James = | + | To test video playback, mplayer seems to work well. |
+ | wget http://www.beagleboard.org/uploads/HARRY.YUV | ||
+ | mplayer -vo fbdev:/dev/fb2 HARRY.YUV | ||
+ | |||
+ | Or for a longer, more demanding test, try big buck bunny: | ||
+ | wget http://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_480p_surround-fix.avi | ||
+ | mplayer -nosound big_buck_bunny_480p_surround-fix.avi | ||
+ | |||
+ | Or: | ||
+ | wget ... | ||
+ | mplayer -ao alsa -lavdopts lowres=1:fast -vo fbdev:/dev/fb2 big_buck_bunny_480p_surround-fix.avi | ||
+ | |||
+ | I'm fairly sure that mplayer is doing the video scaling in software. If it is possible to get it to use hardware scaling, the results should be msuch better. | ||
+ | |||
+ | Next is to investigate the gstreamer_openmax stuff that reportedly can playback big buck bunny using only 10% of the CPU. | ||
+ | |||
+ | == Mercurial == | ||
+ | |||
+ | Mercurial requires Python with zlib support. The koen distribution doesn't have a complete python by default, you need to install the python-modules meta-package: | ||
+ | opkg install python-modules | ||
+ | Note that the above command will take some time and require quite a bit of disk space. | ||
+ | |||
+ | Python also requires full versions of the standard commands (eg an unzip that supports the -t flag), not the busybox replacements. | ||
+ | opkg install unzip | ||
+ | |||
+ | |||
+ | Failed test-archive: output changed | ||
+ | Failed test-archive-symlinks: output changed | ||
+ | Failed test-clone-cgi: output changed | ||
+ | Failed test-command-template: output changed | ||
+ | Failed test-context.py: output changed and returned error code 1 | ||
+ | Failed test-convert: output changed | ||
+ | Failed test-dispatch.py: output changed and returned error code 1 | ||
+ | Failed test-doctest.py: output changed and returned error code 1 | ||
+ | Failed test-hgweb-no-path-info: output changed | ||
+ | Failed test-hgweb-no-request-uri: output changed | ||
+ | Failed test-inotify-issue1371: output changed | ||
+ | Failed test-lock-badness: output changed | ||
+ | Failed test-merge-tools: output changed | ||
+ | Failed test-mq: output changed and returned error code -15 | ||
+ | Failed test-newcgi: output changed and returned error code 1 | ||
+ | Failed test-newercgi: output changed and returned error code 1 | ||
+ | Failed test-non-interactive-wsgi: output changed and returned error code 1 | ||
+ | Failed test-oldcgi: output changed and returned error code 1 | ||
+ | Failed test-permissions: output changed | ||
+ | Failed test-pull-permission: output changed | ||
+ | Failed test-rename-merge2: output changed and returned error code -15 | ||
+ | Failed test-revlog-ancestry.py: output changed and returned error code 1 | ||
+ | Failed test-symlink-os-yes-fs-no.py: output changed and returned error code 1 | ||
+ | Failed test-ui-config: output changed and returned error code 1 | ||
+ | Failed test-walkrepo.py: output changed and returned error code 1 | ||
+ | # Ran 321 tests, 25 skipped, 25 failed. | ||
+ | |||
+ | == dvb-apps == | ||
+ | |||
+ | File not found: /lib/modules/2.6.29-omap1/build/.config at ./scripts/make_kconfig.pl line 32, <IN> line 4. | ||
+ | |||
+ | == Open Issues == | ||
+ | |||
+ | * usb ethernet driver is very flaky - falls over after ~30s of heavy xfer or randomly with light usage | ||
+ | * need to change keyboard map to UK | ||
+ | * Python can't find zlib: | ||
+ | python -c "import zlib" | ||
+ | ImportError: No module named zlib | ||
+ | * USB PnP not working - devices only recognised if they are present at boot time | ||
+ | * Plugging HDMI lead in causes kernel to hang (USR0 illuminates constantly) | ||
+ | |||
+ | |||
+ | == Resolved issues == | ||
+ | |||
+ | * "fatal: not a git repository" when running the linux-omap_2.6.29.bb task. All the other tasks complete. Any ideas? | ||
+ | |||
+ | git doesn't like firewalls. Even after resolving firewall problems, this error message can continue. The solution is to clean the git repo and retry: | ||
+ | rm -rf /home/oe/unstable/downlaods/*git* -rf | ||
+ | cd /home/oe/unstable | ||
+ | bitbake -c clean linux-omap | ||
+ | # now redo the bitbake build command that failed | ||
+ | |||
+ | * e2fsprogs / blkid version error | ||
+ | checking for BLKID... configure: error: Package requirements (blkid >= 1.43) were not met: | ||
+ | Requested 'blkid >= 1.43' but version of blkid is 1.41.5 | ||
+ | |||
+ | Building with the wrong e2fsprog and options | ||
+ | bitbake -c clean hal | ||
+ | bitbake -c clean e2fsprogs | ||
+ | bitbake -c clean e2fsprogs-libs | ||
+ | bitbake -c clean util-linux-ng | ||
+ | bitbake -c clean util-linux | ||
+ | # now redo the bitbake build command that failed | ||
+ | |||
+ | = James distribution = | ||
James is an alternative build that is being used for the Beagleboard James project. Some developers say it has better display and devices support than the Koen distribution. | James is an alternative build that is being used for the Beagleboard James project. Some developers say it has better display and devices support than the Koen distribution. | ||
+ | |||
+ | NOTE: James is based upon a snapshot of Koen's distribution and is not a separate distribution. Apparently there is some regression along the line. Frankly speaking James is in need of an update, but the author of James is too busy on other issues at the moment. | ||
+ | |||
+ | |||
+ | = Devices I am using = | ||
+ | |||
+ | == On Knoppix 6.0.1 Laptop == | ||
+ | * Technika USB 2.0 17-in-1 card reader (Model: TechCard2). Transcend chipset. | ||
+ | * NewLink USB Serial Adaptor from newlink.co.uk (also available from maplin.co.uk). Prolific PL2303 chipset. | ||
+ | |||
+ | Bus 002 Device 005: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port | ||
+ | Bus 001 Device 003: ID 1307:0330 Transcend Information, Inc. | ||
+ | |||
+ | == On Beagleboard == | ||
+ | * Fujitsu-Siemens keyboard (Model KB SC USB GB). Holtek Semiconductor chipset. | ||
+ | * Texet 3D Optical Mouse | ||
+ | * Tiny Bluetooth 2.1 dongle: Veho VB-5881 (veho-uk.com). Cambridge Silicon Radio chipset. Unverified. | ||
+ | * Davicom DM9601 Ethernet. Case is clear blue, unbranded. Device is unreliable. | ||
+ | * Belkin / Linkit USB 7-Port Hub (model F5U703ukLI). 2x Genesys Logic GL850G chips. | ||
+ | |||
+ | <rss>http://feeds.delicious.com/v2/rss/md84419/beagleboard+peripheral?count=15</rss> | ||
+ | |||
+ | Bus 001 Device 001: ID 1d6b:0002 | ||
+ | Bus 002 Device 001: ID 1d6b:0002 | ||
+ | Bus 002 Device 002: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB | ||
+ | Bus 002 Device 003: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode) | ||
+ | Bus 002 Device 004: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB | ||
+ | Bus 002 Device 005: ID 0a46:9601 Davicom Semiconductor, Inc. (ethrnet) | ||
+ | Bus 002 Device 006: ID 15d9:0a33 (mouse) | ||
+ | Bus 002 Device 007: ID 04d9:1603 Holtek Semiconductor, Inc. (keyboard) | ||
+ | |||
+ | * I was using a Pluscom 7 port SUB 2.0 hub (U7PH-GL850G) which as the name suggests, is also a Genesys Logic 2xGL850G chipset -based hub, but the power supply failed before I got the beagleboard working correctly. |
Latest revision as of 05:04, 23 June 2009
A random collection of notes on the Angstrom builds for Beagleboard
Contents
MLO
The revC MLO does not work correctly from NAND on revB boards and will cause the boot process to fail unless the user button is pressed (to cause booting from MMC) during the boot process.
uBoot
Older uboots display a beagleboard splash. These are outdated and broken.
Koen distribution
Koen is responsible for the distribution at http://www.angstrom-distribution.org/demo/beagleboard/.
LEDs
USR0: heartbeat, driven by the Kernel. However, it is possible for the board to fail to boot yet the heartbeat to continue (for instance the "pixel clock problem").
USR1: MMC IO activity monitor.
SVideo
Getting s-video working is a bit of a black art at the moment. Here is the script that tomba wrote that sets up svideo on fb2 (this requires the latest kernels with DSS2 support, such as the koen distribution).
ovl2=/sys/devices/platform/omapdss/overlay2 # check that display1 is really TV! tv=/sys/devices/platform/omapdss/display1 fb2=/sys/class/graphics/fb2 tvw=`cat $tv/timings | cut -d "," -f 2 | cut -d "/" -f 1` tvh=`cat $tv/timings | cut -d "," -f 3 | cut -d "/" -f 1` mem=$((tvw*tvh*4)) echo "0" > $tv/enabled echo "0" > $ovl2/enabled echo "" > $ovl2/manager # allocate memory for framebuffer echo $mem > $fb2/size fbset -fb /dev/fb2 -xres $tvw -vxres $tvw -yres $tvh -vyres $tvh -depth 32 echo "0,0" > $ovl2/position echo "$tvw,$tvh" > $ovl2/output_size echo "tv" > $ovl2/manager echo "1" > $ovl2/enabled echo "1" > $tv/enabled # output random pixels to tv cat /dev/urandom > /dev/fb2
For some reason, udev didn't create the devices for me. Check like so:
ls -l /dev/fb*
You should see:
lrwxrwxrwx 1 root root 3 Jun 13 2009 /dev/fb -> fb0 crw-rw---- 1 root video 29, 0 Jun 13 2009 /dev/fb0 crw-rw---- 1 root video 29, 1 Jun 13 2009 /dev/fb1 crw-rw---- 1 root video 29, 2 Jun 13 2009 /dev/fb2
If you only get two lines back issue the following commands as root:
mknod /dev/fb1 c 29 1 mknod /dev/fb2 c 29 2 chgrp video /dev/fb1 /dev/fb2 chmod 660 /dev/fb1 /dev/fb2
Various mailing list posts suggest a bootargs similar to below, although it didn't seem to make a difference for me. Your mileage may vary.
bootargs 'console=ttyS2,115200n8 root=/dev/mmcblk0p2 noinitrd omapfb.video_mode=720x576@50 init=/init rootfstype=ext3 rw rootdelay=2 video=omapfb:vram:2M,vram:4M,vram:4M omapdss.def_disp=dvi omapfb.mode=dvi:1024x768MR-24@60 omapfb.vram=0:4M,1:2M,2:4M'
DSS2A
DSS2 is the display driver that has been virtually rewritten. It includes a sysfs interface at /sys/class/grpahics and /sys/driver/platform/omapdss. See for instance [1] for more info - or just search the google mailing list for DSS2.
Video playback
To test video playback, mplayer seems to work well.
wget http://www.beagleboard.org/uploads/HARRY.YUV mplayer -vo fbdev:/dev/fb2 HARRY.YUV
Or for a longer, more demanding test, try big buck bunny:
wget http://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_480p_surround-fix.avi mplayer -nosound big_buck_bunny_480p_surround-fix.avi
Or:
wget ... mplayer -ao alsa -lavdopts lowres=1:fast -vo fbdev:/dev/fb2 big_buck_bunny_480p_surround-fix.avi
I'm fairly sure that mplayer is doing the video scaling in software. If it is possible to get it to use hardware scaling, the results should be msuch better.
Next is to investigate the gstreamer_openmax stuff that reportedly can playback big buck bunny using only 10% of the CPU.
Mercurial
Mercurial requires Python with zlib support. The koen distribution doesn't have a complete python by default, you need to install the python-modules meta-package:
opkg install python-modules
Note that the above command will take some time and require quite a bit of disk space.
Python also requires full versions of the standard commands (eg an unzip that supports the -t flag), not the busybox replacements.
opkg install unzip
Failed test-archive: output changed
Failed test-archive-symlinks: output changed
Failed test-clone-cgi: output changed
Failed test-command-template: output changed
Failed test-context.py: output changed and returned error code 1
Failed test-convert: output changed
Failed test-dispatch.py: output changed and returned error code 1
Failed test-doctest.py: output changed and returned error code 1
Failed test-hgweb-no-path-info: output changed
Failed test-hgweb-no-request-uri: output changed
Failed test-inotify-issue1371: output changed
Failed test-lock-badness: output changed
Failed test-merge-tools: output changed
Failed test-mq: output changed and returned error code -15
Failed test-newcgi: output changed and returned error code 1
Failed test-newercgi: output changed and returned error code 1
Failed test-non-interactive-wsgi: output changed and returned error code 1
Failed test-oldcgi: output changed and returned error code 1
Failed test-permissions: output changed
Failed test-pull-permission: output changed
Failed test-rename-merge2: output changed and returned error code -15
Failed test-revlog-ancestry.py: output changed and returned error code 1
Failed test-symlink-os-yes-fs-no.py: output changed and returned error code 1
Failed test-ui-config: output changed and returned error code 1
Failed test-walkrepo.py: output changed and returned error code 1
- Ran 321 tests, 25 skipped, 25 failed.
dvb-apps
File not found: /lib/modules/2.6.29-omap1/build/.config at ./scripts/make_kconfig.pl line 32, <IN> line 4.
Open Issues
- usb ethernet driver is very flaky - falls over after ~30s of heavy xfer or randomly with light usage
- need to change keyboard map to UK
- Python can't find zlib:
python -c "import zlib" ImportError: No module named zlib
- USB PnP not working - devices only recognised if they are present at boot time
- Plugging HDMI lead in causes kernel to hang (USR0 illuminates constantly)
Resolved issues
- "fatal: not a git repository" when running the linux-omap_2.6.29.bb task. All the other tasks complete. Any ideas?
git doesn't like firewalls. Even after resolving firewall problems, this error message can continue. The solution is to clean the git repo and retry:
rm -rf /home/oe/unstable/downlaods/*git* -rf cd /home/oe/unstable bitbake -c clean linux-omap # now redo the bitbake build command that failed
- e2fsprogs / blkid version error
checking for BLKID... configure: error: Package requirements (blkid >= 1.43) were not met: Requested 'blkid >= 1.43' but version of blkid is 1.41.5
Building with the wrong e2fsprog and options
bitbake -c clean hal bitbake -c clean e2fsprogs bitbake -c clean e2fsprogs-libs bitbake -c clean util-linux-ng bitbake -c clean util-linux # now redo the bitbake build command that failed
James distribution
James is an alternative build that is being used for the Beagleboard James project. Some developers say it has better display and devices support than the Koen distribution.
NOTE: James is based upon a snapshot of Koen's distribution and is not a separate distribution. Apparently there is some regression along the line. Frankly speaking James is in need of an update, but the author of James is too busy on other issues at the moment.
Devices I am using
On Knoppix 6.0.1 Laptop
- Technika USB 2.0 17-in-1 card reader (Model: TechCard2). Transcend chipset.
- NewLink USB Serial Adaptor from newlink.co.uk (also available from maplin.co.uk). Prolific PL2303 chipset.
Bus 002 Device 005: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port Bus 001 Device 003: ID 1307:0330 Transcend Information, Inc.
On Beagleboard
- Fujitsu-Siemens keyboard (Model KB SC USB GB). Holtek Semiconductor chipset.
- Texet 3D Optical Mouse
- Tiny Bluetooth 2.1 dongle: Veho VB-5881 (veho-uk.com). Cambridge Silicon Radio chipset. Unverified.
- Davicom DM9601 Ethernet. Case is clear blue, unbranded. Device is unreliable.
- Belkin / Linkit USB 7-Port Hub (model F5U703ukLI). 2x Genesys Logic GL850G chips.
Extension:RSS -- Error: "http://feeds.delicious.com/v2/rss/md84419/beagleboard+peripheral?count=15" is not in the whitelist of allowed feeds. There are no allowed feed URLs in the whitelist.
Bus 001 Device 001: ID 1d6b:0002 Bus 002 Device 001: ID 1d6b:0002 Bus 002 Device 002: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB Bus 002 Device 003: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode) Bus 002 Device 004: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB Bus 002 Device 005: ID 0a46:9601 Davicom Semiconductor, Inc. (ethrnet) Bus 002 Device 006: ID 15d9:0a33 (mouse) Bus 002 Device 007: ID 04d9:1603 Holtek Semiconductor, Inc. (keyboard)
* I was using a Pluscom 7 port SUB 2.0 hub (U7PH-GL850G) which as the name suggests, is also a Genesys Logic 2xGL850G chipset -based hub, but the power supply failed before I got the beagleboard working correctly.