[Testing wanted] USB patch for HAL

Vladimir Kushnir vkushnir at bigmir.net
Mon Jun 27 04:06:11 UTC 2011

Sorry for slightly off-topic post but (see below)

On Sun, 26 Jun 2011, Greg Rivers wrote:

> On Sun, 26 Jun 2011, Hans Petter Selasky wrote:
>> On Sunday 26 June 2011 09:27:22 Greg Rivers wrote:
>>> With this change, the USB bus continued to operate as expected while
>>> attaching and detaching a USB flash drive.  On start up, hald was not
>>> detecting the attach/detach events, but started working and kept working
>>> after restarting it.  In summary, with both of the above changes,
>>> everything worked pretty much correctly.
>> Try this patch to hald:
>> cd /usr/ports/sysutils/hal/files
>> fetch http://hselasky.homeunix.org:8192/patch-hald_freebsd_hf-usb2.c
>> cd ..
>> make all deinstall install clean
> With this patch, and the CAM patches still in place, the USB bus works fine, 
> but hald never sees any attach/detach events, even after restarting it.
> I reverted the CAM patches and tested again with the same result.  So this 
> patch to hald does stop the CAM sg errors, and prevents the USB from wedging. 
> It just doesn't detect attach events.
> -- 
> Greg Rivers
> _______________________________________________

I'm fairly aware this would be only a workaround rather than a proper 
solution but isn't it enough to just tell hald to ignore /dev/sg*? 
What I did was put into /usr/local/etc/hal/fdi/preprobe an fdi I've 
spotted some time ago (sorry can't recall the original URL) and so far 
everything works with patched HAL but without any changes to kernel.
amd64-CURRENT, desktop, USB mouse and storage devices (flash and HDD).

Hope this helps (and sorry for OT again),

//// 30-ignore-sg.fdi
<?xml version="1.0" encoding="UTF-8"?>

<deviceinfo version="0.2">
 	<!-- ignore /dev/sg[1,x]; we want hald to see the FreeBSD interface -->
 	<!-- put more devices if needed -->
 	<match key="block.device" string="/dev/sg1">
 	    <merge key="info.ignore" type="bool">true</merge>
 	<match key="block.device" string="/dev/sg2">
 	    <merge key="info.ignore" type="bool">true</merge>
 	<match key="block.device" string="/dev/sg3">
 	    <merge key="info.ignore" type="bool">true</merge>

More information about the freebsd-current mailing list