Dezvoltare drivere pentru Linux: Diferență între versiuni

De la YO3ITI
Sari la navigare Sari la căutare
Linia 3: Linia 3:
Pe măsură ce le adun, o să le și structurez mai bine.
Pe măsură ce le adun, o să le și structurez mai bine.
=Dezvoltare drivere pentru Linux (Raspberry)=
=Dezvoltare drivere pentru Linux (Raspberry)=
==Pregătiri==
Mai întâi trebuie instalate header-ele pentru kernel:
Mai întâi trebuie instalate header-ele pentru kernel:
<syntaxhighlight lang="shell">
<syntaxhighlight lang="shell">
Linia 10: Linia 11:
<syntaxhighlight lang="shell">
<syntaxhighlight lang="shell">
apt get install raspberrypi-kernel-headers
apt get install raspberrypi-kernel-headers
</syntaxhighlight>
==Un fișier ''Makefile'' simplu==
<syntaxhighlight lang="c">
obj-m += hello-1.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
</syntaxhighlight>
</syntaxhighlight>
Apoi:
Apoi:

Versiunea de la data 28 iulie 2020 18:46

Aceste pagini conțin o colecție de informații necesare în special celor care doresc să programeze diverse pe Linux (sau Raspberry – fiindcă e același lucru). Am început să adun această documentație pentru dezvoltarea driverelor de care am nevoie pentru diferitele proiecte electronice pe Raspberry.

Pe măsură ce le adun, o să le și structurez mai bine.

Dezvoltare drivere pentru Linux (Raspberry)

Pregătiri

Mai întâi trebuie instalate header-ele pentru kernel:

sudo rpi-update stable

Apoi:

apt get install raspberrypi-kernel-headers

Un fișier Makefile simplu

obj-m += hello-1.o

all:
	make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

clean:
	make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

Apoi:

tom@rpi-yo3iti:~/c/drivere/Salzman/01 $ make
make -C /lib/modules/5.4.51-v7l+/build M=/home/tom/c/drivere/Salzman/01 modules
make[1]: Entering directory '/usr/src/linux-headers-5.4.51-v7l+'
  CC [M]  /home/tom/c/drivere/Salzman/01/hello-1.o
  Building modules, stage 2.
  MODPOST 1 modules
WARNING: modpost: missing MODULE_LICENSE() in /home/tom/c/drivere/Salzman/01/hello-1.o
see include/linux/module.h for more information
  CC [M]  /home/tom/c/drivere/Salzman/01/hello-1.mod.o
  LD [M]  /home/tom/c/drivere/Salzman/01/hello-1.ko
make[1]: Leaving directory '/usr/src/linux-headers-5.4.51-v7l+'