Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

For u-boot 2017.03 and Linux 4.9.11, you need to use the following newer Linaro arm compilier. 

Info
iconfalse
$ wget -c httpshttp://releases.linaro.org/components/toolchain/binaries/6.2-2016.11/arm-linux-gnueabihf/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf.tar.xz
$ sudo tar -C /opt -xJf gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf.tar.xz
$ export CC=/opt/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-


For u-boot 2016.03 and Linux 4.1.15, you need to use the following newer Linaro arm compilier.

Info
iconfalse
$ wget -c httpshttp://releases.linaro.org/archive/15.05/components/toolchain/binaries/arm-linux-gnueabihf/gcc-linaro-4.9-2015.05-x86_64_arm-linux-gnueabihf.tar.xz
$ sudo tar -C /opt -xJf gcc-linaro-4.9-2015.05-x86_64_arm-linux-gnueabihf.tar.xz
$ export CC=/opt/gcc-linaro-4.9-2015.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-

...

Ubuntu 14.04 Download:

Info
iconfalse

$ wget -c ftp://ftp.embedian.com/public/dev/minfs/trusty/imx7-ubuntu1404.tar.gz

Verify:

Info
iconfalse

$ md5sum imx7-ubuntu1404.tar.gz
6cb950287c96f24901f4d1472a10324b  imx7-ubuntu1404.tar.gz

 

Yocto Build Root File System:

...

For these instruction, we are assuming: DISK=/dev/mmcblk0, "lsblk" is very useful for determining the device id.

Info
iconfalse

$ export DISK=/dev/mmcblk0

Erase SD card:

Info
iconfalse

$ sudo dd if=/dev/zero of=${DISK} bs=1M count=16

...

Info
iconfalse
titledirectory where your root file system is

$ sudo tar xvfz <filename.tar.gz> -C /media/rootfs

Ubuntu 14.04:

Info
iconfalse
titledirectory where your root file system is

$ sudo tar xvfz imx7-ubuntu1404.tar.gz -C /media/rootfs

Copy Kernel Modules:

Info
iconfalse
title~/smarc-fsl-linux-kernel

$ sudo make ARCH=arm INSTALL_MOD_PATH=/media/rootfs modules_install


Note
titleNote
  1. After compiled u-boot, it will generated u-boot.imx (u-boot-dtb.imx if using u-boot v2017.03) ) and u-boot.bin. The only difference is IVT header that will tell i.MX7 internal ROM where to load u-boot. If the firmware in SPI flash need to be update or empty. Users could pull the TEST# pin on carrier board to low. In this way, SMARC-FiMX7 will boot up to SD card first. The command to copy u-boot.imx (rename u-boot-dtb.imx to u-boot.imx if using v2017.03) to SD card now is:
    $ sudo dd if=u-boot.imx of=${DISK} bs=512 seek=2 
    In this case, user will only need to copy uEnv.txt, zImage and device tree blob to partition one of your boot device.  
  2. MAC address is factory pre-installed at on board I2C EEPROM at offset 60 bytes and 66 bytes (ENET2). It starts with Embedian's vendor code 10:0D:32. u-boot will read it and pass this parameter to kernel.
  3. If your rootfs is yocto built, the kernel modules will be included in the rootfs.

...

Edit: /etc/network/interfaces

Info
iconfalse

$ sudo vim /media/rootfs/etc/network/interfaces

Add:

Info
iconfalse
title/media/rootfs/etc/network/interfaces

auto lo
iface lo inet loopback
 
auto eth0
iface eth0 inet dhcp

...

For these instruction, we are assuming: DISK=/dev/mmcblk0, "lsblk" is very useful for determining the device id.

Info
iconfalse

$ export DISK=/dev/mmcblk0

Mount Partitions:

On some systems, these partitions may be auto-mounted...

...


Copy zImage to rootfs partition:

Info
iconfalse

$ sudo cp -v /media/boot/zImage /media/rootfs/home/root

Note
titleNote
  1. If your rootfs is Ubuntu 14.04, copy to /media/rootfs/home/ubuntu instead of /media/rootfs/home/root

...

Copy device tree blob to rootfs partition:

Info
iconfalse

$ sudo cp -v /media/boot/dtbs/imx7s-smarcfimx7.dtb /media/rootfs/home/root/imx7s-smarcfimx7.dtb
$ sudo cp -v /media/boot/dtbs/imx7d-smarcfimx7.dtb /media/rootfs/home/root/imx7d-smarcfimx7.dtb 

Copy real rootfs to rootfs partition:

Yocto Built Root File Systems

Info
iconfalse

$ pushd /media/rootfs

$ sudo tar cvfz ~/smarcfimx7-emmc-rootfs.tar.gz .

$ sudo mv ~/smarcfimx7-emmc-rootfs.tar.gz /media/rootfs/home/root

$ popd

Ubuntu 14.04 Root File Systems

Info
iconfalse

$ sudo vim /media/rootfs/etc/udev/rules.d/70-persistent-net.rules

Delete all contents starting with "SUBSYSTEM=="

$ pushd /media/rootfs

$ sudo tar cvfz ~/smarcfimx7-emmc-rootfs.tar.gz .

$ sudo mv ~/smarcfimx7-emmc-rootfs.tar.gz /media/rootfs/home/ubuntu

$ popd

Remove SD card:

Info
iconfalse
$ sync
$ sudo umount /media/boot
$ sudo umount /media/rootfs

...

Install Kernel Device Tree Binary

Info
iconfalse

$ sudo mkdir -p /media/boot/dtbs

$ sudo cp -v imx7s-smarcfimx7.dtb imx7d-smarcfimxd.dtb /media/boot/dtbs

Install Root File System

...

Info
iconfalse

$ sudo tar -zxvf smarcfimx7-emmc-rootfs.tar.gz -C /media/rootfs

...