У меня есть чистая установка Mythbuntu 11.10, действующая только как внешний интерфейс. Он подключен к сети с использованием eth0, и у меня есть маршрутизатор, действующий в качестве DHCP-сервера в той же подсети.
Интерфейс загружается, автоматически входит и запускает интерфейс Myth.
Несмотря на то, что аппроксимированные каждые 3 из 4 загрузок, коробка еще не получила IP-адрес через DHCP, прежде чем начнется миф. Это заставляет Миф войти в режим конфигурации. Если я отменяю, то Myth запускается нормально, так как ответ DHCP получен.
Как изменить загрузку, чтобы дождаться ответа DHCP перед входом в систему?
Три варианта для вас, начиная от ручного, но простого к ручному и нуждающемуся в докторантуре (в этой прогрессии).
Назначьте статический IP-адрес в маршрутизаторе (чтобы он не передавал этот IP-адрес другому устройству), а затем настройте Ubuntu для использования этого статического адреса. Вы можете сделать это либо с помощью Network Manager (если вы его используете), либо отредактировав /etc/network/interfaces
примерно так:
auto eth0
iface eth0 inet static
address 192.168.0.4
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
Я говорю о написании сценария, который проверяет, работает ли ваша сетевая карта. Для простоты вы можете объединить все, что запускает XBMC, с проверкой вроде ( украдено с форумов ):
#!/bin/bash
until wget -q -O - http://www.google.com | grep Lucky > /dev/null; do
sleep 10
done
xbmc
и вызывать этот скрипт вместо прямого вызова xmbc
.
Upstart - это то, что управляет всеми вещами системы и управляет , когда вещи запускаются на основе событий, которые испускает каждое задание. Это кажется вам наиболее приятным маршрутом, потому что вы можете сделать так, чтобы он излучал сигнал именно тогда, когда ему назначен DHCP-адрес.
Проблема в том, что вам придется по-настоящему копаться в процессе загрузки, чтобы что-то изменить. Я не знаю достаточно об этом, чтобы разумно помочь.
Спасибо Оли, я выбрал твой вариант 3, который я опишу здесь на случай, если кому-то еще будет интересно:
Удалите сетевой менеджер в xmbc (не уверен, что это важно , но мне это не нужно):
# apt-get remove network-manager
Сконфигурировать / etc / network / interfaces, добавив:
auto eth0
iface eth0 inet dhcp
Скажите lightdm, чтобы он запускался только при появлении интерфейса, отличного от обратной петли, в дополнение к существующим условиям запуска, путем изменения запуска запуска в /etc/init/lightdm.conf
start on ((filesystem
and runlevel [!06]
and started dbus
and (drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1
or stopped udev-fallback-graphics)
and net-device-up IFACE!=lo)
or runlevel PREVLEVEL=S)
Я добавил условие net-device-up IFACE!=lo
.