VAR-SOM-MX7 Debian Jessie R1

From Variscite Wiki
VAR-SOM-MX7 - Debian Jessie release R1

Overview

This page describes how to assemble and install Debian Jessie distribution on Variscite board VAR-SOM-MX7.

These instructions were 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_mx7_var01 var_som_mx7_debian

Create environment (Internet connection should be available):

$ cd ~/var_som_mx7_debian
$ ./make_var_som_mx7_debian.sh -c deploy

This environment prepared to build.

Make Debian

Build all

Internet connection should be available

$ cd ~/var_som_mx7_debian
$ sudo ./make_var_som_mx7_debian.sh -c all | tee 2.log

Build by parts

Build rootfs

Internet connection should be available

$ cd ~/var_som_mx7_debian
$ sudo ./make_var_som_mx7_debian.sh -c rootfs

Build kernel, dtb files and kernel modules

$ cd ~/var_som_mx7_debian
$ sudo ./make_var_som_mx7_debian.sh -c kernel
$ sudo ./make_var_som_mx7_debian.sh -c modules

Build bootloader

$ cd ~/var_som_mx7_debian
$ sudo ./make_var_som_mx7_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_som_mx7_debian
$ sudo ./make_var_som_mx7_debian.sh -c rtar
$ sudo ./make_var_som_mx7_debian.sh -c rubi

Create boot SD card

  1. Follow the 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_som_mx7_debian
$ sudo ./make_var_som_mx7_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

A typical use-case, is to boot from SD-Card, program eMMC or NAND flash, and re-boot from eMMC/NAND.

Setting board dip-switches

Booting your system requires switching the relevant dip-switches to "Boot from SD-Card". See table below.


  • "00" - Boot from SD
  • "01" - Boot from NAND
  • "10" - Boot from eMMC
  • "11" - N/A

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"
  • Power-up board
  • The board will automatically boot into Linux from SD

Build Results

The resulted images are located in ~/var_mx7_var_som_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
u-boot.img.nand U-Boot built for NAND Flash.
u-boot.img.emmc u-boot built for SD-Card boot, or eMMC boot in case of DART-MX6UL.
Device Tree Name
Boot Device
imx7d-var-som-emmc.dtb Boot from SD or internal eMMC
imx7d-var-som-nand.dtb Boot from internal NAND

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 to NAND, boot from SD card and run the following command root:

# debian-nand.sh

To flash images to eMMC, boot from SD card and run the following command as root:

# debian-emmc.sh

Both the above commands are located in /usr/bin folder of uSD card used to boot Debian.