Difference between revisions of "Funtoo on the Nvidia TK1"

From Funtoo
Jump to navigation Jump to search
m
Line 50: Line 50:
}}
}}


== Copy over Everything ==
{{console|body=
# cd $XC_KERNEL_SRC
# ARCH=$ARCH CROSS_COMPILE=$CROSSDEV_TARGET- INSTALL_MOD_PATH=$XC_STAGE3S INSTALL_MOD_STRIP=1 make modules_install
# ARCH=$ARCH CROSS_COMPILE=$CROSSDEV_TARGET- INSTALL_MOD_PATH=$XC_STAGE3S make firmware_install
# rsync -avz $XC_FIRMWARE/ $XC_STAGE3S/lib/firmware
# rsync -avz arch/arm/boot/zImage $XC_STAGE3S/boot
# rsync -avz arch/arm/boot/dts/*.dtb $XC_STAGE3S/boot
# rm $XC_STAGE3S/lib/modules/`get_kernel_release`/{build,source}
}}


== Install Super Special Blobs ==
== Install Super Special Blobs ==

Revision as of 22:19, February 24, 2017

Introduction

Read this.

And this

And this.

Getting the Sources

Use the tools issued by Nvidia to handle kernel sources via git. Checkout the desired kernel version, probably the newest, update the environment variables and great a branch named by the kernel version.

root # wget http://developer.nvidia.com/embedded/dlc/l4t-Jetson-TK1-Driver-Package-R21-5 -O $TOOLS/l4t-Jetson-TK1-Driver-Package-R21-5
root # cd $TOOLS
root # tar jxf l4t-Jetson-TK1-Driver-Package-R21-5
root # rm l4t-Jetson-TK1-Driver-Package-R21-5
root # cd Linux_for_Tegra
root # ./source_sync.sh  #skip tag selection both times
root # cd sources/kernel_source
root # git ls-remote
root # git checkout tegra-l4t-r24.2.1
root # ln -s $PWD $XC_KERNEL_SRC
root # . xcompile_variables.sh
root # git checkout -b `get_kernel_version`

Kernel Building

You need a working kernel config. You can get one from a running TK1 and get it into your $XC_KERNEL_SRC directory.

root # zcat /proc/config.gz > my_TK1_config
root # scp my_TK1_config <xc_user>@<xc_host>:~
root # cp ~/my_TK1_config $CONFIGS/`get_kernel_version`.kconf


Or you can get it from the kernel headers.

root # cd $TOOLS/Linux_for_Tegra/kernel
root # tar xvf kernel_headers.tbz2
root # cp linux-headers-<kernel_version>/.config $CONFIGS/`get_kernel_version`.kconf

Make the Kernel

root # . xcompile_variables.sh
root # cd $XC_KERNEL_SRC
root # cp $XC_KERNEL_OLDCONFIG .config
root # ARCH=$ARCH CROSS_COMPILE=$CROSSDEV_TARGET- make oldconfig
root # ARCH=$ARCH CROSS_COMPILE=$CROSSDEV_TARGET- make zImage modules dtbs

Copy over Everything

root # cd $XC_KERNEL_SRC
root # ARCH=$ARCH CROSS_COMPILE=$CROSSDEV_TARGET- INSTALL_MOD_PATH=$XC_STAGE3S INSTALL_MOD_STRIP=1 make modules_install

root # ARCH=$ARCH CROSS_COMPILE=$CROSSDEV_TARGET- INSTALL_MOD_PATH=$XC_STAGE3S make firmware_install

root # rsync -avz $XC_FIRMWARE/ $XC_STAGE3S/lib/firmware
root # rsync -avz arch/arm/boot/zImage $XC_STAGE3S/boot
root # rsync -avz arch/arm/boot/dts/*.dtb $XC_STAGE3S/boot

root # rm $XC_STAGE3S/lib/modules/`get_kernel_release`/{build,source}

Install Super Special Blobs

root # cd $TOOLS/Linux_for_Tegra
root # rmdir rootfs
root # ln -s $XC_STAGE3S rootfs
root # ./apply_binaries.sh

Configure Stage3

See http://www.funtoo.org/Crossdev_Automation#Stage3_Configuration

Don't configure fstab and leave a serial console configured on ttyS2 in $XC_STAGES/etc/inittab.

root # cat "# UNCONFIGURED FSTAB FOR BASE SYSTEM" > $XC_STAGE3S/fstab