Inhaltsverzeichnis
FreeBSD - USB
- USB 3.0 mit FreeBSD In FreeBSD wird USB 3.0 erst ab der Version 8.2 unterstützt, es muss das Modul 'xhci' geladen werden!
so kann man den USB-Bus erneut scannen (rescan USB-Bus):
> camcontrol rescan all
FreeBSD 8
USB4BSD - "neuer" USB Treiber für FreeBSD
Wen USB gelegentlich unter FreeBSD in die Verzweiflung treibt (kann passieren), für den gibts USB4BSD.
Dieser Treiber wurde 2004 geforkt und weiterentwickelt und arbeitet auch nicht unter GIANT Lock.
Um diesen Patch zu installieren, muss man wie folgt vorgehen:
- Subversion installieren:
# portmaster devel/subversion - USB4BSD-Code runter laden:
# svn --username anonsvn --password anonsvn co svn://svn.turbocat.net/i4b - in das Verzeichnis des Codes wechseln:
# cd i4b/trunk/i4b/FreeBSD.usb2 - das "make" starten:
# make S=../src package - den USB-Treiber patchen:
# make install - eine Kopie der Kernel-Konfigurationsdatei erstellen:
# cp /usr/src/sys/i386/conf/GENERIC /usr/src/sys/i386/conf/USB4BSD - die neu Kernel-Konfigurationsdatei angepassen:
# echo "device usb" » /usr/src/sys/i386/conf/USB4BSD - zum Schluß muss noch der Kernel neu kompiliert werden:
# cd /usr/src && make buildkernel installkernel KERNCONF=USB4BSD - und als letztes fehlt nur noch der Neustart:
# reboot
Übrigens ist es auch leicht wieder möglich den Code zu entfernen, ein make deinstall genügt. Bei jedem CVSupdate der Sourcen, wird der gepatchte USB-Teil natürlich überschrieben.
Der Grund für Giant lock und die Beseitigung von diesem?
Nun Multiprozessorsysteme arbeiten mehrere Threads parallel ab, da kann es passieren, dass bei entsprechender Software, die Koordination fehlschlägt z.B. beim gleichzeitigen Zugriff auf Daten - ergo muß ein Mutex her. Um dem abzuhelfen existieren bis zur Beseitigung des Problems sogenannte Giant Locks (aka Mutex), die natürlich nicht ideal sind, aber den sauberen Systemablauf gewährleisten. Prozesse die nebenher laufen, können also nicht gleichzeitig auf Daten zugreifen. Kurz, Giant Locks sind eine nicht erwünschte Behelfskrücke im System.
FreeBSD 9
In FreeBSD 9.0 RELEASE ist der USB-Treiber einfach nur "kaputt". Als ich hier USB4BSD verwenden wollte, musste ich leider feststellen, dass FreeBSD.usb2 in der aktuellen i4B-Version "2.0.3" nicht mehr Bestandteil zu sein scheint…
In FreeBSD 9.1 RELEASE funktioniert der USB-Treiber bei mir wieder.
