Categorie

Archivio Articoli

Categorie

Commenti recenti

[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.

Scanner Epson V200 Perfection su Linux

 

 

 

 

 

 

 

Dal sito Epson scaricare i pacchetti:

iscan-data_<versione>_<architettura>

iscan_<versione>~usb0.1.ltdl7_<architettura>

e dalla pagina relativa al V200 Perfection scaricare:

iscan-plugin-gt-f670_<versione>_<architettura>

relativi al proprio sistema ed installarli.

Installare xsane:

$ sudo apt-get install xsane

Riavviare e provare ad eseguire xsane, se si ottiene un errore relativo ad un permesso negato, aggiungere il proprio utente al gruppo scanner:

$ sudo adduser <nome_utente> scanner

e riavviare.
Se lanciando xsane si ottiene ancora un errore provare ad aggiungere il proprio utente anche al gruppo saned:

$ sudo adduser <nome_utente> saned

Una delle tante fonti trovate in rete: http://uellue.de/blog/single.php?date=1192278660

[Update 20160102] Installare avinaptic su linux (anche 64bit)

avinaptic

 

 

    

Questo articolo è stato tratto dal thread su it.comp.software.divx.
Un ringraziamento particolare a Frank Sinapsi (sviluppatore di avinaptic) e all'utente misterioso che gli ha inviato la procedura per l'installazione.

    1. Scaricare la vecchia versione di Avinaptic precompilato da qui.
    2. Scaricare le librerie libgtklibiconv, libmagic da qui, qui e da qui.
    3. Estrarre gli archivi.
    4. Posizionare le cartelle libgtk, libgmp e il file libiconv.so.2 nella cartella /usr/lib32/
    5. Creare il file /etc/ld.so.conf.d/avinaptic.conf e inserire le seguenti righe:
      /usr/lib32
      /usr/lib32/libgtk
      /usr/lib32/libgmp
    6. Dare da root il comando ldconfig:
      $ sudo ldconfig
    7. Posizionarsi nella cartella contenente l'eseguibile di avinaptic e dare questo comando per verificare che ci siano tutte le librerie necessarie:
      $ ldd avinaptic | grep not
    8. In caso compaia qualcosa tipo:
      $ nomelibreria = &gt; not found

      Provvedere ad installare la libreria mancante.

Nota: Le librerie mancanti (ad esempio la libreria libjpeg) possono essere scaricate da http://packages.ubuntu.com, quindi estrarre i pacchetti .deb come normali archivi e copiare i file delle librerie in /usr/lib32

Per comodità ho inserito tutte le librerie in un unico file zip: librerie4avinaptic

Testato su Ubuntu 10.04 32 e 64bit, su Ubuntu 11.04, su Debian 6 64bit e su LinuxMint 13 Maya 64bit
Per i sistemi a 64bit potrebbe essere necessario installare la libreria ia32-libs

$ sudo apt-get install ia32-libs

[27072011] Aggiornamento:

Sul sito ufficiale si trova anche un pacchetto di installazione .deb a 32 e 64 bit per Debian e derivate della nuova versione di avinaptic. Da una prova veloce la parte di editing sottotitoli .srt non sembra funzionare molto bene (non riconosce le codifiche che supporta la vecchia versione).

[20160102] Aggiornamento:

Dopo il commento di Timmy93 ho testato il suo script su Debian Jessie a 64 bit e sono riuscito a farlo funzionare modificando leggermente lo script per eseguirlo come root (sostanzialmente ho eliminato i sudo ed ho modificato la $HOME)
In aggiunta alle librerie già citate precedentemente ho dovuto installare le seguenti librerie a 32bit:
libjpeg62-turbo
libpng12
libsqlite3-0
libx11-6
libxau6
libxcb1
libxdmcp6
libxext6
libxi6
zlib1g

In caso di Debian potete scaricare tali librerie dal sito: https://packages.debian.org/jessie/i386/allpackages