Nvidia arbeitet an Tegra-2D-Grafiktreibern für Linux mit
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 der Treiber-Erweiterung an die Liste der Linux-Kernel-Entwickler hat der solche Kernel-Grafiktreiber betreuende Entwickler Dave Airlie angeführt, 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, 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 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 auftretende Entwickler hat diesen im April vorgestellt. Reding hat kürzlich eine überarbeitete Version 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, 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, 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)