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
The following downloads our Linux Image and replaces the rootfs part with the Nvidia provided rootfs.
Download and unpack our Linux image as described here.
Remove our rootfs
cd T20_LinuxImageV2.0 sudo rm -rf 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'
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.
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