Wie backt man ein Debinan-Kernel-Paket mit aktuellem v4l (sauber)?

  • Ich möchte gerne verstehen, wie man ein aktuelles v4l mit einem Kernel verheiratet und zwar so, das dabei wieder saubere Debian-Pakete herauskommen, die man an andere weiter geben kann, also Binary-, Source- und Header-Paket.


    Wie man einen Kernel zieht, umkonfiguriert und wieder paketiert weiss ich. Eben so, wie man sich das aktuelle v4l zieht. Nur, wie transplantiert man die v4l-Sourcen sauber in den Kernel? makelinks.sh führt bei mir dazu, dass der Kernel anschliessend nicht mehr übersetzbar ist:


    Nun gibt es hier im Forum Leute, die behaupten, makelinks.sh sei nicht mehr angezeigt. 'Einfach' make und 'make install'. Nur scheint mir das überhaupt nicht Debian-like und weitergebbare Pakete gibt's so auch nicht!? Dazu funktioniert selbst das bei mir nicht auf Anhieb:

    Code
    vdr2:/usr/src/hg-v4l-dvb-c5b558bbb8d1# make
    make -C /usr/src/hg-v4l-dvb-c5b558bbb8d1/v4l
    make[1]: Entering directory `/usr/src/hg-v4l-dvb-c5b558bbb8d1/v4l'
    creating symbolic links...
    make -C /lib/modules/2.6.12-ct-1/build SUBDIRS=/usr/src/hg-v4l-dvb-c5b558bbb8d1/v4l  modules
    make: *** /lib/modules/2.6.12-ct-1/build: No such file or directory.  Stop.
    make: Entering an unknown directorymake: Leaving an unknown directorymake[1]: *** [default] Fehler 2
    make[1]: Leaving directory `/usr/src/hg-v4l-dvb-c5b558bbb8d1/v4l'
    make: *** [all] Fehler 2


    Schon mal im Vorgriff: Wie gelangen dann die aktuellen (v4l-) Header nach /usr/include (damit man Programme der Anwendungsschicht sauber übersetzten kann)? Passiert das dann beim installieren des Kernel-Pakets? Aber was ist dann, wenn ich unterschiedliche Kernel installiert habe...?

    yaVDR 0.6.2; H61M/U3S3 / G530 / 4GB / GT 520 (passiv) / Cine S2 (Rev. V5.5) + DuoFlex S2 / 120GB SSD (System; SATA>USB) + 3TB SATA 6Gb/s; LCD-TV Toshiba 42VL863G; AVR Yamaha RX-S600...

  • Zitat

    Original von habichthugo
    Nun gibt es hier im Forum Leute, die behaupten, makelinks.sh sei nicht mehr angezeigt. 'Einfach' make und 'make install'. Nur scheint mir das überhaupt nicht Debian-like und weitergebbare Pakete gibt's so auch nicht!? Dazu funktioniert selbst das bei mir nicht auf Anhieb:

    Code
    vdr2:/usr/src/hg-v4l-dvb-c5b558bbb8d1# make
    make -C /usr/src/hg-v4l-dvb-c5b558bbb8d1/v4l
    make[1]: Entering directory `/usr/src/hg-v4l-dvb-c5b558bbb8d1/v4l'
    creating symbolic links...
    make -C /lib/modules/2.6.12-ct-1/build SUBDIRS=/usr/src/hg-v4l-dvb-c5b558bbb8d1/v4l  modules
    make: *** /lib/modules/2.6.12-ct-1/build: No such file or directory.  Stop.
    make: Entering an unknown directorymake: Leaving an unknown directorymake[1]: *** [default] Fehler 2
    make[1]: Leaving directory `/usr/src/hg-v4l-dvb-c5b558bbb8d1/v4l'
    make: *** [all] Fehler 2


    Hast Du den verwendeten Kernel auf der selben Maschine gebacken?
    /lib/modules/2.6.12-ct-1/build sollte ein Link auf die passenden Kernel-Sourcen sein.

    VDR-User #992
    Server: Asrock N3700-ITX mit Cine S2 6.5 headless
    System: Ubuntu 22.04.LTS
    VDR: VDR 2.2.0 mit epgsearch, live, vnsiserver
    Client: Raspberry Pi v4 mit LibreElec

  • Zitat

    Original von Sledge Hammer
    Hast Du den verwendeten Kernel auf der selben Maschine gebacken?
    /lib/modules/2.6.12-ct-1/build sollte ein Link auf die passenden Kernel-Sourcen sein.


    Ich habe das Ganze unter der weitgehend frisch installierten c't-VDR 4.5 mit dem Original-2.6.12-ct-1-Kernel gemacht. Das 2.6.12-ct-1-Kernel-Source-Paket habe ich noch nicht durchübersetzt. Das scheiterte ja nach makelinks.sh. Das make (v4l) habe ich nur noch scherzeshalber probiert.
    Ich möchte erst die Pakete bauen und die dann installieren (damit ich auch halbwegs sicher sein kann, dass das dann auch bei anderen funktioniert). make/make install (v4l) scheint mir dabei nicht zielführend...

    yaVDR 0.6.2; H61M/U3S3 / G530 / 4GB / GT 520 (passiv) / Cine S2 (Rev. V5.5) + DuoFlex S2 / 120GB SSD (System; SATA>USB) + 3TB SATA 6Gb/s; LCD-TV Toshiba 42VL863G; AVR Yamaha RX-S600...

  • Ist das nun so kompliziert, dass darauf niemand hier eine Antwort weis, es zu aufwändig wäre, das zu beschreiben...meine Frage zu dähmlich, einer Anwort wert zu sein?
    Kann man v4l vielleicht - ähnlich LIRC - als Modulpaket zu einem Kernel bauen?

    yaVDR 0.6.2; H61M/U3S3 / G530 / 4GB / GT 520 (passiv) / Cine S2 (Rev. V5.5) + DuoFlex S2 / 120GB SSD (System; SATA>USB) + 3TB SATA 6Gb/s; LCD-TV Toshiba 42VL863G; AVR Yamaha RX-S600...

  • ich glaube irgendwas ist mit dem ctvdr kernel faul ?
    habs gestern auch versucht mit dem deinem ergebnis ?(
    hab dann aber nen anderen kernel drauf :
    (sources.list)
    deb http://www.backports.org/backports.org/ sarge-backports main contrib non-free


    da geht das wieder :D (make und make install) :D


    (bei mir jetzt kernel-2.6.15)


    übrigens funktioniert bei diesem kernel auch auf anhiebb der framebuffer :D

  • hotzenplotz5
    Danke. Mag sein, dass das aktuelle v4l mit dem 2.6.12-ct-1 ein Problem hat (zu alt?)...


    @All
    Mein Ziel ist nicht (nur), das aktuell v4l auf meinem System zu installieren, sondern Pakete zu backen, die ich an andere weiter geben kann. Was hilft mir dabei (v4l) make (make install) weiter?
    Z.B. für LIRC kann man doch ein Modul-Paket backen (ohne den Kernel installiert zu haben). Man braucht dazu nur die Kernel-Sourcen (oder Header?) unter /usr/src und ausserhalb dieses Pfades wird dabei meines Wissens nix angerührt. Da ich von v4l bisher keine solchen Modul-(Binary-)Pakete gesehen habe, bin ich bisher davon ausgegangen, dass man die v4l-Sourcen immer in die Kernel-Sourcen drücken muss. Das geht jetzt aber nicht mehr so...? :rolleyes:
    Und nicht die 'nebensächliche' Frage vergessen "Wie gelangen dann die aktuellen (v4l-) Header nach /usr/include (damit man Programme der Anwendungsschicht sauber übersetzten kann)?..."

    yaVDR 0.6.2; H61M/U3S3 / G530 / 4GB / GT 520 (passiv) / Cine S2 (Rev. V5.5) + DuoFlex S2 / 120GB SSD (System; SATA>USB) + 3TB SATA 6Gb/s; LCD-TV Toshiba 42VL863G; AVR Yamaha RX-S600...

  • Wie man nun den Treiber integriert und ein neues Debian Paket daraus baut kann ich auch nicht so genau sagen.


    Ich weiss aber sicher das sich der aktuelle V4l Treiber nicht unverändert mit dem 2.6.12 kompilieren lässt. Du solltest also auch eine aktuelle Kernel Source benutzen.

  • yaVDR 0.6.2; H61M/U3S3 / G530 / 4GB / GT 520 (passiv) / Cine S2 (Rev. V5.5) + DuoFlex S2 / 120GB SSD (System; SATA>USB) + 3TB SATA 6Gb/s; LCD-TV Toshiba 42VL863G; AVR Yamaha RX-S600...

  • Zitat


    Fragt sich nur, ob der c't-Kernel "vanilla" ist. Vanilla Kernels gibt's bei kernel.org.
    Nur wo kernel.org drauf steht, ist auch sicher vanilla drin. ;)


    Was das restliche Vorgehen angeht, kann ich Dir nicht helfen. Ich spiele nämlich Source-Code, nicht Debian-Poker. :D


    CU
    Oliver

  • Also ich hatte es mal unter Debian Sarge mit 2.6.12 probiert und die V4l-DVB Treiber ließen sich nicht kompilieren. Ich weiss allerdings nicht mehr welche Fehlermeldung da kam.


    Ich nutze jetzt den 2.6.16-rc4 Vanilla Kernel, da die aktuellen DVB Treiber da bereits enthalten sind. Der Kernel läuft hier seit erscheinen problemlos und es ist seit langem der erste Vanilla Kernel der sogar ganz ohne warnings kompiliert.


    Kann man eigentlich ohne großen Aufwand aus einem Vanilla Kernel die 3 Debian Pakete ( Image, Source, Header ) erstellen ?

  • warum nimmst du nicht den kernel von backport.org
    apt-get install linux-image-2.6.15-1-386
    apt-get install linux-source-2.6.15
    cd /usr/src
    tar xjvf linux-source-2.6.15.tar.bz2
    apt-get install linux-headers-2.6.15-1
    hg clone http://linuxtv.org/hg/v4l-dvb
    cd v4l-dvb
    make
    make install


    ich hoffe ich hab nix vergessen :D


    achso mach doch einfach aus dem v4l-dvb verzeichnis ein debian paket

  • so auch wenn ich mir selber superschlaue tips gegeben hab !
    wie funktioniert das jetzt richtig ?
    bei mir kommt das hier :

    Code
    make -C /lib/modules/2.6.15-1-k7/build SUBDIRS=/usr/src/v4l-dvb/v4l  modules
    make: Entering an unknown directory
    make: *** /lib/modules/2.6.15-1-k7/build: No such file or directory.  Stop.
    make: Leaving an unknown directory
    make[1]: *** [default] Fehler 2
    make[1]: Leaving directory `/usr/src/v4l-dvb/v4l'
    make: *** [all] Fehler 2


    geladen ist aber kernel-2.6.16-ctvdr-1, die source sind in usr/src/linux
    kernel-header sind installiert .
    warum passt da was nicht ??

  • Soweit ich das noch richtig im Kopf habe musst Du vor dem make/make install setup.sh aufrufen!?

    yaVDR 0.6.2; H61M/U3S3 / G530 / 4GB / GT 520 (passiv) / Cine S2 (Rev. V5.5) + DuoFlex S2 / 120GB SSD (System; SATA>USB) + 3TB SATA 6Gb/s; LCD-TV Toshiba 42VL863G; AVR Yamaha RX-S600...

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!