Используйте debconf для предварительной настройки. Это не приведет к согласию на получение лицензии:
echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | sudo debconf-set-selections
sudo apt-get install ttf-mscorefonts-installer
Добавьте это в свой файл Kickstart.cfg:
preseed --owner ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula boolean true
В интересах людей, которые спотыкаются на этот вопрос - решение Салема почти сработало для меня в 13.04, я закончил тем, что собирал кусочки со всего Интернета, я думаю, что для меня был нарушитель отсутствия переменных окружения PULSE_SERVER
Вот мое полное решение, которое в основном повторяет решение Салема с несколькими недостающими частями. Я также изменил его как сценарий оболочки (несмотря на мою любовь к Python), потому что сначала я испугался, что мой скрипт Python запущен в проблемные пути импорта:
(то же, что и у Salem's ответ) Создайте файл /etc/udev/rules.d/hdmi_sound.rules как root с содержимым:
SUBSYSTEM=="drm", ACTION=="change", RUN+="/usr/local/bin/hdmi_sound_toggle"
Создайте файл /usr/local/bin/hdmi_sound_toggle как root с содержимым:
#!/bin/sh
USER_NAME=`who | grep "(:0)" | cut -f 1 -d ' '`
USER_ID=`id -u $USER_NAME`
HDMI_STATUS=`cat /sys/class/drm/card0/*HDMI*/status`
export PULSE_SERVER="unix:/run/user/"$USER_ID"/pulse/native"
if [ $HDMI_STATUS = "connected" ]
then
sudo -u $USER_NAME pactl --server $PULSE_SERVER set-card-profile 0 output:hdmi-stereo+input:analog-stereo
else
sudo -u $USER_NAME pactl --server $PULSE_SERVER set-card-profile 0 output:analog-stereo+input:analog-stereo
fi
Затем сделайте его исполняемым с chmod 0755 /usr/local/bin/hdmi_sound_toggle
Я попытался сделать этот сценарий как можно более общим, но вам все равно может потребоваться изменить некоторые строки, такие как путь к файлу HDMI_STATUS или используемые профили. Вы можете просмотреть список профилей, запустив pactl list cards и посмотрев в разделе «Профили».
Обратите внимание, что сценарий не удался для меня, когда я удалил ключевое слово «экспорт» при установке PULSE_SERVER, я думаю, pactl ищет env variable
Не забудьте перезагрузить свои правила udev: sudo udevadm control --reload-rules
Обновление этого скрипта обновлено для 14.04. До этого вы использовали бы USER_NAME вместо USER_ID везде
, я отвел ответ Салема и ответ Дэниела и внес некоторые необходимые изменения, их решение не сработало для меня из коробки:
(это похоже на ответ Салема).
Создайте файл /etc/udev/rules.d/hdmi_sound.rules с правами пользователя:
SUBSYSTEM=="drm", RUN+="/usr/local/bin/hdmi_sound_toggle"
Примечание ACTION=="change", отсутствует!
Создайте файл /usr/local/bin/hdmi_sound_toggle как root с содержимым:
#!/bin/sh
USER_NAME=`who | grep "(:0)" | cut -f 1 -d ' '| sort -u`
USER_ID=`id -u $USER_NAME`
HDMI_STATUS=`cat /sys/class/drm/card0/*HDMI*/status`
export PULSE_SERVER="unix:/run/user/"$USER_ID"/pulse/native"
if [ $HDMI_STATUS = "connected" ]
then
sudo -u $USER_NAME pactl --server $PULSE_SERVER set-card-profile 0 output:hdmi-stereo+input:analog-stereo
else
sudo -u $USER_NAME pactl --server $PULSE_SERVER set-card-profile 0 output:analog-stereo+input:analog-stereo
fi
Примечание USER_NAME = who | grep "(:0)" | cut -f 1 -d ' '| sort -u Я добавил | sort -u, потому что в противном случае он вернулся с elemer elemer elemer - -my username 3 раза.
Затем сделайте его исполняемым с помощью chmod 0755 /usr/local/bin/hdmi_sound_toggle
Не забудьте перезагрузить свои правила udev: sudo udevadm control --reload-rules
Важно это скрипт обновлен для 14.04. До этого вы использовали бы USER_NAME вместо USER_ID везде
Кредиты: Salem и daniel.
Это первый раз, когда я пришел сюда за помощью в этом ... Я нахожусь в той же лодке 12.10. Это раздражает. Так было с 10.10 по моему опыту. Там где-то должен быть конфиг, который может справиться с этим.
EDIT: http://voices.canonical.com/david.henningsson/2012/04/14/audio-over-hdmi-and-displayport -in-ubuntu-12-04 /
Это сделано специально. Это ужасно.
Это работает для Ubuntu 16.04 - 17.04, в котором была введена ошибка с Pulse Audio 8. Создайте файл hotplugtv (или hotplug-hdmi, если хотите) и скопируйте в следующие строки:
#!/bin/bash
# NAME: hotplugtv
# PATH: /home/$USER/bin
# DESC: Update pulseaudio output device when HDMI TV plugged / unplugged
# CALL: called from /etc/udev/rules.d/99-hotplugtv.rules
# and /home/$USER/bin/lock-screen-timer
# DATE: Created Nov 26, 2016.
# NOTE: logs output using log-file
# UPDT: Dec 14, 2016 - Sometimes /sys/class/drm/card0 & sometimes /sys/class/drm/card1
# so use /sys/class/dmcard* instead.
# Dec 21, 2016 - Relocated to /home/$USER/bin for calling by lock-screen-timer
# Aug 06, 2017 - Convert from home grown log-file to universal logger command.
if [[ $(cat /sys/class/drm/card*-HDMI-A-1/status | grep -Ec "^connected") -eq 1 ]]; then
logger -t /home/rick/bin/log-hotplugtv "HDMI TV connected"
/bin/sleep 2;
export PULSE_RUNTIME_PATH="/run/user/1000/pulse/";
sudo -u rick -E pacmd set-card-profile 0 output:hdmi-stereo;
else
logger -t /home/rick/bin/log-hotplugtv "HDMI TV disconnected"
export PULSE_RUNTIME_PATH="/run/user/1000/pulse/";
sudo -u rick -E pacmd set-card-profile 0 output:analog-stereo;
fi
exit 0
ВАЖНО: измените имя пользователя «rick» на ваше имя пользователя.
Чтобы вызвать этот скрипт из udev во время событий hot-plug, создайте файл /etc/udev/rules.d/99-hotplugtv.rules, содержащий:
ACTION=="change", SUBSYSTEM=="drm", ENV{HOTPLUG}=="1", RUN+="/home/rick/bin/hotplugtv"
Измените /home/rick/bin/ на путь, по которому вы разместили скрипт hotplugtv.