Streaming-Audio-Server – Ein Versuch

Die Folge 39.5 von Anfang September mit dem Thema „Mein eigener Server“ des c’t Uplink Podcasts hat auch bei mir wieder Lust auf einen eigenen Home-Server geweckt. In den letzten zwölf Monaten habe ich verstärkt auf meine digital gespeicherte Musiksammlung – also im Wesentlichen MP3-Dateien – zurückgegriffen. Sei es, weil mein einfacher, kleiner MP3-Player unerwartet kaputtgegangen ist und ich mir einen neuen kaufte, ohne dass ich die Ordnerstruktur mit den Musikdateien vorher noch vom alten Player auf einem Computer zwischenspeichern konnte, oder weil mein Hörinteresse insgesamt in dem benannten Zeitraum auch wieder von den Podcasts weg zu mehr Musik gewandert ist. Anders als viele andere möchte ich aber kein Network Attached Storage (kurz NAS) betreiben und habe es auch bisher noch nicht. Stattdessen habe ich die archivierten Dateien auf einer externen Festplatte gespeichert, wie viele einfache Computernutzer es auch handhaben. – Allerdings mit dem Unterschied, dass ich sie auf zwei externen Festplatten gespeichert habe, um immer wenigstens noch einen redundanten Datenträger zu haben, falls eine kaputtgeht. Der Nachteil gegenüber einem NAS ist aber, dass ich nicht von jedem Gerät immer sofort auf die Dateien zurückgreifen kann. Das liegt zum einen daran, dass die Gehäuse der externen Festplatten unterschiedliche Schnittstellen haben, und zum anderen daran, dass sie mit einem Apple Dateisystem formatiert sind. Je nach Computer und dem darauf installiertem Betriebssystem kann ich also nicht eine der externen Medien immer direkt anschließen, an dem ich sie verarbeiten möchte. Ich muss sie also immer an einen bestimmten Mac mit der richtigen Schnittstelle anschließen und die Dateien mittels einem flexibleren Wechseldatenträger wie einem mit dem Dateisystem exFAT formatierten USB-Stick auf meinen Zielcomputer übertragen, was sehr umständlich und zeitraubend ist. Ich muss nicht immer regelmäßig auf alle meine archivierten Dateien zugreifen, aber da es sich bei denen, wo es in letzter Zeit der Fall ist, um Audio-Dateien handelt, liegt doch der Gedanke nahe, einen Streaming-Server für Musik zu bauen, von dessen mit jedem Gerät sofort die gewünschte Musik abgespielt werden kann. Das sorgt außerdem dafür, dass wenn die Dateien nicht auf dem Endgerät vorhanden sind, sie auch nicht den begrenzten Festspeicherplatz des Endgeräts in Anspruch nehmen und auch die Backups dieser unnötig vergrößern.

Vor dreizehn Jahren habe ich mir für meinen ersten Home-Server das Alix.1C Embedded Board von PC Engines angeschafft. Anfangs einige Zeit mit NetBSD und später durchgängig mit OpenBSD betrieben, diente der Computer für irssi in einer Screen-Session, dann mal als Konsolen-Torrent-Client oder Tor Middle-Node und war meistens über dynamischen DNS aus dem öffentlichen Internet im eigenen Heimnetzwerk erreichbar. Auf die 32 Gigabyte CompactFlash-Karte, die ich einige Jahre später dazu gekauft habe, würde ich meine MP3-Sammlung zwar gespeichert bekommen, aber die Karten sind in ihrer Lese- und Schreibgeschwindigkeit sehr langsam gegenüber den moderneren Festplatten (späte IDE- und generell SATA-Laufwerke). Zum Glück habe ich aber noch irgendwo eine gebrauchte SATA-SSD mit 256 Gigabyte Speicherkapazität herumliegen. Da die Alix-Boards noch einen 44-Pin IDE Port für 2,5″ IDE-Laufwerke besitzt, bin ich das Wagnis eingegangen und habe mir für 12 Euro mal einen 2,5 Zoll SATA (Female) HDD Drive auf IDE 44 Pin Konverter bestellt. Ich war anfangs etwas skeptisch, aber so ein SATA auf 44 Pin IDE-Konverter funktioniert doch problemlos. Der einzige Nachteil, der durch den Konverter entstanden ist, ist der, dass er mit dem 2,5″ Medium die Höhe des schmalen Gehäuses etwas überschreitet und ich das System nicht mehr geschlossen bekomme. Das SATA-Medium wird durch den IDE-Controller vom Board wie ein IDE-Medium erkannt und angesteuert.

ALIX.1C Innenansicht

Ich habe in den letzten vier Jahren das Alix-System zwar nicht mehr nennenswert im Einsatz gehabt, aber vor gut zwei Jahren musste ich feststellen, dass das System von dem OpenBSD Installations-Image auf einem USB-Stick spätestens seit der damaligen Version 6.5 nicht mehr in der Lage ist zu booten. Was der Grund für den Fehler ist, konnte ich bis jetzt nicht herausfinden. Auch der Versuch von einem OpenBSD Installations-Image für die x86 64-Bit statt der x86 32-Bit hat nicht geholfen und die Gesamtsituation hat sich bis zu der vor gut zwei Wochen erschienen OpenBSD Version 7.0 nicht gebessert. Zum Glück hatte ich mir zu Anfang dieses Jahres die be quit! Bastel- und Retro-Workstation zusammengebaut, um von dem Installationsmedium aus zu booten und das System auf den Zieldatenträger zu übertragen. Der erste Boot-Vorgang von dem Zieldatenträger als Hauptdatenträger im Alix-System funktioniert dann zum Glück wieder fehlerfrei, sodass die weitere Konfiguration damit kein Problem darstellt.

2,5 Zoll SATA (Female) HDD Drive auf IDE 44 Pin Konverter

Mit dem nun nach wie vor unter OpenBSD betriebenen Alix-System als wirklich sinnvollen Home-Server habe ich mir auch das Ziel gesetzt, einen eigenen benutzerdefinierten Kernel zu kompilieren. Die Standard-Kernel der drei großen bekannten BSD-Systeme sind zwar schon wesentlich kleiner als die der großen bekannten Linux-Distributionen, aber in Hinblick darauf, dass das Alix-System nur 256 MiB Arbeitsspeicher besitzt, finde ich es nicht verkehrt, es noch Resourcen-schonender zu konfigurieren. Bisher hatte ich benutzerdefinierte Kernel unter NetBSD und zu Anfangs mal kurz unter FreeBSD erstellt. Die Verfahrensweisen und Abläufe sind aber prinzipiell bei allen BSD-Betriebssystemen identisch. Bei meinem jetzt unter OpenBSD 7.0 selbsterstellten Kernel habe ich die Treiber für alle auf dem Alix-Board verbauten Hardware-Komponenten beibehalten und alle diejenigen entfernt, die auch nicht auf dem Board verbaut wurden. Zusätzlich habe ich noch die Unterstützung für einige Dateisysteme entfernt, mit denen ich hier zu Hause eh nicht (mehr) mit dem Alix-System in Berührung kommen könnte (Linux ext2, UDF, CD9660 und NFS). Außerdem habe ich die Software-RAID Funktionalität entfernt und die Farbgebung für Kernel-Ausgaben auf den seriellen Konsolen von der standardisierten weißen Schrift auf blauen Hintergrund zu der für mich angenehmer zu lesenden weißen Schrift auf schwarzem Hintergrund. Ich hätte gerne noch alle Funktionalitäten des Point-to-Point Netzwerkprotokolls und die Unterstützung der VPN-Protokolle entfernt, aber der Kernel hat auf der Standardausgabe während des Boot-Vorgangs (noch) zu viele Fehler geworfen, auch wenn der Rest trotzdem funktioniert hätte. Trotzdem konnte ich die Größe des Kernels signifikant verkleinern. War die ausführbare Kernel-Datei des generischen Kernels noch fast 15 Megabyte groß, war die Datei meines Kernels nur fast 5 Megabyte groß. Während der generische Standard-Kernel im Arbeitsspeicher 20 Megabyte belegte, benötigte mein Kernel nur noch die Hälfte im RAM. Für die Statistik: Da der AMD Geode LX Prozessor – bassierend auf AMDs K7 Mikroarchitektur – nur 500 Megahertz, 2 mal 64 KiB Level-2 und nur 128 KiB Level-2 Cache besitzt, dauert der Kompiliervorgang des generischen Standard-Kernels von OpenBSD 7.0 zwei Stunden und 55 Minuten. Der Kompiliervorgang meiner Kernel-Konfiguration hat dann nur noch 41 Minuten gedauert.

Ich habe mir gedacht, dass es prinzipiell nicht verkehrt sein kann, dass auf dem Alix-Home-Server auf alle Fälle auch ein FTP-Server verfügbar sein sollte, denn schließlich will ich die MP3-Dateien von der an einen meiner Mac’s angeschlossenen, externen Festplatte auf den zukünftigen Musik-Streaming-Server übertragen, beziehungsweise die MP3-Dateien auf einen mobilen Computer oder Abspielgerät für unterwegs herunterladen. – Wie gesagt, ich möchte nicht immer jedes Mal eine der beiden externen HDDs herauskramen müssen.

ALIX.1C mit SATA zu 44 Pin IDE Konverter und 2,5″ SATA-HDD

Da ich mich alleine in meinem privaten Heimnetz befinde, habe ich auf eine Transportverschlüsselung für FTP verzichtet. Nachdem ich meine MP3-Sammlung also via FTP auf dem Server transferiert habe, musste ich feststellen, dass beim Versuch die MP3s via FTP zu lesen und wieder auf ein Endgerät zu kopieren, der FTP-Client bei einigen Dateien Fehlermeldungen ausgab. Offensichtlich sind bei dem Transfer der Dateien auf den FTP-Server bei den betroffenen Dateien einige Bits gekippt. Erst nachdem ich auf dem FTP-Server die Sammlung gelöscht und anschließend die Dateien statt via FTP mit scp erneut auf den Server transferiert habe, funktionierten sie auch alle ausnahmslos. Die effektive Transferrate bei scp ist allerdings etwas geringer als bei FTP, sodass der Datei-Transfer auch etwas länger dauert, aber das macht nichts.
Für den eigentlichen Streaming-Audio-Server hatte ich mir zwei Software-Lösungen ausgesucht.: Den Icecast, welcher von Internetradios gern für das Streamen verwendet wird, und die Media-Streaming-Weboberfläche Ampache.

  • Ampache: Ampache ist ein Kofferwort aus Amplifire und dem bekannten Web-Server Apache. Mit Ampache kann man seine Musik-Bibliothek verwalten, ähnlich wie mit iTunes und bietet verschiedene Berechtigungsstufen. Es ist aber auch möglich, eine Playliste als reinen HTTP-Stream in einem Netzwerk zur Verfügung zu stellen. Von den Entwicklern wird nur Linux und FreeBSD unterstützt. Unter FreeBSD habe ich Ampache nicht zum Laufen bekommen, sondern leider nur unter einem Debian 10 Buster, was schon unter die Kategorie old-stable fällt. Ich hatte mir schon gedacht, dass die 500 Megahertz und 256 MiB RAM der Alix zu wenig sind für Webserver, PHP und SQL-Datenbank sind. Die ganze Implementation ist zwar nicht sehr schnell, aber es funktioniert wie es soll. Problematisch bei der begrenzten Rechenleistung wird es aber mit ffmpeg. Bei einer MP3-Datei mit 320 kbps und einer Spielzeit von zwei Stunden hat sich dann der ffmpeg-Enkoder verschluckt und der Prozessor lief am Limit. Konnte Ampache dann wieder andere, kleinere MP3-Dateien mit ffmpeg verarbeitenund abspielen, sah es so aus, dass von den großen MP3s noch ffmpeg-Zombieprozesse übrig blieben, die es zu killen galt. Für das Alix-System dann doch keine so zufriedenstellende Lösung.
  • Der Icecast-Server ist prinzipiell so ausgelegt, dass er aus einer Audioquelle an der Soundkarte einen HTTP-Livestream ins Netz stellt. Icecast kann aber auch von Audio-Dateien einen Stream erzeugen. Dafür ist eine Textdatei nötig, die als Playliste fungiert. Um sich spontan eine Liste zusammen zustellen ist dies aber doch etwas umständlich. Da auch Icecast sich ffmpeg bedient, wird das auch hier wieder der Bottleneck bei großen Audio-Dateien sein, auch wenn Datenbank und PHP nicht nötig sind.

