VAR-SOM-MX6 Yocto GS R6 A1: Difference between revisions
(25 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{PageHeader|VAR-SOM-MX6 - Yocto fsl-L3.10.31-1.1.0 Daisy R6}} {{DocImage|category1=VAR-SOM-MX6|category2=Yocto}} __toc__ | {{PageHeader|VAR-SOM-MX6 - Yocto fsl-L3.10.31-1.1.0 Daisy R6}} {{DocImage|category1=VAR-SOM-MX6|category2=Yocto}} __toc__ | ||
= Introduction = | = Introduction = | ||
* This Yocto | * This Yocto Daisy release is based on Freescale fsl-L3.10.31-1.1.0.0Beta release.<br/> | ||
* | * An early access, alpha version. | ||
Main features: | |||
** Yocto Daisy. | ** Yocto Daisy. | ||
** Linux kernel: linux-imx_3.10.31_1.0.0_beta. | ** Linux kernel: linux-imx_3.10.31_1.0.0_beta. | ||
** Uboot: imx_v2013. | ** Uboot: imx_v2013.10_beta_var4. | ||
** Yocto Daisy: Based on fsl-L3.10.31-1.1.0_iMX6qdls Freescale release. Yocto Daisy support code is located in meta-variscite folder. | ** Yocto Daisy: Based on fsl-L3.10.31-1.1.0_iMX6qdls Freescale release. Yocto Daisy support code is located in meta-variscite folder. | ||
Line 28: | Line 28: | ||
| Software platform<br/> | | Software platform<br/> | ||
| | | | ||
[https://wiki.yoctoproject.org/wiki/Releases Yocto | [https://wiki.yoctoproject.org/wiki/Releases Yocto Daisy release.]<br/>[http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=i.MX6Q&fpsp=1&tab=Design_Tools_Tab Freescale release version 4.1]<br/>[https://github.com/Freescale Meta freescale community release for Daisy] | ||
|- | |- | ||
Line 35: | Line 35: | ||
|- | |- | ||
| NAND Flash size support<br/> | | NAND Flash size support<br/> | ||
| | | 128MB up to 1GB<br/> | ||
|- | |||
| eMMC<br/> | |||
| up to 64GB<br/> | |||
|- | |- | ||
| DDR size support configuration<br/> | | DDR size support configuration<br/> | ||
| Solo: | | Solo:up to 1GB. DualLite, Dual, Quad: up to 4GB <br/> | ||
|- | |- | ||
| SD-Card<br/> | | SD-Card<br/> | ||
Line 65: | Line 68: | ||
|- | |- | ||
| USB OTG<br/> | | USB OTG<br/> | ||
| Device | | Device / Host<br/> | ||
|- | |- | ||
| Uarts<br/> | | Uarts<br/> | ||
Line 86: | Line 89: | ||
|} | |} | ||
Variscite Yocto | Variscite Yocto Daisy release 1 Alpha for Freescale i.MX6. | ||
= Installing required packages<br/> = | = Installing required packages<br/> = | ||
Follow the link below and install all | Follow the link below and install all required packages on your machine. | ||
[http://www.yoctoproject.org/docs/latest/yocto-project-qs/yocto-project-qs.html www.yoctoproject.org/docs/latest/yocto-project-qs/yocto-project-qs.html] | [http://www.yoctoproject.org/docs/latest/yocto-project-qs/yocto-project-qs.html www.yoctoproject.org/docs/latest/yocto-project-qs/yocto-project-qs.html] | ||
Line 96: | Line 99: | ||
For example, if your building machine is an Ubuntu machine: | For example, if your building machine is an Ubuntu machine: | ||
<pre>sudo apt-get install gawk wget git-core diffstat unzip texinfo build-essential chrpath libsdl1.2-dev xterm lzop</pre> | <pre>sudo apt-get install gawk wget git-core diffstat unzip texinfo build-essential chrpath libsdl1.2-dev xterm lzop</pre> | ||
Variscite Yocto build | Variscite Yocto build was tested with Ubuntu 12.04 LTS only! | ||
= Download Yocto | = Download Yocto Daisy for i.MX6 with Variscite VAR-SOM-MX6 support = | ||
Use "repo" to fetch Yocto and apply Variscite's patches for the BSP support: | Use "repo" to fetch Yocto and apply Variscite's patches for the BSP support: | ||
Line 110: | Line 113: | ||
{{note| NOTE:<br>Reference repo is available on FTP.|info}} | {{note| NOTE:<br>Reference repo is available on FTP.|info}} | ||
* Clone Yocto | * Clone Yocto Daisy from Freescale's git: | ||
<pre>$ cd ~ | <pre>$ cd ~ | ||
$ mkdir var-som-mx6- | $ mkdir var-som-mx6-daisy-v6 | ||
$ cd var-som-mx6- | $ cd var-som-mx6-daisy-v6 | ||
$ git config --global user.name "Your Name" | $ git config --global user.name "Your Name" | ||
$ git config --global user.email "Your Email" | $ git config --global user.email "Your Email" | ||
$ repo init -u git://git.freescale.com/imx/fsl-arm-yocto-bsp.git -b imx-3.10. | $ repo init -u git://git.freescale.com/imx/fsl-arm-yocto-bsp.git -b imx-3.10.31-1.1.0_beta | ||
$ repo sync | $ repo sync | ||
</pre> | </pre> | ||
* Download ftp.variscite.com/VAR-SOM-MX6/Software/Linux/Yocto/Release5/ | * Download ftp.variscite.com/VAR-SOM-MX6/Software/Linux/Yocto/Release5/var_yocto_v6a1.tar.bz2 <br> | ||
* Extract tarball: | * Extract tarball: | ||
<pre>$ cd ~/var-som-mx6- | <pre>$ cd ~/var-som-mx6-daisy-v6 | ||
$ tar xvf ~/Downloads/ | $ tar xvf ~/Downloads/var_yocto_v6a1.tar.bz2 | ||
$ variscite/install</pre> | $ variscite/install</pre> | ||
{{note|Comment:<br/>This method will preserve the git repositories. It will enable you to track Variscite's changes, and your own.|info}} | {{note|Comment:<br/>This method will preserve the git repositories. It will enable you to track Variscite's changes, and your own.|info}} | ||
Line 131: | Line 134: | ||
<pre>$ . ./setup-environment build_var | <pre>$ . ./setup-environment build_var | ||
</pre> | </pre> | ||
{{note|Comment:<br/>If you close your terminal and wish to build Yocto again, you should change directory to ~/var-som-mx6- | {{note|Comment:<br/>If you close your terminal and wish to build Yocto again, you should change directory to ~/var-som-mx6-daisy-v6 and run the above command again. build_var is your build directory and all bitbake commands should run from it|info}} | ||
'''local.conf customizations''' | '''local.conf customizations''' | ||
Line 151: | Line 154: | ||
= Build your image = | = Build your image = | ||
<pre>$ bitbake | <pre>$ bitbake fsl-image-qt5 </pre> | ||
Other image build options: | Other image build options: | ||
The resulted images are locaated in tmp/deploy/images/varsomimx6.<br/>Looking at tmp/deploy/images/varsomimx6 you will find 6 main files that are linked to the actual file<br/> | The resulted images are locaated in tmp/deploy/images/varsomimx6.<br/>Looking at tmp/deploy/images/varsomimx6 you will find 6 main files that are linked to the actual file<br/> | ||
Line 176: | Line 164: | ||
! scope="col" | How to use<br/> | ! scope="col" | How to use<br/> | ||
|- | |- | ||
| | | fsl-image-qt5-varsomimx6.ext3<br/> | ||
| Not in Use<br/> | | Not in Use<br/> | ||
|- | |- | ||
| | | fsl-image-qt5-varsomimx6.sdcard | ||
| | | | ||
This image is for SD-Card boot. | This image is for SD-Card boot. Default u-boot is built for SDCARD. | ||
Booting from SD-Card is explained in details below. | Booting from SD-Card is explained in details below. | ||
<pre>$ sudo dd if=tmp/deploy/images/varsomimx6/ | <pre>$ sudo dd if=tmp/deploy/images/varsomimx6/vfsl-image-qt5-varsomimx6.sdcard of=/dev/sdX bs=1024k | ||
</pre> | </pre> | ||
devxxx = mmcblk0 or sdX. Do dmesg after you insert an SD-Card into your build system to figure out the device name<br/>{{note|Comment:<br/>Use "$ sudo gparted /dev/devxxx" | devxxx = mmcblk0 or sdX. Do dmesg after you insert an SD-Card into your build system to figure out the device name<br/>{{note|Comment:<br/>Use "$ sudo gparted /dev/devxxx" | ||
Line 194: | Line 178: | ||
|- | |- | ||
| | | fsl-image-qt5-varsomimx6.tar.bz2 | ||
| | | | ||
Used to create an NFS root file system on the host. | Used to create an NFS root file system on the host. | ||
<pre>$ sudo mkdir ../rootfs | <pre>$ sudo mkdir ../rootfs | ||
$ sudo rm -rf ../rootfs/* | $ sudo rm -rf ../rootfs/* | ||
$ sudo tar xvf tmp/deploy/images/varsomimx6/ | $ sudo tar xvf tmp/deploy/images/varsomimx6/fsl-image-qt5-varsomimx6.tar.bz2 -C ../rootfs | ||
</pre> | </pre> | ||
See apendix for setting an NFS server | See apendix for setting an NFS server | ||
|- | |- | ||
| | | fsl-image-qt5-varsomimx6.ubi | ||
| | | | ||
Not available in this release. | |||
|- | |- | ||
| uImage | | uImage | ||
Line 249: | Line 204: | ||
= UBIFS = | = UBIFS = | ||
Under development. Coming soon. | |||
= Next steps = | = Next steps = | ||
Line 290: | Line 222: | ||
The output will be located at tmp/deploy/sdk/. On a 64 bit Ubuntu you will get: | The output will be located at tmp/deploy/sdk/. On a 64 bit Ubuntu you will get: | ||
poky-eglibc-x86_64-meta-toolchain-cortexa9hf-vfp-neon-toolchain-1. | sdk/poky-eglibc-x86_64-meta-toolchain-cortexa9hf-vfp-neon-toolchain-1.6.1.sh. | ||
Install the tools by running: | Install the tools by running: | ||
<pre>$ tmp/deploy/sdk/poky-eglibc-x86_64-meta-toolchain-cortexa9hf-vfp-neon-toolchain-1. | <pre>$ tmp/deploy/sdk/poky-eglibc-x86_64-meta-toolchain-cortexa9hf-vfp-neon-toolchain-1.6.1.sh</pre> | ||
Reply to all defaults 'y'<br> | Reply to all defaults 'y'<br> | ||
The toolchain name depend on your build machine and may change. | The toolchain name depend on your build machine and may change. | ||
Line 301: | Line 233: | ||
{{note|Note:<br/>This is a single u-boot image that supports all VAR-SOM-MX6 SOM's.|info}} | {{note|Note:<br/>This is a single u-boot image that supports all VAR-SOM-MX6 SOM's.|info}} | ||
Obtain sources: | Obtain sources: | ||
<pre>$ cd ~/var-som-mx6- | <pre>$ cd ~/var-som-mx6-daisy-v6 | ||
$ git clone git://github.com/varigit/uboot-imx | $ git clone git://github.com/varigit/uboot-imx | ||
$ cd uboot-imx/ | $ cd uboot-imx/ | ||
Line 309: | Line 241: | ||
* follow above procedure for installing the toolchain | * follow above procedure for installing the toolchain | ||
Build u-boot: | Build u-boot: | ||
<pre>$ export PATH=/opt/poky/1. | <pre>$ export PATH=/opt/poky/1.6.1/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi:$PATH | ||
clean tree: | clean tree: | ||
$ make -j6 ARCH=arm CROSS_COMPILE=arm-poky-linux-gnueabi- mrproper | $ make -j6 ARCH=arm CROSS_COMPILE=arm-poky-linux-gnueabi- mrproper | ||
Line 332: | Line 264: | ||
= Build Linux out of Yocto tree = | = Build Linux out of Yocto tree = | ||
Get sources: | Get sources: | ||
<pre>$ cd ~/var-som-mx6- | <pre>$ cd ~/var-som-mx6-daisy-v6/ | ||
$ git clone git://github.com/varigit/linux-2.6-imx.git | $ git clone git://github.com/varigit/linux-2.6-imx.git | ||
$ cd linux-2.6-imx/ | $ cd linux-2.6-imx/ | ||
$ git checkout -b imx_3.10. | $ git checkout -b imx_3.10.31_1.1.0_beta2_var1 remotes/origin/imx_3.10.31_1.1.0_beta2_var1 | ||
</pre> | </pre> | ||
Build the Linux kernel: | Build the Linux kernel: | ||
<pre>$ export PATH=/opt/poky/1. | <pre>$ export PATH=/opt/poky/1.6.1/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi:$PATH | ||
$ make ARCH=arm CROSS_COMPILE=arm-poky-linux-gnueabi- mrproper | $ make ARCH=arm CROSS_COMPILE=arm-poky-linux-gnueabi- mrproper | ||
$ make ARCH=arm CROSS_COMPILE=arm-poky-linux-gnueabi- imx_v7_var_defconfig | $ make ARCH=arm CROSS_COMPILE=arm-poky-linux-gnueabi- imx_v7_var_defconfig |
Latest revision as of 13:40, 24 November 2014
Introduction
- This Yocto Daisy release is based on Freescale fsl-L3.10.31-1.1.0.0Beta release.
- An early access, alpha version.
Main features:
- Yocto Daisy.
- Linux kernel: linux-imx_3.10.31_1.0.0_beta.
- Uboot: imx_v2013.10_beta_var4.
- Yocto Daisy: Based on fsl-L3.10.31-1.1.0_iMX6qdls Freescale release. Yocto Daisy support code is located in meta-variscite folder.
Supported hardware and features
Feature |
Description |
---|---|
Board support |
VAR-DVK-MX6,VAR-SOM-MX6 |
CPU |
|
Software platform |
Yocto Daisy release. |
Nand Recovery | |
NAND Flash size support |
128MB up to 1GB |
eMMC |
up to 64GB |
DDR size support configuration |
Solo:up to 1GB. DualLite, Dual, Quad: up to 4GB |
SD-Card |
+ |
Ethernet |
10/100/1000 Mbps Ethernet |
WLAN |
Support for Wilink8, Dual band 5.0ghz + MIMO b/g/n - Feature not available |
Bluetooth |
4.0 - Feature not available |
CAN bus |
+ |
I2C |
+ |
SPI |
+ |
USB host |
+ |
USB OTG |
Device / Host |
Uarts |
x3, up to 3.6 Mbps. Minicom avilable to use with the port |
RTC |
+ |
Display | HDMI 720P,1080P LVDS0 (On board LVDS to RGB bridge, EVK supports 800x480 resolution) LVDS1 external display |
Audio | Line IN/ Line out |
Camera | ov5640 camera sensor. CB402 board can be purchased separately |
SATA | + |
Variscite Yocto Daisy release 1 Alpha for Freescale i.MX6.
Installing required packages
Follow the link below and install all required packages on your machine.
www.yoctoproject.org/docs/latest/yocto-project-qs/yocto-project-qs.html
For example, if your building machine is an Ubuntu machine:
sudo apt-get install gawk wget git-core diffstat unzip texinfo build-essential chrpath libsdl1.2-dev xterm lzop
Variscite Yocto build was tested with Ubuntu 12.04 LTS only!
Download Yocto Daisy for i.MX6 with Variscite VAR-SOM-MX6 support
Use "repo" to fetch Yocto and apply Variscite's patches for the BSP support:
- Install the `repo` utility:
$ mkdir ~/bin (this step may not be needed if the bin folder already exists) $ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo $ chmod a+x ~/bin/repo Add the following line to the .bashrc file to ensure that the ~/bin folder is in your PATH variable $ export PATH=~/bin:$PATH
Reference repo is available on FTP.
- Clone Yocto Daisy from Freescale's git:
$ cd ~ $ mkdir var-som-mx6-daisy-v6 $ cd var-som-mx6-daisy-v6 $ git config --global user.name "Your Name" $ git config --global user.email "Your Email" $ repo init -u git://git.freescale.com/imx/fsl-arm-yocto-bsp.git -b imx-3.10.31-1.1.0_beta $ repo sync
- Download ftp.variscite.com/VAR-SOM-MX6/Software/Linux/Yocto/Release5/var_yocto_v6a1.tar.bz2
- Extract tarball:
$ cd ~/var-som-mx6-daisy-v6 $ tar xvf ~/Downloads/var_yocto_v6a1.tar.bz2 $ variscite/install
This method will preserve the git repositories. It will enable you to track Variscite's changes, and your own.
Setup and Customize your Yocto build
Setup the environment and use build_var folder
$ . ./setup-environment build_var
If you close your terminal and wish to build Yocto again, you should change directory to ~/var-som-mx6-daisy-v6 and run the above command again. build_var is your build directory and all bitbake commands should run from it
local.conf customizations
Edit you local.conf file:
$ gedit conf/local.conf
Change parallel build and download directory:
Set the build parameters to fully utilize your host machine's resources
BB_NUMBER_THREADS = '4'
PARALLEL_MAKE = '-j 6'
BB_NUMBER_THREADS should be your host machine's number of threads minus 2 or same. PARALLEL_MAKE should be the number of threads your host machine has plus two.
Change packages download directory: By defualt the path is set to "/opt/yocto_dl". Change ownership settings:
$ sudo mkdir /opt/yocto_dl $ sudo chown <uname>.<uname> /opt/yocto_dl
Build your image
$ bitbake fsl-image-qt5
Other image build options:
The resulted images are locaated in tmp/deploy/images/varsomimx6.
Looking at tmp/deploy/images/varsomimx6 you will find 6 main files that are linked to the actual file
Image Name |
How to use | |
---|---|---|
fsl-image-qt5-varsomimx6.ext3 |
Not in Use | |
fsl-image-qt5-varsomimx6.sdcard |
This image is for SD-Card boot. Default u-boot is built for SDCARD. Booting from SD-Card is explained in details below. $ sudo dd if=tmp/deploy/images/varsomimx6/vfsl-image-qt5-varsomimx6.sdcard of=/dev/sdX bs=1024k devxxx = mmcblk0 or sdX. Do dmesg after you insert an SD-Card into your build system to figure out the device name Comment: Use "$ sudo gparted /dev/devxxx"
| |
fsl-image-qt5-varsomimx6.tar.bz2 |
Used to create an NFS root file system on the host. $ sudo mkdir ../rootfs $ sudo rm -rf ../rootfs/* $ sudo tar xvf tmp/deploy/images/varsomimx6/fsl-image-qt5-varsomimx6.tar.bz2 -C ../rootfs See apendix for setting an NFS server | |
fsl-image-qt5-varsomimx6.ubi |
Not available in this release. | |
uImage | ||
u-boot | SPL |
|
UBIFS
Under development. Coming soon.
Next steps
In sections 1-6 we explained how to build Yocto for VAR-SOM-MX6. We explained the results for nand (UBI) and for sd-card.
At this point you should have a bootable sd-card with UBI images on it. You should be able to boot from the sd-card using the boot select button and flash the nand.
Next steps:
- Build and deploy the compiler and tools.
- Fetch u-boot and compile it out of Yocto tools.
- Fetch Linux kernel and compile it out of Yocto tools.
Toolchain installation for out of Yocto builds
Build the toolchain by:
$ bitbake meta-ide-support $ bitbake meta-toolchain
The output will be located at tmp/deploy/sdk/. On a 64 bit Ubuntu you will get:
sdk/poky-eglibc-x86_64-meta-toolchain-cortexa9hf-vfp-neon-toolchain-1.6.1.sh.
Install the tools by running:
$ tmp/deploy/sdk/poky-eglibc-x86_64-meta-toolchain-cortexa9hf-vfp-neon-toolchain-1.6.1.sh
Reply to all defaults 'y'
The toolchain name depend on your build machine and may change.
Build U-Boot out of Yocto tree
This is a single u-boot image that supports all VAR-SOM-MX6 SOM's.
Obtain sources:
$ cd ~/var-som-mx6-daisy-v6 $ git clone git://github.com/varigit/uboot-imx $ cd uboot-imx/ $ git checkout -b imx_v2013.10_beta_var4 remotes/origin/imx_v2013.10_beta_var4
- follow above procedure for installing the toolchain
Build u-boot:
$ export PATH=/opt/poky/1.6.1/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi:$PATH clean tree: $ make -j6 ARCH=arm CROSS_COMPILE=arm-poky-linux-gnueabi- mrproper Choose build for SD-Card or NAND Flash: $ make ARCH=arm CROSS_COMPILE=arm-poky-linux-gnueabi- mx6var_som_sd_config or $ make ARCH=arm CROSS_COMPILE=arm-poky-linux-gnueabi- mx6var_som_nand_config Build U-BOOT: $ make -j6 ARCH=arm CROSS_COMPILE=arm-poky-linux-gnueabi-
Flash u-boot to the sd-card:
$ sudo dd if=SPL of=/dev/sdxxx bs=1K seek=1; sync $ sudo dd if=u-boot.img of=/dev/sdxxx bs=1K seek=69; sync
In case of UBI copy it to the sd-card:
$ sudo cp SPL /media/rootfs/opt/images $ sudo cp u-boot.img /media/rootfs/opt/images
Eject SD-Card gracefully from host machine
Build Linux out of Yocto tree
Get sources:
$ cd ~/var-som-mx6-daisy-v6/ $ git clone git://github.com/varigit/linux-2.6-imx.git $ cd linux-2.6-imx/ $ git checkout -b imx_3.10.31_1.1.0_beta2_var1 remotes/origin/imx_3.10.31_1.1.0_beta2_var1
Build the Linux kernel:
$ export PATH=/opt/poky/1.6.1/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi:$PATH $ make ARCH=arm CROSS_COMPILE=arm-poky-linux-gnueabi- mrproper $ make ARCH=arm CROSS_COMPILE=arm-poky-linux-gnueabi- imx_v7_var_defconfig $ make -j6 LOADADDR=0x10008000 ARCH=arm CROSS_COMPILE=arm-poky-linux-gnueabi- uImage $ make -j6 LOADADDR=0x10008000 ARCH=arm CROSS_COMPILE=arm-poky-linux-gnueabi- modules Build the device tree for Dualite/Solo $ make -j6 ARCH=arm CROSS_COMPILE=arm-poky-linux-gnueabi- imx6dl-var-som.dtb Build the device tree for Quad/Dual $ make -j6 ARCH=arm CROSS_COMPILE=arm-poky-linux-gnueabi- imx6q-var-som.dtb
Copy the uImage and device tree to the sd-card boot partition or to the opt/image in order to be flashed to the nand. Copy modules to the sd-card
$ sudo make ARCH=arm CROSS_COMPILE=arm-poky-linux-gnueabi- modules_install INSTALL_MOD_PATH=/media/rootfs/