Wenn der Nvidia-Treiber streikt!

Hat man eine aktuelle Nvidia-Grafikkarte, dann ist dieser Artikel nicht interessant. Dieser bezieht sich nur auf ältere Karten, die nicht vom aktuellen Treiber unterstützt werden.

Ja, dazu gibt es schon einen Artikel. Dort habe ich aber ein paar Dinge nicht berücksichtigt, was ich hier nun tun werde. Diese Punkte habe ich auch mit voller Absicht weggelassen, denn in den meisten Fällen funktioniert der Weg problemlos, den ich dort beschrieben habe und ich will niemanden verleiten, etwas zu verschlimmbessern, oder sich unsinnige Arbeit aufzuhalsen.

Das Problem

Es gibt Fälle, in denen man mit der im verlinkten Artikel nicht weiter kommt. Zum Beispiel kann es ja passieren, dass man da zwar einen neuen Kernel drin, aber den Treiber keinem Update unterzogen hat. Dann bootet der PC, aber anstatt des Login-Bildschirms, oder dem Desktop, erscheint einfach nichts. Schwarz wie die Nacht. Vielleicht blinkt da noch ein Cursor. Mehr aber nicht.

Was soll man dann tun? Neuinstallieren? Ach Arch-Geleckt, wir sind hier nicht bei Windows! Das kriegen wir schon wieder auf die Reihe!

Tatsächlich gibt es da sogar ein paar Möglichkeiten, wie man an sein System ran kommt, ohne es neu installieren zu müssen. Einen sehr Schnellen, einen halbwegs Schnellen und einen fast schon Mühevollen. Letzterer hat aber sehr viel Potential und kann auch bei anderen Problemen helfen, die einen direkten Zugriff auf das System unterbinden.

Diese drei Möglichkeiten schauen wir uns jetzt an und dazu gehe ich gleich noch auf ein Problem ein, was manchmal auftritt.

Das “Manchmal”-Problem

Wie mir scheint, kann es in seltenen Fällen dazu kommen, dass Arch, oder sein Kernel, oder der Hamster im Laufrad, oder wer auch immer, nicht versteht, dass er den Nvidia-Treiber laden soll. Wenn dem so ist und man Glück hat, startet ein Standardtreiber. Dann ist die Auflösung mies, alles wirkt langsam und komisch, aber immerhin kann man mit dem System arbeiten. Wenn man Pech hat, schöner, schwarzer Bildschirm.

Die Lösung ist dabei ziemlich simpel, wie ich festgestellt habe. Man muss einfach dem XOrg-Server erklären, was er zu tun hat.

Wer nun fragt, was denn nun wieder ein XOrg-Server ist, dem gebe ich hier eine wirklich sehr knappe Erklärung. Wer mehr dazu wissen will, Wikipedia zum Beispiel hilft da sehr gut und es gibt auch Dutzende andere Seiten, die sich explizit damit befassen. Sollte sich jemand meinen Erguss diesbezüglich ersparen wollen, der kann ihn auch gerne überspringen!

Also. Ein Unix-Betriebssystem, wozu man ja auch Linux zählen kann, ist von Hause aus ein OS mit Kommandozeile. Sprich, der Einsatz einer grafischen Benutzeroberfläche ist da gar nicht eingebaut. Im Prinzip ist es nichts anderes, als damals bei Windows. Da gab es MS-DOS und wenn man eine grafische Oberfläche wollte, dann musste man Windows starten. Hier ist es genaugenommen das Gleiche.

Kleine Anekdote. Das AmigaOS zum Beispiel ist da anders! Das startet immer eine grafische Oberfläche! Aber das ist ein ganz anderes Thema.

Okay. Nun könnte die Frage aufkommen, warum wird denn so etwas heute noch betrieben? Wer arbeitet denn ohne grafische Oberfläche?

Tja, sehr viele! So ziemlich alle Server verwenden keine grafische Oberfläche. Warum auch? Frisst nur unnütz Ressourcen! Auch viele Anwender vom Raspberry Pi und seiner Kollegen verzichten auf die grafische Oberfläche. Wenn da ohnehin kein Monitor dran angeschlossen ist, warum dann eine grafische Oberfläche starten? Macht ja irgendwo keinen Sinn.

Gut. Aber wenn man nur den XOrg-Server startet, dann hat man nicht wirklich viel davon. Klar, man kann direkt damit auch noch Anwendungen starten. Die werden dann auch angezeigt, aber in der Regel kann man sie weder verschieben, vergrössern, oder gar schliessen. Dafür ist der XOrg-Server nämlich überhaupt nicht gedacht! Wenn man Rahmen, Schaltflächen und das alles will, dann braucht man noch einen Window-Manager. In meinem Beispiel ist das Cinnamon. Wobei ich auch sagen muss, mittlerweile sind viele dieser Manager so gross und ausführlich (Taskleiste, Icons auf dem Desktop usw.), dass es sogenannte Desktop-Enviroments (DE) sind. Also eine komplette Sammlung abgestimmter Tools in einem Paket.

Jetzt könnte die Frage aufkommen, warum man denn diesen Schwachsinn braucht? Eine Oberfläche reicht doch!

Auch hier ist die Antwort wieder einfach. Man hat die Wahl! Ich zum Beispiel habe damals, auf meinem AMD Sempron, wenn ich FlightGear spielen wollte so viele Ressourcen wie möglich schonen wollen, damit ich auch genug FPS habe. Cinnamon hätte von dem Ding schon so viel Leistung gefressen, dass die Framerate mit Sicherheit gesunken wäre. Also habe ich für solche Fälle Fluxbox eingesetzt. Sieht nicht toll aus, aber funktioniert und spart echt viel Leistung.

Kurz gesagt:

Arch -> XOrg-Server -> Window-Manager

Damit hat man dann seine grafische Oberfläche. Mag komisch klingen, hat aber durchaus seinen Sinn. Auf Wayland gehe ich dann hier mal nicht ein, damit kann ich mich irgendwie nicht so wirklich anfreunden.

Weiter im Text, ist ja doch wieder länger geworden, als ich gewollt habe.

Wie erklärt man nun dem XOrg-Server, dass er einen Nvidia-Treiber laden soll, obwohl er das so gar nicht erkannt hat?

Früher, in der guten alten Zeit, wo der Groschen noch 10 Pf Wert war, da benutzte man eine einzelne Datei, um den XOrg-server zu konfigurieren. Die xorg.conf Datei. Die konnte aber gross und unübersichtlich werden, so dass die darin aufgeführten Sektionen mittlerweile in Einzeldateien untergebracht worden sind. In den meisten Fällen braucht man das aber gar nicht. Auf allen meinen Geräten habe ich keine extre Konfiguration für den XOrg-Server. Der macht seinen Job ganz von alleine.

Tut er das nicht, muss man ihm auf die Sprünge helfen und in dem hier vorliegenden Fall legt man dafür eine Datei an.

sudo nano /etc/X11/xorg.conf.de/20-nvidia.conf

Wobei es meiner Meinung nach hier gar nicht so sehr auf den Namen ankommt. Beim Start rennt der XOrg-Server einfach durch das Verzeichnis und verarbeitet alles mit .conf am Ende.

In die Datei kommt nun folgendes:

Section "Files"
  ModulePath   "/usr/lib64/nvidia/xorg"
  ModulePath   "/usr/lib64/xorg/modules"
EndSection

Section "Device"
  Identifier "Nvidia Card"
  Driver "nvidia"
  VendorName "NVIDIA Corporation"
EndSection

Speichern, neu starten und unter Umständen hat sich das Problem damit gelöst. Es kann meiner Meinung auch nicht schaden, wenn man die Datei prophylaktisch anlegt. Ich wüsste zumindest mal nicht, dass man damit etwas kaputt macht. Bei dem neusten Treiber ist das aber dann doch unnötig.

Die schnelle Methode (Tastenkombination)

