Apple USB Ethernet Adapter in Parallels Desktop?



  • I'm currently evaluating both pfSense 2.0 and vyatta 5 (both in alpha/beta stages) to plan future deployment as a replacement for some ZyWALL 5 UTM boxes.

    To prevent significant hardware investment, I'm currently playing with these systems under Parallels Desktop on a Mac (we are a Mac/Unix/BSD/Linux outfit, so no WinPCs here…)

    I can get pfSense to run in a rudimentary way, but despite the Apple USB Ethernet adapters being ASIX based and supported in the BSD source (see: http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/dev/usb2/ethernet/if_axe2.c )
    and despite the device being assigned to the virtual machine rather than the Mac host computer, pfSense does not seem to find the devices.

    I'm now trying to figure out if this is an issue with pfSense (device not supported, or not part of the standard configuration?), or with the way FreeBSD and the Parallels Desktop virtual machine interact.

    Can anyone tell me if ASIX USB Ethernet adapters should and do work in a hardware based setup, or if I have to do something to get these working?

    Thanks!

    Ronald



  • Plug in your USB adapters. Then at the shell prompt, give the command

    usbdevs -v

    Post the output here in a reply if you are not sure how to interpret it. If the adapters show up then its probably that the kernel hasn't been built with support for them. Some months ago when I was experimenting with Davicom USB Ethernet adapters I found the pfSense kernel didn't include support for then and the pfSense developers were quite responsive when I pointed this out and asked them to rectify it.

    Here's the usbdevs output from my system (shows a Davicom/Shantou NIC and a Ralink WLAN NIC and the motherboard's USB controllers).

    usbdevs -v

    Controller /dev/usb0:
    addr 1: full speed, self powered, config 1, UHCI root hub(0x0000), VIA(0x0000), rev 1.00
    port 1 addr 2: full speed, power 144 mA, config 1, ST268 USB NIC(0x0268), ShanTou(0x0a46), rev 1.01
    port 2 powered
    Controller /dev/usb1:
    addr 1: full speed, self powered, config 1, UHCI root hub(0x0000), VIA(0x0000), rev 1.00
    port 1 powered
    port 2 powered
    Controller /dev/usb2:
    addr 1: full speed, self powered, config 1, UHCI root hub(0x0000), VIA(0x0000), rev 1.00
    port 1 powered
    port 2 powered
    Controller /dev/usb3:
    addr 1: high speed, self powered, config 1, EHCI root hub(0x0000), VIA(0x0000), rev 1.00
    port 1 powered
    port 2 powered
    port 3 powered
    port 4 addr 2: high speed, power 300 mA, config 1, 802.11 bg WLAN(0x3c03), Ralink(0x07d1), rev 0.01
    port 5 powered
    port 6 powered



  • First, thanks for the hint. Not exactly up to speed with FreeBSD (Mac OS X is my main platform).
    Still, the output is rather clear:

    # usbdevs -v
    usbdevs: no USB controllers found
    
    

    The only thing that doesn't tell me is if the 2.0 Alpha version doesn't have USB support compiled in, or if it doesn't have support for whatever USB controller the Parallels Desktop virtual machine emulates.
    Still, given that FreeBSD 7.x is an OS supported by Parallels Desktop, I'd assume they have some sort of controller emulated that at least in a FreeBSD standard distribution is recognized.

    So I think I'll bring up this issue in the 2.0 Alpha-Alpha board…

    Thanks!



  • I wonder if you also need to assign the appropriate USB controller to the pfSense virtual machine, though this could cause some difficulties if you need the same USB controller for mouse and keyboard. I suspect you might also need to provide at least an emulated USB controller to the pfSense virtual machine for this to work.
    The driver for the USB NICs effectively also needs access to the USB controller to which the NIC is connected.

    As far as drivers for USB controllers go, the industry seems to have standardised on three possibilities: uhci and ohci for USB 1.x (speeds to 12Mbps) and ehci for USB 2.0 (speeds to 480Mbps). I would think any USB emulation would emulate at least one of these with ehci being most likely



  • Parallels Desktop only allows you to enable or disable USB emulation, which likely is the equivalent of enabling or disabling the emulation of the USB host controller.
    After that, you can only decide which attached USB devices should belong to the Mac OS and which to the virtual machine.
    Actually, one can't even assign real USB devices to a virtual machine before one enables USB support in the virtual machine emulation. So from that point of view it's fool proof. Of course, that doesn't guarantee it's bug free…


Log in to reply