Os

Entwicklungen im Betriebssystem selbst

RISC OS 5 User Guide endlich als PDF-Download

RISC OS Open Ltd. hat die lang erwartete Verfügbarkeit des “RISC OS 5 User Guide” als PDF-Download bekanntgegeben. Download über diese Seite, für die aktuelle Version passend zu RISC OS 5.28 tut auch dieser Direktlink.

Bisher wurde der freie PDF-Download durch ein Font-Lizenzproblem torpediert (die Lizenz erlaubte nur Publikation durch den Lizenznehmer selbst, also ROOL, und auch nur in Print, aber nicht Online), aber eine Spende von CJE Micro’s für ein Lizenzupgrade hat diese Problematik jetzt entschärft. Also los, rund 600 Seiten warten auf den geneigten Leser.

Auch physische Varianten, also in der Form “Dead Tree Publishing” sind erhältlich. In Post-Brexit-Zeiten dank des unseligen EU-Protektionismus nun mit einem erheblichen Europa-Aufschlag für die Kontinent-Bewohner behaftet.

RISC OS Direct für Raspberry Pi 4 und 400

Andrew Rawnsley hat verkündet, dass endlich die RISC OS Direct-Distribution auch “out of the box” auf den Raspberry Pi-Modellen 4 und 400 läuft. Bisher war das RISC OS dieser Distribution auf dem Stand Februar 2020, jetzt dreht darin RISC OS 5.28 in der für den Pi 400 angepassten Version.

Hier geht es zum Download. Welcher von den drei Links? Da kann man nur raten…

In letzter Zeit gibt es ja fast eine Art Distributionitis für RISC OS, neben RISC OS Direct gibt es noch die “Easy Starter”-Bundles für RPCEmu und natürlich die angekündigte Cloverleaf RISC OS-Distribution. Fast ein bisserl wie bei Linux. Nur bei der regelmäßigen Aktualisierung hapert es gewaltig – die Pi 4-kompatible RISC OS-Version ist ja nun schon ein paar Monate alt, und was viel schlimmer ist, die Webseite von RISC OS Direct schwieg sich dezent darüber aus, dass das Image nicht für den Pi 4 taugt. Gerade bei einer Distribution, die eher “normale” Nutzer im Visier hat als Entwickler-Frickler, ist das irgendwas zwischen peinlich und schädlich.

RISC OS 5.28 auf dem Raspberry Pi 400

Es ist schon fast ein Jahr her, als ich über den aktuellen Stand von RISC OS 5.xx auf dem Raspberry Pi 4 berichtet hatte. Damals noch sehr rudimentär ausgeprägt, zwar lauffähig aber wegen unvollständiger USB-Unterstützung fingen die Probleme schon bei der Stromversorgung an.

Die meisten der unvollständigen Dinge wurden schon mit RISC OS 5.28 gelöst – USB tut nun ohne Tricks, d.h. man kann USB-C wie gedacht für die Stromversorgung nutzen und die “normalen” USB-Ports eben für USB. Auch das Ethernet ist inzwischen stabil und auch recht schnell, und die 4 GiB-Variante funktioniert nun auch problemlos. Selbst die 8 GiB-Variante tut nun, aufgrund seiner 32bit-Natur kann RISC OS aber in Ermangelung einer Unterstützung der Aarch32-“Large Physical Address Extension”-Technik nur 4 GiB nutzen. Fehlt also nur echte USB3-Unterstützung, aber da braucht es wohl das Großreinemachen im USB-Stack (also z.B. die Neuportierung des aktuellen BSD-Stacks, wie in diesem ROOL-Bounty skizziert).

Kurz nach dem Release von 5.28 kam dann die Raspberry Pi Foundation um die Ecke mit ihrer neuesten Kreation, dem Raspberry Pi 400. Erstmalig eine Abkehr des Konzepts “nackte Platine, der Rest findet sich”. Das hatte sich ja schon abgezeichnet, gibt es doch inzwischen ein “offizielles Netzteil”, ein “offizielles Gehäuse”, eine “offizielle Tastatur” und eine “offizielle Maus”. Wenn man das jetzt alles kombiniert und im Hinterkopf behält, warum seit der ersten Variante des Raspberry Pi es ein “Model A” und ein “Model B” gibt – fertig ist das neue Produkt “Raspberry Pi 400 Kit”. Man könnte es die “jüngste Hommage an die große Zeit der 8/16-Bit-Heimcomputer” nennen. Oder auch der 32bit-Heimcomputer, wenn man an den Acorn A3010 oder 3020 denkt.

