Re: Kernelmodule auf anderem Rechner kompilieren
Gerhard Brauer schrieb:
> * Paul Muster <exp-311206@news.muster.dyndns.info> schrieb am [25.12.06 15:03]:
>>ich möchte lirc auf einem Debian Etch mit Kernel 2.6.18-3-686
>>installieren, um den Rechner mit einer Fernbedienung über den seriellen
>>Port zu steuern. Offenbar brauche ich dazu zwei Kernelmodule, lirc-dev
>>und lirc-serial. Nun könnte ich auf dem Rechner "einfach"
>>lirc-modules-source installieren und dort die Module bauen.
>>
>>Allerdings möchte ich den Rechner so schlank wie möglich lassen und
>>keine Entwicklungswerkzeuge installieren. Daher sollen die Module auf
>>einem anderen PC kompiliert werden. Dort steht Debian Sarge mit
>>(momentan) 2.6.17-2-686 von bpo zur Verfügung.
> Auf dem Sarge-Rechner brauchst du:
> - Den Kernel-Source bzw. die Headers vom 2.6.18-3-686 Kernel
> - Das lirc-modules-source-Paket:
> apt-get -d install lirc-modules-source
> downloadet das nach /var/cache/apt/archives
>
> Beides kannst du z.B. nach /usr/local/src auspacken.
Das habe ich offenbar geschafft:
| paul-mobil:/usr/local/src# ls -la
| total 3764
| drwxrwsr-x 4 root staff 4096 Dec 25 16:46 .
| drwxrwsr-x 9 root staff 4096 Apr 29 2006 ..
| drwxr-xr-x 17 root root 4096 Dec 25 16:44 linux-headers-2.6.18-3
| drwxr-xr-x 3 root root 4096 Mar 12 2005 modules
> Im modules/lirc_dir gibt es eine README, für dich wäre der zweite
> Weg ohne make-kpkg der richtige. KDREV und KSRC mußt du an deine
> Gegebenheiten anpassen.
Ersteres habe ich getan:
| paul-mobil:/usr/local/src/modules/lirc# grep KSRC debian/rules
| # KSRC is the location of the kernel source. This is the default value,
| KSRC = /usr/local/src/linux-headers-2.6.18-3
| [...]
KDREV sollte ich wohl in "2.6.18-3" ändern?
| paul-mobil:/usr/local/src/modules/lirc# grep KDREV debian/rules
| # KDREV is the package-revision, as given to make-kpkg by the user.
| KDREV = "2.6.18-3"
| [...]
> debian/rules
Sollte ich "debian/rules binary-modules" verwenden, wie es das Readme sagt?
> generiert die dann ein .deb-Paket, welches du auf dem
> Etch-Rechner mit dpkg -i installieren kannst.
Leider nicht, denn die Sourcen sind offenbar noch unkonfiguriert(?):
| paul-mobil:/usr/local/src/modules/lirc# debian/rules
| sed -e "s!\$KVERS!`sed -n -e '/UTS_RELEASE/s/^[^"]*"\([^"]*\)".*$/\1/p'
| /usr/local/src/linux-headers-2.6.18-3/include/linux/version.h`!g;
| s!\$KSRC!/usr/local/src/linux-headers-2.6.18-3!; s!\$KARCH!i386!;
| s!\$KEMAIL!!; s!\$KMAINT!!; s!\$KDREV!"Custom.1.00"!;
| s!\$DEBDATE!Mon, 25 Dec 2006 17:06:36 +0100!" debian/control.in >
debian/control
| sed: can't read
/usr/local/src/linux-headers-2.6.18-3/include/linux/version.h:
| No such file or directory
Ich glaube, ich muss die Kernelsourcen konfigurieren...?
| paul-mobil:/usr/local/src/linux-headers-2.6.18-3# make config
| Makefile:266:
/usr/local/src/linux-headers-2.6.18-3/scripts/Kbuild.include: No such
file or directory
| /bin/sh: line 1: [: -lt: unary operator expected
| make: *** No rule to make target
`/usr/local/src/linux-headers-2.6.18-3/scripts/Kbuild.include'. Stop.
:-( Hilfe!
| paul-mobil:/usr/local/src/linux-headers-2.6.18-3# make config dep
| Makefile:266:
/usr/local/src/linux-headers-2.6.18-3/scripts/Kbuild.include: No such
file or directory
| /bin/sh: line 1: [: -lt: unary operator expected
| /usr/local/src/linux-headers-2.6.18-3/Makefile:266:
/usr/local/src/linux-headers-2.6.18-3/scripts/Kbuild.include: No such
file or directory
| /bin/sh: line 1: [: -lt: unary operator expected
| make[2]: *** No rule to make target
`/usr/local/src/linux-headers-2.6.18-3/scripts/Kbuild.include'. Stop.
| make[1]: *** [include/config/auto.conf] Error 2
| make: *** [.kernelvariables] Error 2
Ja, ich stochere heftig im Nebel. Wie komme ich weiter?
> Alternativ (ohne Debian way) wäre der in modules/lirc/README.make
> beschriebene Weg, die Module einzeln bzw. all zu kompilieren.
> Nur das make install darfst du halt nicht ausführen.
> Die benötigten Module dann auf den Etch-Rechner nach
> /lib/modules/$dein_kernel zu transportieren, depmod -a und mit modprobe
> das Laden versuchen. tail -f /var/log/syslog nebenbei zeigt dir evtl.
> Fehler oder Hinweise.
Nee, soweit wie möglich möchte ich es machen, wie Debian es empfiehlt.
> So sollte es nach kurzem Überfliegen des Paketes funktionieren, CPU bzw..
> ARCH Einstellungen sind ja nicht nötig, da beides -686.
Auf jeden Fall danke für deine Erklärung, vielleicht kannst du mir ja
noch weiterhelfen.
Viele Grüße
Paul
Reply to: