New all-in-one Buildroot ver. 2012.02-mg01.1 released! It includes MLO + U-Boot 2011.12, Linux kernel 3.2.8 (@1GHz) and RootFS with all the necessary packages for working with LI-5M03 (mt9p031) camera module from Leopard Imaging. In order to build the images just run the following commands:
git clone git://github.com/MaxGalemin/buildroot.git
cd ./buildroot
make beagle_xm_full_defconfig
make
After that you’ll find all the images in buildroot/output/images folder:
- MLO – U-Boot SPL first stage bootloader;
- u-boot.img – U-Boot 2011.12 binary;
- uEnv.txt – simple file with U-Boot parameters;
- uImage – Linux kernel 3.2.8 image;
- rootfs.tar – Root Filesystem image;
This build requires an external toolchain Codesourcery 2011.09-70 which needs to be installed in the /opt/CodeSourcery folder. However, you can use another toolchain version or folder after proper initialisation in Toolchain menu (Buildroot menuconfig target).
I added Media-ctl and Yavta packages to the current release so you can configure and test your LI-5M02 (mt9p031) Aptina camera module. Also, I included OpenCV 2.3.1, MPlayer, FFmpeg and GStreamer packages, but please note that there is no X11 support in this release so if you need X11 you need to enable it in Buildroot. For full list of packages in current release please see corresponding wiki page: 2012.02-mg01.1.
If you need to add/remove some packets you can easily do this using the next command:
make menuconfig
Package Selection for the target —>
Please note that if you need to remove something you need to untick packet’s name in menuconfig and rebuild the entire RootFS.
Also please note that I added the following compiler flags to the configuration for Beagleboard-xM:
-mfpu=neon -ftree-vectorize -mfloat-abi=softfp
Installation
All the files can be found in buildroot/output/images folder. Just copy MLO, u-boot.img, uEnv.txt and uImage to the FAT partition of your SD card and untar everything from rootfs.tar to the second ext3 partition. That’s all, your Beagleboard-xM is ready to go.
Precompiled images
If you don’t have enough time for downloading/building everything or if you want just to test your board you can always use my precompiled images (rootfs.tar.gz – basic RootFS, rootfs_full.tar.gz – RootFS with all default packages):
P.S. If you find some issues feel free to add ticket to the Issues. And please note that it’s just a project I’m using for building all the files for my BB-xM. It’s not a clone or official/unofficial mirror, it’s just a personal project just for fun.
P.P.S. In order to build a basic minimal configuration (i.e. MLO, U-Boot, Linux kernel and RootFS with Busybox only) please use the following commands:
make beagle_xm_defconfig
make
UPDATE (2012.03.09):
Images were updated with patch release ver. 2012.02-mg01.2. For details please see Issue 23: kernel loading problem on beagleboard xM Rev A.
UPDATE (2012.03.13):
Bumped release version 2012.02-mg01.3.
Hi Max,
great work, you saved me lot of time with getting the ISP pipeline running!
With your „magic commands“ from http://groups.google.com/group/beagleboard/browse_thread/thread/1b99e1b627a542ed/721ac8bbdb7655ca:
media-ctl -v -r -l ‘”mt9p031 2-0048″:0->”OMAP3 ISP CCDC”:0[1], “OMAP3 ISP CCDC”:2->”OMAP3 ISP preview”:0[1], “OMAP3 ISP preview”:1->”OMAP3 ISP resizer”:0[1], “OMAP3 ISP resizer”:1->”OMAP3 ISP resizer output”:0[1]‘
media-ctl -v -f ‘”mt9p031 2-0048″:0 [SGRBG12 1024x768], “OMAP3 ISP CCDC”:2 [SGRBG10 1024x768], “OMAP3 ISP preview”:1 [UYVY 10006x760], “OMAP3 ISP resizer”:1 [UYVY 1024x768]‘
yavta -f UYVY -s 1024×768 -n 8 –skip 3 –capture=1000 –stdout /dev/video6 | mplayer – -demuxer rawvideo -rawvideo w=1024:h=768:format=uyvy -vo fbdev
I get an image. Unfortunately the framerate is <7fps which is far too low for my application. Reducing the resolution didn’t change a lot. Do you have any idea where the bottleneck could be?
My goal ist to achieve 30fps@1024×768 (with LI5M03 on BBxM rev. C)
kind regards
Markus
Hi Markus,
Yep, my goal is also 25-30fps with 1024×768 resolution. I’m working on it now.
Cheers,
Max.
Hi Max,
Do you have any news? I was playing around for one week now without any remarkable improvements (8.5fps). I measured the camera pixelclock which is only 46.8MHz, this could be increased but I don’t think it is the main problem.
Another question: We need to implement an autofocus feature on our camera. Did you ever use the H3A module?
kind regards
Markus
Hi Markus,
No, I don’t have eny news yet as I’m very busy with another project at the moment. Sorry.
Cheers,
Max.
Hi Max,
Many thanks for releasing those files.
Do you have any article or website that show someone how to integrate a package [i.e. drivers, code, etc..] into a linux kernel.
I have got a USB touch controller eGalaxTouch that I am using with my BeagleBoard-xm. The touchscreen works but I could not calibrate it with tslib and other calibration. So I will like to include the driver source code as a moudle in a linux kernel before I cross – build it for my BeagleBoard-xm
Please help!
Cheers!
God blesses!!!
Best regards,
Sanyaade
Hi Max,
I’m curious to know if you managed to achieve that 25-30 FPS with the lbcm5m03 yet (mt9p031)? I’m struggling with getting it to work, and while it does capture, 11 FPS is on the slow side (I’m certain you’re aware of that
).
I did notice on another post you saying something about the frame-rate issue being related to an initialization of the mt9p031 driver and that you’d had it working at 30 FPS…but that appeared to be with an older kernel. Does that fix apply to, or can it be applied to, the current kernel?
I want to know how to get the MLO source ,can you send me ?
Hi yanlingzhen,
There are two options:
1. You can use U-Boot SPL first stage loader (this is my preference and actually this version of first stage bootloader is used in the current Buildroot). Please refer to the U-Boot 2011.12 sources/description for details;
2. Or if you need a separate/another version you can use X-Loader from the following repo (please note that I haven’t tested that version of X-Loader):
git://gitorious.org/x-loader/x-loader.git
Cheers,
Max.
I have two questions.
1. I installed the external toolchain Codesourcery 2011.09-70, got your buildroot, set up the environment, fixed the dash-bash problem and started the compile. The scripts and compilers run for hours and finall terminated with the following error.
make[3]: Entering directory `/home/gbarton/buildroot/output/build/host-util-linux-2.20/misc-utils’
CC cal.o
CCLD logger
cal.c:82:71: fatal error: term.h: No such file or directory
compilation terminated.
2. While waiting for the compile I decided to just make an SD card with the precompiled images to see if it will work for what I need. The card boots and the camera shows up in the messages so I would expect it to work. My problem is I can’t seem to get the magic commands typed or copied into the console window. I’m using PuTTY on a Windows machine for the connection to the console port of the BeagleboardXM. When I try to type that huge line in it will wrap.
Hi Garry,
1. Try to install ncurses-dev package on your host system.
2. It’s an known issue with line wrapping. You can try google play with PS1 variable in /etc/profile. Or just use ssh connection to the board.
Cheers,
Max.
Hi Max,
Installing ncurses-dev did get me past the error I posted yesterday but then is ran into another one. I must have something set up wrong on my system. Any ideas on this one?
The following error is now generated:
In file included from setterm.c:111:0:
/home/gbarton/buildroot/output/host/usr/include/ncurses/ncurses.h:796:28: error: conflicting types for ‘tigetflag’
/usr/include/term.h:775:28: note: previous declaration of ‘tigetflag’ was here
/home/gbarton/buildroot/output/host/usr/include/ncurses/ncurses.h:797:28: error: conflicting types for ‘tigetnum’
/usr/include/term.h:776:28: note: previous declaration of ‘tigetnum’ was here
/home/gbarton/buildroot/output/host/usr/include/ncurses/ncurses.h:798:31: error: conflicting types for ‘tigetstr’
/usr/include/term.h:772:31: note: previous declaration of ‘tigetstr’ was here
/home/gbarton/buildroot/output/host/usr/include/ncurses/ncurses.h:802:31: error: conflicting types for ‘tparm’
/usr/include/term.h:779:31: note: previous declaration of ‘tparm’ was here
make[3]: *** [setterm.o] Error 1
-Garry
Hi Garry,
Your solution is:
rm -rf /home/gbarton/buildroot/output/build/host-util-linux-2.20
make
Cheers,
Max.
I was finally able to compile everything and make an SD card and it boots but it appears to not do much. I just get a penguin on the upper left corner of the screen. No GUI, no network etc..
Is this normal?
Also when I send the magical commands to the camera I don’t get any video but I get the following error:
media_parse_setup_link: Unable to parse link
Unable to parse link: Invalid argument (22).
Yes, it’s normal.
Hi Max,
Is it possible to use the prebuilt images with out the serial cable and minicom? I have a BeagleboardXM Rev C and I am trying to use your prebuilt images. I have connected a monitor and usb keyboard to BBXm ans when it boots, it shows only the penguin at the top and stays there. Any idea how to proceed?
Hi MamyK,
Unfortunately not at the moment. You should use serial connection, or alternatively you can compile your RootFS with gui support.
Cheers,
Max.
I hand typed all the commands into a script and was able to get images. Apparently pasting into vi from from the web page didn’t work.
I have another question. Now that I have the buildroot creating all the files needed to run the system how do I change something. For example I need to reassign the DSS pins in beagle.h and recompile. I changed beagle.h and run make again but it didn’t recompile u-boot. Is there a way to just recompile uboot from the code buildroot put on my system?
Just remove the following two files and run make once again:
output/build/uboot-2011.12/.stamp_built
output/build/uboot-2011.12/.stamp_images_installed
Hi Max, I would like to check if your prebuilt image would work with beagleboard-xm Rev A2/A3/C?
Hi longzz87,
It works on Rev A3/C and it should work on Rev A2 as well (I can’t see any reason why it wouldn’t).
Cheers,
Max.
Thanks!
Hi Max, now i really need a wireless adapter to stream the video to my laptop. Now, I have TP-Link TL-WN723N wireless adapter. However, I have no idea how to install the driver. Is there any advice that you could give?
Try to find driver for this adapter in linux 3.2.8 drivers and enable it in board/beagleboard/xm/linux-3.2.8.config.
hi,
even though i have ncurses_dev installed in my ubuntu 10.04 ( my host machine ) I am still getting this error, can you please point out what I maybe doing wrong.
checking for ncurses/ncurses.h and ncurses/term.h… no
configure: error: ncurses header not found
make: *** [/home/dchatterjee/buildroot/buildroot/output/build/mc-4.8.1/.stamp_configured] Error 1
regards
D
Hi kimera,
1. Could you please double check if you have ncurses-dev installed on your host system?
whereis term.h
whereis ncurses.h
2. Or you can build your RootFS without Midnight Commander:
make menuconfig
Package Selection for the target —>
Shell and utilities —>
mc [ ]
make
Cheers,
Max.
Hi,
I am tryng to compile. I don’t know why, but when I start with make appear error: can’t execute /opt/CodeSourcery/arm-none-linux-gnueabi-gcc
It’s possible that I haven’t correctly installed the CodeSourcery. I don’t understand how to install it and so I have only untar in “/opt/CodeSourcery”.
So I set and used a toolchain that works with other procedure for Beagleboard XM revC and Angstrom. (the toolchain is http://www.angstrom-distribution.org/toolchains).
Infact when I start with make it compiles for 3 hour and then give me seguent error:
checking linux/media.h usability… no
checking linux/media.h presence… no
checking for linux/media.h… no
ERROR: Kernel header file not found or not usable!
make: *** [/root/buildroot/output/build/media-ctl-36a1357c9c879092fe2e36c82187f1d35b1efe13/.stamp_configured] Errore 1
Do you know what’s the matter?
While waiting for the compile I decided to just make an SD card with the precompiled images. I used the rootfs_full.tar.gz because I can’t download rootfs.tar.gz.
It starts but when i try to use the “magic command” (I made a script with the command for putty on windows) terminal says:
Media-ctl: command not found
is it right?
Thank’s for attention and help!
I have tried to recompile and this time the error is:
DDEPENDS_ON_LIBICONV=1 -DDEPENDS_ON_LIBINTL=1 -DEXEEXT=\”\” -pipe -mfpu=neon -ftree-vectorize -mfloat-abi=softfp -Os -c strstr.c
rm -f t-charset.alias charset.alias
/bin/bash ./config.charset ‘arm-unknown-linux-gnu’ > t-charset.alias
In file included from mbchar.h:285:0,
from mbchar.c:22:
wcwidth.h:62:10: error: unknown type name ‘wchar_t’
In file included from mbchar.c:22:0:
mbchar.h:294:3: error: unknown type name ‘wchar_t’
mv t-charset.alias charset.alias
rm -f t-ref-add.sed ref-add.sed
sed -e ‘/^#/d’ -e ‘s/@”PACKAGE”@/gettext-runtime/g’ ref-add.sin > t-ref-add.sed
mv t-ref-add.sed ref-add.sed
rm -f t-ref-del.sed ref-del.sed
make[5]: *** [mbchar.o] Errore 1
make[5]: *** Attesa per i processi non terminati….
sed -e ‘/^#/d’ -e ‘s/@”PACKAGE”@/gettext-runtime/g’ ref-del.sin > t-ref-del.sed
mv t-ref-del.sed ref-del.sed
make[5]: uscita dalla directory “/root/buildroot/output/build/gettext-0.16.1/gettext-runtime/gnulib-lib”
make[4]: *** [all] Errore 2
make[4]: uscita dalla directory “/root/buildroot/output/build/gettext-0.16.1/gettext-runtime/gnulib-lib”
make[3]: *** [all-recursive] Errore 1
make[3]: uscita dalla directory “/root/buildroot/output/build/gettext-0.16.1/gettext-runtime”
make[2]: *** [all] Errore 2
make[2]: uscita dalla directory “/root/buildroot/output/build/gettext-0.16.1/gettext-runtime”
make[1]: *** [all-recursive] Errore 1
make[1]: uscita dalla directory “/root/buildroot/output/build/gettext-0.16.1″
make: *** [/root/buildroot/output/build/gettext-0.16.1/gettext-runtime/src/gettext] Errore 2
i don’t understand…
While I was waiting i retry with the precompiled image and so i was wrong with the “magic command”. Now it work!
Someone Know If ther are some command/method for change:
- Saturation
- Brightness
- Contrast
- time of Shutter
- Sensitivity Gain
and if and how I can apply a Gamma correction?
I solved the compiling problem. I was wrong with CodeSourcery setup. I’m working with Ubuntu 11.10 64-bit version. I didn’t have the 32-bit libraries. Now I have install all using this link’s advices:
https://sourcery.mentor.com/GNUToolchain/kbentry62
Hi,
I wanted to test gstreamer decoding on my beagleboard so I grabbed your precompiled images which look like they include gst-dsp. The dsp doesn’t initialize though:
# gst-launch playbin2 uri=file:///root/big_buck_bunny_480p.avi
Setting pipeline to PAUSED …
Pipeline is PREROLLING …
dsp_init: dsp open failed
As far as I can see, the TI bridgedriver module is missing from the rootfs. I’ll try to build, but was wondering if you have any ideas.
Thanks
Hi vader09,
This RootFS doesn’t have support for DSPBridge/DSPLink/etc. so the only solution for you is to add support for DSP drivers to the RootFS.
Cheers,
Max.
Hi,
I’m working with your prebuilt buildroot (thanks!). I use the magic command and all work all right. Now I want capture some image in jpeg and raw format.
For the jpeg format I tried with command:
media-ctl -v -r -l ‘”mt9p031 2-0048″:0->”OMAP3 ISP CCDC”:0[1],
“OMAP3 ISP CCDC”:2->”OMAP3 ISP preview”:0[1],
“OMAP3 ISP preview”:1->”OMAP3 ISP resizer”:0[1],
“OMAP3 ISP resizer”:1->”OMAP3 ISP resizer output”: 0[1]‘
media-ctl -v -f ‘”mt9p031 2-0048″:0 [SGRBG12 1024x768],
“OMAP3 ISP CCDC”:2 [SGRBG10 1024x768],
“OMAP3 ISP preview”:1 [UYVY 10006x760],
“OMAP3 ISP resizer”:1 [UYVY 1024x768]‘
yavta -f UYVY -s 1024×768 -n 8 –skip 3 –capture=4
–stdout /dev/video6 | mplayer – -demuxer rawvideo -rawvideo
w=1024:h=768:format=uyvy -vo jpeg
I don’t know if it is the best method but it works.
Now, how can I change camera’s Gain and Shutter speed? I guess I have to modify an image sensor register, but where I can find it?
kind regards,
Dario
Hi Max,
I tried to use your ,,magic command” but after set:
yavta -f UYVY -s 1024×768 -n 8 -skip 3 -capture=1000 -stdout /dev/video6 | mplayer – -demuxer rawvideo -rawvideo w=1024:h=768:format=uyvy -vo fbdev
the terminal shows only:
Invalid size ‘kip’
MPlayer UNKNOWN-4.6.1 (C) 2000-2010 MPlayer Team
Playing -.
Reading from stdin…
rawvideo file format detected.
==========================================================================
Opening video decoder: [raw] RAW Uncompressed Video
Could not find matching colorspace – retrying with -vf scale…
Opening video filter: [scale]
Movie-Aspect is undefined – no prescaling applied.
[swscaler @ 0xae9850] BICUBIC scaler, from uyvy422 to rgb565le using C
VO: [fbdev] 1024×768 => 1024×768 BGR 16-bit
framebuffer too small for double-buffering, disabling
Selected video codec: [rawuyvy] vfm: raw (RAW UYVY)
==========================================================================
Audio: no sound
Starting playback…
V: 0.0 0/ 0 ??% ??% ??,?% 0 0 $
Exiting… (End of file)
Do you have any idea?
the problem was solved by double dash in yavta.
but maybe anybody help me how to display images from camera.
Hei Max,
First of all I want to thank you for sharing your experience with the LI camera module. I followed your instructions and compiled all files. From the comments I understand that it is normal to just get a penguin in the upper left corner on the HDMI output. However I don’t have a serial adapter and I can’t ssh into the beagleboard since no ssh port is configured on the beagle board. Thus I can’t give any system input at all(except for Ctrl+Alt+Del which resets the board).
How can I get a terminal and system output to appear on the screen? Or how can I access the board when there is nothing else except a penguin?
Cheers,
John
Hi John,
You can configure your network adapter settings (IP address, netmask etc.) in the “/etc/network/interfaces” file.
Cheers,
Max.
Hei Max,
Thank you for your reaction.
I am using my laptop to share my WiFi over a eth0 bridge to the beagle board. I used your precompiled images and edited /etc/network/interfaces to
# Configure Loopback
auto lo
iface lo inet loopback
iface usb0 inet static
address 192.168.1.2
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 192.168.1.1
I tried the same with eth0 instead of usb0 but the beagleboard does not react to a ping test.
How does a correct configured /etc/network/interfaces look like?
Is there any way to get a terminal on the HDMI output?
Cheers,
John
Just add the following lines to your “/etc/network/interfaces”:
auto eth0
iface eth0 inet static
address 192.168.1.2
netmask 255.255.255.0
gateway 192.168.1.1
Hi, Max:
Great post!
I have some questions regarding to your latest rev. I tried to run it on my BBxM revC board. I copied generated MLO/uImage/u-boot.bin/uEnv.txt to boot partition, and untar rootfs into 2nd ext3 partition. But when applying power to my BBxM board, it hangs forever like this:
==============================================
U-Boot SPL 2011.12-mg01.3 (May 16 2012 – 14:55:22)
Texas Instruments Revision detection unimplemented
OMAP SD/MMC: 0
timed out in wait_for_bb: I2C_STAT=1000
reading u-boot.img
reading u-boot.img
U-Boot 2011.12-mg01.3 (May 16 2012 – 14:55:22)
OMAP36XX/37XX-GP ES1.2, CPU-OPP2, L3-165MHz, Max CPU Clock 1 Ghz
OMAP3 Beagle board + LPDDR/NAND
I2C: ready
DRAM: 512 MiB
NAND: 0 MiB
MMC: OMAP SD/MMC: 0
*** Warning – readenv() failed, using default environment
In: serial
Out: serial
Err: serial
Beagle xM Rev C
No EEPROM on expansion board
Die ID #435e00029ff80000016842c81202f022
Net: Net Initialization Skipped
No ethernet found.
Hit any key to stop autoboot: 0
The user button is currently NOT pressed.
SD/MMC found on device 0
reading uEnv.txt
87 bytes read
Loaded environment from uEnv.txt
Importing environment from mmc …
Running uenvcmd …
mmc – MMC sub system
Usage:
mmc read addr blk# cnt
mmc write addr blk# cnt
mmc erase blk# cnt
mmc rescan
mmc part – lists available partition on current mmc device
mmc dev [dev] [part] – show or set current mmc device [partition]
mmc list – lists available devices
reading uImage
4423200 bytes read
Booting from mmc …
## Booting kernel from Legacy Image at 80200000 …
Image Name: Linux-3.2.8-mg01.3
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 4423136 Bytes = 4.2 MiB
Load Address: 80008000
Entry Point: 80008000
Verifying Checksum … OK
Loading Kernel Image … OK
OK
Starting kernel …
Uncompressing Linux… done, booting the kernel.
============================================
Not sure where I should check to fix this problem? By the way, does your post support RevC BBxM?
Thanks!
Regards,
Kevin
Hi, Max:
I reviewed previous post, and know your latest package DO support the xM RevC board. However, I am still struggling with the bootup situation I posted days ago….
I believe the image compilation is succeed, just don’t know why it hangs at here forever:
========================
……
Booting from mmc …
## Booting kernel from Legacy Image at 80200000 …
Image Name: Linux-3.2.8-mg01.3
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 4423136 Bytes = 4.2 MiB
Load Address: 80008000
Entry Point: 80008000
Verifying Checksum … OK
Loading Kernel Image … OK
OK
Starting kernel …
Uncompressing Linux… done, booting the kernel.
========================================
Also, I tried your prebuild images, it behaves the same.
However, I can boot the same board with the prebuilt image I got from Angstrom website (http://www.angstrom-distribution.org/simplified-development-setup). I guess that tells my board is OK.
I am not sure if I have to do any other configurations on my RevC board to run your prebuilt image. Could you please give me some hints?
Thank you so much, again!
Regards,
Kevin
Hi Kevin,
Please try “mpurate=800″ parameter in your uEnv.txt file.
Cheers,
Max.
Thanks, Max!
After changing this parameter, my BBxM boots up properly.
I have some further questions regarding this:
1. Is the HW on BBxM not ready for 1GHz? or just the SW (kernel) not support 1GHz yet?
2. I want to perminantly change mpurate value to 800 instead of changing it every time after uEnv.txt is generated. What I did is manually modify this section in boot/uboot/Config.in file:
===========================
config BR2_TARGET_UBOOT_UENV_MPURATE
string “mpurate”
default “800″
# default “1000″
help
MPU frequency
===========================
I was hoping “make menuconfig” is driven by this file, however it seems not. Could you please let me know where does “make menuconfig” get its mpurate value “1000″ from?
Thanks!
Regards,
Kevin
Hi Kevin,
1. BBxM supports 1 GHz, just make sure you are using the latest Buildroot from my repo (which is mg01.3);
2. Add the following line to your “configs/beagle_xm_defconfig” and/or “configs/beagle_xm_full_defconfig” files:
BR2_TARGET_UBOOT_UENV_MPURATE=”800″
Cheers,
Max.
Hi, Max:
I believe I was using your lastest Buildroot code which is mg01.3, and the boot message also tells this:
========================
……
Booting from mmc …
## Booting kernel from Legacy Image at 80200000 …
Image Name: Linux-3.2.8-mg01.3
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 4423136 Bytes = 4.2 MiB
Load Address: 80008000
Entry Point: 80008000
Verifying Checksum … OK
Loading Kernel Image … OK
OK
Starting kernel …
Uncompressing Linux… done, booting the kernel.
===============================
As you’ve seen, it hangs here forever if I keep “mpurate=1000″ in uEnv.txt. It can only finish booting up if I change this parameter to 800 or less. I guess I am still missing something. Could you please suggest what I missed?
Another question about your buildroot structure: if I want to setup an static IP address for eth0 at compilation time, which file I should modify?
I guess I could modify fs/skeleton/etc/network/interfaces file and add these lines:
===========================
auto eth0
iface eth0 inet static
address 192.168.5.101
netmask 255.255.255.0
gateway 192.168.5.50
===========================
But this will affect kernel skeleton. Is there a better place to configure the ethernet interface? In other words, how to setup Ethernet interface from application level configuration?
Regards,
Kevin
Hi Kevin,
1. I’m not sure, but maybe your BB/power supply has some issues (as image works on my BB-xM Rev.C and I know it works on a number of another boards). Start with power supply, i.e. check output current or try another one.
2. Try to use “earlyprintk” kernel parameter in order to see early kernel debug output.
3. Yes, if you need to change default parameters of your RootFS then “fs/skeleton” is the best place to do that.
Cheers,
Max.
Hei Max,
Thank you very much for your help. I got everything working and capturing videos and converting them works fine. However I faced some issues:
1. My videos are colored yellow. Cleaning the camera and reinstalling everything didn’t help. Have you ever face an issue like that?
2. Even with smaller resolutions I cannot capture images on a higher rate than 13.6fps. You reported you could capture video at 25-30 fps. How did you manage to do so?
3. I would like to do some basic color detection with opencv. At my PC everything works fine with opencv and a webcam. How can I open the video stream on the beagleboard with opencv or how can I get Opencv to detect the camera?
Could you give me some advies on these questions?
Cheers,
John
Hi John,
1. Check your output/input video formats (yavta/mplayer/etc.).
2. I haven’t reported I could capture at 25-30 fps.
3. I think this is the best place for you to start digging:
http://docs.opencv.org/
Cheers,
Max.
Hi Max,
I have an LBCM3M1 (MT9T111) module and an LBCM5M1 (MT9P011) module from Leopard Imaging which I’m trying to get working on my BB-xM (Rev.C). Is there any support for these in kernel 3.2.8 or do I have to go back to 2.6.32? I can only see MT9P031, MT9T001, MT9V011 and MTV032 listed in linux-3.2.8.config in the buildroot/board/beagleboard/xm directory.
If it is a case of going back to 2.6.x, is it just a case of following your instructions for 2011 Buildroot?
BTW: I can confirm that your instructions for Bbuildroot 2012.02 work fine on an Ubuntu 12.04 LTS x64 (Core i7 CPU) host for the BB-xM (Rev.C) target. I created the beagle_xm_full_defconfig files and it booted fine. Many thanks.
Pete
Hi Pete,
I’m not familiar with MT9T111/MT9P011 modules and it seems that 3.2.8 kernel doesn’t have these drivers. So you should either use 2.6 or search for drivers in another development branches.
Cheers,
Max.
Hi Max,
Do you still have a branch on your git repository to your 2011 buildroot (k.2.6) configuration or has that been superseded by the 2012 one?
I’ve been trying to find out what the status of camera support is on the OMAP3 platform. It seems that Laurent Pinchart is one of the leading developers for V4L2 and that Android has better support for cameras? Unless you’ve been working in the Linux community for a good while it is quite difficult for a beginner to hit the right landing point to find out what is/not possible.
Cheers,
Pete
Hi Pete,
1. Try “2011.05-mg00.1″ tag for old Buildroot;
2. I have no idea about another cameras support, you should probably ask on some forums/mail lists (and basically if Android has better support then you should definitely use Android). I tested my Buildroot with mt9p031 as I’m using this module only in my project.
Cheers,
Max.
Hi Max,
The instructions worked great for me. Thanks! I’m a bit lost in the buildroot menu system. Can somebody provide a link to enabling X, with a desktop, through the HDMI port of the beagleboard?
Thanks!
how would you set up an rtsp server using gstreamer?
Hello Max,
I made my Leopard Imaging 5PM camera module work on the BeagleBoard xM with the pre-built images. Great! That validates my setup. Thanks a lot
.
Following that, I tried to compile the kernel, u-boot image and MLO. I tried first with the Angstrom toolchain, but the process stopped after building the kernel image… and after three hours of intensive computation. I tried a second time with CodeSourcery toolchain and it worked. My Linux distro is Ubuntu 10.04.
Once I had a working Beagle+camera combo, I tried the Magic Formula and tadam!, images showed up. It works but I noticed the following issues:
a) the image has a yellow dominance,
b) frame rate is low (6 fps at 1024×768) – I aim for at least 15 fps.
Now, where is the performance bottleneck: is it the camera driver or the video display driver? Both? As a test, I tried removing mplayer from the formula by redirecting yavta output to /dev/null instead of piping it in mplayer. The test script reported a improvement: 13 fps instead of 6. From there, It’s a bit premature to draw a conclusion but it seems that the whole V4L2 architecture trades off performances for hardware abstraction and versatility. What if a high-performance application will need to call lower-level device drivers at the cost of device independance?
I’d like to mention another thing: I looked into syslogs after running tests on the camera and noticed that the kernel trace contains I2C debug messages and some camera & OMAP ISP register dumps as well. I will try to optimize the kernel a bit by turning debug options off & recompiling the kernel.
This is a part-time project for me too so good luck all, stay tuned!
Cheers,
Yves
Its interesting that you have a 3.2.x kernel running at 1 GHz on the Beagleboard xM. Did you port the patches to the 3.2.x kernel or did you find them somewhere? Even Ubuntu and Angstrom (which ships with the board) have not yet merged them into their 3.2.x kernels.
Hi Teknoman117,
No, I didn’t port these patches to the 3.2 kernel, I’m just using them in my internal project.
Cheers,
Max.
Hi Max,
I been trying to fix this problem for a while with no results
https://github.com/MaxGalemin/buildroot/issues/31
i did copy MLO, u-boot.img, uEnv.txt and uImage to the FAT partition of the SD card and untar everything from rootfs.tar to the second ext3 partition, same errors comes up and reference of what I can do?
Hey Max,
another questions what’s the gstreamer pipeline you are using?
I’m using this one
gst-launch v4l2src device=/dev/video0 ! videoscale! video/x-raw-yuv,width=640,height=480 ! ffmpegcolorspace ! jpegenc ! tcpserversink host=192.168.0.100 port=5000
and I get this error
WARNING: erroneous pipeline: no element “jpegenc”
Thanks Andre,
Hey Max,
I managed to compile everything using beagle_xm_defconfig
It boots fine but if I try to log in (as root) nothing happens. The board just replies the string i wrote, but nothing else.
I saw that someone on the old version (http://blog.galemin.com/2011/06/buildroot-2011-05-all-in-one-for-beagleboard-xm/) had a similar problem with the login. They changed the first line in /etc/passwd to root:x:0:0:root:/root:/bin/sh instead of root:x:0:0:root:/root:/bin/bash
but that doesn’t seem to work for me. Do you have any ideas what i could try?
Hey, i solved my problem. I had some isues with the terminal program i used on my host machine! everything else works perfect, thx
Hi Max,
since you are using the CodeSourcery toolchain and not (for example) Ubuntu’s arm-linux-gnueabihf toolchain? As far as I understand, using CodeSourcery limits you to soft float and that seems like wasting CPU power – or am I getting something wrong?
Thanks in advance,
The brisk beagle
HI all,
I’m trying port to kernel v. 3.2.30. When the board boot, I get this message:
kobject (c0972df8): tried to init an initialized object, something is seriously wrong.
[ 4.287231] [] (unwind_backtrace+0×0/0xe0) from [] (kobject_init+0×34/0×90)
[ 4.296325] [] (kobject_init+0×34/0×90) from [] (device_initialize+0×20/0×68)
[ 4.305603] [] (device_initialize+0×20/0×68) from [] (platform_device_register+0×10/0×24)
[ 4.315948] [] (platform_device_register+0×10/0×24) from [] (beagle_camera_init+0x9c/0xc8)
[ 4.326385] [] (beagle_camera_init+0x9c/0xc8) from [] (do_one_initcall+0×90/0×160)
[ 4.336090] [] (do_one_initcall+0×90/0×160) from [] (kernel_init+0xfc/0x1a4)
[ 4.345245] [] (kernel_init+0xfc/0x1a4) from [] (kernel_thread_exit+0×0/0×8)
[ 4.354431] ————[ cut here ]————
[ 4.359222] WARNING: at kernel/resource.c:597 __insert_resource+0×44/0×124()
[ 4.366546] Modules linked in:
[ 4.369781] [] (unwind_backtrace+0×0/0xe0) from [] (warn_slowpath_common+0x4c/0×64)
[ 4.379577] [] (warn_slowpath_common+0x4c/0×64) from [] (warn_slowpath_null+0×18/0x1c)
[ 4.389617] [] (warn_slowpath_null+0×18/0x1c) from [] (__insert_resource+0×44/0×124)
[ 4.399475] [] (__insert_resource+0×44/0×124) from [] (insert_resource_conflict+0×24/0×40)
[ 4.409912] [] (insert_resource_conflict+0×24/0×40) from [] (insert_resource+0×8/0×14)
[ 4.419982] [] (insert_resource+0×8/0×14) from [] (platform_device_add+0xb8/0×164)
[ 4.429687] [] (platform_device_add+0xb8/0×164) from [] (beagle_camera_init+0x9c/0xc8)
[ 4.439788] [] (beagle_camera_init+0x9c/0xc8) from [] (do_one_initcall+0×90/0×160)
[ 4.449493] [] (do_one_initcall+0×90/0×160) from [] (kernel_init+0xfc/0x1a4)
[ 4.458648] [] (kernel_init+0xfc/0x1a4) from [] (kernel_thread_exit+0×0/0×8)
[ 4.467803] —[ end trace 43c38d3655acccdc ]—
[ 4.472656] omap3isp: failed to claim resource 0
Anybody know what is happening?
Thanks
Adriano