# USB and PCI hotplugging: freeze!

## cn73

Ho provato ad inserire in uno slot PCI una scheda  TV che avevo messo via perchè nopn supportata  da winnoz, avendo tyrovato i driver, anche recenti per linux... Però al boot, si blocca sul suo riconoscimento...ho provato anche a cambiare slot, ma non c'è nulla da fare? Sugegrimenti? Nel BIOS l'inmpostazione OS pnp è settata su no. La scheda funziona, windows sulla stessa macchina me la riconosce anche se poi non ho i drivers...

----------

## MyZelF

Che kernel utilizzi? Che tipo di scheda è (modello, tipo di bus)? Usi ACPI? Provato un bel boot da knoppix?

----------

## cerri

Metti cmq PNP su YES.

----------

## cn73

Kernel vanilla sources, scheda PCI TV-Radio con chip bt848 e qualcosa, ACPI attivato.

Provato anche Pnp OS su YES, ma nada  :Sad: 

----------

## MyZelF

Prova a bootare disabilitando l'ACPI e/o a cambiare lo slot in cui si trova la scheda. Prova anche senza hotplug, se lo usi. Knoppix e/o il CD 1 di gentoo riescono a completare il boot?

----------

## cn73

Per disabilitare l'ACPI intendi da bios o aggiungendo la relativa riga in lilo.conf?

DI cambiare slot ci ho subito pensato, ma non è servito...

Il boot col cd di gentoo lo provo stasera...

----------

## MyZelF

 *cn73 wrote:*   

> Per disabilitare l'ACPI intendi da bios o aggiungendo la relativa riga in lilo.conf?
> 
> 

 

Intendevo passando "acpi=off" al kernel (non è strettamente necessario farlo attraverso lilo.conf).

 *cn73 wrote:*   

> 
> 
> Il boot col cd di gentoo lo provo stasera...

 

Come ti dicevo sopra, prova anche disabilitando hotplug:

```
# rc-update del hotplug default
```

----------

## cn73

ok grazie...approfitto della tua disponibilità per chiederti una cosa... quando si freeza, l'unica sembra un reset di brutto...non corro rischi col file system? (Reiserfs). Ieri mi ha fatto prendere un coccolone quando sembrava non riuscire a montare la partizione di root, solo un riavvio mi ha miracolosamente salvato...

----------

## MyZelF

 *cn73 wrote:*   

> quando si freeza, l'unica sembra un reset di brutto...non corro rischi col file system? (Reiserfs).

 

Non è mai piacevole un reset brutale di una macchina. Confida nella bontà del journaling di Reiser.  :Smile: 

Potrebbe essere di qualche aiuto montare il filesystem in modalità sincrona (tramite l'opzione "sync" di mount) mentre fai queste prove a "rischio freeze", ma temo che questa modalità non sia prevista da reiserfs.

Altrimenti, visto che sei a case aperto, scollega l'harddisk e prova prima con un live CD di knoppix o gentoo.

EDIT:

Oppure ancora: ricompila il kernel abilitando in kernel hacking

```
[*]   Magic SysRq key (NEW)
```

e vedi se con queste combinazioni di tasti riesci a riavviare il pc o fare il flush della cache su disco quando è bloccato.

Trovi i dettagli tra i sorgenti del kernel, in Documentation/sysrq.txt

----------

## cn73

Allora...effettivamente evitando di far girare gli script di hotplug la scheda viene riconosciuta...ho aggiornato hotplug all'ultima versione, vediamo se riesce a riconoscere questa scheda...

----------

## MyZelF

 *cn73 wrote:*   

> Allora...effettivamente evitando di far girare gli script di hotplug la scheda viene riconosciuta...ho aggiornato hotplug all'ultima versione, vediamo se riesce a riconoscere questa scheda...

 

Se non dovesse comunque funzionare, puoi escludere il caricamento automatico di un modulo da parte di hotplug inserendolo in /etc/hotplug/blacklist.

----------

## cn73

mmm fammi capire...io non avevo ancora installato il modulo relativo alla periferica...significa che se non c'è un modulo adatto hotplug impazzisce?? Non credo...dovrebbe evitare il caricamento no?

Nel README dei driver viene indicato come necessario il supporto:

You'll need at least these config options for bttv:

CONFIG_I2C=m

CONFIG_I2C_ALGOBIT=m

CONFIG_VIDEO_DEV=m

nel mio kernel non è settato CONFIG_I2C_ALGOBIT

Potrebbe dipendere da questo? (Tu dirai...prova!  :Very Happy:  lo so, era per ragionarci... )

----------

## MyZelF

Intendevo dire che se scopri che il sistema freeza perchè hotplug tenta di caricare un modulo sbagliato, o il modulo giusto con parametri errati, puoi prevenirne l'auto-caricamento.

Oltre a v4l e i2c, dovresti avere bisogno anche di bttv per far funzionare la scheda. Tutto quello che serve è gia nei sorgenti del kernel.

Cerca sul forum: dovresti trovare diversi post a riguardo.

----------

## klaudyo

Mi intrufolo nel topic perchè anche io ho avuto dei problemi con hotplug e acpi. In particolare togliendo acpi (con pci=noacpi) hotplug funziona (ho indicato inoltre nella mia blacklist il modulo 8139cp che conflittava: devo usare 8139too) , altrimenti no (freez)! Inoltre senza acpi funziona anche la scheda di rete..... insomma acpi mi fa davvero un bel macello.

Per quanto riguarda il reiserfs, bè, proprio per colpa del freez di hotplug al successivo riavvio (dopo il brusco reboot) il filesystem era mezzo andato!!!!   :Shocked: 

Ho dovuto reinstallare la Gentoo (tra l'altro quella era la prima installazione di Gentoo che facevo: che incoraggiamento!). Ho deciso di utilizzare un ben più solido ext3 con journaling.

PS cmq hotplug ho deciso alla fine di non usarlo: è lentissimo in fase di boot e per quello che mi serve......

----------

## cn73

Ho attivato come modulo

Multimedia Devices -> Video For Linux -> BT848 Video For Linux

ma non trovo nessun modulo.o , solo dei .h   :Confused: 

opss... forse intendi che il driver relativo  è bttv.o ?

----------

## MyZelF

 *klaudyo wrote:*   

> Mi intrufolo nel topic perchè anche io ho avuto dei problemi con hotplug e acpi. In particolare togliendo acpi (con pci=noacpi) hotplug funziona (ho indicato inoltre nella mia blacklist il modulo 8139cp che conflittava: devo usare 8139too) , altrimenti no (freez)! Inoltre senza acpi funziona anche la scheda di rete..... insomma acpi mi fa davvero un bel macello.

 

Ho avuto anch'io a che fare con questo problema e, come raccontavo in un altro topic, ho risolto passando al 2.6 (era il pc di un amico, non il mio). Giusto questa sera, però, ho letto sui forum inglesi che anche i kernel >=2.4.23 dovrebbero risolvere. Appena ho un po' di tempo vedrò di provare.

Non sono comunque sicuro che si tratti dello stesso problema di cn73, visto che nel suo caso il sistema si blocca solo quando è presente la scheda tv.

 *klaudyo wrote:*   

> 
> 
> Ho deciso di utilizzare un ben più solido ext3 con journaling.
> 
> 

 

Beh... anche reiser si occupa del journaling dei metadati, però come si dice... quando la sfiga capita...  :Smile: 

----------

## MyZelF

 *cn73 wrote:*   

> opss... forse intendi che il driver relativo  è bttv.o ?

 

Esatto. Attenzione che quasi mai rileva automaticamente e/o correttamente il tipo di scheda, per cui devi passargli parametri appropriati.

Dai un'occhiata qui o cerca sul forum. Quando tenti di caricarlo controlla anche log e dmesg.

----------

## cn73

Grazie, ieri sera ero a pezzi e ho spento il pc... questa sera continuerò coi miei esperimenti... 

i moduli da caricare, a quanto ho capito saranno questi:

```

i2c-core 

i2c-algo-bit 

bttv 

```

Na sola cosa non mi è chiara...dalle ricerche viene fuori che sarebbe meglio carivare il modulo bttv con l'opzione card=xx ... quel xx cosa rappresenta?

----------

## MyZelF

 *cn73 wrote:*   

> Na sola cosa non mi è chiara...dalle ricerche viene fuori che sarebbe meglio carivare il modulo bttv con l'opzione card=xx ... quel xx cosa rappresenta?

 

Dai un'occhiata a: /usr/src/linux/Documentation/video4linux/bttv/CARDLIST

----------

## cn73

Grazie per l'ennesima volta...stasera spero di avere un po' di tempo per smanettare  :Wink: 

----------

## cn73

La scheda viene riconosciuta con l'opzione pci=offacpi

Proseguo nel topic da te indicatomi per i problemi annessi.

Una cosa sola... hotplug mi carica il modulo bttv senza opzioni...io lo vorrei caricare con card=14 visto che la mia scheda è supportata...come posso fare? Gli evito di caricarmi il modulo e poi lo carico al boot?

----------

## albazeus

 *Quote:*   

> Una cosa sola... hotplug mi carica il modulo bttv senza opzioni...io lo vorrei caricare con card=14 visto che la mia scheda è supportata...come posso fare? Gli evito di caricarmi il modulo e poi lo carico al boot?

 

vai in /etc/modules.d/, crei un file (ad es lo chiami bttv) e scrivi le opzioni che vuoi.

options <nome_modulo> opzioni

Guarda gli altri files per capire meglio

----------

## MyZelF

 *cn73 wrote:*   

> Una cosa sola... hotplug mi carica il modulo bttv senza opzioni...io lo vorrei caricare con card=14 visto che la mia scheda è supportata...come posso fare? Gli evito di caricarmi il modulo e poi lo carico al boot?

 

Metti

```
bttv card=14
```

in /etc/modules.autoload

----------

## cn73

 *MyZelF wrote:*   

>  *cn73 wrote:*   Una cosa sola... hotplug mi carica il modulo bttv senza opzioni...io lo vorrei caricare con card=14 visto che la mia scheda è supportata...come posso fare? Gli evito di caricarmi il modulo e poi lo carico al boot? 
> 
> Metti
> 
> ```
> ...

 

Questo perchè l'autoload viene processato prima dell'avvio di hotplug vero? Devo aggiungere una voce nella blacklist di hotplug per evitare un doppio tentativo di caricamento?

----------

## MyZelF

 *cn73 wrote:*   

> Questo perchè l'autoload viene processato prima dell'avvio di hotplug vero?
> 
> 

 

Esatto.

 *cn73 wrote:*   

> 
> 
> Devo aggiungere una voce nella blacklist di hotplug per evitare un doppio tentativo di caricamento?

 

Sinceramente non mi ero mai posto il problema (non uso hotplug sulla macchina dove ho la scheda tv). Comunque ho provato ad attivarlo e non mi sembra dia problemi.

Ma con ACPI abilitato e hotplug disabilitato la scheda ti funziona? Che versione del kernel stai utilizzando?

----------

## cn73

Si mi funziona...per usare hotplug devo avviare il kernel (vanilla 2.4.22) con l'opzione "pci=acpioff"

Probabilmente è questione di IRQ condivisi...magari cambiando slot (ne ho provati solo 2) sarebbe partito...

----------

