-
Notifications
You must be signed in to change notification settings - Fork 5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MAC Address Setting Appears Broken 4.9.13 #1865
Comments
"MAC address overriding broken in 4.9.13" would be a more accurate title, but otherwise you are correct. That command line parameter was added by a downstream patch, but now that the smsc95xx driver can read its MAC address from the Device Tree the patch is no longer required. If the firmware detects a compatible .dtb file it will populate the local-mac-address property and not pass in the smsc95xx.macaddr parameter. However, this removes a mechanism to force the MAC address to a value of the user's choosing. I'll get the firmware to read smsc95xx.macaddr from the cmdline.txt and use it as the preferred source of the Pi's MAC address, falling back to the value derived from the serial number when necessary. In the meantime you could, if you wanted, take the firmware from the 4.9.11 release and use it with the 4.9.13 kernel, but I'm not sure why you would. |
@pelwell I think right way sets the mac-address property via DTB overlay. |
I would switch to that now, but the current dtparam mechanism doesn't have a syntax for an array of bytes. I could create 6 parameters - one per byte - but that's a bit ugly. For now I'll restore the ability to read it from the command line and think about a neater DT solution. |
Can you try this firmware (elfs and dats)? It implements the change outlined above (checking for the module parameter in cmdline.txt and using that MAC address if present), with one addition - if the DTB (after merging overlays) includes a valid, non-zero local-mac-address property it doesn't overwrite it. |
This new firmware is working correctly. I updated to 4.9.13 using rpi-update and then added these files in before reboot. The MAC address is now being set correctly to my cmdline.txt specified address. I would consider this issue closed. |
Let's keep it open until the fix makes it to the rpi-update channel, but thanks for the feedback. |
Just chiming in - fix worked for me too. Running upstream kernel 4.10.0-10348-g45554b2357d5 |
kernel: BCM2835-V4L2: Correctly denote key frames in encoded data kernel: bcm2835-gpio-exp: Driver for GPIO expander via mailbox service See: raspberrypi/linux#1852 kernel: Add overlay for ads1115 ADCs See: raspberrypi/linux#1864 kernel: Add support for Fe-Pi audio sound card See: raspberrypi/linux#1867 kernel: amba_pl011: Round input clock up kernel: clk-bcm2835: Correct the prediv logic firmware: Redo CEC code cleanup 3: Removed CEC topology computation firmware: Redo CEC code cleanup 4: Removed unused functions firmware: Redo CEC code cleanup 5: Removed Rx processing firmware: Redo CEC code cleanup 6: Logging changed to VCOS firmware: Redo CEC code cleanup 7: Removed hdmi_state_machine_clock_changed firmware: Redo CEC code cleanup 8: fixed hdmi state machine clk firmware: Redo CEC code cleanup 10: misc cosmetic changes firmware: Fixup CEC code cleanup 8: fixed hdmi state machine clk firmware: hdmi: Add way of forcing logging for hdmi and cec from boot firmware: Redo CEC code cleanup 11: cec_release_logical_addr firmware: arm_loader: Respect smsc95xx.macaddr parameter See: raspberrypi/linux#1865 firmware: vec: Fix progressive scan composite mode See: #683 firmware: vec: PAL_M mode is 525/60 See: #756 firmware: IL ISP: Support Bayer firmware: IL ISP: Fix error in stride calcs for YUYV formats firmware: video_render: buffer size fixup for ARGB888 firmware: video_render: Support per-pixel alpha on RGBA input See: waveform80/picamera#199
kernel: BCM2835-V4L2: Correctly denote key frames in encoded data kernel: bcm2835-gpio-exp: Driver for GPIO expander via mailbox service See: raspberrypi/linux#1852 kernel: Add overlay for ads1115 ADCs See: raspberrypi/linux#1864 kernel: Add support for Fe-Pi audio sound card See: raspberrypi/linux#1867 kernel: amba_pl011: Round input clock up kernel: clk-bcm2835: Correct the prediv logic firmware: Redo CEC code cleanup 3: Removed CEC topology computation firmware: Redo CEC code cleanup 4: Removed unused functions firmware: Redo CEC code cleanup 5: Removed Rx processing firmware: Redo CEC code cleanup 6: Logging changed to VCOS firmware: Redo CEC code cleanup 7: Removed hdmi_state_machine_clock_changed firmware: Redo CEC code cleanup 8: fixed hdmi state machine clk firmware: Redo CEC code cleanup 10: misc cosmetic changes firmware: Fixup CEC code cleanup 8: fixed hdmi state machine clk firmware: hdmi: Add way of forcing logging for hdmi and cec from boot firmware: Redo CEC code cleanup 11: cec_release_logical_addr firmware: arm_loader: Respect smsc95xx.macaddr parameter See: raspberrypi/linux#1865 firmware: vec: Fix progressive scan composite mode See: raspberrypi/firmware#683 firmware: vec: PAL_M mode is 525/60 See: raspberrypi/firmware#756 firmware: IL ISP: Support Bayer firmware: IL ISP: Fix error in stride calcs for YUYV formats firmware: video_render: buffer size fixup for ARGB888 firmware: video_render: Support per-pixel alpha on RGBA input See: waveform80/picamera#199
kernel: BCM2835-V4L2: Correctly denote key frames in encoded data kernel: bcm2835-gpio-exp: Driver for GPIO expander via mailbox service See: raspberrypi/linux#1852 kernel: Add overlay for ads1115 ADCs See: raspberrypi/linux#1864 kernel: Add support for Fe-Pi audio sound card See: raspberrypi/linux#1867 kernel: amba_pl011: Round input clock up kernel: clk-bcm2835: Correct the prediv logic firmware: Redo CEC code cleanup 3: Removed CEC topology computation firmware: Redo CEC code cleanup 4: Removed unused functions firmware: Redo CEC code cleanup 5: Removed Rx processing firmware: Redo CEC code cleanup 6: Logging changed to VCOS firmware: Redo CEC code cleanup 7: Removed hdmi_state_machine_clock_changed firmware: Redo CEC code cleanup 8: fixed hdmi state machine clk firmware: Redo CEC code cleanup 10: misc cosmetic changes firmware: Fixup CEC code cleanup 8: fixed hdmi state machine clk firmware: hdmi: Add way of forcing logging for hdmi and cec from boot firmware: Redo CEC code cleanup 11: cec_release_logical_addr firmware: arm_loader: Respect smsc95xx.macaddr parameter See: raspberrypi/linux#1865 firmware: vec: Fix progressive scan composite mode See: #683 firmware: vec: PAL_M mode is 525/60 See: #756 firmware: IL ISP: Support Bayer firmware: IL ISP: Fix error in stride calcs for YUYV formats firmware: video_render: buffer size fixup for ARGB888 firmware: video_render: Support per-pixel alpha on RGBA input See: waveform80/picamera#199
kernel: BCM2835-V4L2: Correctly denote key frames in encoded data kernel: bcm2835-gpio-exp: Driver for GPIO expander via mailbox service See: raspberrypi/linux#1852 kernel: Add overlay for ads1115 ADCs See: raspberrypi/linux#1864 kernel: Add support for Fe-Pi audio sound card See: raspberrypi/linux#1867 kernel: amba_pl011: Round input clock up kernel: clk-bcm2835: Correct the prediv logic firmware: Redo CEC code cleanup 3: Removed CEC topology computation firmware: Redo CEC code cleanup 4: Removed unused functions firmware: Redo CEC code cleanup 5: Removed Rx processing firmware: Redo CEC code cleanup 6: Logging changed to VCOS firmware: Redo CEC code cleanup 7: Removed hdmi_state_machine_clock_changed firmware: Redo CEC code cleanup 8: fixed hdmi state machine clk firmware: Redo CEC code cleanup 10: misc cosmetic changes firmware: Fixup CEC code cleanup 8: fixed hdmi state machine clk firmware: hdmi: Add way of forcing logging for hdmi and cec from boot firmware: Redo CEC code cleanup 11: cec_release_logical_addr firmware: arm_loader: Respect smsc95xx.macaddr parameter See: raspberrypi/linux#1865 firmware: vec: Fix progressive scan composite mode See: raspberrypi/firmware#683 firmware: vec: PAL_M mode is 525/60 See: raspberrypi/firmware#756 firmware: IL ISP: Support Bayer firmware: IL ISP: Fix error in stride calcs for YUYV formats firmware: video_render: buffer size fixup for ARGB888 firmware: video_render: Support per-pixel alpha on RGBA input See: waveform80/picamera#199
Confirmed working here (running raspberrypi/firmware master) |
Thanks. |
- firmware: dtoverlay: find symbols, write properties See: #613 - firmware: arm_loader: Clean up cmdline, add local-mac-address to DT See: #613 - firmware: gpuserv: Boost gpu frequencies when in use - firmware: ILCamera: Add option to disable ISP processing stages - firmware: MMAL/IL: Allow video render to take non aligned sliceheight - firmware: IL ISP: Support unaligned nSliceHeight on input - firmware: Redo CEC code cleanup 3: Removed CEC topology computation - firmware: Redo CEC code cleanup 4: Removed unused functions - firmware: Redo CEC code cleanup 5: Removed Rx processing - firmware: Redo CEC code cleanup 6: Logging changed to VCOS - firmware: Redo CEC code cleanup 7: Removed hdmi_state_machine_clock_changed - firmware: Redo CEC code cleanup 8: fixed hdmi state machine clk - firmware: Redo CEC code cleanup 10: misc cosmetic changes - firmware: Fixup CEC code cleanup 8: fixed hdmi state machine clk - firmware: hdmi: Add way of forcing logging for hdmi and cec from boot - firmware: Redo CEC code cleanup 11: cec_release_logical_addr - firmware: arm_loader: Respect smsc95xx.macaddr parameter See: raspberrypi/linux#1865 - firmware: vec: Fix progressive scan composite mode See: #683 - firmware: vec: PAL_M mode is 525/60 See: #756 - firmware: IL ISP: Support Bayer - firmware: IL ISP: Fix error in stride calcs for YUYV formats - firmware: video_render: buffer size fixup for ARGB888 - firmware: video_render: Support per-pixel alpha on RGBA input See: waveform80/picamera#199 - firmware: cmake: Expose all symbols from vchostif in bcm_host - firmware: vec: first field odd should be related to vertical resolution - firmware: vec: Avoid rolling display with progressive PAL See: #683 - firmware: platform: Treat Pi0W like Pi0 w.r.t. clocks and voltages - firmware: platform: Add final Pi Zero W support - firmware: GPIO expander: rework so the mailbox service reads raw values - firmware: arm_loader: Check GPIO direction for low_voltage See: raspberrypi/linux#1879 - firmware: warnings: Fix some mostly spurious warnings - firmware: clock: Calculate PLL multipliers with more precision - firmware: Set up HDMI VCO same for VEC as for HDMI - firmeware: gpu_server: Move detailed logging to LOGGING_VMCS_VERBOSE category - firmware: FXL6408: Remove assert of output state of an input being set - firmware: ISP tuner/3D: Stop AWB using V3D if disabled from VPU - firmware: cmake: Install user-vcsm.h to opt/vc/include/interface/vcsm - firmware: dtoverlay: Make empty alias a valid string - firmware: dtoverlay: Add dt_node_is_enabled - firmware: arm_loader: Create simplefb if no /soc/fb See: #763 - firmware: isp: Request turbo mode for isp when active - firmware: isp: Avoid reducing isp clock frequency when initialising - firmware: gpu_server: unreserve the qpu user shaders at end of each job - firmware: gpu_server: Only enable/disable qpus at start/end of service connection
I run a feed to FlightAware and use the smsc95xx.macaddr setting in /boot/cmdline.txt to set the MAC address to b8:27:eb:89:93:xx which was the address of a Raspberry Pi 1 that I used to use (now using a Raspberry Pi 3). I do this because FlightAware uniquely defines our site numbers based upon our MAC address so changing my MAC address to the address of my original setup preserves my settings at FlightAware.
Under 4.9.11 everything works fine. Yesterday I upgraded to 4.9.13 and learned last night that my "site" was not feeding. Upon logging in to FlightAware I discovered a new site had been registered under my account with a MAC address of b8:27:eb:12:45:xx. I downgraded the kernel back to 4.9.11 this morning and the b8:27:eb:89:93:xx MAC address is working again. I never noted the real MAC address of my Raspberry Pi 3 but, regardless, it appears that in 4.9.13 the smsc95xx.macaddr setting is not working.
The text was updated successfully, but these errors were encountered: