Kernel Build

Hi All,

Downloaded the Linux Kernel from Nvidia website, not by L4T installation.

Did the native compilation in board. In board, gcc version is:
gcc (Ubuntu/Linaro 4.8.2-19ubuntu1) 4.8.2
Copyright © 2013 Free Software Foundation, Inc.

Tried to boot the kernel, but it gets hang at:

6246456 bytes read in 202 ms (29.5 MiB/s)
append: console=ttyS0,115200n8 console=tty1 no_console_suspend=1 lp0_vec=2064@0xf46ff000 mem=2015M@2048M memtype=255 ddr_die=2048M@2048M section=256M pmuboard=0x0177:0x0000:0x02:0x43:0x00 tsec=32M@3913M otf_key=c75e5bb91eb3bd947560357b64422f85 usbcore.old_scheme_first=1 core_edp_mv=1150 core_edp_ma=4000 tegraid=40.1.1.0.0 debug_uartport=lsport,3 power_supply=Adapter audio_codec=rt5640 modem_id=0 android.kerneltype=normal fbcon=map:1 commchip_id=0 usb_port_owner_info=0 lane_owner_info=6 emc_max_dvfs=0 touch_id=0@0 board_info=0x0177:0x0000:0x02:0x43:0x00 root=/dev/mmcblk0p1 rw rootwait tegraboot=sdmmc gpt
Retrieving file: /boot/tegra124-jetson_tk1-pm375-000-c00-00.dtb
59637 bytes read in 288 ms (202.1 KiB/s)
Kernel image @ 0x81000000 [ 0x000000 - 0x5f5038 ]

Flattened Device Tree blob at 82000000

Booting using the fdt blob at 0x82000000
Using Device Tree in place at 82000000, end 820118f4

Starting kernel …

Please help

It looks like the boot loader is working ok, and that prerequisite firmware is installed. The address where it looks for the kernel seems to have no executable code there. If you have not flashed, your Jetson will have arrived with R19.2, using fastboot boot loader. If you flashed to a more recent R21.x, then u-boot is the boot loader (highly recommended). How you install the kernel and modules changes depending on boot loader. How did you install the kernel and modules, and what L4T version are you using?

L4T version is: JetPack-L4T-2.0-linux-x64.run

In board, U-Boot is there i.e. Flashed the U-Boot and it is booting fine.
The installation as: copied the zImage from compiled locations to /boot/zImage.

I am doubting that whether the native compilation produces this problem.
Whether need to set any environment varialble for native compilations and need to do any other
configuration for this?

Linux source is downloaded directly, not by the scripts.

As per the link, http://rex-shen.net/port-android-nvidia-jetson-tk1/

In kernel config, they are removing the below components:

  1. Disable LPAE(because it will be conflict with the r8169 ethernet driver)
  2. Disable PASR(it does not work, I don’t know why). We’d better to set pasr_enable to 0 in init.t124.rc too
  3. Delete Broadcom Wifi driver relevant options
  4. Delete touchscreen relevant options

Whether need to remove these components or not and what are the other components need to be removed?

Downloaded via git also and git tag name: tegra-l4t-r21.4

Kernel version:
VERSION = 3
PATCHLEVEL = 10
SUBLEVEL = 40
EXTRAVERSION =
NAME = TOSSUG Baby Fish

I’m unsure of how to start answering, other than to ask more questions and speculate. This is not an answer, but may trigger a more relevant question.

Is “Starting kernel …” the last thing seen on serial console? This seems to be the case. If so, u-boot is running correctly, and has loaded firmware-related dtb file “/boot/tegra124-jetson_tk1-pm375-000-c00-00.dtb”.

If “Starting kernel …” really is the last thing seen, possibly serial console simply stopped and failed. The parameter “console=ttyS0,115200n8” says this should not be the case, unless the kernel itself were compiled and built to not understand the serial console. So possibility one is that the kernel never loaded or was nonsense code which could not execute (in which case handing off to the kernel caused the Jetson to go brain dead…a technical term! :); possibility two is the kernel configuration was completely missing the serial port code (in which case it really loaded, but we can’t see it).

From the URL you gave concerning Android, along with initially successful u-boot messages, I’m going to bet the odds are in favor the kernel being configured in a way which is incompatible with serial port output. I believe the kernel loaded, but was configured such that we can’t tell one way or the other.

In this case, where the Android URL mentions “tegra12_mydroid_defconfig”, I believe the answer requires comparison of that defconfig to the L4T “tegra12_defconfig”. This is a slow and difficult thing to study…you may want to ask someone from that URL more about how the configuration differs, and if serial console was intended to function or not.