[CustomKernel] The Grinch 21.2.1 for Jetson TK1 / not developed

21.2.1 doesn’t come with CUDA 6.5, so if I need to, I would install that?

It’s interesting to notice that the “original” kernel supports bluetooth but not wifi with my Intel 7260 ^_^

Have you tried using the Jetpack and to choose only to install CUDA and OpenCV?


You can download the “deb” to install CUDA here: https://developer.nvidia.com/cuda-downloads

You can follow my little guide to install CUDA and OpenCV here: http://myzharbot.robot-home.it/blog/software/configuration-nvidia-jetson-tk1/

Anybody having problems with the OpenCV? I can’t compile my programs without having errors. I have followed all the instructions.

Guys, any hint? What OpenCV are you using? I can’t install the precompile version of OpenCV because I’m trying to run the HOG, which needs different libraries. I have natively installed the opencv-2.4.10. However, the programs run tremendously slow with the GPU.

I’m trying to integrate Pixhawk with Jetson running on Grinch using FTDI cable onto Pixhawk telemetry port.
I tried to install FTDI driver as given in the link below:


But, I was not able find any device connected in /dev folder.
Am i missing any setting or any variables to set in Grinch?
Could anyone please suggest me how to proceed on this?

What cable are you using? Does “lsusb” on Jetson list the FTDI device? Is there something printed in “dmesg” when you connect or disconnect the cable?

I’m using this FTDI cable 5V:

lsusb prints this:
Bus 002 Device 011: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC

When I connect the cable with FTDI device, I find the following printed on dmesg

[ 943.479353] usb 2-1.2: new full-speed USB device number 11 using tegra-ehci
[ 943.525554] usb 2-1.2: New USB device found, idVendor=0403, idProduct=6001
[ 943.525678] usb 2-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 943.529474] usb 2-1.2: Product: FT232R USB UART
[ 943.529573] usb 2-1.2: Manufacturer: FTDI
[ 943.529650] usb 2-1.2: SerialNumber: A703BZBW
[ 943.623646] ftdi_sio: version magic '3.10.40 SMP preempt mod_unload ARMv7 p2v8 ’ should be '3.10.40-ged4f697 SMP preempt mod_unload ARMv7 p2v8 ’

I’m not familiar with this cable, but FYI, this means USB is able to communicate…it doesn’t mean the device it is communicating with is known or set up with a driver. FTDI itself is a very common serial USB chip manufacturer so it would be surprising if the USB part did not work (my JTAG debugger uses this chip). If this cable has some special function via a device or whatever is connected at the non-USB connector end then that device also needs a driver.

What voltage level is the Pixhawk’s telemetry port using. Is it 3.3V or 5V? The FTDI cable you have is 5V.

Please start a new thread for this and we can continue debugging there, let’s not mess up this kernel thread.

I fixed the problem. Grinch was not correctly installed. So, when I reinstalled, I was able to communicate with FTDI device. Grinch already had the FTDI drivers and there was no need to install any drivers.

i try this step & complete update.

but… my TK1 has not ‘hidraw’ in ‘/dev’

root@tegra-ubuntu:/dev# ls hidraw* -al
ls: cannot access hidraw*: No such file or directory

for add ‘hidraw’, do i need to more something?!

“hidraw” is created by a driver in the kernel…which happens to also be the name of the kernel driver. The file’s existence (or lack thereof) depends on the driver being built (or not). I know of at least one web cam that uses this.

On your running Jetson, what is the output of this:

gunzip < /proc/config.gz | grep CONFIG_HIDRAW

If that command shows existence then /dev/hidraw can exist.

I am can’t install, because the console show error message:

ubuntu@tegra-ubuntu:~/Downloads/Linux_for_Tegra$ sudo ./flash.sh jetson-tk1 mmcblk0p1
copying bctfile(/home/ubuntu/Downloads/Linux_for_Tegra/bootloader/ardbeg/BCT/PM375_Hynix_2GB_H5TC4G63AFR_RDA_924MHz.cfg)… done.
copying bootloader(/home/ubuntu/Downloads/Linux_for_Tegra/bootloader/ardbeg/u-boot.bin)… done.
populating kernel to rootfs… done.
populating jetson-tk1_extlinux.conf.emmc to rootfs… done.
Making system.img…
populating rootfs from /home/ubuntu/Downloads/Linux_for_Tegra/rootfs … done.
Sync’ing system.img … done.
Converting RAW image to Sparse image…
./flash.sh: line 514: ./mksparse: cannot execute binary file: Exec format error