Man sitzt also da an seinem PC und der zeigt einem die schwarze Schulter. Man kann nichts eingeben und damit auch nichts reparieren. Doch Linux ist nicht ganz so statisch, wie man das vielleicht annehmen könnte!

Hat sich zum Beispiel mal jemand gefragt, wie ein Multi-User/Multitasking OS eigentlich noch funktioniert, wenn ein Programm die ganze Konsole beansprucht? Nano zum Beispiel. Ein für Konsole/Terminal entwickelter Editor. Wenn der läuft, wie soll man denn dann noch ein zweites Programm starten? Wie soll sich da noch ein anderer Benutzer anmelden?

Linux (eigentlich UNIX im allgemeinen), macht das ganz simpel. Man hat mehr, als nur eine Konsole! Zwischen denen kann man munter hin und her hüpfen und in jeder ein eigenes Programm, oder einen anderen Benutzer haben!

Der Trick dahinter ist, man muss auch wissen, wie man auf die zugreifen kann. Die sind nämlich IMMER da, auch wenn eine grafische Oberfläche läuft!

Hier gibt es eine Tastenkombination, die eigentlich nie wirklich irgendwo erwähnt wird. Glaubt mir, in meinen ersten Schritten unter Linux hat es mich oft wahnsinnig gemacht, dass ich da eine Tastenkombination benutzt habe und die hat mich anstatt zum Ziel in eine Konsole geführt und ich hatte einfach keinen Plan, wie ich wieder in die grafische Oberfläche kommen sollte. Oft führte das zu einem ungewollten Neustart.

STRG+ATL+F1-6

Das ist die ultra geheime, oder einfach nur vernachlässigte Tastenkombination. Damit kommt man ganz bequem in sechs verschiedene Konsolen.

STRG-ALT-F7

Führt in den meisten Fällen dann zurück zur grafischen Oberfläche. Wer will, kann es jetzt sofort (insofern er gerade Linux benutzt) ausprobieren.

Nur, wie soll uns das nun helfen?

Ganz einfach. Mal wieder. Nur, weil die grafische Benutzeroberfläche klemmt, ist der Rechner noch lange nicht lahmgelegt! Nein, die Konsolen sind in den meisten Fällen noch voll betriebsbereit, man muss sie nur anspringen.

Arch nutzt die erste Konsole, also STRG-ALT-F1 zum booten und zum starten vom XOrg-Server. Die ist also blockiert. Gentoo macht das anders, da kann man auch diese Konsole verwenden. Bunsenlabs, so glaube ich zumindest, hat die grafische Oberfläche sogar auf dieser Konsole liegen. Da kommt man dann also nicht mit F7 zur GUI, sondern mit F1. Oder war es Mint? Ist auch egal. Wollte es nur erwähnen, dass es bei verschiedenen Distributionen Abweichungen geben kann. Da es hier aber um Arch geht, nutzen wir also die zweite Konsole.

STRG-ALT-F2

Wird man hier zum Login aufgefordert, was Meistens der Fall sein sollte, dann loggt man sich einfach in die Konsole ein und führt dann die Schritte in dem anderen Artikel aus. Wer will, kann zur Sicherheit auch noch die 20-nvidia.conf Datei dabei anlegen.

Das sollte dann eigentlich schon reichen.

sudo reboot

Der Rechner startet neu und ich gehe davon aus, es läuft wieder alles! Man könnte auch einfach nur den XOrg-Server neu starten, da man aber ja nicht damit arbeiten konnte, geht also auch nichts verloren, wenn man den Rechner einfach neustartet.

Die halbwegs schnelle Methode (ssh)

SSH ist dein Freund! Seit ich die Fähigkeiten dieses kleinen Helfers entdeckt habe, läuft bei mir kein Linux mehr ohne! Da das Tool auch so gar nichts mit einer grafischen Oberfläche zu tun hat, interessiert es sich in aller Regel auch nicht für die Probleme, welche die GUI gerade quälen. Das heisst, man kann sich von einem anderen Rechner, ja sogar von seinem Smartphone, oder seinem Tablett mit der entsprechenden App auf dem Rechner einloggen. Sogar die PSP kann das!

Hier gibt es allerdings ein paar Dinge, die man beachten muss:

  • Der SSH-Dienst muss auf dem Rechner laufen!
  • Man muss die IP, oder den Namen des Rechners kennen

Leider, leider muss ich gerade feststellen, dass ich zu SSH selbst noch gar keinen Artikel geschrieben habe! Also kann ich jetzt hier keinen verlinken. Wer das hier aber liest und das nicht gerade um den 12.05.2021 ist, der kann mal suchen, ob ich mittlerweile einen entsprechenden Artikel geschrieben habe. Das steht jetzt auf jeden Fall auf meiner ToDo-Liste!

Okay. Prinzipiell ist es das gleiche Spiel, wie mit der Tastenkombination. Man loggt sich mittels SSH auf dem PC ein und führt dann die Schritte aus, wie sie auch bei der Tastenkombination beschrieben sind. Fertig.

Der fast schon mühevolle Weg (Bootdisc)

Einst hat man ja irgendwie sein Arch auf dem PC installiert. Ich schätze mal, in der heutigen Zeit am ehesten mit einem USB-Stick. Aber natürlich geht das auch mit eine CD/DVD. Spielt keine Rolle. Auf jeden Fall ist jetzt wieder dieses Installationsmedium gefragt!

Wenn also alle Stricke reissen, man weder mit der Tastenkombination in eine Konsole, oder mit SSH auf den PC kommt, dann bootet man wieder von dem Installationsmedium. Wer keines mehr hat, tja, der muss sich irgendwie wieder eines erstellen. Das ist leider so, kann ich nicht ändern.

Wenn von dem Bootmedium gebootet worden ist, muss man sich damit in das bestehende System auf der Festplatte einloggen. Dazu sind unter Arch nur wenige Schritte nötig!

1. Die Festplatte einbinden

Hier kann ich nur eine verallgemeinerte Erklärung abgeben. Das liegt daran, dass nicht jeder die Festplatte gleich partitioniert hat, oder es gleich mehrere Festplatten im Gerät gibt.

Wer aber meiner Anleitung gefolgt ist und nur eine Festplatte im Rechner hat, für den sind die Partitionen sda3 und sda1 notwendig. Eigentlich sogar nur die sda3.

Man kann sich anzeigen lassen, welche Festplatten vorhanden sind.

ls -l /dev/sd*

In der Ausgabe tauchen dann unter Umständen mehrere Festplatten auf. Alles mit sda wäre zum Beispiel die erste erkannte Festplatte. Weiter ginge es mit sdb usw. Die Zahl dahinter zeigt die Partition an. Nach meiner Anleitung wäre das dann:

sda1 -> /boot
sda2 -> swap
sda3 -> /

Das einbinden geht einfach und das hat der, der meiner Anleitung gefolgt ist, oder der offizielle Installationsanleitung, schon gemacht. Eigentlich hat er alle hier notwendigen Schritte bereits mindestens einmal durchgeführt. Es dürfte also nicht so schwierig werden.

mount /dev/sda3 /mnt
mount /dev/sda1 /mnt/boot

Tut gar nicht weh! Wer andere Festplatten und Partitionen hat, der muss die Zeilen natürlich entsprechend abändern.

2. Das fehlerhafte System betreten

So. Dann loggen wir uns mal in das System ein. Ja, unter Linux geht das auch im laufenden betrieb!

arch-chroot /mnt

Peng. Wenn alles geklappt hat, dann sind wir jetzt im System mit dem Problem und nun muss man nur noch die Schritte befolgen, die schon bei der Tastenkombination genannt wurden.

Nun ja, nicht ganz! Bei den beiden anderen Methoden war man als Benutzer angemeldet. Hier sind wir jedoch Root! Klar, heisst ja arch-chroot und nicht arch-chuser. Man kann also das sudo weglassen, man ist ja schon der SuperUser. Ansonsten ist es der gleiche Weg!