Da ich auf meinen Desktop-Computern relativ kleine und schlanke Medienplayer mit einer einfachen Listenfunktionalität benutze, die Drag-and-drop fähig sind, wollte ich mal ausprobieren, wie diese damit klarkommen, wenn sie direkt auf die Dateien von einem gemounteten FTP-Share zugreifen sollen. Sowohl der ältere Cog als auch der moderne IINA laden alle Dateien immer vollständig. Sind es viele auf einmal wie zum Beispiel ein Ordner mit 200 Stück, sind die Player je nach Menge zu Anfangs immer etwas ausgelastet. Der Vorteil: alle ID3-Tags und weitere Meta-Daten wie Album-Cover sind verfügbar. Der Nachteil ist, dass das Hörvergnügen zu Anfangs kurze Startschwierigkeiten haben kann.
Der VLC Media Player verhält sich da schon ganz anders. Bei dem Lesen der Dateien von einem FTP-Share wendet dieser tatsächlich das Streaming-Prinzip an. Das heißt, dass er kontinuierlich immer nur das benötigte Stück der Audio-Datei lädt. Damit werden die langen Ladezeiten eliminiert. Die Nachteile sind aber, dass er erstens die Meta-Daten von den Dateien nicht lädt, zweitens kommt der VLC überhaupt nicht damit klar, wenn die Dateinamen sich mit Zeichen aus der aktuellen UTF-Implementation bedienen, die nicht mit den Buchstaben des ASCII-Codes übereinstimmen. Kurz gesagt: enthält der Dateiname beispielsweise einen Akzent über einem Vokal oder er enthält einen kyrillischen Buchstaben, kann der VLC Media Player die Datei nicht lesen.

Fazit:
Alles in allem ist die Lösung, dass ich mit einem lokalem Medienplayer auf einem meiner Endgeräte auf die Dateien via FTP zugreife, für mich zurzeit die am gangbarsten. Allerdings werde ich extra für den VLC Media Player jetzt nicht alle Dateinamen mit Buchstaben aus dem ASCII-Zeichensatz ersetzen.

Links:

be quit! Bastel- und Retro-Workstation

In meinem Blog-Artikel zu dem 5,25″ Diskettenlaufwerk habe ich es ja bereits angesprochen, dass ich im vergangenen Winter wegen der Corona-Pandemiemaßnahmen durch YouTube auch ein bisschen in das Retro-PC-Loch gefallen bin. Hauptmotivation war, dass ich wieder einen PC mit einem entsprechenden Laufwerk für meinen alten 5,25″ Disketten habe. Und wie ich auch bereits geschrieben habe, waren die Anschaffungskosten für ein funktionierendes Diskettenlaufwerk durch das Lehrgeld sehr hoch.
Ich bin bei meiner weiteren Recherche unter den YouTubern auf ein Video gestoßen, wo jemand mit einem Gigabyte Mainboard für die Intel Core 2 Duo Plattform erfolgreich unter Windows 10 ein Diskettenlaufwerk mit 1,2 MB High Density Disketten in Betrieb nehmen, die Medien auslesen und wieder beschreiben konnte. Das Mainboard, welches da konkret zum Einsatz gekommen war, ist das Gigabyte GA-965P-DS3 mit dem Intel P965 Chipsatz aus dem Jahr 2006.

Prinzipiell muss man sagen, dass die Mainboard-Chipsätze für die Prozessoren ab der Intel-Core- und ab etwa der AMD K9 Architektur nur noch ein 1 Laufwerk unterstützten statt wie bei den vorigen 2. Der gute Aspekt an der Sache ist aber, dass alle Chipsätze noch die 5,25″ Laufwerke für 360 Kilobyte Disketten mit Double Density ansprechen können. Das Betreiben von zwei 5,25″-, zwei 3,5″- oder je ein 5,25″ und ein 3,5″-Laufwerk geht nicht mehr. Außerdem haben die Mainboard-Herstelle ab den späten 1990er Jahre nur noch Floppy-Kabel beigelegt, mit denen nur eines der kleinen 3,5″ Laufwerke an den Mainboard-Controller angeschlossen werden konnten, obwohl dieser immer noch für zwei Laufwerke abwärtskompatibel war. Entsprechende Floppy-Kabel für den Anschluss der großen 5,25″ Laufwerke müssen also seitdem über den Gebrauchtmarkt oder Fachhandel bezogen werden. Bezüglich der Arbeit mit den 3,5″ Disketten (sowohl DD- als och HD-Medien) stellt dies kein Problem dar, da viele BIOSe und UEFIs nach wie vor externe Laufwerke über die USB-Schnittstelle unterstützen und auch von diesen aus booten können. So ist es in der Konsequenz unter bestimmten Einschränkungen immer noch möglich, ein MS-DOS, Digital Research DOS oder IBM PC-DOS von Diskette zu starten und auf ein internes Festspeichermedium zu installieren.

Die letzten Mainboards für Intel-Prozessoren, die noch einen Disketten-Controller besaßen, waren welche für die erste Intel Core i Generation (Nehalem-Architektur) mit den Prozessor-Sockeln LGA1156 und LGA1366. Die letzten Mainboards mit Chpsätzen, die noch IDE- und Disketten-Controller für AMD-Prozessoren besaßen, waren einige mit dem AM3+ Sockel bis in das Jahr 2014. Die Mainboards mit den genannten Sockeln würden für mich die Schnittmenge mit der maximal möglichen Leistung für den PC in Kombination eines noch verfügbaren Disketten- und IDE Festplatten-Controller bieten. Das Problem dabei ist aber, dass der Markt gebrauchte Komponenten, diese Mainboards zu vernünftigen Preisen erst einmal auch hergeben muss. – Wenn überhaupt! Und dann hat man im Zweifel erst einmal nur das Mainboard. Es muss dann noch in eine passende CPU mit Kühlkörper und Lüfter, sowie Arbeitsspeicher investiert werden. Am Ende kann dann die Summe der Komponenten für das PC-System wieder recht schnell in die Höhe gehen.

