Posts by Trashcan
-
-
-
Da du anscheinend APT zur Paketverwaltung nutzt, rate ich dir folgende Vorgehensweise:
sudo apt install build-essential fakeroot dpkg-dev devscripts
mkdir -p ~/build/vdr-plugin-epgsearch
cd ~/build/vdr-plugin-epgsearch
apt source vdr-plugin-epgsearch
sudo apt build-dep vdr-plugin-epgsearch
cd vdr-plugin-epgsearch-2.4.1
dpkg-buildpackage -rfakeroot -b -uc -tc
Falls alles glatt läuft, hast du aus dem Quellcode ein installierbares Paket gebaut.
Dieses kannst du dann mit dem folgenden Kommando installieren:
sudo dpkg -i ../vdr-plugin-epgsearch_2.4.1*_amd64.deb
Evtl. Abhängigkeiten werden wie folgt gelöst:
sudo apt -f install
Konnten die Abhängigkeiten nicht erfüllt werden, wird angeboten, das Paket wieder zu deinstallieren.
Ansonsten stehen dann nach dem Neustart des VDR's die Module zur Verfügung.
Noch ein Tip: Damit sudo nicht nach einem Passwort fragt, erstellt man eine Datei im Verzeichnis
/etc/sudoers.d/<Benutzername> mit folgendem Inhalt:
<Benutzername> ALL=(ALL) NOPASSWD: ALL
Anschließend müssen noch die Rechte gesetzt werden:
sudo chmod 0400 /etc/sudoers.d/<Benutzername>
Allerdings hat dieses den Haken, dass jeder, der Zugriff auf deinen Account hat, mit sudo OHNE KENNWORT agieren kann!
-
Das kommt darauf an, welche Linux-Distribution bei dir läuft.
Ich nutze Debian - aktuelle Version 12.5 (Bookworm) - und habe den VDR in der Version 2.6.4 installiert.
Zu meiner Schande muss ich aber eingestehen, dass seit ca. einem Jahr mein VDR nicht mehr läuft, da meine SAT-Schüssel an
der Fensterbank befestigt war, welche leider weggebrochen ist.
Fast alle Plugins hatte ich von e-tobi bezogen (https://packages.e-tobi.net/vdr-experimental). Leider scheint er sich aber nicht mehr um den VDR zu kümmern. Die letzte Version war für Debian Bullseye (oldstable).
Ich selber habe leider auch nur rudimentäre Linux-Kenntnisse, habe mich aber ein wenig in Paketverwaltung eingefuchst und ein Shell-Script geschrieben, um die Paketlisten für meine Repositories zu erstellen.
Wenn du 'apt update' eingibst, werden diese Listen dann von den Rechnern, die du in /etc/apt/sources.list oder /etc/apt/sources.list.d/ angegeben hast, heruntergeladen. Dann weiss dein Linux, welche Pakete es gibt und wo es diese herbekommt.
Um mein Repository zu nutzen, einfach die Datei jueling-keyring.gpg in das Verzeichnis /usr/share/keyrings kopieren.
Anschließend noch folgende Zeilen in /etc/apt/sources.list,d/www.jueling.de.list eintragen.
Update: Falls man nur die Plugins und nicht den VDR selber installieren oder runterladen möchte, dann kann man in den folgenden Zeilen das vdr-2.6.4 durch vdr-plugins-2.6.4 ersetzen.
#Debian Bookworm:
deb [signed-by=/usr/share/keyrings/jueling-keyring.gpg] http://www.jueling.de/vdr bookworm main contrib non-free non-free-firmware vdr-2.6.4
deb-src [signed-by=/usr/share/keyrings/jueling-keyring.gpg] http://www.jueling.de/vdr bookworm main contrib non-free non-free-firmware vdr-2.6.4
#Debian Bullseye:
deb [signed-by=/usr/share/keyrings/jueling-keyring.gpg] http://www.jueling.de/vdr bullseye main contrib non-free non-free-firmware vdr-2.6.4
deb-src [signed-by=/usr/share/keyrings/jueling-keyring.gpg] http://www.jueling.de/vdr bullseye main contrib non-free non-free-firmware vdr-2.6.4
#Debian Buster:
deb [signed-by=/usr/share/keyrings/jueling-keyring.gpg] http://www.jueling.de/vdr buster main contrib non-free non-free-firmware vdr-2.6.4
deb-src [signed-by=/usr/share/keyrings/jueling-keyring.gpg] http://www.jueling.de/vdr buster main contrib non-free non-free-firmware vdr-2.6.4
#Ubuntu Jammy:
deb [signed-by=/usr/share/keyrings/jueling-keyring.gpg] http://www.jueling.de/vdr jammy main contrib non-free non-free-firmware vdr-2.6.4
deb-src [signed-by=/usr/share/keyrings/jueling-keyring.gpg] http://www.jueling.de/vdr jammy main contrib non-free non-free-firmware vdr-2.6.4
und danach ein 'apt update' ausführen, um meine Paketlisten abzuholen.
Höchstwahrscheinlich werden dir dann jede Menge Updates angeboten.
Wenn du ein 'apt full-upgrade' ausführst, wird dann mein VDR (Version 2.6.4) installiert (vorausgesetzt, du hast den VDR installiert) und alle deine bisherigen Plugins, wenn sie auch in meinem Repository sind, werden aktualisiert - außer es gibt neuere Versionen von anderen APT-Quellen, die du eingetragen hast. Ein sog. "Pinning" erlaubt dir das priorisieren der Herkunft der Pakete (siehe: https://wiki.ubuntuusers.de/Apt-Pinning).
Plugins werden immer für die dazugehörige VDR Version übersetzt (auch wenn die Versionsnummern der Plugins verschieden sind).
Dabei muss das Paket vdr exakt die selbe Version wie das Paket vdr-dev haben!
Die installierten Versionen erfährt man wie folgt:
dpkg -s vdr | grep Version
und
dpkg -s vdr-dev | grep Version
APT steht für "Advanced Packaging Tool" - genaueres unter: https://wiki.ubuntuusers.de/APT.
Zum Beispiel basiert Linux Mint auf Ubuntu, welches wiederum auf Debian basiert.
Diese drei Distributionen nutzen APT.
Fedora (und andere) setzten auf rpm (ehemals Red Hat Package Manager, siehe: https://wiki.ubuntuusers.de/rpm).
Beide sind sog. Paketverwalter.
Uff - um deine Linuxkenntnisse zu erweitern lege ich dir die Debian Referenz nahe. (https://www.debian.org/doc/manuals/de…e/index.de.html).
-
-
Module (Treiber) und Firmware für Debian, Ubuntu und Co. gibt's hier...
-
Liebe VDR-Liebhaber.
Bei mir funktionieren die Pakete saa716x-dkms und tts2-6400.
Viel Spaß beim benutzen und verbessern...
-
Quote
Aber meine Hilfe ist ja anscheinend sowieso nicht gefragt, andere glauben wieder mal, es besser zu wissen.
Lieber S:oren. Was würden wir ohne dich machen? Bitte lass den Kopf nicht hängen. Ich bin auf jeden Fall ein großer Fan von dir!
-
Hallihallo.
Das Paket saa716x-dkms bekommt man hier.
-
Yeah!
Aufgrund des Threads von shofmann habe ich das Paket saa716x-dkms erstellt
und in mein Repository gepackt.
Vielen Dank dafür!
Und um keine Neverendingstory zu machen - einfach diesen Kommentar bookmarken.
Hier findet man immer die aktuellste Version.
Alles danach beschreibt den Werdegang, für den ich mich nochmal herzlich bedanke!
Source: saa716x-dkms_0.6.tar.gz (changelog)
Binary: saa716x-dkms_0.6_all.deb
Die Firmware ist jetzt in einem separaten Paket.
Source: firmware-saa716x_0.1.tar.xz
Binary: firmware-saa716x_0.1_all.deb
Man installiert die Pakete nach dem Runterladen wie folgt:
sudo dpkg -i firmware-saa716x_0.1_all.deb saa716x-dkms_0.6_all.deb
Falls irgendwelche Abhängigkeitsprobleme auftreten:
sudo apt -f install
Alternativ - soweit mein Repository benutzt wird - kann man das Paket saa716x-dkms installieren:
Zuerst wird mein GPG-Key runtergeladen und nach /usr/share/keyrings kopiert.
Dann wird die Datei /etc/apt/sources.list.d/www.jueling.de.list mit folgendem Inhalt angelegt:
#Debian Bookworm:
deb [signed-by=/usr/share/keyrings/jueling-keyring.gpg] http://www.jueling.de/vdr bookworm main contrib non-free non-free-firmware
deb-src [signed-by=/usr/share/keyrings/jueling-keyring.gpg] http://www.jueling.de/vdr bookworm main contrib non-free non-free-firmware
#Debian Bullseye:
deb [signed-by=/usr/share/keyrings/jueling-keyring.gpg] http://www.jueling.de/vdr bullseye main contrib non-free
deb-src [signed-by=/usr/share/keyrings/jueling-keyring.gpg] http://www.jueling.de/vdr bullseye mainmain contrib non-free
#Debian Buster:
deb [signed-by=/usr/share/keyrings/jueling-keyring.gpg] http://www.jueling.de/vdr buster main contrib non-free
deb-src [signed-by=/usr/share/keyrings/jueling-keyring.gpg] http://www.jueling.de/vdr buster main contrib non-free
#Ubuntu Jammy:
deb [signed-by=/usr/share/keyrings/jueling-keyring.gpg] http://www.jueling.de/vdr jammy main restricted universe multiverse
deb-src [signed-by=/usr/share/keyrings/jueling-keyring.gpg] http://www.jueling.de/vdr jammy main restricted universe multiverse
Anschließend sudo apt update ausführen. Danach kann man mit sudo apt install saa716x-dkms das Paket installieren.
Die Quelldateien können mit apt source saa716x-dkms heruntergeladen werden.
Nicht wundern, wenn die Installation etwas länger dauert - das ist normal.
Angefangen hatte ich mit dem Script tts2-6400.sh. Dieses hat aber den Nachteil, dass es jedesmal, wenn ein neuer Kernel installiert wird, erneut aufgerufen werden muss. Dank Stefan konnte ich ein dkms-Paket erstellen, so dass beim Kernelupdate die Module nun automatisch gebaut werden.
Die Quellen gibt' auch unter:https://github.com/Trashcan69/saa716x-dkms.git
https://github.com/Trashcan69/firmware-saa716x.git
Die Firmware erhält man alternativ bei Andreas Regel.
Viel Spaß beim ausprobieren und verbessern.
-
klak Es spricht theoretisch nichts dagegen, dass das Script auch unter bookworm läuft.
Bei der Nexus musste man noch die PCI-Latenz ändern. Ich mache dies auch bei der TT und habe folgende udev Regel in /etc/udev/rules.d/zz-ir.rules (Das Paket pciutils wird benötigt).
Code
Display More############### # DVB devices # ############### SUBSYSTEMS=="dvb",\ OWNER="vdr",\ GROUP="video",\ MODE="666" ################## # DVB IR devices # ################## KERNELS=="input*",\ ATTRS{name}=="TT6400 DVB IR receiver",\ OWNER="vdr",\ GROUP="input",\ MODE="666",\ SYMLINK+="input/ir", \ RUN+="/etc/udev/commands/dvb" KERNELS=="input*",\ ATTRS{name}=="DVB on-card IR receiver",\ OWNER="vdr",\ GROUP="input",\ MODE="666",\ SYMLINK+="input/irnexus",\ RUN+="/etc/udev/commands/dvb" KERNELS=="input*",\ ATTRS{name}=="cx88 IR (Hauppauge Nova-S-Plus",\ OWNER="vdr",\ GROUP="input",\ MODE="666",\ SYMLINK+="input/irnova" RUN+="/etc/udev/commands/dvb" KERNELS=="input*",\ ATTRS{name}=="Budget-CI dvb ir receiver saa7146 (0)",\ OWNER="vdr",\ GROUP="input",\ MODE="666",\ SYMLINK+="input/irbudget" RUN+="/etc/udev/commands/dvb"
und das dazugehörige Script /etc/udev/commands/dvb (ausführbar)
Bash
Display More#!/bin/sh # # according to /etc/udev/rules.d/zz-dvb.rules # # Set PCI latency # # Needs: pciutils # PATH=/bin:/sbin:/usr/bin:/usr/sbin DEVICES="$(lspci | cut -d' ' -f1)" LATENCY=40 set_latency() { logger -t kernel "Setting LATENCY_TIMER=$2 for device $STRING" setpci -s $1 LATENCY_TIMER=$2 } set_devices() { for DEVICE in $DEVICES; do STRING="$(lspci -s $DEVICE)" [ "$STRING" != "$DEVICE Multimedia controller: Philips Semiconductors SAA7160 (rev 02)" ] || set_latency $DEVICE $1 [ "$STRING" != "$DEVICE Multimedia controller: Philips Semiconductors SAA7146 (rev 01)" ] || set_latency $DEVICE $1 [ "$STRING" != "$DEVICE Network controller: Techsan Electronics Co Ltd B2C2 FlexCopII DVB chip / Technisat SkyStar2 DVB card (rev 02)" ] || set_latency $DEVICE $1 [ "$STRING" != "$DEVICE Multimedia video controller: Spin Master Ltd. Device 3038 (rev 01)" ] || set_latency $DEVICE $1 done } case $ACTION in add) set_devices $LATENCY ;; remove) set_devices 0 ;; esac # Grant access to RTC for VDR if [ -e /sys/class/rtc/rtc0/wakealarm ]; then chown root:vdr /sys/class/rtc/rtc0/wakealarm; chmod 0666 /sys/class/rtc/rtc0/wakealarm; fi # Create /dev/vdr-console for statusleds plugin if [ ! -e /dev/vdr-console ]; then mknod -m 666 /dev/vdr-console c 5 1; chown vdr:vdr /dev/vdr-console; fi # Grant access to IR for VDR if [ -e /proc/av7110_ir ]; then chown vdr:input /proc/av7110_ir; chmod 0666 /proc/av7110_ir; fi if [ -e /dev/input/ir ]; then chown vdr:input /dev/input/ir; chmod 0666 /dev/input/ir; fi if [ -e /dev/input/irnexus ]; then chown vdr:input /dev/input/irnexus; chmod 0666 /dev/input/irnexus; fi if [ -e /dev/input/irnova ]; then chown vdr:input /dev/input/irnova; chmod 0666 /dev/input/irnova; fi if [ -e /dev/input/irbudget ]; then chown vdr:input /dev/input/irbudget; chmod 0666 /dev/input/irbudget; fi # Create dvd link [ ! -e /dev/sr0 ] || [ -e /dev/dvd ] || ln -s /dev/sr0 /dev/dvd exit 0
Die Datei /etc/default/vdr habe ich erweitert
Code
Display More# /etc/default/vdr # # See also /usr/share/doc/vdr/README.Debian.gz # # Change to 1 to enable vdr's init-script ENABLED=1 # Change this to 1 if you want vdr to be able to shutdown the # computer ENABLE_SHUTDOWN=1 # Options that will be passed to vdr's commandline # for example: OPTIONS="-w 15" OPTIONS="-w 20" # VDR executes <COMMAND> when the power-off-key of the remote is pressed after # processing all shutdown hook scripts. Shutdown hooks may override this # command. See section "Shutdown-Hooks" below. SHUTDOWNCMD will be executed # detached in background. #SHUTDOWNCMD="/bin/systemctl hibernate" SHUTDOWNCMD="/sbin/poweroff" # The recording directory VIDEO_DIR=/srv/vdr/video.00 # Services to stop/start during suspend/hibernate SERVICES="lircd vdr" # Modules to unload/load during suspend/hibernate # Combiation of WinTV Nexus and SkyStar 970 #MODULES="b2c2_flexcop_pci b2c2_flexcop cx24123 s5h1420 dvb_ttpci stv0299 saa7146_vv saa7146 ttpci_eeprom dvb_core v4l2_common videobuf_dma_sg videobuf_core serial_ir" # TechnoTrend HD DVB Premium S2-6400 MODULES="serial_ir saa716x_ff"
die Datei /lib/systemd/system-sleep/suspend (ausführbar)
Bash
Display More#!/bin/sh SCRIPTS="$(find /etc/pm/sleep.d/ -type f | sort -u)" case $1 in pre) # before suspend for SCRIPT in $SCRIPTS; do { SCRIPTS_REVERTED="$SCRIPT $SCRIPTS_REVERTED"; }; done for SCRIPT in $SCRIPTS_REVERTED; do /bin/sh "$SCRIPT" suspend; done ;; post) # after resume for SCRIPT in $SCRIPTS; do /bin/sh "$SCRIPT" resume; done ;; esac
Ich habe den automatischen Start des VDR's im systemd deaktiviert (sudo systemctl disable vdr) und starte ihn statt dessen mit folgendem Script in /etc/pm/sleep.d/30-vdr (ausführbar):
Bash
Display More#!/bin/sh # # Action script to handle VDR # PATH=/bin:/sbin:/usr/bin:/usr/sbin DEFAULT=/etc/default/vdr SERVICES="" MODULES="" log() { echo "$1"; logger -t vdr "$1"; } testmod() { grep -sq $1 /proc/modules; } [ -e "$DEFAULT" ] || exit 1 . $DEFAULT [ x$ENABLED = x1 ] || [ x$ENABLED = xtrue ] || exit 0 [ "x$MODULES" != "x" ] || log "no modules" [ "x$SERVICES" != "x" ] || log "no services" case "$1" in thaw|resume) [ ! -e /dev/ttyS0 ] || /bin/setserial /dev/ttyS0 uart none for MODULE in $MODULES; do { if ! testmod $MODULE; then modprobe $MODULE >/dev/null 2>&1 || log "module load failed: $MODULE"; fi;} done for SERVICE in $SERVICES; do systemctl start $SERVICE.service >/dev/null 2>&1 || log "service start failed: $SERVICE"; done ;; hibernate|suspend) for SERVICE in $SERVICES; do SERVICES_REVERSE="$SERVICE $SERVICES_REVERSE"; done for SERVICE in $SERVICES_REVERSE; do systemctl stop $SERVICE.service >/dev/null 2>&1 || log "service stop failed: $SERVICE"; done for MODULE in $MODULES; do MODULES_REVERSE="$MODULE $MODULES_REVERSE"; done for MODULE in $MODULES_REVERSE; do { if testmod $MODULE; then modprobe -r $MODULE >/dev/null 2>&1 || log "module unload failed: $MODULE"; fi; }; done ;; esac
-
Ich habe von Virtualisierung keine Ahnung.
bei mir sieht es (ohne KVM) so aus:
Code
Display More[ 1119.440970] SAA716x FF 0000:01:00.0: found a Technotrend S2 6400 Dual S2 Premium PCIe card [ 1119.441144] SAA716x FF 0000:01:00.0: SAA7160 Rev 2, irq: 50 (MSI) [ 1119.452053] SAA716x FF 0000:01:00.0: Initializing SAA716x I2C Core 0 @ 400kHz [ 1119.454938] SAA716x FF 0000:01:00.0: Initializing SAA716x I2C Core 1 @ 400kHz [ 1119.577928] SAA716x FF 0000:01:00.0: firmware: direct-loading firmware dvb-ttpremium-fpga-01.fw [ 1120.840060] SAA716x FF 0000:01:00.0: FPGA version 1.10 [ 1120.900388] SAA716x FF 0000:01:00.0: firmware: direct-loading firmware dvb-ttpremium-loader-01.fw [ 1120.900396] SAA716x FF 0000:01:00.0: loader version 1.03 [ 1121.193680] SAA716x FF 0000:01:00.0: firmware: direct-loading firmware dvb-ttpremium-st7109-01.fw [ 1121.501509] dvbdev: DVB: registering new adapter (SAA716x dvb adapter) [ 1121.595539] i2c i2c-15: Attaching STV6110x [ 1121.603154] SAA716x FF 0000:01:00.0: DVB: registering adapter 0 frontend 0 (STV090x Multistandard)... [ 1121.603460] dvbdev: DVB: registering new adapter (SAA716x dvb adapter) [ 1121.604502] i2c i2c-15: Attaching STV6110x [ 1121.631506] SAA716x FF 0000:01:00.0: DVB: registering adapter 1 frontend 0 (STV090x Multistandard)... [ 1122.410268] SAA716x FF 0000:01:00.0: firmware version 0.5.1 [ 1122.410356] input: TT6400 DVB IR receiver as /devices/pci0000:00/0000:00:02.0/0000:01:00.0/input/input29
Dein Problem ist in Zeile 31 deines Codeblocks.
-
So soll es sein.
Das freut mich zu hören.
-
Laut meiner Recherechen liegt daran, dass die include files des Kernels nicht zum kernel passen.
Ich habe das selbe Problem mit Kubuntu in der VirtualBox. Ich hoffe ja, dass ein Ubuntu-Kernel-Kenner da weiter helfen kann.
Siehe: TT S2-6400 - saa716x kompilieren unter Debian Buster oder Bullseye
-
UPDATE: saa716x-dkms
Damit ich nicht immer das VDR-Portal zuschwalle - einfach diesen Thread bookmarken.
Hier findet man immer die aktuelle Version.
Hab's mal als Debian Paket verpackt.
Wer will, kann sich das Paket tts2-6400 aus meinem Repository installieren/runterladen - und gerne verbessern.
Unter Debian GNU/Linux Buster und Bullseye läuft es bei mir mittlerweile bulletproofed.
Ich werde mich darum bemühen, das Paket so aktuell wie möglich zu halten.
Um mein Repository zu nutzen, einfach die Datei jueling-keyring.gpg in das Verzeichnis /usr/share/keyrings kopieren und die Datei /etc/apt/sources.list.d/www.jueling.de.list mit folgendem Inhalt erstellen
(z. B. sudo nano /etc/apt/sources.list.d/www.jueling.de.list):
#Debian Bullseye:
deb [signed-by=/usr/share/keyrings/jueling-keyring.gpg] https://www.jueling.de/vdr bullseye main contrib non-free
deb-src [signed-by=/usr/share/keyrings/jueling-keyring.gpg] https://www.jueling.de/vdr bullseye main contrib non-free
#Debian Buster:
deb [signed-by=/usr/share/keyrings/jueling-keyring.gpg] https://www.jueling.de/vdr buster main contrib non-free
deb-src [signed-by=/usr/share/keyrings/jueling-keyring.gpg] https://www.jueling.de/vdr buster main contrib non-free
#Debian Bookworm:
deb [signed-by=/usr/share/keyrings/jueling-keyring.gpg] https://www.jueling.de/vdr bookworm main contrib non-free
deb-src [signed-by=/usr/share/keyrings/jueling-keyring.gpg] https://www.jueling.de/vdr bookworm main contrib non-free
Anschließend sudo apt update ausführen. Danach kann man mit sudo apt install tts2-6400 das Paket installieren.
Die Quelldateien können mit apt source tts2-6400 heruntergeladen werden.
Die Module müssen neu gebaut werden, sobald ein anderer Kernel läuft!
Dies geschieht mit
sudo dpkg-reconfigure tts2-6400
oder
sudo tts2-6400.sh
Da Ubuntu auf Debian GNU/Linux basiert, sollte es nicht schwer sein, auch für Ubuntu und Derivate das Paket anzupassen.
Momentan fragt das postinst-script ab, ob Debian GNU/Linux oder Ubuntu benutzt wird.
Einfach mal unter Ubuntu ausprobieren und bitte ein Feedback geben.
-
Heute ist nicht mein Tag. Habe noch die Abfrage, ob das Source Verzeichnis existiert, hinzugefügt.
Bash
Display More#!/bin/sh # # Build Debian modules for TechnoTrend Premium DVB S2-6400 # The build directory needs at least 1 GByte space! # BUILDDIR=/tmp/linux-saa716x LOGFILE=$BUILDDIR.log KERNELVERSION=$(uname -r) KMAJOR=$(echo $KERNELVERSION | cut -d'.' -f1) KMINOR=$(echo $KERNELVERSION | cut -d'.' -f2) FWLOADER=http://www.aregel.de/file_download/7/dvb-ttpremium-loader-01_v1_03.zip FWFPGA=http://www.aregel.de/file_download/26/dvb-ttpremium-fpga-01_v1_10.zip FWST7109=http://www.aregel.de/file_download/28/dvb-ttpremium-st7109-01_v0_5_1.zip URL=https://github.com/s-moch/linux-saa716x/compare PATCH=saa716x-$KMAJOR.$KMINOR.diff DESTINATION=/lib/modules/$KERNELVERSION/kernel PACKAGES="fakeroot build-essential devscripts libncurses5 libncurses5-dev bison flex libssl-dev wget libelf-dev unzip findutils linux-source-$KMAJOR.$KMINOR linux-headers-$KERNELVERSION" if [ $KMAJOR -gt 4 ]; then SECTION=drivers/media/pci/saa716x else SECTION=drivers/media/common/saa716x fi print() { echo "## $1" | tee -a $LOGFILE; } finish() { if [ x$? = x0 ]; then print "SUCCESS"; rm -rf $BUILDDIR; else print "FAILED"; fi; print "Logfile: $LOGFILE"; } [ x$(whoami) = xroot ] || exit 1 rm -rf $BUILDDIR $LOGFILE mkdir -p $BUILDDIR || exit 1 touch $LOGFILE trap finish exit cd $BUILDDIR print "Check distribution" [ -e /etc/os-release ] || exit 1 . /etc/os-release [ x$VERSION_CODENAME = xbuster ] || [ x$VERSION_CODENAME = xbullseye ] || exit 1 print "Install dependencies" apt-get -y install $PACKAGES >>$LOGFILE 2>&1 || exit 1 print "Get firmware" wget $URL/$PATCH >>$LOGFILE 2>&1 || exit 1 wget $FWLOADER >>$LOGFILE 2>&1 || exit 1 wget $FWFPGA >>$LOGFILE 2>&1 || exit 1 wget $FWST7109 >>$LOGFILE 2>&1 || exit 1 print "Extract firmware" unzip $(basename $FWLOADER) >>$LOGFILE 2>&1 || exit 1 unzip $(basename $FWFPGA) >>$LOGFILE 2>&1 || exit 1 unzip $(basename $FWST7109) >>$LOGFILE 2>&1 || exit 1 print "Install firmware" cp -af *.fw /lib/firmware/ || exit 1 SOURCE=$(find /usr/src -type f -name linux-source-$KMAJOR.$KMINOR*) [ x$SOURCE != x ] || exit 1 print "Extract kernel source" tar xf $SOURCE || exit 1 SOURCEDIR=$(find . -type d -name linux-*) [ x$SOURCEDIR != x ] || exit 1 cd $SOURCEDIR || exit 1 print "Prepare kernel source" cp /boot/config-$KERNELVERSION .config || exit 1 cp /usr/src/linux-headers-$KERNELVERSION/Module.symvers . || exit 1 cp /boot/System.map-$KERNELVERSION System.map || exit 1 patch -p1 < ../$PATCH >>$LOGFILE 2>&1 || exit 1 printf "y\nm\nm\nm\nm\n" | make oldconfig >>$LOGFILE 2>&1 || exit 1 print "Build modules" make KERNELVERSION=$KERNELVERSION -j6 modules_prepare >>$LOGFILE 2>&1 || exit 1 make KERNELVERSION=$KERNELVERSION -j6 M=$SECTION modules >>$LOGFILE 2>&1 || exit 1 print "Install modules" #make KERNELVERSION=$KERNELVERSION M=$SECTION modules_install >>$LOGFILE 2>&1 || exit 1 [ -e $DESTINATION/$SECTION ] || mkdir -p $DESTINATION/$SECTION || exit 1 cp -af $SECTION/*.ko $DESTINATION/$SECTION/ || exit 1 depmod $KERNELVERSION || exit 1 grep -sq saa716x /proc/modules || modprobe saa716x_ff || exit 1
-
Habe die Ausgabe des Scripts in ein Logfile exportiert und weitere kleine Änderungen gemacht.
Ich denke, dass es die letzte Version ist.
Bash
Display More#!/bin/sh # # Build Debian modules for TechnoTrend Premium DVB S2-6400 # The build directory needs at least 1 GByte space! # BUILDDIR=/tmp/linux-saa716x LOGFILE=$BUILDDIR.log KERNELVERSION=$(uname -r) KMAJOR=$(echo $KERNELVERSION | cut -d'.' -f1) KMINOR=$(echo $KERNELVERSION | cut -d'.' -f2) FWLOADER=http://www.aregel.de/file_download/7/dvb-ttpremium-loader-01_v1_03.zip FWFPGA=http://www.aregel.de/file_download/26/dvb-ttpremium-fpga-01_v1_10.zip FWST7109=http://www.aregel.de/file_download/28/dvb-ttpremium-st7109-01_v0_5_1.zip URL=https://github.com/s-moch/linux-saa716x/compare PATCH=saa716x-$KMAJOR.$KMINOR.diff DESTINATION=/lib/modules/$KERNELVERSION/kernel PACKAGES="fakeroot build-essential devscripts libncurses5 libncurses5-dev bison flex libssl-dev wget libelf-dev unzip findutils linux-source-$KMAJOR.$KMINOR linux-headers-$KERNELVERSION" if [ $KMAJOR -gt 4 ]; then SECTION=drivers/media/pci/saa716x else SECTION=drivers/media/common/saa716x fi print() { echo "## $1" | tee -a $LOGFILE; } finish() { if [ x$? = x0 ]; then print "SUCCESS"; rm -rf $BUILDDIR; else print "FAILED"; fi; print "Logfile: $LOGFILE"; } [ x$(whoami) = xroot ] || exit 1 rm -rf $BUILDDIR $LOGFILE mkdir -p $BUILDDIR || exit 1 touch $LOGFILE trap finish exit cd $BUILDDIR print "Check distribution" [ -e /etc/os-release ] || exit 1 . /etc/os-release [ x$VERSION_CODENAME = xbuster ] || [ x$VERSION_CODENAME = xbullseye ] || exit 1 print "Install dependencies" apt-get -y install $PACKAGES >>$LOGFILE 2>&1 || exit 1 print "Get firmware" wget $URL/$PATCH >>$LOGFILE 2>&1 || exit 1 wget $FWLOADER >>$LOGFILE 2>&1 || exit 1 wget $FWFPGA >>$LOGFILE 2>&1 || exit 1 wget $FWST7109 >>$LOGFILE 2>&1 || exit 1 print "Extract firmware" unzip $(basename $FWLOADER) >>$LOGFILE 2>&1 || exit 1 unzip $(basename $FWFPGA) >>$LOGFILE 2>&1 || exit 1 unzip $(basename $FWST7109) >>$LOGFILE 2>&1 || exit 1 print "Install firmware" cp -af *.fw /lib/firmware/ || exit 1 SOURCE=$(find /usr/src -type f -name linux-source-$KMAJOR.$KMINOR*) [ x$SOURCE != x ] || exit 1 print "Extract kernel source" tar xf $SOURCE || exit 1 SOURCEDIR=$(find . -type d -name linux-*) cd $SOURCEDIR || exit 1 print "Prepare linux source" cp /boot/config-$KERNELVERSION .config || exit 1 cp /usr/src/linux-headers-$KERNELVERSION/Module.symvers . || exit 1 cp /boot/System.map-$KERNELVERSION System.map || exit 1 patch -p1 < ../$PATCH >>$LOGFILE 2>&1 || exit 1 printf "y\nm\nm\nm\nm\n" | make oldconfig >>$LOGFILE 2>&1 || exit 1 print "Build modules" make KERNELVERSION=$KERNELVERSION -j6 modules_prepare >>$LOGFILE 2>&1 || exit 1 make KERNELVERSION=$KERNELVERSION -j6 M=$SECTION modules >>$LOGFILE 2>&1 || exit 1 print "Install modules" #make KERNELVERSION=$KERNELVERSION M=$SECTION modules_install >>$LOGFILE 2>&1 || exit 1 [ -e $DESTINATION/$SECTION ] || mkdir -p $DESTINATION/$SECTION || exit 1 cp -af $SECTION/*.ko $DESTINATION/$SECTION/ || exit 1 depmod $KERNELVERSION || exit 1 grep -sq saa716x /proc/modules || modprobe saa716x_ff || exit 1
-
-
Das Script fragt jetzt auch die Distribution ab.
Ausserdem habe ich wirbel's Vorschlag eingebaut.
Bash
Display More#!/bin/sh # # Build Debian modules for TechnoTrend Premium DVB S2-6400 # The build directory needs at least 1 GByte space! # BUILDDIR=/tmp/linux-saa716x KERNELVERSION=$(uname -r) KMAJOR=$(echo $KERNELVERSION | cut -d'.' -f1) KMINOR=$(echo $KERNELVERSION | cut -d'.' -f2) FWLOADER=http://www.aregel.de/file_download/7/dvb-ttpremium-loader-01_v1_03.zip FWFPGA=http://www.aregel.de/file_download/26/dvb-ttpremium-fpga-01_v1_10.zip FWST7109=http://www.aregel.de/file_download/28/dvb-ttpremium-st7109-01_v0_5_1.zip URL=https://github.com/s-moch/linux-saa716x/compare PATCH=saa716x-$KMAJOR.$KMINOR.diff DESTINATION=/lib/modules/$KERNELVERSION/kernel PACKAGES="fakeroot build-essential devscripts libncurses5 libncurses5-dev bison flex libssl-dev wget libelf-dev unzip findutils linux-source-$KMAJOR.$KMINOR linux-headers-$KERNELVERSION" if [ $KMAJOR -gt 4 ]; then SECTION=drivers/media/pci/saa716x else SECTION=drivers/media/common/saa716x fi finish() { if [ x$? = x0 ]; then echo "## SUCCESS"; rm -rf $BUILDDIR; else echo "## FAILED"; fi; } [ x$(whoami) = xroot ] || exit 1 [ -e /etc/os-release ] || exit 1 . /etc/os-release [ x$VERSION_CODENAME = xbuster ] || [ x$VERSION_CODENAME = xbullseye ] || exit 1 apt-get install $PACKAGES || exit 1 trap finish exit rm -rf $BUILDDIR mkdir -p $BUILDDIR || exit 1 cd $BUILDDIR || exit 1 wget $URL/$PATCH || exit 1 wget $FWLOADER || exit 1 wget $FWFPGA || exit 1 wget $FWST7109 || exit 1 unzip $(basename $FWLOADER) || exit 1 unzip $(basename $FWFPGA) || exit 1 unzip $(basename $FWST7109) || exit 1 cp -af *.fw /lib/firmware/ || exit 1 SOURCE=$(find /usr/src -type f -name linux-source-$KMAJOR.$KMINOR*) [ x$SOURCE != x ] || exit 1 tar xf $SOURCE || exit 1 cd linux-source-$KMAJOR.$KMINOR/ || exit 1 cp /boot/config-$KERNELVERSION .config || exit 1 cp /usr/src/linux-headers-$KERNELVERSION/Module.symvers . || exit 1 cp /boot/System.map-$KERNELVERSION System.map || exit 1 patch -p1 < ../$PATCH || exit 1 printf "y\nm\nm\nm\nm\n" | make oldconfig || exit 1 make KERNELVERSION=$KERNELVERSION -j6 modules_prepare || exit 1 make KERNELVERSION=$KERNELVERSION -j6 M=$SECTION modules || exit 1 #make KERNELVERSION=$KERNELVERSION M=$SECTION modules_install 2>$BUILDDIR.log || exit 1 [ -e $DESTINATION/$SECTION ] || mkdir -p $DESTINATION/$SECTION || exit 1 cp -af $SECTION/*.ko $DESTINATION/$SECTION/ || exit 1 depmod $KERNELVERSION || exit 1 grep -sq saa716x /proc/modules || modprobe saa716x_ff || exit 1
-
Das Paket 'linux-source-5.4' ist nicht installiert.
Es existiert aber auch nicht im offiziellen Debian Repository http://ftp.de.debian.org/debian/pool/main/l/linux.
Das Script funktioniert nicht bei Ubuntu.