Hat man also das Paket wieder mit pacman -U installiert und gegebenenfalls die Datei 20-nvidia.conf erstellt, ist man fertig. Hier sollte man aber jetzt nicht einfach neustarten!

Der korrekte weg ist, erst die Umgebung wieder verlassen, die Festplatten wieder auszuhängen und dann neuzustarten. Das sieht dann so aus:

exit
umount /mnt/boot
umount /mnt/
reboot

Fertig. Das sollte gereicht haben!

Anmerkung

Dieser Weg ist nicht nur dann gut, wenn der Nvidia-Treiber klemmt! Auf diese Weise kann man wirklich viele Probleme im System beheben! Wenn wirklich nichts mehr geht, auf diesem Weg kommt man eigentlich immer wieder in das beschädigte System und kann dort die Probleme beheben. Klar, es mag Fälle geben, da hat man einfach so viel zerstört, da kann man eigentlich nichts mehr retten. Beziehungsweise, der Reparaturaufwand wäre viel höher, als eine neue Installation. Aber ansonsten kann man auf diesem Weg wirklich viel wieder begradigen. Oftmals, so habe ich zumindest die Erfahrung gemacht, kann schon ein Systemupdate dazu führen, dass das angeschossene OS wieder normal bootet!

Automatisches einbinden von Datenträgern

Ich binde nun nicht jeden Tag irgendwelche Laufwerke in mein System ein. Von daher kann ich nicht genau sagen, bei welchem Update da nun dieses Problem Einzug in Arch gehalten hat.

Es geht darum, dass man einen Datenträger einsteckt, zum Beispiel einen USB-Stick, eine CD-ROM, oder eine DVD und man bekommt die Meldung, dass man zum einbinden nicht berechtigt ist.

Not authorized to perform operation

Das ist ärgerlich! Ein versierter Nutzer hat damit nur bedingt Schwierigkeiten. Der bindet den Datenträger einfach von Hand ein, was so aussieht:

udisksctl mount -b /dev/sr0

Um das CD-ROM/DVD/Blueray-Laufwerk einzubinden.

Wer mit seinem System aber nur arbeitet und nicht einmal weiss, dass man Befehle auch von Hand in einen Terminal tippen kann, der ist schlagartig aller externen Datenträger beraubt.

Abhilfe ist jedoch recht schnell geschaffen.

  1. Wir legen eine Regel für Polkit fest
  2. Wir fügen den Benutzer der Gruppe storage hinzu

1. Regel für Polkit

In einem Terminal legen wir eine neue Regel für Polkit an:

sudo nano /etc/polkit-1/rules.d/50-udiskie.rules

Die ist aller Wahrscheinlichkeit nach leer, sonst würde das einbinden ja funktionieren. Da muss nun also folgendes rein:

polkit.addRule(function(action, subject) {
  var YES = polkit.Result.YES;
  // NOTE: there must be a comma at the end of each line except for the last:
  var permission = {
    // required for udisks1:
    "org.freedesktop.udisks.filesystem-mount": YES,
    "org.freedesktop.udisks.luks-unlock": YES,
    "org.freedesktop.udisks.drive-eject": YES,
    "org.freedesktop.udisks.drive-detach": YES,
    // required for udisks2:
    "org.freedesktop.udisks2.filesystem-mount": YES,
    "org.freedesktop.udisks2.encrypted-unlock": YES,
    "org.freedesktop.udisks2.eject-media": YES,
    "org.freedesktop.udisks2.power-off-drive": YES,
    // required for udisks2 if using udiskie from another seat (e.g. systemd):
    "org.freedesktop.udisks2.filesystem-mount-other-seat": YES,
    "org.freedesktop.udisks2.filesystem-unmount-others": YES,
    "org.freedesktop.udisks2.encrypted-unlock-other-seat": YES,
    "org.freedesktop.udisks2.eject-media-other-seat": YES,
    "org.freedesktop.udisks2.power-off-drive-other-seat": YES
  };
  if (subject.isInGroup("storage")) {
    return permission[action.id];
  }
});

Einfach den ganzen Kasten hier kopieren und im Terminal einfügen. Speichern (Strg+X -> j -> Enter), fertig.

2. Benutzer zur Gruppe “storage” hinzufügen

sudo gpasswd -a <user> storage

Wobei <user> durch den eigenen Benutzernamen ersetzt werden muss. In meinem Fall also diabolus.

sudo gpasswd -a diabolus storage

Okay. Nachdem der Benutzer neu angemeldet, oder die Kiste neu gestartet wurde, sollte nun das automatische einbinden von Datenträger wieder funktionieren.

Pamac (Softwareaktualisierung)

In mancher Hinsicht bin ich nicht der Hardcore-Linux-User. Hier und da gibt es Dinge, die habe ich einfach ganz gerne mit GUI. Warum? Weil es bequemer ist!

In diesem Artikel geht es deshalb um Pamac. Einem Tool, welches ich seit vielen Jahren gesucht habe!

Vorgeschichte

Ich komme ja ursprünglich aus der AmigaOS-Welt, hatte nur einen kurzen Ausflug während Windows XP in dieses Lager und bin dann aber schnell weiter zu Linux. Allerdings nicht zu den “aufgeblasenen” Distributionen wie Ubuntu, Fedora oder Suse, sondern zu Gentoo. Einfach aus dem Grund, ich will der sein, der seine Software installiert. Ich will keine GB grossen Installationsmedien und am Ende dann nicht irgendwelchen Murks auf dem Rechner haben, welchen ich gar nicht benutze.

Allerdings hatte ich auch schon Ubuntu im Einsatz, als ich mir mein Gentoo damals zerschossen hatte und nicht drei Tage warten konnte, bis es neu installiert war. Ich fand Ubuntu auch gar nicht schlecht, bis es dann auch irgendwie immer mehr wie Windows wurde. Zwischenzeitlich war ich dann wieder auf Gentoo und meine Frau hatte in der Zeit die Nase voll von Windows. Ihr aber Gentoo zu installieren, hielt ich für zu riskant.

So kam ich zu Linux Mint, was ich auch heute noch als durchaus brauchbar ansehe, sobald man Schrott wie LibreOffice rausgeschmissen hat.

Auf meinem Gentoo und dann später bei Arch, habe ich aber ein Tool doch vermisst, was Mint von Hause aus mitbringt. Dieses kleine Ding, was einen über Updates informiert! Warum? Na eben weil man dann weiss, dass es da etwas neues gibt, was gerade bei Browsern oft gegen kritische Sicherheitslücken helfen kann.

Lange habe ich gesucht und sehr vieles ausprobiert. Einiges war klein, flink, aber wollte nicht das machen, was ich haben wollte. Andere Varianten waren derart aufgeblasen, dass ging gar nicht und wieder andere Varianten taten zwar im Prinzip ihren Dienst, verstanden aber die Legitimation irgendwie nie.

Im Laufe der Zeit habe ich dann meinen “Patch-Day” eingeführt. Jeden Montag starte ich alle meine Rechner, vier an der Zahl, logge mich in einem gesplitteten Terminal auf allen ein und starte dann:

sudo pacman -Syyu --noconfirm

Noch jeweils das Passwort eingeben (könnte man allerdings mit Tmux auch automatisieren) und schon läuft überall das komplette Systemupdate durch. Da man davon ausgehen kann, dass es nach einer Woche unter Arch auch garantiert ein Update vom Kernel gab, danach noch ein Neustart und alles ist aktuell.

Das heisst aber auch, unter Umständen schleppe ich eine ganze Woche eine Version eines Browsers durch die Gegend, welche ein kritisches Sicherheitsproblem hat!

Pamac

Durch einen Zufall bin ich dann auch Pamac gestossen. Eine grafische Benutzeroberfläche für den Paketmanager. Der wurde in einem Video, ich glaube zu Garuda Linux gezeigt und eigentlich hatte ich gar nicht vor, ihn auszuprobieren. Einfach aus dem Grund, ich habe schon so viel getestet und war immer enttäuscht. Doch aus irgendeinem Grund habe ich es dann doch ausprobiert und was soll ich sagen, dieses kleine Ding funktioniert!

