External HDMI display shows suddenly as <Unknown> <Unknown>

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:

purism@pureos:~$ wlr-randr
DSI-1 “<Unknown> <Unknown> (DSI-1)”
Physical size: 65x130 mm
Enabled: yes
Modes:
720x1440 px, 63.414001 Hz (preferred, current)
Position: 0,0
Transform: normal
Scale: 2.000000
DP-1 “<Unknown> <Unknown> (DP-1)”
Enabled: yes
Modes:
848x480 px, 60.000000 Hz
800x600 px, 56.250000 Hz
800x600 px, 60.317001 Hz
1024x768 px, 60.004002 Hz
640x480 px, 59.939999 Hz (preferred, current)
Position: 360,0
Transform: normal
Scale: 1.000000

it used to work and the TV was recognized as Phillips Consumer TV xyz…
How to get my TV over HDMI back working?

1 Like

i flashed the device and started from scratch!
so, issue is fixed :slight_smile:

2 Likes

You’ll note that your internal (built-in) display is also “Unknown” - and it’s the same on my phone.

So maybe the problem is the “black” / “no signal”.

1 Like

got it again. external display/TV not working.
this is how it looks like in Settings App:


#screenshot taken with App from librem5-goodies

instead of “Unknown Unknown” there should be Phillips Consumer TV .

somebody knows a fix for this?

1 Like

the fix was to unplug and re-plug usb-c.
external display is back but without sound!

i am going to flash the phone.

1 Like

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

1 Like

it’s a USB-C Nano Dock Station (C31NANODOCKLANPD)
you can find it also here:

Tested Accessories · Wiki · Librem5 / Librem 5 Community Wiki · GitLab

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!

1 Like

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.

1 Like

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.

1 Like

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

1 Like

hmm, thanks :slight_smile:

to-do list for now;
(1) find the correct event, and then,
(2) write a shell script

both will have some learning curve for me before I will be able to do that

1 Like

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.

1 Like

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.

RES="2560 1440 60" && \
DISP=$(xrandr | grep -e " connected [^(]" | sed -e "s/\([A-Z0-9]\+\) connected.*/\1/") && \
MODELINE=$(cvt $(echo $RES) | grep -e "Modeline [^(]" | sed -r 's/.*Modeline (.*)/\1/') && \
MODERES=$(echo $MODELINE | grep -o -P '(?<=").*(?=")') && \
cat > ~/.xprofile << _EOF
#!/bin/sh
xrandr --newmode $MODELINE
xrandr --addmode $DISP $MODERES
_EOF

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.

1 Like

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.

1 Like

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

1 Like

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.

1 Like

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.

1 Like