Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

"Numérotation" des disques SCSI sous FreeBSD 5.2.1

7 réponses
Avatar
MaXX
Bonjour a tous,

je me pose la question suivante: ma machine FreeBSD utilise un disque SCSI
pour booter (da0), lorsque je connecte une clé USB "à chaud", umass lui
donne pour nom de disque da2 par exemple.
Si je redemarre le PC avec la clé branchée, umass semble se lancer avant la
carte SCSI (Adaptec 2930), et attribue comme nom da0 à ma clé... Plutôt
gênant pour amorcer la becanne.

Y a-t-il un moyen de dire à umass de démarrer plus tard??? J'ai bien essayé
la procedure décrite dans les docs pour fixer le disque root en modifiant
le kernel (http://www.freebsd.org/doc/fr_FR.ISO8859-1/articles/zip-drive
article.html) mais sans succès. J'obtiens l'erreur suivante:
config: /usr/src/sys/i386/conf/AKIRA:108: devices with zero units are not
likely to be correct
*** Error code 1

Je présume que cette procédure est obsolète pour FreeBSD 5.2.1...
Si quelqu'un a l'URL du document à jour, ça m'aiderais...
Merci d'avance...

--
MaXX

7 réponses

Avatar
F. Senault

Y a-t-il un moyen de dire à umass de démarrer plus tard??? J'ai bien essayé
la procedure décrite dans les docs pour fixer le disque root en modifiant
le kernel (http://www.freebsd.org/doc/fr_FR.ISO8859-1/articles/zip-drive
article.html) mais sans succès. J'obtiens l'erreur suivante:
config: /usr/src/sys/i386/conf/AKIRA:108: devices with zero units are not
likely to be correct
*** Error code 1


Dans la page plus haut, je lis ça :

| Vous aurez probablement à changer la cible afin de la faire correspondre à
| l'ID SCSI de votre disque dur. Vous devrez aussi forcer l'entrée scbus0
| afin de l'ajuster à votre contrôleur. Par exemple, si vous avez un
| contrôleur 15xx de chez Adaptec, vous changerez
| controller scbus0
| en
| controller scbus0 at aha0

As-tu fait ça ? En particulier le premier point ? (camcontrol devlist
devrait te donner les infos qui vont bien.)

Fred
--
Je regarde le bleu profond se voiler
Parfois, un point lumineux se charge de me rappeler
Que je ne suis pas ici pour paresser
Et que quelque part on a besoin de moi pour aider (Merzhin, Par delà)

Avatar
MaXX
F. Senault wrote:


Y a-t-il un moyen de dire à umass de démarrer plus tard??? J'ai bien
essayé la procedure décrite dans les docs pour fixer le disque root en
modifiant le kernel
(http://www.freebsd.org/doc/fr_FR.ISO8859-1/articles/zip-drive
article.html) mais sans succès. J'obtiens l'erreur suivante: config:
/usr/src/sys/i386/conf/AKIRA:108: devices with zero units are not likely
to be correct *** Error code 1


Dans la page plus haut, je lis ça :

| Vous aurez probablement à changer la cible afin de la faire correspondre
| à
| l'ID SCSI de votre disque dur. Vous devrez aussi forcer l'entrée scbus0
| afin de l'ajuster à votre contrôleur. Par exemple, si vous avez un
| contrôleur 15xx de chez Adaptec, vous changerez
| controller scbus0
| en
| controller scbus0 at aha0

As-tu fait ça ? En particulier le premier point ? (camcontrol devlist
devrait te donner les infos qui vont bien.)

Fred
Merci de ta réponse,


Suivant tes conseils, j'ai lancé camcontrol devlist:
<COMPAQ HD0093172C 3207> at scbus0 target 5 lun 0 (pass0,da0)
<IBM DDRS-34560 S97B> at scbus0 target 6 lun 0 (pass1,da1)

j'avais oublié, mais j'ai ajouté "controller scbus0 at ahc0" et voilà ce que
ça donne:
config: AKIRA:109: syntax error.