Wer es nicht mitbekommen hat: der Pi 400 ist im Prinzip ein Pi 4 in der 4 GiB RAM-Variante in einem kompakten Tastaturgehäuse. Alle Anschlüsse befinden sich auf der Rückseite, der analoge Soundausgang ist weggefallen, sonst alles da – vom GPIO über die 2 microHDMI bis zum Ethernet. Und nur 3 statt 4 USB-Buchsen, weil die Tastatur ist ja schon integriert. Auch die microSD-Karte wird hinten eingesteckt, und endlich mal wieder mit einem vernünftigen Feder-Slot-Mechanismus wie es zuletzt beim RPi B+ zu finden war. Dank der intern verbauten Kühlbleche konnte man den Takt etwas höher ansetzen, 1,8 GHz gegenüber 1,5 GHz. Man kann den 400 in zwei Varianten kaufen, als nacktes Gerät oder als “Kit” inklusive gedrucktem Einsteiger-Handbuch, Netzteil, microSD-Karte mit vorinstalliertem Raspbian und microSD-SD-Adapter mit Raspberry Pi-Logo, microHDMI-Kabel und der bekannten himbeerrot-weißen USB-Maus. Verschiedene lokalisierte Varianten sind verfügbar, was bei einer integrierten Tastatur ja auch eine gute Idee ist. Ich habe mich für die DE-Variante entschieden.

RISC OS Open Ltd. hat kurz nach Weihnachten verkündet, dass es eine entsprechende Distribution von RISC OS Pi auf Basis eines leicht aktualisierten RISC OS 5.28 mit einem fancy pinboard backdrop zur Verfügung steht – und das auch über den offiziellen Raspberry Pi Imager. D.h. der RISC OS-Installationsvorgang kann über einen PC der Wahl über den Imager mit wenigen Clicks erfolgen. Das habe ich tatsächlich mal ausprobiert, und es funktioniert völlig problemlos. Profi-Tipp: Linux herunterfahren, Karte tauschen und wieder die Power-Taste drücken reicht nicht, vermutlich weil der Rechner nur in einer Art Standby-Modus ist. Man muss das Dingens kurz stromlos machen, dann wird die RISC OS-Karte klaglos akzeptiert.

Leider haben die fertigen Images den Makel, dass sie die Kapazität der microSD-Karte in keinster Weise ausnutzen können – es bleibt stets bei der vom Image vorgedachten Größe, im vorliegenden Fall knapp 2 GiB. RISC OS unterstützt noch immer keine echten Partitionen (sonst könnte man ja den restlichen Platz einfach als zweite Partition einrichten), und das Filecore-Format ist der Alptraum einer jeden Partition-Resizer-Anwendung, weshalb es schlicht keine gibt. Deshalb taugt aus meiner Sicht für RISC OS im Moment weiterhin nur das Vorgehen “von Hand”: vorhandenen Pi mit RISC OS drauf nehmen, microSD-Karten-Leser und leere große microSD-Karte, SystemDisc, microSD entsprechend einrichten (ich empfehle einen großen FAT-Bereich, den kann man prima für Datentransfer mit anderen Betriebssystemen nutzen, solange das Netzwerk noch nicht funktioniert), config/txt und cmdline/txt anpassen, HardDisc4-ZIP entpacken. Wie immer hatte ich bei meinem Setup wenig Glück mit EDID und der RISC OS-Idee der automatischen Bildschirmerkennung, und so konfiguriere ich den richtigen Bildschirmmodus immer fest in die config/txt und verwende disable_mode_changes, weil das für ADFFS in Verbindung mit AnyMode der viel problemlosere Betriebsmodus ist.

Die “Power”-Funktion über die Tastatur (Fn + F10) erfordert übrigens die Mitarbeit des Betriebssystems, unter RISC OS gibt es hier noch keine Unterstützung. Schade, Shutdown mit nachfolgendem Power-Off wäre schön.

Auch in die Raspbian-Distribution – inzwischen “Raspberry Pi OS” genannt – habe ich einen Blick geworfen, finde es aber nach wie vor für ein Massenprodukt erstaunlich unrund, was hauptsächlich zu merken ist, wenn man “Deutsch” als Sprache auswählt. Denn auch danach geht es erschreckend oft in Englisch weiter. Ganz gut gelungen ist hingegen die deutsche Übersetzung des dem “Kit” beliegenden Einsteiger-Handbuchs (auch wenn ich nie auf die Idee gekommen wäre, das urdeutsche Wort “Overscan” durch “Übertastung” zu ersetzen). Interessierte können es als PDF runterladen, dafür muss man nicht das “Kit” kaufen. Man beachte, dass auch viele der Screenshots die jeweilige deutsche Version zeigen, da hat jemand mitgedacht und mit Plan gearbeitet. Wenn jetzt noch jemand ein entsprechendes Handbuch, angepasst an RISC OS und mit BBC BASIC-Beispielen schreiben würde…

