Fwd: umodem (4) recognize a CDC-ACM device

Marcelo/Porks marcelorossi at gmail.com
Fri Jun 4 15:33:21 UTC 2010


On Fri, Jun 4, 2010 at 4:28 AM, Hans Petter Selasky <hselasky at c2i.net> wrote:
> On Friday 04 June 2010 03:02:52 Marcelo/Porks wrote:
>> On Thu, Jun 3, 2010 at 12:57 PM, Hans Petter Selasky <hselasky at c2i.net>
> wrote:
>> > On Thursday 03 June 2010 17:54:17 Hans Petter Selasky wrote:
>> >> On Thursday 03 June 2010 17:50:08 Hans Petter Selasky wrote:
>> >> > On Thursday 03 June 2010 16:22:33 Marcelo/Porks wrote:
>> >> > > On Wed, Jun 2, 2010 at 1:25 PM, Hans Petter Selasky
>> >> > > <hselasky at c2i.net>
>> >> >
>> >> > wrote:
>> >> > > > Hi,
>> >> > > >
>> >> > > > The problem is that LOW speed does not support BULK transfers
>> >> > > > according to the USB specification. I guess we could switch that
>> >> > > > support on, though I'd rather stick with the spec.
>> >> > > >
>> >> > > > Try changing this line in:
>> >> > > >
>> >> > > > src/sys/dev/usb/usb_transfer.c
>> >
>> > Hi,
>> >
>> > Should be like this: Note the structure is called "bulk_min":
>> >
>> >        static const uint16_t bulk_min[USB_SPEED_MAX] = {
>> >                [USB_SPEED_LOW] = 8,
>> >                [USB_SPEED_FULL] = 8,
>> >                [USB_SPEED_HIGH] = 512,
>> >                [USB_SPEED_VARIABLE] = 512,
>> >                [USB_SPEED_SUPER] = 1024,
>> >        };
>> > --HPS
>>
>> Hi, This was what I changed at first. I tried in a FreeBSD current
>> (Jun 3) and at 8.0-p3.
>>
>> At FreeBSD current I changed the line 3062.
>>
>> From:
>> [USB_SPEED_LOW] = 0,    /* not supported */
>>
>> To:
>> [USB_SPEED_LOW] = 8,
>>
>>
>> Like you suggested I'll try to talk with you in #bsdusb at efnet
>>
>> Thank you!
>
> Ok,
>
> I think you also need to remove the check for LOW speed in the EHCI/OHCI/UHCI
> controller drivers too. See usb/controller/{ehci.c,uhci.c,ohci.c}
>
>                case UE_BULK:
>                        if (udev->speed != USB_SPEED_LOW) {
>                                ep->methods = &uhci_device_bulk_methods;
>                        }
>                        break;
>
> --HPS
>

Hia Hans! It seems to work now or at least it was recognized.

I'll make more tests on Monday and post the results.

Thank you so much. again!

BARAD-DUR# uname -a
FreeBSD BARAD-DUR.BUTECO 9.0-CURRENT FreeBSD 9.0-CURRENT #1 r208760M:
Fri Jun  4 12:16:35 BRT 2010
porks at BARAD-DUR.BUTECO:/usr/obj/mnt/ad2s1d/data/src/sys/BARAD-DUR
i386
BARAD-DUR# kldload umodem
BARAD-DUR# kldstat
Id Refs Address    Size     Name
 1   29 0xc0400000 757368   kernel
 2    1 0xc0b58000 5ad4     snd_cmi.ko
 3    3 0xc0b5e000 574a4    sound.ko
 4    1 0xc0bb6000 4dfa90   nvidia.ko
 5    3 0xc1096000 2eacc    linux.ko
 6    1 0xc4407000 8000     linprocfs.ko
 7    1 0xc474f000 3000     logo_saver.ko
 8    1 0xc4d54000 4000     umodem.ko


< DEVICE PLUGGED ON USB PORT >


BARAD-DUR# tail -f /var/log/messages
Jun  4 12:27:14 BARAD-DUR kernel: uhub_reattach_port: port 1 reset
failed, error=USB_ERR_TIMEOUT
Jun  4 12:27:14 BARAD-DUR kernel: uhub_reattach_port: device problem
(USB_ERR_TIMEOUT), disabling port 1
Jun  4 12:27:15 BARAD-DUR kernel: ugen0.3: <www.recursion.jp> at usbus0
Jun  4 12:27:15 BARAD-DUR kernel: umodem0: <www.recursion.jp USB-232,
class 2/0, rev 1.10/1.00, addr 3> on usbus0
Jun  4 12:27:15 BARAD-DUR kernel: umodem0: data interface 1, has CM
over data, has no break

BARAD-DUR# ls -lah /dev/cuaU*
crw-rw----  1 uucp  dialer    0, 114 Jun  4 12:27 /dev/cuaU0
crw-rw----  1 uucp  dialer    0, 115 Jun  4 12:27 /dev/cuaU0.init
crw-rw----  1 uucp  dialer    0, 116 Jun  4 12:27 /dev/cuaU0.lock


< DEVICE PLUGED OFF USB PORT>


BARAD-DUR# tail -f /var/log/messages
Jun  4 12:30:15 BARAD-DUR kernel: ugen0.3: <www.recursion.jp> at
usbus0 (disconnected)
Jun  4 12:30:15 BARAD-DUR kernel: umodem0: at uhub0, port 1, addr 3
(disconnected)

BARAD-DUR# ls -lah /dev/cuaU*
zsh: no matches found: /dev/cuaU*


-- 
Marcelo Rossi
"This e-mail is provided "AS IS" with no warranties, and confers no rights."


More information about the freebsd-current mailing list