[fedora-arm] MAC addr - Re: Cubietruck questions - Re: Announcing Fedora 19 ARM remix for Allwinner SOCs release 3

Robert Moskowitz rgm at htt-consult.com
Sun Aug 10 03:19:06 UTC 2014


On 12/26/2013 05:09 PM, Hans de Goede wrote:
> Hi,
>
> On 12/26/2013 10:35 PM, Robert Moskowitz wrote:
>
>>>
>>>>>         * If you've an A20 board, your ethernet may have a random 
>>>>> mac-address,
>>>>>           so if you want to configure a static ip-address and want 
>>>>> it to stick
>>>>>           across reboots, go to the ethernet-tab, select the 
>>>>> mac-address field
>>>>>           and delete its contents, so that the static ip address 
>>>>> you're
>>>>>           configuring does not get tied to the random mac-address.
>>>>
>>>> I work in IEEE 802.  This is NASTY!
>>>
>>> Yep.
>>>
>>> > They did not want to get enough address space from the RAC? I may 
>>> have to get one just to figure out what is going on (and will talk 
>>> to my colleagues in .1 at the Jan meeting. This is probably more 
>>> common than I would have thought).
>>>
>>> So the story here is a bit longer then just this release note:
>>>
>>> 1) Almost all Allwinner A1x / A20 devices don't have an eeprom to 
>>> store a MAC address
>>>
>>> And I believe Allwinner considers this to be a problem of the OEM, 
>>> not of their SoC,
>>> with there tools to create images it is possible to put the MAC 
>>> address in a file in
>>> the /boot partition, but AFAIK no oems are actually doing that as 
>>> they use a single
>>> nand image for all boards of a certain model, and actually using 
>>> this would require
>>> modifying the nand image for each board before flashing the board.
>>>
>>> 2) For those few that do include an eeprom, there is no code to 
>>> actually use this,
>>> given 1.
>>>
>>> 3) As a workaround we usually derive a MAC address from the SID, the 
>>> SID is a small
>>> write once (we think) prom in the A1x / A20 which contains a 
>>> "secure" device-id, of
>>> which some bits are fixed (they indicate the SOC model and revision) 
>>> and the rest
>>> seems to be random, see:
>>> http://linux-sunxi.org/SID_Register_Guide
>>>
>>> So I've written a patch to use the random bits to get a (hopefully, 
>>> not using assigned
>>> addresses!) unique address, which is consistent over reboots.
>>
>> I hope you are using the local MAC address format?  Not grabing some 
>> OID, unless Allwinner has one assigned.  The likelihood of a 
>> collision is small, similar to what I do with HIP and our IPv6 
>> prefix.  Please don't go using any old OID and hoping it will never 
>> get assigned or be seen again.  I should be able to find pointers to 
>> guidlines from the RAC if you need them.  BTW, most of my time in is 
>> 802.15; I am the chair of 802.15.9, but I use to spend lots of time 
>> in 802.1 (.1X, .1AE, and .1AR).
>
> Yes I'm setting locally administrated bit to 1 (byte 0 to 0x02), the 
> rest of the address
> bytes are filled with the random bits from the SID.
>
>>> 4) But the first A20 SOCs did not have their SID proms written, so 
>>> they were all 0, so
>>> there the best we can do is generate a random MAC address each boot, 
>>> so it won't be
>>> consistent over reboots
>>
>> And you can't do a firstboot operation to generate the random value 
>> to seed the MAC?
>
> I guess we could come up with something to only do the random 
> generation once, but atm
> there is no support for this since this situation is rather rare. Note 
> that later A20
> SoCs such as the one in the cubietruck (IIRC) do have the SID bits 
> filled with a random
> serial number, from which a fixed MAC address can be derived.

I have to do some checking, but it SEEMed like MAC address was fixed 
across reboots as was IPv6 address (this is why I say this).  I will 
boot up my F19 and F20 images tomorrow to check this.  It would seem 
that at least with F19 and maybe F20, you still have the 
/etc/sysconfig/network-script/ifcfg-eth0 to put the MAC addr in? systemd 
seems to change these, and on my F20, each wifi connection has its own 
script (and what would that do with each ethernet 802.1X connection if 
you use that?).

Part of my interest is stable IPv6 addresses, and also I have built a 
Redsleeve install ontop of the F19 kernel and uboot.  Since these will 
be production systems, I really want stable MAC and IPv6 addresses.






More information about the arm mailing list