nur zur info: ich habe hier ein script veröffentlich das u.a. den kernel direkt erstellen kann, dazu habe ich all die fragen hier gestellt:-))
Posts by allow
-
-
-
Hallo all,
ich muss des öfterne einen VDR neu installieren und nutze zur Zeit CTVDR5. Verschiedene sachen muss ich dabei immer wieder machen.
Um das zu vereinfachen (und um etwas über Shellscripte zu lernen) habe ich ein Script erstellt dass das Neueinrichten eines CTVDR Systems erleichtern kann.
[Blocked Image: http://www.citrouniverse.de/ctvdrfinish.jpg]
Hier das readme:
Quote
Wozu ist dieses Script?
-----------------------
Dieses Script soll die Neuinstallation eines CTVDR5
(auch 4.5) Systems für den Laien erleichtern.
Im laufe der Zeit sind mir verschieden Probleme begegnet
und so manche Aufgabe musst immer wieder von Hand erledigt
werden. Um mir das Leben leichter zu machen wollte ich
diese Dinge automatisieren.Da das mein allererstes Linux Shell Script ist bitte ich um Nachsicht
und würde mich über Verbesserungsvorschläge (die bitte über RTFM
hinausgehen sollten) freuen.Was genau kann das Script?
--------------------------
- sources
Sorgt dafür dass das System eine aktuelle sources.list
bekommt damit man online updaten und installieren kann.
- packages
Aktualisiert das System, entfernt pakete und fügt neue hinzu
Wenn man öfters einen VDR einrichtet kann man damit seine persönliche
automatische Paketauswahlzusammenstellen
- vdr
Passt vdr Einstellungen an (vorhanden Configs werden kopiert)
- fix-bugs
Korrigiert bekannte Probleme beim DVD/Burn/TV-Onscreen plugin
- vdradmin-am
aktiviert vdradmin-am (/etc/defaults/vdradmin-am)
Vorhandene Configs werden kopiert
- fixdvbdriver
Korrigiert Probleme bei der DVB treiber Ladereihenfolge
(Zusammenspiel FullFeatured und Budget)
- setgrubtimeout
Sorgt dafür das das System schneller startet
- setcronreboot
System wird täglich um 7 Uhr neu gebootet
(nicht unbedingt nötig, aber bei Stabilitätsproblemen
hat sich das als hilfreich erweisen, gerade im Urlaub:-))
- kernelupdate
automatisches Update auf aktuellsten KernelWie muss ich vorgehen ?
-----------------------
Das Script ist nur für eine frische Neuinstallation gedacht
und sollte nicht ohne weiteres für fertige Systeme verwendet werden.Installationsmedium CTVDR5 vom 16.05.06 oder neuer (CTVDR 4.5 sollte auch gehen, wurde aber nicht getestet)
- CD Booten
- auto eingeben
- rechnernamen vergeben (z.b.: ctvdr5)
- Domain meist leer lassen
- ganze Festplatte verwenden
- gesamtes laufwerk löschen (sofern gewünscht, ist aber am einfachsten)
- root passwort setzen (z.b.: linvdr)
- in ctvdrcfg zusätzlich mc und samba auswählen
- installation abschließen
- wenn fertig, einloggen als root (evtl. auch per ssh)
- das System muss Online sein (sicherheitshalber mal mit einem 'ping https://www.vdr-portal.de/www.web.de' o.ä. testen wenn man sich nicht sicher ist ob die Netzwerkkarte erkannt wurde)
- um über samba auf den Rechner zugreifen zu können müssen ein paar Einstellungen angepasst werden:
- 'nano /etc/samba/smb.conf'
- 'invalid users = root' löschen oder mit # auskommentierne
- weiter unten 'writable = yes" setzen
- speichern und beenden
- samba neu starten '/etc/init.d/samba restart'
- 'smbpasswd' eingeben und das passwort auf das selbe wie bei der installation setzen
- jetzt kann man z.b. von Windows aus auf den Ordner /var/lib/video.00 zugreifen und z.b. das script hinkopieren
- z.B. mit Samba oder auch mit einer CD das script auf den rechner kopieren (evtl. zusammen mit vorbereiteten Konfig Dateien für VDR, vdradmin-am und Samba)
- bei Bedarf die Settings im Script anpassen (Man kann angeben welche paket entfernt oder installiert werden sollen, man kann die sources.list Einträge anpassen und DVB Treiber eintragen)
- das Script (als root) starten './ctvdrfinish' (bei bedarf vorher mit 'chmod +x ctvdrfinish' startbar machen)
- z.B.: 'Alles' auswählen (Kernel kompilieren kann recht lange dauern)
- rebooten
- hoffentlich fertig:-)Das ganze ist weder perfekt noch fertig (kann aber schon alles was oben steht), und ich bin für Anregungen und Fehlerkorrekturen auf jedenfall dankbar.
Da es sich um mein allererstes Shellscript handelt seit bitte nachsichtig mit mir:-))
Ich habe die Sachen angehängt...
Wenn es für euch hilfreich ist kann ich es noch weiternetwicklen, wenn es eher auf wenig Resonanz stößt ist das auch nicht schlimm, dann wars für mich ne Übungsstunde Linux:-)
Edit1: Bild hinzugefügt
Edit2: habe den code aus dem post enfernt (viel zu lang)
Edit3: neue Version
Edit4: neue version, jetzt mit beispiel conf Dateien (channels.conf ist für dvb-s) -
danke, so langsam kapiere ich auch das eine oder andere...
einen link kann ich hier evtl. mal nennen der mir auch schon oft weitergeholfen hat:
-
Wie kann ich die versionsnummer aus der /etc/issue datei auslesen?
/etc/issue
mein ansatz:
osfound=$(cat /etc/issue | awk '/c't Debian VDR Distribution / {printf("%s");}')
aber so genau hab ich das noch nicht verstanden... ich möchte das osfound entweder 5.0 oder 4.5 enthält (je nach inhalt von /etc/issue)
-
read habe ich gesucht...auf die tour lerne ich das noch.-)) Ist mein erstes Linux script...
-
gibts ein shell commando das wie in dos pause (ware auf tastendruck) wirkt? (klar gibts das, würde mich schwer wundern wenn nicht:-))
-
ja, aber irgendwo stand man solle das nicht in scripts einsetzten um den server nicht zu belasten...da dachte ich http tuts auch:-)
-
-
argl...ja natürlich...du hast recht.-))
-
Aktualisierte Fassung (leider neues Posting, da man älter Postings nicht mehr ändern kann):
11.07.06:
-------------
- Hinweis bzgl. sources.list eingefügt
- core modules hinzugefügt13.07.06:
-------------
- Hinweis auf /etc/hotplug/blacklist für ctvdr 4.5Hier nochmal eine Zusammenfassung des Ganzen:
Die Anleitung bezieht sich auf ctvdr5, sollte aber auch für 4 und 4.5 stimmen, nur dass dort eine ältere Version von hotplug zum Einsatz kommt, und daher das blacklisten laut http://www.vdr-wiki.de/wiki/index.php…eiber_festlegen etwas anders geht (habs nicht ausprobiert).Das Problem:
Problem 1:
Bei Verwendung von TechnoTrend Karten (FullFeatuered und Budget zusammen in einem System, z.b. Nexus und Nova) kann es vorkommen dass die Treiber manchmal in der richtige Reihenfolge geladen werden (erst dvb_ttpci und dann budget_ci) und manchmal umgekehrt.Dies führt dazu dass z.b. das RemotePlugin (aber auch bei andere Funktionen, z.b. ältere Mplayer Versionen oder SmartCards an den TT Karten) manchmal funktionieren und manchmal nicht. Teilweise läßt sich dieses Problem durch umstecken der Karten in den PCI Slots entschärfen, aber die richtige Lösung findet sich hier.
Problem 2:
Zusätzlich zu diesem Problem gibt es aber noch ein zweites:
Iin der /usr/sbin/runvdr ist ein Fehler der dazu führ dass bei einem VDR restart die DVB Treiber in genau der umgekehrten Reihenfolge geladen werden.
D.h.: selbst wenn die FB normalerweise geht kann es bei einem VDR crash oder einen restart über das Menü dazu kommen dass die FB nicht mehr geht, weil die Treiber jetzt anders geladen werden.Die Lösung:
Lösung zu Problem 2:
(als erstes weil es alle betrifft)Das 2. Problem wurde in vdr_1.4.0-1ctvdr2_i386 gefixed, daher sollte man als allererstes sein System updaten:
- /etc/apt/sources.online in sources.list umbenennen
- weil sich das repository für die Multimedia Dateien geändert hat muss der nerim.net eintrag auf
deb http://www.debian-multimedia.org sarge main
geändert werden (z.b.: nano /etc/apt/sources.list)
- apt-get update
- apt-get upgradeWer nicht updaten will kan auch manuell die datei /usr/sbin/runvdr editieren und die Funktion get_modulenames durch diese hier ersetzten:
Codefunction get_modulenames() { if [ "$KVERS_2_6" ]; then MODULES=`lsmod | awk '/^dvb_core/ {gsub(/,/,"\n", $4); print $4}' | tac` [ "$MODULES" ] && MODULES="$MODULES dvb_core" else MODULES=`lsmod | grep dvb-core | cut -d'[' -f2 | cut -d']' -f1` [ "$MODULES" ] && MODULES="$MODULES dvb-core" fi }
Bei manchen Systemen könnte auch vdrdevel zum einsatzkommen, dort muss dann statt der runvdr die runvdrdevel editiert werden
Achtung: Wenn der VDR neu installiert wird und dabei eine version vor vdr_1.4.0-1ctvdr2 verwendet wird, wird diese Änderung überschrieben und muss daher von hand neu gemacht werden.
Um zu prüfen welche Version installiert ist und welche Version installiert würde kann man
- apt-get update
- apt-cache policy vdreingeben und erhält sowas:
Code
Display Morectvdr5:~# apt-cache policy vdr vdr: Installiert:1.4.0-1ctvdr1 Mögliche Pakete:1.4.0-1ctvdr2 Versions-Tabelle: 1.4.0-1ctvdr2 0 700 http://e-tobi.net sarge/vdr-multipatch Packages *** 1.4.0-1ctvdr1 0 100 /var/lib/dpkg/status 1.2.6-13 0 500 http://ftp2.de.debian.org sarge/main Packages ctvdr5:~#
Wer nur das restart Problem hat ist hier fertig, aber es schadet meist nicht auch den Rest zu machen
Lösung zu Problem 1:
(nur für die bei denen die FB manchmal oder immer nach dem neu booten nicht geht)Man muss dafür sorgen dass die Treiber beim booten nicht (in falscher Reihenfolge) geladen werden.
CTVDR5:
Dafür trägt man in /etc/modprobe.d/blacklist einfach ganz unten folgendes einblacklist dvb_core
blacklist dvb_ttpci
blacklist budget_core
blacklist budget_ciCTVDR4 und 4.5:
Hier befindet sich die blacklist an andere Stelle.
Einfach in /etc/hotplug/blacklist.d eine datei erzeugen und die Module eintragen.
- mit "touch myblacklist" die datei myblacklist erzeugen
- mit einem editor folgendes eintragenAlternativ (ebenfalls ungetestet) soll es eine datei /etc/hotplug/blacklist geben in die das einzutragen ist
dvb_core
dvb_ttpci
budget_core
budget_ciHab leider kein ctvdr4/4.5 system, wenns jemand getestet hat bitte hier posten, damit ich die Anleitung entprechend anpassen kann.
Jetzt noch die treiber in /etc/modules eintragen damit sie in richtiger reihenfolge geladen werden
dvb_core
dvb_ttpci
budget_core
budget_ci(die core komponenten werden automatisch mitgeladen, aber Schaden auch nicht.-))
neu booten und fertig
Klingt komplizierter als es ist, kann man in weniger als 5 Minuten erledigen.
Danke an alle die bei der Lösung geholfen haben !
-
Quote
Ich habe mal die Datei /etc/modules um folgende Zeile ergänzt:
....
dvb_core
dvb_ttpci
budget_ci
budget_core
....und die Datei /etc/modprobe.d/blacklist um folgende Zeilen ergänzt:
....
blacklist dvb_core
blacklist dvb_ttpci
blacklist budget_cihmm, das muesste aer korrekter weise
dvb_core
dvb_ttpci
budget_core
budget_ciund
blacklist dvb_core
blacklist dvb_ttpci
blacklist budget_core
blacklist budget_ciheissen, wobei (soweit mir bekannt) die core komponenten zumindest beim laden weggelassen werden können (werden automatisch mitgeladen). Ich schreib sie aber doch mal mit in die Anleitung, nur sicherheitshalber.-)
-
deine kritik ist ist schon ok, aber ich möchte darauf hinweise dass ich oben schon von make allmodconfig gerdedt habe, und wo habe ich das wohl her (genau aus dem von dir zitierten readme) :-))
Ich geb ja zu ich bin keine Leuchte bei dem Thema, aber ich bemühe mich, und habe sowohl google wie auch die boardsuche bemüht, ich denke das problem ist eher exotisch.
edit: juhuu, doppel-ass :-))
-
hmm, klappt nicht, die sources datei ist leer
Bash
Display More#!/bin/bash mysources = 'deb http://ftp2.de.debian.org/debian sarge main non-free contrib deb http://security.debian.org/ sarge/updates main contrib non-free deb http://www.debian-multimedia.org sarge main deb http://e-tobi.net/vdr-experimental sarge base backports addons vdr-multipatch deb http://www.heise.de/ct/ftp/projekte/vdr5 updates/' #geht bei mir nicht echo "$mysources" >> ./sources.list # auch nicht echo $mysources >> ./sources1.list
Aber ich haette da nochwas:-))
wie kann ich aus der ausgabe von
http://www.kernel.org/kdist/finger_banner
die aktuelle kernelversion extrahieren? Ich möchte dass die version (aktuelle ist das 2.6.17.4) in einer variable gespeichert wird, damit ich sie im restlichen script verwenden kann...
anyone?
-
-
-
-
ich suche eher eine möglichkeit die sources zeilen in einer variable abzulegen um sie dann einfach in die sources.list zu schreiben. Der Grund: diese Zeilen sollen konfigurierbar sein und der benutzter soll ja nicht das ganze script durchgehen muessen, sondern nur am anfang ein paar settings machen...
ich hatte sowas probier, aber das funktioniert nicht:
mysources = 'deb http://ftp2.de.debian.org/debian sarge main non-free contrib
deb http://security.debian.org/ sarge/updates main contrib non-free
deb http://www.debian-multimedia.org sarge main
deb http://e-tobi.net/vdr-experimental sarge base backports addons vdr-multipatch
deb http://www.heise.de/ct/ftp/projekte/vdr5 updates/'echo $mysources >> ./sources.list
-
-
mein problem ist, ich möchte folgendes machen (ctvdr5) :
Code
Display More# was soll installiert werden (Kernel builden und installieren) packages_build=" build-essential libncurses5-dev dpkg-dev gcc g++ libc6-dev make patch debhelper bzip2 kernel-package cramfsprogs initrd-tools " kernel="2.6.17.3" # alles was man zum kernel builden braucht installieren apt-get -y install $packages_build cd /usr/src/ #kernel laden wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-$kernel.tar.bz2 # auspacken tar -xvjf linux-$kernel.tar.bz2 #verlinken rm linux ln -s linux-$kernel linux cd linux # alte config kopieren cp /boot/config-2.6.16-ct-1 .config # anpassen nicht unbedingt nötig #nano Makefile # einfach mit exit wieder raus und speichern make menuconfig # builden make-kpkg kernel_image --revision=dvb.0 --initrd # installieren dpkg -i ../kernel-image-$kernel\_dvb.0_i386.deb
es sollte möglichst automatisch gehen, allerdings stört dabei das make menuconfig (gibts ne alternaive?) und ich bekomme beim kernel builden immer eine meldung wegen dem initrd (sind sie sicher?)
Any Ideas?