Error Tx1 ISO

What directory did you run “tar xvf NVIDIA_Tegra_Linux_Driver_Package.tar” from? If you cd to that location, what do you see from “ls”? From that location there is likely a subdirectory:
sources/kernel/kernel-4.9/

Basically that is where “$TOP” is set to, and this is the “top” of the source tree for the kernel. Most “make” commands are run from there, and the output goes to the “O=...somewhere...” setting. It is the “Makefile” at the “$TOP” which knows about (or finds) the “tegra_defconfig” or “tegra21_defconfig” target.

It was made and received in the Downloads folder

Inside the folder we have the following files:
image

Do I need to do the ‘make’ command in the Downloads folder?

following the documentation I downloaded the following files:
image
is one of these?

I see my mistake. The kernel source is not “NVIDIA_Tegra_Linux_Driver_Package.tar”. Usually that is unpacked when manually installing flash software, but what you need is the kernel source. Kernel source produces “`sources/kernel/kernl-4.9’”

The “kernel/” subdirectory within “Linux_for_Tegra/” is part of flash, but is not kernel source.

Since you use L4T R28.1, https://developer.nvidia.com/embedded/linux-tegra-r281

Look for “Sources”. Download that. You will unpack this, and this in turn will have a kernel source file. You can delete everything except that. Then unpack the kernel source file. There will be a subdirectory similar to:
sources/kernel/kernel-4.9/

This is the “TOP” of the kernel source and this is where build commands run from.

Hi @linuxdev, I hope that everything is fine. Thanks for helping.

I was able to run the make defconfig command:

the next step according to the documentation would be the make zImage command, but I’m having the following error:

Could you help me?

zImage is a compressed version of Image. When you “make zImage” it first performs “make Image”, then it compresses it to create zImage. zImage has not been used since 32-bit days, and now you only need Image. I think the error might be related to zImage, so build only Image to see if that works.

First, clean up all previous progress from the “$TOP”:
sudo make O=$TEGRA_KERNEL_OUT mrproper

Then configure again:
sudo make O=$TEGRA_KERNEL_OUT tegra21_defconfig

Now try Image:
sudo make O=$TEGRA_KERNEL_OUT Image

I’d erro in Image command:

Could you help me?

Can you attach a full log of that command in the forum? For example:
sudo make O=$TEGRA_KERNEL_OUT tegra21_defconfig 2>&1 | tee log_build.txt

I kind of wish you were using a more recent release since the R28.x was the first “fully 64-bit” release and much has changed since then. I suspect there would be fewer problems with an R32.x release.

Yes:

I know buddy, but for now I need to still using R28 :(

You won’t need the screenshot anymore. The command would have produced file “log_build.txt”, and that can be attached to the forum. However, the command to configure using tegra21_defconfig succeeded. Next you need a log of the actual compile. To log you would use your normal build command (target likely “Image”), and append " 2>&1 | log_build.txt". Example:
sudo make O=$TEGRA_KERNEL_OUT Image 2>&1 | tee log_build.txt

If you can log that build of Image, and attach it to the forum, then it might be possible to see where things went wrong.

The log_build.txt is not open… I can send you a screenshot

image

“make NO RULE TO MAKE TARGET ‘image’. STOP.”

You have to keep capital letters: “Image”, not “image”. It is case-sensitive.

I used capital letter in the command. Just when I said in the forum I forgot.

I don’t know why but the result is: “make NO RULE TO MAKE TARGET ‘Image’. STOP.”

What I need to do?

I found as well that my lightdm is disabled. Maybe it’s because of that I can’t use graphics, just terminal. How can I active it?

Now I got it.

The results of log_build.txt is:

‘#’
‘#’ configuration written to .config
‘#’

Can you show this without a screenshot (ignore if the compile issue is now gone)? It is hard to read the screenshot, and it lacks the full log, e.g., “dmesg 2>&1 | tee log_dmesg.txt”, and then attach “log_dmesg.txt” to the forum.

I see a stack frame from a kernel bug related to GPIO IRQ, which should not happen or be related to trying to build a kernel. It makes me think there is something else going on. One example is perhaps forgetting to set “TEGRA_KERNEL_OUT”, which would in turn cause compile output to go to the wrong place. Prior to compile, what do you see from “echo $TEGRA_KERNEL_OUT”? And does the echo location exist? From the compile location, what do you see from “ls”?

Note that if you’ve replaced “/boot/Image”, then it may have something incorrect there. However, your last reply indicates it might now be working, which would mean you could continue on with compile and ignore previous issues. If that is the case, then you could move on to (but still make sure “TEGRA_KERNEL_OUT” is correctly set before compiling):
sudo make O=$TEGRA_KERNEL_OUT Image 2>&1 | tee log_build.txt

log_build from command: sudo make O=$TEGRA_KERNEL_OUT tegra21_defconfig 2>&1 | tee log_build.txt

log_build.txt (40 Bytes)

sudo make O=$TEGRA_KERNEL_OUT Image 2>&1 | tee log_build2.txt

I can’t see anything in the log_build2.txt… I tried cat log_build2.txt, vi log_build2.txt, the file is empty.

Can you attach “log_build2.txt” to the forum rather than using pastebin? It would be easier. However, it looks like your system disk space is filled:
cannot create temo file for here-document: No space left on device

From the location where you compile, plus from the location of “TEGRA_KERNEL_OUT”, what do you see from:
df -H .

I don’t know how can I send the file in this forum… I just have access in terminal at TX1…

Command df -H:

nvidia@tegra-ubuntu:/usp/src/kernel/kernel-4.4$
"C
nvidia@tegra-ubuntu:/usp/src/kernel/kermel-4.4€
"C
nvidia@tegra-ubuntu:/usr/src/kernel/kernel-4.4#df
-H
Filesystem
Size
Used Avail Uses Mounted on
/dev/root
156
0 100%
deutmpfs
tmpfs
2.18
156
0
2.1G
08 /dev
156k
2.1G
18 /dev/shm
tmpfs
2.16
14M
2.10
18 /run
tmofs
5.31
4.1k
5.3M
18 /run/lock
trinfe
2.1G
O
2.1G
0% /sys/+s/group
dev/mcb1k1p1
1236
130M 1176
1% /data
maTs
4174
33k
4174
18 /run/user/1001

There is the problem…your procedure is likely 100% correct, but it fails because there is no disk space left. It can’t write. Some content will need to be deleted. For kernel compile there is a lot of space used, and for the moment I suggest to just delete everything in the “$TEGRA_KERNEL_OUT” location (just be sure you’re really deleting from a temp location and not accidentally deleting from the wrong place). Depending on what you have available it is possible perhaps improve space by setting “TEGRA_KERNEL_OUT” to somewhere like:

  • A USB thumb drive.
  • A USB external disk.
  • An SD card.
  • A SATA disk if using a board with a SATA port.

Most people use either ssh (via the scp command to copy files across systems using ssh) or a serial console to get access to files on the Jetson. Much easier than screen shots.

as I am a beginner in this world, I believe that this will only make my walk difficult, access via ssh

I have a pendrive in hand, if I connect it to the TX1 will I need to do everything again? Or just change the export $TEGRA_KERNEL_OUT?

Using LS command I can see those directorys:

android , arch , block , certs , crypto , documentation , drivers , firmware , fs , hardware , include , init , ipc , kernel , lib , mm , net , rt-patches , sample , scripts , security , sound , tools , usr , virt

What can I delete?

You can just change “$TEGRA_KERNEL_OUT” to point to where the thumb/pen drive is mounted. The real problem is that your filesystem is already filled. The current location of temporary output (the “$TEGRA_KERNEL_OUT”) probably needs to be deleted before you do anything else. You will need to run the tegra21_defconfig again since the written configuration goes to “$TEGRA_KERNEL_OUT”. The original $TOP location where the kernel source is at can be left alone.

Be very very careful to not use this anywhere except in a location entirely available to delete, but let’s say for example your original “$TEGRA_KERNEL_OUT” is at:
/home/someone/kernel_out

You could then (I only use sudo because you used it in your build commands):
sudo rm -Rf /home/someone/kernel_out
(even the subdirectory “kernel_out” would be deleted)

Incidentally, one does not normally use sudo during a compile. The reason this is possible is that the output location of “$TEGRA_KERNEL_OUT” should have been created by a regular user without sudo. Then build without sudo. Once anything there is owned by root (using sudo), then that content can only be removed by root (sudo). So if you create “$TEGRA_KERNEL_OUT” as a regular user from the start, and never compile with “sudo”, then all of your content in “$TEGRA_KERNEL_OUT” will be owned by your regular user and you’d never need sudo.