Schlagwort Archiv: Linux

Eigenes Farbschema für KDE/Plasma anlegen

Das KDE/Plasma Farbschema zu ändern ist etwas aufwändiger, aber machbar.

Das KDE/Plasma Farbschema zu ändern ist etwas aufwändiger, aber machbar.

Manchmal möchte man ein eigenes KDE/Plasma Farbschema (bzgl. color-scheme) anlegen, doch nicht überall werden die neuen Farben übernommen. Panels z.B. (wie etwas Anwendungsstarter oder die Taskleiste) übernehmen Farben nicht direkt. Hier mögliche Lösungen des Problems, die mir geholfen haben:

Farbschema anlegen

Farbschemata liegen unter /usr/share/color-schemes/FooBar.color. Um ein neues Schema an zu legen kann einfach eine vorhandene Datei kopieren:

  • cp /usr/share/color-schemes/FooBar.color ~/.local/share/color-schemes/MyScheme.color

Farbschema anpassen

Nun muss man sowohl Metadaten, als auch die eigentlichen Farben anpassen:

  • Metadaten sind in der MySchema.color Datei ganz unten unter dem Punkt [General] zu finden
  • Hier den Namen anzupassen

Nun kann man die Farben anpassen. Dazu bietet KDE ein eigenes Tool (einfach nach „Colors“ um Menü suchen), welches jedoch Änderungen in eine lokale Datei schreibt (~/.config/kdeglobals), was dann nicht im neuen color-scheme enthalten ist. Entweder man kopiert dann die Daten aus ~/.config/kdeglobals heraus oder man bearbeitet die neue MySchema.color Datei manuell.

Wie ich es gemacht habe:

  • Mit KDE Farbverwaltung (nach „Colors“ suchen) Farben anpassen
  • Aus ~/.config/kdeglobals Einstellungen kopieren
  • In MySchema.color die alten durch die neuen ersetzen

Alle Eigenschaften, die man setzen kann, gibt es hier: https://hig.kde.org/style/color/dark.html

Desktop Theme erzeugen

(mehr …)

Blender Fehler amdgpu_query_info failed (-9) beheben

Nach einem Downgrade von libdrm funktioniert Blender wunderbar.

Nach einem Downgrade von libdrm funktioniert Blender wunderbar.

Seit meinem Umstieg auf Arch Linux mit xf86-video-amdgpu als Grafikkarten Treiber (für meine AMD RX570), kann ich Blender nicht mehr nutzen. Auch das Ausführen als root oder eine Neuinstallation der Treiber brachte nichts.

Beim Start von Blender taucht direkt diese Fehlermeldung auf:

~ $ blender
amdgpu_device_initialize: amdgpu_query_info(ACCEL_WORKING) failed (-9)
Segmentation fault (core dumped)

Schaut man im dump nach (unter /tmp/bmw27_gpu.crash.txt oder /tmp/blender.crash.txt), so findet man dort etwas wie dieses hier:

# Blender 2.79 (sub 0), Commit date: 2018-05-26 21:51, Hash 32432d91bbe

# backtrace
blender(BLI_system_backtrace+0x34) [0x5607730d03f4]
blender(+0xb7b562) [0x56077265c562]
/usr/lib/libc.so.6(+0x37e00) [0x7f5b39807e00]
/usr/lib/libdrm_amdgpo.so.1(amdgpu_get_marketing_name+0xc) [0x7f5afcb35bdf] [...weitere Zeilen...]
(Kompletter dump: pastebin)

Die Lösung

Die Lösung kam von einem Nutzer auf StackExchange, der vorschlägt ein Downgrade von libdrm auf eine ältere Version (2.4.93-1) zu machen.

Unter Arch habe ich dazu einfach das Tool downgrade benutzt:

  1. Aus dem AUR installieren, z.B. mit yay -S downgrade
  2. Version suchen: downgrade libdrm
  3. Passende Version (bei mir ging es mit 2.4.93-1) auswählen

Danach funktionierte alles einwandfrei.

Steam Play in Linux Mint 18.2 mit AMD-Grafikkarte

Mit Steam Play in Verbindung mit Proton lassen sich jetzt Windows spiele direkt aus Steam starten

Mit Steam Play in Verbindung mit Proton lassen sich jetzt Windows spiele direkt aus Steam starten.

Wer Linux Mint 18.4 hat, der kann sich einfach den neusten Treiber von AMD herunterladen und fertig. Linux Mint 18.2 Nutzer haben jedoch schlechte Karten, da der Treiber-Support hier etwas … naja … schwierig ist.

Ich zeige euch, wie ihr trotzdem den aktuellsten Treiber (zum Zeitpunkt dieses Artikels 18.30-641594) installieren und Steam Play nutzen könnt.

Mein System

Nicht jeder Rechner ist gleich, hier meine Konfiguration:

  • CPU: Intel Xeon E3-1231 v3
  • GPU: AMD Radeon RX570
  • Grafiktreiber vor der Installation: amdgpu 17.40
  • Linux Mint 18.2
    • Kernel: 4.13.0-16

Treiber herunterladen