I forget what I was doing at the time, but had a similar issue when my user was not actually root and part of the commands worked but then I could not cd into the directory needed. You used sudo but it seems likely there was either a permission failure or something blocking cd to the correct subdirectory. The mksparse program is in the bootloader subdirectory and a series of cd and pop shell commands should have you placed in the bootloader subdirectory at the moment of execution…failing proper cd would cause this, as would an unexecutable mksparse. So, add a debug edit to flash.sh like this and run again…see what it says about the working directory this way:

# edit flash.sh of R21.2...go to the echo statement at line 512:
echo -e "\tConverting RAW image to Sparse image... ";

Modify this statement to become this, the run again:

echo -e "\tConverting RAW image to Sparse image... directory ${PWD}";

Does running it again show it attempted to use the bootloader subdirectory? If so, what are the permissions on mksparse (“ls -l bootloader/mksparse”)?

that’s right,thank you very much!

For Wifi, is Wifi director or p2p mode working with Grinch 21.2.1?

Hi - I’m trying to compile the 3.10 Grinch 21.2.1 kernel using the source repository that Tim Bradt created from the diffs at https://github.com/btaidm/JetsonTK1-Kernel-Grinch but I haven’t been able to recreate the kernel image that Santyago posted.

In short, there is not a default tegra-jetson config nor are there device tree files to generate the tegra124-jetson_tk1-pm375-000-c00-00.dtb as in the posted images.

I started with the config I got from /proc/config.gz from the posted 21.2.1 kernel. The make would fail with 3 compile erors in rtc-hid-sensor-time.c. The first error, reinit_completion(),was easily addressed by replacing with a call to INIT_COMPLETEION(), but the next two, undefined references to sensor_hub_device_open() and sensor_hub_device_close(), depended on sensor hub methods that I was not able to find.

CC [M]  drivers/rtc/rtc-hid-sensor-time.o
/home/brainey/Sources/grinch/baseline/drivers/rtc/rtc-hid-sensor-time.c: In function ‘hid_rtc_read_time’:
/home/brainey/Sources/grinch/baseline/drivers/rtc/rtc-hid-sensor-time.c:212:2: error: implicit declaration of function ‘reinit_completion’ [-Werror=implicit-function-declaration]
/home/brainey/Sources/grinch/baseline/drivers/rtc/rtc-hid-sensor-time.c: In function ‘hid_time_probe’:
/home/brainey/Sources/grinch/baseline/drivers/rtc/rtc-hid-sensor-time.c:278:2: error: implicit declaration of function ‘sensor_hub_device_open’ [-Werror=implicit-function-declaration]
  ret = sensor_hub_device_open(hsdev);
/home/brainey/Sources/grinch/baseline/drivers/rtc/rtc-hid-sensor-time.c:305:2: error: implicit declaration of function ‘sensor_hub_device_close’ [-Werror=implicit-function-declaration]
cc1: some warnings being treated as errors
make[3]: *** [drivers/rtc/rtc-hid-sensor-time.o] Error 1
make[2]: *** [drivers/rtc] Error 2

So, I proceeded by not including in the config (commenting out CONFIG_RTC_DRV_HID_SENSOR_TIME via Device Drivers -> Real Time Clock -> HID Sensor Time).

This got me a successful build and was also able to make the zImage, modules and dtbs. But then I ran into the issue of which dtb to use since the tegra124-jetson_tk1-pm375-000-c00-00.dtb was not generated, due to the sources for this dtb not being present in the repository I was using, in the diff files of Santyago’s (http://www.jarzebski.pl/files/jetsontk1/patch/ - I have not found a reference to similar collection for the 21.2 kernel), nor in the NVIDIA release source tree.

I did try to use the tegra124-jetson_tk1-pm375-000-c00-00.dtb with the kernel I built but that got as far as the “Starting kernel …” message. I haven’t had a chance to go back and try additional debug level in the kernel args to see if that got me any more information.

So, any suggestions on how to proceed with my goal of building the grinch 21.2.1 kernel from source ?


@Santyago Where can I download the patches you applied on top of the base kernel source? Thanks!

saiparan - patches for 21.2.1 is little buggy.

Right now i’m working on new kernels 21.2.2 & 19,3,9. I think that before Monday everything should be ready. However, if you still want to try the patches that have used the 21.2.1 let me know on PM

it may be misplaced here but I got confused over the past weeks.
Which Version of L4T (and then i.e. your kernels) is recommended? Still 19.3 as I seem to read that 21.x has new bugs like slow ethernet etc? Should we rather wait for yet another release?