Und die Hardware? Macht alles einen recht soliden Eindruck. Die Tastatur ist Laptop-artig mit hartem Anschlag und kurzen Tastenwegen, jedoch für meinen Geschmack etwas zu steil im Winkel angestellt – aber klar, irgendwo muss ja auch die Hauptplatine hin. Es ist ein sehr kompaktes Layout, und für RISC OS-Zwecke nervig, da es nur Platz für 10 F-Tasten hat und so die oft genutzte F12-Taste nur per Modifier (hier “Fn” genannt, in Kombination mit F2 ergibt sich dann die F12-Taste) zugänglich ist. Aber immerhin wird das Auge nicht durch ein Windows-Logo beleidigt, denn dort befindet sich logischerweise die allseits beliebte Himbeere. Die Maus ist im besten Sinne unspektakulär, höchstens das etwas kurze Kabel könnte nervig sein. Die microSD-Karte ist ein Markenprodukt von SanDisk, stellt aber keine Geschwindigkeitsrekorde auf. Das Netzteil funktioniert wie zu erwarten prima, genau wie das (auch eher kurze) microHDMI-HDMI-Kabel.

Ist der Pi 400 – ob nackt oder als “Kit” – nun sein Geld wert? Das muss jeder selbst entscheiden, der Aufpreis gegenüber der nackten 4 GiB-Platine hält sich schließlich in Grenzen. Wer wie ich das Basteln gewöhnt ist, und wenn das Rechner-Setup rund um einen KVM-Switch gebaut ist und deshalb die integrierte Tastatur keinen Vorteil darstellt – nun gut, wie gesagt der Aufpreis hält sich in Grenzen, und wenn man den Rechner “mal schnell” woanders mit hinnehmen will, ist das All-in-one-Design vielleicht doch von Vorteil. Schade ist aus meiner Sicht, dass man den neu gewonnenen Platz nicht dafür genutzt hat, die frickeligen microHDMI-Ports durch ihre Full-Size-HDMI-Pendants zu ersetzen. Man muss nicht jeden Holzweg konsequent zu Ende gehen – bei der nacken Pi4-Platine gab es immerhin noch die “wir hatten keinen Platz”-Ausrede.

Vielleicht passt eines der neueren Pi 4-Gehäuse besser zu meinen Ansprüchen – liegt inzwischen mit allen notwendigen Materialien hier rum und wartet auf Zusammensetzung: ein Alu-Gehäuse mit USB3-M.2-SATA-Adapter und Power-Taster namens “Argon One M2”, ein Pi 4 in der 8 GiB-Variante, und eine Samsung M.2-SATA-SSD mit 512 GiB die hoffentlich gut ins Gehäuse passt. In diesem Falle ein Gehäuse mit zwei Full-Size-HDMI-Buchsen, dazu ein eingebauter IR-Sensor, ein softwaresteuerbarer Lüfter, und der analoge Soundausgang bleibt auch erhalten. Dazu eine recht intelligente Lösung für die GPIO-Pins. Vielversprechend.

RISC OS 5.28

RISC OS Open Ltd. hat die Verfügbarkeit der neuen als “stable” gekennzeichneten Version von unser aller Lieblingsbetriebssystem RISC OS verkündet. Die neue Nummer lautet 5.28 – RISC OS 5 wird ja seit einiger Zeit nach dem Schema “development – ungerade Zahlen, stable – gerade Zahlen” versioniert, die Entwicklungsversion ist also ab sofort 5.29.

Das wichtigste Feature von 5.28 ist natürlich die inzwischen stabile Unterstützung des nicht mehr ganz so neuen Raspberry Pi 4. Dafür war ein komplett neuer USB-Treiber und ein komplett neuer Ethernet-Treiber notwendig, sowie größere Umbauten beim Interrupt-Controller – der Pi 4 wurde nicht umsonst als das größte Update der Pi-Architektur bezeichnet. USB3-Unterstützung fehlt weiterhin, aber das muss wohl auf das große Update des USB-Stacks warten.

6 von 8 grundsätzlich unterstützten Plattformen kamen nun in den Genuss der “stable”-Version: Risc PC/A7000/IOMD-Plattformen (also auch RPCEmu), IYONIX pc, Titanium, OMAP3 (z.B. BeagleBoard), OMAP4 (z.B. PandaBoard) und die erwähnten Varianten des Raspberry Pi. Den “Cut” nicht geschafft haben die iMX6-Plattform (Wandboard) und die OMAP5-Plattform (IGEPv5), wobei es hauptsächlich an Kleinigkeiten und Unsauberkeiten scheitert, nicht an größeren Stabilitätsproblemen. R-Comp wird sicherlich für ARMX6 und mini.m, die ja prinzipiell auf der iMX6-Plattform basieren, zeitnah eine entsprechende stabile Version ausliefern.

Die Neuerungen im Feature-Bereich in RISC OS 5.28 sind eher übersichtlich für diejenigen, die regelmäßig die Entwicklungsversionen einspielen. Verbesserungen in !Paint, SLL/TLS-Modul im OS direkt integriert, anständige Clipboard-Unterstützung systemweit und auch in Eingabefeldern (und das war ein langer Kampf), dazu die Unterstützung von ARMv8-Opcodes im Assembler von BBC BASIC. Die vollständige Liste inklusive Links zu plattformspezifischen Anpassungen kann man hier sehen.