Nach der Installation hat man, eventuell auch erst nach dem nächsten Neustart, in der Leiste (auf jeden Fall unter Cinnamon) ein kleines Icon.

Sieht es so aus, ist alles aktuell. Taucht aber irgendwo eine Aktualisierung auf (angeblich auch bei AUR, Flatpack und Co, was ich aber noch nicht gesehen habe), wird das Icon rot. Ein Klick darauf öffnet die Oberfläche und zeigt sofort an, was aktualisiert werden kann. Das ist auch schon alles ausgewählt und man muss nur auf Übernehmen klicken, sein Passwort eingeben und schon geht es los.

Je nach Grösse und Leitung dauert das einen Moment. Aber bislang bei mir nie wirklich lange. Es gab bisher auch noch nie einen Fehler, oder irgendein Problem. Da ich in der Hinsicht aber zumindest ein wenig Sicherheit haben wollte, habe ich das Programm jetzt schon eine etwas längere Zeit im Einsatz und schreibe erst jetzt.

Ist alles durchgelaufen, bekommt man den Erfolg gemeldet.

Fertig.

Mein Fazit deshalb fällt positiv aus. Es ist endlich ein Tool, was auch wirklich seine Aufgabe übernimmt, nicht elend gross ist und nicht an allen Ecken zickt. Natürlich kann man damit auch Software installieren und wieder entfernen.

Da muss ich sagen, installieren tue ich weiterhin von Hand. Auch wenn ich etwas entferne, mache ich das in der Regel ebenfalls noch im Terminal. Aber wenn man hier und da mal durch die installierten Pakete schauen kann, dann fallen einem manchmal Dinge auf, die man mal installiert hat, nie wirklich benutzt und die eigentlich überflüssig sind. Da finde ich in so ein Tool tatsächlich bequemer. Einfach als zu entfernen markieren, am Ende übernehmen und das Zeug ist weg. Das hat in meinen Augen definitiv einen Vorteil!

Ich werde es jetzt mal mit AUR testen. Darüber habe ich zum Beispiel den Brave-Browser installiert und der hat mit Sicherheit in der Zwischenzeit wieder Updates, die mir nicht gemeldet wurden. Wie man das zum laufen bringt, werde ich mir mal genauer anschauen.

Installation

Ja, ich weiss. Normalerweise steht die Installation eigentlich ganz oben im Artikel. Ich bin aber ein Rebell und halte mich nicht an die normalen Gepflogenheiten! So, wollte ich mal gesagt haben!

Pamac befindet sich nicht in den allgemeinen Paketquellen von Arch. Sprich, man muss AUR bemühen. Die Entsprechende Seite lautet:

https://aur.archlinux.org/packages/pamac-aur/

Wie man etwas unter Arch mittels AUR installiert, habe ich in diesem Artikel beschrieben.

Cinnamon und die Buttons in der Titelleiste

Irgendwo in den letzten Updates von Cinnamon scheint die Einstellung verloren gegangen zu sein, mit der man die Buttons in den Titelleisten der Fenster individualisieren kann. Irgendwie kann man nur noch einstellen, ob die “Traditionell” angeordnet sein sollen, also Links, wie beim Mac eben Rechts.

Wo liegt das Problem?

Okay. Daran werden sich wahrscheinlich die aller wenigsten stören. Im Prinzip ist es ja egal, wo die Buttons sitzen. Wobei ich persönlich die Bezeichnung ja anders gewählt hätte, in Mac und Windows, denn wie ich mich noch erinnern kann, ist mit Windows 95 der Close-Button auf die rechte Seite gewandert!

Egal. Was aber, wenn man es anders haben will? Wenn man zum Beispiel vom AmigaOS kommt und das nur deshalb nicht mehr benutzt, weil die Hardware dafür zu teuer geworden ist?

Nun, dazu könnte man mich eigentlich zählen. Allerdings muss ich zugeben, mein Desktop ist optisch schon sehr stark an Windows 10 angelehnt. Ich habe allerdings auch noch nie ein Geheimnis daraus gemacht, dass mir die Optik von Windows gefällt. Wobei, Windows 3.11 (Windows for Workgroups) hat mir gefallen und dann ging es ab Vista wieder los. Rein optisch, dass sei dazu gesagt!

Nur diese Buttons, da habe ich mein Problem mit. Man bekommt es quasi aufgezwungen, dass es wie bei Windows aussieht, oder eben auch wie bei Mac. Zwang gefällt mir nicht!

Linux ist in der Hinsicht aber in der Regel sehr freundlich. Wie gesagt, bis vor kurzem konnte man es noch in den Einstellungen von Cinnamon so einstellen, wie man es sich wünscht. Das geht nun aber nicht mehr! Andere DE können das problemlos und stellenweise sogar extrem radikal. AwesomeWM kann man zum Beispiel problemlos aussehen lassen, wie die Workbench vom AmigaOS. Ist aber Fummelarbeit.

So. Nun sitze ich da, habe notgedrungen nun auch auf meinem Desktop-Rechner Arch installiert und will diesen verdammten Close-Button (und nur den!) nach Links.

Abhilfe

Aber Linux wäre nicht Linux, wenn man da nicht etwas dran drehen könnte! Okay, so wie ich gehört habe, kann man Windows mittlerweile auch von Hand umbauen, aber da habe ich keinen Plan von und bin auch der Meinung, wer Windows einsetzen will, der sollte auch beim Design bleiben. Das ist jetzt nicht negativ gemeint, aber Windows ist eben Windows und ich bin der Meinung, da gehört es einfach dazu, dass man Vorgaben bekommt. Meine Meinung!

Wir sind aber unter Linux, genauer gesagt unter Arch-Linux. Zumindest wenn man sich die Kategorie anschaut, unter der ich hier schreibe. Also, dann schieben wir den verdammten Button jetzt eben mal nach Links!

Dazu brauchen wir das Tool dconf-editor. Falls das noch nicht installiert ist, holen wir es eben schnell nach!

sudo pacman -S dconf-editor

Alternativ kann man sich natürlich auch mit su die SuperUser-Rechte geben und es so installieren. Wie man es lieber hat.

Nach der Installation kann man das Ding dann starten. Beim ersten Mal erscheint eine Meldung, die einen vorwart und man muss bestätigen, dass man ganz vorsichtig ist. Dann ist man hier:

Oder zumindest so ähnlich. Nun könnte ich zeigen, wie man zu dem gesuchten Eintrag kommt. Das dauert aber eindeutig zu lange und deshalb klickt man oben auf die Lupe und gibt folgendes ein:

button-layout

Und schon hat man die Auswahl eingegrenzt!

ACHTUNG! Es ist NICHT die erste Auswahlmöglichkeit mit muffin! Die funktioniert nicht mehr! Man muss stattdessen die zweite Auswahlmöglichkeit nehmen, also:

/org/cinnamon/desktop/wm/preferences/button-layout

Dann ist man hier:

Der Schalter Vorgabewerte verwenden muss dabei ausgeschaltet sein, sonst kann man das Textfeld nicht editieren.

Gut. Da kann man setzt alles Mögliche einstellen. Ich denke mal, die Begriffe sollten selbsterklärend sein. Wichtig dabei ist der “:”, denn der sagt an, wo ein Button auftauchen soll. Links vom Doppelpunkt wäre dann? Na? Wer weiss es? Korrekt! Auf der linken Seite! Das heisst, wenn ich also den Close-Button auf der linken Seite haben will, dann sieht das so aus:

close:minimize,maximize

Cool. Klappt das auch? Schauen wir doch mal nach!

Yes Baby! Close-Button ist Links, die anderen Buttons sind Rechts, so will ich das haben! Mission erfüllt!

Nvidia Treiber

Da war doch was! Ältere Nvidia-Grafikkarten vertragen sich nicht mit den aktuellen Treibern. Doch während man für Windows die entsprechende Version, welche noch die Karte unterstützt, runterladen und installieren kann, geht es bei Linux ein wenig anders. Wie es bei Arch gemacht wird, will ich hier beschreiben.

