# Ancora udev al boot

## Lestaat

Riposto un problema riguardante udev perchè il 3d in cui se parla ha il tag risolto (non era un mio post) e qnche se lo riuppo nessuno lo legge (giustamente).

Ho il seguente messaggio al boot

```
* The gentoo Linux system initialization script have detect that

* your system does not support DEVFS or UDEV. Since Gentoo Linux

* has been designed whit these dynamic /dev managers in mind, it is

* highly suggested that you build support for it into your kernel.

* please read the gentoo Handbook for more information! 
```

Nel kernel è tutto attivo, udev è stato emerso e compilato, nel BL ho l'opzione 

```
gentoo=nodevfs
```

ma continua ad apparirmi tale messaggio.

Ho seguito tutti i 3d a proposito di udev ma non ne sono venuto fuori. Mi date una manina?

Grazie

----------

## bender86

Prova in /etc/conf.d/rc alla voce RC_DEVICES

----------

## Lestaat

ahime

```
RC_DEVICES="udev"
```

----------

## Lestaat

Ehm....ehm...

----------

## fabius

Se leggi lo script /sbin/rc capisci perché ti mostra quel messaggio. Prova a dare 

```
cat /proc/cmdline
```

Comunque visto che vuoi usare udev elimina devfs dal kernel (anzi mi pare che dalla 2.6.13 non ci sia più, così ti porti avanti   :Wink: )

----------

## Lestaat

Allora, io so il perchè non me lo carica ma non capisco il perchè.

-Il supporto nel kernel c'è

-Devfs l'ho levato dal kernel e ho messo anche gentoo=nodevfs

-udev l'ho emerso

-nei file di conf ho specificato ovunque di usare udev

-ho cancellato tutti i file .devfs che avevo nel sistema

-cat /proc/cmdline mi da

```
root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/hdb3 splash=verbose,theme:emergence video=vesafb:ywrap,mtrr,1024x768-32@70 gentoo=nodevfs CONSOLE=/dev/tty1
```

che è esattamente quello che ho nel boot loader

dove diamine è il problema!?!?!?!?!?

sob...sempre più triste

ah...dimenticavo, grazie fabius

----------

## fabius

Ma hai installato ancora devfsd? Puoi rimuovere pure quello dato che nel kernel hai rimosso il supporto a udev. Poi puoi togliere l'opzione nodevfs dal boot loader. Se guardi lo script /sbin/rc troverai la sezione

```
     if [ "${devfs}" = "no" ] && [ "${udev}" = "no" ]

      then

         clear

         echo

         einfo "The Gentoo Linux system initialization scripts have detected that"

         einfo "your system does not support DEVFS or UDEV.  Since Gentoo Linux"

         einfo "has been designed with these dynamic /dev managers in mind, it is"

         einfo "highly suggested that you build support for it into your kernel."

         einfo "Please read the Gentoo Handbook for more information!"

         echo

         einfo "    http://www.gentoo.org/doc/en/handbook/"

         echo

         einfo "Thanks for using Gentoo! :)"

         echo

         read -t 15 -p "(hit Enter to continue or wait 15 seconds ...)"

      fi

```

Affinché compaia il messaggio di errore del tuo primo post le variabili $udev e $devfs devono essere entrambe poste a "no".

Risalendo in alto con il codice troverai

```

      case "${RC_DEVICES}" in

         devfs)   devfs="yes"

               udev="no"

               ;;

         udev) devfs="yes"

               udev="yes"

               fellback_to_devfs="yes"

               ;;

         auto|*)  devfs="yes"

               udev="yes"

               ;;

      esac

      # Check udev prerequisites and kernel params

      if [ "${udev}" = "yes" ]

      then

         if get_bootparam "noudev" || \

            [ ! -x /sbin/udev -o -e "/dev/.devfsd" ] || \

            [ "$(get_KV)" -lt "$(KV_to_int '2.6.0')" ]

         then

            udev="no"

         fi

      fi

      # Check devfs prerequisites and kernel params

      if [ "${devfs}" = "yes" ]

      then

         if get_bootparam "nodevfs" || [ "${udev}" = "yes" ]

         then

            devfs="no"

         fi

      fi

```

