Hier beschreibe ich, wie man eine HC2 mit Armbian installiert und einem Logitech Media Server darauf betreibt.
HC2 Armbian Image & Installation HD
Die Installation von Armbian ist eigentlich „outofthebox“. Da die HC2 aber über eine SD Karte verfügt und die Lebensdauer entsprechend beschränkt ist, ist es von Vorteil, die in der HC2 eingebaute Disk als OS-Disk zu verwenden. Man kann leider die HC2 nicht über die HD Vollkommen boot-fähig machen. Fast nicht. Ich beschreibe hier, wie ich das gelöst habe:
Image / SD
- Download (Focal-Image) & Installation: https://www.armbian.com/odroid-xu4/
- SSH Standard Login: root Password: 1234
- Starte das Dienstprogramm armbian-config und
- gehe in den Bereich System -> DTB und
- wähle die optimierte Kartenkonfiguration für Odroid HC1. Die gleiche Konfiguration gilt auch für HC2 und MC1.
Disc / HD
- Erstelle auf der HD zwei Partitionen. Eine für das Betriebssystem (40G) und eine für die Daten (Rest)
- HD identifizieren
sudo fdisk -l
- Partitionen erstellen
sudo fdisk /dev/sda d= delete partition n= create partition w=write partition
- recheck
sudo fdisk -l
- Erstelle Formatierung
sudo mkfs.ext4 -L os /dev/sda1 sudo mkfs.ext4 -L data /dev/sda2
- Erstelle Mount-Verzeichnisse
sudo mkdir /osFiles sudo mkdir /mnt/files
- /etc/fstab anpassen: Mount Patitionen
#Mounts /dev/sda1 /osFiles ext4 defaults,noatime,nodiratime,commit=600,errors=remount-ro 0 1 /dev/sda2 /mnt/files ext4 defaults,noatime,nodiratime,commit=600,errors=remount-ro 0 1
- Reboot
- Files auf neue OS-Partition (/osFiles) kopieren.
Achtung: Alle Services (wie den logitechmediaserver) vorher beenden
sudo rsync -aAXHv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found","/osFiles"} / /osFiles
- SDA uuid (UUID) herausfinden:
sudo blkid /dev/sda1: LABEL="os" UUID="975a0396-5016-42b3-a66e-fe5276a36797" TYPE="ext4" PARTUUID="262deb28-e8fe-5d4d-b3a4-808b44571e85"
- Im boot.ini die neue UUID setzen bzw. ersetzen:
sudo vi /boot/boot.ini . setenv rootdev "UUID=975a0396-5016-42b3-a66e-fe5276a36797" .
- reboot.
- Wenn alles geklappt hat, sollte neu von sda1 gebootet werden. Check:
mount | grep '/ '
- sollte folgendes ausgeben
/dev/sda1 on / type ext4 (rw,noatime,errors=remount-ro,commit=600,data=ordered)
- Über armbian-config können neue U-boot Versionen eingespielt werden. Diese müssen weiterhin auf die SD-Karte gespiehlt werden. Deswegen soll das /boot Verzeichnis weiterhin auf die SD-Karte zeigen:
- Microsd karte wieder einbinden.
- erstelle /mnt/microsd:
sudo mkdir /mnt/microsd
- fstab erweitern
-
Editiere /etc/fstab, und füge hinzu:
/dev/mmcblk0p1 /mnt/microsd auto defaults 0 0 /mnt/microsd/boot /boot none defaults,bind 0 0
- Mount durchführen und prüfen ob korrekt gemountet wird
sudo mount /mnt/microsd && sudo mount /boot
- Wenn Check:
mount | grep '/boot '
- sollte folgendes ausgeben
/dev/mmcblk0p1 on /boot type ext4 (rw,relatime)
- Wenn alles ok ist
sudo reboot
Damit läuft das System nun (grösstenteils 😉 ) auf der HD anstelle der SD. Das entlastet die SD enorm und führt zu einem längeren Leben der SD Karte.
lame installieren:
sudo apt-get install lame
ffmpeg installieren:
sudo apt-get install ffmpeg
RAM-Logging deaktivieren
Armbian installiert out-of-the-box ein RAM-Logging. Dabei wird 50MB Diskplatz als RAM verwendet und nach /var/log gemounted. Für kleine Systeme kann das Sinn machen. Ich verwende hier aber eine 2TB SSD und benötige damit keine RAM-Disk. Insbesondere, weil es immer mal wieder zu Problemen kam, welche in einem System-Freeze endeten. Dabei wurde die RAM-Disk bis 100% gefüllt was dann letzten Endes in einen System-Freeze mündete. Hier wird beschreiben, wie man diese RAM-Disk deaktiviert.
LMS Installation
LMS Download-Link: https://forums.slimdevices.com/showthread.php?98711-Logitech-Media-Server-Versions
Damit der LMS auf dem Armbian Focal läuft, müssen die Perl-Pakete selber kompiliert werden:
cd ~ sudo apt install nasm make gcc rsync patch g++ libc-bin zlib1g-dev libgd-dev libmodule-install-perl git clone https://github.com/Logitech/slimserver-vendor.git cd slimserver-vendor/CPAN/ ./buildme.sh
Jetzt LMS downloaden und installieren
cd ~ wget http://downloads.slimdevices.com/nightly/8.1/lms/c9adb5f63e54ec0d72e6266e75fb73989f4be345/logitechmediaserver_8.1.2~1614990085_arm.deb sudo apt install ./logitechmediaserver_8.1.2~1614990085_arm.deb
Den LMS stoppen, da er noch nicht läuft. siehe
tail -f /var/log/squeezeboxserver/server.log
sudo service logitechmediaserver stop
Nun die compilierten Perl-Binaries nach LMS kopieren:
sudo cp -r ~/slimserver-vendor/CPAN/build/arch/5.30/arm-linux-gnueabihf-thread-multi-64int /usr/share/squeezeboxserver/CPAN/arch/5.30/
Und den Logitech Media Server wieder starten
sudo service logitechmediaserver start
Das wars. Damit rennt der LMS auf einer HC2. Brower starten und link aufrufen:
http://ip-adresse:9000
Deezer-Plugin / Titel stoppen rund 50s vor Ende
Beim Einsatz des Deezer-Plugins ergab sich das Problem, dass die Songs rund 50s vor Ende des Titels stoppten und die Wiedergabe zum nächsten Titel spang. Dies kann behoben werden, indem beim LMS die AAC/AAC Wiedergabe deaktiviert wird:Siehe auch: https://github.com/Logitech/slimserver/issues/130#issuecomment-1212912369
ZRAM – Speicher erhöhen
Bei einem System mit wenig RAM-Speicher kann es Sinn machen, den zram Speicher zu erhöhen (siehe https://forum.armbian.com/topic/5565-zram-vs-swap/page/2/#comment-61082)
sudo vi /etc/default/armbian-zram-confi
# configuration values for the armbian-zram-config service # # enable the armbian-zram-config service? ENABLED=true # Zram swap enabled by default, unless set to disabled # SWAP=false # percentage of zram used as swap compared to physically available DRAM. # Huge overcommitment (300) is possible and sometimes desirable. See # https://forum.armbian.com/topic/5565-zram-vs-swap/?do=findComment&comment=61082 # and don't forget to adjust $MEM_LIMIT_PERCENTAGE below too. # ZRAM_PERCENTAGE=50 ZRAM_PERCENTAGE=300 # percentage of DRAM available to zram. If this amount is exceeded the zram # devices used for swap simply behave as if the device is full. You need to # adjust/increase this value only if you want to work with massive memory # overcommitment (ZRAM_PERCENTAGE exceeding 150 for example) # MEM_LIMIT_PERCENTAGE=50 MEM_LIMIT_PERCENTAGE=300 # create how many zram devices max for swap # ZRAM_MAX_DEVICES=4 # Which algorithm for zram based swapping. Seems lzo is best choice on ARM: # https://forum.armbian.com/topic/8161-swap-on-sbc/?do=findComment&comment=61668 # SWAP_ALGORITHM=lzo # Which algorithm to choose for zram based ramlog partition # RAMLOG_ALGORITHM=zstd # Which algorithm to choose for zram based /tmp # TMP_ALGORITHM=zstd # Size for zram based /tmp, total memory / 2 by default # TMP_SIZE=500M # If defined a separate partition will be used as zram backing device. Be CAREFUL # which partition you assign and read starting from CONFIG_ZRAM_WRITEBACK in # https://www.kernel.org/doc/Documentation/blockdev/zram.txt # ZRAM_BACKING_DEV=/dev/nvme0n2
Links
- https://www.nexus0.net/pub/documents/LMS/lms-build/
- https://www.hardkernel.com/shop/odroid-hc2-home-cloud-two/
- Tutorial: https://www.reddit.com/r/ODroid/comments/7zwkrt/tutorial_how_to_boot_linux_from_an_ssdhdd_on_the/
- https://forum.odroid.com/viewtopic.php?t=23925
- Installation aus den Sourcen (Perl und LMS): https://www.nexus0.net/pub/documents/LMS/lms-build/
- https://forums.slimdevices.com/showthread.php?114165-Installation-LMS-8-1-2-auf-einem-HC2-mit-armbian