jetsonhacksnano / rootonusb Goto Github PK
View Code? Open in Web Editor NEWSet rootfs to be on a USB drive
License: MIT License
Set rootfs to be on a USB drive
License: MIT License
After modifying extlinux.conf to change boot drive, device(Jetson Nano Developement Board with JetPack 4.2.1 installed) failed to boot fully. USB drivers loaded fine I think, but failed to switch over boot to USB drive. On the previous Jetpack deployment I had 0 issues with switching to usb rootfs. Also by the way cool guitar playing. ) EDIT 8/31/19 Also the build was done on fresh install no updates and a blank usb nvme drive (same equipment used previously)
Thanks for the scripts, I ran into this issue where I had to fix it with this patch. This is with the latest version of Jetson Nano. You could probably just check to see if the target is a symbolic link or actual file and act accordingly.
https://bugs.launchpad.net/ubuntu/+source/ubuntu-release-upgrader/+bug/1800719
Is there a migration path from JP4.4 to new JP4.5 with new bootloader support ?
Do I have to install with JP 4.5 from scratch and restore my development files ?
Hello,
Can i apply this process in jetson NX module?
Not dev kit, i have jetson nx module + EN715 carrier board by AverMedia corp.
I want find solution NX run on ssd by connecting sata to usb cable.
i tried https://github.com/jetsonhacks/rootOnNVMe
i edit /dev/nvme0n1p1 to /dev/sda1 in any script cause ssd device have that name. But it isn't works.
i'm not good at english so i'm sorry.
Please reply.
Thanks.
Hi,
Can i use this approach to run from nvme card?
Thanks
Luigi
Thanks for the instructions on how to move the root partition of the Jetson Nano to a USB drive. It works perfectly for me (July 2020). One note: In step two I would recommend to create a Linux swap partition in addition to the system partition. The performance of a swap partition on a USB SSD drive is much better (and more reliable in the long run) than the standard swap areas on the SD card. When memory is running low (happens fast with only 4 GB RAM), this makes a big difference.
After reboot the SD card swap areas can be disabled with the following shell command:
sudo swapoff -a
And then the new swap partition can be activated:
sudo swapon -U {UUUID of the newly created swap partition}
Of course the new swap configuration can also be set up permanently.
Dear,
I use the latest version of rootOnUSB and follow the README and Videos but after I reboot the system to start from USB drive, the starts fail because no /dev/sda was found.
I use an SSD installed in a Geekworm Jetson Nano T300 expansion adapter with Jetson L4T R32.5.1 .
Any suggestions or hints?
Thanks in advance, Andreas
Seems, that sources and OS version are not supported in current scripts.
Describe the issue
using B01 nano board with jetpack 4.4, the usb power is not switched on till after the transfer of root is attempted. verified with serial console, and USB led power light.
tried powering the USB device (nvme ssd, external 2.5" harddrive, and usb stick) from external source, still, the USB port appears not enabled
NVIDIA Jetson Hardware
L4T / JetPack Version
4.4.1
** Software version**
used the rootOnUSB scripts
To Reproduce
run rootOnUSB scripts with USB storage device
Expected behavior
USB the enable before /boot/extlinix/ectlinux.conf is executed
Additional context
tested through serial console, when choosing the USB device from boot options, the USB device receives no power
After installing the new Jetpack 4.2, it is no long possible to root the jetson nano on a faster USB SSD drive as described on this video on jetson hack.com
https://www.jetsonhacks.com/2019/04/25/jetson-nano-run-on-usb-drive/
This is the error I got when following the instructions to build the kernal. I Want to confirm that I do have a jetson nano and I had it rooted to run on USB SSD until I decided to upgrade to the new Jetpack 4.2 now suddenly I am getting this "jetson Board Mismatch" issue which is not making any sense.
jetson1@jetson1-desktop:~/rootOnUSB$ ./buildKernel.sh
Jetson Model: NVIDIA Jetson Nano Developer Kit
Jetson L4T:
==== Jetson Board Mismatch! =============
Currently this script works for the jetson-nano.
This processor appears to be a NVIDIA Jetson Nano Developer Kit, which does not have a corresponding script
Exiting
jetson1@jetson1-desktop:~/rootOnUSB$
Does anyone have the work around for this? HOW can I root my jetson nano to run on USB SSD with Jetpack 4.2?
It should be possible to connect nvme drive to "e key m.2 x1 pcie" port designed as wifi card slot via this adapter:
However this also need support via software
More info here: https://devtalk.nvidia.com/default/topic/1049706/jetson-nano/can-this-board-use-m-2-ssd-nvme/
I am using a 16gb SD Card that I had when I purchased the Nano. As soon as I saw your video, I decided to use a 120gb SSD as the root storage for the Nano. However, the kernel build failed saying no space left on device (this happened on the last step, while copying the Image file). Approximately how much space does the kernel need in case of Jetson Nano?
This is the error I got when following the instructions to build the kernal. I Want to confirm that I do have a jetson nano and I had it rooted to run on USB SSD until I decided to upgrade to the new Jetpack 4.2 now suddenly I am getting this "jetson Board Mismatch" issue which is not making any sense.
jetson1@jetson1-desktop:~/rootOnUSB$ ./buildKernel.sh
Jetson Model: NVIDIA Jetson Nano Developer Kit
Jetson L4T:
==== Jetson Board Mismatch! =============
Currently this script works for the jetson-nano.
This processor appears to be a NVIDIA Jetson Nano Developer Kit, which does not have a corresponding script
Exiting
jetson1@jetson1-desktop:~/rootOnUSB$
4.2.0 old version same error
Hi - firstly: thank you for providing this!
I tried to install this and ran into a number of issues:
1 - when running ./buildKernel.sh the script fails. Apparently there is an issue with bzip2 on the nano (at least on mine): uncompressing the kernel sources yields an EOF (bzip2: Compressed file end unexpectedly) error. I ran into this error both using the command line as well as GUI (using the file browser) on 2 distinct installations.
As a workaround I unzipped the kernel sources on my Mac and continued...
2 - make menuconfig fails. Sorry, I am writing this from memory, please bear with me for not being as accurate as I should be here: as far as I recall it is an issue with a wifi driver which has been removed, but is still referenced somewhere.
I found a couple of comments on Nvidias developer forums confirming the issue, but without providing a solution.
I also downloaded an allegedly updated kernel but still no luck.
`jetbot@jetbot:$ cd rootOnUSB//rootOnUSB$ ./buildKernel.sh
jetbot@jetbot:
Jetson Model: jetson-nano
Jetson L4T: 32.1.0
Installing buildModulesAndKernel
Cloning into '/home/jetbot/buildKernelAndModules'...
remote: Enumerating objects: 69, done.
remote: Counting objects: 100% (69/69), done.
remote: Compressing objects: 100% (42/42), done.
remote: Total 69 (delta 39), reused 51 (delta 27), pack-reused 0
Unpacking objects: 100% (69/69), done.
Proposed source path: /usr/src/kernel/kernel-4.9
Jetson Model: jetson-nano
Getting L4T Version
Jetson BSP Version: L4T R32.1.0
Jetson_L4T=32.1.0
==== Jetson Board Mismatch! =============
Currently this script works for the NVIDIA Jetson Nano Developer Kit.
This processor appears to be a jetson-nano, which does not have a corresponding script
Exiting
jetbot@jetbot:~/rootOnUSB$ `
Would you please take a look on this error? I am already using the vL4T32.1 release. I am using the image downloaded from JetBot WIKI website. Thanks a lot!
I tried to plug in to existing Jetson nano run from an SD card another SD card using a USB memory card reader and run the script and it did fill it with all the directories but when plugging in this SD card to a new Jetson nano it wont come up.
Hello,
./addUSBToInitramfs.sh
Adding USB to initramfs
Warning: couldn't identify filesystem type for fsck hook, ignoring.
I: The initramfs will attempt to resume from /dev/zram3
I: (UUID=d123a4c6-67e7-4e41-91f8-19eb8aed2b66)
I: Set the RESUME variable to override this.
/sbin/ldconfig.real: Warning: ignoring configuration file that cannot be opened: /etc/ld.so.conf.d/aarch64-linux-gnu_EGL.conf: No such file or directory
/sbin/ldconfig.real: Warning: ignoring configuration file that cannot be opened: /etc/ld.so.conf.d/aarch64-linux-gnu_GL.conf: No such file or directory
what am I supposed to do?
Thank you.
Hi, sorry to have a side question!
I tried to backup and restore the rootOnUSB drive but I failed. The system won't start. Do you have any recommendation how to backup the USB drive? Thanks a lot!
Backup
sudo tar -cvpzf jetson_nano_usb.tar.gz --one-file-system /media/nano/rootOnUSB/
Restore
sudo tar -xvpzf jetson_nano_usb_ros_realsense.tar.gz -C /media/nano/rootOnUSB --numeric-owner
Describe the issue
Describe the issue that you are having.
I have tried following the guide to get my nano booting off USB but it didn't work. There are a few potential reasons for this.
Before I get into the issues, there is one important detail missing from this guide/hack, which should be mentioned at the start. After completing this hack, should the user be able to boot L4T directly off the USB drive or will they still need the microSD card inserted? I believe it is the latter but I'm hoping I'm wrong!
The main problem with the guide is that Step 3 is very vague. It doesn't explain the command very well and it should really give an example. I think it intends the user to do something like this, presuming that sda1 has been formatted as ext4 already:
$ sudo mount /dev/sda1 /mnt
$ ./copyRootToUSB.sh -d /mnt
I have my doubts about copyRootToUSB.sh
because it doesn't use sudo for the rsync command and I think it should - the regular user not having permission to access all of the files on the disk being copied.
NVIDIA Jetson Hardware
L4T / JetPack Version
JetPack 4.4
** Software version**
Please list the relevant software versions, for example OpenCV
To Reproduce
For example, what command line did you run?
In Step 3, I ran:
$ sudo mount /dev/sda1 /mnt
$ ./copyRootToUSB.sh -d /mnt
Expected behavior
The README/guide should include example commands in step 3 for mounting the disk and using
copyRootToUSB.sh. Also, this script should the changed to run rsync with sudo so that every file gets copied.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.