I can't mount my USB thumb drive or ipod -- no /dev/da*

Ian Dowse iedowse at iedowse.com
Sat Feb 11 12:15:59 PST 2006


In message <6e4453640602102251j3349d6eev23ddef8726dad84 at 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


More information about the freebsd-questions mailing list