Nach meiner noch anfänglichen YouTube-Recherche hatte ich aber schon direkt Glück gehabt und bin bei eBay auf ein Gebot des Gigabyte GA-965P-DS3 Mainboards für 12 Euro zuzüglich Versand gestoßen. Das Mainboard selber war noch mit ATX I/O-Blende vollständig, inklusive 4 mal 1 GiB DDR2-RAM, Intel Core 2 Duo E6600 Prozessor mit Original Lüfter und einer ATI Radeon HD4530 Grafikkarte. Leider hat aber die ATI-Grafikkarte entweder die Lagerung beim Vorbesitzer oder den Transport nicht überstanden. Dennoch sind die 15 Euro für das Mainboard/CPU/RAM-Bundle ein schnelles und gutes Schnäppchen gewesen.

Prinzipiell ist es auch gut, dass das Mainboard neben dem Disketten-Controller auch noch einen IDE-Controller mit einem 39 Pin Anschluss für 2 IDE-Laufwerke hat. Der Grund ist, dass ich tatsächlich noch die eine oder andere IDE-Festplatte habe, sowie noch einen IDE zu CompactFlash-Karten-Konverter. Mit diesem Konverter ist es mir möglich, ein System auf eine CompactFlash-Karte anstatt auf einer Festplatte oder SSD zu installieren. Sei es für die Retro Workstation selber oder für ein anderes Embedded-System. In Bezug auf Speicherkapazität, Handling und Performance sind CompactFlash-Karten ideal für native Anwendungen unter einem originalen (MS-) DOS System.

Ein Arbeitskollege hatte für mich noch einen USB 3.0 Controller für PCI-Express überlassen. Leider unterstützt dieser Controller nur die USB 3.1 Gen. 1 Spezifikation, bei der noch kein USB Attached SCSI Protokoll (kurz UASP) integriert wurde. Sowohl die verbaute 500 GB Festplatte und der DVD-RAM Brenner sind auch gebrauchte Komponenten.

Als Neuware habe ich mir das be quiet! SILENT BASE 600 Window Orange Tower-Gehäuse, das be quiet! Pure Power 11 400W CM PC-Netzteil und 2 SATA Kabel zum Anschluss für Laufwerke gekauft. Das be quiet! SILENT BASE 600 Window Gehäuse zeichnet sich dadurch aus, dass es wie der Name es schon verrät, an der linken Seite ein großes Fenster besitzt, durch den ein Blick ins Innere des PCs möglich ist. Die zwei weiteren Highlights sind zum einen, dass es breit genug ist, um von der Vorderfront aus gesehen an der rechten Seite Platz für das Kabelmanagement bietet, sodass diese nicht die Luftströme zum Kühlen der Hardware im Gehäuseinneren stören. Zum zweiten besitzt es an der Vorderseite eine Art Tür, hinter der man die 5,25″ Laufwerksschächte verbergen kann und sie so auch noch ein wenig vor Staub geschützt werden. Sehr bemerkenswertes Detail: Diese Tür lässt sich vom Gehäuse lösen und man hat die Möglichkeit, die Scharniere so zu montieren, dass die Tür sich je nach Bedarf nach links oder nach rechts öffnen lässt. So viel Flexibilität hatte ich selbst bei meinem hochwertigen ThermalTake Xaser III V1000 Gehäuse nicht gehabt. Auch sind die Filtersiebe zum Schutz vor Staub viel größer und in der Handbarkeit besser designt als beim früheren Thermaltake Xaser III Gehäuse. Als Netzteil habe ich mich für ein bis zu 400 Watt starkes der Pure Power 11 Reihe entschieden, da es modular ist und so für ein noch besseres Kabelmanagement geeignet ist. Kabel die nicht benötigt werden, müssen auch erst gar nicht eingebaut werden. Dies verhindert im Gegensatz zu den Standard-Netzteilen, dass die ungenutzten Stromschienen nicht zusammengebunden im PC-Gehäuse verstaut werden müssen, den Kühlluftstrom nicht behindern können und das Gehäuse sehr aufgeräumt bleibt.

Um die Ergonomie bei Umbauten an der Workstation selber und bei der Reinigung des Wohnzimmers zu erhöhen, habe ich mir als Rollenuntersatz ein einfaches Rollbrett mit gummierten Rädern gekauft, wie es für Wohnungsumzüge oder dem ständigen Transport von Kisten gedacht ist. Es ergeben sich mit diesem Rollbrett 3 positive Nebeneffekte: die Workstation muss nicht angehoben werden, sondern braucht zum gewünschten Platz im Raum nur gerollt zu werden. Dies schont den Rücken. Das Rollenbrett erhöht die Workstation etwas vom Fußboden, sodass man sich bei Umbauarbeiten an ihr nicht so tief bücken muss. Und zum Dritten erhöht sich der Abstand zwischen dem Fußboden und dem Lufteinsaugfilter an der Unterseite der Workstation und des Netzteils, sodass der Filter nicht so schnell sich mit Staub und Wollmäusen zusetzt.

Als Hauptbetriebssysteme kommen auf einer 500 GB SATA Festplatte ein Debian-Linux und Windows XP zum Einsatz. Windows XP deswegen, weil einige Windows-Spiele, sowie das von mir vor etwa 17 Jahren gekaufte Ahead Nero 6 Burning ROM nicht mehr auf Windows 7 lauffähig sind. Nero 6 Burning ROM ist aber meine flexibelste Anwendung in Bezug auf Erstellung und Verarbeitung von CD/DVD-Images.

Hier nochmal alle technischen Merkmale aufgelistet.:

MainboardGigabyte GA-965P-DS3
CPUIntel Core 2 Duo E6600
Taktfrequenz2,4 GHz
Level 2 Cache4 MiB
RAM4 GiB PC2-6400 DD2 DIMM
GrafikkartenVideo Quadro K620
Grafikspeicher2 GiB DDR3
HDDWestern Digital WD5001AALS Caviar Black 500GB SATA
DVD-LaufwerkPLDS DVD-RW/DVD-RAM Recorder DH16ACSH
SoundkarteRealtek ALC 888 8 Channel Audio Codec (onboard)
NetzwerkkarteMarvel 8056 Gigabit LAN Controller (onboard)
Diskettenlaufwerk5,25″ 1,2 MB HP Epson SD-680
USB 3 ControllerUSB 3 Controller ASMedia ASM1042, PCIe 1x, 2 x USB A
Netzteilbe quiet! Pure Power 11 400W CM PC-Netzteil
Gehäusebe quiet! SILENT BASE 600 Window Orange Tower-Gehäuse
Merkmale der Workstation

Neben den Haupteinsatzzwecken der Workstation als Windows XP Retro-PC und Emulationsplattform unter Linux, hat sich die Flexibilität der Hardware-Möglichkeiten schon für einen anderen Zweck bewährt. Spätesten seit der Version 6.7 von OpenBSD ist es nicht mehr möglich, dass mein Alix 1C Embedded-Computer von dem Installations-Image auf einem USB-Stick bootet. Hier kann ich jetzt zum Glück mit dem USB-Stick als Installationsquelle und dem Zielmedium – also CompactFlash-Karte oder 2,5 “ IDE-Festplatte – auf die Workstation ausweichen. Es genügt lediglich, dass ich mit ihr vom Installationsmedium aus booten kann, das System auf das Zielmedium übertragen wird und noch vor dem ersten Boot-Vorgang der Zieldatenträger wieder aus der Workstation in die Alix zurückgebaut wird.

Link zur eigenen Foto-Galerie der be quit! Bastel- und Retro-Workstation

Weitere Links:

Emulation einer PDP-11/70 unter SIMH mit Unix Time-Sharing System Seventh Edition (V7)

Vor knapp einem Jahr habe ich den Beitrag über den Sanos PDP-11 Simulator mit dem Time-Sharing System Seventh Edition verfasst. Bei dem Sanos PDP-11 Simulator handelte es sich nur um eine Live CD-Demo, die man in das CD/DVD-Laufwerk des eigenen PCs – oder als ISO-Datei in eine virtuelle Maschine – einlegt und von ihr startet. Technisch wird dabei wahrscheinlich ein sehr keines Linux-Live System gebootet, welches direkt den SIMH-Emulator mit der nachgebildeten PDP-11 startet. Für den allerersten Eindruck von dem Time-Sharing System V7 ist dieser ganz in Ordnung, aber außer ein paar Verzeichnisse erstellen, Dateien manipulieren oder ein kleines C-Programm schreiben, kompilieren und Ausführen wird da nicht mehr möglich sein. Dieser Emulator ist nämlich auf mehreren Ebenen ziemlich beschränkt. Dies fängt schon bei der emulierten Hardware an.: Der nachgebildeten PDP-11 wird nur verhältnismäßig wenig Speicher gestellt. – 512 KiB. Die späteren Modelle konnten bis zu 4 MiB RAM adressieren. Außerdem ist das Time-Sharing System V7 nur auf einem emulierten DEC RL02 Wechselplattenlaufwerk vorinstalliert, welches eine formatierte Gesamtkapazität von nur 10 Megabyte hat. Aus der recht wenig vorhandenen Festspeicherkapazität resultiert natürlich auch der geringe Umfang an Software und Programmquellen des Time-Sharing Systems. So fehlen bestimmt eine Reihe an Kommandos, sowie der Quellcode des Kernels. Da der Sanos PDP-11 Simulator am PC von einer CD – also einem Read-only-Medium gestartet wird, kann der veränderte Zustand nicht gespeichert werden, beziehungsweise es gibt keine Möglichkeit ein beschreibbares Medium an dem Emulator zu koppeln. Somit gehen alle Änderungen in der ausgeführten Emulation nach dem Neustart des PCs verloren. – Das ist schade!

Nun ist klar, dass mit dem SIMH prinzipiell auch eine individuelle Hardware-Konfiguration der PDP-11 möglich ist. So bin ich neulich beim Durchstöbern des ‚Computer History Wiki!‘ auf eine Installationsanleitung vom Time-Sharing System V7 auf eine DEC PDP-11/70 gestoßen. Diese emulierte PDP-11/70 ist mit 2 MiB RAM konfiguriert und besitzt als Systemfestplatte ein DEC RP06 Disk Drive mit 176 Megabyte Speicherkapazität, deren Plattenstapel im Original auch entfernbar, beziehungsweise wechselbar ist. Hinzu kommt noch ein DEC TU10 Magnetband-Laufwerk. Dies ist nötig, da die Installationsquelle von einem 1/2″ Magnetband kommt. Abgerundet wird dies durch ein DC11 Serial Interface für erst einmal bis zu 4 seriellen Terminals, damit die Installation auch echt Multiuser-fähig wird. Allerdings kann der Kernel das DC11-Interface nicht von Haus aus ansprechen, sondern das System muss nach vollendeter Installation erst neu konfiguriert und ein neuer Kernel erstellt werden.
Bei dem Time-Sharing System V7 kommt das Installations-Magnetband zum Einsatz, welches Keith Bostic von der Unix Heritage Society zur Verfügung gestellt hat. Ein Gimmick dieser Installationsquelle ist der vorhandene Account ‚dmr‘ des inzwischen 2011 verstorbenen Unix-Entwicklers Dennis MacAlistair Ritchie.

Unix Time-Sharing System V7
Research Unix Version 7 from 1979

