Jetson nano won't boot after editing fstab

I have a jetson nano developer kit I got it from an nvidia partner (VVDN), when we got it, it already had the OS installed without the SD card, when we got the warnings about low storage I looked for the nvidia forums and found out that I can mount the SD card as usr/local. I copied everything from the usr/local into the SD card and then properly edited the fstab entry with uuid and everything like this UUID=sdcardsuuid /usr/local ext4 rw, suid,dev,exec,auto,nouser,async,nofail 0 1

i matched the uuid from the blkid command.
But now the device won’t boot, it just goes into recovery. How do I fix it? Is there a way to edit the fstab

Hi,

can you tell us what post you are referring to?
What L4T version is in use? Did you get anything from UART when it failed to boot up?

This was the post
The display just won’t come on, it is not even going into recovery now just turn on and display crashes

Hi,

thanks for the response. We’ll verify if we can do it following the post.

On the other hand,

The display just won’t come on

tells nothing, and we need you to provide the UART log to know what is going on when the device boots up.

How do I get the UART log? Also if there was a mistake while editing the fstab, how to recover from that

Hi,

you should get a USB-TTL cable, and connect the TXD wire to the RXD pin on your module; vice versa, and also the GND pin.

Connect the other end to your host PC, and you should see some ttyUSBx devices under /dev/, then establish the connection with tools like picocom:

sudo picocom -b 115200 /dev/ttyUSB0

(I remember it’s ttyUSB0 for Nano, try other ttyUSBx if its not.)
then turn on your device, and you should see a bunch of log popping out.
Put the log here.

If there was a mistake in the fstab, how to recover from it?

Hi,

if you can at least get into UEFI Shell, then you can access file systems on the device, and make corresponding move to fstab to recover it.
Switching to a file system from the Shell (hpe.com)

Otherwise, you may need to re-flash it.

I can’t get into the UEFI shell the device just turns on and there is nothing on the screen. What are the steps to reflash? I am new to jetson nano like hardware in general, thanks for understanding.

I have tried writing the image to SD card using etcher, but it won’t boot from it. I have also tried to use the Jetson Linux Driver Welcome — Jetson Linux<br/>Developer Guide 34.1 documentation

But it doesn’t support the Nano in the latest version. Then I tried the SDK manager but it required Ubuntu 18.04, I’ll have to format my host computer to install the older Ubuntu. I am stuck.

Hi,

so looks like you have to first get a host PC running Ubuntu 18.04.
You may be able to get it work on VM, but it’s not guaranteed, so it’s still better to have a real PC.

I’ll try that and post an update thanks for the help.

Btw, Nanos don’t use or have UEFI. Their boot is custom, mostly via CBoot. No Jetson has a BIOS, so you can’t deal with it like a PC.

Serial console (mentioned by @DaveYYY) gives you a lot of help though. Some in boot stages, but it is quite possible the system booted up and works, but you don’t have graphics. In that case you can log in to serial console and fix it.

I want to comment that you have an eMMC model from a third party vendor. The fstab command to mount on “/usr/local” works fine with this, but there are details which might go wrong (it’s best to test while still booted before rebooting). On rare occasion something in the linker path pointing at “/usr/local/lib” might interfere with boot, and the fstab of interest is on the eMMC, so you are kind of stuck using serial console…the SD card won’t have the fstab.

The serial console USB UARTs on Jetsons are the 3.3V variety (that’s what the “TTL” level means). All it needs is the 3-pin variety (GND, TX, and RX). If more pins are available, you just leave them unconnected and ignore them.

Your third party Jetson carrier board also implies some of the instructions would differ from a Nano dev kit. Some of the flash or other software will be from the manufacturer’s web site. Don’t flash with the dev kit software unless the manufacturer says it is ok. Hopefully, it can be fixed without flash. A clone could be made of the eMMC though before a flash if it comes to that.

You are going to have a lot of irritations with a VM. If you have a dual boot Ubuntu 18.04 host PC it would make life easier (but it needs lots of disk space).

Yeah I think that is the issue. It is from an external vendor and the board is modified. SDK manager won’t work with it. It is VVDN jn nn board. I can’t find a way to flash it.

The manufacturer provides flash software. It might be easier to check serial console first since it is possible the fix is trivial with that.

I can’t download their flash software. I have emailed the manufacturer but haven’t recieved any respose. And at this point I am certain that the fstab is the issue.

You have the original SD card, and you know the UUID used in the fstab. Possibly there is discrepancy, for example, a partition UUID versus a disk UUID; in that case the SD card can have the UUID altered to match what you think it is. Not sure though. Serial console logs are important for the next step, and knowing if you can or cannot log in via serial console is an important bit of knowledge right now.

After a few attemps of restarting the nano, NVIDIA’s logo flashed and then the message was displayed that Ubuntu is in emergency mode, I pressed ctrl + D and managed to get a shell. I removed the UUID entry using vi and saved and rebooted. The device was back on the OS. I tried to mount the drive first this time, before editing the fstab as you suggested. I got this popup Ubuntu has experienced an internal error. However the SD card did mount as the /usr/local I even tried writing and everything worked. What should I do now?

Without that SD card mounted (it can be plugged in, that won’t matter), what do you see from:
ld --verbose | grep SEARCH_DIR | tr -s ' ;' \\012

Also, with the SD card present (mounting won’t matter), what do you see from:
lsblk -f

This is the output