Posts Tagged ‘hdmi’
HDMI/VGA display detection
Does anybody knows how to detect second display before Xorg or GDM loads? I’m always moving between home with second display (through hdmi) and another places with just my laptop screen
Why am I asking. Ok I can enable second display in Catalyst Control Center (CCC), but for applying changes I need to re-login. Next I need to enable Xinerama and re-login again. Now I have two working displays. Next I move somewhere without additional display, boot my laptop. It boots to login screen with wrong resolution (1280), I login, disable Xinerama, re-login, disable second display, change resolution back (without re-login). That’s too m uch moves to enable/disable second display. Oh I forgot to mention, it’s all about FGLRX of course. XrandR does not work with Xinerama enabled. I guess radeonhd should work ok, but I need performance.
Here is what I want. Just before login screen appears system should check if second display connected and load appropriate configuration for Xorg.
I know how to detect it after GDM loads Xorg, and I’ll post a solution soon when I test it. But I want a better way out.
Stay tuned.
HDMI sound output switcher for PulseAudio
Here is another script which you can link for example to AV Mode button, to switch sound output to HDMI and back. First I thought I can use Alsa, but it works only with one application, other application can not play sound while another one is playing. So then I did it with PulseAudio which works correctly. This switcher works for all native Gnome/gstreamer sound applications, and some applications e.g. SMplayer refuse to switch their sound regardles what default output set in PulseAudio. If you have playing sound and then switched to HDMI, it will still play through old way and you need to restart your sound e.g. push stop/play button to point sound through new way.
First of all you need to prepare PulseAudio configuration. For some point PA does not add HDMI output to devices itself. We should add it and rename internal sound card to something readable. Open /etc/pulse/defauld.pa in editor with root privileges (e.g. sudo nano /etc/pulse/default.pa in terminal) locate line “#load-module module-pipe-sink” there. Open terminal and run this command there: aplay -l | grep -o -e "card [0-9]:.*[0-9]:" | sed -e "s/card \([0-9]\): \(.*\) \[.*device \([0-9]\).*/load-module module-alsa-sink device=hw:\1,\3 sink_name=\2/"
Command returns two lines which we need to add to default.pa file after that line you located earlier. In my case this lines look like:
#load-module module-null-sink #load-module module-pipe-sink load-module module-alsa-sink device=hw:0,0 sink_name=Intel load-module module-alsa-sink device=hw:1,3 sink_name=HDMI ### Automatically load driver modules depending on the hardware available
Then you should restart PulseAudio (sudo /etc/init.d/pulseaudio restart) to changes make effect. You can check that devices added correctly by running pacmd list-sinks in terminal, you should see “name: <HDMI>” and “name <Intel>” if you have got the same names as in my case, theese names must be the same as after “sink_name” in lines you added to default.pa.
Ok, now to switcher:
#!/bin/bash # # Sound output switcher using Gnome,gconf,PulseAudio,Alsa,libnotify # # by Anton Veretenenko <anton[email sign]veretenenko.ru> notify_show=1 notify_delay=500 hdmi_card_num=1 internal_card_name=Intel hdmi_card_name=HDMI is_hdmi_on=`amixer -c $hdmi_card_num cget numid=4,iface=MIXER,name='IEC958 Playback Switch' | grep -i -c -P -e "values=on"` if [ "$is_hdmi_on" == "1" ] then amixer -c $hdmi_card_num cset numid=4,iface=MIXER,name='IEC958 Playback Switch' off > /dev/null gconftool --set "/system/gstreamer/0.10/default/musicaudiosink" --type=string "pulsesink device=\"$internal_card_name\"" gconftool --set "/system/gstreamer/0.10/default/audiosink" --type=string "pulsesink device=\"$internal_card_name\"" gconftool --set "/system/gstreamer/0.10/default/chataudiosink" --type=string "pulsesink device=\"$internal_card_name\"" pacmd "set-default-sink "$internal_card_name"" if [ $notify_show -eq 1 ] then notify-send -u normal -t $notify_delay -i gnome-sound-properties "HDMI Off" "Sound output switched to $internal_card_name" fi else amixer -c $hdmi_card_num cset numid=4,iface=MIXER,name='IEC958 Playback Switch' on > /dev/null gconftool --set "/system/gstreamer/0.10/default/musicaudiosink" --type=string "pulsesink device=\"$hdmi_card_name\"" gconftool --set "/system/gstreamer/0.10/default/audiosink" --type=string "pulsesink device=\"$hdmi_card_name\"" gconftool --set "/system/gstreamer/0.10/default/chataudiosink" --type=string "pulsesink device=\"$hdmi_card_name\"" pacmd "set-default-sink "$hdmi_card_name"" if [ $notify_show -eq 1 ] then notify-send -u normal -t $notify_delay -i gnome-sound-properties "HDMI On" "Sound output switched to $hdmi_card_name" fi fi
Here you need to change hdmi_card_num to number of your HDMI sound card (you can get it by aplay -l in terminal) and internal_card_name to name you found earlier and hdmi_card_name to hdmi card name which you saw after “sink_name” parameter.
This switcher will show a popup notification, like you see when changing brightness
P.S. How to link this script to AV Mode button (XF86Launch2) read in post about headphones switcher script.
HDMI Works
Tested HDMI output with plasma today. Works great, but Xorg needs to be restarted every time you want to connect a tv with fglrx.
UPD: Sound trough HDMI works only with fglrx or radeonhd driver.