Artikelformat

Arch Linux auf einem Pogoplug v3 (Classic)


Im Dezember letzten Jahres gab es mal das Angebot einen Pogoplug Classic für knapp 20€ zu erstehen. Was ist ein Pogoplug? Ein Pogoplug ist ein „quasi-NAS“, ihr bestück den kleinen Kasten im Regelfall mit einer externen USB-Festplatte und könnt dann darauf wahlweise aus dem Netzwerk (mit Hilfe von Software) oder über die Internetseite des Herstellers auf diese Daten zugreifen.

Pogoplug von der Seite

Diese Zugangsmöglichkeit hat einige Nachteile, welche sich durch eine Linux Installation kompensieren lassen

  • Daten liegen in der Hand des Herstellers
  • Abhängigkeit vom Hersteller was Updates / Software angeht
  • Hersteller kann auf das Gerät zugreifen
  • Dateien nur mit extra Software einsehbar (Windows / Mac / iOS / Android)
  • Limitierte Funktionen

Ich habe das Gerät bis jetzt (neben ein paar Tests) in der Standardkonfiguration betrieben und wollte dies nun endlich mal ändern.

Der Pogoplug v3 ist folgendermaßen ausgestattet:

  • PLX 7820 ARM Dual-core Prozessor (700MHz)
  • 128MB RAM
  • 128MB NAND
  • 4x USB 2.0
  • 1x SATA II
  • Gigabit Ethernet

Wieder mal ein paar Worte der Warnung:
Dies ist nicht unbeding eine Anleitung für totale Neulinge.
Mit der Firmware eines Gerätes zu experimentieren kann schnell ins Auge gehen!
Solltet ihr euer Gerät bricken, gibt es die Möglichkeit mit Hilfe von Zusatzhardware das ganze zu korrigieren. Es gilt die Regel “Erst denken, dann handeln”.
Haftung übernehme ich auch bei diesem Projekt keine.

Das ganze funktioniert auf jeden Fall für die folgenden Modelle:

  • POGO-P21
  • POGO-P24
  • POGO-P25
  • POGO-B01
  • POGO-B02
  • POGO-B03
  • POGO-B04

Solltet ihr einen anderen Pogoplug haben, müsst ihr euch auf der Arch Linux ARM Seite umsehen.

Ihr benötigt neben dem passenden Pogoplug noch einen USB-Stick mit einer Mindestkapazität von 2GB, welcher das System beherbergen wird.

Die Installation

  1. Zuerst muss der Pogoplug registriert und online sein
  2. Dem Pogoplug muss ein SSH Passwort zugewiesen werden
  3. Trennt den Pogoplug vom Stromnetz
  4. Entfernt alle angeschlossenen Speichergeräte
  5. Steckt den USB-Stick an, von dem später Arch Linux starten soll (Alle Daten gehen verloren) und schaltet den Pogoplug ein
  6. Loggt euch über SSH (die IP Adresse sucht ihr euch am besten im Router heraus) in den Pogoplug, als ‚root‘ mit eurem selbstgewählten Passwort ein
  7. Beendet den Pogoplug Dienst, damit er uns nicht in die Quere kommt
    killall hbwd
  8. Startet fdisk
    /sbin/fdisk /dev/sda
  9. Nun trefft ihr folgende Auswahl:
    o‚ – Dieses entfernt alle Partitionen vom Medium
    p‚ – Dies listet alle Partitionen auf. Logischerweise sollte hier nichts mehr angezeigt werden
    n‚ für neue Partition, dann ‚p‚ für Primärpartition und ‚1‚ für die erste Partition auf dem Medium. Nun drückt ihr Enter und übernehmt die vorgegebenen Standardwerte.
    Beendet fdisk mit Hilfe von ‚w
  10. Erstellt das ext3 Dateisystem
    sync
    cd /tmp
    wget http://www.dennert.me/pogo/mke2fs
    chmod 755 mke2fs
    ./mke2fs -j /dev/sda1
  11. Ladet euch mein modifiziertes Instalaltions Skript herunter und führt es aus
    cd /tmp
    wget http://www.dennert.me/pogo/pogoplug-install.sh
    chmod 755 pogoplug-install.sh
    ./pogoplug-install.sh

Das Installations Skript überprüft ob der Pogoplug Dienst beendet und sda1 eingehangen ist.
Dann sammelt es Informationen über die verwendete Hardware, lädt das rootfs herunter, überprüft es, entpackt es und schreibt den geänderten Kernel in den NAND.

Am Ende solltet ihr die folgende Ausgabe erhalten:

bootargs_stock=root=ubi0:rootfs ubi.mtd=2,512 rootfstype=ubifs console=ttyS0,115200 elevator=cfq mac_adr=0x00,0x30,0xe0,0x00,0x00,0x01 mem=128M poweroutage=yes
load_custom_nand=nboot 60500000 0 500000
load_custom_nand2=nboot 60500000 0 B00000
boot_custom=run load_custom_nand boot || run load_custom_nand2 boot
bootargs=root=/dev/sda1 ubi.mtd=2,512 rootfstype=ext3 console=ttyS0,115200 elevator=cfq mac_adr=0x00,0x30,0xe0,0x00,0x00,0x01 mem=128M poweroutage=yes rootdelay=15
bootcmd=run boot_custom

