Ticket #1023 (closed defect: later)
CDC/RNDIS Ethernet over USB driver provides random Ethernet address after each reboot which makes MacOS X config problematic
|Reported by:||hns@…||Owned by:||michael@…|
|Cc:||buglog@…, werner@…, rod@…, wolfgang@…||Blocked By:|
|Blocking:||Estimated Completion (week):|
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
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
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).
- Owner changed from laforge@… to sean_mosko@…
- Cc werner@… added
- Component changed from kernel to u-boot