Quantcast
Channel: Linux Device Hacking
Viewing all articles
Browse latest Browse all 3247

Pogoplug Pro random MAC address after upgrading to kernel 5.15.158 (2 replies)

$
0
0
Hi all, I decided to try updating my Pogoplug Pro since it hadn't been updated in a couple of years. I was on kernel version 4.14.180 (with a buster rootfs) and went through the instructions in the Oxnas thread to get it updated. I thought it wasn't booting correctly as I could no longer ping it with the new kernel. I eventually figured out that it was showing up in my router with a random MAC address instead of as defined in the ethaddr environment variable in uBoot.

I also tried with a new rootfs with bookworm and it is exhibiting the same behavior.

This is with U-Boot 2015.10-tld-2 (Oct 21 2017 - 22:00:02 -0700)

Here is my fw_printenv output:

bootcmd_exec=run load_uimage; if run load_initrd; then if run load_dtb; then bootm 0x60500000 0x60e00000 0x62c00000; else bootm 0x60500000 0x60e00000; fi; else if run load_dtb; then bootm 0x60500000 - 0x62c00000; else bootm 0x60500000; fi; fi
bootcmd=run bootcmd_uenv; run scan_disk; run set_bootargs; run bootcmd_exec; reset
bootcmd_uenv=run uenv_load; if test $uenv_loaded -eq 1; then run uenv_import; fi
bootdelay=10
bootdev=usb
usb_custom_params=zswap.enabled=1
device=0:1
devices=usb ide
disks=0 1 2 3
ethact=mii0
if_netconsole=ping $serverip
dtb_file=/boot/dts/ox820-pogoplug-pro.dtb
load_dtb=echo loading DTB $dtb_file ...; load $bootdev $device 0x62c00000 $dtb_file
load_initrd=echo loading uInitrd ...; load $bootdev $device 0x60e00000 /boot/uInitrd
load_uimage=echo loading uImage ...; load $bootdev $device 0x60500000 /boot/uImage
mainlineLinux=yes
mtdids=nand0=41000000.nand
preboot_nc=setenv nc_ready 0; for pingstat in 1 2 3 4 5; do; sleep 1; if run if_netconsole; then setenv nc_ready 1; fi; done; if test $nc_ready -eq 1; then run start_netconsole; fi
scan_disk=echo running scan_disk ...; scan_done=0; setenv scan_usb "usb start";  setenv scan_ide "ide reset";  setenv scan_mmc "mmc rescan"; for dev in $devices; do if test $scan_done -eq 0; then echo Scan device $dev; run scan_$dev; for disknum in $disks; do if test $scan_done -eq 0; then echo device $dev $disknum:1; if load $dev $disknum:1 0x60500000 /boot/uImage 1; then scan_done=1; echo Found bootable drive on $dev $disknum; setenv device $disknum:1; setenv bootdev $dev; fi; fi; done; fi; done
set_bootargs=setenv bootargs console=ttyS0,115200 root=LABEL=rootfs rootdelay=10 $mtdparts $custom_params
start_netconsole=setenv ncip $serverip; setenv bootdelay 10; setenv stdin nc; setenv stdout nc; setenv stderr nc; version;
stderr=serial
stdin=serial
stdout=serial
uenv_import=echo importing envs ...; env import -t 0x60510000  $filesize
uenv_init_devices=setenv init_usb "usb start";  setenv init_ide "ide reset";  setenv init_mmc "mmc rescan"; for devtype in $devices; do run init_$devtype; done;
uenv_load=run uenv_init_devices; setenv uenv_loaded 0; for devtype in $devices;  do for disknum in 0; do run uenv_read_disk; done; done;
uenv_read_disk=if test $devtype -eq mmc; then if $devtype part; then run uenv_read;  fi; else if $devtype part $disknum; then run uenv_read; fi;  fi
uenv_read=echo loading envs from $devtype $disknum ...; if load $devtype $disknum:1 0x60500000 /boot/uEnv.txt; then setenv uenv_loaded 1; fi
usb_ready_retry=15
preboot=run preboot_nc
ipaddr=10.10.10.3
serverip=10.10.10.5
ethaddr=00:25:31:01:B4:72
mtdparts=mtdparts=41000000.nand-controller:14m(boot),-(data)

ifconfig eth0 output:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.16.77.117  netmask 255.255.255.0  broadcast 172.16.77.255
        inet6 fe80::d4c9:63ff:fef4:af62  prefixlen 64  scopeid 0x20<link>
        ether d6:c9:63:f4:af:62  txqueuelen 1000  (Ethernet)
        RX packets 5471  bytes 431169 (421.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 534  bytes 95765 (93.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 58  base 0xc000

It's a different MAC address on every boot.

Is it a known thing with newer kernels? What is the best way to make it use the ethaddr again?

Viewing all articles
Browse latest Browse all 3247

Trending Articles