Difference between revisions of "Debian Build Release"

From Variscite Wiki
 
(41 intermediate revisions by 4 users not shown)
Line 21: Line 21:
  
 
  $ sudo apt-get install binfmt-support qemu qemu-user-static debootstrap kpartx \
 
  $ sudo apt-get install binfmt-support qemu qemu-user-static debootstrap kpartx \
  lvm2 dosfstools gpart binutils git lib32ncurses5-dev python-m2crypto gawk wget \
+
  lvm2 dosfstools gpart binutils bison git lib32ncurses5-dev python-m2crypto gawk wget \
 
  git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat libsdl1.2-dev \
 
  git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat libsdl1.2-dev \
 
  autoconf libtool libglib2.0-dev libarchive-dev python-git xterm sed cvs subversion \
 
  autoconf libtool libglib2.0-dev libarchive-dev python-git xterm sed cvs subversion \
  coreutils texi2html bc docbook-utils python-pysqlite2 help2man make gcc g++ \
+
  kmod coreutils texi2html bc docbook-utils python-pysqlite2 help2man make gcc g++ \
 
  desktop-file-utils libgl1-mesa-dev libglu1-mesa-dev mercurial automake groff curl \
 
  desktop-file-utils libgl1-mesa-dev libglu1-mesa-dev mercurial automake groff curl \
  lzop asciidoc u-boot-tools mtd-utils device-tree-compiler
+
  lzop asciidoc u-boot-tools mtd-utils device-tree-compiler flex
  
 
== Deploy source ==
 
