Search by Tags

Using the NVidia provided L4T rootfs

 
Applicable for

Article updated at 26 Mar 2019
Compare with Revision




Starting from Version V2.0 our Images are based on Nvidias L4T Linux SW stack.
Nvidia provides a root file system (rootfs) with its L4T. This rootfs is based on the ARM hard float port of Ubuntu. While it is not possible to use bootloader and Linux kernel from L4T, as these have to be adopted to the different HW on the Colibri, the rootfs could be used. This article describes how to do this.

Below description uses L4T R16.2. For the latest and greatest please check NVIDIA's developer website: https://developer.nvidia.com/linux-tegra

E.g. for T30, L4T R16.3 use the following files instead:

http://developer.download.nvidia.com/devzone/devcenter/tools/files/l4t/r16_Release_v1.0/Tegra_Linux_Driver_Package_Documents_R16.tar
http://developer.nvidia.com/sites/default/files/akamai/mobile/files/L4T/cardhu_Tegra-Linux-R16.3.0_armhf.tbz2
http://developer.nvidia.com/sites/default/files/akamai/mobile/files/L4T/cardhu_Tegra-Linux-codecs-R16.3.0_armhf.tbz2
http://developer.download.nvidia.com/akamai/mobile/files/L4T/Tegra_Linux_Sample_Root-Filesystem_armhf.tbz2

Colibri T20

Prepare the rootfs

The following downloads our Linux Image and replaces the rootfs part with the Nvidia provided rootfs.

Toradex image

Download and unpack our Linux image as described here.

Remove our rootfs

cd T20_LinuxImageV2.0
sudo rm -rf rootfs

L4T rootfs

Ventana is Nvidia's development platform for T20, while Cardhu is the one for T30.

Download Nvidia's Documentation, rootfs, Driver and Codec tarballs from http://developer.nvidia.com. Note that the URLs, filenames were correct at the time of writing but may have changed.

mkdir L4T; cd L4T
wget http://developer.download.nvidia.com/devzone/devcenter/tools/files/l4t/r16_Release_v1.0/Tegra_Linux_Driver_Package_Documents_R16.tar
wget http://developer.nvidia.com/sites/default/files/akamai/mobile/files/L4T/ventana_Tegra-Linux-R16.3.0_armhf.tbz2
wget http://developer.nvidia.com/sites/default/files/akamai/mobile/files/L4T/ventana_Tegra-Linux-codecs-R16.3.0_armhf.tbz2
wget http://developer.download.nvidia.com/akamai/mobile/files/L4T/Tegra_Linux_Sample_Root-Filesystem_armhf.tbz2
tar xf Tegra_Linux_Driver_Package_Documents_R16.tar

Set up the rootfs as described in the documentation references/Tegra_Linux_Driver_Package_Developers_Guide.pdf chapter 'Setting Up Your Environment'

The following is a short sequence of the commands required to do this:

sudo tar xjf ventana_Tegra-Linux-R16.2.0_armhf.tbz2
cd Linux_for_Tegra/rootfs 
sudo tar xjf ../../Tegra_Linux_Sample_Root-Filesystem_armhf.tbz2
cd ..
sudo ./apply_binaries.sh 
sudo tar xjf ../ventana_Tegra-Linux-codecs-R16.2.0_armhf.tbz2
cd rootfs 
sudo tar xjf ../restricted_codecs.tbz2

Toradex Images newer than 03.2013 guess the module type from rootfs/etc/issue file. Add a line so that a Colibri T20 module gets detected:

sudo sh -c 'echo "" >> etc/issue'
sudo sh -c 'echo "Colibri_T20" >> etc/issue'

Flash your Colibri

Now create a symlink to the L4T rootfs. Bring the Colibri in recovery mode and execute update.sh with the module parameters.

cd ../../..
sudo ln -s L4T/Linux_for_Tegra/rootfs/ rootfs
sudo ./update.sh -r 512 -v V1_1

Voilà, your ready for a first boot to the Ubuntu console on the RS232 console. Username: ubuntu Password: ubuntu

Refer to Nvidia's documentation for further steps with your shiny new Ubuntu system.

Apalis/Colibri T30

The complete process for Apalis resp. Colibri T30 as opposed to Colibri T20 as described above. Please note that there seems an issue with the CPU hot plugging therefore as a workaround we simply disabled it by editing nv.conf before flashing.

wget -c http://developer.toradex.com/files/toradex-dev/uploads/media/Colibri/Linux/Images/old/T30_LinuxImageV2.0Beta3_20130820.tar.bz2 resp. wget -c http://developer.toradex.com/files/toradex-dev/uploads/media/Colibri/Linux/Images/old/Apalis_T30_LinuxImageV2.0Beta2_20130816.tar.bz2
sudo tar xjvf Apalis_T30_LinuxImageV2.0Beta2_20130816.tar.bz2
cd T30_LinuxImageV2.0/ resp. cd Apalis_T30_LinuxImageV2.0/
sudo rm -rf rootfs
sudo mkdir L4T; cd L4T
sudo wget -c http://developer.nvidia.com/sites/default/files/akamai/mobile/files/L4T/cardhu_Tegra-Linux-R16.3.0_armhf.tbz2
sudo wget -c http://developer.nvidia.com/sites/default/files/akamai/mobile/files/L4T/cardhu_Tegra-Linux-codecs-R16.3.0_armhf.tbz2
sudo wget -c http://developer.download.nvidia.com/akamai/mobile/files/L4T/Tegra_Linux_Sample_Root-Filesystem_armhf.tbz2
sudo tar xjvf cardhu_Tegra-Linux-R16.3.0_armhf.tbz2 
cd Linux_for_Tegra/rootfs/
sudo tar xjvf ../../Tegra_Linux_Sample_Root-Filesystem_armhf.tbz2
cd ../
sudo ./apply_binaries.sh 
sudo tar xjvf ../cardhu_Tegra-Linux-codecs-R16.3.0_armhf.tbz2 
cd rootfs/
sudo tar xjvf ../restricted_codecs.tbz2 
sudo sh -c 'echo "" >> etc/issue'
sudo sh -c 'echo "Apalis_T30" >> etc/issue' resp. sudo sh -c 'echo "Colibri_T30" >> etc/issue'

#edit etc/init/nv.conf and comment the following line (e.g. sudo vi etc/init/nv.conf, /echo[Enter], i#, [Esc], :wq[Enter])
#               echo 1 > /sys/module/cpu_tegra3/parameters/auto_hotplug         

cd ../../../
sudo ln -s L4T/Linux_for_Tegra/rootfs/
sudo rm -f bin/APP.ext3
./update.sh