Evolution statt Revolution könnte man sagen. Wir wünschen uns für das nächste stabile Release die Integration des neuen sich in Entwicklung befindlichen TCP/IP-Stack bevorzugt inklusive WLAN-Unterstützung natürlich, ebenso ein Update des USB-Stack für die USB3-Unterstützung in Titanium und Pi 4. Fortschritte an der Dateisystemfront – vor allem die anständige Unterstützung von Partitionen – wären auch gerne gesehen, das würde die zukünftige Integration in Multi-Boot-Situationen z.B. beim Raspberry Pi erleichtern.

Tatsächlich stelle ich fest, dass die “Nightly Builds” von RISC OS 5 üblicherweise so stabil sind, dass ich regelmäßig aktualisiere, ohne jetzt groß auf die nächste “stable”-Version hinzufiebern. Aber für meine neuerlichen Bemühungen rund um CDVDBurn ist es natürlich gut, eine stabile Basis zu haben, damit das Testen etwas einfacher fällt und man mindestens für die ungeübten Benutzer einen guten Fallback hat.

Aktueller Status RISC OS auf Raspberry Pi 4

Nachdem nun schon Aemulor in einer RPi 4-kompatiblen Version verfügbar ist, wie steht es derzeit denn um RISC OS selbst auf dieser vielversprechenden Plattform?

Zunächst eine kurze Zusammenfassung, warum man überhaupt einen RPi 4 haben will gegenüber einem seiner zahlreichen Vorgängern. Die CPU ist deutlich schneller, sowohl pro Takt als auch im Maximaltakt, und die Caches sind größer. Speicher ist deutlich schneller und bis zu 4 GiB groß (das vermutlich wichtigste Feature für die Linux-Jünger, und das vermutlich unwichtigste Feature für RISC OS-Nutzer). Gigabit Ethernet über einen schnellen internen Bus. USB3 über PCIe. Offizielle Unterstützung für 4K@60Hz-Bildschirmauflösung (früher war das eher Glücksache @30Hz). Dual-Head-Unterstützung.

Schon der derzeitige Zustand von RISC OS zeigt deutliche Fortschritte in den Benchmarks. Man darf sich also nicht nur auf theoretische Performancegewinne freuen, sondern tatsächlich auf spürbare Verbesserungen in der Praxis. Die CPU liegt auf einem Niveau mit den bisher schnellsten RISC OS-tauglichen Boards mit TI OMAP5 (Cortex-A15-Basis – Titanium und IGEPv5). An der Grafikbeschleunigung lässt sich sicher noch arbeiten, aber das ist “nur” eine Softwarefrage.

Und wie weit ist diese Praxis nun noch entfernt? Es fehlt prinzipiell an zwei Dingen: USB3 und Ethernet. D.h. man kann sich heute “from source” ein RPi 4-kompatibles ROM bauen, aber man muss Ethernet über das alte USB2.0 anbinden, ebenso wie zusätzliche Massenspeicher jenseits des microSD-Slots. Das ist aber nicht ganz einfach, weil alle “normalen” USB-Ports des Boards über den kombinierten USB3/USB2-Chip (VIA VL805) gehen, für den es eben noch keinen Treiber gibt. Das alte USB2.0 ist nur über den USB-C OTG verfügbar, über den auch die Stromversorgung normalerweise läuft. Deshalb sind bei der Inbetriebnahme noch ein paar Handstände vonnöten, beispielsweise indem man die GPIOs für die Stromversorgung nimmt und den USB-C stattdessen als USB-Port statt zur Stromversorgung.

Wer eher Code-affin ist, kann hier in Gitlab die Entwicklung nachverfolgen. Wer eher auf verständlichere Prosa setzt, verfolgt die Entwicklung im ROOL-Forum oder schaut sich den Port-Status im ROOL-Wiki an.

Bleibt noch die Frage: warum dauert es denn nun so lange? Da gibt es eine Vielzahl an Gründen. Beispielsweise hatte RISC OS bisher keinen XHCI-USB-Treiber (für USB3). Beispielsweise ist die Memory Map für die 4-GiB-Variante zu berücksichtigen (alle bisherigen 4 GiB-Plattformen hatten die “oberen” 2 GiB außerhalb des 4 GiB-Adressbereichs). Beispielsweise sind die Datenblätter bis heute nicht in der notwendigen Ausführlichkeit zu haben. Beispielsweise scheint es im PCIe-Bereich interessante Bugs in der Pi-Firmware gegeben zu haben. Selbst die Aktivierung des UARTs für serielles Debugging gestaltete sich als schwierig. Letztlich also eine ungewöhnliche Anzahl von nicklichen Detailproblemen, die dem geneigten Entwickler den Tag vermiesen. Aber wenn ich die Commits richtig deute, ist die Zielgerade nicht mehr weit entfernt.

