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:
ifconfig eth0 output:
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?
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?