== Deploy source ==
Line 35: Line 35:
 
  $ git clone {{#var:DEBIAN_GIT}} -b {{#var:DEBIAN_BRANCH}} {{#var:BUILD_FOLDER_NAME}}
 
  $ git clone {{#var:DEBIAN_GIT}} -b {{#var:DEBIAN_BRANCH}} {{#var:BUILD_FOLDER_NAME}}
  
{{#ifeq: {{#var:DEBIAN_VERSION}} | 10 |
 
 
Create environment (<span style="color:red">''Internet connection should be available''</span>):
 
Create environment (<span style="color:red">''Internet connection should be available''</span>):
  
 
  $ cd {{#var:BUILD_FOLDER}}
 
  $ cd {{#var:BUILD_FOLDER}}
  $ MACHINE={{#var:MACHINE_NAME}} {{#var:BUILD_SCRIPT}} -c deploy
+
  $ {{#var:BUILD_SCRIPT}} -c deploy
 
+
{{#ifeq: {{#var:HARDWARE_NAME}} | VAR-SOM-MX8X |{{#ifeq: {{#var:MACHINE_NAME_B0}} | imx8qxpb0-var-som |
This environment prepared to build.
+
Or, to build for i.MXQXP SOC revision B0:
|
 
Create environment (<span style="color:red">''Internet connection should be available''</span>):
 
 
 
 
  $ cd {{#var:BUILD_FOLDER}}
 
  $ cd {{#var:BUILD_FOLDER}}
  $ {{#var:BUILD_SCRIPT}} -c deploy
+
  $ {{#var:BUILD_SCRIPT_B0}} -c deploy
 
+
|}}|}}
 
This environment prepared to build.
 
This environment prepared to build.
}}
 
  
 
= Make Debian =
 
= Make Debian =
Line 57: Line 52:
  
 
  $ cd {{#var:BUILD_FOLDER}}
 
  $ cd {{#var:BUILD_FOLDER}}
  $ sudo {{#var:BUILD_SCRIPT}} -c all | tee 2.log
+
  $ sudo {{#var:BUILD_SCRIPT}} -c all |& tee build.log
 +
{{#ifeq: {{#var:HARDWARE_NAME}} | VAR-SOM-MX8X |{{#ifeq: {{#var:MACHINE_NAME_B0}} | imx8qxpb0-var-som |
 +
Or, to build for i.MXQXP SOC revision B0:
 +
$ cd {{#var:BUILD_FOLDER}}
 +
$ {{#var:BUILD_SCRIPT_B0}} -c all
 +
|}}|}}
  
 
== Build by parts ==
 
== Build by parts ==
Line 65: Line 65:
 
  $ cd {{#var:BUILD_FOLDER}}
 
  $ cd {{#var:BUILD_FOLDER}}
 
  $ sudo {{#var:BUILD_SCRIPT}} -c bootloader
 
  $ sudo {{#var:BUILD_SCRIPT}} -c bootloader
 +
{{#ifeq: {{#var:HARDWARE_NAME}} | VAR-SOM-MX8X |{{#ifeq: {{#var:MACHINE_NAME_B0}} | imx8qxpb0-var-som |
 +
Or, to build for i.MXQXP SOC revision B0:
 +
$ sudo {{#var:BUILD_SCRIPT_B0}} -c bootloader
 +
|}}|}}
  
 
=== Build kernel, dtb files and kernel modules ===
 
=== Build kernel, dtb files and kernel modules ===
Line 71: Line 75:
 
  $ sudo {{#var:BUILD_SCRIPT}} -c kernel
 
  $ sudo {{#var:BUILD_SCRIPT}} -c kernel
 
  $ sudo {{#var:BUILD_SCRIPT}} -c modules
 
  $ sudo {{#var:BUILD_SCRIPT}} -c modules
 +
{{#ifeq: {{#var:HARDWARE_NAME}} | VAR-SOM-MX8X |{{#ifeq: {{#var:MACHINE_NAME_B0}} | imx8qxpb0-var-som |
 +
Or, to build kernel, dtb, kernel modules for i.MXQXP SOC revision B0:
 +
$ sudo {{#var:BUILD_SCRIPT_B0}} -c kernel
 +
$ sudo {{#var:BUILD_SCRIPT_B0}} -c modules
 +
|}}|}}
  
 
=== Build rootfs ===
 
=== Build rootfs ===
Line 77: Line 86:
 
  $ cd {{#var:BUILD_FOLDER}}
 
  $ cd {{#var:BUILD_FOLDER}}
 
  $ sudo {{#var:BUILD_SCRIPT}} -c rootfs
 
  $ sudo {{#var:BUILD_SCRIPT}} -c rootfs
 +
{{#ifeq: {{#var:HARDWARE_NAME}} | VAR-SOM-MX8X |{{#ifeq: {{#var:MACHINE_NAME_B0}} | imx8qxpb0-var-som |
 +
Or, to build rootfs for i.MXQXP SOC revision B0:
 +
$ sudo {{#var:BUILD_SCRIPT_B0}} -c rootfs
 +
|}}|}}
  
 
=== Pack rootfs ===
 
=== Pack rootfs ===
Line 84: Line 97:
 
  $ sudo {{#var:BUILD_SCRIPT}} -c rtar
 
  $ sudo {{#var:BUILD_SCRIPT}} -c rtar
 
  {{#ifeq: {{#var:PROVIDE_UBIFS}} | NO ||$ sudo {{#var:BUILD_SCRIPT}} -c rubi}}
 
  {{#ifeq: {{#var:PROVIDE_UBIFS}} | NO ||$ sudo {{#var:BUILD_SCRIPT}} -c rubi}}
 +
{{#ifeq: {{#var:HARDWARE_NAME}} | VAR-SOM-MX8X |{{#ifeq: {{#var:MACHINE_NAME_B0}} | imx8qxpb0-var-som |
 +
Or, to pack rootfs for i.MXQXP SOC revision B0:
 +
$ sudo {{#var:BUILD_SCRIPT_B0}} -c rtar
 +
|}}|}}
  
 
= Create boot SD card =
 
= Create boot SD card =
Line 92: Line 109:
 
  $ cd {{#var:BUILD_FOLDER}}
 
  $ cd {{#var:BUILD_FOLDER}}
 
  $ sudo {{#var:BUILD_SCRIPT}} -c sdcard -d /dev/sdX
 
  $ sudo {{#var:BUILD_SCRIPT}} -c sdcard -d /dev/sdX
 +
 +
{{#ifeq: {{#var:HARDWARE_NAME}} | VAR-SOM-MX8X |{{#ifeq: {{#var:MACHINE_NAME_B0}} | imx8qxpb0-var-som |
 +
Or, to build sdcard for i.MXQXP SOC revision B0:
 +
$ sudo {{#var:BUILD_SCRIPT_B0}} -c sdcard -d /dev/sdX
 +
|}}|}}
  
 
where '/dev/sdX' path to the block SD device in your system.
 
where '/dev/sdX' path to the block SD device in your system.
 +
 +
== Create a boot SD card image using a loop device ==
 +
It is also possible to use the "{{#var:BUILD_SCRIPT}}" script to create a boot SD card image, while using a loop device instead of attaching a real SD card.<br>
 +
<br>
 +
Create an empty file using the following command:
 +
$ dd if=/dev/zero of={{#var:MACHINE_NAME}}-debian-sd.img bs=1M count=3720
 +
 +
The above command creates a 3700MiB file representing the SD card.<br>
 +
<br>
 +
Attach the first available loop device to this file:
 +
$ sudo losetup -Pf {{#var:MACHINE_NAME}}-debian-sd.img
 +
 +
To find the actual loop device being used, run:
 +
$ losetup -a | grep {{#var:MACHINE_NAME}}-debian-sd.img
 +
 +
Write the content to the loop device to generate the SD card image:
 +
$ sudo {{#var:BUILD_SCRIPT}} <options> /dev/loopX
 +
(Replace /dev/loopX with your actual loop device, e.g. /dev/loop0)<br><br>
 +
 +
Detach the loop device from the file:
 +
$ sudo losetup -d /dev/loopX
 +
 +
To compress the SD card image file use the following command:
 +
$ gzip -9 {{#var:MACHINE_NAME}}-debian-sd.img
 +
 +
To write the SD card image to a real SD card device use the following command:
 +
$ zcat {{#var:MACHINE_NAME}}-debian-sd.img.gz | sudo dd of=/dev/sdX bs=1M && sync
 +
(Replace /dev/sdX with your actual SD device, e.g. /dev/sdb)
  
 
= Boot the board with a bootable SD card =
 
= Boot the board with a bootable SD card =
Line 124: Line 174:
 
To enable the automatic device tree selection in U-Boot (already enabled by default):
 
To enable the automatic device tree selection in U-Boot (already enabled by default):
  
  $ setenv fdt_file=undefined
+
  $ setenv fdt_file undefined
 
  $ saveenv
 
  $ saveenv
  
 
To disable the automatic device tree selection in U-Boot, set the device tree file manually:}}
 
To disable the automatic device tree selection in U-Boot, set the device tree file manually:}}
  
  $ setenv fdt_file=YOUR_DTB_FILE
+
  $ setenv fdt_file YOUR_DTB_FILE
 
  $ saveenv
 
  $ saveenv
  
Line 165: Line 215:
 
{{#ifeq: {{#var:PROVIDE_UBIFS}} | NO |
 
{{#ifeq: {{#var:PROVIDE_UBIFS}} | NO |
 
To install Debian to the on-SOM eMMC, run the following command '''as root''':
 
To install Debian to the on-SOM eMMC, run the following command '''as root''':
 
 
{{#ifeq: {{#var:HARDWARE_NAME}} | VAR-SOM-MX6 |
 
{{#ifeq: {{#var:HARDWARE_NAME}} | VAR-SOM-MX6 |
 
<pre>
 
<pre>
 
# debian-install.sh -b <mx6cb|scb|dart> -t <cap|res>
 
# debian-install.sh -b <mx6cb|scb|dart> -t <cap|res>
 
</pre>
 
</pre>
 
 
where the "-b" option provide the carrier board used (MX6CustomBoard/SOLOCustomBoard/DART-MX6) and the "-t" option provide the touch type when using MX6CustomBoard (ignored otherwise).
 
where the "-b" option provide the carrier board used (MX6CustomBoard/SOLOCustomBoard/DART-MX6) and the "-t" option provide the touch type when using MX6CustomBoard (ignored otherwise).
 
|
 
|
 
{{#ifeq: {{#var:HARDWARE_NAME}} | DART-MX8M-MINI |
 
{{#ifeq: {{#var:HARDWARE_NAME}} | DART-MX8M-MINI |
 
<pre>
 
<pre>
# debian-emmc.sh
+
# install_debian.sh
 
</pre>  
 
</pre>  
 
|
 
|
 +
{{#ifeq: {{#var:HARDWARE_NAME}} | DART-MX8M |
 +
<pre>
 +
# install_debian.sh -d <lvds|hdmi|dp|dual-display>
 +
</pre>
 +
|
 +
{{#ifeq: {{#var:HARDWARE_NAME}} |VAR-SOM-MX8M-NANO |
 
<pre>
 
<pre>
# debian-emmc.sh -d <lvds|hdmi|dual-display>
+
# install_debian.sh
 
</pre>
 
</pre>
 
+
|
 +
<pre>
 +
# install_debian.sh -d <lvds|hdmi|dp>
 +
</pre>
 +
}}
 +
}}
 
where the "-d" option set display type, default is lvds.  
 
where the "-d" option set display type, default is lvds.  
 
}}
 
}}
Line 188: Line 247:
 
|
 
|
 
In case you are using a SOM with NAND flash, run the following command '''as root''' to install Debian on it:
 
In case you are using a SOM with NAND flash, run the following command '''as root''' to install Debian on it:
 
+
{{#ifeq: {{#var:DEBIAN_INSTALL_SCRIPT}} | unified |
# debian-nand.sh
+
<pre>
 
+
# install_debian.sh -r nand (Follow instructions)
 +
</pre>
 +
|
 +
<pre>
 +
# debian-nand.sh
 +
</pre>
 +
}}
 
In case you are using a SOM with eMMC, run the following command '''as root''' to install Debian on it:
 
In case you are using a SOM with eMMC, run the following command '''as root''' to install Debian on it:
 
+
{{#ifeq: {{#var:DEBIAN_INSTALL_SCRIPT}} | unified |
# debian-emmc.sh
+
<pre>
 
+
# install_debian.sh -r emmc (Follow instructions)
 +
</pre>
 +
|
 +
<pre>
 +
# debian-emmc.sh
 +
</pre>
 +
}}
 
The above scripts are located in /usr/sbin in the rootfs of the SD card used to boot Debian.
 
The above scripts are located in /usr/sbin in the rootfs of the SD card used to boot Debian.
 
}}
 
}}
Line 234: Line 305:
 
Now you should have an app called myhello, that can be run on your target board.<br>
 
Now you should have an app called myhello, that can be run on your target board.<br>
 
You can add it to your rootfs image or copy it directly to the rootfs on the board (using scp, for example).
 
You can add it to your rootfs image or copy it directly to the rootfs on the board (using scp, for example).
 +
 +
{{#ifeq: {{#var:SUPPORT_X11}} | NO |
 +
= Running X11 Applications via Xwayland =
 +
Since Vivante libraries  for this release '''do not support X11''' backend, only '''weston''' backend is provided, so if you want to run x11 based application<br>
 +
refer to {{Varlink|IMX8_Debian_XWayland|{{#var:RELEASE_LINK}}|XWayland Example}}
 +
|
 +
}}

Latest revision as of 15:08, 6 September 2020

DART-6UL - Debian Stretch 9.3 with imx_4.14.78_1.0.0_ga_var01 Linux release
DART-6UL in this wiki refers to both the Variscite DART-6UL and VAR-SOM-6UL SOMs.

1 Overview

This page describes how to build and install Debian distribution (Stretch) on Variscite boards with DART-6UL.

These instructions were tested on an Ubuntu 16.04 x64 host PC. When using other distributions, there may be problems.

Please note that the build script is based on debootstrap. As described in the following instructions, it's kindly suggested to create the build folder on the main Ubuntu volume on your host PC rather than an external media.
Using an external media, although automatically mounted, will cause debootstrap to complain about access rights (even when running the script with sudo).

2 Create build environment

2.1 Installing required packages

On Ubuntu building machine:

$ sudo apt-get install binfmt-support qemu qemu-user-static debootstrap kpartx \
lvm2 dosfstools gpart binutils bison git lib32ncurses5-dev python-m2crypto gawk wget \
git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat libsdl1.2-dev \
autoconf libtool libglib2.0-dev libarchive-dev python-git xterm sed cvs subversion \
kmod coreutils texi2html bc docbook-utils python-pysqlite2 help2man make gcc g++ \
desktop-file-utils libgl1-mesa-dev libglu1-mesa-dev mercurial automake groff curl \
lzop asciidoc u-boot-tools mtd-utils device-tree-compiler flex

2.2 Deploy source

Download archive containing the build script and support files for building Debian Stretch for this board:

$ cd ~
$ git clone https://github.com/varigit/debian-var.git -b debian_stretch_mx6ul_var03 var_mx6ul_dart_debian

Create environment (Internet connection should be available):

$ cd ~/var_mx6ul_dart_debian
$ ./make_var_mx6ul_dart_debian.sh -c deploy

This environment prepared to build.

3 Make Debian

3.1 Build all

Internet connection should be available

$ cd ~/var_mx6ul_dart_debian
$ sudo ./make_var_mx6ul_dart_debian.sh -c all |& tee build.log


3.2 Build by parts

3.2.1 Build bootloader

$ cd ~/var_mx6ul_dart_debian
$ sudo ./make_var_mx6ul_dart_debian.sh -c bootloader


3.2.2 Build kernel, dtb files and kernel modules

$ cd ~/var_mx6ul_dart_debian
$ sudo ./make_var_mx6ul_dart_debian.sh -c kernel
$ sudo ./make_var_mx6ul_dart_debian.sh -c modules


3.2.3 Build rootfs

Internet connection should be available

$ cd ~/var_mx6ul_dart_debian
$ sudo ./make_var_mx6ul_dart_debian.sh -c rootfs


3.2.4 Pack rootfs

To create the root file system archive (rootfs.tar.gz) and UBI image (rootfs.ubi.img), run the following commands:

$ cd ~/var_mx6ul_dart_debian
$ sudo ./make_var_mx6ul_dart_debian.sh -c rtar
$ sudo ./make_var_mx6ul_dart_debian.sh -c rubi


4 Create boot SD card

  1. Follow the above steps for make rootfs, kernel, bootloader;
  2. Insert the SD card to card reader connected to a host system;
  3. Run the following commands (Caution! All data on the card will be destroyed):
$ cd ~/var_mx6ul_dart_debian
$ sudo ./make_var_mx6ul_dart_debian.sh -c sdcard -d /dev/sdX


where '/dev/sdX' path to the block SD device in your system.

4.1 Create a boot SD card image using a loop device

It is also possible to use the "./make_var_mx6ul_dart_debian.sh" script to create a boot SD card image, while using a loop device instead of attaching a real SD card.

Create an empty file using the following command:

$ dd if=/dev/zero of=imx6ul-var-dart-debian-sd.img bs=1M count=3720

The above command creates a 3700MiB file representing the SD card.

Attach the first available loop device to this file:

$ sudo losetup -Pf imx6ul-var-dart-debian-sd.img

To find the actual loop device being used, run: $ losetup -a | grep imx6ul-var-dart-debian-sd.img

Write the content to the loop device to generate the SD card image:

$ sudo ./make_var_mx6ul_dart_debian.sh <options> /dev/loopX

(Replace /dev/loopX with your actual loop device, e.g. /dev/loop0)

Detach the loop device from the file:

$ sudo losetup -d /dev/loopX

To compress the SD card image file use the following command:

$ gzip -9 imx6ul-var-dart-debian-sd.img

To write the SD card image to a real SD card device use the following command:

$ zcat imx6ul-var-dart-debian-sd.img.gz | sudo dd of=/dev/sdX bs=1M && sync

(Replace /dev/sdX with your actual SD device, e.g. /dev/sdb)

5 Boot the board with a bootable SD card

Note: The WiFi is not operational when booting from SD card, as the WiFi and SD card are using the same SDIO interface.
A typical use-case is to boot from an SD card, flash the eMMC/NAND flash, and re-boot from the eMMC/NAND flash to have the WiFi operational.

5.1 Setting the Boot Mode

Booting your system from an SD card requires switching the Boot DIP switches. See picture below.
On the VAR-6ULCustomBoard (with a DART-6UL):

Boot switch 6ul1.jpg
  • "00" The current position in the picture will set the system to boot from SD card
  • "01" Moving the right switch will set the system to boot from eMMC
  • "10" Moving the left switch will set the system to boot from NAND flash
  • "11" is illegal.
Be aware that your system has eMMC or NAND but never both.



On the Concerto-Board (with a VAR-SOM-6UL):

Boot switch concerto.jpg
  • ON-EXT: Boot from the external storage (SD card) - the current position in the picture
  • OFF-INT: Boot from the SOM's internal storage (eMMC/NAND flash)


5.2 Automatic device tree selection in U-Boot

5.2.1 Enable/Disable Automatic Device Tree selection

To enable the automatic device tree selection in U-Boot (already enabled by default):

$ setenv fdt_file undefined
$ saveenv

To disable the automatic device tree selection in U-Boot, set the device tree file manually:

$ setenv fdt_file YOUR_DTB_FILE
$ saveenv
Comment:
Make sure you don't set an inappropriate dtb file, like a dtb with nand on a SOM that has eMMC, or a dtb for mx6ull on a SOM with an mx6ul SOC.

6 Build Results

The resulted images are located in ~/var_mx6ul_dart_debian/output/.

Image name
How to use
rootfs.tar.gz Root filesystem tarball used for installation on SD card and eMMC
rootfs.ubi.img Use for flash to NAND
zImage Linux kernel image
SPL.nand SPL built for NAND. The SPL is pre-U-Boot SW component, required for DDR initialization
SPL.mmc SPL built for SD card and eMMC boot. The SPL is pre-U-Boot SW component, required for DDR initialization
u-boot.img.nand U-Boot built for NAND flash
u-boot.img.mmc U-Boot built for SD card or eMMC
Device Tree name
Details
imx6ull-var-dart-6ulcustomboard-emmc-sd-card.dtb Device tree blob for DART-6UL with i.MX6ULL SOC, eMMC & SD card enabled. (NAND flash & WiFi disabled)
imx6ull-var-dart-6ulcustomboard-emmc-wifi.dtb Device tree blob for DART-6UL with i.MX6ULL SOC, eMMC & WiFi enabled. (NAND flash & SD card disabled)
imx6ull-var-dart-6ulcustomboard-nand-sd-card.dtb Device tree blob for DART-6UL with i.MX6ULL SOC, NAND flash & SD card enabled. (eMMC & WiFi disabled)
imx6ull-var-dart-6ulcustomboard-nand-wifi.dtb Device tree blob for DART-6UL with i.MX6ULL SOC, NAND flash & WiFi enabled. (eMMC & SD card disabled)
imx6ul-var-dart-6ulcustomboard-emmc-sd-card.dtb Device tree blob for DART-6UL with i.MX6UL SOC, eMMC & SD card enabled. (NAND flash & WiFi disabled)
imx6ul-var-dart-6ulcustomboard-emmc-wifi.dtb Device tree blob for DART-6UL with i.MX6UL SOC, eMMC & WiFi enabled. (NAND flash & SD card disabled)
imx6ul-var-dart-6ulcustomboard-nand-sd-card.dtb Device tree blob for DART-6UL with i.MX6UL SOC, NAND flash & SD card enabled. (eMMC & WiFi disabled)
imx6ul-var-dart-6ulcustomboard-nand-wifi.dtb Device tree blob for DART-6UL with i.MX6UL SOC, NAND flash & WiFi enabled. (eMMC & SD card disabled)
imx6ulz-var-dart-6ulcustomboard-emmc-sd-card.dtb Device tree blob for DART-6UL with i.MX6ULZ SOC, eMMC & SD card enabled. (NAND flash & WiFi disabled)
imx6ulz-var-dart-6ulcustomboard-emmc-wifi.dtb Device tree blob for DART-6UL with i.MX6ULZ SOC, eMMC & WiFi enabled. (NAND flash & SD card disabled)
imx6ulz-var-dart-6ulcustomboard-nand-sd-card.dtb Device tree blob for DART-6UL with i.MX6ULZ SOC, NAND flash & SD card enabled. (eMMC & WiFi disabled)
imx6ulz-var-dart-6ulcustomboard-nand-wifi.dtb Device tree blob for DART-6UL with i.MX6ULZ SOC, NAND flash & WiFi enabled. (eMMC & SD card disabled)
imx6ull-var-som-concerto-board-emmc-sd-card.dtb Device tree blob for VAR-SOM-6UL with i.MX6ULL SOC, eMMC & SD card enabled. (NAND flash & WiFi disabled)
imx6ull-var-som-concerto-board-emmc-wifi.dtb Device tree blob for VAR-SOM-6UL with i.MX6ULL SOC, eMMC & WiFi enabled. (NAND flash & SD card disabled)
imx6ull-var-som-concerto-board-nand-sd-card.dtb Device tree blob for VAR-SOM-6UL with i.MX6ULL SOC, NAND flash & SD card enabled. (eMMC & WiFi disabled)
imx6ull-var-som-concerto-board-nand-wifi.dtb Device tree blob for VAR-SOM-6UL with i.MX6ULL SOC, NAND flash & WiFi enabled. (eMMC & SD card disabled)
imx6ul-var-som-concerto-board-emmc-sd-card.dtb Device tree blob for VAR-SOM-6UL with i.MX6UL SOC, eMMC & SD card enabled. (NAND flash & WiFi disabled)
imx6ul-var-som-concerto-board-emmc-wifi.dtb Device tree blob for VAR-SOM-6UL with i.MX6UL SOC, eMMC & WiFi enabled. (NAND flash & SD card disabled)
imx6ul-var-som-concerto-board-nand-sd-card.dtb Device tree blob for VAR-SOM-6UL with i.MX6UL SOC, NAND flash & SD card enabled. (eMMC & WiFi disabled)
imx6ul-var-som-concerto-board-nand-wifi.dtb Device tree blob for VAR-SOM-6UL with i.MX6UL SOC, NAND flash & WiFi enabled. (eMMC & SD card disabled)
imx6ulz-var-som-concerto-board-emmc-sd-card.dtb Device tree blob for VAR-SOM-6UL with i.MX6ULZ SOC, eMMC & SD card enabled. (NAND flash & WiFi disabled)
imx6ulz-var-som-concerto-board-emmc-wifi.dtb Device tree blob for VAR-SOM-6UL with i.MX6ULZ SOC, eMMC & WiFi enabled. (NAND flash & SD card disabled)
imx6ulz-var-som-concerto-board-nand-sd-card.dtb Device tree blob for VAR-SOM-6UL with i.MX6ULZ SOC, NAND flash & SD card enabled. (eMMC & WiFi disabled)
imx6ulz-var-som-concerto-board-nand-wifi.dtb Device tree blob for VAR-SOM-6UL with i.MX6ULZ SOC, NAND flash & WiFi enabled. (eMMC & SD card disabled)


7 Linux console access

User name User password User descriptor
root root system administrator
user user local user
x_user used for X session access


8 Flash images to NAND / eMMC

In case you are using a SOM with NAND flash, run the following command as root to install Debian on it:

# debian-nand.sh

In case you are using a SOM with eMMC, run the following command as root to install Debian on it:

# debian-emmc.sh

The above scripts are located in /usr/sbin in the rootfs of the SD card used to boot Debian.

9 How-to: Test and use an interface

Please see this section in the Yocto developer guide page. It is the same for Debian.

10 How-to: Modify the kernel configuration

To modify the kernel configuration (add/remove features and drivers) please follow the steps below:

1. $ cd ~/var_mx6ul_dart_debian/src/kernel
2. $ sudo make ARCH=arm mrproper
3. $ sudo make ARCH=arm imx_v7_var_defconfig
4. $ sudo make ARCH=arm menuconfig
5. Navigate the menu and select the desired kernel functionality
6. Exit the menu and answer "Yes" when asked "Do you wish to save your new configuration?"
7. $ sudo make ARCH=arm savedefconfig
8. $ sudo cp arch/arm/configs/imx_v7_var_defconfig arch/arm/configs/imx_v7_var_defconfig.orig
9. $ sudo cp defconfig arch/arm/configs/imx_v7_var_defconfig
10. Follow the instructions above to rebuild kernel and modules, repack rootfs images and recreate SD card

11 Build a sample C "Hello, world!" program

Create a file called myhello.c with the following content:

#include <stdio.h>

int main() {
	printf("Hello, World!\n");
	return 0;
}

Export the C (cross-)compiler path:

$ export CC=~/var_mx6ul_dart_debian/toolchain/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc

Compile:

$ $CC myhello.c -o myhello

Now you should have an app called myhello, that can be run on your target board.
You can add it to your rootfs image or copy it directly to the rootfs on the board (using scp, for example).