[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