Netzwerktreiber auf FreeNAS/NAS4Free installieren (Full-Installation)
FreeNAS unterstützt nativ die jeweilige Hardware, der eingesetzten FreeBSD-Version, auf die es basiert. Trotzdem kann es Produkte geben, für die FreeBSD keine Treiber anbietet. Dieses How-To beschreibt, wie auch unerfahrene Unix-Anwender einen Netzwerkadaptertreiber auf einer „Full-Installation“ von FreeNAS installieren. Als Grundlage dient hier FreeNAS 0.69.2 (Muad’Dib), das auf FreeBSD 6.4 basiert. Es gibt aber Hinweise bei Abweichungen zu neueren NAS4Free/FreNAS-Versionen.
Bei einer „embedded Installation“ gibt das How-To „Netzwerktreiber auf FreeNAS/Nas4Free installieren (embedded)“ Hilfestellung.
Voraussetzungen
- Beliebiger Monitor, der sich an den FreeNAS-Server anschließen lässt
- Tastatur
- USB-Stick, Fat32-formatiert, als temporärer Speicher für die Treiberdatei)
- FreeNAS muss als „Full OS on HDD + DATA + SWAP Partition“ installiert sein. Bei der „embedded“ Installation werden Änderungen nur in die RAM-Disk geschrieben und der Treiber steht beim nächsten Neustart nicht mehr zur Verfügung. Für embedded Installationen gehe nach Netzwerktreiber auf FreeNAS/Nas4Free installieren (embedded).
- Binäre Treiberdatei (*.ko) für die entsprechende FreeBSD-Version auf die das entsprechende FreeNAS basiert.
Treiber installieren
Dieses How-To beschreibt als Beispiel die Installation eines binär vorhandenen Netzwerktreibers für die Netzwerkkarten mit Realtek RTL8111B, RTL8168B, RTL8111, RTL8168, RTL8111C, RTL8111CP, RTL8111D(L), RTL8168C, RTL8111DP, RTL8111E auf FreeNAS 0.6x oder 0.7x.
- Passenden Treiber herunterladen oder selber kompilieren.
Für die oben genannten Netzwerkadapter haben einige Freiwillige Treiber kompiliert. Siehe Download-Bereich. Bitte beachte die unterschiedliche Schreibweise von
if_rl...
undif_re...
aufgrund der verschiedenen Treiberdateinamen in den Anweisungen Punkt 8 und 9! - Treiber auf den USB-Stick kopieren. Achte darauf, dass der Stick mit dem Dateisystem Fat32 formatiert ist. Das ist in allen mir bekannten Fällen der Auslieferungszustand, so dass du i.d.R. nichts umformatieren musst.
- Monitor und Tastatur an den FreeNAS-Server anschließen und Server starten.
-
Shell starten durch Wahl der Option 6 (Shell) im Console-Setup:
-
USB-Stick einstecken.
- Der Befehl
dmesg | tail
zeigt den Gerätenamen des Sticks an, z.B.
da2
(siehe Screenshot unten). -
USB-Stick mounten mit
mount_msdosfs /dev/da2s1 /mnt
Der Anhang
s1
anda2
beschreibt den ersten Slice auf dem Gerätda2
(hier: USB-Stick). Weitere Informationen findet man im FreeBSD-Handbuch, Kapitel 3. -
Kopiere die Treiberdatei in das Verzeichnis
/boot/kernel
mit:cp /mnt/if_rl.ko /boot/kernel
Wenn dieser Befehl fehlschlägt, hast du eine neuere NAS4Free/FreeNAS-Version. In neueren Versionen befinden sich die Treiber in
/cf/boot/kernel
und/cf
ist nur lesend ins Dateisystem eingehängt. Darum muss zuerst/cf
ausgehängt und mit Schreib- und Leserechten wieder eingehängt werden. Dann kann man alle weiteren Aktionen durchführen:umount /cf && mount -o rw /cf cp /mnt/if_rl.ko /cf/boot/kernel
-
Automatischer Laden des Treibers einstellen durch Eintragen von
if_rl_load=„YES“
in die Datei/boot/loader.conf
bzw. bei neueren Versionen in/cf/boot/loader.conf
mit:echo if_rl_load="YES" >> /boot/loader.conf
bzw.
echo if_rl_load="YES" >> /cf/boot/loader.conf
Optional: Zum temporären Einbinden kann man auchkldload /boot/kernel/if_rl.ko
bzw.
kldload /cf/boot/kernel/if_rl.ko
eingeben um zu testen, ob der Treiber ohne Fehlermeldungen geladen wird. Auch hier kann
dmesg|tail
die letzten Systemmeldungen anzeigen. Beim temporären Laden des Treibers mitkldload
wird er beim nächsten Neustart aber nicht mehr eingebunden! Darum sollte man den Treiber immer in die/boot/loader.conf
eintragen - Reboot system (Option 7 im Console Setup).
Download
Weiter unten kannst du bereits fertig kompilierte (binäre) Treiber für Netzwerkkarten mit RTL8111B, RTL8168B, RTL8111, RTL8168, RTL8111C, RTL8111CP, RTL8111D(L), RTL8168C, RTL8111DP, RTL8111E, für ein paar FreeNAS-Version herunterladen, die einige Freiwillige dankenswerter Weise zur Verfügung gestellt haben.
[TABLE=3] Für FreeNAS 8 kann ich derzeit keine Dowloadquellen für binären Treiber angeben. Wenn du einen binären Treiber für FreeNAS 8 findest, freue ich mich über eine kurze Nachricht per Mail oder Kommentar.
Interessante Links
- Unix-Treiber (Quellcode) für RTL81xxx – Realtek Homepage
- /cf-Zugriffsrechteproblematik bei der Treiberinstallation (englisch) – kristijan.org
Titleimage:
BSD Daemon by
Diavolo Qqta (CC BY-NC-SA 2.0)
„Ethernet NIC 100Mbit PCI“ by afrank99. CC BY-SA 2.0 via Wikimedia Commons.
Hallo.
Klasse Anleitung.
Habe versucht eine Realtek 8169 dem Freenas (0.7.1 )hinzuzufügen, leider klappt das nicht.
Beim kldload sagt mir freenas das die datei if_rl.ko nicht vorhanden ist 🙁
Hallo Felix,
Kannst mir die Antworten auch mailen, wenn sie zu umfangreich sind.
Hani
Hallo,
ich habe Dienen Blog mit Freude gelesen und abgearbeitet. Super beschrieben! aber ich komme Leider trotzdem nicht weiter.
Ich bekomme eine Fehlermeldung das das Format nicht ok ist.
Ich vermute dass der von mir geladene Treiber nicht 64bit fähig ist. Kannst Du mir sagen wo ich einen 64bit Treiber für eine Realtek r8111e bekomme. Googel hat mir leider nicht weitergeholfen.
Stefan
Hi Stefan,
welche FreeNAS-Version nutzt du? Unterstützt die 0.7er nicht die 8111er?
Vielleicht helfen ja die Tipps in dem Beitrag Realtek 8111b/c Driver / Atom MB im FreeNAS-Forum bei dir weiter.
Was spricht eigentlich dagegen, die 32-bittige Version von FreeNAS einzusetzen? Dann könnte dein Problem elegant gelöst sein.
Hani
Hi Hani,
I keep getting the error link_elf:symbol m_gethdr undefined & kldload: can’t load.
Can u help me out
Jobin
Hi Jobin,
Have not ever seen your error on my machine. I need a bit more information:
Please tell me which FreeNAS-Version/architecture (0.6.x/0.7.x, x86/amd64) and NIC card do you use. And which driver did you downloaded and from where? Please send me the detailed error message.
Hani
When I tried to use the linked driver you posted, the network card still didn’t work (For FreeNAS 0.7.2). However, I got the latest version of Realtek’s driver (1.80), and compiled it in FreeBSD 7.2, and made this new 32 bit driver. It works great for me, and your instructions work perfectly with a slight modification to use different module file name. Anyway, here is a link to my compiled module: https://files.me.com/twoslick/12js1a
Thank you for sharing your self-compiled RL8111E 32-bit driver, Tim. I appreciate it and it will help other users surely.
Hani
Hallo,
gibt es vllt. auch einen 64-bit Treiber für den RTL8111E Chipsatz?
Ansonsten super Anleitung, hab sogar ich verstanden und ich wusste vor ner Woche nichtmal das es freeBSD gibt…
Gruß Jonas
Hi Jonas, leider habe ich noch keinen 64-bit Treiber ausfindig machen können. Ansonsten mein Standardspruch: Was spricht gegen eine 32-bit Installation?
Hani
Hallo,
würde die 32-bit Version problemlos laufen? Wenn ja spricht bei mir nichts dagegen. Könnte ja später immernoch umsteigen, zu FreeNas 0.8 Zeiten (wenn der Treiber dann implementiert sein sollte).
Vielen Dank und ein großes Lob an deine Arbeit hier!
Jonas
Mit Tim Rupes Treiber sollte es funktionieren. Du musst meine Anweisungen – wie beschrieben – bei Pkt. 8 und 9 noch anpassen: if_rl… durch if_re… ersetzen. Viel Erfolg, Hani
Can someone with a freebsd 64bit compile the driver please ?
it can be found here : http://tinyurl.com/y9dkvnx
Hani,
Could you please have a look at this post:
http://sourceforge.net/apps/phpbb/freenas/viewtopic.php?f=9&t=7976&start=20#p40296
It should be the 64bit driver for the RTL8111E.
Can it be used in the how-to you described above, but this time for a 64bit install.
I did not manage to get it working.
But, I’m a newbee….
Thanks for your great site!
Willek
Sorry Wilvliet, I do not know whether it will work or not and I can not check it. By the way as I suggested in some of my German replies: What speaks against a 32-bit installation of FreeNAS even on 64-bit hardware? Regards, Hani
Hani, thanks for your reply. I also considered a 32bit installation. But, I got hands on old ethernet card. The 64bit installation is running now. I will wait until the 64bit driver for the RTL8111E has been incorporated in FreeNAS. Then the old card will be removed.
Regards, Willek
Großartige Anleitung, danke das ihr euch die Arbeit für uns Unwissende macht.
Super Anleitung, funktioniert auf Anhieb. Wake on Lan wird allerdings wohl nicht unterstützt. Hast du da eine Lösung dafür?
Danke Leo, ob WoL unterstützt wird hängt in erster Linie von deinem BIOS ab und nicht vom Betriebssystem. Gruß Hani
Good day! Maybe somebody could make ready ISO with integrated drivers RTL8111E for i386, I’ll be very grateful.
Thanks for the info. You got me over the hump getting a raid driver installed into FreeNAS!!
I tried this today using the file from 7 above. I can’t get it work – I am getting an „Exec Format error“.
I am trying to set up 0.7.2.5543 on a GA-D525TUD board (RTL8111E)
I think I just found my issue – and found a 64 bit driver. at http://zalil.ru/30224952
Although this loads when I manually load it – I cannot get it to stick even when I don’t load it manually.
After a reboot there are no interfaces there and I can’t even manually load it.
@pwapwap: Did you installed FreeNAS „embedded“ or „full“?
If you installed FreeNAS „embedded“ refer https://sourceforge.net/apps/phpbb/freenas/viewtopic.php?f=9&t=6984&start=20#p7616. Otherwise the driver will be installed in the RAM disk and can not be loaded again after a reboot.
Danke erstmal fuer deine Anleitung.
Bin natuerlich erstmal ueber den Part mit dem alternativen Treiber gestolpert, da ich ’ne RTL8168B Karte habe.
ich scheitere daran, die .ko Datei nach /boot/kernel zu kopieren. (read-only filesystem …)
Ich vermute mal, ich habe mir die embedded version installiert?
achso, ich nutze die 8er Version.
hast du einen Tip fuer mich?
Vielen Dank schon mal.
Gruß,
Alex
@Alex: ich kenne die 8.0-Version nicht. Da soll sich eine Menge geändert haben. Da diese Version auch auf FreeBSD 8 basiert, brauchst du natürlich auch einen Treiber , der für diese Version kompiliert wurde! Die hier für 0.6 und 0.7 genannten werden nicht funktionieren.
Wenn du des Englischen mächtig bist hilft dir vielleicht die englische Kurzanleitung unter https://sourceforge.net/apps/phpbb/freenas/viewtopic.php?f=9&t=6984&start=20#p7616 weiter.
Sollte das mit der 8.0 nicht funktionieren bzw. wenn du nur einen binären Treiber für die 0.7er hast, ist die Installation der älteren 0.7er FreeNAS-Version sicher nicht die schlechteste Lösung.
very useful article. helped me in fixing up my RTL8111E gigalan card under PFSense 1.2.3 version. Thanks dude.
Hi Hani,
Trying to install this on FreeNas 8 but keep getting the following error when we run cp /mnt/if_rl.ko /boot/kernel
cp: /boot/kernel/if+rl.ko: read-only file system.
Any idea what i can do to resolve?
THanks
Shaun
@Shaun: The binary drivers mentioned on this blog are only for FreeNAS 0.6x and 0.7 32-bit, resp.
FreeNAS 8 is based on FreeBSD 8 neither on FreeBSD 7 (FreeNAS 0.7x) nor on FreeBSD 6 (FreeNAS 0.6x).
So you need a appropriate driver for your platform (FreeBSD 8). Please be advised that you need different drivers for 32-bit and 64-bit environments. I have not found any driver for this platform yet.
Ask at http://sourceforge.net/apps/phpbb/freenas/ if someone has already compiled a driver for your platform.
Kind regards, Hani
PS: Maybe FreeNAS 0.7 fits our needs. For this version you find a binary driver for sure.
EN: For a 64-bit driver for FreeNAS 0.7x for the NIC’s RTL8111B, RTL8168B, RTL8111, RTL8168, RTL8111C, RTL8111CP, RTL8111D(L), RTL8168C, RTL8111DP, RTL8111E try http://sourceforge.net/apps/phpbb/freenas/viewtopic.php?f=9&t=7976&p=40100&hilit=hani#p40296
DE: Ein 64-bit Treiber für FreeNAS 0.7x und die NICs RTL8111B, RTL8168B, RTL8111, RTL8168, RTL8111C, RTL8111CP, RTL8111D(L), RTL8168C, RTL8111DP, RTL8111E könnte der Treiber http://sourceforge.net/apps/phpbb/freenas/viewtopic.php?f=9&t=7976&p=40100&hilit=hani#p40296 funktionieren.
Hey
i compiled a driver for my Free4Nas 9 64bit(based on FreeBSD 9)
http://shareplace.com/?02715E1729
Thank you for sharing your driver, Camerlengo
Hi Camerlengo or Hani—Do you have an updated d/l link for the FreeBSD 9/NAS4Free drivers? The one linked to off of this page appears to be broken. (Sending a RST when I click the link, after waiting for the counter to tick-down).
Yes, Chris, the file is not available at SharePlace.com anymore. I will provide this file on my webspace and update the link.
Shauncro,
Make sure you make your FREENAS drive writable. Try this:
mount -uw /
Regards,
Dan
New how-to for embedded installations available, refer: https://blog.hani-ibrahim.de/?p=1749
Neues How-To für „embedded“-Installationen verfügbar: https://blog.hani-ibrahim.de/?p=1749
How-To aktualisiert: „file exist“ Fehlermeldung bei aktuellen Versionen. Danke an Markus für den Hinweis.
How-to modified: Address „file exist“ error. Thanks to Markus for pointing me to this isssue.
Hi Hani,
ich habe diesen Thread mit freude gelesen!
Im Ansatz bin ich auch schon so weit, das der Treiber vermeintlich geladen wird, wenn ich mir jedoch ein dmegs anzeigen lasse müsste ich doch eigentlich sehen, dass er folgende Zeile anzeigt: „re0: version:1.88“ Hier ist auch ein Link zum Thread im Bug-Tracker: https://bugs.freenas.org/issues/1850 in diesem findet sich auch der aktuelle Treiber 1.88 precompiled. Leider bekomme ich es einfach nicht hin.
Hast du noch eine Idee?
Danke schon mal & Grüße
Christian
Hallo Christian,
zuallererst, ich benutze FreeNAS (auch nicht in einer VM) nicht mehr und kann deshalb auch dein Problem nicht praktisch nachvollziehen.
Nur zu meinem Verständnis: Du hast einen 64-bit Prozessor und ein 64-bit FreeNAS installiert! Der Treiber von deiner geposteten Seite wird mit
kldload /boot/kernel/if_rl.ko
ohne Fehlermeldung geladen?! Soweit so gut. Warum glaubst du das der Treiber nicht richtig geladen wurde. Bekommst du keine Netzwerkverbindung?
Was gibt den
dmesg | tail
nach der Laden mit „kldload“ aus? Wenn es da mit dem Laden nicht geklappt hat, sollten hier Fehlermeldungen zu sehen sein.
LG Hani
It? such as yo? learn m? mind! You appear to grasp a lot about this, like you wrote th? e book ?n it o? som?thing.
I bel?eve t?at you just can do w?t? a few % to pressure the message
?ome ? ?ittle bit, ?ut ?ther th?n that, t?at ?s
wonderful blog. An excellent read. ?’ll certainl?
b? back.
Hey, just wanted to say thanks for this. This post taught me a lot. Do you happen to know how/where I could find the kernel modules here built for FreeBSD 10? Looking to avoid the watchdog timeouts using pf and the dmesg | tail output says I have a kernel mismatch when using the 9 version.
Danke!
i am using freenas 6.4 release now i change motherboard so lan is not working. kindly send ZEB-945 motherboard lan driver
Please be advised that this site is neither an official FreeNAS nor an official Zebronics Website. I am a private person who used FreeNAS a couple years ago but I do not use it anymore. I can only provide the drives you find here.
Please contact your motherboard supplier Zebronics regarding drivers. They are responsible. Thank you and good luck.