====== FreeBSD - USB ====== * [[::freebsd:FreeBSD - USB-Probleme]] * [[::freebsd: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! [[http://www.bsdforen.de/showthread.php?t=17015|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 [[http://www.fixmbr.de/usb4bsd-neuer-usb-treiber-fuer-freebsd/|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.__ ;-)