Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
linux_kompatibilitaet [2017/10/02 13:40] |
linux_kompatibilitaet [2017/10/02 13:40] (aktuell) |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Allgemein ====== | ||
+ | Unter **FreeBSD** ist es möglich Software auszuführen die für Linux-Systeme kompiliert wurde. Somit können speziell kommerzielle Produkte, welche nur als Binärpaket angeboten werden unter **FreeBSD** installiert werden, obgleich es keine eingene Version für FreeBSD gibt. Interessant ist dies z.B. für Programme wie Skype, Flash, Quake3 oder auch größere Projekte wie z.B. SAP. | ||
+ | |||
+ | Um dies zu ermöglichen muss eine Kompatibilitässchicht eingefügt werden, welche zum Einen aus einem Kernelmodul und zum Anderen aus den notwendigen Bibliotheken besteht. | ||
+ | |||
+ | ====== Voreinstellungen ====== | ||
+ | Im Folgenden soll **emulators/linux_base-f10** verwendet werden. Dieses Paket beinhaltet die notwendigen Bibliotheken um eine Binärkompatibilität zu **Fedora Core 10** herzustellen. Daher beziehen sich alle verwendeten Angaben auf diesen Port. Wird eine andere Kompatibilität gewählt müssen die Werte ggf. angepasst werden. | ||
+ | |||
+ | ===== Das Kernelmodul laden ===== | ||
+ | Alle Anpassungen erfolgen als Benutzer root. | ||
+ | |||
+ | Zunächst wird das Kernelmodul geladen. dies geschieht über folgenden Aufruf. | ||
+ | <code> | ||
+ | # kldload linux | ||
+ | </code> | ||
+ | Mit dem Befehl //kldstst// können die derzeit geladenen Module angezeigt werden. | ||
+ | |||
+ | Damit das Kernelmodul bei jedem Systemstart geladen wird muss die **/etc/rc.conf** um folgende Zeile erweitert werden: | ||
+ | <code> | ||
+ | linux_enable="YES" | ||
+ | </code> | ||
+ | |||
+ | ===== Weitere Vorbereitungen ===== | ||
+ | Um sicher zu stellen, dass alle Pakete gegen die Bibliotheken von **Fedora Core 10** gebaut werden wird die Datei **/etc/make.conf** wie folgt erweitert: | ||
+ | <code> | ||
+ | OVERRIDE_LINUX_BASE_PORT=f10 | ||
+ | OVERRIDE_LINUX_NONBASE_PORTS=f10 | ||
+ | </code> | ||
+ | |||
+ | ===== Bibliotheken installieren ===== | ||
+ | Die Bibliotheken werden wie ein normaler Port installiert. | ||
+ | <code> | ||
+ | # cd /usr/ports/emulators/linux_base-f10 | ||
+ | # make install clean | ||
+ | </code> | ||
+ | |||
+ | ===== Abschliessende Anpassungen ===== | ||
+ | Abschliessend wird noch das **procfs** für die Linux-Bibliotheken eingehängt. | ||
+ | Hierzu wird die Datei **/etc/fstab** wie folgt ergänzt: | ||
+ | <code> | ||
+ | linproc /usr/compat/linux/proc linprocfs rw 0 0 | ||
+ | </code> | ||
+ | |||
+ | Nun kann das **procfs** mit folgendem Aufruf, als Benutzer root, eingehängt werden. | ||
+ | <code> | ||
+ | # mount /usr/compat/linux/proc | ||
+ | </code> | ||
+ | |||
+ | Nun sollte die Linux-Kompartibilität verfügbar sein und es können entsprechende Ports installiert werden. Bei Problemen wird empfohlen das FreeBSD-Handbuch zu konsultieren. | ||
+ | |||
+ | Teilweise wird zusätzlich das Starten der Dienste **abi** und **sysctl** in **/etc/rc.d** empfohlen. Sollten diese benötigt werden sind diese verständlicherweise zu starten. | ||