Buchempfehlung:
Roboter-Autos mit dem Raspberry Pi

Roboter Autos mit dem Raspberry Pi - 2019

Ich werde die komplette Installation meines Jetson Nano von der micro SD-Karte auf eine SSD Festplatte umziehen. Ich erhoffe mir davon deutlich mehr Performance und weniger Probleme durch defekte mirco SD-Karten. Denn aktuell setzte ich den Nano auf meinem Donkey Car ein. Dort zeichne ich viele 10.000 Bilder und Json Dateien auf die die mirco SD-Karte bei den Lese- und Schreibe- Zugriffen stark beanspruchen. Auch ist die SSD Festplatte ca 4x so schnell wie die micro SD-Karte wenn es darum geht die Aufgezeichneten Trainingsdateien zu kopieren etc.

Danksagung:

An dieser Stelle möchte ich mich bei JetsonHacks bedanken für die perfekte Anleitung. Diese findet sich im original auf der folgenden Seite:

URL: jetson nano run on usb drive

Komponentenliste

Die Wahl ist auf die folgende USB 3.0 SSD Festplatte gefallen, da diese einfach via USB Kabel an den Jetson Nano angeschlossen werden kann und von der Baumform sehr kompakt ist also gut auf mein Donkey Car passt.

Loading ...

Zusammen mit der SSD Festplatte und den doch sehr Performance hungrigen AI Beispielen musste auch ein starkes Netzteil angeschafft werden. Bei mir ist die Wahl auf ein 5V Netzteil mit 5A gefallen. Mit diesem hatte ich dann keine sporasichen Abstürze mehr.

Das nachfolgende Netzteil sollte funktionieren. Leider habe ich das Netzteil das ich verwende nicht mehr bei Amazon gefunden.

Loading ...

Für den mobilen Einsatz empfehle ich die folgende PowerBank die sich bei mir sehr bewährt hat. Interessant ist bei dieser der USB-C Anschluss der 5V und 5A liefert und damit ideal für die Energieversorgung des Jetson Nano ist.

Loading ...

Installation

Als erstes wird von Jetson Hacks das repository rootOnUSB herunter geladen. Dieses Repository enthält alles was benötigt wird um ein neues Boot-Image mit USB 3.0 Unterstützung zu erstellen.

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

Befehl: cd rootOnUSB

Bevor jetzt der neue Kernel gebaut wird erstelle ein Backup von dem original Boot-Image. Dieses findest Du im Ordner /boot/ und der Name des Boot-Image lautet “Image”. Kopiere die Datei in einen BackUp Ordner z. B. im Verzeichnis /home/<User Name>/BackUp.

Jetson Nano boot USB Boot-Image backup

Jetson Nano boot USB Boot-Image backup

Mit dem folgenden Befehl wird der neue Kernel mit USB 3.0 Unterstützung gebaut. Der Bau des neuen Boot-Images dauert ca. 45 Minuten.

Befehl: ./buildKernel.sh

SSD Festplatte vorbereiten

Während der Kernel gebaut wird kann parallel die SSD Festplatte vorbereitet werden. Schließe diese jetzt am Jetson Nano an und gehe in das Programm Disks. Im Programm Disks wird dann die SSD Festplatte auswählt.

Das nachfolgende Bild zeigt das Programm Disks und die markierte SSD Festplatte. Rechts oben in dem Menü wird dann der Punkt “Format Disk” ausgewählt.

Jetson Nano boot from SSD 01

Jetson Nano boot from SSD 01

Das nächste Fenster zeigt dann das Menü für das Formatieren der Festplatte. Dort wie gezeigt den Punkt “Compatible with modern systems and hards disks > 2TB” auswählen und auf Format tippen.

Jetson Nano boot from SSD 02

Jetson Nano boot from SSD 02

Es erscheint eine Meldung ob wir uns wirklich sicher sind die Festplatte formatieren zu wollen. Hier wieder auf Format klicken.

Jetson Nano boot from SSD 03

Jetson Nano boot from SSD 03

Nach dem die Festplatte formatiert ist muss noch eine Partition angelegt werden. Dazu dann wieder unter Disks die SSD Festplatte auswählen und auf das “+” links im Fenster drücken um eine Partition anzulegen.

Jetson Nano boot from SSD 07

Jetson Nano boot from SSD 07