Vorbereitung

So viel gibt es da nicht vorzubereiten. Man muss wissen, welche Karte man hat und dann herausfinden, welchen Treiber man braucht.

Welche Karte man hat findet man eigentlich ganz einfach heraus. Man öffnet einen Terminal und gibt folgendes ein:

sudo lspci -k | grep -A 2 -E "(VGA|3D)"

Bei meiner Frau kommt dann folgendes raus:

01:00.0 VGA compatible controller: NVIDIA Corporation GT218 [GeForce 210] (rev a2)
	Subsystem: ASUSTeK Computer Inc. EN210 SILENT
	Kernel driver in use: nvidia

Es handelt sich also um eine GT218 der GeForce 210 Serie. Damit können wir nun auf die Suche nach dem richtigen Treiber gehen. Dafür bietet sich natürlich die hauseigene Seite von Nvidia an, die man hier findet.

Das sind meine Suchparameter und wenn ich die abschicke bekomme ich folgendes:

Wir brauchen also die Version 340.107. Sollte ja kein Problem sein. Man kann sich den Treiber auch direkt von der Seite laden, ich bevorzuge aber den Weg über den Paketmanager.

Installation

Findet man jetzt das entsprechende Paket für den Treiber in pacman unter Arch? Nee, Arch-Geleckt! Das müssen wir über AUR machen. Das ist aber auch irgendwie gar nicht so schlimm und allgemein empfinde ich diese Variante in einigen Punkten sogar besser als die Overlays in Gentoo. Zumindest in mancher Hinsicht.

Also. Wir brauchen zuerst mal eine Quelle. Da ist zum Beispiel Google sehr freundlich, denn wenn man dort eingibt:

arch nvidia 340

Bekommt man dieses Ergebnis so etwa auf dem zweiten Platz.

https://aur.archlinux.org/packages/nvidia-340xx/

Dort findet sich nun der Link, mit dem man sich die Quelle mittels git besorgen kann. Ich habe auf eigentlich allen Rechnern mit Arch im Home-Verzeichnis meines Benutzers das Verzeichnis »aur«, wo ich so zeug drin baue und von dort aus installiere. Wohl gemerkt, Pakete mit aur baut man als Benutzer und installiert sie erst danach als Root! Verwirrt mich zwar ein bisschen, ist aber kein Problem. Ich gehe also in mein aur Verzeichnis und gebe dort folgendes ein:

git clone https://aur.archlinux.org/nvidia-340xx.git

Das Ergebnis ist nicht sonderlich spektakulär:

Wir haben aber nun ein neues Verzeichnis namens »nvidia-340xx« und da wechseln wir rein. Wie das geht weiss hoffentlich jeder.

Das Paket wird so erstellt:

makepkg

Macht man das zum ersten Mal kann man stark davon ausgehen, dass folgendes dabei herauskommt:

Da wäre das, was ich am Overlay in Gentoo besser finde. Da werden Abhängigkeiten dann einfach gleich mitinstalliert. Aber gut, kümmern wir uns drum.

Eigentlich ist nur »nvidia-340xx-utils=340.107« wirklich interessant. Die beiden anderen Punkte beziehen sich auf den Kernel. Wenn man sein System aktuell hält, bekommt man diese Meldung natürlich nicht. Da ich es hier aber in einer virtuellen Umgebung demonstriere und die noch nicht auf dem neusten Stand ist, kommt es eben zu dieser Meldung.

Schau an, kaum hat man das System auf den neusten Stand gebracht, klappt es auch mit den Abhängigkeiten!

Wie ich ja schon sagte, nur »nvidia-340xx-utils=340.107« ist wirklich von Belangen und da man das nicht einfach in den Paketquellen findet, wer hätte es gedacht, muss man es ebenfalls mittels AUR installieren.

Also raus aus dem Verzeichnis und das entsprechende Paket mittels git clonen.

git clone https://aur.archlinux.org/nvidia-340xx-utils.git

Rein in nvidia-340xx-utils und dort das ganze bauen, also:

makepkg

Da gibt es dann normalerweise keine Probleme mit irgendwelchen Abhängigkeiten und man kann warten, bis alles geladen und gebaut wurde. Dann geht es weiter.

Wenn alles fertig ist, sieht es in etwa so aus, dann können wir weitermachen. Gebaut ist jetzt alles, jetzt muss es nur noch installiert werden und das machen wir mit pacman als Root.

sudo pacman -U nvidia-340xx-utils-340.107-3-x86_64.pkg.tar.xz

Das dauert einen kleinen Moment. Danach ist das Paket aber installiert und nun können wir uns endlich um den Treiber kümmern!

Also wieder raus aus dem Verzeichnis und zurück nach nvidia-340xx. Wenn wir alles richtig gemacht haben, dann sollte das Paket jetzt einwandfrei bauen!

Bingo! Jetzt hat das alles geklappt und wir können endlich den Treiber installieren.

sudo pacman -U nvidia-340xx-dkms-340.107-3-x86_64.pkg.tar.xz

Geschafft! Damit ist der Treiber nun endlich installiert und kann verwendet werden. Normalerweise startet man einfach einmal neu und fertig!

Update

Wieso genau denn Updates? Die Treiber sind doch uralt, dafür gibt es doch keine Updates mehr, oder?

Doch, die gibt es! Allerdings handelt es sich dabei eigentlich nur um Patches, damit der Treiber mit dem aktuellen Kernel funktioniert.

Um ein Update durchzuführen, muss man jetzt nicht wieder das ganze Spielchen von Vorne beginnen. Auch braucht es nvidia-340xx-utils dafür nicht. Es geht einfach und schnell.

Man muss in das Verzeichnis »nvidia-340xx« gehen und dort mittels git die neuste Version herunterladen.

git pull

Gibt es eine neue Version wird das, was sich geändert hat, angezeigt. Danach ist es das gleiche Spiel wie oben. Erst makepkg, dann pacman -U.

Das muss man aber nicht wirklich oft durchführen. Eben dann, wenn ein neuer Kernel installiert wurde, der mit der aktuellen Version des Treibers nicht mitspielt. Das merkt man ja schnell, wenn man den Rechner bootet und anstatt dem Login-Bildschirm blinkt da nur ein Cursor. Da empfiehlt es sich dann, den Treiber zu aktualisieren und in aller Regel funktioniert es dann sofort wieder.

Anmerkung

Auch wenn ich hier jetzt auf einen spezifischen Treiber eingegangen bin, geht es doch auch mit anderen Versionen. Man muss dann eben nur die entsprechende Pakete auswählen, dann klappt das auch. Einfach mal ein bisschen mit rumspielen, so viel kann man da nicht kaputt machen!

Cinnamon auf Deutsch unter Arch

Also, ich muss ja doch mal zugeben, Arch-Linux hat bei mir viel an “Zuneigung” gewonnen. Es gibt zwar ein paar Punkte, da ist mir Gentoo deutlich lieber, aber im Allgemeinen ist Arch echt super!

Mittlerweile läuft es nativ auf meinem NetBook, dem Rechner meiner Frau und meinem neuen Laptop für die Arbeit, der mir freundlicherweiser von meinem Kollegen zur Verfügung gestellt wurde. Der eigentliche Vorteil an Arch ist, Installation und Updates dauern nur einen Bruchteil der Zeit, wie Gentoo sie verlangt.

Aber gut, darum geht es ja jetzt nicht. Mittlerweile hat sich ja Cinnamon auf meinen Rechnern als Desktop durchgesetzt. Das hat einige Gründe, wobei keiner davon stichhaltig genug ist, um ihn zu nennen. Ich wollte eben einfach mal wieder etwas neues. So. Wie man das installiert, habe ich ja im Artikel »Bis zur grafischen Benutzeroberfläche« beschrieben.

