when connecting my HDMI/TV it stays black, the TV tells me “no signal”.
checking the Settings App shows an unknown display.
wlr-randr outputs the same:
Any investigation would require to know what hardware, if any, is between your phone and your monitor.
Aren’t you showing us the Built-in display though in that screen shot? Can you use the pull down menu to change to the secondary display or is there no secondary display available in the menu?
I think that might be a known problem (limitation, at this stage).
Regardless, on any Linux computer that I have used, a working HDMI connection at best adds a sound output device and you can choose whether sound will output via HDMI or via a number of other existing choices. (For example, even though HDMI is always capable of carrying audio, the actual video output device may not have any means of outputting audio e.g. no built-in speakers and/or e.g. no attached speakers.)
screenshot shows the Librem5 screen since TV wasn’t working.
there is no pull-down menu to change displays.
this is how it looks like when it’s working
my TV is recognized/identified with proper name, resolution and refresh rate.
HDMI sound came with an update from about 4 weeks ago, i guess.
As long as the TV is recognized properly i can select HDMI as sound sink in Settings/Sound.
but, from time to time when i plugin the TV into the HDMI port of the hub it does not work.
TV stays black, no desktop; Settings identifies the TV as unknown/unknown with wrong resolution(one my TV can not render) and refresh rate.
in this situation i re-plug the hub, re-plug hdmi and/or reboot the phone.
if all of this does not work i re-flash phone!
I guess it is defaulting to VGA resolution. I am a little surprised that the TV can’t handle VGA (which is supposed to be the emergency fallback when higher resolutions don’t work) but then a TV is not designed to be a computer monitor (and to be fair VGA is now embarrassingly old).
There are a couple of packages around that allow you to debug EDID to see whether there is some confusion with that happening, but I don’t know whether those packages work via a dock.
It may also be a good idea to check the system log for the time at which you plugged in the TV.
I would probably replug the TV into the HDMI connector of the hub in the first instance if things aren’t working. Reflashing the phone seems a bit extreme and not a really viable ongoing solution.
Instead of starting a new topic, I choose to post my issue here;
I have a monitor which can do 3440x1440 @175Hz max; I don’t expect L5 to drive that display, okay. However the issue is as below;
(1) L5 can drive the external display at 3440x1440 with the dock I have, but if I plug in the USB-PD to charge at the same time, external display goes blank.
(2) L5 can however (external) display max. 2560x1440 with the same dock (manually slecting resolution on L5 before switching to single (i.e., external display mode) while plugged in and L5 charges at the same time. (2560x1440 for external display works along with internal display DSI-1 kept on as well)
(3) When docked and (external) displaying at 2560x1440, if the L5 display system turns off for both set of displays after a set time (power savings) or if I lock L5 via power button, external display will not come back again. What happens is that external display tries to default to 3440x1440 and L5 cannot drive it as long as power is plugged into the dock. So I have to disconnect it from the dock, plug it again, select 2560x1440 resolution for external display and then the external display works again.
I tried wlr-randr and it lists all modes for external display including 3440x1440 & 2560x1440 and both modes work, albeit 3440x1440 when dock is not connected to USB-PD.
What I want, is set 2560x1440 as a DEFAULT resolution for external display DP-1 (until I change it myslf again) so evey signle time external display will wake up from sleep and I don’t have to unplug and plug L5 into the dock after every sleep or screen lock and set resolution to 2550x1440 for external display again before monitor comes back. It is too boring to keep it doing this way.
TLDR, how to force wlr-randr or xrand to default to a specific resolution for a specific output (2560x1440 60hz DP-1) for external display all the time and everytime until user choose a different resultion once again.
I can’t really answer your question, particularly in the context of the Librem 5, but what I am doing with some other Linux setup where I have the same kind of problem (default chosen display mode is not what I want) is just use a shell script to set the display mode. In that case, for you, the remaining challenge would seem to be to tie the execution of the shell script to the right “event”.
That part of it is trivial. (For my environment) I need one command in the shell script viz.
xrandr -s WxH
where W is replaced by the desired width and H is replaced by the desired height
e.g. presumably for you
#!/bin/bash xrandr -s 2560x1440
and you may need to use the corresponding Wayland command and option
and you may want to think about whether you can make this unconditional (you only ever use this one external display) or conditional (you will have to detect when it’s this particular display) - and in any case you will need to select the external display.
I tried that before with some info I found for xrandr pasted below, and made /.xinput profile, however, I think xrandr stuff doesn’t work on L5 because it is wayland. Please correct me if I am wrong.
xrandr could not setup/change any modes (resolution) but wlr-randr worked on L5 for me.
The above command will generate the desired ~/.xprofile file. Just make sure you use the resolution (i.e. the RES variable) of your liking. More info here.
and, also cvt command is not found for L5, I tried xcvt and that is also not found.
above is from Pinephone I have, where I have similar issue, but cvt at least works for Pinephone so I was able to get all modelines info. but even after generating /.xinput pofile for desired mode, it is not defauting to that new mode. Same hold point on both. I assume xrandr does not work for Pinephone as well due to both being wayland.
High definition displays have to be satisfied that the entire video chain complies with Digital Restrictions Manglement. Sometimes the handshake song and dance doesn’t go right when linux is involved. I have trouble with Display Port monitors at home and work and TV at home. I’m not set up to try with L5.
I didn’t specifically check but I think you are right. You would be looking at the man page for wlr-randr.
That’s why I suggested triggering an explicit set of the mode rather than trying to mess with implicit control over the mode. Possibly some systemd / udev magic would do the trick.
I think there are one or two other people who wanted to make things happen when an external display is plugged in - so a forum search would be worthwhile. (I don’t think this is currently easy to do e.g. no GUI application that inputs the settings that you want to apply to various circumstances and then makes those settings happen at the appropriate time.)
My Librem 5 only plays nicely at 720p. When I go to 1080p and above like you are doing, the Librem 5 tended to heat up and then die and stop coming back.
Do you live in Siberia or somewhere cold where the device can’t overheat or burn itself out from over-stressing the capabilities?
Anyway I think 1280x720 is a good resolution when connecting my Librem 5 to an external 4k monitor. It can run for hours, and I can remove the battery and just use it as a computer desktop, and it’s pretty okay. I used to do that, but then I bought a Librem 14 and realized it was the same except better, and now I use the Librem 14 instead.
I have two FHD (1920x1080) displays that I have tested my Librem 5 with and I did not notice any issues with overheating or dying, particularly with my lapdock where I have spent more hours on it. (That is not to say that things are bug-free yet when using a lapdock.) And, no, not living in Siberia or Antarctica. (I may not have explicitly checked that the display’s native resolution was selected but this is usually the case.) It may depend on what else you are doing e.g. watching a movie, maybe so.