Binär-Treiber von 8.2 unter 9 nutzen

Morfio

Well-Known Member
Hallo,

gibt es eine Möglichkeit und ist es sinnvoll, binäre Treiber für FreeBSD 8.2 auf FreeBSD 9 zu nutzen? In meinem Fall sind das Adaptec-Treiber für eine SAS-Karte.

Viele Grüße

Morfio
 
Es mag sein das du den Kernel dazu bekommen kannst das Modul mit der Gewalt und einem kleinen Patch zu laden. Produktiv nutzen würde ich das nicht mal, wenn es nicht sofort den Kernel killt. Weise den Hersteller drauf hin das es FreeBSD 9 gibt und nutze solange FreeBSD 8.x. Du wurdest soeben von einem Blob gebissen.
 
Jepp, FreeBSD ist nur auf Userland-Ebene uneingeschränkt rückkompatibel. Auf Ebene des Kernels wird eine gewisse Stufe der Sourcecode-Kompatiblität gewahrt, d.h. es reicht oft aus Kernelmodule neu zu komplilieren. Einfach übernehmen kann man sie nicht. Der Grund dafür liegt in der Struktur des Kernel und trifft beinahe alle unixoiden Systeme, denn sie kennen keine harten Abstraktionen zwischen dem Kernel selbst und den umgebenden Modulen. Dagegen kann man leider auch nichts machen, zumindest nicht mit vertretbarem Aufwand.

Neu in FreeBSD 9 ist die harte Versionsprüfung. Jedes Modul enthält die Version des Kernels (sysctl kern.osreldate) und der Kernel lädt Module nur, wenn die Version mit seiner eigenen übereinstimmt. Das verhindert die oben genannten Sofort-Panics beim Laden eines nicht kompatiblen Moduls. Nvidia-Blob nutzer hatten z.B. genau das Problem in der Form, dass nach einem Kernelupdate der Kernel schon beim Boot abschmierte. Das war unschön.

EDIT: Es wäre interessant zu wissen, wie der Blob aufgebaut ist. Denn inzwischen gibt es zum Glück nur noch wenige "harte" Blobs, die einfach in Form eines fertigen Kernelmoduls kommen. Viele bestehen aus einem binären, aber plattformagnostischen Kern und einem im Source vorhandenen Platforminterface. Man kann sie dann neu bauen, was meist hilft.
 
Es ist noch nicht erschienen, aber die ABI wird sich nicht mehr ändern, wenn nichts katastrophales gefunden wird.
 
Zurück
Oben