Yoctoproject is a framework for creating Linux distributions for embedded devices. Its layering mechanism makes it easy to add Linux to new target devices highly customized for a particular platform; it can include custom start-up scripts, software packages built with a high degree of optimization for a particular architecture, and different user interfaces from full Gnome desktop to a simple a serial console.
Yocto has 2 basic layers: board support packages layer and core layer. In the BSP layer is where all the custom software and configuration tweaks for a particular platform are included, while the core layer provides the common software stack to provide from a simple command line interface to Sato desktop interface (Matchbox based and Gnome mobile software stack). A third layer could be added to provide additional user interfaces LXDE, XFCE, and more; YP is quite flexible&emdash;one of it major strengths.
Go to Yocto Project Quick Start and double check that you have all the necessary packages installed for your machine.
For example, if building machine was an Ubuntu machine:
$ sudo apt-get install gawk wget git-core diffstat unzip texinfo build-essential chrpath libsdl1.2-dev xterm curl
Please, go to project's README file in order to see the recommended instructions to download the source code.
Edit conf/local.conf user config file and set imx53 Quick start board machine and enable parallel build features.
MACHINE ?= "imx53qsb" BB_NUMBER_THREADS = "4" PARALLEL_MAKE = "-j 4"
Edit conf/local.conf user config file and set i.MX6 Sabrelite board machine and enable parallel build features
MACHINE ?= "imx6qsabrelite" BB_NUMBER_THREADS = "4" PARALLEL_MAKE = "-j 4"
if you've been facing problems to get yocto's images working on your i.MX Sabre Lite board, please take a look on this comment Re: The kernel sometins hang in L3.0.35_4.0.0_130424 release
some example of available image:
image name | description |
---|---|
core-image-minimal | A small image just capable of allowing a device to boot. |
core-image-base | A console-only image that fully supports the target device hardware. |
core-image-sato | Image with sato, a mobile environment and visual style for mobile devices. The image supports X11 with a Sato theme, Pimlico applications and contains terminal, editor and file manager. |
fsl-image-test | Builds contents core-image-base plus Freescale test applications and multimedia components. |
fsl-image-gui | Builds contents of core-image-sato with Freescale test applications and multimedia with hardware accelerated X11 |
To build the image:
$ bitbake <image_name>
Build using Dash instead can bring some problems. You can check what your system uses typing: "ls -l /bin/sh". On Ubuntu you can change it using "dpkg-reconfigure bash". Some Ubuntu releases you must use "dpkg-reconfigure dash" and choose Bash
Built images are located in
cd tmp/deploy/images
sudo dd if=core-image-minimal-imx6qsabrelite.sdcard of=/dev/sdb
Hi
Thanks a lot for the information.
I tried to use the instruction above to build image for iMX6q SabreLite, but I've got a error below when I try to do "bitbake core-image-minimal"
=================================
Summary: There were 2 WARNING messages shown.
Summary: There were 2 ERROR messages shown, returning a non-zero exit code.
WARNING: Host distribution "Ubuntu 10.10" has not been validated with this version of the build system; you may possibly experience unexpected failures. It is recommended that you use a tested distribution.
Loading cache: 100% |###########################################| ETA: 00:00:00
Loaded 1160 entries from dependency cache.
ERROR: No recipes available for:
/home/its/poky/meta-fsl-arm/recipes-core/udev/udev_173.bbappend
ERROR: Command execution failed: Exited with 1
=====================================
Anybody can help? I am very new to Yocto/bitbake, we used to build image by using ltib,
Thanks a lot.
I'll update the page above soon. Meanwhile, I suggest you to use the instructions located at:
Freescale/fsl-community-bsp-platform · GitHub
For i.MX53 platform, use the denzil branch, for i.MX6, use the master branch.
Rgds
Rogerio
Please refer to the bellow link to check the community supported way to build Freescale Yocto layers
What does it wrong ?
I did step by step from this tutorial..
gorio@ubuntu:/opt/poky/build$ bitbake core-image-minimal
Loading cache: 100% |############################################################| ETA: 00:00:00
Loaded 1600 entries from dependency cache.
Build Configuration:
BB_VERSION = "1.17.1"
BUILD_SYS = "x86_64-linux"
NATIVELSBSTRING = "Ubuntu-10.04"
TARGET_SYS = "arm-poky-linux-gnueabi"
MACHINE = "imx53qsb"
DISTRO = "poky"
DISTRO_VERSION = "1.3+snapshot-20130308"
TUNE_FEATURES = "armv7a vfp neon"
TARGET_FPU = "vfp-neon"
meta
meta-yocto = "master:d823759b4594143d522eae0b2a2498436a6dcb1e"
meta-oe = "master:6c9ac38e8b998e6739383ba91e0c4e0c0ed0094b"
meta-fsl-arm = "master:a502be66bef33f2016b43f8c7129b18f92d6e337"
NOTE: Resolving any missing task queue dependencies
NOTE: Preparing runqueue
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
ERROR: Function failed: do_configure (see /opt/poky/build/tmp/work/armv7a-vfp-neon-poky-linux-gnueabi/busybox/1.20.2-r6/temp/log.do_configure.23360 for further information)
ERROR: Logfile of failure stored in: /opt/poky/build/tmp/work/armv7a-vfp-neon-poky-linux-gnueabi/busybox/1.20.2-r6/temp/log.do_configure.23360
Log data follows:
| DEBUG: Executing python function sysroot_cleansstate
| DEBUG: Python function sysroot_cleansstate finished
| DEBUG: Executing shell function do_configure
| trap: 80: SIGHUP: bad trap
| ERROR: Function failed: do_configure (see /opt/poky/build/tmp/work/armv7a-vfp-neon-poky-linux-gnueabi/busybox/1.20.2-r6/temp/log.do_configure.23360 for further information)
ERROR: Task 914 (/opt/poky/meta/recipes-core/busybox/busybox_1.20.2.bb, do_configure) failed with exit code '1'
NOTE: Tasks Summary: Attempted 1030 tasks of which 1026 didn't need to be rerun and 1 failed.
Waiting for 0 running tasks to finish:
Summary: 1 task failed:
/opt/poky/meta/recipes-core/busybox/busybox_1.20.2.bb, do_configure
Summary: There was 1 ERROR message shown, returning a non-zero exit code.
gorio@ubuntu:/opt/poky/build$
Hi Leonardo Sandoval Gonzalez,
Met same error as Eduardo Gorio in busybox,. So, Freescale will support repo way for our build only? Either or customize build for our own board?
BR Thomas
Hi Thomas,
sorry for the confusion but this document should not be used to build Freescale Yocto layers, please refer to this document
Repeat the steps, and try to build the same core image. If error persists, please send the description/log to the meta-freescale distribution list.
Thank you for the information on how to get started with the new Yocto based Freescale BSPs. Could you please assist me with a problem fetching the repositories? It appears that protocols/ports other than HTTP are blocked by the corporate firewall. Changing to HTTP though results in errors finding the info subdirectory. Can you please suggest a resolution to this problem?
The output from repo is as follows:
$ ./repo sync
fatal: unable to connect to github.com:
github.com[0: 207.97.227.239]: errno=Connection timed out
fatal: unable to connect to github.com:
github.com[0: 207.97.227.239]: errno=Connection timed out
fatal: unable to connect to github.com:
github.com[0: 207.97.227.239]: errno=Connection timed out
fatal: unable to connect to git.yoctoproject.org:
git.yoctoproject.org[0: 140.211.169.56]: errno=Connection timed out
fatal: unable to connect to git.yoctoproject.org:
git.yoctoproject.org[0: 140.211.169.56]: errno=Connection timed out
fatal: unable to connect to github.com:
github.com[0: 207.97.227.239]: errno=Connection timed out
fatal: unable to connect to github.com:
github.com[0: 207.97.227.239]: errno=Connection timed out
fatal: unable to connect to github.com:
github.com[0: 207.97.227.239]: errno=Connection timed out
error: Cannot fetch meta-fsl-arm
error: Cannot fetch meta-fsl-arm-extra
error: Cannot fetch meta-fsl-demos
error: Cannot fetch fsl-community-bsp-base
fatal: unable to connect to git.openembedded.org:
git.openembedded.org[0: 140.211.169.152]: errno=Connection timed out
fatal: unable to connect to git.openembedded.org:
git.openembedded.org[0: 140.211.169.152]: errno=Connection timed out
error: Cannot fetch meta-openembedded
error: Exited sync due to fetch errors
$ sed -i 's/git:/http:/g' .repo/manifest.xml
$ ./repo sync
Fetching projects: 16% (1/6) fatal: http://git.yoctoproject.org/meta-fsl-arm/info/refs not found: did you run git update-server-info on the server?
Fetching projects: 66% (4/6) fatal: http://git.yoctoproject.org/poky/info/refs not found: did you run git update-server-info on the server?
fatal: http://git.yoctoproject.org/meta-fsl-arm/info/refs not found: did you run git update-server-info on the server?
fatal: http://git.yoctoproject.org/poky/info/refs not found: did you run git update-server-info on the server?
error: Cannot fetch meta-fsl-arm
error: Cannot fetch poky
error: Exited sync due to fetch errors
$
Yes a 'git clone http://git.yoctoproject.org/meta-fsl-arm' confirms that the meta-fsl-arm committers are not running git update-server-info so http access does not work. Until this is fixed I will use a zip archive
No idea Nick. You need to talk to the admin guy :smileyhappy:
Further investigation reveals that the url http://git.yoctoproject.org/git/meta-fsl-arm works
It seems that to change the repo from using the git protocol to using the http prtocol can be achieved as follows:
$ sed -i 's/git:/http:/g' .repo/manifest.xml
$ sed -i 's|yoctoproject.org|yoctoproject.org/git|g' .repo/manifest.xml
I hope this helps others who are experiencing problems when following the supported BSP installation process from behind firewalls that do not support git
OtavioSalvador, any other workaround you know to avoid the issue that Nick found?
Leo
All ugly hacks. He might use:
all hacks! better to fix the firewall.
In the prerequisites for an Ubuntu Machine there is
sudo apt-get install wget
but in the fsl-community-bsp-platform/README there is
$: curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
Should this instead be
$: wget https://dl-ssl.google.com/dl/googlesource/git-repo/repo -O ~/bin/repo
or should curl be added as a prerequisite?
You can use both for downloading the repo app. Both packages are requisites.
Leo
Ok if both packages are prerequisites then please change the text for the Ubuntu command in the section above entitled "Installing any Needed Package" to:
$ sudo apt-get install gawk wget git-core diffstat unzip texinfo \ build-essential chrpath libsdl1.2-dev xterm curl
This would help new users who need to be able to follow the instructions verbatim
Nick
Thanks Nick. I have corrected the verbatim, adding the curl package.
Leo
I did a build of fsl-image-test and it boots but I still seem to have an OpenGL ES environment which required X11. In other builds I had a libGAL and libgal-fb which had the fbGetDisplayByIndex calls so I could run with fbdev. Is there a configuration option I am missing?
Brian
BrianEdmond, what branch are you using?
The default distribution used on yocto (and meta-fsl-arm) is poky.conf. And by default X11 is selected.
If you´re using master, you can override your DISTRO_FEATURES and remove X11. Take a look on poky.conf file under source :smileywink:
got a fsl-image-gui to compile for mx53qsb. I have a customboard with an attached LVDS lcd, but both vga as lcd remain black on boot. I attached a serial cable but only get gibberish over this (non-ascii characters). Does anyone know 1) where to find info on how to configure LVDS lcd and 2) where to configure tty/console so i can check my settings and actually see what's happening when I try the image
if you got a custom board, why are you using a mx53qsb machine? unless the board is the same, you need to create your own board layer with proper changes.
Leo
Hi All,
I want to boot my Imx6q Sabre AI board with Yocto, can I follow the same steps suggested in this post, if not please suggest a thread/link that i can follow to achieve this.
Thanks
Ram
The only difference would be the machine name to place in local.conf.
Thanks DaianeAngolini
Please let me know where can i find local.conf file, in fsl-community-bsp
Folder tree after repo and clone
fsl-community-bsp -> sources--------------------------------- > base
README meta-fsl-arm
setup-environment meta-fsl-arm-extra
meta-fsl-demos
meta-openembedded
poky
Thanks
Ram
After:
$ source setup-environment build
the local.conf file will be placed inside
<your-yocto-folder>/build/conf/local.conf
Hi All,
I want to know where exactly the actual source code will reside after "repo sync", since I see only bitbake, patch and *.inc files under source directory. Please let me know.
Thank you,
Gautham
look under "sources"
you will see "sources/meta-fsl-arm" "sources/meta-fsl-demos" "sources/poky"
Hello,
I am using a Boundarydevices Nitrogen6x with a iMX6 Solo processor.
I followed Daiane’s instruction to build my Yocto Dora image. I was able to build core-image-base, but had a problem with fsl-image-test. I found the following issue and applied the change manually (it must not be in the branch since sync was not retrieving the patch):
https://lists.yoctoproject.org/pipermail/meta-freescale/2014-April/008057.html
Also, I used menuconfig to disable ov5642 and enable ov5640.
I can build the images, but can’t use gstreamer. I keep getting this error:
ERROR: v4l2 capture: mxc_v4l_dqueue timeout enc_counter 0
VIDIOC_DQBUF failed.
ERROR: v4l2 capture: VIDIOC_QBUF: buffer already queued
VIDIOC_QBUF failed
I know my hardware works because with the Timesys demo SD Card that came with the board I can use the following command to display the MIPI camera image on the LCD:
$ gst-launch mfw_v4lsrc capture-mode=5 ! mfw_v4lsink disp-width=1280 disp-height=800
I have tried many gstreamer commands, and they all fail with the same error. One example is:
$ gst-launch mfw_v4lsrc ! mfw_v4lsink
I tried adding capture-mode=4 to the above command, and I get the same error.
Are you aware of any issue with the latest Yocto Image that would cause this problem (something similar to the patch above that I had to apply)? What else can I try?
Here is the complete snapshot of the error I am getting:
root@nitrogen6x:~# gst-launch mfw_v4lsrc ! mfw_v4lsink
MFW_GST_V4LSRC_PLUGIN 3.0.9 build on Apr 16 2014 09:57:53.
pwm_config: pwm freq = 22000000, clk_select=1 clock_rate=66000000
ov5640_mipi_camera_powerdown: powerdown=0, power_gp=0xa9
MFW_GST_V4LSINK_PLUGIN 3.0.9 build on Apr 16 2014 09:57:39.
Setting pipeline to PAUSED …
pwm_config: pwm freq = 22000000, clk_select=1 clock_rate=66000000
ov5640_mipi_camera_powerdown: powerdown=0, power_gp=0xa9
Pipeline is live and does not need PREROLL …
Setting pipeline to PLAYING …
New clock: GstSystemClock
ERROR: v4l2 capture: mxc_v4l_dqueue timeout enc_counter 0
ERROR: from element /GstPipeline:pipeline0/MFWGstV4LSrc:mfwgstv4lsrc0: Internal data flow error.
Additional debug info:
/yocto/build/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/gstreamer/0.10.36-r2/gstreamer-0.10.36/libs/gst/base/gstbasesrc.c(2625): gst_base_src_loop (): /GstPipeline:pipeline0/MFWGstV4LSrc:mfwgstv4lsrc0:
streaming task paused, reason error (-5)
Execution ended after 10004586509 ns.
Setting pipeline to PAUSED …
Setting pipeline to READY …
Setting pipeline to NULL …
Total rendered:0
Freeing pipeline …
[—>FINALIZE v4l_sink
root@nitrogen6x:~# ov5640_mipi_camera_powerdown: powerdown=1, power_gp=0xa9
root@nitrogen6x:~#
Thanks,
hkh, the issue you found regarding 'mesa' has been fixed in OE-Core and Poky yesterday. You can drop this change from meta-fsl-arm and it will work just fine.
I am not a good person to help with GStreamer stuff. LeonardoSandovalGonzalez, can you take a look here?
Please, LeonardoSandovalGonzalez, hkh and OtavioSalvador, create a new topic in imx.community.
Please, remind to add all log available. With kernel version, MM version and branch name.
It´s very difficult to us, hkh to provide support when the DOC has several comments on it. It´s much easier to start with a new and clear thread, with all the text futures it has in it (like quote, mark a answer as helpfull, as so on).
Thanks in advance,
There's an error in the document, the part about dash. You can check what your system uses typing: "ln -s /bin/sh" should probably be "ls -l /bin/sh" since "ln -s /bin/sh" would simply create a symbolic link in the current directory pointing to /bin/sh.
Hello community, have an urgent need for input on touch screen integration. Please help!
We're developing a project which requires touch screen function. The processor we use is i.MX6 dual light. Source code is Yocto 1.5.
The LCD is working. We integrated the touch screen driver and can see on the computer that is connected to the board through serial port that touch screen reports coordinates for touches which indicates that touch screen does work. However, the system doesn't respond to touches. No icon displayed on the LCD is touched and the mouse arrow doesn't move with a finger touching the screen. Any advice where to look to see which part is broken?
Thanks!