Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 03 Jun 2020 18:51:49 +0100
From:      Luke Ross <luke@lukeross.name>
To:        freebsd-arm@freebsd.org
Subject:   Problems with cdce/cdceem as a USB-device on R-Pi
Message-ID:  <75a918d07625de979e9995b3f01662c9deb0a9c1.camel@lukeross.name>

next in thread | raw e-mail | index | archive | help
Hi,

I have a plan to run FreeBSD on a Raspberry Pi Zero configured as a USB
network device, attached to a USB host.

I've booted the 12.1 image, and in theory it looks like it ought to be
as simple as:

/boot/loader.conf: hw.usb.template=8

If I do this, the Pi does indeed have an interface ue0, and the host
recognises a new CDC-ether device. Configuring both ends with IPs is
successful, but no packets can be passed between the two ends. The USB
serial console works fine, so there is some USB connectivity, just not
the cdce network. The same applies with hw.usb.template=1 (cdce with no
serial).

I then reconfigured with hw.usb.template=11 for cdceem connectivity.
This is more successful - using the same IP configuration, packets pass
between host and pi-device in the main without problem. Every 15
seconds or so, the link freezes for a few seconds and the pi logs:

cdceem0: WARNING: cdceem_bulk_read_callback: USB_ST_ERROR:
USB_ERR_STALLED

Unfortunately this stall is frequent enough to make cdceem mode not
useful for my use-case.

Has anyone else got cdce device-mode working on a Pi, or knows hows to
prevent the cdceem stall? I did experiment with using a 13-CURRENT
image (same behaviour) and with FreeBSD or Linux hosts (same
behaviour). I double-checked for any inadvertent firewalling on the
host. The same sort of set-up works fine under Raspbian, so I don't
believe it's a hardware fault.

Any suggestions/pointers very much appreciated!

Many thanks,

Luke






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