Ich habe hier einfach entsprechend meiner Konfiguration den Treiber heruntergeladen. Man wird auf eine Seite mit Betriebssystemen weitergeleitet. Dort dann Ubuntu x86 64-Bit auswählen und dann weiter unten unter Ubuntu 16.04.5 schauen. Bei mir war es Version 18.30, die ich herunterladen konnte.

Die Datei ist eine .tar.xz Datei, welche ich einfach mit tar -xf amdgpu-...tar.xz entpackt habe.

System vorbereiten/hacken

Das install-script und dpkg überprüfen die distro. Man muss ihnen vorgaukeln, dass sie auf einem Ubuntu 16.04 sind:

Wie ich es gemacht habe: Die Datei /etc/os-release editiert (sudo nano /etc/os-release). Es gibt dort zwei Einträge, die wie folgt aussehen müssen:

ID=ubuntu
VERSION_ID="16.04"

Einfach sicherstellen, dass sie so aussehen und speichern (Strg+O; zum beenden Strg+X).

Treiber installieren

Jetzt wird es spannend: Ich hatte vorher schon einen Treiber installiert (amdgpu 17.40) und habe naiv angenommen, dass ich den neuen wie ein Update drüber installieren kann und er den alten damit entfernt. War glaube ich keine schlaue Idee.

Ich präsentiere hier also eine Lösung, wie ich es hätte machen sollen. Keine Garantie, dass es auch funktioniert!

Als erstes den alten Treiber gemäß Installationsanleitung deinstallieren. Also einfach amdgpu-pro-uninstall ausführen.

Danach dann erst den neuen installieren: Also ab uns Verzeichnis mit dem neuen Treiber (cd amdgpu-pro-18.30-641594/) und das install-script ausführen (sudo ./amdgpu-install).

Probleme mit Abhängigkeiten

Ich hatte dann tierische Probleme mit fehlenden/alten/falschen Abhängigkeiten. Habe mit dpkg -r <name> die einzelnen alten Pakete versucht zu deinstallieren. War viel Herumprobiererei, aber am Ende waren alle alten Abhängigkeiten entfernt und das install-script lief durch.

Die Fehler waren hauptsächlich Abhängigkeitsfehler:
Die folgenden Pakete haben nichterfüllte Abhängigkeiten:
    <name>: Hängt ab: <anderer-name> soll aber nicht installiert werden

Einfach wie beschrieben mit dpkg -r <name> die alten Abhängigkeiten entfernen und das script neu ausführen.

Vim als einfache IDE nutzen

Vim bringt eigentlich schon alles mit um es als IDE zu nutzen.

Vim bringt eigentlich schon alles mit um es als IDE zu nutzen.

Eine IDE installieren und nutzen kann jeder, aber vim als IDE nutzen? Ich zeige ein paar Einstellungen, Shortcuts und Funktionen von vim, die es zu einer IDE machen. Dabei werde ich keine Plugins und keine Magie nutzen, denn vim kann bereits alles nötige.

Das sind die Funktionen, die ich zeige und um die ich die Standard Konfiguration erweitern werde:

  • Bedienung, die vim schon kann:
    • Standard zeug: Öffnen, speichern, schließen, …
    • Dateiexplorer
    • Tabs öffnen und nutzen
    • Bildschirm teilen
  • Navigation, die vim schon kann:
    • Suchen, ersetzen,
    • Springen (z.B. zum nächsten Vorkommnis, zur Definition, …)
  • Software bauen (build & run)
    • Debugging
  • Mit Anpassungen an vim:
    • Zeilennummern, Syntax highlighting, Cursor-Zeile hervorheben, …
    • Autovervollständigung mit drop-down Menü

Mehr Anpassungen sind das auch nicht.

Grundlegende Bedienung von vim

Das mit dem Modi sollte man schon drauf haben. Hier auch nur ganz kurz das Wichtigste:

  • Datei öffnen (ohne Tabs): :e /path/to/file
  • Datei speichern: :w
  • Datei schließen: :q und wenn du nicht vorher speichern möchtest: :q!
  • Hilfe anschauen: :help Befehl

Eingebauter Dateiexplorer

(mehr …)

CLI-Argumente in Bash-Scripten parsen

Argumente zu parsen ist nicht schwer. Auch nicht in Bash-Scripten.

Argumente zu parsen ist nicht schwer. Auch nicht in Bash-Scripten.

Es gibt viele Möglichkeiten Parameter, die an ein Bash Script übergeben wurden, zu verarbeiten. Hier zwei ähnliche Varianten, die das Parameterschema -o /foo/ und --output=/foo/ behandeln können. Das zweite Beispiel zeigt zudem noch die Verwendung von Kommandos.

String Manipulation mit Bash-Hausmitteln

Falls du mit String Manipulation (z.B. ${var#=*} oder Ähnliches) noch nicht vertraut bist, rate ich dir hier weiter zu lesen. In den folgenden Scripten holen wir uns aus Strings immer einen Teilstring. Der Befehl dabei sieht immer wie folgt aus: ${<VARIABLE><SPLIT-CHARS><REGEX>}

Die Split-Chars definieren was hinterher raus kommt, denn das Ergebnis ist immer ein zusammenhängender String. Von denen gibt es vier verschiedene: (mehr …)