# Drivers ALSA con genkernel

## oslinux

Ciao a tutti, scrivo sempre per il mio LiveCD con catalyst, dopo averlo terminato e provato sul mio PC virtuale, ho deciso di masterizzarlo e provarlo sul PC, il risultato è ottimo, vero è che è di una lentezza paurosa l'avvio, comunque dopo averlo avviato parte, ALSA funziona correttamente.

Cosa ho fatto allora? L'ho portato ai PC dove deve essere usato, caricamento obrobriosamente lento, parte Xorg ma l'audio non viene caricato, ALSA si lamenta della mancanza dei drivers, allora ho fatto lspci e riporto qui il risultato:

```
00:00.0 Host bridge: Intel Corporation 82845G/GL[Brookdale-G]/GE/PE DRAM Controller/Host-Hub Interface (rev 02)

00:01.0 PCI bridge: Intel Corporation 82845G/GL[Brookdale-G]/GE/PE Host-to-AGP Bridge (rev 02)

00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 02)

00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 02)

00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 02)

00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 02)

00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 82)

00:1f.0 ISA bridge: Intel Corporation 82801DB/DBL (ICH4/ICH4-L) LPC Interface Bridge (rev 02)

00:1f.1 IDE interface: Intel Corporation 82801DB (ICH4) IDE Controller (rev 02)

00:1f.3 SMBus: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 02)

00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 02)

01:00.0 VGA compatible controller: nVidia Corporation NV17 [GeForce4 MX 440] (rev a3)

02:08.0 Ethernet controller: Intel Corporation 82801DB PRO/100 VE (LOM) Ethernet Controller (rev 82)

```

Considerato il fatto che devo usare genkernel per compilare il kernel, e non posso usare menuconfig ma posso aggiungere parametri al genkernel, come posso far funzionare ALSA su (Quasi) ogni computer? (Attivare tutti i drivers)

Grazie,

Luca

EDIT: Dato che non sò nulla di genkernel, posto anche questo particolare, ho usato come .config di base la configurazione del mio computer (Stesso kernel del livecd), ma genkernel non attiva comunque molte opzioni della config? devo fare un config a parte attivando il necessario?Last edited by oslinux on Thu Mar 08, 2007 1:50 pm; edited 2 times in total

----------

## Scen

 *oslinux wrote:*   

> Considerato il fatto che devo usare genkernel per compilare il kernel, e non posso usare menucanfig 

 

Perchè "non puoi"?

```

# genkernel --help

[...]

Kernel Configuration settings

        --menuconfig            Run menuconfig after oldconfig

[...]

```

e poi abiliti come modulo tutti i driver ALSA a disposizione.

----------

## oslinux

Dico "Non posso" perché attivando --menuconfig non ottengo risultati, probabilmente perché lo script che avvia genkernel deve fare varie altre cose dopo la compilazione del kernel, come per esempio la compressione dei files o la scrittura dell'immagine, almeno credo, può anche darsi che quando ci ho provato ho scritto "--menaconfig"  :Very Happy: 

Ora riprovo, ma non si può fare senza? (Notare l'edit nel mio primo messaggio)

Ciao!

Luca

----------

## Scen

Tieni presente che genkernel è uno strumento che effettua in automatico delle operazioni che "normalmente" si possono fare a mano (ma possono risultare difficili/delicate), per cui andrà sempre a leggere un file di configurazione del kernel. Di default ne genera uno lui, con una configurazione che supporti bene o male tutto il necessario. Per cui, se la configurazione automatica non ti va bene, devi comunque generare un file di configurazione che include l'abilitazione di TUTTI i driver possibili di ALSA, e poi lo dai in pasto a genkernel.

Riguardo il tuo EDIT: se la configurazione che attualmente utilizzi con genkernel ti va bene, ma devi attivare/disattivare in modo granulare delle parti della configurazione, penso che l'unica via sia quella dell'opzione --menuconfig (che dovrebbe funzionare correttamente, se non ti appare l'interfaccia di configurazione dev'esserci qualcosa che non va, controlla di aver scritto bene il parametro oppure eventuali messaggi di errore/warning)

----------

## oslinux

Dato che in automatico lo script di catalyst (E non posso fare altrimenti) richiede di inserire un config:

```

# This option is the full path and filename to a kernel .config file that is

# used by genkernel to compile the kernel this label applies to.

# example:

```

stò facendo bene a stilarmi un .config generico, nonostante genkernel?

Thx!

Luca

----------

## djinnZ

Opzioni utili di genkernel (che puoi modificare in conf anche)

--clean attivo di default da un make clean prima

--mrproper attivo di default (dipende da clean) make mrproper

--menuconfig (non attivo di default ma attivabile in config) lancia menuconfig

etc. le puoi vedere nella doc.

cosa fa di norma:

la prima volta che lo lanci dopo un make mrproper prende un set di configurazione che secondo i devel dovrebbe (ma quando si parla di rsbac ed hardend non è detto) essere genericamente funzionante (di fatto solo usando l'initrd) e lo attiva con make oldconfig. Se la compilazione va a buon fine copia la configurazione in /etc/kernels/linx-xxx.

quando lo lanci le volte successive, sempre impostato a default, la conf non la prende dal set generico ma da quello infilato in etc/kernels. Se vuoi che ritorni a default o usi una nuova versione del kernel o vai a cancellare/spostare l'archivio in etc/kernels. Con alcune limitazioni riesce a prendere la configurazione impostata quando aggiorni ad un nuovo kernel.

Come lo si usa di norma: avvi la prima volta con --menuconfig e configuri quel che ti serve (se è il caso). Quando aggiorni libc dietlibc suspend busybox o altro che ha a che fare con l'initrd avvi semplicemente genkernel all e ti risparmi la fatica di andare a rivedere tutto visto che è in grado di aggiornare automaticamente grub e montare la boot separata in rw.

Se non usi la boot separata, grub, l'initrd e un kernel abbastanza modulare non è che serva a molto (però io lo uso lo stesso perchè sono pigro e preferisco solo un "genkernel kernel" alla sequela cd /usr/src/linux/; make menuconfig ; make bzImage etc.).

nel tuo caso specifico: cancella la vecchia conf (meglio se la salvi altrove), riparti da quella standard (con parametro --menuconfig) ed aggiungi tutti i driver alsa come moduli. L'unica cosa che sprechi è un poco di spazio ma non credo sia un problema.

molto probabile che hai scritto male il parametro o che non gli è piaciuta la forma del link /usr/src/linux.

caveat: genkernel usa delle sue specifiche versioni di udev dietlibc e busybox (diverse da quelle correnti in portage) per l'initrd, se hai problemi verifica che siano compatibili con il tuo sistema o vai a modificare il file di configurazione, che non mi sembrano molto aggiornati e di sicuro non tengono conto dei kernel ~.

----------

## oslinux

Allora, non avevo ancora letto l'ultima answer, comunque ho creato da me un full compatible .config, ma quando vado a compilare il tutto con catalyst...

 *Quote:*   

> * Gentoo Linux Genkernel; Version 3.4.6
> 
> * Running with options: --callback=PKGDIR=/tmp/kerncache/gentoo/ebuilds emerge -kqb                             sys-apps/hal --lvm2 --cachedir=/tmp/kerncache/gentoo-genkernel_cache-20070228 --no-mountboot --kerneldir=/usr/src/linux --kernel-config=/var/tmp/gentoo.config --modulespackage=/tmp/kerncache/gentoo-modules-20070228.tar.bz2 --minkernpackage=/tmp/kerncache/gentoo-kernel-initrd-20070228.tar.bz2 --kerncache=/tmp/kerncache/gentoo-kerncache-20070228.tar.bz2 all
> 
> * Linux Kernel 2.6.19-gentoo-r5 for x86...
> ...

 

Ci sono anche le opzioni del genkernel, stò impazzendo, potete aiutarmi?

(Come potete vedere non builda il kernel...)

Thx,

Luca

----------

