I do things manual as i want to know what has be done !
So every thing below is hardcore installation. This will give you the why and know how of things !!!
About bootimg.cfg
This file is need for creating boot.img
You can find it by unpacking a boot.img,but one is provided already.
The important part of this file is the first and last option.
The first one will say how big the image wil be, and the last is kernel cmdline.
This is also wehre you say loop= for a loop file
Pack or unpack blob files
cd /tmp git clone git://github.com/AndroidRoot/BlobTools.git cd BlobTools make -j2 sudo cp blobpack /usr/bin/ sudo cp blobunpack /usr/bin/ cd ~
We create a folder and place a boot.img in it.
mkdir ~/test cd ~/test abootimg -x boot.img
Unpacking a initrd image
cd ~/test mkdir ramdisk cd ramdisk gzip -dc ../initrd.img | cpio -i
to repack it, run
cd ~/test/ramdisk find . | cpio -o -H newc | gzip > ../new-initrd.img
find . | cpio -H newc -o | lzma -c > ../initram.lzm
This will give you a new-initrd.img file in ~/test/ for you to use............versions<
Go to the folder and select ALL file or folder BUT source and build !!!!
And compres it file wel be made in home.
modules are install in ubuntu in /lib/modules/
About kernel and initrd and boot.img and blob

Kernel = basic hardware installations and setup
initrd = like a ramdisk
boot.img = kernel + initrd
blob = boot.img + TF special header
Blob file you find in cwm.zip like a kernel update for android
boot.img you will find when using nvflash
kernel gets compiled from a git or source
initrd you can make your own or reuse
i will create cwm.zip to do the flashing
To do this i do.
mkdir ~/test cd ~/test cp ~/TF101-GNU-kernel/arch/arm/boot/zImage ~/test/zImage abootimg --create ./ubuntu.img -f ./bootimg.cfg -k ./zImage -r ./initrd.img
so i do
./blobpack kernelblob LNX ubuntu.img
Now i got a new file kernelblob that i can add to a cmw.zip file
To do this , open !!!! the cmw.zip below and remove and add the file kernelblob.
Thats it, and ready for flashing.
Rootfs
You sould be able to use any rootfs that is for arm.
you can also build a rootfs with rootstock
keep in mind a rootfs kan have diffrent types of names like ( rootfs.img.ext234 or ubuntu,dabian,linux.img.ext234 or evrey name you want it to be its just a name+ext)
If you want to relock it for oem-config ( nice first setup like name location keyboard setup) do
touch /var/lib/oem-config/run
Kbuntu
XBMX
So how do we even flash ?
I use nvflash directly or cwm
The easy why is just using Olife.
Keep in mind that i will never use uboot , only original bootloader of android.
So dualboot is what you need.
if you have dualboot flashed, do this.
Replaced (backup!) initrd-2.6.38.img and 2638-zImage in the kernel folder with my files,
and in Olife update your chromium kernel.
For those that want to use a loop file
Just flash this zip file
And copy the rootfs to sdcard (nand) /sdcard/linux/ubuntu.img (more will come, thats why linux/ubuntu.img)
Wifi setup
Wifi simply needs 2 files and you can get them from android space -> then copy them to Ubuntu space to /lib/firmware/
/data/misc/wifi/nvram.txt -> /lib/firmware
/data/misc/wifi/wpa_supplicant.conf -> /etc/wpa_supplicant.conf #optional
just use a root exploror to copy them to sdcard or usb ( this can alo be done when your in Ubuntu space (/system = mmcblk0p1, /data = mmcblk0p7))
and put them on the right place for Ubuntu.
Bluetooth setup
There are 3 file needed from android space, to get this,
Enable bluetooth
Rename you bluetooth name to what ever you want ( once in Ubuntu you cant change this !!!! )
Leave it on !! and boot to Ubuntu
/data/misc/bluetooth/{bcm4329.hcd,mac.txt} -> /lib/firmware
brcm_patchram_plus (lives on the net) -> /usr/sbin/brcm_patchram_plus (already in)
As last edit /etc/init.d/bsp-tf101 and correct your mac adress --bd_addr ***** (replac *** with mac !!!, mac is located in mac.txt)
.
#! /bin/sh
do_stop(){
#look if Board Support Package is already running
PS=$(ps -A | grep " brcm_patchram_plus\>")
if [ -n "$PS" ]; then
echo "* Stoping Bluetooth Support Package..."
killall brcm_patchram_plus
fi
}
do_start(){
#if already started then stop first
do_stop
#now start all board support binaries
echo "* Starting Bluetooth Support Deamon..."
rfkill unblock 0
modprobe bcm4329
/usr/sbin/brcm_patchram_plus --enable_hci --baudrate 921600 --bd_addr ***** --patchram /lib/firmware/bcm4329.hcd /dev/ttyHS2&
# making sure the nvtegra dev nodes have the correct permissions
echo "* Setting correct permissions on nvtegra device nodes..."
chmod 0666 /dev/nv* /dev/tegra_*
}
case $1 in
start | restart)
do_start
;;
stop)
do_stop
;;
esac
Installing Tegra HEADER files ( needed when building things like XBMC )
Copy as root all folder to /usr/include/
Installing Opengl-ES
Download the Tegra drivers from Nvidia
Once downloaded unpack it and open a cmdline and go to that direction Where those files are and type,
sudo ./app*.sh --help
--abi = witch version of abi your running, to get you version run in ubuntu on TF
aptitude show xserver-xorg-core | grep abi
sudo ./app*.sh --abi 10 -r /
sudo usermod -a -G audio sudo chmod -R 777 /dev/snd/*
playback
Left And Right speaker mixer DACL/R
Set DC input to DMIC
And sound sould work right away.
Install zram
sudo wget -O /etc/init/zramswap.conf 'https://wiki.ubuntu.com/ARM/TEGRA/AC100?action=AttachFile&do=get&target=zramswap.conf'
sudo apt-get install (try installing all dependencies you can in the readme.ubuntu in xbmc folder , some will fail so just remove them) )
cd ~ git clone git clone git://github.com/xbmc/xbmc.git cd xbmc ./bootstrap ./configure --enable-tegra --enable-gles --disable-openmax --disable-vdpau --disable-hal --disable-joystick --disable-debug --disable-dvdcss make -j2 sudo make install sudo apt-get install libgl1-mesa-swrast
in your config (dualboot.cfg)
You kernel cmdline would be
( if you have native root=/dev/mmblk0p8 rw.........)
( for loop support you add loop= ( location of file !!! + root= (the partition where the file is located !!)
root=/dev/mmcblk0p7 rw loop=/xxx/xxx
Default Kernel
files
Support
hdmi ( audio ? )
USB ( full working )
jack ( mic ? )
Opengl-ES
zram ( needs script also a most have beacuse of low ram space )
-more to come
Sources
kernel
Khronos header package
Tegra Opengl-ES drivers
Blobtools
THANKS TO:




Philadelphia, PA


Linear Mode