Und dann wird es spannend, inwiefern RISC OS ebenfalls – vor allem in schlecht kühlbaren Gehäusen – in “thermal throttling”-Probleme laufen wird, die so manchem experimentierfreudigen RPi4-Besitzer fast schon klassisches PC-Feeling inklusive Lüfter eingebrockt hat. Gut gekühlt kann der RPi4 wohl durchaus 2 GHz und mehr ab, bei Einsatz aller 4 Cores. Ungekühlt in den üblichen beinahe dichten Plastikgehäusen könnte es eher schwierig werden mit den neuen Performance-Höhen.

Der RISC OS-Quellcode lebt jetzt in Git

RISC OS hat bekanntlich eine lange Historie. Und alle Softwareprojekte mit Historie haben normalerweise auch eine Historie was die Quellcodeverwaltung angeht. So auch RISC OS. Ursprünglich mit RCS unterwegs (quasi der Urvater der Unix-VCS-Welt nach SCCS, das auf System/370 entwickelt wurde) und dann zum natürlichen RCS-Nachfolger CVS gewechselt, ist man jetzt den heutzutage quasi unvermeidlichen Weg weiter zu Git gegangen. Als Schnittstelle zur Außenwelt wird GitLab verwendet. GitLab hat natürlich noch ein paar andere Features für all das, was man heute unter “DevOps” zusammenfasst, was davon Stand heute von RISC OS Open Ltd. verwendet wird entzieht sich meiner Kenntnis. Die Nightly Builds der RISC OS-ROM-Images ist ja ein eher komplexer Prozess, da RISC OS weiterhin nur mit der Norcroft-Toolchain baubar ist zuzüglich ein paar exotischer nur nativ unter RISC OS laufender Tools. Wenn ich mich recht erinnere ist deshalb eine Spezialversion von ArcEm noch mit am Start, um den kompletten Build unter unixoiden Plattformen überhaupt zu ermöglichen. Inwiefern das zur vorgedachten GitLab-Build-Pipeline passt – keine Ahnung. Stand heute wird das CI/CD-Zeugs von GitLab jedenfalls nicht (öffentlich einsehbar) verwendet.

Was mich daran erinnert, dass es wirklich mal ein schönes Projekt wäre, RISC OS komplett mit GCC und asasm baubar zu machen.

Die von CVS gewohnte, übersichtliche Historie der Änderungen über das Webinterface ist nun leider nicht mehr da, die Git-Struktur scheint etwas komplexer zu sein, mit dem selten genutzten Git-Feature “Submodules”. Vermutlich bräuchte es da etwas Code, der die Aufbereitung für Rails (die technische Plattform der RISC OS Open-Webpräsenz) übernimmt. Allerdings ist es schon viel besser geworden – also nicht vergessen: regelmäßig hier nachschauen was es Neues im RISC OS-Code gibt. Man kann direkt über das GitLab-Interface auch die akzeptierten Merge-Requests anschauen, das ist auch manchmal erhellend.

Und wie greift man nun von RISC OS aus auf Git zu? Jeffrey Lee hat dazu SimpleGit portiert.

Und noch was nebenbei, weil ich öfter Teil solcher Diskussionen war: “Veraltetes CVS” war eine der gerne genutzten Ausreden, warum man ja leider nix zu RISC OS beitragen könne. Vermutlich nach “die Castle-Lizenz ist nicht echtes Open Source” am öftesten gehört. Beides ist nun Geschichte. Nun bleibt noch “ich muss für das DDE bezahlen” – mal sehen, wann diese Ausrede auch Geschichte ist. Dann wird man sehen, dass es trotz bester Rahmenbedingungen nur sehr wenige Menschen gibt, die sich in der gebotenen Tiefe mit einem Randgruppenbetriebssystem in ihrer Freizeit befassen wollen.

RISC OS 5.26 und NOOBS

Um einen sauberen Release-Stand unter der neuen Apache-Lizenz zu haben, ohne gleich das ganz große Release-Rad drehen zu müssen, hat RISC OS Open Ltd. kurzerhand die Version 5.24 als 5.26 neu released. Codetechnisch hat sich nichts verändert, nur die eine oder andere Lizenzdatei wurde angepasst. Konsequenterweise sind damit ab sofort auch alle Development-Versionen bei 5.27 angekommen. Damit entsteht nun die potenziell verwirrende Situation, dass RISC OS 5.25 weiter fortgeschritten war als RISC OS 5.26, aber das wird die überschaubare RISC OS-Community wohl gut verkraften können.

Eine Möglichkeit, auch auch auf dem recht neuen Raspberry Pi 3 A+ (wofür auch immer der im RISC OS-Universum gut sein soll – ein paar Euro weniger auf Kosten von USB-Anschlüssen und Ethernet?) die Version 5.26 einfach mal auszuprobieren ist seit einiger Zeit auch wieder die NOOBS-Distribution. Nach längerer Pause ist hier RISC OS neben zig Linux-Varianten wieder mit von der Partie.

