so kann man den USB-Bus erneut scannen (rescan USB-Bus):
> camcontrol rescan all
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:
# portmaster devel/subversion# svn --username anonsvn --password anonsvn co svn://svn.turbocat.net/i4b# cd i4b/trunk/i4b/FreeBSD.usb2# make S=../src package# make install# cp /usr/src/sys/i386/conf/GENERIC /usr/src/sys/i386/conf/USB4BSD# echo "device usb" » /usr/src/sys/i386/conf/USB4BSD# cd /usr/src && make buildkernel installkernel KERNCONF=USB4BSD# 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.
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.
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.