Eisenfaust
Well-Known Member
Hallo,
seit einigen Stunden verzweifele ich an dem recht erfolglosen Versuch, einen DALLAS 1wire Sensor an einen FreeBSD 12-STABLE Host anzuschließen. Der DS Sensor selbst ist an einem TTL/UART Konverter des Typs CP2102 angeschlossen, der Treiber für diesen TTL-UART Typ, uslcom, ist eingebunden, FreeBSD erkennt diesen Chip bei Anschluß an den USB Bus auch problemlos. Die Daten liefere ich unten hernach.
Einmal angeschlossen, kann ich den Sensor auch problemlos mit owfs einbinden (comms/owfs, owfs-3.2p3_1): owfs -d /dev/ttyU0 -m /mnt/1wire klappt hervorragend - das Argument für -d orientiert sich am CDEV, auf welches der CP2102 angebunden wird.
Den Sensor kann ich mittels "usbconfig dump_all_desc" ob einiger seiner Parameter befragen:
ugen0.6: <Silicon Labs CP2102 USB to UART Bridge Controller> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)
bLength = 0x0012
bDescriptorType = 0x0001
bcdUSB = 0x0110
bDeviceClass = 0x0000 <Probed by interface class>
bDeviceSubClass = 0x0000
bDeviceProtocol = 0x0000
bMaxPacketSize0 = 0x0040
idVendor = 0x10c4
idProduct = 0xea60
bcdDevice = 0x0100
iManufacturer = 0x0001 <Silicon Labs>
iProduct = 0x0002 <CP2102 USB to UART Bridge Controller>
iSerialNumber = 0x0003 <0001>
bNumConfigurations = 0x0001
[...]
devd.conf ist wie folgt erweitert (Variante a) ):
Datei: /usr/local/etc/devd/1wire.conf
notify 100 {
match "system" "DEVFS";
match "subsystem" "CDEV";
match "type" "CREATE";
match "cdev" "ttyU[0-9]+$";
match "vendor" "0x10c4";
match "product" "0xea60";
action "/usr/local/bin/owfs -d /dev/$cdev -m /mnt/1wire";
};
notify 100 {
match "system" "DEVFS";
match "subsystem" "CDEV";
match "type" "CREATE";
match "cdev" "ttyU[0-9]+";
match "vendor" "0x10c4";
match "product" "0xea60";
action "umount -f /mnt/1wire";
};
Diese Variante funktioniert nicht.
Ich habe es auch mit folgender Variante b) versucht, die ebensowenig erfolgreich ist:
notify 100 {
match "system" "USB";
match "subsystem" "INTERFACE";
match "type" "ATTACH";
match "cdev" "ttyU[0-9]+$";
match "vendor" "0x10c4";
match "product" "0xea60";
action "/usr/local/bin/owfs -d /dev/$cdev -m /mnt/1wire";
};
Auch der Tausch des Ereigniss-Statements "notify" gegen "attach" ist fruchtlos.
Wenn ich devd mittels "devd -d" starte und mir die Debug-Informationen anschaue, dann scheint doch Variante a) plausibel:
[...]
Processing event '!system=DEVFS subsystem=CDEV type=CREATE cdev=ttyU0'
Pushing table
setting *=!system=DEVFS subsystem=CDEV type=CREATE cdev=ttyU0
setting _=system=DEVFS subsystem=CDEV type=CREATE cdev=ttyU0
setting timestamp=1572854042.899899
setting system=DEVFS
setting subsystem=CDEV
setting type=CREATE
setting cdev=ttyU0
Processing notify event
Testing system=DEVFS against ^DEVFS$, invert=0
Testing subsystem=CDEV against ^CDEV$, invert=0
Testing type=CREATE against ^CREATE$, invert=0
Testing cdev=ttyU0 against ^atp[0-9]+$, invert=0
Testing system=DEVFS against ^DEVFS$, invert=0
Testing subsystem=CDEV against ^CDEV$, invert=0
Testing type=CREATE against ^CREATE$, invert=0
Testing cdev=ttyU0 against ^ums[0-9]+$, invert=0
Testing system=DEVFS against ^DEVFS$, invert=0
Testing subsystem=CDEV against ^CDEV$, invert=0
Testing type=CREATE against ^CREATE$, invert=0
Testing cdev=ttyU0 against ^wsp[0-9]+$, invert=0
Testing system=DEVFS against ^DEVFS$, invert=0
Testing subsystem=CDEV against ^CDEV$, invert=0
Testing type=CREATE against ^DESTROY$, invert=0
Testing system=DEVFS against ^USB$, invert=0
Testing system=DEVFS against ^USB$, invert=0
Testing system=DEVFS against ^USB$, invert=0
Testing system=DEVFS against ^USB$, invert=0
Testing system=DEVFS against ^USB$, invert=0
Testing system=DEVFS against ^USB$, invert=0
Testing system=DEVFS against ^USB$, invert=0
Testing system=DEVFS against ^USB$, invert=0
Testing system=DEVFS against ^USB$, invert=0
Testing system=DEVFS against ^USB$, invert=0
Testing system=DEVFS against ^USB$, invert=0
Testing system=DEVFS against ^USB$, invert=0
Testing system=DEVFS against ^USB$, invert=0
Testing system=DEVFS against ^USB$, invert=0
Testing system=DEVFS against ^USB$, invert=0
Testing system=DEVFS against ^USB$, invert=0
Testing system=DEVFS against ^DEVFS$, invert=0
Testing subsystem=CDEV against ^CDEV$, invert=0
Testing type=CREATE against ^CREATE$, invert=0
Testing cdev=ttyU0 against ^ttyU[0-9]+$, invert=0
Testing vendor= against ^0x10c4$, invert=0
Testing system=DEVFS against ^DEVFS$, invert=0
Testing subsystem=CDEV against ^CDEV$, invert=0
Testing type=CREATE against ^CREATE$, invert=0
Testing cdev=ttyU0 against ^hv_fsvss_dev$, invert=0
Testing system=DEVFS against ^DEVFS$, invert=0
Testing subsystem=CDEV against ^CDEV$, invert=0
Testing type=CREATE against ^DESTROY$, invert=0
Testing system=DEVFS against ^ACPI$, invert=0
Testing system=DEVFS against ^ACPI$, invert=0
Testing system=DEVFS against ^ACPI$, invert=0
Testing system=DEVFS against ^ACPI$, invert=0
Testing system=DEVFS against ^DEVFS$, invert=0
Testing subsystem=CDEV against ^CDEV$, invert=0
Testing type=CREATE against ^CREATE$, invert=0
Testing cdev=ttyU0 against ^hv_kvp_dev$, invert=0
Testing system=DEVFS against ^DEVFS$, invert=0
Testing subsystem=CDEV against ^CDEV$, invert=0
Testing type=CREATE against ^DESTROY$, invert=0
Testing system=DEVFS against ^HYPERV_NIC_VF$, invert=0
Testing system=DEVFS against ^ETHERNET$, invert=0
Testing system=DEVFS against ^ZFS$, invert=0
Testing system=DEVFS against ^ZFS$, invert=0
Testing system=DEVFS against ^ZFS$, invert=0
Testing system=DEVFS against ^ZFS$, invert=0
Testing system=DEVFS against ^ZFS$, invert=0
Testing system=DEVFS against ^ZFS$, invert=0
Testing system=DEVFS against ^ZFS$, invert=0
Testing system=DEVFS against ^ZFS$, invert=0
Testing system=DEVFS against ^ZFS$, invert=0
Testing system=DEVFS against ^ZFS$, invert=0
Testing system=DEVFS against ^ZFS$, invert=0
Testing system=DEVFS against ^ZFS$, invert=0
Testing system=DEVFS against ^IFNET$, invert=0
Testing system=DEVFS against ^IFNET$, invert=0
Testing system=DEVFS against ^IFNET$, invert=0
Testing system=DEVFS against ^ACPI$, invert=0
Testing system=DEVFS against ^ACPI$, invert=0
Testing system=DEVFS against ^ACPI$, invert=0
Testing system=DEVFS against ^ACPI$, invert=0
Testing system=DEVFS against ^ACPI$, invert=0
Testing system=DEVFS against ^ACPI$, invert=0
Testing system=DEVFS against ^DEVFS$, invert=0
Testing subsystem=CDEV against ^CDEV$, invert=0
Testing type=CREATE against ^CREATE$, invert=0
Testing cdev=ttyU0 against ^ttyU[0-9]+$, invert=0
Testing vendor= against ^0x10c4$, invert=0
Popping table
Processing event '!system=DEVFS subsystem=CDEV type=CREATE cdev=ttyU0.init'
Pushing table
setting *=!system=DEVFS subsystem=CDEV type=CREATE cdev=ttyU0.init
setting _=system=DEVFS subsystem=CDEV type=CREATE cdev=ttyU0.init
setting timestamp=1572854042.900307
setting system=DEVFS
setting subsystem=CDEV
setting type=CREATE
setting cdev=ttyU0.init
Processing notify event
Testing system=DEVFS against ^DEVFS$, invert=0
[...]
Vielleicht hat jemand eine Idee, mir jedenfalls sind sie ausgegangen.
Danke im voraus.
seit einigen Stunden verzweifele ich an dem recht erfolglosen Versuch, einen DALLAS 1wire Sensor an einen FreeBSD 12-STABLE Host anzuschließen. Der DS Sensor selbst ist an einem TTL/UART Konverter des Typs CP2102 angeschlossen, der Treiber für diesen TTL-UART Typ, uslcom, ist eingebunden, FreeBSD erkennt diesen Chip bei Anschluß an den USB Bus auch problemlos. Die Daten liefere ich unten hernach.
Einmal angeschlossen, kann ich den Sensor auch problemlos mit owfs einbinden (comms/owfs, owfs-3.2p3_1): owfs -d /dev/ttyU0 -m /mnt/1wire klappt hervorragend - das Argument für -d orientiert sich am CDEV, auf welches der CP2102 angebunden wird.
Den Sensor kann ich mittels "usbconfig dump_all_desc" ob einiger seiner Parameter befragen:
ugen0.6: <Silicon Labs CP2102 USB to UART Bridge Controller> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)
bLength = 0x0012
bDescriptorType = 0x0001
bcdUSB = 0x0110
bDeviceClass = 0x0000 <Probed by interface class>
bDeviceSubClass = 0x0000
bDeviceProtocol = 0x0000
bMaxPacketSize0 = 0x0040
idVendor = 0x10c4
idProduct = 0xea60
bcdDevice = 0x0100
iManufacturer = 0x0001 <Silicon Labs>
iProduct = 0x0002 <CP2102 USB to UART Bridge Controller>
iSerialNumber = 0x0003 <0001>
bNumConfigurations = 0x0001
[...]
devd.conf ist wie folgt erweitert (Variante a) ):
Datei: /usr/local/etc/devd/1wire.conf
notify 100 {
match "system" "DEVFS";
match "subsystem" "CDEV";
match "type" "CREATE";
match "cdev" "ttyU[0-9]+$";
match "vendor" "0x10c4";
match "product" "0xea60";
action "/usr/local/bin/owfs -d /dev/$cdev -m /mnt/1wire";
};
notify 100 {
match "system" "DEVFS";
match "subsystem" "CDEV";
match "type" "CREATE";
match "cdev" "ttyU[0-9]+";
match "vendor" "0x10c4";
match "product" "0xea60";
action "umount -f /mnt/1wire";
};
Diese Variante funktioniert nicht.
Ich habe es auch mit folgender Variante b) versucht, die ebensowenig erfolgreich ist:
notify 100 {
match "system" "USB";
match "subsystem" "INTERFACE";
match "type" "ATTACH";
match "cdev" "ttyU[0-9]+$";
match "vendor" "0x10c4";
match "product" "0xea60";
action "/usr/local/bin/owfs -d /dev/$cdev -m /mnt/1wire";
};
Auch der Tausch des Ereigniss-Statements "notify" gegen "attach" ist fruchtlos.
Wenn ich devd mittels "devd -d" starte und mir die Debug-Informationen anschaue, dann scheint doch Variante a) plausibel:
[...]
Processing event '!system=DEVFS subsystem=CDEV type=CREATE cdev=ttyU0'
Pushing table
setting *=!system=DEVFS subsystem=CDEV type=CREATE cdev=ttyU0
setting _=system=DEVFS subsystem=CDEV type=CREATE cdev=ttyU0
setting timestamp=1572854042.899899
setting system=DEVFS
setting subsystem=CDEV
setting type=CREATE
setting cdev=ttyU0
Processing notify event
Testing system=DEVFS against ^DEVFS$, invert=0
Testing subsystem=CDEV against ^CDEV$, invert=0
Testing type=CREATE against ^CREATE$, invert=0
Testing cdev=ttyU0 against ^atp[0-9]+$, invert=0
Testing system=DEVFS against ^DEVFS$, invert=0
Testing subsystem=CDEV against ^CDEV$, invert=0
Testing type=CREATE against ^CREATE$, invert=0
Testing cdev=ttyU0 against ^ums[0-9]+$, invert=0
Testing system=DEVFS against ^DEVFS$, invert=0
Testing subsystem=CDEV against ^CDEV$, invert=0
Testing type=CREATE against ^CREATE$, invert=0
Testing cdev=ttyU0 against ^wsp[0-9]+$, invert=0
Testing system=DEVFS against ^DEVFS$, invert=0
Testing subsystem=CDEV against ^CDEV$, invert=0
Testing type=CREATE against ^DESTROY$, invert=0
Testing system=DEVFS against ^USB$, invert=0
Testing system=DEVFS against ^USB$, invert=0
Testing system=DEVFS against ^USB$, invert=0
Testing system=DEVFS against ^USB$, invert=0
Testing system=DEVFS against ^USB$, invert=0
Testing system=DEVFS against ^USB$, invert=0
Testing system=DEVFS against ^USB$, invert=0
Testing system=DEVFS against ^USB$, invert=0
Testing system=DEVFS against ^USB$, invert=0
Testing system=DEVFS against ^USB$, invert=0
Testing system=DEVFS against ^USB$, invert=0
Testing system=DEVFS against ^USB$, invert=0
Testing system=DEVFS against ^USB$, invert=0
Testing system=DEVFS against ^USB$, invert=0
Testing system=DEVFS against ^USB$, invert=0
Testing system=DEVFS against ^USB$, invert=0
Testing system=DEVFS against ^DEVFS$, invert=0
Testing subsystem=CDEV against ^CDEV$, invert=0
Testing type=CREATE against ^CREATE$, invert=0
Testing cdev=ttyU0 against ^ttyU[0-9]+$, invert=0
Testing vendor= against ^0x10c4$, invert=0
Testing system=DEVFS against ^DEVFS$, invert=0
Testing subsystem=CDEV against ^CDEV$, invert=0
Testing type=CREATE against ^CREATE$, invert=0
Testing cdev=ttyU0 against ^hv_fsvss_dev$, invert=0
Testing system=DEVFS against ^DEVFS$, invert=0
Testing subsystem=CDEV against ^CDEV$, invert=0
Testing type=CREATE against ^DESTROY$, invert=0
Testing system=DEVFS against ^ACPI$, invert=0
Testing system=DEVFS against ^ACPI$, invert=0
Testing system=DEVFS against ^ACPI$, invert=0
Testing system=DEVFS against ^ACPI$, invert=0
Testing system=DEVFS against ^DEVFS$, invert=0
Testing subsystem=CDEV against ^CDEV$, invert=0
Testing type=CREATE against ^CREATE$, invert=0
Testing cdev=ttyU0 against ^hv_kvp_dev$, invert=0
Testing system=DEVFS against ^DEVFS$, invert=0
Testing subsystem=CDEV against ^CDEV$, invert=0
Testing type=CREATE against ^DESTROY$, invert=0
Testing system=DEVFS against ^HYPERV_NIC_VF$, invert=0
Testing system=DEVFS against ^ETHERNET$, invert=0
Testing system=DEVFS against ^ZFS$, invert=0
Testing system=DEVFS against ^ZFS$, invert=0
Testing system=DEVFS against ^ZFS$, invert=0
Testing system=DEVFS against ^ZFS$, invert=0
Testing system=DEVFS against ^ZFS$, invert=0
Testing system=DEVFS against ^ZFS$, invert=0
Testing system=DEVFS against ^ZFS$, invert=0
Testing system=DEVFS against ^ZFS$, invert=0
Testing system=DEVFS against ^ZFS$, invert=0
Testing system=DEVFS against ^ZFS$, invert=0
Testing system=DEVFS against ^ZFS$, invert=0
Testing system=DEVFS against ^ZFS$, invert=0
Testing system=DEVFS against ^IFNET$, invert=0
Testing system=DEVFS against ^IFNET$, invert=0
Testing system=DEVFS against ^IFNET$, invert=0
Testing system=DEVFS against ^ACPI$, invert=0
Testing system=DEVFS against ^ACPI$, invert=0
Testing system=DEVFS against ^ACPI$, invert=0
Testing system=DEVFS against ^ACPI$, invert=0
Testing system=DEVFS against ^ACPI$, invert=0
Testing system=DEVFS against ^ACPI$, invert=0
Testing system=DEVFS against ^DEVFS$, invert=0
Testing subsystem=CDEV against ^CDEV$, invert=0
Testing type=CREATE against ^CREATE$, invert=0
Testing cdev=ttyU0 against ^ttyU[0-9]+$, invert=0
Testing vendor= against ^0x10c4$, invert=0
Popping table
Processing event '!system=DEVFS subsystem=CDEV type=CREATE cdev=ttyU0.init'
Pushing table
setting *=!system=DEVFS subsystem=CDEV type=CREATE cdev=ttyU0.init
setting _=system=DEVFS subsystem=CDEV type=CREATE cdev=ttyU0.init
setting timestamp=1572854042.900307
setting system=DEVFS
setting subsystem=CDEV
setting type=CREATE
setting cdev=ttyU0.init
Processing notify event
Testing system=DEVFS against ^DEVFS$, invert=0
[...]
Vielleicht hat jemand eine Idee, mir jedenfalls sind sie ausgegangen.
Danke im voraus.