Kernel modules: raspicommrs485 - hi-im-milan/eurobot2k15 GitHub Wiki

raspicommrs485

za bildovanje ovog modula potrebno je imati iskompajliran kernel.

kompajliranje kernelna:

potrebno je:

  • skinuti [kernel] (https://github.com/raspberrypi/linux/tree/rpi-3.6.y)

  • imati odgovarajuci kompajler ( koji koiristimo i za bildovanje boost-a i app-a )

  • imati raspberry pi sa raspbianom 3.6.11++

  • ocistiti build direktorijum

     `cd /path/to/kernel/source`     
     `make mrproper`
    
  • kopirate sa raspberry pi config.gz raspakovati i kopirati u kernel source

    `export KERNEL_SRC=/path/to/kernel/source`      
    `scp [email protected]:/proc/config.gz /negde/na/linux/`  (bolje ne u source jer ako budete radili ponovo mkproper izbrisace se config.gz file)       
    `zcat config.gz > .config`      
    `mv .config $KERNEL_SRC`      
    
  • podesavanje kernel configa kopiranom config.gz-u

    `export RPI_TOOLS_C=/path/to/compiler/binary/prefix-of-binary-` (path to compiler binary treba da se zavrsava sa - ne sa gcc ili g++ )      
    `make ARCH=arm CROSS_COMPILE=${RPI_TOOLS_C} oldconfig`     
    
  • kompaliranje kernela
    make ARCH=arm CROSS_COMPILE=${RPI_TOOLS_C}

  • kompajliranje modula
    make ARCH=arm CROSS_COMPILE=${CCPREFIX} modules

kompajliranje kernel modula

  • makefile kreirati Makefile u source direktorijumu modula i u njega kopirati ( bice upload-ovan ali da ima i ovde )

    obj-m += raspicommrs485.o
    raspicommrs485-objs := module.o queue.o

    all:
    make ARCH=arm CROSS_COMPILE=${CCPREFIX} -C ${KERNEL_SRC} M=$(PWD) modules
    clean:
    make -C ${KERNEL_SRC} M=$(PWD) clean

  • kopajliranje

    make

Insmodovanje

  • prebaciti kernel modul u raspberry pi (raspicommrs485.ko) i insmodovati

    spc raspicommrs485.ko [email protected]:/somewhere

    ssh [email protected]

    cd /somewhere

    insmod raspicommrs485.ko

  • proveriti da li je insmodovanje proslo kako treba

    dmesg

ako jeste trebalo bi da ispise raspicommrs485

i proveriti da li je generisan file tj da li postoji u sistemu /dev/ttyRPC

Pokretanje kernel modula pri boot-ovanju sistema

  • prekopiratti kernel modul u kernel

    cp raspicommrs485 /lib/modules/$(uname -r)

  • dodati ga u /etc/modules

    nano /etc/modules

    ...
    raspicommrs485
    ...

  • pokrenuti depmod i modprobe

    depmod -a

    modprobe raspicommrs485