Pagina 1 di 1

Cambiare un modulo del kernel senza ricompilare

Inviato: mar 7 feb 2012, 21:32
da mordecai
Salve a tutti.
Vorrei sapere se è possibile cambiare un modulo del kernel, senza doverlo ricompilare.
Creare un semplice modulo e poi compilarlo inserendolo nel kernel inline, è semplice.
Il problema si pone quando il modulo che intendo cambiare appartiene già al kernel.
In tal caso il modulo buggato è hid_picolcd che si trova in /kernel/drivers/hid. Sui nuovi kernel crasha sempre, mentre sui kernel precedenti dal 2.6.35 in giù, va senza problemi.
Ergo vorrei modificare il sorgente che era presente alla versione precedente, su un kernel attuale.

È fattibile? :(

Grazie in anticipo.

Re: Cambiare un modulo del kernel senza ricompilare

Inviato: mer 8 feb 2012, 14:32
da shark1500
Purtroppo quello che vuoi fare e` molto difficile e non e` detto che funzioni (io opto piu` per il no che per il si`).

Quello che puoi fare e` trovare il bug e avvisare gli sviluppatori, cosi` non avrai piu` problemi nel futuro e nemmeno altra gente. Non e` cosi` difficile da fare, se vuoi posso scriverti qua come si fa (faccio una mini-guida).

Re: Cambiare un modulo del kernel senza ricompilare

Inviato: gio 9 feb 2012, 10:52
da 414N
Puoi prendere i sorgenti del modulo attuale, modificarli (magari cambiandogli leggermente nome) ed eseguire una out-of-tree build. Nel link si fa riferimento a Debian/Ubuntu, ma, a parte i primi apt-get vari che servono a scaricare i sorgenti del kernel (che su Slackware dovresti aver già installato, in teoria), i passi da eseguire sono gli stessi su qualsiasi versione di Linux.
Se poi il modulo dovesse funzionare come desideri, puoi anche installarlo e mettere in blacklist il driver originale.
I wrapper dei vari driver proprietari (tipo i Catalyst della AMD) fanno proprio questo per compilare il modulo per il kernel.
Tuttavia concordo anch'io con shark1500 sul fatto di avvisare gli sviluppatori del bug (magari inviando una patch che lo corregga).

Re: Cambiare un modulo del kernel senza ricompilare

Inviato: gio 9 feb 2012, 17:22
da shark1500
Il problema e` che qua stiamo parlando di un modulo interno al kernel e non esterno (come i Catalyst o altro). Il kernel e` in continua evoluzione, e dal 2.6.35 ad oggi sono cambiate una miriade di cose, e secondo me quello non solo compila, ma le modifiche da fare sono talmente tante che si fa prima a trovare il bug e risolverlo :-)