Hinweis: Bei dem Installations Skript oder dem rootfs handelt es sich nicht um mein Werk. Ich habe das Skript von Arch Linux ARM so angepasst das es ein aktuelles rootfs von moonman von einem meiner Server lädt und dieses dann überprüft.

Sollte alles geglückt sein, könnt ihr euren Pogoplug neustarten

/sbin/reboot
  1. Logt euch erneut per SSH in den Pogoplug (die IP könnte sich geändert haben) mit den Daten User: ‚root‘, Passwort: ‚root‘ ein.Sollte die Front LED nach dem starten noch immer blinken, müsst ihr die Modul Abhängikeiten erneuern
    depmod -a

    und dann neustarten

    /sbin/reboot

    Ihr noch euer root Passwort anpassen

    passwd

    und euer System aktualisieren

    pacman -Syu

Wilkkomen in Arch Linux ARM.
Was ihr nun tun könnt? Das liegt ganz an euch… aber hier ein paar Vorschläge:

– Dateifreigaben mit Samba (Anleitung folgt)
– Torrentbox mit transmission (Anleitung folgt)
– kleiner Webserver mit nginx, lighttpd, Hiawatha, Cherokee, Boa oder thttpd
– FTP Server
– Druckerserver mit CUPS
– Backup-Sklave mit Samba Freigaben / FTP

Zurück zu den Wurzlen

Solltet ihr keine Lust mehr auf Arch Linux haben (So etwas gibt es?) dann ladet ihr euch dieses Skript, macht es ausführbar und startet es.

wget http://www.dennert.me/pogo/pogoplug-revert.sh
chmod 0775 pogoplug-revert.sh
./pogoplug-revert.sh

Folgt den Anweisungen auf dem Bildschirm und startet euren Pogoplug anschließend ohne den USB Stick. Tada!

Bonus Inhalt (yay!)

Um Speichermedien schnell ohne viel Tipperei einbinden zu können nutze ich ‚udevil

Hier ein Auszug aus der man Page:

udevil mount /tmp/example.iso # ISO file
udevil mount ftp://sys.domain # ftp site - requires
curlftpfs or ftpfs
udevil mount ftp://user:pass@sys.domain/share # ftp share with
user and password
udevil mount ftp://user:pass@sys.domain:21/share # ftp share with
port, user and password
udevil mount -t ftpfs sys.domain # ftp site with ftpfs
udevil mount -t curlftpfs sys.domain # ftp site with curl
udevil mount smb://sys.domain/share # samba share w/ cifs
udevil mount smb://user:pass@10.0.0.1:50/share # samba share w/ u/p/port
udevil mount smb://WORKGROUP/user@sys.domain # samba share w/ workgroup
udevil mount //sys.domain/share # samba share w/ cifs
udevil mount //sys.domain/share -t smbfs # samba share w/ smbfs
udevil mount ssh://user@sys.domain # sshfs with user -
requires sshfs
udevil mount -t sshfs user@sys.domain # sshfs with user
udevil mount http://sys.domain/dav/ # WebDAV - requires davfs2
udevil mount tmpfs # make a ram drive

Und so sieht das ganze dann in Aktion aus:

[root@alarm mnt]# udevil mount /dev/sdb
Mounted /dev/sdb at /media/MYLINUXLIVE

Kein Editieren von /etc/fstab, kein anpassen von udev Regeln, keine Angabe des Dateisystems und kein lästiges erstellen von Ordnern!

Da der kleine im Inneren auch noch einen SATA II Port hat, muss man seine Platten nicht unbedingt per USB quälen.

Pogoplug Innenleben
Ich habe mir aus einem Molex zu SATA Adapter und einem USB Kabel, einen Stromadapter für die Platten gebaut (2,5″ sind mir aus Platzgründen lieber).Einen solchen Adapter zu bauen ist nicht schwer und auch für Lötkolben-Neulinge kein Problem

Schnell noch ein Loch in die Gehäusefront dremeln, SATA Kabel von innen nach außen gelegt und fertig ist der nicht ganz so hübsche, dafür performante Festplattenanschluss.
Das ganze funktioniert (leider) nur mit stromsparenden HDDs/SSDs. Ein Y-Kabel möchte ich persönlich aber auch nicht haben, dafür sind mir die USB Anschlüsse zu schade.

Frohes Basteln!

Autor: Pierre

Ich bin Pierre und im Moment Gastautor für aptgetupdate.de. Ich kümmere mich vorrangig um die Themenbereiche: Linux, Tor, OpenSource, Chromebooks, Google und Android. Bei Fragen oder Anregungen könnt ihr mich gerne per Email anschreiben.

