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.