Nice to know

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.

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 …)

Microsoft entwickelt GNU/NT Kernel

Der GNU/NT Kernel soll NT- und Linux-Anwendungen ausführen.

Microsoft hat auf der Build 2016 den GNU/NT Kernel vorgestellt. Ein Kernel, der NT- und Linux-Anwendungen ausführen soll.

Als wäre die Bekanntmachung der Bash on Windows nicht schon genug Aufregung für einen Tag gewesen, so hat Microsoft auf der Build 2016 heute auch noch den GNU/NT Kernel vorgestellt. Dabei handelt es sich um eine Umgestaltung des bisherigen NT-Kernels, die vom Team der Bash on Windows stammt. Der Kernel soll dabei in der Lage sein NT (also Windows) und Linux Anwendungen auszuführen.

Wie Wasser und Öl

Obwohl es seltsam klingt, so gibt es schon länger das Projekt Bash on Windows. Dabei soll die bekannte und (anscheinend auch bei Windows Nutzern beliebte) Linux Bash für Windows nativ eingebunden werden. Dabei gibt es keine virtuelle Maschine, sondern ein neues Kernel-Modul, welches die syscalls (also systemnahsten Befehle) von Linux-Calls in NT-Calls umwandelt. Diese können dann normal vom Windows Kernel ausgeführt werden.

Die Bash on Windows bietet die normalen Ubuntu-Anwendungen, eine funktionierende apt-Paketverwaltung und vieles mehr. Das Projekt verfolgt jedoch nicht das Ziel Anwendungen mit grafischer Benutzeroberfläche zu unterstützen. Nun soll es aber ein zweites Projekt geben, welches eben genau das kann: Grafische Benutzeroberflächen von Linux-Binaries auf dem Windows Kernel ausführen. Dadurch wurde GNU/NT geboren.

Kompromisse bei GNU/NT ermöglichen Mix

(mehr …)

DirectX11 Spiele unter Linux

Damit auch mal andere Spiele unter Linux spielen kann als SuperTux, wird es Ende des Jahres DirectX11 für Linux geben.

Damit auch mal andere Spiele unter Linux spielen kann als SuperTux, wurden erste Funktionalitäten für DirectX11 unter Linux implementiert.

Wie bereits berichtet gab es einige Pläne für die Implementation von DirectX11 in der Emulationssoftware Wine. Bisher wurde lediglich DirectX9 unterstützt, was auch in den meisten Fällen sehr gut funktioniert.

Da der Release von DirectX9 jedoch schon 13 Jahre her ist wurde es Zeit die Schnittstelle zu aktualisieren. Um direkt aktuelle Spiele zum laufen zu bekommen wurde nicht nur bei DirectX10 (dessen Release auch schon 9 Jahre her ist), sondern auch bei DirectX11 (Release vor 6 Jahren) begonnen. Ob und wann DirectX12 kommt ist noch unklar, doch wichtiger ist derzeit 10 und 11, da verhältnismäßig wenig Spiele auf DirectX12 basieren.

Bisher sind nur die Grundlegenden Funktionen implementiert und der Entwicklungsstand von DIrectX11 ist in etwa auf dem selben Niveau wie der von DirectX10. Nach Angaben der Release-Notes laufen einige einfache Anwendungen, doch bis die meisten Spiele laufen gib es noch einige unimplementierte Löcher zu stopfen.

Mehr Informationen zum Release gibt es in den Release-Notes von Wine.