Was mit dem Ende der Installation als Erstes auffällt, ist, dass es keine Befehle für den Halt des Systems, Shutdown und Reboot gibt. Man ist eher angehalten, das Dateisystem zu pflegen, in dem vor dem Abschalten oder Reset der Hardware der Befehl sync ausgeführt wird, damit die Superblöcke der Dateisysteme auf die Datenträger geschrieben werden. Auch wird stattdessen empfohlen, wenigstens einmal täglich jedes Laufwerk oder auf alle Fälle nach jedem Systemabsturz alle Dateisysteme mit den Kommandos icheck und dcheck auf ihre Konsistenz zu prüfen.
Ein Programm oder einen expliziten Befehl zum Anlegen eines weiteren Benutzers existierte unter dem Time-Sharing System V7 noch überhaupt nicht. Stattdessen heißt es Dateien editieren, Verzeichnisse erstellen, die Verzeichnisse den entsprechenden Eigentümern zuordnen und Zugriffsrechte erteilen. – Oder man schreibt sich am Ende selber ein Programm zum Anlegen der Benutzer als Shellscript. Wie bereits erwähnt, enthält diese Unix-Version den Login-Namen ‚dmr‘, der sein Heimatverzeichnis unterhalb von /usr besitzt. Diese Anordnung der Benutzerverzeichnisse war dann noch sehr lange gängig. Der Ordnung halber habe ich für meinen eingeschränkten Account erst das Verzeichnis /home angelegt, in dessen mein Heimatverzeichnis untergeordnet wird, so wie es inzwischen bei den modernen BSDs und unter Linux üblich ist.
Für das Bearbeiten von Dateien musste man sich Ende der 1970er Jahre immer noch mit dem Zeilen-orientierten Texteditor ed zufriedengeben. Der vi war zu diesem Zeitpunkt zwar schon geboren, fristete aber noch derzeit unter BSD sein Nischendasein, gab es doch schon für die PDP-11 neben den Druckerterminals bereits das eine oder andere Videoterminal mit einem Röhrenbildschirm. Und bedingt durch die Druckerterminals gab es auch sonst noch keinen Komfort auf der Bourne Shell.

Für den normalen Multiuser-Betrieb habe ich den SIMH mit der emulierten PDP-11 in einer GNU Screen-Session gestartet. Danach die Sitzung trennen und sich mit Telnet auf einer der seriellen TTY-Schnittstellen anmelden. Im Gegensatz zum Terminalfenster unter Screen bleiben so die Rollback-Zeilen des Terminals erhalten. – Was nötig ist, denn die Ausgabe der Shell unter Unix V7 findet quasi auf einem emulierten Druckerterminal statt, welches nichts von einer Seitenweisen Darstellung versteht.

Anleitung Installation und Einrichtung im eigenem DokuWiki

Links:

mass:werk Lochkartengenerator

Im Herbst 2012 hat der österreichische Werbegrafiker Norbert Landsteiner eine Oberfläche für die Google Web-Suche gebaut, die dem Internetnutzer den Ablauf der elektronischen Datenverarbeitung der 1960er Jahre vor Augen führt. So wird bei dem Kunst-Projekt Google60 – dass sich an der API Rest von Google bedient – Dateneingabe des Suchbegriffs, Suchvorgang durch das Laden und Ausführen des entsprechendem Programms von einem anderen Speichermedium und die Ausgabe der Ergebnisse Schritt für Schritt dargestellt. Im konkreten heißt das: Für einen Suchbegriffe wird erst einmal mit einem Lochkartenstanzer eine virtuelle Lochkarte erstellt. Der Lochkartenstanzer ist dabei optisch ein wenig dem Lochkartenstanzer 029 von IBM nachempfunden. Die virtuelle Tastatur ist dabei auch der Teletype Modell 33 optisch sehr ähnlich. Nach der Eingabe eines Suchbegriffs wird ein Bandlaufwerk gestartet, das den Verarbeitungsprozess symbolisieren soll. Tatsächlich findet zu dieser Zeit die Suchabfrage durch Google statt. Am Ende werden die ersten acht Suchergebnisse auf virtuellem Papier mit einer Kugelkopf-Schreibmaschine ausgegeben. Die entdeckten Links werden wiederum mit einem Tastendruck angesurft. Das Ganze ist natürlich auch mit der passenden Geräuschuntermalung gepaart, was Dem noch seinen eigenen Charme zusätzlich verleiht.

Google60-Suche
Google60-Suche von mass:werk

Allerdings hat die ganze Suchabfrage einen entscheidenden Schönheitsfehler: Sie funktioniert nicht mehr. Google hat nämlich im Jahr 2016 die API Rest deaktiviert, sodass die Google-Suche durch andere Internetseiten nicht mehr so einfach möglich ist. So gesehen wäre dieser Blog-Beitrag zu dem Google60 Kunstprojekt etwas sehr spät. Aber nur weil Google diese API bereits deaktiviert hat, heißt das nicht, dass man sich bei der aus heutiger Sicht gemächlichen Art der elektronischen Datenverarbeitung nicht weiterhin zurücklehnen kann. Google60 war nicht der effizienteste Weg, um die weltweit bedeutendste Suchmaschine zu nutzen, aber er gehörte wahrscheinlich zu den reizvollsten.

Der eigentliche Punkt aber ist, warum ich diesen Blog-Beitrag darüber noch verfasse, dass mit dem Google60 Kunstprojekt Norbert Landsteiner einen Lochkartengenerator mit auf dem Weg gegeben hat. Dieser funktioniert auch noch heute nach der Deaktivierung der Google Rest API und es ist möglich, ohne der Schnittstelle zur Google-Suche sich einfach selber kostenlos persönliche Lochkarten zu erstellen.
Bei dem Lochkartenformat hat sich das Kunstprojekt für das von IBM patentierte, mit 80 Spalten und rechteckigen Löchern entschieden, welches auch am häufigsten Verwendung fand. Aber statt nur einer einfach mit den Digits bedruckten Lochkarte gibt es zusaätzlich noch Kartentypen für die Programmiersprachen FORTRAN Statement, COBOL, DATA und SYMBOLIC. – Sogar ein Format für den modernen Python-Programmierer ist dabei. Am Ende kann man seine Lochkarte, oder gleich den ganzen Batch-Stapel mit dem eigenen Python- oder COBOL-Programm downloaden. Die erstellten Lochkarten werden dabei in das verlustfreie PNG-Bilddateiformat gespeichert, bei denen für die als „1“ gewerteten Löscher der Farbkanal für die Transparenz zum Einsatz kommt. Die ganze Sache wird am Ende schließlich noch damit abgerundet, dass wenn schon Lochkarten generiert und gedownloadet werden können, es dann aber auch wieder einen Rückkanal gibt und die erstellten Lochkarten bei mass:werk zum Lesen sowie Verarbeiten von Daten und Programme hochladbar sind.