26 Kommentare

  1. Danke für den Tipp! Hatte noch ein Pogoplug (POGO-E02) ungenutzt herumliegen. Die Installation lief echt problemlos. Musste halt wegen des anderen Prozessors etwas angepasst werden.

    Bin auf deine weiteren Anleitungen gespannt!

    Gruß Florian

    • Freut mich das es geklappt hat, bei dem E02 braucht es kein angepasstes rootfs da die Reihe noch nicht EoL ist.

      Mehr folgt bald :)

  2. Vielen Dank!

    Vielleicht wäre ja ein Tor-Proxy-Server für alle Endgeräte im lokalen Netzwerk eine weitere Verwendungsidee. ;)

    • Ein pi hat aber auch viel mehr Möglk. als der pogoplug. Das macht den Mehrpreis wieder wett, wie ich finde.

    • Günstiger ist er auf jeden Fall, hat mehr USB Anschlüsse, SATA und Gigabit Ethernet. Dafür halt weniger RAM, keine Grafik und keine Zusatzschnittstellen als der Pi.
      Muss man halt Abwägen was man alles machen will :)

  3. Pingback: Samba auf dem Pogoplug | aptgetupdateDE

    • Komisch, hab es auf meinem getestet und da kalppt es. KÖnnte evtl. an der wget Version liegen…
      Na gut dann Runde 2. Good ol‘ Direktlinks.

  4. Ich bekomme beim Ausführen der install.sh nach dem download der rootfs immer den Fehler „…… Read-Only System“ und dann bricht das Skript ab.

    Hat jemand vielleicht eine Ahnung an was das liegen könnte?

    lg

    • Wie lautet die genaue Ausgabe? Eventuell ist die Partition nicht korrekt erstellt worden, einfach nochmal drüber bügeln

  5. Also als erstes bekomme ich den Fehler „Segmentation fault“ wenn ich von deinem Server die mke2fs lade und ausführen will. Deshalb hab ich das direkt von der Archlinuxarm Seite geladen. Das Ausführen klappt auch soweit. Nachdem ich die instal.sh ausgeführt habe bekam ich gestern immer den Read-Only System Fehler. Heute steht wohl was neues auf dem Programm :(

    Connecting to http://www.dennert.me
    # Verifying MD5
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    MD5 verification Failure.
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    Habe es gestern bestimmt 10 mal versucht immer mit dem gleichen Ergebnis. Könnte es am USB Stick liegen?

    lg

    Edith sagt

    Nach mehrmaligen Versuchen hat es nun doch geklappt :)

  6. Entschuldige den Doppepost aber ich kann meinen Post leider nicht mehr editieren.

    Hab es jetzt einfach nochmal probiert und erhalte den gleichen Fehler wie gestern:

    #############################
    ## RETRIEVING FILES
    # Downloading ArchLinuxARM-oxnas-rootfs…(approx. 138MB)
    Connecting to http://www.dennert.me (188.40.33.197:80)
    wget: short write
    Connecting to http://www.dennert.me (188.40.33.197:80)
    wget: can’t open ‚oxnas-rootfs-2013-06.tar.gz.md5‘: Read-only file system
    # Verifying MD5
    sed: oxnas-rootfs-2013-06.tar.gz.md5: No such file or directory
    # Extracting
    tar: short read
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    Extraction FAILED or WRONG rootfs
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  7. Wollte mich mal kurz bedanken, habe doch tatsächlich 2 mal die letzten Tage auf das Ding geschaut und gedacht: „Da wolltest du doch auch nochmal mit spielen.“

    Und dann der passende Post nach so einer „langen Zeit“ die seit dem Firesale schon vergangen ist. Danke! =)

    PS: aptgetupdate passt jetzt beinahe wieder ;)

  8. Hallo Pierre,
    ich besitze auch einen Pogoplug, und würde gerne die Arch Linux darauf zum laufen bringen. Mein Problem, ich habe
    weniger als Null Ahnung von Linux. Meine Frage ist ob Du jemand kennst, aus Karlsruhe und Umgebung, der mir helfen
    und mir nötiges Wissen vermitteln kann. Danke im vor aus.
    Gruß Thomas

  9. hi

    nur zur info

    #############################
    ## RETRIEVING FILES
    # Downloading ArchLinuxARM-oxnas-rootfs…(approx. 138MB)
    Connecting to http://www.dennert.me (188.40.33.197:80)
    Connecting to http://www.dennert.me (188.40.33.197:80)
    # Verifying MD5
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    MD5 verification Failure.
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    • Ich habe das gleiche Problem mit „MD5 verification Failure“

      Kann mir jemand helfen?

  10. hallo
    gibt es hier jemand der das rootfs erfolgreich auf systemd/systemctl umgestellt hat ?

    gruß
    karsten

  11. Hallo,

    bin ganz neu in dem Gebiet habe mir jetzt einen Pogoplug B04 zugelegt und bei dem Linux zu installieren bekomme jedes mal die Meldung Segmentation fault.

    Kann mir da jemand weiterhelfen?

    Vielen Dank im Voraus! :)