Anschließend erscheint dann folgender Dialog. Hier wird die Größe der Festplatte festgelegt.

Anschließend links oben auf Next klicken.

Jetson Nano boot from SSD 04

Jetson Nano boot from SSD 04

Im jetzt erscheinenden Dialog kann ein Label für die Partition festgelegt werden. Ich habe die Festplatte “NanoUSBSSD” genannt. Weiter muss noch das Filesystem “Ext4” gewählt werden. Das ist der erste Punkt im Abschnitt “Type” wie im nachfolgenden Bild zu sehen ist. Anschließend rechts oben auf Create tippen.

Jetson Nano boot from SSD 05

Jetson Nano boot from SSD 05

Nach wenigen Sekunden ist die Partition mit dem Filesystem Ext4 erstellt und der Status der SSD sollte “OK” anzeigen.

Jetson Nano boot from SSD 06

Jetson Nano boot from SSD 06

Jetzt ist die Festplatte vorbereitet und die Erstellung des Kernel läuft sicher noch.

Das neue Image booten

Nach dem der Kernel bzw. das Boot-Image erfolgreich gebaut wurde kopiert das Skript “buildKernel.sh” dieses Image auch gleich an die richtige Stelle in das /boot/ Verzeichnis.Auch hier macht es Sinn das neu gebaute Image sich zu sichern. so muss man falls notwendig später einmal das Image nicht neu bauen sondern hat es gleich zur Hand.

Das nachfolgende Bild zeigt die Ausgabe nach dem das Skript durchgelaufen ist.

Jetson Nano boot Image ready

Jetson Nano boot Image ready

Jetzt ist der Augenblick gekommen das der Nano neugestartet werden kann.

Befehl: sudo reboot

Dateien auf die SSD Festplatte kopieren

Nach dem der Nano mit dem neu gebauten image gebooted hat werden alle Dateien von der micro SD-Karte auf die SSD Festplatte kopiert. Auch hier gibt es wieder ein Skript von Jetson Hacks das uns diese Arbeit abnimmt.

Bitte wieder in den Ordner rootOnUSB wechseln.

Befehl: cd rootOnUSB

Jetzt kann der Kopiervorgang mit dem folgenden Befehl gestartet werden.

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

Bei mir sieht der Aufruf mit dem vergebeben Label der SSD Festplatte wie folgt aus.

Befehl: ./copyRootToUSB.sh -v NanoUSBSSD

Der Kopiervorgang dauert ein paar Minuten.

Boot Reihenfolge ändern

Damit auch wirklich das Betriebssystem von der SSD Festplatte geladen wird muss noch eine Anpassung vorgenommen werden. Dazu bitte die Datei “/boot/extlinux/extlinux.conf” in einem Text Editor öffnen und wie folgt abändern.

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

Dazu einfach den vorhandenen Eintrag der micro SD-Karte kopieren und wie gezeigt anpassen. Wichtig ist, dass das neue Bootlaufwerk nicht mehr die micro SD-Karte ist sondern das Laufwerk /dev/sda1. Auch muss der original Eintrag mit der micro SD-Karte von “pimary” auf z. B. “SD_Karte” geändert werden.

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

Im folgenden Bild ist die Änderung zu sehen.

Jetson Nano boot priority

Jetson Nano boot priority

Jetzt kann der Nano neu gestartet werden und das Betriebssystem sollte von der SSD Festplatte geladen werden.

Befehl: sudo reboot

Das die Umstellung von der mirco SD-Karte auf die SSD Festplatte geklappt hat erkennt man daran, dass mit dem Befehl “df -h” das root Verzeichnis ca. 449 GB Speicherplatz anzeigt.

Befehl: df -h

Nachfolgend ist die Ausgabe von meinem Jetson Nano zu sehen.

(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:~$

Zusammenfassung

Eine großes Dank geht an Jetson Hacks für die sehr gute Anleitung wie der Jetson Nano von einer micro SD-Karte auf eine USB SSD Festplatte umgestellt werden kann. Ich freue mich jetzt sehr darauf mein Donkey Car mit der SSD Festplatte betreiben zu können. So habe ich nicht die ständigen Probleme das die micro SD-Karte die ständigen Lese- / Schreibe- Zugriffe nicht verträgt. Auch ist die Performance um ein vielfaches besser.

(Visited 407 times, 1 visits today)