Visiten-Punchcard Sommteck
IBM 80-Spalten-Format Lochkarte mit eigener Adresse

Links:

Ein neues Diskettenlaufwerk für meine alten 5,25″ Disketten

Bedingt durch die Corona-Pandemie-Maßnahmen im vergangenen Herbst und Winter gab es auch für mich außerhalb der eigenen vier Wände kaum bis keine Möglichkeiten für Freizeitaktivitäten. Und so bin auch ich wie viele andere innerhalb meiner Echo-Kammer in ein Loch gefallen, wo man sich allein mit einem Thema vielleicht wieder oder auch neu beschäftigt, weil man – und das war auch bei mir der Fall – aus Langeweile in YouTube bereits versunken war. Schließlich hatte ich mir im Juli letzten Jahres wieder einen Festnetz-Internet-Anschluss mit unbegrenztem Breitbanddaten-Volumen für 2 Jahre gebucht. Bei mir war es dann das Thema Retro-Computing bei den PCs die mich seit Anfang der 1990er Jahre begleiten. Das konkrete Vehikel war bei mir dabei, dass ich eben noch viele der 5,25″ Disketten für die DOS-PCs aus den frühen 1990er noch besaß, obwohl ich bereits vor etwa 13 Jahren den – und viele Jahre zuletzt meinen – DOS-PC als Konfiguration mit 80486 Prozessor – und eben bereits vorhandenen 5,25″ Laufwerke für High Density Medien, beim Elektronik-Schrott entsorgt hatte. Ich wollte es eben noch einmal wissen, ob die Disketten noch alle funktionieren. Und so habe ich mir eben wieder einen PC im (Midi-) Tower-Gehäuse selber zusammen gebaut. Allerdings keinen mit einem so alten Prozessor. Als Zentraleinheit habe ich mich für ein Intel Core 2 Duo System auf einem Mainboard mit PCI-Express Bus, Serial-ATA, einem IDE-Port und einem Floppy-Controller für eben ein 5,25″ HD Laufwerk entschieden. Motivation für dieses Retro-System war aber nicht allein die Möglichkeit das Lesen und Beschreiben von 5,25″ Disketten, sondern ich wollte auch andere Anwendungen mit dem System abdecken. Welches das im Konkreten noch sind und welche Hardware-Komponenten ich neben dem Disketten-Laufwerk noch verwendet habe, werde ich sicherlich noch einmal in einem eigenen Blog-Artikel aufführen.

In den 1990er Jahren, als ich über die mehreren Rechnergenerationen hinweg mit MS-DOS und Disketten hantiert habe, empfand ich die 3,5″ Disketten deutlich praktischer als die 5,25″ Disketten. Zum einen waren sie von den physischen Maßen kleiner, boten sowohl in der Varianten mit doppelter als auch mit hoher Datendichte etwas mehr Speicherkapazität und das Gehäuse war deutlich stabiler als das der 5,25″ Disketten, sodass die eigentliche Magnetscheibe besser vor Beschädigungen geschützt war. Selbst die Aussparung für den Zugang der Schreib-/Leseköpfe war durch eine Schutzblende außerhalb des Laufwerkes prinzipiell verdeckt.
Auf der anderen Seite haben die 5,25″ Disketten gegenüber den kleineren Formaten fast noch etwas ästhetische, wie es sonst noch – im Gegensatz zu den Musikkompaktkassetten oder den Audio-CDs – der Schallplatten nachgesagt wird. Schallplatten sind als akustische Informationsträger sehr groß und müssen vor Schmutz und unnötigen, mechanischen Beanspruchungen geschützt werden. Deshalb ist die Schallplatte immer noch in einem Inlay, bevor sie in eine Hülle aus Karton verpackt wird. Und genauso wird eine 5,25″ Diskette – und im übrigen auch jene im noch ältere 8″-Format – immer noch einzeln in einer Papier- oder Kartontasche aufbewahrt, um sie vor Schmutz zu schützen, da das flexible Diskettenkunststoffgehäuse schließlich noch die Aussparungen für die Laufwerksköpfe sowie ein Loch zum Lesen des Sektoren-Index besitzt. Erst mit ihrer Tasche wird eine Diskette mit weiteren in einer Diskettenbox aufbewahrt. Dadurch, dass das Medium nun aufwendig wie eine Schallplatte verpackt, aufbewahrt und gelagert wird, gepaart mit der Eigenschaft, dass dieses Verpackungsmaterial durch die physische Größe des Mediums auch eine große Oberfläche besitzt, kann dieses Verpackungsmaterial mit Informationen über den auf der Diskette gespeicherten Daten bedruckt werden. Wurde bei Schallplatten das Inlay gerne dazu genutzt, die Texte der Lieder aufzudrucken, bietet die Diskettentasche auch Platz für textuelle Informationen, ein Logo oder Bilder. Dies macht auch eine optische Zuordnung von Verpackung und Medium leichter.

5,25" HD FDD
Hewlett Packard Epson SD-680 Diskettenlaufwerk

