Skip to content
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

Closed
Whobeu opened this issue Feb 28, 2017 · 9 comments
Closed

MAC Address Setting Appears Broken 4.9.13 #1865

Whobeu opened this issue Feb 28, 2017 · 9 comments

Comments

@Whobeu
Copy link

Whobeu commented Feb 28, 2017

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.

@pelwell
Copy link
Contributor

pelwell commented Feb 28, 2017

"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.

@kukabu
Copy link

kukabu commented Mar 1, 2017

@pelwell I think right way sets the mac-address property via DTB overlay.
https://github.com/raspberrypi/linux/blob/rpi-4.9.y/Documentation/devicetree/bindings/net/ethernet.txt#L5

@pelwell
Copy link
Contributor

pelwell commented Mar 1, 2017

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.

@pelwell
Copy link
Contributor

pelwell commented Mar 1, 2017

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.

@Whobeu
Copy link
Author

Whobeu commented Mar 1, 2017

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.

@pelwell
Copy link
Contributor

pelwell commented Mar 1, 2017

Let's keep it open until the fix makes it to the rpi-update channel, but thanks for the feedback.

@aeruder
Copy link
Contributor

aeruder commented Mar 1, 2017

Just chiming in - fix worked for me too. Running upstream kernel 4.10.0-10348-g45554b2357d5

popcornmix added a commit to raspberrypi/firmware that referenced this issue Mar 1, 2017
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
popcornmix added a commit to Hexxeh/rpi-firmware that referenced this issue Mar 1, 2017
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
popcornmix added a commit to raspberrypi/firmware that referenced this issue Mar 1, 2017
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
popcornmix added a commit to Hexxeh/rpi-firmware that referenced this issue Mar 1, 2017
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
@aeruder
Copy link
Contributor

aeruder commented Mar 2, 2017

Confirmed working here (running raspberrypi/firmware master)

@pelwell
Copy link
Contributor

pelwell commented Mar 2, 2017

Thanks.

@pelwell pelwell closed this as completed Mar 2, 2017
mkreisl added a commit to xbianonpi/xbian-package-firmware that referenced this issue Mar 26, 2017
- 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants