Build your own robot car with the Raspberry Pi!

Build your own robot car with the Raspberry Pi!

I will move the complete installation of my Jetson Nano from the micro SD card to an SSD hard drive. I hope that this will result in much more performance and fewer problems caused by defective mirco SD cards. Because currently I use the Nano on my donkey car. There I draw many 10.000 pictures and Json files on the mirco SD-card, which are heavily used for read and write access. Also, the SSD hard disk is about 4 times faster than the micro SD card when it comes to copying the recorded training files, etc.

Thank you:

At this point I would like to thank JetsonHacks for the perfect tutorial. This can be found in the original on the following page:

URL: jetson nano run on usb drive

List of components

I chose the following USB 3.0 SSD hard drive, because it can be easily connected to the Jetson Nano via USB cable and its tree shape is very compact so it fits well on my donkey car.

Loading ...

Together with the SSD hard disk and the performance hungry AI examples, a strong power supply had to be purchased. My choice was a 5V power supply with 5A. With this one I had no more sporadic crashes.

The following power supply unit should work. Unfortunately I did not find the power supply I use on Amazon.

Loading ...

For mobile use, I recommend the following PowerBank which has proven to be very useful for me. Interesting is the USB-C connection which supplies 5V and 5A and is therefore ideal for the power supply of the Jetson Nano.

Loading ...

Installation

The first thing Jetson Hacks downloads is the repository rootOnUSB. This repository contains everything needed to create a new boot image with USB 3.0 support.

Command: git clone https://github.com/JetsonHacksNano/rootOnUSB

Command: cd rootOnUSB

Before building the new kernel, make a backup of the original boot image. You can find this in the /boot/ folder and the name of the boot image is “Image”. Copy the file into a BackUp folder e.g. in the directory /home/<User Name>/BackUp.

Jetson Nano boot USB Boot-Image backup

Jetson Nano boot USB Boot-Image backup

The following command builds the new kernel with USB 3.0 support. The construction of the new boat image takes about 45 minutes.

Befehl: ./buildKernel.sh

Prepare SSD hard disk

While the kernel is built, the SSD hard disk can be prepared in parallel. Now connect this to the Jetson Nano and go to the program Disks. In the program Disks the SSD hard disk is then selected.

The following picture shows the program Disks and the marked SSD hard disk. In the top right corner of the menu, select the “Format Disc” item.

Jetson Nano boot from SSD 01

Jetson Nano boot from SSD 01

The next window then shows the menu for formatting the hard disk. There select “Compatible with modern systems and hards disks > 2TB” as shown and tap on Format.

Jetson Nano boot from SSD 02

Jetson Nano boot from SSD 02

A message appears asking if we are really sure we want to format the hard disk. Click on Format again here.

Jetson Nano boot from SSD 03

Jetson Nano boot from SSD 03

After the hard disk is formatted, a partition must be created. To do this, select the SSD hard disk under Disks again and press  the “+” on the left side of the window to create a partition.

Jetson Nano boot from SSD 07

Jetson Nano boot from SSD 07

The following dialog will then appear. This is where the size of the hard disk is defined.

Then click on Next in the upper left corner.

Jetson Nano boot from SSD 04

Jetson Nano boot from SSD 04

In the dialog that now appears, a label can be set for the partition. I have named the hard disk “NanoUSBSSD”. Furthermore the file system “Ext4” must be selected. This is the first item in the “Type” section as shown in the following picture. Then tap on Create in the top right-hand corner.

Jetson Nano boot from SSD 05

Jetson Nano boot from SSD 05

After a few seconds the partition with the Ext4 file system is created and the status of the SSD should show “OK”.

Jetson Nano boot from SSD 06

Jetson Nano boot from SSD 06

Now the hard disk is prepared and the kernel is still being built.

Booting the new image

After the kernel or boot image has been successfully built, the script “buildKernel.sh” copies this image to the right place in the /boot/ directory.

The following picture shows the output after the script has run through.

Jetson Nano boot Image ready

Jetson Nano boot Image ready

Now is the time for the nano to be restarted.

Command: sudo reboot

Copy files to the SSD hard disk

After the Nano has booted with the newly built image, all files are copied from the micro SD card to the SSD hard disk. Again there is a script from Jetson Hacks that does the work for us.

Please change back to the rootOnUSB folder.

Command: cd rootOnUSB

Now the copy process can be started with the following command.

Command: ./copyRootToUSB.sh -v <Volume Label>

In my case the call with the forgiven label of the SSD hard disk looks like this.

Command: ./copyRootToUSB.sh -v NanoUSBSSD

The copying process takes a few minutes.

Change boot order

To ensure that the operating system is really loaded from the SSD hard disk, an adjustment must be made. To do this, please open the file “/boot/extlinux/extlinux.conf” in a text editor and change it as follows

Command: sudo nano /boot/extlinux/extlinux.conf

Simply copy the existing entry on the micro SD card and adjust it as shown. It is important to note that the new boot drive is no longer the micro SD card but the /dev/sda1 drive. Also the original entry with the micro SD card must be changed from “pimary” to e.g. “SD_Karte”.

TIMEOUT 30
DEFAULT primary

MENU TITLE p3450-porg eMMC boot options

LABEL primary
    MENU LABEL primary kernel
    LINUX /boot/Image
    INITRD /boot/initrd
    APPEND ${cbootargs} rootfstype=ext4 root=/dev/sda1 rw rootwait

LABEL sd-card
    MENU LABEL primary kernel
    LINUX /boot/Image
    INITRD /boot/initrd
    APPEND ${cbootargs} rootfstype=ext4 root=/dev/mmcblk0p1 rw rootwait

In the following picture you can see the change.

Jetson Nano boot priority

Jetson Nano boot priority

Now the Nano can be rebooted and the operating system should be loaded from the SSD hard disk.

Command: sudo reboot

You can see that the change from the mirco SD card to the SSD hard disk was successful, when you use the command “df -h” the root directory shows about 449 GB of storage space.

Command: df -h

Below you can see the output of my Jetson Nano.

(env) donkey@donkey:~$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 449G 19G 408G 5% /
devtmpfs 1,8G 0 1,8G 0% /dev
tmpfs 2,0G 12K 2,0G 1% /dev/shm
tmpfs 2,0G 18M 2,0G 1% /run
tmpfs 5,0M 4,0K 5,0M 1% /run/lock
tmpfs 2,0G 0 2,0G 0% /sys/fs/cgroup
tmpfs 397M 120K 397M 1% /run/user/1000
/dev/mmcblk0p1 30G 18G 11G 64% /media/donkey/847320a9-f217-4c2b-826c-2db9a77f6c52
(env) donkey@donkey:~$

Summary

A big thanks goes to Jetson Hacks for the very good instructions on how to change the Jetson Nano from a micro SD card to a USB SSD hard drive. I am now very much looking forward to being able to operate my Donkey Car with the SSD hard drive. So I do not have the constant problems that the micro SD card does not tolerate the constant read / write access. Also the performance is much better.

(Visited 1,602 times, 4 visits today)