Build kernel for DRIVE Xavier E3550

Hi Sir,
I saw two kernel source in my Xavier PDK,

drive-oss-src/kernel
drive-t186ref-foundation_src/kernel/drive-oss-t186-flashing_kernel-src/drive-oss-src/kernel

And there are also two approaches to build kernel in PDK documents,

  1. In NVIDIA_DRIVE_5.0_OSS_DPX_PDK

    cd /drive-oss-src
    mkdir out-t186ref-linux
    make -C kernel O=${PWD}/out-t186ref-linux clean

  2. In DRIVE_Software_Docs, building the Flashing Kernel

    mkdir -p out-t194-linux/out
    make -C kernel O=${PWD}/out-t194-linux/out clean

Which one is right for E3550/DRIVE dual-Xavier?

Thanks!

Gary

Dear garywang,

t186 is for DrivePX2(parker), t194 is for E3550(Xavier). Thanks.

Thanks.

I built kernel via drive-oss-t186-flashing_kernel-src.tar.bz2 in folder /drive-t186ref-foundation_src/kernel according to section “DRIVE_Software_Docs, building the Flashing Kernel”, then copy neccesatry files to /drive-t186ref-foundation/tools/host/flashtools/flash/t18x/rcmkernel,


-rw-r–r-- 1 itri itri 149302 Dec 20 13:48 tegra194-e3550-0001-b01-B-flashing-base.dtb
-rw-r–r-- 1 itri itri 149950 Dec 20 13:48 tegra194-e3550-0001-b01-A-flashing-base.dtb
-rwxr-xr-x 1 itri itri 27041800 Dec 20 13:48 Image
-rwxr-xr-x 1 itri itri 26976264 Sep 5 02:00 Image.bak
-rw-r–r-- 1 itri itri 149950 Sep 5 02:00 tegra194-e3550-0001-b01-A-flashing-base.dtb.bak
-rw-r–r-- 1 itri itri 149302 Sep 5 02:00 tegra194-e3550-0001-b01-B-flashing-base.dtb.bak

BUT I found the built kernel is still not to be used after flashing. The timestsamp of uname is still 2018/9…Any idea on it? Thanks!

Gary

I found if using built kernel in my Xavier, its network like 10.42.0.28/29 or HDCP doesn’t work.

Could you please help me to check again for above steps (i.e. DRIVE_Software_Docs, building the Flashing Kernel for tegra194) in you side? Thanks!

Gary

Dear garywang,

Sorry for confusing.
Our document has not been updated.
Could you please build as specified in the document? Thanks.

@SteveNV, please help to guide me on how to build kernel for E3350.

I appreciate your warn help.

Gary

@SteveNV, I had done all steps as following list.

  1. Extract the flashing kernel sources using the following commands on the host:
    cd /drive-t186ref-foundation_src/kernel
    tar xvf drive-oss-t186-flashing_kernel-src.tar.bz2
    cd drive-oss-t186-flashing_kernel-src/drive-oss-src
  2. Set up the environment macros:
    export ARCH=arm64
    export CROSS_COMPILE=/toolchains/tegra-4.9-nv/usr/bin/aarch64-gnu-linux/aarch64-gnu-linux-
    export CROSS32CC=/toolchains/gcc-arm-none-eabi-4_8-2014q3/bin/arm-none-eabi-gcc
  3. Create an output directory, and then configure the kernel for the board:
    mkdir -p out-t194-linux/out
    make -C kernel O=${PWD}/out-t194-linux/out clean
  4. Add the following command:
    make -C kernel O=${PWD}/out-t194-linux/out tegra_gnu_linux_defconfig
  5. Build the kernel:
    make -C kernel O=${PWD}/out-t194-linux/out -j4
  6. Copy the uncompressed kernel image with the following command:
    cp ${PWD}/out-t194-linux/out/arch/arm64/boot/Image /drive-t186ref-foundation/tools/host/flashtools/flash/t18x/rcmkernel
  7. Copy the flashing kernel DTB file with the following command:
    cp {PWD}/out-t194-linux/out/arch/arm64/boot/dts/tegra194-e3550-0001-b01-A-flashing-base.dtb <top>/drive-t186ref-foundation/tools/host/flashtools/flash/t18x/rcmkernel cp {PWD}/out-194-linux/out/arch/arm64/boot/dts/tegra194-e3550-0001-b01-B-flashing-base.dtb /drive-t186ref-foundation/tools/host/flashtools/flash/t18x/rcmkernel

Any things I need to put attention for them?

Thanks!

Gary

Or @SteveNV could help me to check again for above steps is no problem or not in your side for E3550? Thanks a lot!

Dear garywang,

I could successfully build the kernel without any issue.

