Detta har jag pillat för ihop för upstart och det ser ut att funka för min burk.
Jag har:
mythbuntu 9.10 (backend)
DVB-T: Nova TD-500
newcs 1.67-RC1
sasc-ng (vdr) trunk med newcamd (verkat inte helt stabil...)
Kortläsare: AD-teknik phoenix läsare serial USB
Strategy:
Ubuntu har allt startat redan i runlevel 2 så lägg allt eget i runlevel 3 för att undvika konflikter.
Underlättar nog dessutom vid upgradering (typ -> 10.04) då det säkert skett en massa ändringar i upstart.
Kortläsare:Har haft stora problem med disconnects, även med separat USB hub med ext. strömförsörjning.
Verkar dock ha löst sig med senaste kärnan: 2.6.31-21-generic #59-Ubuntu SMP
Använder udev för att skapa ttyS0 länken.
cat /etc/udev/rules.d/98-card.rules:
SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", SYMLINK+="ttyS0"
Plockade också bort modemmanager vilket verkade stöka med /dev/ttyUSB*:
apt-get purge modemmanager
Newcs:cat /etc/init/mythtv-newcs.conf:
# MythTV newcsdescription "newcs"author "exett"start on runlevel [345]stop on runlevel [016]respawnpre-start script modprobe -q -r ftdi_sio modprobe -q ftdi_sioend scriptscript test -f /etc/default/mythtv-newcs && . /etc/default/mythtv-newcs || true test -x $NEWCS || true exec $NEWCS -nd $ARGS end script
cat /etc/default/mythtv-newcs:
NEWCS=/usr/local/bin/newcs.i686CONF=/usr/local/etc/newcs.xmlARGS="-c $CONF"
Newcs startar nu i runlevel 3.
Har problem med att ttyS0 länken inte skapas vid boot, alt. att ttyUSB* inte finns.
Måste manuellt dra ur/sätta i kabeln för att udev ska trigga.
Detta löses med modprobe pre-start scriptet.
sasc-ng:cat /etc/init/mythtv-sasc-ng.conf:
# MythTV sasc-ngdescription "sasc-ng"author "exett"start on started mythtv-newcsstop on stopped mythtv-newcs or runlevel [016]respawnpre-start script test -f /etc/default/mythtv-sasc-ng && . /etc/default/mythtv-sasc-ng || true test -x $SASCNG || true # Detect whether the DVBLooopback driver is already loaded # and return 0 if it *is* loaded, 1 if not: DriverLoaded() { grep -qse dvbloopback /proc/modules } # Load all DVBLoopback driver modules needed for your hardware: LoadDriver() { modprobe dvbloopback num_adapters=$ADAPTERS sleep 5 } if ! DriverLoaded; then LoadDriver fiend scriptscript test -f /etc/default/mythtv-sasc-ng && . /etc/default/mythtv-sasc-ng || true test -x $SASCNG || true exec $SASCNG $OPTIONS --cam-dir $CAMDIRend script
cat /etc/default/mythtv-sasc-ng:
SASCNG=/usr/local/bin/sasc-ngADAPTERS="2"OPTIONS="-j 0:2 -j 1:3 --cam-budget --sid-allpid --sid-nocache"CAMDIR=/usr/local/etc/sasc-ng
sasc-ng startar då newcs startat (och stoppar om newcs stoppar).
mythtv-backend:Måste nu modifiera upstart för mythtv-backend.
Ändra i /etc/init/mythtv-backend.conf.
Från:
start on (local-filesystems and net-device-up IFACE=lo)
Till:
start on started mythtv-sasc-ng
mythtv-backend startar nu då sasc-ng startat (och stoppar om sasc-ng stoppar)
Ändra default runlevel:Ubuntu har default runlevel 2. För att våra grejer ska startas måste vi sätta det till runlevel 3.
Ändra i /etc/init/rc-sysinit.conf.
Från:
env DEFAULT_RUNLEVEL=2
Till:
env DEFAULT_RUNLEVEL=3
Det var det hela. Har inte haft detta igång nån längre tid så det dyker säkert upp nåt strul.
Känns ändå som en fungerande bas.
Finns säkert förbättringar att göra så om nån hoppar på upstart tåget så posta gärna förbättrings förslag!
Lite upstart tips:Kolla status:
root@mythtv-be1:~# initctl list |grep mythmythtv-sasc-ng start/running, process 1584mythtv-newcs start/running, process 1021mythtv-backend start/running, process 1585
(Därav min namngivning på scripten...)
Starta (tex backend):
root@mythtv-be1:~# start mythtv-backend
Stoppa får ni gissa själva...