nfe (Nvidia NIC Treiber) für 6.x

Yamagi

Possessed With Psi Powers
Teammitglied
Seit einiger Zeit (ca. Mitte Mai) befindet sich in -CURRENT der neue Treiber "nfe" für nVidia-MCP-Controller. Es handelt sich dabei um einen Port des "nfe" von OpenBSD, welcher - auch mit Hilfe vn nVidia - weiterentwickelt und wurde und irgendwann einmal den derzeitigen "nve" ersetzen soll.
Die irgendwann ist schelcht für Besitzer von nVidia-NICs, denn der aktuelle "nve" ist ein für Linux geschriebener BLOB mit Wrapper für FreeBSD außenrum. Er ist lahm, die Netzverbindungen reißen ab und an mal ab und auf einigen Systemen (gerade unter amd64) ruckelt das ganze System durch permanente "Device Timeout" -Meldungen. Dazu kommt, dass sie den Boot bei mir um 2 Min verzögern...

Ich habe daher den "nfe" aus -CURRENT auf 6.x zurückportiert. Er läuft deutlich schneller und vor allem merklich zuverlässiger als der "nve". Man könnte sagen, er macht nVidia-Karten zu zuverlässigen Netzwerkkarten die durchaus als "Gut" zu bezeichen sind.

Um ihn nutzen zu können, müsst ihr einen Kernel ohne "nve" bauen. Leider ist dieser Teil von GENERIC, also wird kaum jemand um einen Reinstall herumkommen... Danach packt ihr mein Archiv aus, geht in den neuen Ordner if_nfe und tippt "make" ein. Ihr erhaltet if_nfe.ko, welchen ihr laden könnt. Ich würde ich ihn nach /boot/modules kopieren und in /boot/loader.conf eintragen.

Das Archiv: ftp://deponie.yamagi.org/freebsd/nfe/nfe-19122006.tar.gz

Ich hoffe, damit vielen einige verlorene Seelen wieder zurückzuholen ;)
 
Ich kann mir eigentlich nicht vorstellen, dass ein Blob in den Standardkernel kommt. Bist du dir sicher über diesen Teil?
 
Ja, ich nutze zwar die Makefile von Shigeaki allerding deutlich neure Codedateien als er. Seine sind von Mitte Juni, seit dem ist einiges passiert. Diverse Bugs wurden gefixt, neue Chips werden unterstützt und es funktioniert nun auch stabil unter amd64. Dazu kommen einige Korrekturen von nVidia selbst. Daher habe ich die Codedateien aus dem -CURRENT von Gestern eingefügt.

Meinen Tests nach, läuft meine Fassung mit der neueren Version merklich schneller, stabiler und verursacht weniger CPU-Last.
 
Ich hab so das Gefuehl als hinge diese Veroeffentlichung deinerseits mit der Diskussion in #bsdforen.de zusammen ;-) Willst du uns Radikale zu FreeBSD (zurueck-)holen?
 
Hmm, da ist echt was faul. Laut einigen Committern soll GENERIC ja ein Kernel sein der nur aus BSD lizensierten Komponenten besteht. (Siehe Diskussion zu DTRACE Hooks). Dem widerspricht der nve blob. *verwirrt ist*
 
Ja, ich nutze zwar die Makefile von Shigeaki allerding deutlich neure Codedateien als er. Seine sind von Mitte Juni, seit dem ist einiges passiert. Diverse Bugs wurden gefixt, neue Chips werden unterstützt und es funktioniert nun auch stabil unter amd64. Dazu kommen einige Korrekturen von nVidia selbst. Daher habe ich die Codedateien aus dem -CURRENT von Gestern eingefügt.

Meinen Tests nach, läuft meine Fassung mit der neueren Version merklich schneller, stabiler und verursacht weniger CPU-Last.

Moin,

Das hört man gerne. Zu deiner Info, Shigeaki hat auch gerade aktualisiert (deshalb auch meine Frage :) - Ich nehme an, dass ihr dann beide auf gleichem Stand seid).

Gruss, Elwood
 