Voici la partie de la config kernel relative au SCSI en générale:
---------snip---------
# SCSI Controllers
device ahc # AHA2940 and onboard AIC7xxx devices
device adv # Advansys SCSI adapters
device adw # Advansys wide SCSI adapters
# SCSI peripherals
device scbus # SCSI bus (required for SCSI)
device ch # SCSI media changers
device da # Direct Access (disks)
device sa # Sequential Access (tape etc)
device cd # CD
device pass # Passthrough device (direct SCSI access)
device ses # SCSI Environmental Services (and SAF-TE)

#Ajout pour forcer numérotation disque
controller scbus0 at ahc0
disk da0 at ahc0 bus 0 target 5 lun 0
disk da1 at ahc0 bus 0 target 6 lun 0
---------/snip-------

Pour le fun j'ai essayé aussi:
disk da0 at scbus0 target 5 lun 0
disk da1 at scbus0 target 6 lun 0
Et syntax error...

Enfin on finira par trouver ce qui ne va pas...

En regardant ce que me dit camcontrol, je me demande comment les différents
dev interragissent entre eux (ahc,scbus,pass,da,...)? Qui fait quoi et dit
quoi à qui?

Encore merci.

--
MaXX


Avatar
F. Senault

F. Senault wrote:

As-tu fait ça ? En particulier le premier point ? (camcontrol devlist
devrait te donner les infos qui vont bien.)


Merci de ta réponse,

Suivant tes conseils, j'ai lancé camcontrol devlist:
<COMPAQ HD0093172C 3207> at scbus0 target 5 lun 0 (pass0,da0)
<IBM DDRS-34560 S97B> at scbus0 target 6 lun 0 (pass1,da1)


Voila, déjà.

j'avais oublié, mais j'ai ajouté "controller scbus0 at ahc0" et voilà ce que
ça donne:
/.../

config: AKIRA:109: syntax error.
Enfin on finira par trouver ce qui ne va pas...


Mwais, donc, c'est visiblement obsolète... :}

Il faudrait plutôt regarder du côté de /boot/device.hints (man
device.hints), peut-être. Là, si un spécialiste pouvait confirmer, ce
serait peut-être mieux.

En regardant ce que me dit camcontrol, je me demande comment les différents
dev interragissent entre eux (ahc,scbus,pass,da,...)? Qui fait quoi et dit
quoi à qui?


Alors, scbus, c'est le bus SCSI en lui-même. Ensuite, ahc, c'est le
driver de la carte SCSI adaptec. Viennent da, pour direct access, qui
est le type de device (tu peux avoir sa pour les tapes, cd pour les cd,
etc). Le pass est le passthrough driver, qui permet à certains
programmes très spécifiques de s'adresser directement aux devices en
utilisant la même interface quel que soit le matériel derrière.

Pour savoir qui parle à qui, heu, a priori, les contrôleurs s'accrochent
à scbus, et les périphériques au contrôleur...

Sinon, un truc que j'ai trouvé fabuleusement ludique (sisi) avec
FreeBSD, c'est le fait que tous ces devices ont une page de man. Même
si c'est juste pour lire la description (et la signification des
initiales), ça vaut la peine de taper man scbus, man da, etc.

Encore merci.


Padkoi.

Fred
--
The neat thing about having a swiss-cheese memory like mine is that I
can read what I wrote a few months ago, and giggle at my own jokes.
Granted I don't remember what I write, but the writer's sense of humour
is very compatible with my own. (Chris Klein in the SDM)


Avatar
MaXX
F. Senault wrote:

Il faudrait plutôt regarder du côté de /boot/device.hints (man
device.hints), peut-être. Là, si un spécialiste pouvait confirmer, ce
serait peut-être mieux.


J'ai regardé la page de man de device.hints, mais il me semble que se serait
plutôt destiné à forcer l'ami kernel à être copain avec des périphériques
récalcitrants... Genre de vielles cartes ISA, matos particulièrement
rigide/hors standard ou PnP foireuses...