Es gibt da aber so ein Punkt, den ich nicht ganz verstanden habe und der mich schon ein bisschen aufgeregt hat. Cinnamon blieb unter Arch stur auf englisch! Das ist im Allgemeinen kein Problem, da ich es trotzdem verstehe, aber wenn ich schon ein DE einsetze, der so viel Ballast mitbringt, dann soll der doch auch bitte auf deutsch sein. Denn, unter Gentoo ist er sofort auf deutsch!

Aber was tun, wenn da keine Einstellmöglichkeiten für sind? Ich habe gesucht und gesucht, den Fehler auch in der generellen Lokalisierung des Systems vermutet doch nein. Nichts von dem war es. Es war eigentlich viel einfacher!

Gibt man folgendes im Terminal ein

sudo pacman -S cinnamon-translations

dann wird das Paket installiert und sofort danach, ohne irgendetwas neustarten zu müssen, ist Cinnamon auf deutsch. Das war echt nicht schwer und erklärt auch, warum es bei Gentoo sofort dabei war. Unter Gentoo wird das Paket über die Einstellungen vom System gleich mitinstalliert. Peng, fertig!

So einfach kann es gehen. Bei meiner Frau ist es jetzt auch auf deutsch und die ist auch Happy. Manchmal sind die Lösungen so einfach! Aber wenn man es anders gewohnt ist, werden auch Banalitäten gerne mal zum Geduldsspiel!

Arch und AUR

Ach herrje, da war ja noch was bei Arch, was ich auf dem Server wegen PHP 7.1 und mcrypt verwenden musste.

AUR bedeutet ArchLinux User-Community Repository und ist wohl im Prinzip etwas ähnliches wie die Overlays unter Gentoo. Einfach eine Sammlung an Paketen, die nicht in den offiziellen Paketquellen vorhanden sind.

Da wird man wohl auch nicht wirklich drum herum kommen und das ist Grund genug für diesen Artikel. Natürlich gibt es auch dazu eine sehr gute Anleitung, aber ich notiere mir mein Vorgehen trotzdem!

Vorbereitung

Um AUR benutzen zu können braucht man base-devel, was ich ja schon bei der Installation eingebaut habe und git wäre auch nicht ganz unnütz.

pacman -S git

Da ich mal davon ausgehe, dass ich noch mehr Zeug über AUR installieren werde, erstelle ich zudem noch einen eigenen Ordner dafür und nenne den “Diabolus kleiner Ordner für alles was mit AUR zu tun hat”. Da mir das aber zu lang zum tippen ist, kürze ich es ab und nenne ihn einfach aur.

mkdir aur

Das war nur ein Scherz. Ich denke mal, wie man einen Ordner anlegt sollte man schon wissen, wenn man sich mit so etwas auseinandersetzt.

Paket beziehen

Da ich einfach mal testen will, wie sich Arch im Vergleich zu Mint schlägt, will ich ein Benchmark installieren. Da kann man natürlich nun wieder streiten, was da gut ist, was nicht, was sinnvoll ist und was unnütz usw. Da ich aber nur ein paar Werte möchte, die ich vergleichen kann, benutze ich einfach Phoronix Test Suite.

git clone https://aur.archlinux.org/phoronix-test-suite.git

Ja, dafür habe ich natürlich ins aur-Verzeichnis gewechselt, da soll es ja schliesslich rein. Mehr sollte zum beziehen des Paketes nicht nötig sein. Wohl gemerkt, alles läuft unter dem Benutzer, nicht unter Root!

Paket erstellen

Nachdem nun alles vorhanden ist, kann das Paket gebaut werden. Ich bin mal gespannt, ob da irgendwelche Abhängigkeiten vorhanden sind, die ich vorher noch installieren muss.

cd phoronix-test-suite
makepkg

Ja, zwischenzeitlich habe ich das Theme von Cinnamon geändert, Firefox installiert und arbeite mittlerweile mit Terminator.

Schau an, eine Abhängigkeit fehlt. Ich hätte mit viel gerechnet, aber nicht mit php. Egal, wird einfach installiert.

pacman -S php

Und noch einmal.

makepkg

Schon läuft die Sache. Das Paket wurde erfolgreich erstellt und kann damit nun installiert werden.

Paket installieren

Dieses mal wieder mit Root-Rechten und pacman.

pacman -U phoronix-test-suite-8.8.1-1-any.pkg.tar.xz

Tada, fertig!

Paket ausprobieren

phoronix-test-suite benchmark universe

Da mir das aber derzeit alles doch ein wenig zu lange dauert (da werden dutzende Tests runtergeladen und installiert), werde ich das Ergebnis ein andermal präsentieren. Bis dahin bin ich aber zufrieden. Hat alles prima funktioniert!

Bis zur grafischen Benutzeroberfläche

Für den Hardcore-Linux-User ist dieser Schritt wahrscheinlich etwas, worüber er nur schmunzelt. Grafische Benutzeroberfläche. Wofür, wenn man doch eine Konsole hat?

Ich denke aber, wer so drauf ist, der wird sowieso diese Anleitung nicht lesen, denn der installiert ein OS nach Gefühl und braucht dafür keine wirkliche Anleitung mehr. Also glaube ich, ich kann einfach fortfahren.

Es geht nun um folgendes. Es wird alles eingerichtet und installiert, damit am Ende eine grafische Benutzeroberfläche mit Login nach dem booten erscheint. Also, ans Werk!

Benutzer einrichten

Das ist ja jetzt keine Herausforderung!

useradd -m -g users -s /bin/bash diabolus

Wie auf allen meinen System verwende ich auch hier wieder den Benutzer diabolus. Ist einfach so, wird sich so schnell auch nicht ändern. Der braucht jetzt aber noch ein Passwort.

passwd diabolus

Da ich nicht für jeden Befehl, der Root-Rechte benötigt, mich als SuperUser einloggen will, kommt jetzt noch sudo auf das System, um auch als diabolus Befehle mit den entsprechenden Rechten ausführen zu können.

pacman -S sudo

Das muss jetzt auch noch so eingerichtet werden, dass ich auch als diabolus den Chef spielen kann.

nano /etc/sudoers

Dort muss nur die Zeile #%wheel ALL=(ALL) ALL auskommentiert werden und wieder speichern. Damit werden alle Benutzer, die zur Gruppe wheel gehören automatisch berechtigt, Befehle auch mit Root-Rechten zu starten. Aber, diabolus ist noch nicht in dieser Gruppe, also rein mit ihm!

gpasswd -a diabolus wheel

Weitere Einstellungen vornehmen

Was mir aufgefallen ist, die Einstellungen für die Tastatur habe ich leider im letzten Artikel nicht korrekt beendet. Sprich, kaum hat man neu gebootet, hat man wieder das englische Tastatur-Layout. Das wird jetzt geändert.

echo KEYMAP=de-latin1 > /etc/vconsole.conf

Damit sollte sich das geregelt haben.

Ausserdem ist da noch die Sache mit der lokalen Uhrzeit. Natürlich will ich, dass die richtige Uhrzeit angezeigt wird. Es wäre zwar auch möglich, dass ich einfach immer die beiden Stunden dazurechnet, aber es muss ja nicht sein. Also, wird das auch noch angepasst. Hätte ich ebenfalls im letzten Artikel schon machen können.

ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime

Schon passt auch die Uhrzeit.

Netzwerk

Ach, was ist denn da mit dem Netzwerk los? Warum kriege ich keine Verbindung und kann über pacman nichts installieren? Nun, irgendwie fehlen da die nötigen Einstellungen. Gentoo scheint mir in der Hinsicht ein wenig flexibler!

Egal, wird das eben eingerichtet. Dazu muss ich erst einmal herausfinden, welches Interface ich ansprechen muss. Das ist recht simpel.

ls /sys/class/net

Okay. Das hätte ich dann ja herausgefunden. Es ist ens3, was ich als Interface verwenden muss. Bei Arch ist zudem ein kleiner Helfer dabei, der bei dem Einrichten des Netzwerkes hilft. Dieser nennt sich netctl.

Dieser Helfer möchte aber ein Profil, welches es benutzen soll. Dieses Profil ist nicht schwer anzulegen und gehört nach /etc/netctl/net, so habe ich es genannt und darin steht folgendes:

Interface=ens3
Connection=ethernet
IP=dhcp

Noch schnell speichern und dieser Punkt wäre geklärt. Dazu braucht das Netzwerk aber noch einen Eintrag in /etc/resolv.conf, was auch nicht so schwer ist, denn da steht folgendes drin, zumindest wenn man qemu verwendet:

nameserver 10.0.2.3

Das starte ich jetzt so:

netctl start net

Da ping unter qemu nicht so wirklich funktionieren will, installiere ich einfach mal wget, weil man das ja immer mal gebrauchen kann.

pacman -S wget

Siehe da, es funktioniert! Die Verbindung mit dem Netzwerk steht und die Arbeit kann weiter gehen. Zuerst sollte das aber auch immer beim booten gestartet werden. Ist in meinen Augen sinnvoll!

netctl enable net

Ein paar nützliche Dinge installieren

Es gibt da so ein paar Dinge, die man an Bord haben sollte. Zumindest denke ich das, obwohl es mir unter qemu noch nicht so ganz klar ist, ob ich es da wirklich brauchen werde. Es wird aber auch nichts schaden.

pacman -S acpid dbus avahi

Installiert ist es, ich aktiviere es aber noch nicht. Einfach um herauszufinden, ob ich es unter qemu nun brauche, oder eben nicht.

Grafische Benutzeroberfläche

Hier gibt es sofort ein Problem. Welche soll ich denn nun installieren? Als Erstes kommt mir natürlich Awesome WM in den Sinn, doch das läuft ja auf meinen ganzen Rechnern. Da lerne ich also schon genug darüber. Mate wäre noch eine Idee, aber kenne ich auch schon. Deshalb denke ich, ich werde es mit Cinnamon versuchen. Damit habe ich noch nicht so viel Erfahrung und kann die dabei gleich sammeln.

Also, Cinnamon soll es werden, dann geht es auch gleich los!

pacman -S cinnamon

Das dauert dann wieder ein bisschen. Es ist schon lustig, wie viel dabei heruntergeladen und installiert wird!

Das soll dann ja auch starten, wenn der Rechner, oder der virtuelle Rechner gestartet wird. Also installiere ich auch noch lightdm, damit kenne ich mich ja mittlerweile ganz gut aus.

pacman -S lightdm

Das geht dann doch erfreulich schnell. Jetzt muss Arch das nur noch beim booten starten.

systemctl enable lightdm

Um zu testen, ob alles auch einfach so reibungslos funktioniert, mache ich nun einfach ungetestet einen Neustart und bin gespannt was passiert!

Und was sehe ich? Funktioniert nicht! Also Doktor spielen. Eigentlich mag ich das, ausser es will so gar nicht funktionieren!

Woran könnte es denn nun liegen? Leider an einigem! Ich fange also an, diese Faktoren auszuschliessen. Zuerst fliegt mal lightdm aus der Gleichung und ich starte den xorg-server mittels startx. Das ist ja nicht besonders schwer und bedarf nur einer kleinen Anpassung.

Geändert werden muss die Datei /etc/X11/xinit/xinitrc. Ganz unten ist eingetragen, was beim starten des Servers alles gestartet werden soll. Das wird zuerst mal gelöscht, oder mit # zum Kommentar gemacht, damit es nicht mehr benutzt wird. Anschliessend kommt eine einzige Zeile hinzu.

exec cinnamon-session

Nach dem speichern dann einfach startx und schauen was passiert. Was passiert? Fehlermeldungen! Der Server will einfach nicht starten. Woran kann das nun liegen?

Schlussendlich scheint es an vmware zu liegen. Bei Windows 10 und Linux Mint macht der keine Probleme, aber Arch scheint damit nicht klar zu kommen. Schön, wenn man da die Wahl hat. Ich ändere einfach die Einstellungen beim starten.

Aus

-vga vmware

wird

-vga std

Nach dem booten dann der Test mit startx. Was kommt dabei heraus?

Na das ist doch ein Ding! Funktioniert! Nebenbei, mit -vga virtio funktioniert es auch! Was da nun Vorteile hat weiss ich nicht, werde ich aber noch prüfen.

Aber, es funktioniert! Cinnamon startet, sieht aber ehrlich gesagt nicht toll aus. Ausserdem bekomme ich die Meldung, dass keine Hardwarebeschleunigung aktiv ist. Das ist richtig, stört mich aber auch nicht. Meines Wissens nach liegt das hauptsächlich daran, dass ich vnc zum Anzeigen des Gast-Systems verwende. Ich kann damit leben, also mache ich mir da jetzt auch keine wirklichen Gedanken darum. Die Meldung wird einfach weggeklickt und das Cinnamon nicht gut aussieht, lässt sich ja auch ändern.

Aber, so will ich das nicht haben! Ich will, dass mein System direkt in die grafische Benutzeroberfläche startet. Das heisst, an dem Punkt muss ich nachbessern!

Erst nachdenken, dann handeln!

Natürlich mache ich ganz gerne mal Fehler. Damit habe ich keine Probleme, denn aus denen kann man ja lernen. Wenn ich aber aus einem Schnellschuss einen Fehler mache, ärgert mich das immer heftig!

So auch dieses Mal. Anstatt mich mal darum zu kümmern, warum lightdm nicht mitspielen will, wollte ich einfach eine Alternative ausprobieren. Dabei kam mir sofort gdm in den Sinn. Also:

pacman -S gdm

Soweit noch alles okay, wäre da nicht eine Kleinigkeit. Wie ich nun wieder weiss, gdm installiert dann gleich das komplette gnome mit! Das wollte ich aber eigentlich gar nicht!

Aber gut, auch aus dem Fehler kann man lernen! So kann ich immerhin schauen, wenn ich gdm ausprobiert habe, wie man gdm und alles, was es installiert hat, wieder entfernt. Ist ja immerhin auch gut zu wissen, oder?

Aber gut, bis dahin bleibt gdm erst einmal drauf und funktionieren tut es auch! Also, noch ein Schritt weiter und noch zwei Probleme gefunden!

Problem 1: Es ist noch das englische Tastatur-Layout in X11 eingestellt

Problem 2: Ich habe keine Terminal-Emulation installiert. Ist Cinnamon gestartet, kann ich quasi gar nichts machen!

Problem 2 ist ja schnell gelöst. Ich bin ein Freund des Terminals Terminator und den will ich natürlich auch unter Arch haben.

pacman -S terminator

Problem 2 sollte damit gelöst sein. Nun mal schauen, wie man unter Arch das Tastatur-Layout für X11 ändert. Geht wahrscheinlich genauso wie bei Gentoo, aber vielleicht gibt es dafür ja auch einen Arch-Weg.

Damit sollte es funktionieren!

localectl set-x11-keymap de pc105 nodeadkeys

Da ich der Sache vertraue, lasse ich gdm direkt beim booten starten.

systemctl enable gdm

Neustarten und hoffen.

Bingo! Läuft! Endlich! Deutsches Tastatur-Layout ist auch eingestellt, damit wäre ich ja so etwas wie fertig, denke ich mal!

Arch-Linux installieren

Nein, ich erfinde das Rad jetzt nicht neu. Es gibt bereits eine detaillierte und einwandfreie Anleitung für Anfänger und ich sehe eigentlich keinen Grund, diese neu zu schreiben.

Dennoch will ich hier beschreiben, wie ich Arch-Linux in qemu installiere, wobei ich wirklich nur die Schritte zeigen werde, ich ich selbst gegangen bin. Es ist quasi nichts anderes als eine Aufzeichnung von dem, was ich getan habe, um es bei Bedarf nachvollziehen zu können.

Warum aber Arch-Linux? Nun, ganz einfach. Eigentlich benutze ich Gentoo-Linux auf meinen Rechnern und daran wird sich so schnell auch nichts ändern. Es ist ein System für Bastler und dadurch verbessert sich mein Verständnis für Linux immer mehr. Ausserdem kenne ich mich damit mittlerweile recht gut aus und ausser, dass Installationen zuweilen echt lange dauern, habe ich daran auch nichts zu meckern.

Dennoch neige ich dazu, mich auch mit anderen Distributionen auseinandersetzen zu wollen. Kann schliesslich nie schaden! Ausserdem habe ich einen Server gemietet, auf dem Arch-Linux läuft. Okay, da hätte ich auch Gentoo drauf installieren können, aber die Zeit war einfach nicht da.

Ich bin nun der Meinung, ich sollte das OS nun auch kennen und damit herumspielen, ohne die Funktionsfähigkeit des Servers zu gefährden! Deshalb kommt auch Arch in die virtuelle Umgebung und dort kann ich damit spielen! Geht es schief, ist es nicht dramatisch!

Vorbereitung

Vorzubereiten gibt es da ja nicht viel. Das ISO habe ich mir von der oben verlinkten Anleitung geholt und für diesen Artikel verwende ich archlinux-2019.07.01-x86_64.iso. Das kommt in das Verzeichnis arch.

Nun will qemu ja auch eine Festplatte. Aus Platzgründen fällt die bei mir nicht besonders gross aus. Lediglich 25 GB spendiere ich dem System. 20 GB für das System, der Rest als Swap und Boot.

qemu-img create -f qcow2 arch.img 25G

Fertig.

Damit sind die Vorbereitungen soweit abgeschlossen und ich könnte qemu jetzt starten. Da ich aber die Angewohnheit habe, ein Skript dafür zu schreiben, lege ich das erst einmal an. Es trägt den bezeichnenden Namen startArch.sh und liegt im gleichen Verzeichnis. Der Inhalt ist ebenfalls nicht besonders spektakulär:

qemu-system-x86_64 -m 2048 -enable-kvm -smp 2 -net nic -net user -vga vmware -display vnc=:6 -cdrom archlinux-2019.07.01-x86_64.iso -boot c -hda arch.img -device virtio-serial

Ich neige dazu, über vnc auf qemu zuzugreifen, wofür der Parameter -display vnc=:6 verantwortlich ist. Klappt alles, kann ich mittels vncviewer :6 dann darauf zugreifen. Das ist aber Geschmackssache und muss man nicht so machen.

Um das Skript ausführbar zu machen müssen noch die Rechte geändert werden.

chmod 0744 startArch.sh

Hat alles geklappt sollte folgendes zu sehen sein.

Damit wären die Vorbereitungen auch schon abgeschlossen.

Installation

Hat alles geklappt, landet man schliesslich hier und kann loslegen!

Zuerst schaue ich, ob die Uhr korrekt eingestellt ist. Ich weiss jetzt nicht wie kritisch Arch da ist, aber bei Gentoo kann es zu lustigen Effekten kommen, wenn die Uhr zu weit von der aktuellen Uhrzeit abweicht. Beim Test war es der 27.07.2019 und es war 12:43 Uhr.

Passt! Da ja gerade Sommerzeit ist, ist die lokale Zeit UTC + 2 Stunden. Hervorragend, weiter im Text.

Jetzt kommt die Festplatte an die Reihe. 20 GB soll das System bekommen, der Rest ist Swap und eine Boot-Partition. Ich bleibe bei dem, wie ich es auch bei Gentoo immer mache. Das ist dann auch weider Geschmacksache, aber ich benutze sda1 als Boot (ext2), sda2 als Swap (linux-swap) und sda3 als Root (ext4).

Aber zuerst wird das Tastatur-Layout noch auf deutsch umgestellt.

loadkeys de-latin1

Partitionieren

Boot

Angeblich reichen ein paar MB für Boot. Ich hatte aber bei Gentoo schon das Problem, dass ein neuer Kernel keinen Platz mehr hatte. Deshalb überdimensioniere ich die Partition ganz gerne und spendiere ihr 1 GB. Schaden kann es schliesslich nicht.

Los geht es mit der Partitonierung. Hier im Schnelldurchlauf:

fdisk /dev/sda
n
p
1
Enter
+1G

Hat das geklappt?

Swap

n
p
2
Enter
+4G
t
2
82

Und? Hat funktioniert?

Fantastisch!

Root

Jetzt noch die Root-Partition. Sollte ja auch kein Hexenwerk sein.

n
p
3
Enter
+19G

Die 20 GB, die ich anvisiert hatte, haben dann leider doch nicht geklappt. Aber soll mich jetzt auch nicht stören.

Hervorragend, damit ist die Partitionierung abgeschlossen. Noch schnell alles auch auf die Platte schreiben und es geht weiter.

w

Formatieren

mkfs.ext2 /dev/sda1
mkfs.ext4 /dev/sda3

Damit sind dann Boot und Root fertig. Jetzt noch Swap.

mkswap -L swap /dev/sda2

Einbinden

Gut. Nachdem die Platten bereit sind, müssen sie auch eingebunden werden.

mount /dev/sda3 /mnt
mkdir /mnt/boot
mount /dev/sda1 /boot

Noch Swap aktivieren und alles ist bereit!

swapon /dev/sda2

System installieren

Jetzt geht es rund! Das System muss auf die Platte. Also, keine Müdigkeit vorschützen und ran ans Werk!

pacstrap /mnt base base-devel bash-completion linux linux-firmware

Das dauert einen Moment. Erst wird alles runtergeladen, dann installiert. Es geht jedoch deutlich schneller als bei Gentoo!

Natürlich muss noch fstab angelegt werden, damit das System später auch weiss, wo was zu finden ist.

genfstab /mnt > /mnt/etc/fstab

Da kommt dann folgendes bei raus.

Alles wie es sein soll. Hervorragend!

Jetzt auf ins neue System und ein paar Einstellungen treffen.

arch-chroot /mnt

Das scheint mir einfacher, als unter Gentoo. Dort muss man erst einiges in das neue System mounten. Oder, man muss es bei Arch auch, aber für die weiteren Konfiguration ist es nicht nötig. Weiss ich noch nicht.

Konfiguration

Zuerst einmal der Hostname. Den setze ich ganz banal auf arch.

echo arch > /etc/hostname

Dann soll das System natürlich auf deutsch sein.

echo LANG="de_DE.UTF-8 > /etc/locale.conf

So einfach funktioniert das aber nun auch wieder nicht. Die Locale muss natürlich auch vorhanden sein. Also wird sie erstellt.

nano /etc/locale.gen

Dort die Zeile “de_DE_UTF-8 UTF-8” auskommentieren (also das # wegmachen) und speichern.

Damit wird dem System gesagt, welche Locale vorhanden sein müssen. Nun müssen sie erstellt werden.

locale-gen

Einwandfrei, weiter im Text.

Linux will ja beim starten auch gebootet werden. Dafür müssen ebenfalls ein paar Dinge eingerichtet werden.

mkinitcpio -p linux

Da kamen ein paar Warnungen, ich denke aber mal, die kann ich erst einmal vernachlässigen.

Jetzt das Passwort für root.

passwd

Wie bei Linux üblich wird nicht angezeigt, welche oder wie viele Zeichen für das Passwort eingegeben wurden.

Bootloader

Da verwende ich Grub, wie auch bei meinen Gentoos.

pacman -S grub

Damit Grub auch beim booten gestartet wird, wird er direkt in /dev/sda installiert.

grub-install /dev/sda

Soweit, so gut!

Natürlich will Grub auch wissen, welche Kernel vorhanden sind usw. Deshalb wird es auch konfiguriert.

grub-mkconfig -o /boot/grub/grub.cfg

Geht doch! Damit sollte der Teil abgeschlossen sein.

Jetzt einmal zurück, die Partitionen wieder aushängen und rebooten!

exit
umount /mnt/boot
umount /mnt
reboot

Installation abgeschlossen! Gebootet in ein ganz frisches Arch!