Wer es nicht weiß: NOOBS (ein Akronym für “New Out Of the Box Software”) wird von der Raspberry Pi Foundation als Multi-OS-Installer für den schnellen Wechsel verschiedener Betriebssysteme angeboten, ideal für Pi-Einsteiger zum Ausprobieren verschiedener Varianten. Für dauerhafte RISC OS-Nutzung ist NOOBS aber nicht zu empfehlen, weil RISC OS die Filecore-Parition nicht einfach erweitern kann (und Filecore zudem nur eine Partition unterstützt) und man daher größere SD-Karten platztechnisch nicht ausnutzen kann. Da ist der Weg über SystemDisc und HForm weiterhin der bessere.

RISC OS demnächst unter Apache-Lizenz

Es gibt Bewegung an der RISC OS-Lizenz-Front. Vor wenigen Stunden kam die für mich überraschende Nachricht, dass die von vielen ungeliebte Castle-Lizenz demnächst durch die Apache 2.0 License abgelöst wird.

Zuvor gab es die Ankündigung, dass RISC OS Developments Ltd. (im Prinzip Andrew Rawnsley von R-Comp/RCI und Richard Brown von Orpheus Internet/GeneSys Developments Ltd. neben ein paar ungenannten Investoren, gegründet im April 2017, einzig bisher sichtbares Ergebnis: das OBrowser-Frontend zum Otter-Browser-Port, und keinesfalls nicht zu verwechseln mit der angekündigten, aber nie vollzogenen Umbenennung von RISCOS Ltd. nach RISCOS Developments Ltd. von anno 2004 beim letzten großen RISC OS-Lizenzkrach) die Rechte an RISC OS komplett durch die Übernahme von Castle Technology erworben hat – ein paar Details nebst ein wenig historischem Kontext dazu bei RISCOSitory.

Was bedeutet das in der Praxis? Man weiß es nicht. Wer bisher aufgrund der “aber es ja gar nicht echtes Open Source!”-Problematik nicht an RISC OS mitarbeiten wollte, hat nun keine Ausreden mehr. Oder besser gesagt: diese eine Ausrede gibt es nicht mehr, aber es ist natürlich immer noch nicht GPL (die Lieblingslizenz derer, die lieber schwätzen als machen) und der Compiler wird vermutlich auch nicht unter der APL freigegeben (dazu gibt es zumindest noch keine Infos), d.h. die Mitentwicklung an RISC OS erfordert weiterhin, ein paar Euros in die Hand zu nehmen.

Als problematisch empfinde ich, dass der Zwang der Castle-Lizenz zum Feedback von Änderungen von kommerziellen Lizenznehmern nun wegfällt. Das bedeutet prinzipiell eine Fork-Gefahr durch kommerzielle Verwender, was das fragile RISC OS-Gebilde doch sehr beschädigen könnte. Hätte R-Comp die bei der ARMX6-Entwicklung vorgenommenen Änderungen wirklich in die Mainstream-Version zurückgespeist? Da bin ich unsicher. Die wenigen Firmen, die noch im RISC OS-Markt tätig sind, sind aus meiner Sicht nicht gerade als große Verfechter der Open Source-Idee bisher in Erscheinung getreten, sondern eher als Schmarotzer der großen Open-Source-Welt. Die Versuchung, billige ARM-Boards mit einer RISC OS-Portierung in teure RISC OS-Maschinen zu verwandeln und die notwendigen Treiber für sehr relevante Zeiträume (also deutlich länger als die bisher durch die Castle-Lizenz maximal vorgegebenen 12 Monate) Closed-Source zu halten, dürfte riesig sein.

Im Prinzip könnte solch einer Fehlentwicklung nur durch eine starke Community begegnet werden, die den Open-Source-Gedanken hochhält und Firmen weitestgehend boykottiert, die diese Ideen konterkarieren wollen. Leider ist die RISC OS-Community nach meiner Einschätzung ungefähr das glatte Gegenteil – die Neigung, aufgrund irgendwelcher Versprechungen irgendwem reichlich Geld in den Rachen zu werfen scheint mir ungebrochen – “to support the market”, wie es immer so schön heißt. Spricht aber eben nicht für einen gesunden Markt, wenn man Geld für etwas zahlt, was man eigentlich nicht haben will oder zumindest nicht für den aufgerufenen Preis.

Aber es freut mich, dass die ewige Lizenzdiskussion nun hoffentlich endgültig ein Ende hat. RISC OS ist jetzt echtes Open Source! So richtig OSI! Ohne wenn und aber! Die letzten Signale waren nicht gerade so, dass man das erwarten durfte, Relicensing von altem IP-Zeugs ist immer eine Aufgabe, zumal bei der vorliegenden Historie von RISC OS von mehr als 30 Jahren.

