Hallo,
ich habe ein Script angefertigt, das man in den Bootprozess einbinden kann. Das ganze habe ich für Ubuntu 12.04 angefertigt, bei anderen Distributionen bedarf es voraussichtlich Anpassungen des Scripts.
Einbinden in den Startup Prozess mit folgender Datei.
/etc/init/cine-driver.conf
# Cine driver update on startup
start on (starting network-interface
or starting network-manager
or starting networking)
stop on runlevel [!023456]
exec cine_driver
Alles anzeigen
Das Bash Script für das Treiberupdate, das bei hochfahren automatisch ausgeführt wird. Wenn beim aktuellen Bootvorgang mehr Kernelversionen im System installiert sind als beim letzten Karten-Treiberupdate (diese müssen über dpkg oder apt-get installiert sein selbst kompilierte Kernel werden nicht erkannt von der Abfrage).
Die Anzahl der Kernel wird in die Datei /etc/kernelcheck.txt geschrieben.
Achtung 1: Beim starten wird der Treiber für den aktuell gebooteten Kernel gebaut, also nach Möglichkeit auch den aktuellsten Kernel booten.
Für ein manuelles upate: "cine-driver update" eingeben.
Achtung 2: Das Script startet nach dem Update den Rechner automatisch neu, dies kann man verhindern indem man die Zeile "reboot" auskommentiert. Der Prozess läuft um Hintergrund und wann der reboot kommt hängt von der kompiliergeschwindigkeit ab (ca. 10-20 min).
Das Script muss ausführbar "chmod +x" gekennzeichnet werden.
Script: /usr/sbin/cine-driver
# Update Script für den Treiber Cine DD
#!/bin/sh
cine_drv_update()
{
# Treiberupdate
logger "Cine driver update will be initiated"
echo "mache update"
cd /usr/src
sudo rm -r /usr/src/media_build_experimental
sudo hg clone http://linuxtv.org/hg/~endriss/media_build_experimental/
cd media_build_experimental
sudo make download
sudo make untar
sudo make
sudo make install
sudo modprobe ddbridge
# Ende Treiberupdate
# Update der Kernelanzahl Datei
echo $Kernel_act_count > /etc/kernelcheck.txt
logger "Cine drive update is done successfully"
reboot
}
# Installation der vorausgesetzten Pakete, keine Aktion wenn diese schon installiert sind
sudo apt-get install mercurial build-essential libproc-processtable-perl
# auslesen der Anzahl der isntallierten Kernel vom vorigen Bootvorgang (inital exitiert die Datei nicht un installiert den Treiber neu).
Kernel_prev_count=`cat /etc/kernelcheck.txt`
echo $Kernel_prev_count
# auslesen der Anzahl der aktuell installierten Kernel zum Vergleich
Kernel_act_count=`dpkg --list | grep linux-image |wc -l`
echo $Kernel_act_count
# Vergleich der Anzahl installierter Kernel und Eintrag in den Syslog der jeweiligen Aktion
if [ $Kernel_prev_count -eq $Kernel_act_count ];
then
logger "Cine driver update check - no driver update required."
else
logger "Cine driver update will be initiated"
cine_drv_update
logger "Cine driver update is done successfully"
fi
# Manuelles Update per ./Cine-driver update -> also Root ausführen!
if [ $1 = "update" ] 2>/dev/null;
then
logger "Cine driver update will be initiated"
cine_drv_update
fi
Alles anzeigen
Mfg
Kitsab