Kernel-package erstellen mit make-kpkg

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
absynth
Beiträge: 10
Registriert: 14.10.2008 16:22:19

Kernel-package erstellen mit make-kpkg

Beitrag von absynth » 14.10.2008 16:59:35

Hallo ich versuche ein Kernel-package zu erstellen und will aber 2 Treiber module gleich mit ins Image reinpacken, die von haus aus nicht dabei sind.
mein befehl sieht dann so aus :
######################################################################
make-kpkg --added-modules module1.ko ,module2.ko --config menuconfig kernel-image
#######################################################################

module1.ko und module2.ko hab ich in den ordner /usr/src/modules kopiert...
(steht so im handbuch: http://debiananwenderhandbuch.de/kernelbauen.html )

meine frage ist nun, muss ich diese module in menuconfig nochmal irgendwo "aktivieren" oder werden die fest eincompiliert oder fest als module eingetragen ...?

wenn ich den kernel starte , dann steht in /lib/modules/*meinkernel*/ in keiner datei meine module :/

was mache ich falsch ?

mit freundlichen grüßen

Benutzeravatar
Profbunny
Beiträge: 595
Registriert: 04.04.2004 11:12:29
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Bautzen

Re: Kernel-package erstellen mit make-kpkg

Beitrag von Profbunny » 14.10.2008 20:55:52

gib mal den kompletten pfad an zum modul. außerdem würde ich sagen modul.ko, modul2.ko und nicht modul.ko ,modul2.ko
achte auf den sitz des kommas

nur so ne idee
Rechner / Server Debian sid

absynth
Beiträge: 10
Registriert: 14.10.2008 16:22:19

Re: Kernel-package erstellen mit make-kpkg

Beitrag von absynth » 14.10.2008 22:09:40

kompletten pfad brauch ich nur angeben wenn die module woanders als in /usr/src/modules liegen ...und er findet die module ja auch, also beschwert sich nicht darüber ...er erkennt auch das es 2 module sind ...also der befehl an sich passt schon so
kann morgen ja mal den gesammten output hier posten, vllt hilft das weiter...bin im moment nciht an diesen bestimmten rechner

mit freundlichen grüßen

absynth
Beiträge: 10
Registriert: 14.10.2008 16:22:19

Re: Kernel-package erstellen mit make-kpkg

Beitrag von absynth » 16.10.2008 09:45:44

Also, wenn ich den Befehl starte kommt das hier:

Code: Alles auswählen

exec make -f /usr/share/kernel-package/ruleset/minimal.mk debian DEBIAN_REVISION=4.0  KPKG_SELECTED_MODULES="esdcan-usb331.ko,pcan.ko" 
====== making target minimal_debian [new prereqs: ]======
This is kernel package version .
test -d debian || mkdir debian
test ! -e stamp-building || rm -f stamp-building
test -f debian/control || sed         -e 's/=V/2.6.26.5/g'        \
                -e 's/=D/4.0/g'         -e 's/=A/i386/g'  \
	        -e 's/=SA//g'   -e 's/=L/ /g' \
                -e 's/=I//g'                                    \
                -e 's/=CV/2.6/g'                       \
                -e 's/=M/xxx>/g'                        \
                -e 's/=ST/linux/g'      -e 's/=B/i386/g'    \
		         /usr/share/kernel-package/Control > debian/control
test -f debian/changelog ||  sed -e 's/=V/2.6.26.5/g'             \
	    -e 's/=D/4.0/g'        -e 's/=A/i386/g'       \
            -e 's/=ST/linux/g'     -e 's/=B/i386/g'         \
	    -e 's/=M/xxx>/g' 	                    \
             /usr/share/kernel-package/changelog > debian/changelog
install -p -m 755 /usr/share/kernel-package/rules debian/rules
for file in ChangeLog  Control  Control.bin86 config templates.in rules; do                                      \
            cp -f  /usr/share/kernel-package/$file ./debian/;                               \
        done
for dir  in Config docs examples ruleset scripts pkg po;  do                                      \
          cp -af /usr/share/kernel-package/$dir  ./debian/;                                 \
        done
test -d ./debian/stamps || mkdir debian/stamps 
exec debian/rules  DEBIAN_REVISION=4.0  CONFIG_TARGET=menuconfig  KPKG_SELECTED_MODULES="esdcan-usb331.ko,pcan.ko"  kernel-image 

====== making target CONFIG-common [new prereqs: testdir]======

====== making target debian/stamp-conf [new prereqs: ]======
# work around idiocy in recent kernel versions
test ! -e scripts/package/builddeb || \
            mv -f scripts/package/builddeb scripts/package/builddeb.kpkg-dist
test ! -e scripts/package/Makefile || \
            (mv -f scripts/package/Makefile scripts/package/Makefile.kpkg-dist && \
               (echo "# Dummy file "; echo "help:") >  scripts/package/Makefile)
test -d debian || mkdir ./debian
test ! -e stamp-building || rm -f stamp-building
test ! -f ./debian || test -f stamp-debian || test -f debian/official || \
               (rm -rf ./debian && mkdir ./debian)
test -f stamp-debian  ||                                           \
          ( test -f debian/official && test -f debian/control) ||          \
	   sed -e 's/=V/2.6.26.5/g'         -e 's/=D/4.0/g'        \
	       -e 's/=A/i386/g'   -e 's/=SA//g'  \
                -e 's/=L/lilo (>= 19.1) | grub, /g' -e 's/=I//g'     \
                -e 's/=CV/2.6/g'                      \
                -e 's/=M/xxx>/g'                       \
                -e 's/=ST/linux/g'      -e 's/=B/i386/g'   \
		         /usr/share/kernel-package/Control> debian/control
test -f stamp-debian  ||    test -f debian/official ||                \
           sed -e 's/=V/2.6.26.5/g' -e 's/=D/4.0/g'                   \
	    -e 's/=A/i386/g' -e 's/=M/xxx>/g' \
            -e 's/=ST/linux/g'     -e 's/=B/i386/g'           \
		/usr/share/kernel-package/changelog > debian/changelog
test  -f debian/rules || install -p -m 755 /usr/share/kernel-package/rules debian/rules
test  -f stamp-debian || test -f debian/official ||                     \
	   for file in ChangeLog  Control  Control.bin86 config templates.in rules; do                                      \
               cp -f  /usr/share/kernel-package/$file ./debian/;                               \
           done
test  -f stamp-debian || test -f debian/official ||                     \
	   for dir  in Config docs examples ruleset scripts pkg po;  do                                      \
             cp -af /usr/share/kernel-package/$dir  ./debian/;                                 \
           done
echo done >  stamp-debian
echo done >  debian/stamp-conf
====== making target CONFIG-common [new prereqs: stamp-conf]======
This is kernel package version 11.001.
====== making stamp-arch-conf because of  ======

====== making target CONFIG-arch [new prereqs: stamp-arch-conf]======
====== making conf.vars because of .config ======

====== making target CONFIG-arch [new prereqs: .config conf.vars]======
This is kernel package version 11.001.
====== making target CONFIG/linux-headers-2.6.26.5 [new prereqs: CONFIG-arch]======

====== making target CONFIG/linux-image-2.6.26.5 [new prereqs: CONFIG-arch]======

====== making target CONFIG/linux-uml-2.6.26.5 [new prereqs: CONFIG-arch]======

====== making target CONFIG/linux-xen0-2.6.26.5 [new prereqs: CONFIG-arch]======

====== making target CONFIG/linux-xenu-2.6.26.5 [new prereqs: CONFIG-arch]======

====== making stamp-configure-arch because of  ======
====== making target configure-arch [new prereqs: stamp-configure-arch]======
====== making stamp-indep-conf because of  ======

====== making target CONFIG-indep [new prereqs: stamp-indep-conf]======
====== making target debian/stamp-kernel-conf [new prereqs: .config Makefile]======
/usr/bin/make    ARCH=i386 \
                menuconfig
make[1]: Betrete Verzeichnis '/usr/src/linux-2.6.26.5'
scripts/kconfig/mconf arch/x86/Kconfig


*** End of Linux kernel configuration.
*** Execute 'make' to build the kernel or try 'make help'.

make[1]: Verlasse Verzeichnis '/usr/src/linux-2.6.26.5'
/usr/bin/make    ARCH=i386 prepare
make[1]: Betrete Verzeichnis '/usr/src/linux-2.6.26.5'
  CHK     include/linux/version.h
  CHK     include/linux/utsrelease.h
  CALL    scripts/checksyscalls.sh
make[1]: Verlasse Verzeichnis '/usr/src/linux-2.6.26.5'
echo done > debian/stamp-kernel-conf
====== making target CONFIG-indep [new prereqs: conf.vars stamp-kernel-conf]======
This is kernel package version 11.001.
====== making target CONFIG/linux-source-2.6.26.5 [new prereqs: CONFIG-indep]======

====== making target CONFIG/linux-doc-2.6.26.5 [new prereqs: CONFIG-indep]======

====== making target CONFIG/linux-manual-2.6.26.5 [new prereqs: CONFIG-indep]======

====== making stamp-configure-indep because of  ======
====== making target configure-indep [new prereqs: stamp-configure-indep]======
====== making stamp-configure because of  ======
====== making target debian/stamp-build-kernel [new prereqs: sanity_check stamp-kernel-conf]======
This is kernel package version 11.001.
/usr/bin/make    ARCH=i386 \
	                     bzImage
make[1]: Betrete Verzeichnis '/usr/src/linux-2.6.26.5'
  CHK     include/linux/version.h
  CHK     include/linux/utsrelease.h
  CALL    scripts/checksyscalls.sh
make[2]: *** [missing-syscalls] Interrupt
make[1]: *** [prepare0] Interrupt
make: *** [debian/stamp-build-kernel] Interrupt
wie man sehn kann, nimmt er doch die module richtig entgegen,....

hab dann mit str+c den vorgang abgebrochen, an den Punkt, an den er mit compilieren anfängt...
da das nicht alles in meine konsole rein passt ;D ich net weiß , wie ich das dann hier rein kopieren soll ^^

mit freundlichen grüßen

absynth
Beiträge: 10
Registriert: 14.10.2008 16:22:19

Re: Kernel-package erstellen mit make-kpkg

Beitrag von absynth » 21.10.2008 16:01:45

Ok, nach mehreren Howtos und Forumsbeiträgen, hab ich den Befehl nun so verstanden, dass er nur zusätzlich noch ein .deb packet von den Modul erzeugt, was man dann nacher installieren kann.

Nun hab ich auch eine Fehlermeldung die mehr nach etwas aussieht:

Code: Alles auswählen


xxx@xxx:/usr/src/linux-2.6.26.5$ fakeroot make-kpkg --added_modules "/usr/src/modules/moduleordner" modules_image
exec debian/rules  DEBIAN_REVISION=1  KPKG_SELECTED_MODULES="/usr/src/modules/moduleordner"  modules_image 
for module in  ; do                       \
          if test -d  $module; then                                \
            (cd $module;                                          \
              if ./debian/rules KVERS="2.6.26.5" KSRC="/usr/src/linux-2.6.26.5" \
                             KMAINT="xxx xxx" KEMAIL="xxx@web.de"      \
                             KPKG_DEST_DIR="/usr/src/linux-2.6.26.5/.."       \
                             KPKG_MAINTAINER="xxx xxx"        \
                             KPKG_EXTRAV_ARG=""        \
                             ARCH="i386"         \
                             KDREV="1" kdist_image; then    \
                  echo "Module $module processed fine";            \
              else                                                  \
                   echo "Module $module failed.";                  \
                   if [ "X" != "X" ]; then      \
                      echo "Perhaps $module does not understand --rootcmd?";  \
                      echo "If you see messages that indicate that it is not"; \
                      echo "in fact being built as root, please file a bug ";  \
                      echo "against $module.";                     \
                   fi;                                              \
                   echo "Hit return to Continue";                   \
                 read ans;                                        \
              fi;                                                   \
             );                                                    \
          else                                                      \
               echo "Module $module does not exist";               \
               echo "Hit return to Continue?";                      \
          fi;                                                       \
        done
Dabei sind die Modul-ordner sowie die schon vorher kompilierten .ko's in den /usr/src/modules Verzeichniss.
Als Befehls Syntax hab ich schon alles erdenkliche ausprobiert, (nur den Namen des .ko, nur den Namen des Modulordners,den Pfad zur .ko,den pfad zum Modulordner) (wie man sieht immer nur mit einem Modul um etwaige Fehler die daraus resultieren auszuschließen.)

Wie man auch sieht, nimmt make-kpkg anscheinend nicht mal einen pfad für die Module an, was auch erklärt warum es die Module nicht findet.

noch irgendwelche Vorschläge was ich vielleicht falsch machen könnte?

Mit freundlichen Grüßen

Antworten