...
debian based | extra | pkgs: (sudo apt-get update ; sudo apt-get install xyz) |
---|---|---|
Ubuntu 12.04 |
| ia32-libs |
Debian 7 (Wheezy) | sudo dpkg --add-architecture i386 | libc6:i386 libstdc++6:i386 libncurses5:i386 zlib1g:i386 |
Ubuntu 12.10 -> 14.04 |
| libc6:i386 libstdc++6:i386 libncurses5:i386 zlib1g:i386 |
Red Hat/Centos/Fedora |
| libstdc++.i686 ncurses-devel.i686 zlib.i686 |
Red Hat based (rpm) | extra | pkgs: (yum install xyz) |
Red Hat/Centos/Fedora |
| libstdc++.i686 ncurses-devel.i686 zlib.i686 |
Ubuntu 12.04 |
| ia32-libs |
Ubuntu 12.10 -> 14.04 |
| libc6:i386 libstdc++6:i386 libncurses5:i386 zlib1g:i386 |
For For u-boot v2015.07 andv2017.01 and Linux kernel v4.19.41, use Linaro arm compilier that TI used in their Processor SDK 0204.01.00.01.0706
Info | ||
---|---|---|
| ||
$ wget wget -c httpshttp://releases.linaro.org/15.05/components/toolchain/binaries/6.2-2016.11/arm-linux-gnueabihf/gcc-linaro-46.92.1-20152016.0511-x86i686_64_arm-linux-gnueabihf.tar.xz $ sudo tar -C /opt -xJf gcc-linaro-46.92.1-20152016.0511-x86_64_arm-linux-gnueabihf.tar.xz $ export CC=/opt/gcc-linaro-46.92.1-20152016.0511-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf- |
For u-boot v2016.05 and Linux kernel v4.4.12, use Linaro arm compilier that TI used in their Processor SDK 03.00.00.04
Info | ||
---|---|---|
| ||
$ wget https-c http://releases.linaro.org/components/toolchain/binaries/5.3-2016.02/arm-linux-gnueabihf/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf.tar.xz $ sudo tar -C /opt -xJf gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf.tar.xz $ export CC=/opt/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf- |
For u-boot v2015.07 and Linux kernel v4.1.10, use Linaro arm compilier that TI used in their Processor SDK 02.00.01.07
Info | ||
---|---|---|
| ||
$ wget -c http://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- |
Test:
If this test fails, verify that you have the 32bit libraries installed on your development system.
Info | ||
---|---|---|
| ||
|
Generating SSH Keys
...
We recommend you use SSH keys to establish a secure connection between your computer and Embedian Gitlab server. The steps below will walk you through generating an SSH key and then adding the public key to our Gitlab account.
...
Clone the U-Boot source code from Embedian Git Server.
Download
For u-boot v2015v2017.07 01 (Processor-SDK-0204.01.00.01.0706):
Download
Info | ||
---|---|---|
| ||
$ git clone git@git.embedian.com:developer/smarc-t335x-uboot.git smarc-t437x-uboot $ cd smarc-t437x-uboot $ git checkout v2015v2017.0701-smarct4x |
For u-boot v2016.05 (Processor-SDK-03.00.00.04):
Download
Info | ||
---|---|---|
| ||
$ git clone git@git.embedian.com:developer/smarc-t335x-uboot.git smarc-t437x-uboot $ cd smarc-t437x-uboot $ git checkout v2016.05-smarct4x |
For u-boot v2015.07 (Processor-SDK-02.00.01.07):
Info | ||
---|---|---|
| ||
$ git clone git@git.embedian.com:developer/smarc-t335x-uboot.git smarc-t437x-uboot $ cd smarc-t437x-uboot $ git checkout v2015.07-smarct4x |
Configure and Build:
Info | ||
---|---|---|
| ||
$ make ARCH=arm CROSS_COMPILE=${CC} distclean $ make ARCH=arm CROSS_COMPILE=${CC} smarct437x_evm_spi_uart3_defconfig $ make ARCH=arm CROSS_COMPILE=${CC} |
Note |
---|
$ make ARCH=arm CROSS_COMPILE=${CC} smarct437x_evm_uart3_defconfig |
Linux Kernel
...
Download:
For 4.19.13 41 (Processor-SDK-0204.01.00.01.0706, Stable, LTS):
Download:
Info | ||
---|---|---|
| ||
$ git clone git@git.embedian.com:developer/smarc-ti-linux-kernel.git $ cd smarc-ti-linux-kernel Branch "smarct4x-800-$ git checkout smarct4x-800-processor-sdk-linux-02.00.01 | ||
Note | ||
04.01.00.06 |
For 4.4.12 (Processor-SDK-03.00.00.04, Stable, LTS):
Info | ||
---|---|---|
| ||
$ git clone git@git.embedian.com:developer/smarc-ti-linux-kernel.git $ cd smarc-ti-linux-kernel $ git checkout smarct4x-processor-sdk-linux- 0203.00. 01" is for 00.04 |
Note |
---|
SMARC-T4378-800 variant . If users use and SMARC-T4378-01G , use both share the same kernel branch "smarct4x-processor-sdk-linux-0203.00.01" branch instead.$ git checkout 00.04" at Linux kernel v4.4.12 and "smarct4x-processor-sdk-linux-0204.01.00.01 |
06" at Linux kernel v4.9.41. |
For 4.41.12 13 (Processor-SDK-0302.00.0001.0407, Stable, LTS):
Download:
Info | ||
---|---|---|
| ||
$ git clone git@git.embedian.com:developer/smarc-ti-linux-kernel.git $ cd smarc-ti-linux-kernel $ git checkout smarct4x-800-processor-sdk-linux-0302.00.00.0401 |
Note |
---|
Branch "smarct4x-800-processor-sdk-linux-02.00.01" is for SMARC-T4378-800 variant and . If users use SMARC-T4378-01Gboth share the same kernel branch , use "smarct4x-processor-sdk-linux-0302.00.00.04" at Linux kernel v4.4.12.01" branch instead. $ git checkout smarct4x-processor-sdk-linux-02.00.01 |
Configure and Build
Info | ||
---|---|---|
| ||
$ make ARCH=arm CROSS_COMPILE=${CC} distclean $ make ARCH=arm CROSS_COMPILE=${CC} smarct437x_defconfig $ make ARCH=arm CROSS_COMPILE=${CC} zImage modules am437x-smarct437x.dtb |
...
Info | ||
---|---|---|
| ||
$ wget -c ftp://ftp.embedian.com/public/dev/minfs/trusty/smarct4x-ubuntu-14.04.tar.gz |
Verify:
Info | ||
---|---|---|
| ||
|
Setup SD Card
...
For these instruction, we are assuming: DISK=/dev/mmcblk0, "lsblk" is very useful for determining the device id.
...
On some systems, these partitions may be auto-mounted...
Info | ||
---|---|---|
| ||
$ sudo mkdir -p /media/boot/ $ sudo mkdir -p /media/rootfs/ for : DISK=/dev/mmcblk0 $ sudo mount ${DISK}p1 /media/boot/ $ sudo mount ${DISK}p2 /media/rootfs/ for : DISK=/dev/sdX $ sudo mount ${DISK} 1 /media/boot/ $ sudo mount ${DISK} 2 /media/rootfs/ |
...
The MLO.byteswap and u-boot.img is pre-installed in SPI NOR flash at factory default. SMARC-T4378 is designed to always boot up from SPI NOR flash and to load zImage, device tree blob and root file systems based on the device setting of BOOT_SEL. If users need to fuse their own u-boot or perform u-boot upgrade. This section will instruct you how to do that.
Copy MLO.byteswap/u-boot.img to the first boot partition of your SD card.
Info | ||||
---|---|---|---|---|
| ||||
$ sudo cp -v MLO.byteswap /media/boot/ $ sudo cp -v u-boot.img /media/boot/spi-u-boot.img |
...
Copy MLO/u-boot.img to the first boot partition of your SD card.
Info | ||||
---|---|---|---|---|
| ||||
$ sudo cp -v MLO /media/boot/ $ sudo cp -v u-boot.img /media/boot/ |
...
Info | ||||
---|---|---|---|---|
| ||||
$ sudo cp -v arch/arm/boot/zImage /media/boot |
Install Kernel Device Tree Binary
Info | ||
---|---|---|
| ||
$ sudo mkdir -p /media/boot/dtbs $ sudo cp -v arch/arm/boot/dts/am437x-smarct437x.dtb /media/boot/dtbs |
Install Root File System and Kernel Modules
...
Info | ||||
---|---|---|---|---|
| ||||
$ sudo tar xvfz smarct437x-rootfs-image-smarct437x.tar.gz -C /media/rootfs |
Ubuntu 14.04:
Info | ||||
---|---|---|---|---|
| ||||
$ sudo tar xvfz smarct4x-ubuntu-14.04.tar.gz -C /media/rootfs |
Copy Kernel Modules:
Info | ||||
---|---|---|---|---|
| ||||
$ sudo make ARCH=arm INSTALL_MOD_PATH=/media/rootfs modules_install |
Networking:
Edit: /etc/network/interfaces
Info | ||
---|---|---|
| ||
$ sudo vim /media/rootfs/etc/network/interfaces |
Add:
Info | ||||
---|---|---|---|---|
| ||||
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 | ||
---|---|---|
| ||
|
Mount Partitions:
On some systems, these partitions may be auto-mounted...
...
Copy zImage to rootfs partition:
Info | ||
---|---|---|
| ||
|
Note | ||
---|---|---|
| ||
|
...
Copy device tree blob to rootfs partition:
Info | ||
---|---|---|
| ||
$ sudo cp -v /media/boot/dtbs/am437x-smarct437x.dtb /media/rootfs/home/root/am437x-smarct437x.dtb |
Copy real rootfs to rootfs partition:
Yocto Built Root File Systems
Info | ||
---|---|---|
| ||
|
Ubuntu 14.04 Root File Systems
Info | ||
---|---|---|
| ||
|
Remove SD card:
Info | ||
---|---|---|
| ||
$ sync $ sudo umount /media/boot $ sudo umount /media/rootfs |
...
Now it will be almost the same as you did when setup your SD card, but the eMMC device descriptor is /dev/mmcblk0 now. (SD card will be /dev/mmcblk1)
Info | ||
---|---|---|
| ||
|
Erase SD card:
Info | ||
---|---|---|
| ||
$ |
...
Copy uEnv.txt/zImage/*.dtb to the boot partition
Info | ||
---|---|---|
| ||
$ sudo cp -v zImage uEnv.txt /media/boot/ |
Install Kernel Device Tree Binary
Info | ||
---|---|---|
| ||
$ sudo mkdir -p /media/boot/dtbs $ sudo cp -v am437x-smarct437x.dtb /media/boot/dtbs |
Install Root File System
...
Info | ||
---|---|---|
| ||
$ sudo tar -zxvf smarct437x-emmc-rootfs.tar.gz -C /media/rootfs |
Unmount eMMC:
Info | ||
---|---|---|
| ||
$ sync $ sudo umount /media/boot $ sudo umount /media/rootfs |
Switch your Boot Select to eMMC and you will be able to boot up from SPI NOR flash and import u-boot environmental parameters and load kernel zImage and device tree blob from eMMC now.
==End of Document==
Last updated 20162018-0802-24