drwxr-xr-x 5 sbyun sbyun     4096 10월 10 15:41 ../
-rwxr-xr-x 1 sbyun sbyun 27041800 12월 21 15:56 Image*
-rw-r--r-- 1 sbyun sbyun   142673  9월  5 03:00 tegra186-brenz-boden-flashing-base.dtb
-rw-r--r-- 1 sbyun sbyun   117965  9월  5 03:00 tegra186-brenz-lindau-flashing-base.dtb
-rw-r--r-- 1 sbyun sbyun   143674  9월  5 03:00 tegra186-fiji-flashing-base.dtb
-rw-r--r-- 1 sbyun sbyun   177993  9월  5 03:00 tegra186-micc-flashing-base.dtb
-rw-r--r-- 1 sbyun sbyun   176832  9월  5 03:00 tegra186-mich-flashing-base.dtb
-rw-r--r-- 1 sbyun sbyun   117754  9월  5 03:00 tegra186-vcm31-aran-flashing-base.dtb
-rw-r--r-- 1 sbyun sbyun   131774  9월  5 03:00 tegra186-vcm31-bali-flashing-base.dtb
-rw-r--r-- 1 sbyun sbyun   136842  9월  5 03:00 tegra186-vcm31-cuba-flashing-base.dtb
-rw-r--r-- 1 sbyun sbyun   137640  9월  5 03:00 tegra186-vcm31-e2681-flashing-base.dtb
-rw-r--r-- 1 sbyun sbyun   189298  9월  5 03:00 tegra186-vcm31-e3340-flashing-base.dtb
-rw-r--r-- 1 sbyun sbyun   142459  9월  5 03:00 tegra186-vcm31-e3550-b00-flashing-base.dtb
-rw-r--r-- 1 sbyun sbyun   143825  9월  5 03:00 tegra186-vcm31-e3550-flashing-base.dtb
-rw-r--r-- 1 sbyun sbyun   143746  9월  5 03:00 tegra186-vcm31-p2379-flashing-base.dtb
-rw-r--r-- 1 sbyun sbyun   185146  9월  5 03:00 tegra186-vcm31-p2382-flashing-base.dtb
-rw-r--r-- 1 sbyun sbyun   191690  9월  5 03:00 tegra186-vcm31-p3310-flashing-base.dtb
-rw-r--r-- 1 sbyun sbyun   147875  9월  5 03:00 tegra194-boden-b01-flashing-base.dtb
[b]-rw-r--r-- 1 sbyun sbyun   149950 12월 21 15:58 tegra194-e3550-0001-b01-A-flashing-base.dtb
-rw-r--r-- 1 sbyun sbyun   149302 12월 21 15:58 tegra194-e3550-0001-b01-B-flashing-base.dtb[/b]
-rw-r--r-- 1 sbyun sbyun   122072  9월  5 03:00 tegra194-sim-vdk.dtb

Please see below steps. Thanks.

cd nvidia/nvidia_sdk/DRIVE/Linux/5.0.10.3/SW/DrivePDK/drive-t186ref-foundation_src/

tar xvf  drive-oss-t186-flashing_kernel-src.tar.bz2
cd drive-oss-t186-flashing_kernel-src/drive-oss-src/
export ARCH=arm64
export CROSS_COMPILE=/home/sbyun/nvidia/nvidia_sdk/DRIVE/Linux/5.0.10.3/SW/DrivePDK/toolchains/tegra-4.9-nv/usr/bin/aarch64-gnu-linux/aarch64-gnu-linux-
export CROSS32CC=/home/sbyun/nvidia/nvidia_sdk/DRIVE/Linux/5.0.10.3/SW/DrivePDK/toolchains/gcc-arm-none-eabi-4_8-2014q3/bin/arm-none-eabi-gcc
mkdir -p out-t194-linux/out
make -C kernel O=/home/sbyun/nvidia/nvidia_sdk/DRIVE/Linux/5.0.10.3/SW/DrivePDK/drive-t186ref-foundation_src/kernel/drive-oss-t186-flashing_kernel-src/drive-oss-src/out-t194-linux/out clean
make -C kernel O=/home/sbyun/nvidia/nvidia_sdk/DRIVE/Linux/5.0.10.3/SW/DrivePDK/drive-t186ref-foundation_src/kernel/drive-oss-t186-flashing_kernel-src/drive-oss-src/out-t194-linux/out tegra_gnu_linux_defconfig
make -C kernel O=/home/sbyun/nvidia/nvidia_sdk/DRIVE/Linux/5.0.10.3/SW/DrivePDK/drive-t186ref-foundation_src/kernel/drive-oss-t186-flashing_kernel-src/drive-oss-src/out-t194-linux/out -j4
cp /home/sbyun/nvidia/nvidia_sdk/DRIVE/Linux/5.0.10.3/SW/DrivePDK/drive-t186ref-foundation_src/kernel/drive-oss-t186-flashing_kernel-src/drive-oss-src/out-t194-linux/out/arch/arm64/boot/Image /home/sbyun/nvidia/nvidia_sdk/DRIVE/Linux/5.0.10.3/SW/DrivePDK/drive-t186ref-foundation/tools/host/flashtools/flash/t18x/rcmkernel
cp /home/sbyun/nvidia/nvidia_sdk/DRIVE/Linux/5.0.10.3/SW/DrivePDK/drive-t186ref-foundation_src/kernel/drive-oss-t186-flashing_kernel-src/drive-oss-src/out-t194-linux/out/arch/arm64/boot/dts/tegra194-e3550-0001-b01-A-flashing-base.dtb /home/sbyun/nvidia/nvidia_sdk/DRIVE/Linux/5.0.10.3/SW/DrivePDK/drive-t186ref-foundation/tools/host/flashtools/flash/t18x/rcmkernel
cp /home/sbyun/nvidia/nvidia_sdk/DRIVE/Linux/5.0.10.3/SW/DrivePDK/drive-t186ref-foundation_src/kernel/drive-oss-t186-flashing_kernel-src/drive-oss-src/out-t194-linux/out/arch/arm64/boot/dts/tegra194-e3550-0001-b01-B-flashing-base.dtb /home/sbyun/nvidia/nvidia_sdk/DRIVE/Linux/5.0.10.3/SW/DrivePDK/drive-t186ref-foundation/tools/host/flashtools/flash/t18x/rcmkernel

@@SteveNV, I am so sorry for making you confused.

I meat boot built kernel without network error (my built kernel also could boot correctly but failed in network like 10.42.0.28/29…etc.)

Gary

Built kernel via DRIVEWROK v1.5 and worked well with it on my Xavier E3550.

Dear garywang,

Thank you for your update.