Extrait de la page de man:
A device hint line looks like:

hint.driver.unit.keyword="value"

where driver is the name of a device driver, unit is the unit number,
and
keyword is the keyword of the hint. The keyword may be:

at specifies a bus to which the device is attached.
port specifies the start address of I/O ports to be used by
the device.
portsize specifies the number of ports used by the device.
irq is the interrupt line number to be used.
drq is the DMA channel number.
maddr specifies the physical memory address used by the
device.
msize specifies the physical memory size used by the device.
flags sets various flag bits for the device.
disabled can be set to "1" to disable the device.
-------------
En lisant ça, je me dit que ce ne serait pas une bonne idée de fixer
l'adressage de ma carte au cas où mon BIOS ait la bonne idée de le modifier
et de rendre la machine littéralement impossible à booter...
N'empêche que je suis loin (entendre TRES TRES loin) d'être un gourou de
FreeBSD...

En regardant ce que me dit camcontrol, je me demande comment les
différents dev interragissent entre eux (ahc,scbus,pass,da,...)? Qui fait
quoi et dit quoi à qui?


Alors, scbus, c'est le bus SCSI en lui-même. Ensuite, ahc, c'est le
driver de la carte SCSI adaptec. Viennent da, pour direct access, qui
est le type de device (tu peux avoir sa pour les tapes, cd pour les cd,
etc). Le pass est le passthrough driver, qui permet à certains
programmes très spécifiques de s'adresser directement aux devices en
utilisant la même interface quel que soit le matériel derrière.

Pour savoir qui parle à qui, heu, a priori, les contrôleurs s'accrochent
à scbus, et les périphériques au contrôleur...
Je me demande quand même si le BIOS ne continue pas à jouer un certain rôle

dans le dialogue, il doit, au moins, être utilisé jusqu'au montage des
disques/partitions avant de laisser la main aux drivers... J'ai un bouquin
là dessus mais il parle des produits M$ pas des BSDs. Si qqun à des
références, je prends!


Sinon, un truc que j'ai trouvé fabuleusement ludique (sisi) avec
FreeBSD, c'est le fait que tous ces devices ont une page de man. Même
si c'est juste pour lire la description (et la signification des
initiales), ça vaut la peine de taper man scbus, man da, etc.
Effectivement, très instructif.


Encore merci.


Padkoi.
Si si!


Fred


--
MaXX


Avatar
MaXX
Je viens de trouver un truc qui semble interessant dans /boot/loader.help:
# Tset Scurrdev DSet the current device

set currdev=<device>

Selects the default device. Syntax for devices is odd.
et
# Tset Sroot_disk_unit DForce the root disk unit number.

set root_disk_unit=<value>

If the code which detects the disk unit number for the root disk is
confused, eg. by a mix of SCSI and IDE disks, or IDE disks with
gaps in the sequence (eg. no primary slave), the unit number can be
forced by setting this variable.

