Difference between revisions of "Kernel module package guidelines (Italiano)"

From ArchWiki
Jump to: navigation, search
(creata pagina)
 
(5 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Stub}}
+
[[Category:Package development (Italiano)]]
[[Category:Package development (English)]]
+
[[Category:Kernel (Italiano)]]
[[Category:Guidelines (English)]]
+
[[en:Kernel Module Package Guidelines]]
[[Category:Kernel (English)]]
+
== Suddivisone dei pacchetti ==
  
== Package Separation ==
+
I pacchetti che contengono i moduli del kernel dovrebbero essere trattati in modo particolare, per supportare quegli utenti che posseggono più di un kernel installato su un sistema.
  
Packages that contain kernel modules should be treated specially, to support users who wish to have more than one kernel installed on a system.
+
Quando si prepara un pacchetto contenente un modulo del kernel e altri file di supporto, è bene tenerli separati.
  
When packaging software containing a kernel module and other non-module supporting files/utilities, it is important to separate the kernel modules from the supporting files.
+
=== Linee di guida ===
  
=== Guideline ===
+
Quando si prepara un pacchetto di questo tipo (prendendo come esempio  driver NVidia) la convenzione è:
  
When packaging such software (using the NVidia drivers as an example) the convention is:
+
* creare un pacchetto nvidia contenente solo i moduli compilati per il kernel vanilla;
 
+
* creare un pacchetto nvidia-utils contenente i file di supporto;
* create an nvidia package containing just the kernel modules built for the vanilla kernel
+
* assicurarsi che il pacchetto nvidia dipenda da nvidia-utils (a meno che ci sia una buona ragione per non farlo);
* create an nvidia-utils package containing the supporting files
+
* per gli altri kernel, come kernel26-mm, creare il pacchetto nvidia-mm contenente i moduli compilati per quel kernel;
* make sure nvidia depends on nvidia-utils (unless there's a good reason not to do so)
+
* assicurarsi che il pacchetto nvidia dipenda dall'attuale versione del kernel, ad esempio:
* for another kernel like kernel26-mm, create nvidia-mm containing the kernel modules built against that kernel which provides nvidia and also depends on nvidia-utils
+
* make sure nvidia depends on the current major kernel version, for example:
+
 
  depends=('kernel26>=2.6.24-2' 'kernel26<2.6.25-0' 'nvidia-utils')
 
  depends=('kernel26>=2.6.24-2' 'kernel26<2.6.25-0' 'nvidia-utils')
Note that it is 2.6.24-2, not -1 in above example - this is because there was a configuration change to important kernel subsystem that required all modules to be rebuilt. You should always change depends version in such cases, otherwise some people with out-of-sync kernel and module version will report that module is broken.
+
Nell'esempio è stato scritto 2.6.24-2, e non -1, perché c'è stato un importante cambiamento nella configurazione in un sottosistema del kernel che ha richiesto la ricompilazione di tutti i moduli. In casi come questo, bisogna sempre controllare le dipendenze, altrimenti alcune persone con versioni non aggiornate di kernel e di driver segnaleranno che quel modulo è difettoso.
  
=== Rationale ===
+
=== Funzionamento ===
  
While kernel modules built for different kernels always live in different directories and can peacefully coexist, the supporting files are expected to be found in one location. If one package contained module and supporting files, you would be unable to install the modules for more than one kernel because the supporting files in the packages would cause pacman file conflicts.
+
Mentre i moduli compilati per diverse versioni del kernel si trovano sempre in directory diverse e quindi possono tranquillamente coesistere, i file di supporto, di norma, si trovano sempre in uno stesso posto. Se un pacchetto contiene moduli e file di supporto, sarà impossibile installare un modulo per più di un kernel a causa degli stessi file di supporto presenti nei pacchetti, e questo provoca conflitti.
  
The separation of modules and accompanying files allows multiple kernel module packages to be installed for multiple kernels on the same system while sharing the supporting files among them in the expected location.
+
La separazione dei moduli e dei file di supporto permettono di installare i pacchetti per più versioni di kernel nello stesso sistema, condividendo gli stessi file di supporto che si trovano in una sola posizione.
  
== File Placement ==
+
== Posizione dei file ==
  
If a package includes a kernel module that is meant to override an existing module of the same name, such module should be placed in the <code>/lib/modules/2.6.xx-ARCH/updates</code> directory. When <code>depmod</code> is run, modules in this directory will take precedence.
+
Se un pacchetto include un modulo del kernel che è destinato a sostituire un modulo esistente con lo stesso nome, il modulo dovrebbe essere messo nella directory <code>/lib/modules/2.6.xx-ARCH/updates</code>. Quando verrà eseguito <code>depmod</code>, i moduli presenti in questa directory avranno la precedenza.

Revision as of 11:21, 13 June 2012

Suddivisone dei pacchetti

I pacchetti che contengono i moduli del kernel dovrebbero essere trattati in modo particolare, per supportare quegli utenti che posseggono più di un kernel installato su un sistema.

Quando si prepara un pacchetto contenente un modulo del kernel e altri file di supporto, è bene tenerli separati.

Linee di guida

Quando si prepara un pacchetto di questo tipo (prendendo come esempio driver NVidia) la convenzione è:

  • creare un pacchetto nvidia contenente solo i moduli compilati per il kernel vanilla;
  • creare un pacchetto nvidia-utils contenente i file di supporto;
  • assicurarsi che il pacchetto nvidia dipenda da nvidia-utils (a meno che ci sia una buona ragione per non farlo);
  • per gli altri kernel, come kernel26-mm, creare il pacchetto nvidia-mm contenente i moduli compilati per quel kernel;
  • assicurarsi che il pacchetto nvidia dipenda dall'attuale versione del kernel, ad esempio:
depends=('kernel26>=2.6.24-2' 'kernel26<2.6.25-0' 'nvidia-utils')

Nell'esempio è stato scritto 2.6.24-2, e non -1, perché c'è stato un importante cambiamento nella configurazione in un sottosistema del kernel che ha richiesto la ricompilazione di tutti i moduli. In casi come questo, bisogna sempre controllare le dipendenze, altrimenti alcune persone con versioni non aggiornate di kernel e di driver segnaleranno che quel modulo è difettoso.

Funzionamento

Mentre i moduli compilati per diverse versioni del kernel si trovano sempre in directory diverse e quindi possono tranquillamente coesistere, i file di supporto, di norma, si trovano sempre in uno stesso posto. Se un pacchetto contiene moduli e file di supporto, sarà impossibile installare un modulo per più di un kernel a causa degli stessi file di supporto presenti nei pacchetti, e questo provoca conflitti.

La separazione dei moduli e dei file di supporto permettono di installare i pacchetti per più versioni di kernel nello stesso sistema, condividendo gli stessi file di supporto che si trovano in una sola posizione.

Posizione dei file

Se un pacchetto include un modulo del kernel che è destinato a sostituire un modulo esistente con lo stesso nome, il modulo dovrebbe essere messo nella directory /lib/modules/2.6.xx-ARCH/updates. Quando verrà eseguito depmod, i moduli presenti in questa directory avranno la precedenza.