Demnächst ist die RISC OS London Show, da gibt es eventuell mehr Details zu erfahren.

RISC OS 5.24 ist da

Ich bin etwa 2 Wochen zu spät dran, RISC OS 5.24 wurde zur Wakefield-Show veröffentlicht. Aber besser spät als nie…hier das Original-Announcement von RISC OS Open Ltd.

Eine Menge Neues gibt es in RISC OS 5.24 (hier die Liste stellvertretend für die OMAP4-Plattform) – natürlich nicht für diejenigen, die öfter mal eine der Entwicklungsversionen mit Namen 5.23 verwenden, aber gegenüber der letzten Release-Version 5.22 ist der Fortschritt natürlich erheblich. Während 5.22  noch auf IOMD (Risc PC, A7000(+)), IYONIX, BeagleBoard (OMAP3) und PandaBoard (OMAP4) beschränkt war, gibt es 5.24 nun als offizielles Release auch für die diversen Raspberry Pi-Modelle sowie das Titanium-Board. Wandboard und OMAP5 (IGEPv5) haben es nicht ganz geschafft, aber CJE Micro’s (Rapido-Ig, also IGEPv5) und R-Comp (ARMX6, also Wandboard) haben für ihre Kunden natürlich eine Distribution äquivalent zu 5.24 auf Lager.

Kurz aus meiner Sicht die Highlights:

  • High-Vector-Konfiguration ist jetzt Standard, aus Kompatibilitätsgründen gibt es eine “compatibility page” anstelle der ZeroPage. Entwickler können weiterhin ZeroPain verwenden, um aussagekräftige Logs zu erhalten bei ZeroPage-Zugriffen
  • EDID-Unterstützung
  • 4K-Sektor-Unterstützung in FileCore für bis zu 2 TiB pro Partition
  • ARMv6/v7/v8- und VFP-Befehle in BASIC
  • diverse Verbesserungen für den UTF-8-Betrieb (!Chars, !Draw)
  • RAM-Disc-Größe bis 512 MiB
  • SpriteExtend unterstützt moderne JPEGs (und ChangeFSI ebenfalls)
  • OmniClient komplettiert durch den alten NFS-Kern und den nicht ganz so alten Access-Kern, so dass “Omni” nun wieder besser als Name passt
  • ein aktualisiertes Handbuch (der “User Guide”)

Vermutlich am Wichtigsten ist aber, dass es endlich nach der langen Zeit der Release Candidates für den Pi nun wirklich eine als stabil gekennzeichnete RISC OS-Version gibt – das wird es hoffentlich ermöglichen, wieder Teil des NOOBS-Images zu werden.

Jetzt werde ich nach und nach meine Systeme aktualisieren – die RPis, ARMX6, Titanium, PandaBoard ES, BeagleBoard-xM und BIK, IYONIX, RPCEmu und vielleicht teste ich auch auf einem der Risc PCs mal den Softload. Leider gibt es ja keine 32bit-Treiber für den ViewFinder, was die Nützlichkeit der Risc PC-Version für meine Zwecke doch ziemlich einschränkt.

Raspberry Pi 3 B+, 4K und RISC OS

Zum Pi-Day (14.3. – mathematisch vorgebildete Leser müssen die englische Datumsnotation berücksichtigen, um den Gag zu kapieren, alle andern müssen zusätzlich Pi auf zwei Nachkommastellen genau kennen) hat die Raspberry Pi Foundation mal wieder nachgelegt und eine neue Modellvariante des allseits beliebten “SBC” auf den Markt geworfen. Gegenüber dem Vorgänger hat sich der maximale Takt leicht von 1,2 GHz auf 1,4 GHz erhöht, der SoC hat einen metallischen Headspreader bekommen um die Wärme besser abführen zu können, WLAN wurde verbessert indem ac unterstützt wird und auch das 5 GHz-Band bedient wird, und es ist nun endlich Gigabit Ethernet an Bord – da gibt es zwar den kleinen Haken, dass es intern weiterhin am USB2.0 hängt und damit physisch auf 480 MBit/s abzüglich USB-Protokolloverhead abzüglich der Bandbreite anderer angeschlossener USB-Geräte limitiert ist, aber nichtsdestotrotz sind die erreichbaren Übertragungsraten dadurch trotzdem deutlich höher als zuvor.

Seit wenigen Tagen gibt es nun im RISC OS-Nightly-Build die erweiterte Version von EtherUSB, die in der Lage ist den Netzwerk-Chip korrekt anzusteuern. Gelegenheit für mich, eine frische RISC OS-Version auf die Pis zu bringen und gleichzeitig mich mal um die passende Ansteuerung meines nagelneuen 4K-Monitors (iiyama G-MASTER GB2888UHSU-B1, ein 28-Zöller mit besagten 3840×2160 Pixeln Auflösung).