Ca marche peut être dans mon cas, mais j'ai déjà un peu de sueur au front
rien qu'en pensant à taper reboot après la manip... Je ne trouve pas de
page de man sur ces variables et je me demande si dois donner à value
da0s1a ou da0 at ahc0 target 0 lun 0, avec ou sans guillemets???
Une autre question, si la numérotation des disque est foireuse, est-ce que
je ne vais pas simplement forcer la valeur par défaut et me retrouver
devant le même problème? (Etant donné que ma clé USB par définition se
balade et ne risque pas d'être présente à chaque démarrage....)

Merci d'avance...

--
MaXX
Avatar
F. Senault

Ca marche peut être dans mon cas, mais j'ai déjà un peu de sueur au front
rien qu'en pensant à taper reboot après la manip... Je ne trouve pas de
page de man sur ces variables et je me demande si dois donner à value
da0s1a ou da0 at ahc0 target 0 lun 0, avec ou sans guillemets???
Une autre question, si la numérotation des disque est foireuse, est-ce que
je ne vais pas simplement forcer la valeur par défaut et me retrouver
devant le même problème? (Etant donné que ma clé USB par définition se
balade et ne risque pas d'être présente à chaque démarrage....)


Tiens, je viens de tomber sur ça sur la mailing-list FreeBSD :

Under 5.x you have a very similar syntax using sysctl 'hints' -- see
/usr/src/sys/conf/NOTES, but the above example would be something like:

hint.scbus.0.at="ahc0"
hint.da.0.at="scbus0"
hint.da.0.target="0"
hint.da.0.unit="0"

which you should be able to set from the loader.

Donc, apparemment, tu peux décider que ton bus SCSI Adaptec doit être
parcouru en premier (scbus.0.at="ahc0"), puis que le disque da0 va être
sur le scbus0 (donc l'ahc plus haut), sur la target 0 (dans ton cas, 5),
et l'unité, je sais pas trop. Il est dit que ça devrait marcher avec 0.

Ces options peuvent se taper telles quelles dans le fichier
/boot/loader.conf.

Au passage, quand tu vois que le loader se met en route (c'est lui qui
dessine la petite barre qui tourne), si tu fais une touche, tu tomberas
dans un prompt, qui te permet éventuellement d'annuler une bourde. Note
soigneusement les variables que tu changes, et puis, au besoin, tu peux
déjà faire "unset variable" pour les effacer à ce prompt, puis boot (-s
pour débarquer en single user)...

Au contraire, si tu te sens courageux, tu peux dans un premier temps
taper les trois lignes plus haut à la main pour tester une fois sans
risques avant de les rajouter à loader.conf...

Merci d'avance...


Fred
--
Imagine a stegosaurus wearing rocket powered roller skates, & you'll
get a fair idea of its elegance, stability & ease of crash recovery.
(Lionel Lauer in the SDM)

Avatar
MaXX
F. Senault wrote:


Ca marche peut être dans mon cas, mais j'ai déjà un peu de sueur au front
rien qu'en pensant à taper reboot après la manip... Je ne trouve pas de
page de man sur ces variables et je me demande si dois donner à value
da0s1a ou da0 at ahc0 target 0 lun 0, avec ou sans guillemets???
Une autre question, si la numérotation des disque est foireuse, est-ce
que je ne vais pas simplement forcer la valeur par défaut et me retrouver
devant le même problème? (Etant donné que ma clé USB par définition se
balade et ne risque pas d'être présente à chaque démarrage....)


Tiens, je viens de tomber sur ça sur la mailing-list FreeBSD :

Under 5.x you have a very similar syntax using sysctl 'hints' -- see
/usr/src/sys/conf/NOTES, but the above example would be something like:

hint.scbus.0.at="ahc0"
hint.da.0.at="scbus0"
hint.da.0.target="0"
hint.da.0.unit="0"

which you should be able to set from the loader.

Donc, apparemment, tu peux décider que ton bus SCSI Adaptec doit être
parcouru en premier (scbus.0.at="ahc0"), puis que le disque da0 va être
sur le scbus0 (donc l'ahc plus haut), sur la target 0 (dans ton cas, 5),
et l'unité, je sais pas trop. Il est dit que ça devrait marcher avec 0.

Ces options peuvent se taper telles quelles dans le fichier
/boot/loader.conf.

Au passage, quand tu vois que le loader se met en route (c'est lui qui
dessine la petite barre qui tourne), si tu fais une touche, tu tomberas
dans un prompt, qui te permet éventuellement d'annuler une bourde. Note
soigneusement les variables que tu changes, et puis, au besoin, tu peux
déjà faire "unset variable" pour les effacer à ce prompt, puis boot (-s
pour débarquer en single user)...

Au contraire, si tu te sens courageux, tu peux dans un premier temps
taper les trois lignes plus haut à la main pour tester une fois sans
risques avant de les rajouter à loader.conf...

Merci d'avance...


Fred
Un grand merci, ça doit résoudre le pb, faut juste que je trouve pourquoi il

refuse de compiler mon kernel vu que je dois y apporter d'autres modifs...
--
MaXX