zurück zum Artikel

Nvidia arbeitet an Tegra-2D-Grafiktreibern für Linux mit

Thorsten Leemhuis

Nvidia beteiligt sich nun selbst an der Entwicklung quelloffener Kernel-Grafiktreiber für Tegra-SOCs (System-on-Chip).

Nvidia hat einen Linux-Kernel-Grafiktreiber für Tegra-SoCs (System-on-Chip) um eine Infrastruktur erweitert, mit der sich Hardware-beschleunigtes 2D beim Tegra20 und Tegra30 nutzen lassen soll. Mitarbeiter des Unternehmens bemühen sich um die Integration dieser unter Open-Source-Lizenz stehenden Erweiterungen in den Linux-Kernel; derzeit sieht es aber nicht so aus, als würden das schon bei Linux 3.8 gelingen.

In der ersten Einsendung [1] der Treiber-Erweiterung an die Liste der Linux-Kernel-Entwickler hat der solche Kernel-Grafiktreiber betreuende Entwickler Dave Airlie angeführt [2], dass Nvdias Schnittstellen zur Nutzung der 2D-Beschleunigung die vom Userspace angelieferten Kommandos nicht prüfen. Ohne solch eine Prüfung kann ein Angreifer den Grafikchip unter Umständen zum Modifizieren beliebiger Speicherbereiche missbrauchen; eine solche Prüfung erfordert allerdings CPU-Ressourcen und verschlechtert daher die Performance. Der Nvidia-Entwickler schlug vor, die Prüfung über die Kernel-Konfiguration ein- und auszuschalten, die man beim Bau des Kernels erstellen muss. Airlie erklärte daraufhin, die Kernel-Entwickler würden solche Sicherheitsprüfungen üblicherweise nicht optional machen, und schloss die Aussage mit einem Smiley.

Das ist nicht der einzige Aspekt [3], den die Entwickler noch ausdiskutieren müssen, bevor eine Aufnahme der Treibererweiterungen in Reichweite kommt. So fehlt derzeit noch ein typischerweise im Userspace angesiedelter Treiber, der Nvidias Treibererweiterungen nutzt, um 2D-Beschleunigung zu implementieren. Die Kernel-Entwickler haben ähnliche Erweiterungen für andere Treiber sogar schon abgelehnt, wenn es keinen quelloffenen Userspace-Treiber gab, der solche Schnittstellen nutzt. Der von Nvidia jetzt veröffentlichte Kernel-Code ist teilweise auch nicht neu, sondern schon länger in einem öffentlichen Git-Depot [4] mit Open-Source-Kernel-Code enthalten.

Der von den Nvidia-Mitarbeitern erweiterte Kernel-Treiber stammt nicht von Nvidia selbst, sondern von Thierry Reding. Der mit einer E-Mail-Adresse von Avionic Design [5] auftretende Entwickler hat diesen im April vorgestellt [6]. Reding hat kürzlich eine überarbeitete Version [7] veröffentlicht, der sich in Linux-Next findet, wo die Kernel-Entwickler Änderungen für die jeweils übernächste Kernel-Version sammeln; die Chancen stehen daher ziemlich gut, dass dieser Treiber Bestandteil von Linux 3.8 wird. Reding hat kürzlich auf der Liste der X.org-Entwickler auch eine Diskussion angestoßen [8], was der beste Ansatz für einen X-Treiber ist, der auf dem Kernel-Treiber für den Grafikkern der Tegra-SoCs aufbaut und auch die Funktionen zur 2D-Beschleunigung nutzen kann, die Nvidias Erweiterungen nachrüsten sollen.

Bereits im September war bekannt geworden [9], dass Nvidias Informationen zur Programmierung von Open-Source-Grafiktreiber in die technische Dokumentation aufnehmen wollte. Die jetzt auch aktive Rolle in der Treiberentwicklung zeigt abermals, dass Nvidia den quelloffenen Treibern eine höhere Priorität einräumt als früher; von Erweiterungen zur 3D-Beschleunigung mit Open-Source-Treibern ist aber nichts zu sehen. Derzeit deutet auch nichts darauf hin, dass das verstärkte Engagement bei den Tegra-Grafiktreibern Auswirkungen auf die Treibersituation bei Grafikchips für PCs hat. Im ARM-Bereich und bei der Unterstützung von Mainboard-Chipsätzen ist Nvidia ohnehin schon lange deutlich offener und sehr aktiv bei der Entwicklung von Open-Source-Treibern für Tegra-SoCs. (thl [10])


URL dieses Artikels:
https://www.heise.de/-1757411

Links in diesem Artikel:
[1] http://thread.gmane.org/gmane.linux.kernel/1400473/
[2] http://thread.gmane.org/gmane.linux.kernel/1400473/focus%3D7319
[3] http://thread.gmane.org/gmane.linux.kernel/1400473/focus%3D7298
[4] http://nv-tegra.nvidia.com/gitweb/?p=linux-2.6.git;a=summary
[5] http://avionic-design.de/
[6] http://thread.gmane.org/gmane.linux.ports.tegra/4246
[7] http://thread.gmane.org/gmane.linux.ports.tegra/7034
[8] http://thread.gmane.org/gmane.linux.ports.tegra/7255/
[9] https://www.heise.de/news/Nvidia-will-Dokumentation-zu-Tegra-Grafikkern-freigeben-1715078.html
[10] mailto:thl@ct.de