This method is for fastboot mode. If you use U-boot look to linuxdev post on this thread.
1. On Jetson-TK1
a) Install dependencies:
sudo apt-add-repository universe
sudo apt-get update
sudo apt-get install libncurses5-dev
b) Switch to root account:
sudo su
c) Download, unpack & configure kernel source:
cd /usr/src/
wget https://developer.nvidia.com/sites/default/files/akamai/mobile/files/L4T/kernel_src.tbz2
tar -xvf kernel_src.tbz2
cd kernel
zcat /proc/config.gz > .config
make menuconfig
Go to: “General setup → Local version” and set your version name eg.: -grinch
After customize kernel options, save & exit. You should look “configuration written to .config”
d) Compile your kernel (about 10minutes)
make -j4
make modules
make modules_install
e) Check modules was installed
ls /lib/modules/
You should look -grinch modules directory:
3.10.24-gf455cd4 3.10.24-grinch
f) Copy kernel zImage to USB or FTP from arch/arm/boot/ directory
-rwxr-xr-x 1 root 5721960 Jul 20 18:32 arch/arm/boot/zImage
g) Turn off Jetson TK1, connect via USB cable to PC-host and turn Jetson in RECOVERY mode.
2. On PC host
a) On PC-Host you should look device 0955:7140:
lsusb
Bus 006 Device 010: ID 0955:7140 NVidia Corp.
b) Download L4T if you haven’t yet:
wget https://developer.nvidia.com/sites/default/files/akamai/mobile/files/L4T/Tegra124_Linux_R19.3.0_armhf.tbz2
tar -xvf Tegra124_Linux_R19.3.0_armhf.tbz2
cd Linux_for_Tegra
c) Replace zImage in “kernel/” in your zImage file compiled before (1.f)
d) Flash kernel
sudo ./flash.sh -k 6 jetson-tk1 mmcblk0p1
You should look:
copying dtbfile(/root/Linux_for_Tegra/kernel/dtb/tegra124-pm375.dtb) to tegra124-pm375.dtb... done.
Just updating kernel and boot device.
copying bootloader(/root/Linux_for_Tegra/bootloader/ardbeg/fastboot.bin)... done.
Bootloader(/root/Linux_for_Tegra/bootloader/ardbeg/fastboot.bin) used as flasher.
Existing flash application(/root/Linux_for_Tegra/bootloader/nvflash) reused.
making zero initrd...
done.
Making Boot image... done
*** Flashing kernel update started. ***
Nvflash 4.13.0000 started
chip uid from BR is: 0x340010017408f044100000000a020440
rcm version 0X400001
System Information:
chip name: unknown
chip id: 0x40 major: 1 minor: 1
chip sku: 0x81
chip uid: 0x000000017408f044100000000a020440
macrovision: disabled
hdcp: enabled
jtag: enabled
sbk burned: false
board id: 375
warranty fuse: 0
dk burned: true
boot device: emmc
operating mode: 3
device config strap: 0
device config fuse: 0
sdram config strap: 3
RCM communication completed
downloading bootloader -- load address: 0x80108000 entry point: 0x80108000
sending file: fastboot.bin
- 900492/900492 bytes sent
fastboot.bin sent successfully
waiting for bootloader to initialize
bootloader downloaded successfully
sending file: boot.img
\ 5724160/5724160 bytes sent
boot.img sent successfully
Time taken for flashing 3 Secs
*** The kernel has been updated successfully. ***
IF FLASH FAILED and message is: “mapping system.img to loop device failed.” edit flash.sh on line 284:
losetup /dev/loop0 system.img > /dev/null 2>&1
replace to:
losetup --find --show system.img
thanks linuxdev - more info
e) Reset Jetson (power off-on)
3. On Jetson-TK1
a) Check kernel version
uname -a
Linux tegra-ubuntu 3.10.24-grinch #1 SMP PREEMPT Sun Jul 20 18:31:40 CEST 2014 armv7l armv7l armv7l GNU/Linux
b) Copy extra modules from NVIDIA kernel
sudo cp -rv /lib/modules/3.10.24-gf455cd4/extra /lib/modules/`uname -r`/
sudo depmod -a
Well done. You have own kernel!
p.s. sorry for my english :)