-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Disable video via tvservice vs vcgencmd #447
Comments
Any updates on this ? @jakemagee Can you test it with latest image if the problem still persists? |
So, yes, |
Yea I noticed that the Display 0 cannot be opened after calling @popcornmix "hdmi_blanking=2" is equivalent to I was hoping for a solution in raspberrypi/firmware#352 that actually disabled the entire pipeline rather than just the HDMI. This would help with decreasing the power draw. I agree that Is there a chance of total disabling of video pipeline from boot to be implemented? |
hdmi_blanking uses the sample disabling logic as
I'll have a look, but there could be complications with kernel frame buffer driver. |
Thanks for the information @popcornmix ... that's exactly what I was looking for. Do you think this information was already documented somewhere and I just overlooked it? If not, do you think it should be? I wouldn't complain about having the |
Considering that this code is hackish and not stable it is better to not add it to the official documentation. Its |
I don't believe it is formally documented as the behaviour of two commands is quite low level and isn't something that 99% of users would be advised to use. |
I think for headless projects / OS this might be a common desire to have. Especially in low power, solar, battery type situations (the majority of my use cases). A 10% lower power draw from one command that disables unused functionality is a win-win in my book. I added the info to my personal notes and its obviously here in github now to be found / referenced, so that's good enough for me. |
@hex007 If display is disabled at boot, are you happy that display is not available until a reboot? |
That would be fine from my perspective... |
You could try this firmware: https://drive.google.com/uc?id=1AZxW2nKor4MHuGkgCwtHkW4MwtWuVeJ-&export=download
on boot and hopefully the lower power state. There may be some complaints in dmesg log due to the missing framebuffer but this didn't appear to be fatal to me. |
I'll give it a shot first thing in the morning and report back. |
@popcornmix Yea actually in headless state it would be fine to have no display at all. There is no hard requirement of headless and high uptime. If debugging is needed a quick reboot works for me. |
I see the frame buffer failure messages as well... however, I'm curious if the "bcm2835-clk can't lock PLL" trace messages are possibly an indication of something more serious. |
I suspect the kernel hasn't been tested without PLLH running (used by hdmi/composite). |
Fair enough... I wasn't sure what else might be using that clk / PLL. I'm not sure what else needs to be done on this issue before closing... my original question was answered way back. There's a good chance that I'll just stick with running |
Okay, I'll close. You have a couple of options for reducing power by disabling the display output. |
kernel: config: Enable the DS1621 I2C temperature sensor kernel: overlays: Add ds1621 to the i2c-sensor overlay See: raspberrypi/linux#2509 firmware: platform: Pi3 B+ reduce sdram freq to 450 while investigations are ongoing See: https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=208821 firmware: arm_loader: Allow hdmi_ignore_composite to disable any display initialisation See: raspberrypi/userland#447 firmware: Add aphy and dphy slew and drive register controls
kernel: config: Enable the DS1621 I2C temperature sensor kernel: overlays: Add ds1621 to the i2c-sensor overlay See: raspberrypi/linux#2509 firmware: platform: Pi3 B+ reduce sdram freq to 450 while investigations are ongoing See: https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=208821 firmware: arm_loader: Allow hdmi_ignore_composite to disable any display initialisation See: raspberrypi/userland#447 firmware: Add aphy and dphy slew and drive register controls
Can the docs be updated, looks like hdmi_ingore_hotplug is there but not hdmi_ignore_composite. |
@popcornmix @nullr0ute CanI just confirm its just hdmi_ignore_composite that need to be added to the docs, and that it simply doesn't start up the composite HW to save some power? Note, that ELinux site is out of date, and nothing to do with us, so I will only be updating our own docs. |
Personally I'm not sure if it is wise to add this to main documentation. There exist a number of options that are intended for debugging purposes or for specific user's requests, who understand the limitations of the feature and are not recommended for average users to switch on without understanding the background of the option (e.g. by reading the github issue that introduced it). This has a very niche use case and a number of significant limitations (the kernel errors on boot and the inability to subsequently enable the framebuffer if a display is powered on), and putting it into the primary documentation is probably going to increase confusion. |
It might be useful to have it documented in an advanced section, power saving in a headless environment is not exactly niche IMO, and trying to find things by digging through github in the vague hope that you find the thing you need isn't very useful. I feel it's useful to have these options documented somewhere even it's not in the core docs. |
I agree on both sides... I can see not documenting the |
Hi! As I am still confused after reading this thread I want to make sure and sum it all up:
|
|
… fixes: - firmware: config: Add gpio command See: #955 - firmware: hat_lib: Only probe HAT EEPROM if ID pins are inputs - firmware: Added a arm_display_kick function - firmware: Possible fix for HDMI audio pause See: #547 - firmware: arm_loader: Always set the turbo frequencies immediately See: #956 - firmware: platform: Partial revert for eemc clock change for slice See: https://forum.libreelec.tv/thread/11930-libreelec-8-2-4-causes-slice-3-to-hang/ - firmware: clockman: Don't use OSC for pixel clock See: https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=24679&start=150#p1297298 - firmware: config: gpio - Allow pn (pull none) as alternative to np (no pull) - firmware: arm_loader: Use a wrapper to set clocks either through turbo or non-turbo interfaces See: #967 - firmware: platform: Allow vec pll to be adjusted See: #960 - firmware: platform: Pi3 B+ reduce sdram freq to 450 while investigations are ongoing See: https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=208821 - firmware: arm_loader: Allow hdmi_ignore_composite to disable any display initialisation See: raspberrypi/userland#447 - firmware: Add aphy and dphy slew and drive register controls - firmware: Extra reg writes to ensure the LCD display starts up at 800 wide - firmware: platform: Lower temperature thresholds for extra pips to 50/60 - firmware: video_encode: Add support for YVU420Planar and YVU420SemiPlanar - firmware: video_decode: Support YV12, NV12, and NV21 output - firmware: video_decode: Support reporting colour space - firmware: IL rawcam: Fix copy/paste error on timing setup - firmware: MMAL: Populate buffer header TYPE_SPECIFIC fields - firmware: video_encode: Filter the list of encoders based on variant - firmware: mmal: Relax requirement on a buffer in mmal_port_send_buffer - firmware: platform: avs: Also apply chicken bits to boost voltage - firmware: Match phy setup same as bootcode for device mode initialisation - firmware: Add logging_messages to UART - bootcode: Fix 3B+ bootcode.bin only booting - firmware: vc_image: vc_image_fill_yuv_uv sometimes overfilled the first column See: raspberrypi/userland#465 - firmware: arm_loader: Add SET_NOTIFY_REBOOT message See: #968 - firmware: gencmd: Report temperature with read_ring_osc values - firmware: mmal_ril: Correct portdef assignment for video.eColorFormat - firmware: variants: Add TGA and PPM codecs - firmware: imx219: Fix exposure calcs for rounding down - firmware: sdram: Remove [ad]phy_drv_slew logging spam - firmware: sdram: Reduce address skew from -10 to -5 - firmware: platform: Avoid improving the schmoo on Pi3+ - firmware: platform: Latest AVS rules - firmware: sdram: Increase read/write latency for higher sdram frequencies - firmware: power: Add boot-time 3b+ PMIC register logging - firmware: power: Continue to probe PMIC after error - revert: sdram: Reduce address skew from -10 to -5 See: https://forum.kodi.tv/showthread.php?tid=298461&pid=2740277#pid2740277 - firmware: variant: Disable custom_preproc and focus_stats_preproc camera stages See: raspberrypi/linux#2528 - firmware: bootcode: Force an I2C stop as a reset - firmware: power: Ensure at least 2ms between writes to the PMIC regs - firmware: power: Add 3ms threshold - firmware: power: Reduce i2c speed of pmic to 100kHz - firmware: dtoverlay: More "reg" and "name" support - firmware: imx219: Updates for production test - firmware: arm_loader: Update NOTIFY_REBOOT to reset the GPIO expander See: #968 - firmware: Allow selection of DSI port for LCD - firmware: pwm_sdm: fix an edge case when reading back DMA source addresses - firmware: pwm_sdm: fix write handle refcounting See: raspberrypi/linux#2587 - firmware: arm_dt: Protect against seg-fault when dt failed to load - firmware: isp: Alter logging level for buffer size errors - firmware: isp: Return output buffers that are too small - firmware: video_encode: Integrate the ISP for format conversion - firmware: mmal: Populate buffer->type->video.flags field - firmware: image_fx: Apply interlacing flags from the plugin to output frames - firmware: isp: IL compatibility and alignment tweaks - firmware: IL ISP: Use vc_image instead of reworking own stride checking - firmware: isp: Minor clean ups - firmware: dispmanx: Complete the format strings for dispmanx_parse_list - firmware: IL ISP: Use vc_image instead of reworking own stride checking - firmware: MMAL/IL: Add support for components to report alignment requirements
@popcornmix About the errors on boot, the following are expected and already showed up, when lowering
But then I also get the following, four times, one each CPU core, I guess:
|
While trying to reduce power usage on a headless / lite RPi 3B module, I tested differences using
vcgencmd display_power 0
and "hdmi_blanking=2" in config.txt (from raspberrypi/firmware#352). I had come to the conclusion that the video output was being automatically disabled when an HDMI cable was not connected since neither reduced my power usage any amount. However, by chance I triedtvservice -o
and instantly saw a 17mA reduction.Is this expected? If so, can anyone explain what
tvservice -o
does that the other commands do not?The text was updated successfully, but these errors were encountered: