I3CPAC+-+Exercise+4

=EXERCISE 4 - KERNEL MODULES=

Øvelse 1 - Lav dit første kernemodul
Vi lod os kraftigt inspirere af dagens powerpoint præsentation samt Linux Device Drivers Kapitel 2, side 16-17. ==
 * //a) Skriv ”hello_world” programmet: Lad dig inspirere kraftigt af kapitlet i ”Linux Device Drivers”//**

Vi brugte igen powerpoint repræsentation, samt kapitel 2 i Linux Device Drivers, side 24-25. code /home/stud/work/courses/cpac/hello_world/scp hello.ko root@10.9.8.2: code Vi benyttede den ovenstående kommando til at overføre vores fil til target. Herefter blev derundersøgt om hvorvidt filen var på target.
 * //b) Skriv en Makefile: Se slides igennem og kapitlet i bogen, bemærk at linierne med $(MAKE) SKAL begynde med en tab !!!//**
 * //c) Kompilér programmet og kopiér det til target vha scp (dvs du skal bruge USB kablet).//** **//For at læse kerne beskeder, altså de som bliver outputtet med ”printk”, kan du benytte ”dmesg” kommandoen på target. Evt kan du åbne en ny terminal.//**

Følgende kommando benyttes: root@DevKit8000:~# insmod hello.ko root@DevKit8000:~#dmesg
 * //d) Indsæt modulet i kernen (insmod) og check med dmesg at det lykkedes.//**

Efter sidste kommando får vi en masse udskrifter ud, men den sidste står der Hello World.

Følgende kommandoer benyttes: root@DevKit8000:~# rmmod hello.ko root@DevKit8000:~#dmesg
 * //e) Tag modulet ud igen (rmmod) og se at det også lykkedes.//**

Efter sidste kommando stod der nu både Hello World, men den sidste linje indeholdte nu Goodbye Cruel World.

Øvelse 2 - Få lysdioden fra sidste øvelse til at lyse
Vi indsatte koden ind i vores init og exit funktioner. Men vi skulle sikre at LED3 tændte når vi indsatte modullet i kernen, og LED3 slukkede når vi fjernede modulet. Det blev gjort med følgende kode:

Vi undersøgte naturligvis om vores kode virket, ved at overføre vores modul til target og indsætte og fjerne det var kernen.
 * Init Funktion:**
 * Exit Funktion:**

Step 3: Få en lysdiode til at lyse vha fil operationer
Opgaven gik ud på at få en LED til at slukke og tænde ved en applikation. Der blev meget enkelt brugt fileprocessing, behøver vist ikke yderligere forklaring.