4K ist leider keine Auflösung, die der Pi “einfach so” kann, da muss man frickeln. Außerdem hatte ich noch kein passendes MDF für die RISC OS-Seite, und dann war da noch die potenzielle Problematik inwiefern die HDMI-Kabel das mitmachen und inwiefern der HDMI-Switch (nominell 4K-fähig) in die Suppe spuckt.

Der HDMI-Switch machte keine Probleme, die Kabel konnten es ebenfalls, und so präsentiere ich hier nun den 4K@24Hz MDF-Eintrag, erzeugt mit Chris Gransdens Portierung von cvt http://www.riscosports.co.uk/cvt.zip, der zusätzlich MDF-Einträge erzeugen kann (läuft offenbar noch nicht auf dem Pi 3):

# 3840 x 2160 (24.00Hz) Reduced Blanking (CVT)
startmode
mode_name:3840x2160 CVT
x_res:3840
y_res:2160
pixel_rate:209750
h_timings:32,80,0,3840,0,48
v_timings:5,17,0,2160,0,3
sync_pol:3
endmode

Damit der Pi diese Auflösung kann, muss man folgendes in die config.txt bringen (komplette für RISC OS geeignete config.txt, nicht nur die für 4K notwendigen Teile!):

fake_vsync_isr=1
init_emmc_clock=100000000
kernel=RISCOS.IMG

# needed for correct RGB ordering for RISC OS
framebuffer_swap=0

# disable overscan
disable_overscan=1

# Ignore EDID
hdmi_ignore_edid=0xa5000080

# no disabling of HDMI in DPMS mode
hdmi_blanking=0

# 1 = DVI, 2 = HDMI (with sound)
hdmi_drive=2

# 0-11 - 5 is default, try 7 if interferences are seen
config_hdmi_boost=5

# force HDMI screen mode
# group=0: EDID auto detect, group=1: CEA, group=2: DMT
hdmi_group=2

# screen mode
# CEA modes:
# 16 = 1920x1080@60
# 16,31,32,33,34 = 1920x1080@60,50,24,25,30 Hz
# DMT modes:
#  4 = 640x480@60 Hz
#  9 = 800x600@60 Hz
# 16 = 1024x768@60 Hz
# 77 = 2560x1600@60 Hz
# 84 = 2048x1152 reduced blanking
# completely custom mode definition:
# hdmi_cvt=<width> <height> <framerate> <aspect> <margins> <interlace> <rb>
# margins=0 no margins, 1=margins
# aspect=3 16:9, 1 4:3, 5 16:10
# interlace=0 progressive
# rb=1 reduced blanking
# hdmi_mode=87 selects this custom mode for DMT, 65 for CEA
hdmi_cvt=3840 2160 24 3 0 0 1
hdmi_mode=87

# special timings - sometimes needed for specific monitor needs if generic CVT does not work
# hdmi_timings=<h_active_pixels> <h_sync_polarity <h_front_porch> <h_sync_pulse> <h_back_porch> <v_active_lines> <v_sync_polarity> <v_front_porch> <v_sync_pulse> <v_back_porch> <v_sync_offset_a> <v_sync_offset_b> <pixel_rep> <frame_rate> <interlaced> <pixel_freq> <aspect_ratio>
hdmi_timings=3840 1 48 32 80 2160 1 3 5 54 0 0 0 24 0 211190000 3

# only provide the modes specified above
hdmi_force_mode=1

# force larger framebuffer - includes possible overscan!
framebuffer_width=3840
framebuffer_height=2160
max_framebuffer_width=3840
max_framebuffer_height=2160

# pixel frequency limit
hdmi_pixel_freq_limit=400000000

# GPU memory in megabytes, default is 64, minimum is 16
gpu_mem=64

# Set USB power limit to 1,2A for all ports
max_usb_current=1

Es gibt keine Garantie, dass der Pi das abkann. Es gibt Berichte im Netz, dass man das Dingens zusätzlich übertakten muss, sowohl CPU als auch GPU. Bei mir war das im Falle des Pi 3B+ nicht notwendig, bei den anderen Modellen steht der Test noch aus.

Und dann noch für unfallfreie ADFFS-Anymode-Unterstützung folgendes in die cmdline.txt:

disable_mode_changes

Mit diesem Eintrag nagelt man den Pi-Videooutput auf genau eine Auflösung fest und überlässt dem Videoscaler des Pi die Anpassung der RISC OS-Auflösung an die Hardware-Auflösung.

4K ist echt super…auf 28″ vielleicht ein wenig klein, aber ich bin ja noch jung 🙂 Mit demselben MDF-Eintrag kann übrigens auch der ARMX6 (Wandboard Quad) 4K@24 Hz.

Inwiefern höhere Bildwiederholraten funktionieren, muss ich noch prüfen. In Zeiten von LCDs ist deren Nützlichkeit ja aber eher begrenzt, solange der Monitor es syncen kann, da scheint der Iiyama sehr flexibel.