Categorie

Archivio Articoli

Categorie

Commenti recenti

[Raspberry Pi] RPi IO

[Public draft]

Connettore GPIO del Rasperry Pi (V1 model B):

 [ image from http://www.raspberrypi-spy.co.uk ]

Libreria utilizzata wiringPi

Tabella connessioni:

digitalPin GPIO pin
0 11
1 12
2 13
3 15
4 16
5 18
6 22
7 7
8 3
9 5
10 24
11 26
12 19
13 21
14 23
15 8
16 10

 

[buildroot] Impostare il desktop grafico di default

 

 

 

 

 

Editare il file1:

buildroot_folder/output/target/usr/lib/X11/xinit/xinitrc

Eventualmente modificare il file seguente e poi creare un hard link nella posizione precedente:

buildroot_folder/fs/skeleton/usr/lib/X11/xinit/xinitrc
 Commentare le righe relative a twm:
#twm &
#xclock -geometry 50x50-1+1 &
#xterm -geometry 80x50+494+51 &
#xterm -geometry 80x20+494-0 &
#exec xterm -geometry 80x66+0+0 -name login

Ed aggiungere le seguenti istruzioni:

setxkbmap it
xterm &    # se si vuole avviare una finestra di terminale all'avvio
exec fluxbox

Al posto di fluxbox si può mettere un altro DE (ad esempio Blackbox).

  1. buildroot_folder è la cartella dove abbiamo scompattato buildroot

[buildroot] Aggiungere un modulo al Kernel

 

 

 

[Public draft]

Per aggiungere un modulo personalizzato al kernel della nostro sistema operativo creato con buildroot occorre seguire alcuni passi.

1. Supponiamo di avere a disposizione il package del modulo con all'interno il sorgente .c e il Makefile con una struttura simile alla seguente:

=> mykmod-X.X.tar.bz2
   => mykmod/mykmod.c
   => mykmod/Kbuild

Posizioniamo questo file in una posizione accessibile dal web, oppure direttamente nella cartella dl/ di buildroot (preferibile).

2. Nella cartella package/ creiamo la cartella mykmod ed al suo interno creiamo due file di testo.

mykmod.mk  che conterrà:

MYKMOD_VERSION = 1.0
MYKMOD_SOURCE = mykmod-$(MYKMOD_VERSION).tar.bz2
MYKMOD_DEPENDENCIES = linux

define MYKMOD_BUILD_CMDS
$(MAKE) $(LINUX_MAKE_FLAGS) -C $(LINUX_DIR) M=$(@D) modules
endef

define MYKMOD_INSTALL_TARGET_CMDS
$(MAKE) $(LINUX_MAKE_FLAGS) -C $(LINUX_DIR) M=$(@D) modules_install
endef

$(eval $(call GENTARGETS,package,mykmod))

 

Config.in  che conterrà:

config BR2_PACKAGE_MYKMOD
    bool "mykmod"
    depends on BR2_LINUX_KERNEL
    help
      This is a kernel module

Adesso andiamo ad aggiungere il modulo al menu del configuratore, modifichiamo il file package/Config.in  aggiungendo le seguenti righe:

menu "My kernel Modules"
source "package/mykmod/Config.in"
endmenu
Dopo aver compilato buildroot:
make

il modulo si troverà nella posizione1:

buildroot_folder/output/target/lib/modules/kernel_version/extra/mykmod.ko

per caricarlo all'avvio creare uno script eseguibile nella posizione2:

buildroot_folder/output/target/etc/init.d/SXX

con il seguente contenuto:

modprobe mykmod
mknod -m 0666 /dev/mykmod c M m

Sostituendo a m e M il numero di Major e minor.

Per verificare il corretto caricamento del modulo sul sistema finale:

dmesg | tail

dovrebbe mostrare il messaggio di caricamento inserito nella funzione di init nel sorgente del modulo.

  1. buildroot_folder è la cartella dove abbiamo scompattato il pacchetto di buildroot
  2. XX è il numero d'ordine con cui lo script verrà eseguito.