- Build and Install Debian Stretch for SMARC-iMX8MM (Solo, Solo Lite, Dual, Dual Lite, Quad and Quad Lite Core)
- Carrier Board
- Basic Resources
- Generating SSH Keys
- Create build environment
- Make Debian
- Setup SD card Automatically
- Setup SD Card Manually
- Build Results
- Linux Console Access
- Setup eMMC
- Modify the kernel configuration
- Video Decoding
Build and Install Debian Stretch for SMARC-iMX8MM (Solo, Solo Lite, Dual, Dual Lite, Quad and Quad Lite Core)
This document provides instructions for advanced users how Embedian offers patches and builds Debian Stretch for Embedian's SMARC-iMX8MM product platform and how to install the images to bring the evaluation board up and running.
Our aim is to fully support our hardware through device drivers. We also provide unit tests so that testing a board is easy and custom development can start precisely. The recommended host environment is Ubuntu 16.04.
SMARC-iMX8MM from Embedian
EVK-STD-CARRIER-S20 (universal carrier board for all SMARC 2.0 modules) from Embedian
- AArch64 Cross Compiler
- Das U-Boot – the Universal Boot Loader
- Source –
- Linux Kernel
- Linus's Mainline tree:
- Freescale Linux source tree: git://git.freescale.com/imx/linux-imx.git
- Freescale BSP meta layer: git://git.freescale.com/imx/meta-fsl-bsp-release
- OpenEmbedded/Yocto BSP layer for Freescale's ARM platform git://git.yoctoproject.org/meta-fsl-arm
- Embedian SMARC-iMX8MM kernel source tree for linux smarc-8mm_imx_4.14.78_1.0.0_ga: firstname.lastname@example.org:developer/smarc-fsl-linux-kernel.git
- ARM based rootfs
- Debian Squeeze: http://www.debian.org/
- Debian Squeeze: http://www.debian.org/
Generating SSH Keys
We recommend you use SSH keys to establish a secure connection between your computer and Embedian Gitlab server. To download u-boot and kernel source codes from Embedian server. You need to register from Embedian's Gitlab server and put your ssh public key there. The steps below will walk you through generating an SSH key and then adding the public key to our Gitlab account.
Step 1. Check for SSH keys
First, we need to check for existing ssh keys on your computer. Open up Git Bash and run:
Check the directory listing to see if you have a file named either
id_dsa.pub. If you don't have either of those files go to step 2. Otherwise, you already have an existing keypair, and you can skip to step 3.
Step 2. Generate a new SSH key
To generate a new SSH key, enter the code below. We want the default settings so when asked to enter a file in which to save the key, just press enter.
Now you need to enter a passphrase.
Which should give you something like this:
Step 3. Add your SSH key to Embedian Gitlab Server
Copy the key to your clipboard.
Go to Embedian Git Server. At Profile Setting --> SSH Keys --> Add SSH Key
Paste your public key and press "Add Key" and your are done.
Create build environment
Install required packages
On Ubuntu machine:
Download archive containing the build script and support files for building Debian Stretch
This environment prepared to build.
The internet connection in your host PC has to be available.
Build by parts
Build kernel, dtb files and kernel modules
Setup SD card Automatically
where "/dev/sdX" is the SD block device in your host system. Shunt the "TEST#" pin of your device to Ground. Insert the SD card and you will see SMARC-iMX8MM booting with Debian Stretch. Console port is defined on SER3.
Setup SD Card Manually
For these instruction, we are assuming: DISK=/dev/mmcblk0, "lsblk" is very useful for determining the device id.
Erase SD card:
Create Partition Layout: Leave 2MB offset for flash.bin.
With util-linux v2.26, sfdisk was rewritten and is now based on libfdisk.
On some systems, these partitions may be auto-mounted...
Install Boot File
Users need to shunt cross the TEST# pin to ground. In this way, SMARC-iMX8MM will always boot up from SD card.
Fuse flash.bin to the SD card.
uEnv.txt based bootscript
Copy uEnv.txt to the boot partition:
Install Kernel Image
Copy Image to the boot partition:
Install Kernel Device Tree Binary
Install Root File System and Kernel Modules
Extract Root File System:
Remove SD card:
The resulted images are locared in
|rootfs.tar.gz||Root filesystem tarball for installation on SD card and eMMC|
|Image||Linux Kernel Image|
|imx-boot-sd.bin||Boot file for SD card and eMMC|
|DTB File Name||Description|
|device tree blob for SMARC-iMX8MM|
Linux Console Access
|User Name||User Password||User Descriptor|
|x_user||used for X session access|
Shunt TEST# pin to Ground and boot up from your SD card. Run the following command as
Modify the kernel configuration
To modify the kernel configuration (add/remove features and drivers). Please follow the step below.
For playing video, we can use three solutions to support it.
# gplay-1.0 <video file>
# gst-launch-1.0 playbin uri=file://<video absolute path>
version 1.0a, 3/19/2020
Last updated 2020-03-19