У меня была такая же проблема на CentOS 6 на VirtualBox с 1 включенным сетевым адаптером. После установки по умолчанию у него был только локальный адаптер обратной петли 127.0.0.1 {{1} } Хотя я мог запустить мостовую сеть вручную, введя команду
dhclient -v eth1
, она не запускалась автоматически при загрузке. Решением для меня было настроить конфигурацию сети следующим образом:
$ cd /etc/sysconfig/network-scripts;
$ cp ifcfg-eth0 ifcfg-eth1
$ vi ifcfg-eth1
и изменить следующие строки:
DEVICE="eth1" # set device name to ether
ONBOOT="yes"
HWADDR="08:00:27:20:9D:71" # must match to VirtualBox "MAC address" value
остальные строки в ifcfg-eth1
остаются такими же, как в исходном ifcfg-eth0
файле:
BOOTPROTO="dhcp"
NM_CONTROLLED="yes"
TYPE="Ethernet"
UUID="7830e5b9-785b-4650-b1ce-caf9f9c257f5"
Теперь сохраните ifcfg-eth1
и перезапустите сетевую службу
$ /etc/init.d/network restart
Проверить $ ifconfig
eth1 Link encap:Ethernet HWaddr 08:00:27:20:9D:71
inet addr:192.168.0.20 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe20:9d71/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:958 errors:0 dropped:0 overruns:0 frame:0
TX packets:452 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:106251 (103.7 KiB) TX bytes:74948 (73.1 KiB)
Interrupt:10 Base address:0xd020
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Хорошо, происходит следующее:
Каждый порт приемника находится в состоянии «доступен», а перевод монитора HDMI в режим ожидания переводит состояние порта в состояние «недоступно».
Приемник по умолчанию также может рассматриваться как резервный приемник:Это приемник, который используется Pulseaudio, не может назначить допустимый приемник приложению, использующему кэш потока (, где он запоминает, какой поток использовался которые тонут ). Таким образом, он не может удерживать приемник по умолчанию, указывающий на что-то, что нельзя использовать для этой цели, поэтому приемник по умолчанию переключается на любой другой доступный приемник.
И когда монитор выходит из режима ожидания, приемник по умолчанию остается и не переключается обратно (нет «предпочтительного» приемника по умолчанию ).
Самый простой способ решить эту проблему — написать простое приложение Pulseaudio, которое подписывается на изменения конфигурации (см. здесь для примера ), и когда ваш приемник HDMI снова становится доступным, устанавливает его по умолчанию.
Другим вариантом может быть использование pactl subscribe
, разбор вывода и выполнение того же самого в сценарии оболочки.
Вот пример того, как я анализирую вывод 'pactl subscribe'.
В этом примере триггером действия была строка «Изменение события на карте #0» при подключении или отключении наушников.
#!/bin/bash
function MySubscription() {
if [ "$1" != "Event change on card #0" ]; then
return 0
fi
#detect plug state
pactl list | grep "analog-output-headphones" | grep "not available" > /dev/null
STATE=$?
if [ $STATE -eq 0 ]; then
echo "headphones unplugged"
#YOUR COMMAND HERE
else
echo "headphones plugged"
#YOUR COMMAND HERE
fi
return 0
}
export -f MySubscription
pactl subscribe | xargs -I {} bash -c 'MySubscription "$@"' _ {}