Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 11 Feb 2006 20:15:49 +0000
From:      Ian Dowse <iedowse@iedowse.com>
To:        Erin Sharmahd <tuxgirl@gmail.com>
Cc:        questions@freebsd.org
Subject:   Re: I can't mount my USB thumb drive or ipod -- no /dev/da* 
Message-ID:  <200602112015.aa11059@nowhere.iedowse.com>
In-Reply-To: Your message of "Fri, 10 Feb 2006 23:51:10 MST." <6e4453640602102251j3349d6eev23ddef8726dad84@mail.gmail.com> 

next in thread | previous in thread | raw e-mail | index | archive | help
In message <6e4453640602102251j3349d6eev23ddef8726dad84@mail.gmail.com>, Erin S
harmahd writes:
>I'm a bit of a newbie, but I've done a good bit of research, and some
>asking around on this issue, and haven't been able to resolve it yet.=20
>I'm using FreeBSD 6.0 RELEASE with the GENERIC kernel.  (from what i
>can tell, it has all of the necessary pieces to allow usb drives).
>
>When I plug my ipod into my computer, dmesg gets the following addition:
>umass0: Apple iPod mini, rev 2.00/0.01, addr 2
>
>However, that's all that appears there relative to it.  From google, I
>found that plugging in an ipod or a usb thumb drive should add a
>/dev/da0 (or similar) entry to /dev, which you should mount.  I still
>don't have a /dev/da*, and I actually checked, and nothing is getting
>added to /dev when I plug the ipod in.

Unfortunately a number of Apple iPod devices don't work with 6.0
release. FreeBSD sends a command to the device that causes the iPod
USB interface to get confused and it stops responding. This was
fixed in 6-stable, so you'll need to upgrade or patch the kernel
to get it to work.

You could also just manually remove the offending code. The change
you need to make is in /usr/src/sys/dev/usb/usb_subr.c. Find the
usbd_setup_pipe() function, and then put a '#if 0' and '#endif'
around the code for clearing stall conditions, i.e.:

#if 0
	/* Clear any stall and make sure DATA0 toggle will be used next. */
	if (UE_GET_ADDR(ep->edesc->bEndpointAddress) != USB_CONTROL_ENDPOINT) {
		err = usbd_clear_endpoint_stall(p);
		...
			return (err);
		}
	}
#endif

Then recompile and install the kernel, reboot, and the iPod should work.

Ian



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200602112015.aa11059>