У меня новенькая ASUS N76 с недавно установленной 12.10. Порт HDMI не распознается Ubuntu, хотя он прекрасно работает с Windows 8. xrandr даже не показывает как известный разъем:
Вывод xrandr
:
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 8192 x 8192
LVDS1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 382mm x 215mm
1920x1080 60.0*+ 59.9 40.0
[...]
VGA1 disconnected (normal left inverted right x axis y axis)
Любая помощь приветствуется.
Asus N76 подключил HDMI через графический чип nVidia. См. Раздел «Настройка шмеля для нескольких мониторов»: https://github.com/Bumblebee-Project/Bumblebee/wiki/Multi-monitor-setup
После настройки шмеля (смените шмеля nvidia xorg. Conf Conf файл и перезапуск), вы можете запустить приложение на экране HDMI, используя:
export DISPLAY=:8 LD_LIBRARY_PATH=/usr/lib/nvidia-current:$LD_LIBRARY_PATH
optirun some-command
Я использую эту команду для запуска другой сессии гнома:
optirun gnome-session --session=gnome-classic
Вы также можете управлять ввод с использованием команды xinput. Подключите внешнюю клавиатуру после включения экрана HDMI и используйте команды
export DISPLAY=:0 // for internal display
export export DISPLAY=:8 LD_LIBRARY_PATH=/usr/lib/nvidia-current:$LD_LIBRARY_PATH // for HDMI
xinput // find your device and it id, you can use xinput | grep "part of name"
xinput list-props <device id> | grep "Device Enabled" // find enabled property state and (property id).
xinput set-prop <device id> <property id> <value> // to set value
Это мой сценарий, который включает устройства Lenovo на экране HDMI, если он существует:
#!/bin/bash
# switch to main display to make sure, that Xserver is running and xinput will provide list of devices.
export DISPLAY=:0
unset LD_LIBRARY_PATH
# find list of devices to work with. See `xintput` command output
DEVICES="`xinput | grep "Lenovo Multimedia Remote with Keyboard N5902" | sed -e 's/.*id=\([0-9]*\).*/\1/'`"
echo $DEVICES
# switch to nVidia Xserver at DISPLAY 8
export DISPLAY=:8 LD_LIBRARY_PATH=/usr/lib/nvidia-current:$LD_LIBRARY_PATH
# Test xinput command. If it fail, enable DEVICES at main Xserver.
# Otherwise enable DEVICES at Xserver running on DISPLAY 8
xinput>/dev/null&>/dev/null
if [ $? != 0 ]; then
{
echo "HDMI Xserver is not running."
MAIN_STATUS=1
} else {
echo "HDMI Xserver is running."
MAIN_STATUS=0
for DEV in $DEVICES
do
PROP=`xinput list-props $DEV | grep "Device Enabled" | sed -e 's/.*(\([0-9]*\).*/\1/'`
echo "$DEV - $PROP"
xinput set-prop $DEV $PROP 1
xinput list-props $DEV | grep "Device Enabled"
done
} fi
# switch back to DISPLAY 0 and update DEVICES status according to MAIN_STATUS.
export DISPLAY=:0
unset LD_LIBRARY_PATH
for DEV in $DEVICES
do
PROP=`xinput list-props $DEV | grep "Device Enabled" | sed -e 's/.*(\([0-9]*\).*/\1/'`
xinput set-prop $DEV $PROP $MAIN_STATUS
xinput list-props $DEV | grep "Device Enabled"
done
Вот еще один подход, использующий Синергия сервер / клиент для переключения ключ / мышь. Но это слишком медленно для игр.
http://www.webupd8.org/2012/08/get-hdmi-working-with-nvidia-optimus-on.html
Удачи.