Maledictus: full ack, wir hatten die Diskussion ausgiebig im channel und ich bin der gleichen Meinung wie du, wer Blobs von Atheros und Nvidia in GENERIC verfrachtet braucht sich auf der anderen Seite nicht über irgendwelche header unter CDDL beklagen, entweder eine Linie oder gar keine. Und was ich dazu meine ist unschwer zu erraten... :grumble:

Yamagi: Herzlichen Dank an dich und natürlich auch unbekannterweise an Shigeaki!

Und noch einen Dank gleich an die OpenBSD-Jungs (ich glaube vor allem Reyk Flöter soweit ich weiss)! Hätte man da konzertiert über alle BSDs hinweggearbeitet hätte man imho nfe wesentlich schneller in ALLEN BSDs gehabt.
 
Ich war einen Tag zu früh. Seit vorhin steht auf http://www.se.hiroshima-u.ac.jp/~shigeaki/software/freebsd-nfe.html ebenfalls eine aktualisierte Fassung mit den Sourcedateien aus -CURRENT. Danke Elwood für den Hinweis. Da beide den gleichen Code enthalten, ist es ziemlich egal, welchen Tarball ihr nutzt :)

Maxx: Äh nein, es hängt nicht damit zusammen, das nve ein Blob ist. Dsas ist mir in erster Linie völlig egal, hauptsache die Hardware läuft vernünftig. In diesem Fall scheiterte es klar am Letzteren. Allerdings nutze ich natürlich bevorzugt freie Treiber, wenn diese denn gut funktionieren
 
Zuletzt bearbeitet:
Moin,

hier kurz der Hinweis, dass Shigeaki einen aktualisierten Port (nämlich vom 22.12.2006 - Vorgänger war vom 20.12.2006) auf seine Seite gestellt hat.

Gruss, Elwood
 
Ich hätte nie gedacht, dass tatsächlich ein BLOB im Generic Kernel gelandet ist! Wer hat das denn eingebaut? Das ist irgendwie beschämend...
 
Ich hatte bis zuletzt gehofft, dass nfe doch noch teil von 6.2 wird. Leider ist ist das nicht der Fall, obwohl er schon ausgesprochen stabil läuft und meiner Erfahrung nach kompatibler als der alte nve ist. Also werden wir wohl oder übel auf 6.3 warten müssen. Sehr interessant ist auch die README zu dem Blob von nVidia, zu finden unter src/sys/contrib/dev/nve/i386/nvenetlib.README:

$FreeBSD: /repoman/r/ncvs/src/sys/contrib/dev/nve/i386/nvenetlib.README,v 1.1.2.1 2005/09/11 18:46:33 obrien Exp $

The installation and use of this software is subject to the following license terms and conditions:

License For Customer Use of NVIDIA Software

IMPORTANT NOTICE -- READ CAREFULLY: This License For Customer Use of NVIDIA Software ("LICENSE") is the agreement which governs use of the software of NVIDIA Corporation and its subsidiaries (“NVIDIA”) enclosed herewith, including computer software and associated printed materials ("SOFTWARE"). By downloading, installing, copying, or otherwise using the SOFTWARE, you agree to be bound by the terms of this LICENSE. If you do not agree to the terms of this LICENSE, do not download, install or use the SOFTWARE.

RECITALS
Use of NVIDIA's products requires three elements: the SOFTWARE, the hardware on a computer motherboard, and a personal computer. The SOFTWARE is protected by copyright laws and international copyright treaties, as well as other intellectual property laws and treaties. The SOFTWARE is not sold, and instead is only licensed for use, strictly in accordance with this document. The hardware is protected by various patents, and is sold, but this agreement does not cover that sale, since it may not necessarily be sold as a package with the SOFTWARE. This agreement sets forth the terms and conditions of the SOFTWARE LICENSE only.

1. DEFINITIONS

1.1 Customer. Customer means the entity or individual that installs or uses the SOFTWARE.

2. GRANT OF LICENSE

2.1 Rights and Limitations of Grant. NVIDIA hereby grants Customer the following non-exclusive, non-transferable right to use the SOFTWARE, with the following limitations:

2.1.1 Rights. Customer may install and use one copy of the SOFTWARE on a single computer, and except for making one back-up copy of the Software, may not otherwise copy the SOFTWARE. This LICENSE of SOFTWARE may not be shared or used concurrently on different computers.

2.1.2 Linux/FreeBSD Exception. Notwithstanding the foregoing terms of Section 2.1.1, SOFTWARE designed exclusively for use on the Linux operating system may be copied and redistributed, provided that the binary files thereof are not modified in any way (except for uncompressing/compressing files). SOFTWARE designed exclusively for use on the Linux Operating system but which has been authorized by NVIDIA for use on the FreeBSD Operating System may also be copied and redistributed, provided that the binary files thereof are not modified in any way (except for unzipping of compressed files).

2.1.3 Limitations.

No Reverse Engineering. Customer may not reverse engineer, decompile, or disassemble the SOFTWARE, nor attempt in any other manner to obtain the source code.

No Separation of Components. The SOFTWARE is licensed as a single product. Its component parts may not be separated for use on more than one computer, nor otherwise used separately from the other parts.

No Rental. Customer may not rent or lease the SOFTWARE to someone else.

3. TERMINATION

This LICENSE will automatically terminate if Customer fails to comply with any of the terms and conditions hereof. In such event, Customer must destroy all copies of the SOFTWARE and all of its component parts.

4. COPYRIGHT

All title and copyrights in and to the SOFTWARE (including but not limited to all images, photographs, animations, video, audio, music, text, and other information incorporated into the SOFTWARE), the accompanying printed materials, and any copies of the SOFTWARE, are owned by NVIDIA, or its suppliers. The SOFTWARE is protected by copyright laws and international treaty provisions. Accordingly, Customer is required to treat the SOFTWARE like any other copyrighted material, except as otherwise allowed pursuant to this LICENSE and that it may make one copy of the SOFTWARE solely for backup or archive purposes.

5. APPLICABLE LAW

This agreement shall be deemed to have been made in, and shall be construed pursuant to, the laws of the State of California.

6. DISCLAIMER OF WARRANTIES AND LIMITATION ON LIABILITY

6.1 No Warranties. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE SOFTWARE IS PROVIDED "AS IS" AND NVIDIA AND ITS SUPPLIERS DISCLAIM ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

6.2 No Liability for Consequential Damages. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL NVIDIA OR ITS SUPPLIERS BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR ANY OTHER PECUNIARY LOSS) ARISING OUT OF THE USE OF OR INABILITY TO USE THE SOFTWARE, EVEN IF NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

7. MISCELLANEOUS

The United Nations Convention on Contracts for the International Sale of Goods is specifically disclaimed. If any provision of this LICENSE is inconsistent with, or cannot be fully enforced under, the law, such provision will be construed as limited to the extent necessary to be consistent with and fully enforceable under the law. This agreement is the final, complete and exclusive agreement between the parties relating to the subject matter hereof, and supersedes all prior or contemporaneous understandings and agreements relating to such subject matter, whether oral or written. Customer agrees that it will not ship, transfer or export the SOFTWARE into any country, or use the SOFTWARE in any manner, prohibited by the United States Bureau of Export Administration or any export laws, restrictions or regulations. This LICENSE may only be modified in writing signed by an authorized officer of NVIDIA.

Ich bin nun kein Jurist, aber für mich klingt das nicht besonders kompatibel zu BSD-Lizenz. Imo sollte schon allein aus diesem Grund der Blob wenigstens auch GENERIC entfernt werden...
 
Der erste BLOB war mitnichten von nVidia, sondern hptmv(4) und hielt schon mit FreeBSD 5.3 Einzug nach GENERIC. nve(4) kam mit 6.0 und bei 6.1 kam noch rr232x(4) hinzu. Aktuell gibt es also drei BLOBs im GENERIC-Kernel. ath(4) ist nicht drin, es liegt nur als ladbares Modul vor.

ciao, jtsn
 
Zuletzt bearbeitet:
Zurück
Oben