Kernelmodul fuer 2.6.18er Kernel kompiliert nicht



  • Hallo,
    ich versuche fuer einen selber gebauten 2.6.18er Kernel unter Debian folgenden Code als Modul zu kompilieren:

    #include <linux/module.h>
    #include <linux/kernel.h>
    #include <linux/init.h>
    
    static int __init hello_init(void)
    {
      printk(KERN_INFO "Hello world\n");
    
      // a non 0 return means init_module failed
      return 0;
    }
    
    static void __exit hello_cleanup(void)
    {
      printk(KERN_INFO "Goodbye world\n");
    }
    
    module_init(hello_init);
    module_exit(hello_cleanup);
    

    Makefile:

    obj-m	+= hello.o
    all:
    	make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
    default:
    	make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
    

    ich bekomme folgenden output:

    make -C /lib/modules/2.6.18vmware/build M=/home/user/programming/hello modules
    make[1]: Entering directory `/usr/src/linux-source-2.6.18'
    
      WARNING: Symbol version dump /usr/src/linux-source-2.6.18/Module.symvers
               is missing; modules will have no dependencies and modversions.
    
      Building modules, stage 2.
      MODPOST
    /bin/sh: scripts/mod/modpost: No such file or directory
    make[2]: *** [__modpost] Error 127
    make[1]: *** [modules] Error 2
    make[1]: Leaving directory `/usr/src/linux-source-2.6.18'
    make: *** [all] Error 2
    

    .config: die Module options sind eingeschaltet, es wird jedoch nicht auf Modulversion geprueft; ich habe mit make-kpkg das kernel-image und die headers gebaut und nach dem make clean auch ein make oldconfig && make prepare gemacht.

    Ich kompilier das in /user/home und glaube das es wohl "nicht der richtige Ort" fuer sowas sein koennte, aber wo dann? Kann das daran liegen?

    Wie bekomm ich das Ding kompiliert?
    Danke im voraus 🤡



  • versuchs mal vorher mit

    cd /usr/src/linux-source-2.6.18
    make scripts/mod/modpost
    

Anmelden zum Antworten