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

Changer deux/trois ligne dans le code source d'après un message Usenet

5 réponses
Avatar
T
J'ai acheté un lecteur MP3 non reconnu par le système ; en cherchant,
j'ai découvert que quelqu'un avait rencontré et résolu le problème.

http://docs.freebsd.org/cgi/getmsg.cgi?fetch=121080+0+archive/2004/freebsd-i386/20041219.freebsd-i386

Certes, le posteur semble utiliser 6.0 alors que j'utilise 5.4, mais les
lignes de code semblant correspondre et le problème se manifestant dans
les mêmes termes, j'ai pensé que cela pouvait marcher.

J'ai donc édité /usr/src/sys/cam/scsi/scsi_da.c
(après en avoir fait une copie)
pour supprimer les lignes comportant "NexIA+*",
pour les remplacer par celles comportant "ACTIONS*"

Est-ce ce qu'il fallait faire ? Après recompilation, rien de changé ;
à tout hasard, je suis revenu à GENERIC, rien de changé.

Peut-être y a-t-il un réglage spécial à faire (je n'ai rien fait d'autre
que recompiler, réinstaller et redémarrer) ?

--
T

5 réponses

Avatar
Thierry Thomas
Samedi 08 avril 2006 à 17:49 GMT, T a écrit :
J'ai acheté un lecteur MP3 non reconnu par le système ; en cherchant,
j'ai découvert que quelqu'un avait rencontré et résolu le problème.

http://docs.freebsd.org/cgi/getmsg.cgi?fetch1080+0+archive/2004/freebsd-i386/20041219.freebsd-i386

Certes, le posteur semble utiliser 6.0 alors que j'utilise 5.4, mais les
lignes de code semblant correspondre et le problème se manifestant dans
les mêmes termes, j'ai pensé que cela pouvait marcher.


Entre temps, ç'a été commité, mais sans doute pas en 5.4.

J'ai donc édité /usr/src/sys/cam/scsi/scsi_da.c
(après en avoir fait une copie)
pour supprimer les lignes comportant "NexIA+*",
pour les remplacer par celles comportant "ACTIONS*"


En fait, il n'y a pas de lignes à supprimer, il faut juste ajouter les
lignes qui commencent par le "+" (sans le "+"). Le plus simple et de
sauver le patch dans un fichier, scsi_da.c.diff par ex., et d'exécuter

patch < scsi_da.c.diff

Est-ce ce qu'il fallait faire ? Après recompilation, rien de changé ;
à tout hasard, je suis revenu à GENERIC, rien de changé.

Peut-être y a-t-il un réglage spécial à faire (je n'ai rien fait d'autre
que recompiler, réinstaller et redémarrer) ?


Il faut aussi vérifier que le noyau comporte bien les lignes "device
atapicam" et Cie. Cf.
<http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/creating-cds.html#ATAPICAM>
--
Th. Thomas.

Avatar
T
Il faut en ajouter un qui correspond à votre clef, souvent un
DA_Q_NO_SYNC_CACHE suffit (et heureusement !) que dit dmesg lors de
l'insertion ?


Bon, j'ai donc ajouté dans /usr/src/sys/cam/scsi/scsi_da.c
les lignes :

/* XXX */
{
{T_DIRECT, SIP_MEDIA_REMOVABLE, "ACTIONS*" , "USB DISK*", "*"},
/*quirks*/ DA_Q_NO_SYNC_CACHE
},

Conformément au message signalé ; j'ai ensuite recompilé et réinstallé,
sans changement apparent. Je rappelle les références générales :
FreeBSD 5.4, lecteur USB 2.0 MP3 ZicPlay 512 MB

Je précise bien que je n'ai fait que
config MYKERNEL
cd ../ etc.
make depend && make
make install

Je n'ai notamment pas édité de fichiers quelconques pour y faire quelque
ajustement que ce soit, ni dans /boot, ni dans /etc

J'ai fait le test avec mon propre noyau mais aussi avec GENERIC

Quant à dmesg, voici la sortie :

Copyright (c) 1992-2005 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD 5.4-RELEASE #2: Sat Apr 8 18:47:08 CEST 2006
root@:/usr/src/sys/i386/compile/SNOOPY
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Mobile AMD Athlon(tm) XP 2200+ (796.10-MHz 686-class CPU)
Origin = "AuthenticAMD" Id = 0x681 Stepping = 1
Features=0x383f9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,SSE>
AMD Features=0xc0480000<MP,AMIE,DSP,3DNow!>
real memory = 200212480 (190 MB)
avail memory = 190443520 (181 MB)
acpi0: <PTLTD RSDT> on motherboard
acpi0: Power Button (fixed)
acpi_ec0: <Embedded Controller: GPE 0x1> port 0x66,0x62 on acpi0
Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x4008-0x400b on acpi0
cpu0: <ACPI CPU (3 Cx states)> on acpi0
acpi_acad0: <AC Adapter> on acpi0
acpi_cmbat0: <Control Method Battery> on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
agp0: <VIA 8235/8237 (Apollo KM400/KM400A) host to PCI bridge> mem 0xe0000000-0xefffffff at device 0.0 on pci0
pcib1: <ACPI PCI-PCI bridge> at device 1.0 on pci0
pci1: <ACPI PCI bus> on pcib1
pci1: <display, VGA> at device 0.0 (no driver attached)
pci0: <bridge, PCI-CardBus> at device 7.0 (no driver attached)
pci0: <serial bus, FireWire> at device 8.0 (no driver attached)
uhci0: <VIA 83C572 USB controller> port 0x1c00-0x1c1f at device 16.0 on pci0
usb0: <VIA 83C572 USB controller> on uhci0
usb0: USB revision 1.0
uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
uhci1: <VIA 83C572 USB controller> port 0x1c20-0x1c3f at device 16.1 on pci0
usb1: <VIA 83C572 USB controller> on uhci1
usb1: USB revision 1.0
uhub1: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 2 ports with 2 removable, self powered
uhci2: <VIA 83C572 USB controller> port 0x1c40-0x1c5f at device 16.2 on pci0
usb2: <VIA 83C572 USB controller> on uhci2
usb2: USB revision 1.0
uhub2: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub2: 2 ports with 2 removable, self powered
pci0: <serial bus, USB> at device 16.3 (no driver attached)
isab0: <PCI-ISA bridge> at device 17.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <VIA 8235 UDMA133 controller> port 0x1c60-0x1c6f,0x376,0x170-0x177,0x3f6,0x1f0-0x1f7 at device 17.1 on pci0
ata0: channel #0 on atapci0
ata1: channel #1 on atapci0
pcm0: <VIA VT8235> port 0x1000-0x10ff irq 9 at device 17.5 on pci0
pcm0: <Avance Logic ALC202 AC97 Codec>
pci0: <simple comms> at device 17.6 (no driver attached)
vr0: <VIA VT6102 Rhine II 10/100BaseTX> port 0x1800-0x18ff mem 0xd0004c00-0xd0004cff irq 4 at device 18.0 on pci0
miibus0: <MII bus> on vr0
ukphy0: <Generic IEEE 802.3u media interface> on miibus0
ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
vr0: Ethernet address: 00:c0:9f:38:41:0a
acpi_button0: <Power Button> on acpi0
acpi_button1: <Sleep Button> on acpi0
acpi_lid0: <Control Method Lid Switch> on acpi0
acpi_tz0: <Thermal Zone> on acpi0
atkbdc0: <Keyboard controller (i8042)> port 0x64,0x60 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: model Generic PS/2 mouse, device ID 0
ppc0: <ECP parallel printer port> port 0x778-0x77f,0x378-0x37f irq 7 drq 3 on acpi0
ppc0: Generic chipset (ECP/PS2/NIBBLE) in COMPATIBLE mode
ppc0: FIFO with 1/0/0 bytes threshold
ppbus0: <Parallel port bus> on ppc0
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
ppi0: <Parallel I/O> on ppbus0
npx0: <math processor> on motherboard
npx0: INT 16 interface
pmtimer0 on isa0
orm0: <ISA Option ROMs> at iomem 0xdc000-0xdffff,0xd8000-0xdbfff,0xcd000-0xce7ff,0xc0000-0xccfff on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
Timecounter "TSC" frequency 796097090 Hz quality 800
Timecounters tick every 10.000 msec
IP Filter: v3.4.35 initialized. Default = block all, Logging = enabled
ad0: 19077MB <TOSHIBA MK2023GAS/MA014A> [38760/16/63] at ata0-master UDMA100
acd0: CDRW <QSI CD-RW/DVD-ROM SBW242C/UQ81> at ata1-master PIO4
Mounting root from ufs:/dev/ad0s1a
umass0: vendor 0x10d6 USB 2.0(FS) FLASH DISK, rev 1.10/1.00, addr 2
da0 at umass-sim0 bus 0 target 0 lun 0
da0: <USB2.0 (FS) FLASH DISK 1.00> Removable Direct Access SCSI-0 device
da0: 1.000MB/s transfers
da0: 497MB (1019617 512 byte sectors: 64H 32S/T 497C)
umass0: BBB reset failed, STALLED
umass0: BBB bulk-in clear stall failed, STALLED
umass0: BBB bulk-out clear stall failed, STALLED
(da0:umass-sim0:0:0:0): Synchronize cache failed, status == 0x4, scsi status == 0x0
umass0: BBB reset failed, STALLED
umass0: BBB bulk-in clear stall failed, STALLED
umass0: BBB bulk-out clear stall failed, STALLED
umass0: BBB reset failed, STALLED
umass0: BBB bulk-in clear stall failed, STALLED
umass0: BBB bulk-out clear stall failed, STALLED
umass0: BBB reset failed, STALLED
umass0: BBB bulk-in clear stall failed, STALLED
umass0: BBB bulk-out clear stall failed, STALLED
umass0: BBB reset failed, STALLED
umass0: BBB bulk-in clear stall failed, STALLED
umass0: BBB bulk-out clear stall failed, STALLED
umass0: BBB reset failed, STALLED
umass0: BBB bulk-in clear stall failed, STALLED
umass0: BBB bulk-out clear stall failed, STALLED
umass0: BBB reset failed, STALLED
umass0: BBB bulk-in clear stall failed, STALLED
umass0: BBB bulk-out clear stall failed, STALLED
Opened disk da0 -> 5
umass0: BBB reset failed, STALLED
umass0: at uhub1 port 2 (addr 2) disconnected
(da0:umass-sim0:0:0:0): lost device
(da0:umass-sim0:0:0:0): removing device entry
Opened disk da0 -> 5
umass0: detached

Cordialement,

--
T

Avatar
T
/* XXX */
{
{T_DIRECT, SIP_MEDIA_REMOVABLE, "ACTIONS*" , "USB DISK*", "*"},
/*quirks*/ DA_Q_NO_SYNC_CACHE
},
OK, vu mon modèle, la sortie de dmesg semble donner des références un peu

différentes :
umass0: vendor 0x10d6 USB 2.0(FS) FLASH DISK, rev 1.10/1.00, addr 2
da0 at umass-sim0 bus 0 target 0 lun 0
da0: <USB2.0 (FS) FLASH DISK 1.00> Removable Direct Access SCSI-0 device
da0: 1.000MB/s transfers
da0: 497MB (1019617 512 byte sectors: 64H 32S/T 497C)


du coup, je suppose que cela ne correspond pas au modèle de celui qui
a écrit les lignes ci-dessus. Il me faut donc sans doute remplacer
"ACTIONS*" et "USB DISK*" par autre chose, mais mon dmesg semble
donner des indications moins nettes que celui qui a posté sa solution.
Je pense notamment au premier des deux champs qui semble devoir
contenir le nom du vendeur, si je ne m'abuse ; or je vois mal ce qui se
dégage sur ce point de mon dmesg.

Cordialement,

--
T

Avatar
T
J'ai bien avancé : j'ai finalement mis

{T_DIRECT, SIP_MEDIA_REMOVABLE, "USB2.0*", "(FS) FLASH DISK*", "*"},

et cela ne provoque plus tous les messages d'erreur, et cela ne plante
plus au bout de quelques instants !

Néanmoins, je n'arrive pas à monter le périphérique, car si j'ai
bien désormais /dev/da0

Je n'arrive pas à avoir /dev/da0s1

J'ai testé à tout hasard :
true > /dev/da0
pour "secouer" le périphérique, mais rien...

En revanche, je dois admettre que je ne suis jamais passé par la couche
SCSI pour monter une clef USB, or j'ai cru comprendre que c'était ici
le cas, aussi mes méthodes ne sont-elles peut-être pas adaptées ?

Mon noyau comporte notamment

# 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)

Mon dmesg donne avec quelques messages d'erreur dont j'ignore si elles
sont liées ou non à la clef USB (lecteur MP3) :
Copyright (c) 1992-2005 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD 5.4-RELEASE #3: Sun Apr 9 00:11:28 CEST 2006
lili@:/usr/src/sys/i386/compile/SNOOPY
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Mobile AMD Athlon(tm) XP 2200+ (796.10-MHz 686-class CPU)
Origin = "AuthenticAMD" Id = 0x681 Stepping = 1
Features=0x383f9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,SSE>
AMD Features=0xc0480000<MP,AMIE,DSP,3DNow!>
real memory = 200212480 (190 MB)
avail memory = 190443520 (181 MB)
acpi0: <PTLTD RSDT> on motherboard
acpi0: Power Button (fixed)
acpi_ec0: <Embedded Controller: GPE 0x1> port 0x66,0x62 on acpi0
Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x4008-0x400b on acpi0
cpu0: <ACPI CPU (3 Cx states)> on acpi0
acpi_acad0: <AC Adapter> on acpi0
acpi_cmbat0: <Control Method Battery> on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
agp0: <VIA 8235/8237 (Apollo KM400/KM400A) host to PCI bridge> mem 0xe0000000-0xefffffff at device 0.0 on pci0
pcib1: <ACPI PCI-PCI bridge> at device 1.0 on pci0
pci1: <ACPI PCI bus> on pcib1
pci1: <display, VGA> at device 0.0 (no driver attached)
pci0: <bridge, PCI-CardBus> at device 7.0 (no driver attached)
pci0: <serial bus, FireWire> at device 8.0 (no driver attached)
uhci0: <VIA 83C572 USB controller> port 0x1c00-0x1c1f at device 16.0 on pci0
usb0: <VIA 83C572 USB controller> on uhci0
usb0: USB revision 1.0
uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
uhci1: <VIA 83C572 USB controller> port 0x1c20-0x1c3f at device 16.1 on pci0
usb1: <VIA 83C572 USB controller> on uhci1
usb1: USB revision 1.0
uhub1: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 2 ports with 2 removable, self powered
uhci2: <VIA 83C572 USB controller> port 0x1c40-0x1c5f at device 16.2 on pci0
usb2: <VIA 83C572 USB controller> on uhci2
usb2: USB revision 1.0
uhub2: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub2: 2 ports with 2 removable, self powered
pci0: <serial bus, USB> at device 16.3 (no driver attached)
isab0: <PCI-ISA bridge> at device 17.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <VIA 8235 UDMA133 controller> port 0x1c60-0x1c6f,0x376,0x170-0x177,0x3f6,0x1f0-0x1f7 at device 17.1 on pci0
ata0: channel #0 on atapci0
ata1: channel #1 on atapci0
pcm0: <VIA VT8235> port 0x1000-0x10ff irq 9 at device 17.5 on pci0
pcm0: <Avance Logic ALC202 AC97 Codec>
pci0: <simple comms> at device 17.6 (no driver attached)
vr0: <VIA VT6102 Rhine II 10/100BaseTX> port 0x1800-0x18ff mem 0xd0004c00-0xd0004cff irq 4 at device 18.0 on pci0
miibus0: <MII bus> on vr0
ukphy0: <Generic IEEE 802.3u media interface> on miibus0
ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
vr0: Ethernet address: 00:c0:9f:38:41:0a
acpi_button0: <Power Button> on acpi0
acpi_button1: <Sleep Button> on acpi0
acpi_lid0: <Control Method Lid Switch> on acpi0
acpi_tz0: <Thermal Zone> on acpi0
atkbdc0: <Keyboard controller (i8042)> port 0x64,0x60 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: model Generic PS/2 mouse, device ID 0
ppc0: <ECP parallel printer port> port 0x778-0x77f,0x378-0x37f irq 7 drq 3 on acpi0
ppc0: Generic chipset (ECP/PS2/NIBBLE) in COMPATIBLE mode
ppc0: FIFO with 1/0/0 bytes threshold
ppbus0: <Parallel port bus> on ppc0
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
ppi0: <Parallel I/O> on ppbus0
npx0: <math processor> on motherboard
npx0: INT 16 interface
pmtimer0 on isa0
orm0: <ISA Option ROMs> at iomem 0xdc000-0xdffff,0xd8000-0xdbfff,0xcd000-0xce7ff,0xc0000-0xccfff on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
Timecounter "TSC" frequency 796096375 Hz quality 800
Timecounters tick every 10.000 msec
IP Filter: v3.4.35 initialized. Default = block all, Logging = enabled
ad0: 19077MB <TOSHIBA MK2023GAS/MA014A> [38760/16/63] at ata0-master UDMA100
acd0: CDRW <QSI CD-RW/DVD-ROM SBW242C/UQ81> at ata1-master PIO4
Mounting root from ufs:/dev/ad0s1a
ACPI-0337: *** Error: Cannot release Mutex [MUT1], not acquired
ACPI-1304: *** Error: Method execution failed [_SB_.ACAD._PSR] (Node 0xc0fc7a80), AE_AML_MUTEX_NOT_ACQUIRED
ACPI-0337: *** Error: Cannot release Mutex [MUT1], not acquired
ACPI-1304: *** Error: Method execution failed [_SB_.BAT1._STA] (Node 0xc0fc7500), AE_AML_MUTEX_NOT_ACQUIRED
ACPI-0239: *** Error: Method execution failed [_SB_.BAT1._STA] (Node 0xc0fc7500), AE_AML_MUTEX_NOT_ACQUIRED
ACPI-0337: *** Error: Cannot release Mutex [MUT1], not acquired
ACPI-1304: *** Error: Method execution failed [_TZ_.THRM._TMP] (Node 0xc0fc78c0), AE_AML_MUTEX_NOT_ACQUIRED
umass0: vendor 0x10d6 USB 2.0(FS) FLASH DISK, rev 1.10/1.00, addr 2
da0 at umass-sim0 bus 0 target 0 lun 0
da0: <USB2.0 (FS) FLASH DISK 1.00> Removable Direct Access SCSI-0 device
da0: 1.000MB/s transfers
da0: 497MB (1019617 512 byte sectors: 64H 32S/T 497C)

--
T
Avatar
T
D'après Marwan ça arrive si la clef n'a qu'une partition
http://www.lri.fr/~burelle/BSD/USBKey-FreeBSD.html
Vous avez essayez de monter da0 ?


Merci, absolument tous mes problèmes sont réglés.
On peut vraiment tout faire avec FreeBSD ;-)

--
T