Dato che hai passato nodevfs al boot avrai $devfs="no". Dato che tu hai settato RC_DEVICES="udev" $udev è inizialmente uguale a "yes". Viene messa a "no" (nell'ordine) se:

al bootloader passi noudev/sbin/udev non esiste o non è eseguibileesiste /dev/.devfsdhai un kernel più vechio del 2.6.0

----------

## Lestaat

Allora,

per il momento ho risolto in modo barbaro editando lo script /sbin/rc ma ovviamente vorrei scoprire perchè diamine accade.

Inserendo vari echo all'interno dello script ho scoperto che le variabili vengono settate correttamente sia con l'opzione nodevfs che senza.

Cioè

udev=yes

devfs=no

il problema è che appena più sotto la parte di codice che dici c'è un altro if che verificato mi risetta udev=no

l'if è questo

```

if get_bootparam "noudev" || \

                           [ ! -x /sbin/udev -o -e "/dev/.devfsd" ] || \

                           [ "$(get_KV)" -lt "$(KV_to_int '2.6.0')" ]
```

scomponendolo ho notato che la condizione che viene verificata è:

```
 [ ! -x /sbin/udev -o -e "/dev/.devfsd" ]
```

sembra quindi che trovi un /dev/.devfsd.

Ovviamente è un file protetto e non posso cancellarlo, se provo con il live CD il file non c'è (come mi aspettavo).

La mia domanda a questo punto è:

chi lo crea?

devfs no perchè non è più istallato sul sistema e perchè cmq a quel punto dello script non sarebbe ancora stato avviato quindi immagino che venga creato direttamente dal kernel o da qualche modulo del kernel.

Forse non ho eliminato tutti i riferimenti a devfs dalla configurazione del kernel?

qualche idea?

----------

## Cazzantonio

Se hai eliminato dal kernel la voce

File systems  --->

Pseudo filesystems  --->

/dev file system support (OBSOLETE)

hai eliminato tutto quello che devi togliere dal kernel....

sei sicuro di aver disinstallato sys-fs/devfsd (anche se non dovrebbe darti problemi)

che versione hai di udev?

Mi sembra parecchio strano il tuo problema perché udev dovrebbe funzionare alla prima... hai seguito la guida gentoo?

----------

## Lestaat

Quell'opzione l'ho eliminata.

Devfsd è:

```
* sys-fs/devfsd

     Available versions:  1.3.25-r8 ~1.3.25-r9

     Installed:           none

     Homepage:            http://www.atnf.csiro.au/~rgooch/linux/

     Description:         Daemon for the Linux Device Filesystem

```

Udev:

```
* sys-fs/udev

     Available versions:  030 045 056 058 059 060 062 063 064 064-r1 065 066 067 068 068-r1 069 070

     Installed:           070

     Homepage:            http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html

     Description:         Linux dynamic and persistent device naming support (aka userspace devfs)
```

lo so che è strano

 :Razz: 

Per ora ho modificato lo script /sbin/rc impostando a yes udev anche dopo quell'if.

E funziona perfettamente.

Ovviamente non trovo nessun file .devfsd in giro per il sistema ora.

Chettedevodi?

STRALOL

----------

## Onip

ma quella versione non è masked? forse è quello il motivo... Io ho syncato ieri e ho 

```
* sys-fs/udev

     Available versions:  030 045 056 058 ~059 ~060 ~062 ~063 ~064 ~064-r1 ~065 ~066 ~067 068 068-r1 ~069 ~070

     Installed:           068-r1

     Homepage:            http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html

     Description:         Linux dynamic and persistent device naming support (aka userspace devfs)
```

----------

## Lestaat

si è masked perchè è l'ultima prova che ho fatto  :Razz: 

non funzionava con la 68r1 e ho provato la 70...

mentre postavo stavo downgradando infatti

----------

## comio

 *Lestaat wrote:*   

> 
> 
> Ovviamente è un file protetto e non posso cancellarlo, se provo con il live CD il file non c'è (come mi aspettavo).
> 
> La mia domanda a questo punto è:
> ...

 

potresti controlloare il kernel? mi sa che hai linkato staticamente il supporto per devfs. Quel supporto deve essere _deselezionato_.

ciao

----------

## Lestaat

ehm....e dove sarebbe?

non lo trovo, mi sono scorso tutte le opzioni e ho cercato direttamente nel file .config!

----------

## fabius

Controlla di aver messo

```
RC_DEVICE_TARBALL="no"
```

----------

## Lestaat

 *fabius wrote:*   

> Controlla di aver messo
> 
> ```
> RC_DEVICE_TARBALL="no"
> ```
> ...

 

sisi già fatto

----------

## fabius

 *Lestaat wrote:*   

> ehm....e dove sarebbe?

 

```
gzcat /proc/config.gz | grep DEVFS
```

o

```
grep DEVFS /usr/src/linux/.config
```

----------

## Lestaat

 *fabius wrote:*   

>  *Lestaat wrote:*   ehm....e dove sarebbe? 
> 
> ```
> gzcat /proc/config.gz | grep DEVFS
> ```
> ...

 

```
gzcat /proc/config.gz | grep DEVFS

CONFIG_DEVFS_FS=y

# CONFIG_DEVFS_MOUNT is not set

# CONFIG_DEVFS_DEBUG is not set

```

:/

----------

## fabius

 *Lestaat wrote:*   

> CONFIG_DEVFS_FS=y

 

Questo non deve essere settato! Nelle opzioni del kernel disabilita "File systems -> Pseudo file systems -> /dev file system support" e ricompila

----------

## Cazzantonio

Allora riassumendo il tuo problema Ã¨ che hai un file /dev/.devfsd che viene creato all'avvio (presumo)

Hai provato a vedere se nei file di conf di udev in /etc/udev c'Ã¨ qualche riferimento a questo file?

----------

## Lestaat

 *Cazzantonio wrote:*   

> Allora riassumendo il tuo problema Ã¨ che hai un file /dev/.devfsd che viene creato all'avvio (presumo)
> 
> Hai provato a vedere se nei file di conf di udev in /etc/udev c'Ã¨ qualche riferimento a questo file?

 

nei file di conf di udev non ci sono riferimenti a quel file.

l'unica possibilità è che lo crei direttamente il modulo che è nel kernel perchè avviando con il livecd il file non c'è e il file c'è immediatamente al "Booting...". Quando appare quel messaggio va in esecuzione il file che ho modificato e se come primo comando do un rm /dev/.devfsd mi dice "Operation not permitted", quindi il file c'è già.

la cosa bizzarra è che ora che ho aggirato quell'if in /sbin/rc il file è sparito, come se all'avvio di udev venisse cancellato.

Non ho ancora provato a togliere il workaround e vedere cosa succede ora...mo ricompilo il kernel e provo.

----------

## randomaze

 *Lestaat wrote:*   

> Quando appare quel messaggio va in esecuzione il file che ho modificato e se come primo comando do un rm /dev/.devfsd mi dice "Operation not permitted", quindi il file c'è già.

 

"Operation not permitted" non significa che sicuramente il file giá esiste.

se usassi:

```
[ - f /dev/.devfsd ] && rm /dev/.devfsd
```

 sarebbe un discorso un poco piú certo.

Domanda (scema): devfsd non é piú tra i servizi che vengono caricati all'avvio, vero?

----------

## Lestaat

 *randomaze wrote:*   

>  *Lestaat wrote:*   Quando appare quel messaggio va in esecuzione il file che ho modificato e se come primo comando do un rm /dev/.devfsd mi dice "Operation not permitted", quindi il file c'è già. 
> 
> "Operation not permitted" non significa che sicuramente il file giá esiste.
> 
> se usassi:
> ...

 

LOL

no.

E cmq conferm che il file c'è!

----------

## fabius

Visto che non l'hai detto, hai poi ricompilato il kernel togliendo il supporto a devfs?

----------

## Lestaat

 *fabius wrote:*   

> Visto che non l'hai detto, hai poi ricompilato il kernel togliendo il supporto a devfs?

 

si anche se era già stato tolto, l'ho rifatto di nuovo e nulla è cambiato.

----------

## fabius

 *Lestaat wrote:*   

> si anche se era già stato tolto, l'ho rifatto di nuovo e nulla è cambiato.

 

Dal risultato di grep che hai postato non era stato tolto  :Confused: 

----------

## comio

sicuro di installare il kernel in /boot (che va montata?)

inizio ad avere dubbi. Il grep (come già fatto notare) dice che DEVFS è compilato. Quindi, giusto per ribadire cose note, la sequenza che devi dare è:

```

# mount /boot

# cd /usr/src/linux

# make menuconfig # ... andando a levare il devfs e configurando il tutto

# make

# make install modules_install

```

Assicurati inoltre che grub (o chi per esso) punti al kernel giusto.

Ho solo ribadito questi passi, dato che è capitato in passato lo stesso errore... ed il problema era un mancato mount di /boot. Sono sempre dell'idea che bisogna pensare di poter aver sbagliato qualsiasi cosa (anche le più banali). Molti errori sono semplici distrazioni o pratics non proprio corrette.

ciao

----------

## Lestaat

 *comio wrote:*   

> sicuro di installare il kernel in /boot (che va montata?)
> 
> inizio ad avere dubbi. Il grep (come già fatto notare) dice che DEVFS è compilato. Quindi, giusto per ribadire cose note, la sequenza che devi dare è:
> 
> ```
> ...

 

 :Smile: 

è colpa mia se non ci siamo capiti, avendo usato genkernel avevo fatto il grep sul file sbagliato  :Smile: 

devfs è stato eliminato dal kernel.

Un idea, ora non più ma prima vedevo una scritta durante il boot che suonava tipo "searching devfs config in some device".....

non è esattamente quello ma il senso è quello....

Ho disattivato la letture sul tarball nelle configurazioni ma non è che per caso lui va cmq a cercarsi sto diamine di file salvato da qualche parte?

nel qual caso come mai non lo trovo col find?

dove potrebbe essere?

----------

