DART-6UL Debian Jessie MX6UL: Difference between revisions
(Created page with "aa") |
(Added release version) |
||
(3 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{{PageHeader|DART-6UL - Debian Jessie release R1}} {{DocImage|category1=DART-6UL|category2=Debian}} __toc__ | |||
= Overview = | |||
This page describes how to assemble and install debian distro (jessie) on Variscite board mx6ul-var-dart. | |||
This instruction was tested with Debian 8.4 x64 (jessie) and Ubuntu 14.04/16.04 x64! When using other distributions, there may be problems. | |||
= Create build environment = | |||
== Installing required packages<br/> == | |||
=== Debian jessie x64 === | |||
If your system does not have "sudo", set the "sudo" using the link: [https://www.privateinternetaccess.com/forum/discussion/18063/debian-8-1-0-jessie-sudo-fix-not-installed-by-default] | |||
On your Debian building machine: | |||
<pre> | |||
$ sudo apt-get install -y binfmt-support qemu qemu-user-static debootstrap kpartx | |||
$ sudo apt-get install -y lvm2 dosfstools gpart binutils git lib32ncurses5-dev python-m2crypto | |||
$ sudo apt-get install -y gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat libsdl1.2-dev | |||
$ sudo apt-get install -y autoconf libtool libglib2.0-dev libarchive-dev | |||
$ sudo apt-get install -y python-git xterm sed cvs subversion coreutils texi2html bc | |||
$ sudo apt-get install -y docbook-utils python-pysqlite2 help2man make gcc g++ desktop-file-utils libgl1-mesa-dev | |||
$ sudo apt-get install -y libglu1-mesa-dev mercurial automake groff curl lzop asciidoc u-boot-tools mtd-utils | |||
</pre> | |||
=== Ubuntu 14.04/16.04 x64 === | |||
On your Ubuntu building machine: | |||
<pre> | |||
$ sudo apt-get install -y binfmt-support qemu qemu-user-static debootstrap kpartx | |||
$ sudo apt-get install -y lvm2 dosfstools gpart binutils git lib32ncurses5-dev python-m2crypto | |||
$ sudo apt-get install -y gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat libsdl1.2-dev | |||
$ sudo apt-get install -y autoconf libtool libglib2.0-dev libarchive-dev | |||
$ sudo apt-get install -y python-git xterm sed cvs subversion coreutils texi2html bc | |||
$ sudo apt-get install -y docbook-utils python-pysqlite2 help2man make gcc g++ desktop-file-utils libgl1-mesa-dev | |||
$ sudo apt-get install -y libglu1-mesa-dev mercurial automake groff curl lzop asciidoc u-boot-tools mtd-utils | |||
</pre> | |||
== Deploy source == | |||
Download archive contains the build script and support files for building Debian (Jessie) for this board: | |||
<pre> | |||
$ cd ~ | |||
$ git clone https://github.com/varigit/debian-var.git -b debian_jessie_mx6ul_var01 var_mx6ul_dart_debian | |||
</pre> | |||
Create environment (<span style="color:red">''Internet connection should be available''): | |||
<pre> | |||
$ cd ~/var_mx6ul_dart_debian | |||
$ ./make_var_mx6ul_dart_debian.sh -c deploy | |||
</pre> | |||
This environment prepared to build. | |||
= Make Debian = | |||
== Build all == | |||
<span style="color:red">''Internet connection should be available'' | |||
<pre> | |||
$ cd ~/var_mx6ul_dart_debian | |||
$ sudo ./make_var_mx6ul_dart_debian.sh -c all | tee 2.log | |||
</pre> | |||
== Build by parts == | |||
=== Build rootfs === | |||
<span style="color:red">''Internet connection should be available'' | |||
<pre> | |||
$ cd ~/var_mx6ul_dart_debian | |||
$ sudo ./make_var_mx6ul_dart_debian.sh -c rootfs | |||
</pre> | |||
=== Build kernel, dtb files and kernel modules === | |||
<pre> | |||
$ cd ~/var_mx6ul_dart_debian | |||
$ sudo ./make_var_mx6ul_dart_debian.sh -c kernel | |||
$ sudo ./make_var_mx6ul_dart_debian.sh -c modules | |||
</pre> | |||
=== Build bootloader === | |||
<pre> | |||
$ cd ~/var_mx6ul_dart_debian | |||
$ sudo ./make_var_mx6ul_dart_debian.sh -c bootloader | |||
</pre> | |||
=== Pack rootfs === | |||
For the create archive root file system (rootfs.tar.bz2) and image ubi (rootfs.ubi.img) run the following commands: | |||
<pre> | |||
$ cd ~/var_mx6ul_dart_debian | |||
$ sudo ./make_var_mx6ul_dart_debian.sh -c rtar | |||
$ sudo ./make_var_mx6ul_dart_debian.sh -c rubi | |||
</pre> | |||
= Create boot SD card = | |||
#Follow the steps for make rootfs, kernel, bootloader: '''[[Make_debian_(jessie)_for_imx6ul-dart_board#Make_Debian|go]]'''; | |||
#Insert the SD card to card reader connected to a host system; | |||
#Run the following commands (Caution! All data on the card will be destroyed): | |||
<pre> | |||
$ cd ~/var_mx6ul_dart_debian | |||
$ sudo ./make_var_mx6ul_dart_debian.sh -c sdcard -d /dev/sdX | |||
</pre> | |||
where '/dev/sdX' path to the block SD device in your system. | |||
Successful process log | |||
<pre> | |||
I: Flashing U-Boot | |||
35+0 records in | |||
35+0 records out | |||
35840 bytes (36 kB) copied, 0.0773679 s, 463 kB/s | |||
237+1 records in | |||
237+1 records out | |||
243104 bytes (243 kB) copied, 0.720032 s, 338 kB/s | |||
I: Flashing "BOOT-VARSOM" partition | |||
I: Flashing "rootfs" partition | |||
I: Copying Debian images to /opt/images/Debian | |||
I: Copying NAND U-Boot to /opt/images/Debian | |||
I: Copying MMC U-Boot to /opt/images/Debian | |||
I: Copying scripts to /opt/images/Debian | |||
I: Sync sdcard... | |||
I: Done make sdcard! | |||
I: | |||
I: Command: "sdcard" end. Exit code: 0 | |||
I: | |||
</pre> | |||
= Boot board with a bootable SD-Card = | |||
<span style="color:red">Note: Boot from SD-Card eliminates Wifi</span> as the Wifi and SD-Card are using same SDIO interface.<br> | |||
A typical use-case, is to boot from SD-Card, flash eMMC or NAND-Flash, and re-boot form eMMC/NAND to have Wi-Fi operational. | |||
== Setting board dip-switches == | |||
Booting your system requires switching the relevant dip-switch to "Boot from SD-Card". See picture below.<br> | |||
[[File:Boot_switch_6ul1.jpg|thumb|none|upright=2.0]] | |||
<br> | |||
* "00" - Boot from SDCARD - The picture mode | |||
* "01" - Boot from eMMC | |||
* "10" - Boot from NAND-Flash | |||
* "11" is illegal. | |||
Be aware that your SOM has either eMMC or NAND but never both !<br><br> | |||
To boot board with SD-Card, Follow the steps below:<br> | |||
*Power-off the board. | |||
*Insert the SD card into the SD/MMC slot of the carrier board (DVK) | |||
*Switch the relevant dip-switch to "Boot from SD-Card" | |||
*Power-up board | |||
*The board will automatically boot into Linux from SD-Card | |||
== Automatic device Tree selection in U-Boot == | |||
Upon reset you will see the U-BOOT-SPL printouts. It will print also the SOM configuration: | |||
<br>On-SOM storage: SD only, eMMC, NAND. | |||
<br>WIFI if chip exits. | |||
<br>For example: | |||
<pre> | |||
U-Boot SPL 2015.10-00532-g482dc88 (Jan 03 2016 - 10:05:42) | |||
i.MX6UL SOC | |||
Part number: DART-6U-A01 | |||
Assembly: AS11 | |||
Date of production: 2015 Dec 31 | |||
DART-6UL configuration: eMMC WIFI | |||
Ram size: 512 | |||
Boot Device: SD | |||
</pre> | |||
As explained in the above [[Make_debian_(jessie)_for_imx6ul-dart_board#Build_Results|Build Results]] table we have 4 optional configurations. | |||
<br>We implemented in U-BOOT and automatic device tree selection, so when kernel boots, the u-boot will load the corresponding device tree according to On-SOM configuration. | |||
{| class="wikitable" | |||
|- | |||
! scope="col" | Boot From<br/> | |||
! scope="col" | SOM Internal FLASH<br/> | |||
! scope="col" | SOM has WIFI/BT<br/> | |||
! scope="col" | Device Tree selected<br/> | |||
|- | |||
| SD | |||
| eMMC | |||
| Don't Care | |||
| imx6ul-var-dart-sd_emmc.dtb | |||
|- | |||
| SD | |||
| NAND | |||
| Don't Care | |||
| imx6ul-var-dart-sd_nand.dtb | |||
|- | |||
| eMMC | |||
| eMMC | |||
| Yes | |||
| imx6ul-var-dart-emmc_wifi.dtb | |||
|- | |||
| eMMC | |||
| eMMC | |||
| NO | |||
| imx6ul-var-dart-sd_emmc.dtb | |||
|- | |||
| NAND | |||
| NAND | |||
| YES | |||
| imx6ul-var-dart-nand_wifi.dtb | |||
|- | |||
| NAND | |||
| NAND | |||
| NO | |||
| imx6ul-var-dart-sd_nand.dtb | |||
|} | |||
<span style="color:red">Note: Boot from SD-Card eliminates Wifi</span> as the Wifi and SD-Card are using same SDIO interface.<br> | |||
A typical use-case, is to boot from SD-Card, flash eMMC or NAND-Flash, and re-boot form eMMC/NAND to have Wi-Fi operational. | |||
== Disable Automatic Device Tree selection == | |||
To disable the automatic device tree selection in u-boot: | |||
<pre> | |||
> setenv var_auto_fdt_file N | |||
> saveenv | |||
</pre> | |||
Now you can set the device tree to meet your requirments. For example: | |||
<pre> | |||
> setenv fdt_file imx6ul-var-dart-sd_emmc.dtb | |||
> saveenv | |||
</pre> | |||
Will select device tree that has SD and eMMC regardless if the SOM has WIFI. | |||
<pre> | |||
> setenv fdt_file imx6ul-var-dart-sd_nand.dtb | |||
> saveenv | |||
</pre> | |||
Will select device tree that has SD and NAND regardless if the SOM has WIFI. | |||
{{note|Comment:<br/>Make sure you don't set am illegal value like "imx6ul-var-dart-sd_nand.dtb" in a SOM that has eMMC flash.|info}} | |||
= Build Results = | |||
The resulted images are located in '''~/var_mx6ul_dart_debian/output/'''. | |||
{| class="wikitable" | |||
|- | |||
! scope="col" | Image Name<br/> | |||
! scope="col" | How to use<br/> | |||
|- | |||
| rootfs.tar.bz2 | |||
| Used to create sdcard and rootfs.ubi.img | |||
|- | |||
| rootfs.ubi.img | |||
| Use for flash to nand | |||
|- | |||
| zImage | |||
| Linux kernel image | |||
|- | |||
| SPL-nand | |||
| SPL built for NAND-Flash. The SPL is pre-u-boot SW component, required for DDR initialization | |||
|- | |||
| SPL-emmc | |||
| SPL built for SD-Card and eMMC boot. The SPL is pre-u-boot SW component, required for DDR initialization | |||
|- | |||
| u-boot.bin.nand | |||
| U-Boot built for NAND Flash. | |||
|- | |||
| u-boot.bin.emmc | |||
| u-boot built for SD-Card boot, or eMMC boot in case of DART-MX6UL. | |||
|- | |||
! scope="col" | Device Tree Name<br/> | |||
! scope="col" | Boot Device<br/> | |||
|- | |||
| imx6ul-var-dart-emmc_wifi.dtb | |||
| Boot from internal eMMC with WI-FI enabled. (SDCARD & NAND disabled) | |||
|- | |||
| imx6ul-var-dart-nand_wifi.dtb | |||
| Boot from internal NAND with WI-FI enabled. (SDCARD & eMMC disabled) | |||
|- | |||
| imx6ul-var-dart-sd_emmc.dtb | |||
| SDCARD and eMMC enabled (WIFI & NAND disabled). You can boot from eMMC or SDCARD | |||
|- | |||
| imx6ul-var-dart-sd_nand.dtb | |||
| SDCARD and NAND enabled (WIFI & eMMC disabled). You can boot from NAND or SDCARD | |||
|- | |||
|} | |||
= Linux console access = | |||
{| class="wikitable" | |||
|- | |||
! scope="col" | User name<br/> | |||
! scope="col" | User password<br/> | |||
! scope="col" | User descriptor | |||
|- | |||
| root | |||
| root | |||
| system administrator | |||
|- | |||
| user | |||
| user | |||
| local user | |||
|- | |||
| xuser | |||
| | |||
| used for X session access | |||
|- | |||
|} | |||
= Flash images to NAND and eMMC = | |||
To flash images on NAND, on the device, as '''root''', run the following command: | |||
<pre> | |||
# debian-nand.sh | |||
</pre> | |||
If you wanr to flash images on eMMC, on the device, as '''root''', run the following command: | |||
<pre> | |||
# debian-emmc.sh | |||
</pre> | |||
Both the above commands are located in /usr/bin folder of uSD card used to boot debian. |
Latest revision as of 08:42, 8 December 2016
Overview
This page describes how to assemble and install debian distro (jessie) on Variscite board mx6ul-var-dart.
This instruction was tested with Debian 8.4 x64 (jessie) and Ubuntu 14.04/16.04 x64! When using other distributions, there may be problems.
Create build environment
Installing required packages
Debian jessie x64
If your system does not have "sudo", set the "sudo" using the link: [1]
On your Debian building machine:
$ sudo apt-get install -y binfmt-support qemu qemu-user-static debootstrap kpartx $ sudo apt-get install -y lvm2 dosfstools gpart binutils git lib32ncurses5-dev python-m2crypto $ sudo apt-get install -y gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat libsdl1.2-dev $ sudo apt-get install -y autoconf libtool libglib2.0-dev libarchive-dev $ sudo apt-get install -y python-git xterm sed cvs subversion coreutils texi2html bc $ sudo apt-get install -y docbook-utils python-pysqlite2 help2man make gcc g++ desktop-file-utils libgl1-mesa-dev $ sudo apt-get install -y libglu1-mesa-dev mercurial automake groff curl lzop asciidoc u-boot-tools mtd-utils
Ubuntu 14.04/16.04 x64
On your Ubuntu building machine:
$ sudo apt-get install -y binfmt-support qemu qemu-user-static debootstrap kpartx $ sudo apt-get install -y lvm2 dosfstools gpart binutils git lib32ncurses5-dev python-m2crypto $ sudo apt-get install -y gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat libsdl1.2-dev $ sudo apt-get install -y autoconf libtool libglib2.0-dev libarchive-dev $ sudo apt-get install -y python-git xterm sed cvs subversion coreutils texi2html bc $ sudo apt-get install -y docbook-utils python-pysqlite2 help2man make gcc g++ desktop-file-utils libgl1-mesa-dev $ sudo apt-get install -y libglu1-mesa-dev mercurial automake groff curl lzop asciidoc u-boot-tools mtd-utils
Deploy source
Download archive contains the build script and support files for building Debian (Jessie) for this board:
$ cd ~ $ git clone https://github.com/varigit/debian-var.git -b debian_jessie_mx6ul_var01 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.
Make Debian
Build all
Internet connection should be available
$ cd ~/var_mx6ul_dart_debian $ sudo ./make_var_mx6ul_dart_debian.sh -c all | tee 2.log
Build by parts
Build rootfs
Internet connection should be available
$ cd ~/var_mx6ul_dart_debian $ sudo ./make_var_mx6ul_dart_debian.sh -c rootfs
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
Build bootloader
$ cd ~/var_mx6ul_dart_debian $ sudo ./make_var_mx6ul_dart_debian.sh -c bootloader
Pack rootfs
For the create archive root file system (rootfs.tar.bz2) and image ubi (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
Create boot SD card
- Follow the steps for make rootfs, kernel, bootloader: go;
- Insert the SD card to card reader connected to a host system;
- 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.
Successful process log
I: Flashing U-Boot 35+0 records in 35+0 records out 35840 bytes (36 kB) copied, 0.0773679 s, 463 kB/s 237+1 records in 237+1 records out 243104 bytes (243 kB) copied, 0.720032 s, 338 kB/s I: Flashing "BOOT-VARSOM" partition I: Flashing "rootfs" partition I: Copying Debian images to /opt/images/Debian I: Copying NAND U-Boot to /opt/images/Debian I: Copying MMC U-Boot to /opt/images/Debian I: Copying scripts to /opt/images/Debian I: Sync sdcard... I: Done make sdcard! I: I: Command: "sdcard" end. Exit code: 0 I:
Boot board with a bootable SD-Card
Note: Boot from SD-Card eliminates Wifi as the Wifi and SD-Card are using same SDIO interface.
A typical use-case, is to boot from SD-Card, flash eMMC or NAND-Flash, and re-boot form eMMC/NAND to have Wi-Fi operational.
Setting board dip-switches
Booting your system requires switching the relevant dip-switch to "Boot from SD-Card". See picture below.
- "00" - Boot from SDCARD - The picture mode
- "01" - Boot from eMMC
- "10" - Boot from NAND-Flash
- "11" is illegal.
Be aware that your SOM has either eMMC or NAND but never both !
To boot board with SD-Card, Follow the steps below:
- Power-off the board.
- Insert the SD card into the SD/MMC slot of the carrier board (DVK)
- Switch the relevant dip-switch to "Boot from SD-Card"
- Power-up board
- The board will automatically boot into Linux from SD-Card
Automatic device Tree selection in U-Boot
Upon reset you will see the U-BOOT-SPL printouts. It will print also the SOM configuration:
On-SOM storage: SD only, eMMC, NAND.
WIFI if chip exits.
For example:
U-Boot SPL 2015.10-00532-g482dc88 (Jan 03 2016 - 10:05:42) i.MX6UL SOC Part number: DART-6U-A01 Assembly: AS11 Date of production: 2015 Dec 31 DART-6UL configuration: eMMC WIFI Ram size: 512 Boot Device: SD
As explained in the above Build Results table we have 4 optional configurations.
We implemented in U-BOOT and automatic device tree selection, so when kernel boots, the u-boot will load the corresponding device tree according to On-SOM configuration.
Boot From |
SOM Internal FLASH |
SOM has WIFI/BT |
Device Tree selected |
---|---|---|---|
SD | eMMC | Don't Care | imx6ul-var-dart-sd_emmc.dtb |
SD | NAND | Don't Care | imx6ul-var-dart-sd_nand.dtb |
eMMC | eMMC | Yes | imx6ul-var-dart-emmc_wifi.dtb |
eMMC | eMMC | NO | imx6ul-var-dart-sd_emmc.dtb |
NAND | NAND | YES | imx6ul-var-dart-nand_wifi.dtb |
NAND | NAND | NO | imx6ul-var-dart-sd_nand.dtb |
Note: Boot from SD-Card eliminates Wifi as the Wifi and SD-Card are using same SDIO interface.
A typical use-case, is to boot from SD-Card, flash eMMC or NAND-Flash, and re-boot form eMMC/NAND to have Wi-Fi operational.
Disable Automatic Device Tree selection
To disable the automatic device tree selection in u-boot:
> setenv var_auto_fdt_file N > saveenv
Now you can set the device tree to meet your requirments. For example:
> setenv fdt_file imx6ul-var-dart-sd_emmc.dtb > saveenv
Will select device tree that has SD and eMMC regardless if the SOM has WIFI.
> setenv fdt_file imx6ul-var-dart-sd_nand.dtb > saveenv
Will select device tree that has SD and NAND regardless if the SOM has WIFI.
Make sure you don't set am illegal value like "imx6ul-var-dart-sd_nand.dtb" in a SOM that has eMMC flash.
Build Results
The resulted images are located in ~/var_mx6ul_dart_debian/output/.
Image Name |
How to use |
---|---|
rootfs.tar.bz2 | Used to create sdcard and rootfs.ubi.img |
rootfs.ubi.img | Use for flash to nand |
zImage | Linux kernel image |
SPL-nand | SPL built for NAND-Flash. The SPL is pre-u-boot SW component, required for DDR initialization |
SPL-emmc | SPL built for SD-Card and eMMC boot. The SPL is pre-u-boot SW component, required for DDR initialization |
u-boot.bin.nand | U-Boot built for NAND Flash. |
u-boot.bin.emmc | u-boot built for SD-Card boot, or eMMC boot in case of DART-MX6UL. |
Device Tree Name |
Boot Device |
imx6ul-var-dart-emmc_wifi.dtb | Boot from internal eMMC with WI-FI enabled. (SDCARD & NAND disabled) |
imx6ul-var-dart-nand_wifi.dtb | Boot from internal NAND with WI-FI enabled. (SDCARD & eMMC disabled) |
imx6ul-var-dart-sd_emmc.dtb | SDCARD and eMMC enabled (WIFI & NAND disabled). You can boot from eMMC or SDCARD |
imx6ul-var-dart-sd_nand.dtb | SDCARD and NAND enabled (WIFI & eMMC disabled). You can boot from NAND or SDCARD |
Linux console access
User name |
User password |
User descriptor |
---|---|---|
root | root | system administrator |
user | user | local user |
xuser | used for X session access |
Flash images to NAND and eMMC
To flash images on NAND, on the device, as root, run the following command:
# debian-nand.sh
If you wanr to flash images on eMMC, on the device, as root, run the following command:
# debian-emmc.sh
Both the above commands are located in /usr/bin folder of uSD card used to boot debian.