Erstellt: 2020-10-17 | Änderungsstand: 2023-10-23
Ich installiere Ubuntu Server 20.04 LTS und verwende hierfür eine 32GB SD-Card. Folgendes beinhaltet dieser Guide:
- Installation von Ubuntu 20.04 LTS Server
- Login und Terminal
- Systemupdate
- Benutzererstellung (Optional)
- Optional: Weiteren Benutzer anlegen
- Benutzerpasswort ändern
- Feste IP-Adresse vergeben
- SSH-Port ändern
- Locale & Tastaturlayout auf DE
- Docker Compose installieren
- Rechte des Benutzerverzeichnisses wiederherstellen (musste ich erledigen)
- Ext. Laufwerk einbinden
- Samba Freigabe erstellen
Los geht’s:
- Von Wiki/Radxa unter Downloads „Ubuntu Server“ herunterladen (derzeit [10/2023] wird Ubuntu Server 22.04 zum Download angeboten)
- Mittels Balena Etcher auf SD-Card bringen
- SD-Card in den RockPi4 rein und starten
- Login:
- Benutzername: rock
- Passwort: rock
Nach Login:
ip a
Hier wird die IP-Adresse angezeigt, mit welcher ich mich im Terminal einloggen kann. Da jetzt das Terminal funktioniert, wird es ab sofort auch benutzt. Übrigens – im Terminal ist bei mir das deutsche Tastaturlayout aktiv. Demzufolge muss ich nicht explizit das deutsche Tastaturlayout am System installieren. Zuerst das Update:
Bevor ich nun das System auf aktuellem Stand bringe:
export DISTRO=focal-stable
wget -O - apt.radxa.com/$DISTRO/public.key | sudo apt-key add -
System aktualisieren:
sudo apt update && sudo apt upgrade -y
Optional Start
Jetzt könnte ich einen neuen Benutzer anlegen (im Beispiel ist das der Benutzer rocky ):
sudo -i
useradd -m rocky
passwd rocky
usermod -s /bin/bash rocky
usermod -g users rocky
gpasswd -a rocky sudo
gpasswd -a rocky ssh
exit
sudo reboot
Optional Ende
Nun unbedingt das Passwort des Benutzers „rock“ ändern:
sudo passwd rock
Es könnte sein, dass zuerst das vorhandene Passwort abgefragt wird und dann 2x das neue Passwort verlangt wird. Das steht aber dort, was benötigt wird.
sudo reboot
In Sachen Software installiere ich zuerst den Midnight Commander und den Editor nano:
sudo apt install mc nano -y
Soweit bin ich hier fertig. Installiert wurde Ubuntu-Server in der Version 20.04. LTS (Focal Fossa). Diese bezieht bis April 2025 Updates. Die aktuelle Version Ubuntu 22.04. LTS (Jammy Jellyfish) wird derzeit noch nicht für den RockPi 4 auf deren Seite angeboten.
Feste IP-Adresse vergeben:
sudo nmcli connection add type ethernet ifname eth0
sudo nano /etc/NetworkManager/system-connections/ethernet-eth0.nmconnection
Folgende Werte sind dort standardmäßig bei mir eingetragen (die „uuid“ ist bei jedem anders):
[connection]
id=ethernet-eth0
uuid=a3e524ab-2d0e-3df03-g4hk-3474f48h28fm
type=ethernet
interface-name=eth0
permissions=
[ethernet]
mac-address-blacklist=
[ipv4]
dns-search=
method=auto
[ipv6]
addr-gen-mode=stable-privacy
dns-search=
method=auto
[proxy]
Den ipv4 Bereich ändere ich nun um (Der Rest bleibt unverändert):
[ipv4]
dns-search=
method=manual
address1=192.168.1.234/24,192.168.1.1
dns=192.168.1.1;8.8.8.8;8.8.8.4
Strg-x, y, Enter
Erklärung:
- adress1=die IP, die vergeben werden soll, inkl /24. Die 24 weist auf die Subnetzmask 255.255.255.0 hin. Meine Netzwerk-Adresse für den Ubuntu-Server soll die 192.168.1.234 sein und meine Subnetmask besteht aus 255.255.255.0. Also vergebe ich die Adresse 192.168.1.234/24
- dns=die dns-Adresse für die Namensauflösung. Ich verwende immer die Adresse des Routers. Man könnte theoretisch auch die 8.8.8.8 oder die 8.8.4.4 für Google-DNS oder 1.1.1.1 für Cloudflare-DNS verwenden oder wie im Beispiel, mehrere mit Semikolon voneinander getrennt.
sudo systemctl restart network-manager.service
sudo reboot
SSH-Port ändern:
sudo nano /etc/ssh/sshd_config
Ich suche nun folgenden Eintrag:
#Port 22
Diesen Eintrag ändere ich folgend:
Port 12345
Strg-x, y, Enter
Port 12345 ist ab nun der Port, der für den SSH-Zugang verwendet wird.
Dieser Port, so wie er in diesem Beispiel angegeben wurde, sollte natürlich nicht so verwendet werden! Bitte einen eigenen, freien Port verwenden!!!
sudo systemctl restart ssh
Im Terminal mit dem neuen Port anmelden – fertig.
(Die alte Terminalsession funktioniert noch bis zum Schließen dieser)
Locale & Tastaturlayout DE einrichten:
sudo apt-get install language-pack-de -y
sudo localectl set-locale LC_MESSAGES=de_DE.utf8 LANG=de_DE.UTF-8
sudo update-locale
sudo localectl set-x11-keymap de pc105 nodeadkeys compose:rwin
sudo reboot
localectl status
System Locale: LANG=de_DE.UTF-8
LC_MESSAGES=de_DE.utf8
VC Keymap: de-latin1-nodeadkeys
X11 Layout: de
X11 Model: pc105
X11 Variant: nodeadkeys
X11 Options: compose:rwin
Docker Compose installieren:
sudo apt-get update
sudo apt install curl -y
sudo curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh ./get-docker.sh
sudo usermod -aG docker $USER
docker compose version
Meine Ausgabe zum Zeitpunkt:
Docker Compose version v2.21.0
Rechte des Benutzerverzeichnisses wiederherstellen:
sudo chown -R rock:rock /home/rock
Externes Laufwerk einbinden:
Ich verwende eine NVMe und binde diese nun im System ein:
lsblk
Meine Ausgabe:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
mmcblk0 179:0 0 29.7G 0 disk
|-mmcblk0p1 179:1 0 3.9M 0 part
|-mmcblk0p2 179:2 0 4M 0 part
|-mmcblk0p3 179:3 0 4M 0 part
|-mmcblk0p4 179:4 0 512M 0 part
`-mmcblk0p5 179:5 0 29.2G 0 part /
nvme0n1 259:0 0 931.5G 0 disk
Meine NVMe hat die Bezeichnung nvme0n1, welche ich nun neu partitioniere:
Alle vorhandenen Daten des Laufwerkes werden gelöscht!
sudo parted /dev/nvme0n1 "mklabel gpt"
- Yes
Formatieren als ext.4 Laufwerk:
sudo mkfs.ext4 /dev/nvme0n1
- y
Jetzt mounte ich das Laufwerk nach /mnt/nvme0n1:
(ssd ist meine dafür verwendete Bezeichnung)
sudo mkdir -p /mnt/nvme0n1
sudo mount /dev/nvme0n1 /mnt/nvme0n1
sudo chmod -R 777 /mnt/nvme0n1/
Zur Erklärung, da immer wieder Fragen aufkommen und die gängigsten Beispiele:
- 777: Jeder kann Lesen, Schreiben, Ausführen (rwx rwx rwx).
- 755: Der Besitzer, die Gruppe und andere Personen können Lesen –> Schreiben und Ausführen nur Besitzer (rwx rx rx).
- 600: Nur der Eigentümer kann Lesen und Schreiben (rw – -).
Auto-Mount:
Zuerst muss ich die UUID meiner SSD feststellen:
sudo blkid
Als Ausgabe bekomme ich:
/dev/nvme0n1: UUID="4x659dk3-0egs-xxdd-ghpe-9f4583196fk1" BLOCK_SIZE="4096" TYPE="ext4"
Meine UUID lautet demzufolge: 4x659dk3-0egs-xxdd-ghpe-9f4583196fk1
Nun trage ich die nötigen Sachen in der fstab ein:
sudo nano /etc/fstab
Folgendes trage ich am Ende ein:
# ext. nvme0n1 einhängen
UUID="4x659dk3-0egs-xxdd-ghpe-9f4583196fk1" /mnt/nvme0n1 ext4 auto,nofail,sync,users,rw 0 0
Strg-x, y, Enter
sudo mount -a
Zum Test, ein obligatorischer Reboot:
sudo reboot
Nach dem Start ist meine SSD unter dem erstellten Mountpoint verfügbar.
Samba-Freigabe:
Ich richte die SMB-Freigaben ein, damit ich meine Medien mittels Netzwerk auf meinem Server kopieren kann. Mein Benutzername ist rock.
sudo apt update && sudo apt upgrade -y
sudo apt install samba samba-common smbclient -y
Check, ob alles passt:
sudo service smbd status
Als wichtige Ausgabe erhalte ich:
Active: active (running)
Ggf. Strg-c drücken.
Samba ist nun installiert. Auf zur Konfiguration:
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf_old
sudo nano /etc/samba/smb.conf
Folgendes füge ich ein:
[global]
workgroup = WORKGROUP
security = user
client min protocol = SMB2
client max protocol = SMB3
Strg-x, y, Enter
SMB-Freigabeverzeichnis einrichten:
Ich habe eben meine SSD als Mount zu /mnt/nvme0n1 gesetzt. Dieses Verzeichnis verwende ich und setze die Freigabe meines Samba-Freigabeordners (sharedfolders) für den Benutzer rock:
sudo mkdir -p /mnt/nvme0n1/sharedfolders
sudo chown -R rock:rock /mnt/nvme0n1/sharedfolders
Achtung! Dieser Freigabeordner /mnt/nvme0n1/sharedfolders ist selbst nur noch mittels Benutzer rock und root verwendbar (Lesen und Schreiben)! Das trifft nicht für den Hauptordner /mnt/nvme0n1 zu. Dieser kann in meinem Beispiel mit jedem Benutzer verwendet werden, wenn dort 777 verwendet wurde..
sudo nano /etc/samba/smb.conf
Folgendes trage ich am Ende dieser Datei ein:
[shared]
comment = Samba-RockPi-Freigabe
path = /mnt/nvme0n1/sharedfolders
browseable = yes
read only = no
Strg-x, y, Enter
Achtung! –> Das Freigabeverzeichnis für den Ordner /mnt/nvme0n1/sharedfolders lautet nun shared. Soll das Freigabeverzeichnis sichtbar für andere Kuchen heißen, muss die Zeile [shared] in [Kuchen] geändert werden!
sudo service smbd restart
sudo service nmbd restart
SMB-Passwort erstellen:
sudo smbpasswd -a rock
Optional: Deaktivieren des rock-Users für Samba-Zugriffs:
sudo smbpasswd -d rock
Optional: Re-Aktivieren des rock-Users für Samba-Zugriffs:
sudo smbpasswd -e rock
Die SMB-Freigabe kann nun verwendet werden und ich kann mittels Windows-Rechner darauf zugreifen (Bsp.: \\192.168.1.200\shared).
Am Ende ein:
sudo reboot
.
.
Unterstützende Quelle(n):
https://forum.radxa.com/t/sudo-apt-update-get-error/13061
https://wiki.ubuntuusers.de/IP-Adresse_wechseln/
https://wiki.ubuntuusers.de/systemd/localectl/
https://docs.docker.com/engine/install/ubuntu/#install-using-the-convenience-script