Der schwierige Teil bei der Sache ist aber nun inzwischen die Beschaffung eines Diskettenlaufwerkes. Bekommt man derzeit über Onlineversandhändler die sich auf IT und Elektronik spezialisiert haben, noch externe Laufwerke für die kleineren 3,5″ Disketten, welche über die USB-Schnittstelle mit dem Computer verbunden werden, so werden keine Laufwerke mehr für den Einbau in einen Computer herstellt. Irgendwann wurde die Produktion interner 3,5″ Laufwerke eingestellt. Ich würde vermuten, dass die Produktion von 5,25″ Laufwerken bereits spätestens Mitte der 1990er Jahre eingestellt wurde. Bekommt man also noch einigermaßen gut gepflegte 3,5″ Laufwerke für relativ wenig Geld, ist das Angebot an 5,25″ Laufwerken schon sehr begrenzt und auch durchweg mit hohen Preisen versehen. Man muss dann auch erst einmal unterscheiden, für welchen Computer das Laufwerk produziert ist. So tauchen in den Angeboten auf eBay immer wieder welche auf, die zum Beispiel für den Commodore C64 oder ähnlichen Computern aus der 8-Bit-Zeit konzipiert und produziert wurden. Auf alle Fälle weisen ausschließlich alle auf den Online-Auktionsplattformen angebotenen Laufwerke aufgrund ihres Alters einige bis starke Gebrauchsspuren auf. Einige werden direkt mit dem Vermerk zur Auktion angeboten, dass sie bereits defekt sind. Viele andere Anbieter geben aber an, dass das Laufwerk bei Benutzung bis zuletzt noch funktioniert hat. Man muss aber skeptisch sein, dass dies noch der Fall ist, wenn es mitsamt dem PC, in dem es noch eingebaut ist oder war, dann aber 15 bis 20 Jahre auf dem Speicher eingelagert wurde.
Bei meinem ersten Versuch habe ich für etwa 76 Euro ein Panasonic JU-475-4 erstanden. Das Laufwerk wirkt etwas verschmutzt und die beige Kunststofffront ist durch die Sonneneinstrahlung schon etwas vergilbt, funktioniert aber auch noch prinzipiell. – Nur dann plötzlich nicht mehr ganz. Wenn ich Glück habe, reicht es wahrscheinlich, dass die Spindel für das Justieren der Schreib-/Leseköpfe gereinigt und wieder etwas eingefettet werden muss. Auch wäre es ein Versuch, die Schreib-/Leseköpfe etwas zu reinigen.
Bei meinem zweiten Versuch konnte ich für 81 Euro ein Epson SD-680 Laufwerk ergattern können. Entgegen der Angabe, dass es sich dabei um ein „neues“ Gerät handelt, war es aber nicht mehr original verschweißt und in keiner Originalverpackung. Es wies zu meinem großen Glück keinerlei Verschmutzungen auf und auch die Kunststofffront war keiner Sonneneinstrahlung ausgesetzt. Ich denke, dass es sicherlich mal ausprobiert wurde, aber einen Einsatz schien es nicht erfahren zu haben. Bemerkenswert für mich war auch, dass noch die Disketten-große Kartoneinlage gesteckt war, um die Köpfe für Transport sowie Lagerung zu fixieren und schonen. Was mich aber irritierte, auf dem Typenetikett prangt ganz groß der Hewlett Packard Schriftzug. Ich denke aber, dass Epson in Kooperation für PCs von und für HP die Laufwerke produziert hat. Das wichtigste aber: es funktioniert tadellos.

Einen Treppenwitz gibt es bei der Geschichte schon. Vor 25 Jahren habe ich die Daten und Programme aller bis dahin erworbenen 5,25″ Disketten auf die 3,5″ Disketten kopiert. Zeitgleich hatte ich aber genau zu diesem Zeitpunkt noch ein 10er-Päckchen neue 5,25″ Floppys von BASF für 10 Mark gekauft und habe sie mit Dokumenten beschrieben. Von allen Disketten seit 1991 bis dahin funktionieren auch noch alle und lassen sich auslesen. – Bis auf eine! Auf ihr habe ich noch um etwa 1998/1999 meine eher doch kläglichen Programmierversuche mit MS QBasic gespeichert. Nur habe ich im Laufe der Zeit genau eben die Dateien dieser Diskette nie auf ein anderes Speichermedium hinübergerettet. – Aber vielleicht war das auch gut so. Stichwort Spaghetticode!

Nachdem ich im vergangenem Winter unabhängig davon aber ungefähr zeitgleich meine Route für den Rückweg von einem Supermarkt durch ein Wohngebiet geändert habe, bin ich an einen öffentlichen Bücherschrank vorbeigekommen. Bereits auf Augenhöhe konnte ich dann aus 2 bis 3 Meter Entfernung den Titel eines IT-Fachbuchs des Markt & Technik Verlags mit dem Thema der Programmierung von „Grafik mit Turbo Pascal – für IBM-PCs und Kompatible“ entdecken. Die von Borland entwickelte Programmiersprache Turbo Pascal gehört inzwischen mit der einschließlich letzten veröffentlichten Version 7 aus dem Jahr 1993 zur Abandomware. Das vorgefundene und 397 Seiten starke Buch das vom Markt & Technik Verlag aus dem Jahr 1988 stammt, bezieht sich auf die zu der Zeit aktuellen Turbo Pascal Versionen 3 und 4. Das Schöne an dem Fachbuch ist, dass der Verlag noch 2 Disketten mit darauf gespeicherten Übungs- und Programmbeispielen dem Buch beigelegt hat. Da nun die Publikation aus dem 1988 stammt, handelt es sich bei den Disketten um das Mini-Format für 5,25″ breite Diskettenlaufwerke. Konkret handelt es sich bei dem Diskettenformat um das zweiseitig beschreibbare, mit 40 Spuren und doppelter Datendichte (DS/DD 48tpi), sodass dieses auf eine formatierte Gesamtkapazität von 360 Kilobyte kommt. Das waren zu der Zeit für IBM-PCs und kompatible Computer gängige Wechseldatenträger und auch das Diskettenformat, mit der Programme und Spiele über den Fachhandel vertrieben wurden. – Und da für alle Übungs- und Programmbeispiele zu diesem Buch eine Diskette mit 360 KB nicht ausreichte, hat der Verlag eben diese auf 2 Disketten mitgegeben. Außerdem wie bereits erwähnt, waren die 5,25″ Disketten auch noch etwas schlanker als die später üblichen 3,5″ Disketten, weshalb sie in Zeitschriften und Bücher beigelegt nicht ganz so herausstachen und den Einband noch etwas flach hielten.

Ein besonderes Lob geht dabei an den oder vielleicht auch die Vorbesitzer, die das Buch einschließlich der beiden Disketten sehr pfleglich behandelt haben und es trotz seines Alters von 33 Jahren sich in einem guten Zustand befindet. Vielleicht stand das Buch aber auch bereits kurz nach dem Kauf die meiste Zeit nur im Bücherschrank, weil der Besitzer es doch nicht nutzte. Auch beide Disketten funktionieren noch und lassen sich auslesen, was mich bezüglich des Alters doch wunderte, obwohl zumindest alle Medien durch die Unterbringung im öffentlichen Bücherschrank eine Winter-Saison bei Nässe und Minusgrade ausgesetzt waren.

Links: