I have a Sony PRS 650 ebook reader that always reports "medium not present" when it's first plugged in. On FreeBSD this results in device nodes that aren't functional. On other systems, like Linux or Windows, retries are performed, with the result that the reader is accessible as it should be. An interesting note about this is that if I delete all the books on the reader it does not initially report "medium not present" when it's plugged in. In which case everything works as it should on FreeBSD. But after I've added books it begins to report "medium not present". If the reader, with books, is present in when the system boots up then everything is fine. My impression of all this is that once I've loaded the reader up with some books, it takes it a little while to become ready after it's plugged into a USB port. When it reports "medium not present", FreeBSD just gives up on it. At least that's the difference I see in the dmesg reports between Linux and FreeBSD. Linux retries, and is successful, FreeBSD doesn't.

I've searched around to see if I could find an answer to this, but haven't 
found anything very helpful.  I have found various reports of situations that 
sound similar, but never with any solid resolution.  It may be that it was 
never clear that the sequence I've described was occurring.

I have managed to get the reader to function by adding the following to 
attach 100 {
    match "device-name" "ugen[0-9]+.[0-9]+";
    match "vendor" "0x054c";
    match "product" "0x031e";
    # 2 seconds is marginal:
    action "/bin/sleep 3";
    action "/usr/sbin/usbconfig -d $device-name set_config 1";
    action "/usr/sbin/usbconfig -d $device-name set_config 0";

I've been using that for about a year and a half.  I think I came up with it 
after combining suggestions from various places for cases where a device would 
work if it was present when the system booted, but not when it was plugged in 
after the system was running.  I don't think it's the best answer, but so far 
it's the only one I've found that works consistently.  A quirk that allowed for 
retries that could be applied to this situation would, I think, be a perfect 
solution.  Or is there already a solution that I haven't discovered?

I'm currently running FreeBSD 9.2-STABLE #2 r258073, i386.  The reader has 
behaved the same way on systems with 8.x, i386 and amd64.

I will be happy to supply any additional information that may be required.



freebsd-usb@freebsd.org mailing list
To unsubscribe, send any mail to "freebsd-usb-unsubscr...@freebsd.org"

Reply via email to