[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: