[Bug 1023] New: CDC/RNDIS Ethernet over USB driver provides random Ethernet address after each reboot which makes MacOS X config problematic
bugzilla-daemon at bugzilla.openmoko.org
bugzilla-daemon at bugzilla.openmoko.org
Sun Nov 25 13:01:06 CET 2007
http://bugzilla.openmoko.org/cgi-bin/bugzilla/show_bug.cgi?id=1023
Summary: CDC/RNDIS Ethernet over USB driver provides random
Ethernet address after each reboot which makes MacOS X
config problematic
Product: OpenMoko
Version: 2007
Platform: Macintosh
OS/Version: MacOS X
Status: NEW
Severity: normal
Priority: P2
Component: kernel
AssignedTo: laforge at openmoko.org
ReportedBy: hns at computer.org
CC: buglog at lists.openmoko.org
When plugging the OpenMoko device through USB to a Mac with at least MacOS X 10.4.10, a CDC
Ethernet driver is started automatically on the Mac. The only additional step for a user is to go to the
Network Settings and configure a manual IP address (192.168.0.200) for the Mac.
This all works well, until the user decides to reboot the OpenMoko device. After doing this, he has to
reconfigure MacOS X again and the Network Settings shows a second (third, etc.) entry for the
OpenMoko because the old entries can't be deleted automatically.
One part of the reason is the way how MacOS X stores and associates network configuration data when
hot-plugging an Ethernet interface: they are hashed/indexed by the Ethernet MAC address. So, each
Ethernet interface has its own set of IP default configurations (ifconfig).
Now, the CDC-Ethernet driver appears to receive a "virtual" the Ethernet MAC address for both
endpoints of the USB connection, i.e. one for the Macintosh and one for the OM. These addresses
appear to be provided by the OM kernel (or the CDC Ethernet driver on the OM) through the USB profile
data. And, the Linux kernel appears to seed a randomized value for each reboot which results in this
bug.
My analysis has shown that the Sharp Zaurus (with Sharp ROM and kernel 2.4) is doing it slightly
different: the MAC addresses provided by USB are constant. So, the Zaurus does not have this problem
when being connected to the Mac. Unfortunately this MAC address is the same for all Zaurus devices so
that you get problems when plugging in two Zaurus devices.
So, I propose a patch for the USB/CDC-Ethernet module of the OM kernel that provides a MAC address
that somehow depends on a Neo serial number. Or is otherwise constant between kernel reflashes and
reboots but still unique between different OM devices (so that you can charge and connect two of them
on the same Macintosh without confusing the IP configuration).
It could e.g. be a random number derived when flashing uBoot and stored somewhere in the bootloader
flash.
Please note that this problem can't be solved on the Mac since all these mechanisms are system and
kernel modules provided by Apple. The only current workaround is the AJZaurusUSB driver which
ignores the MAC address - but also replaces the Apple CDC Ethernet driver (which appears to be more
stable that AJZaurusUSB).
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
More information about the buglog
mailing list