[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:54:20 UTC 2014


On 08/09/2014 11:19 PM, Robert Moskowitz wrote:
>
> 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.

I am getting a consistant, local scope MAC addr on my Cubieboard of:

02:c4:03:82:c1:53

I am assuming thus it is based on constant bits from the SID?  Both F19 
and F20 have this MAC and for multiple builds of F19.  I will have to 
check out what the F21 is doing.

So do you just construct this at each boot?  Is it in some file in /dev/ 
perhaps?  I do not see it anywhere in /etc/sysconfig

thanks.

I am thinking of handcrafting my MAC addr so I have control over my IPv6 
address for my production boxes.  I have been thinking what I have done 
todate to make my IPv6 static in DNS, and did not like it.  But if I can 
figure out a format for a local scope MAC, I can then let the IPv6 be 
built on it plus the PA provided prefix.  Makes multi-interface easier.




More information about the arm mailing list