ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
22 июля
1212425 Топик полностью
Nikolay_Po (30.05.2022 02:26, просмотров: 216) ответил Nikolay_Po на [РЕШЕНО]. Обнаружил, что драйвер для Linux поддерживает только bulk-режим передачи для данных. Драйвер для Windows - поддерживает Interrupt. Устройство работает только в режиме Interrupt. В обоих ОС конфигурация устройства одинаковая. Шаги настройки одинаковые до момента оформления подписки URB данных.
Нашёл официальный GIT от WCH. Причём на их сайте выложена только версия 1.5 от 2018г, без модификаций даже не собирается в моём стареньком Debian 10. 

Зато на ГитХабе свежее, версия 1.6, этого, 2022, года. https://github.com/WCHSoftGroup/ch341ser_linux

Устройство порта объявляют уже не просто ttyUSB0, а ttyCH341USB0:


[  361.245484] usb 2-1.4.2: new full-speed USB device number 9 using xhci_hcd
[  361.350995] usb 2-1.4.2: New USB device found, idVendor=0581, idProduct=011c, bcdDevice= 2.23
[  361.350999] usb 2-1.4.2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[  361.360140] input: HID 0581:011c as /devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1.4/2-1.4.2/2-1.4.2:1.0/0003:0581:011C.0005/input/input20
[  361.417840] hid-generic 0003:0581:011C.0005: input,hidraw4: USB HID v1.10 Keyboard [HID 0581:011c] on usb-0000:00:14.0-1.4.2/input0
[  361.420741] hid-generic 0003:0581:011C.0006: hiddev0,hidraw5: USB HID v1.10 Device [HID 0581:011c] on usb-0000:00:14.0-1.4.2/input1
[  362.561005] usb 2-1.4.2: USB disconnect, device number 9
[  362.861434] usb 2-1.4.2: new full-speed USB device number 10 using xhci_hcd
[  362.968246] usb 2-1.4.2: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.54
[  362.968250] usb 2-1.4.2: New USB device strings: Mfr=1, Product=0, SerialNumber=0
[  362.968253] usb 2-1.4.2: Manufacturer: Љ
[  362.975143] usb_ch341 2-1.4.2:1.0: ttyCH341USB0: ch341 USB device
[  363.013496] usbcore: registered new interface driver usbserial_generic
[  363.013514] usbserial: USB Serial support registered for generic

Посмотрим, поможет ли?

Увы, пока нет:


[  708.008984] ------------[ cut here ]------------
[  708.008988] usb 2-1.4.2: BOGUS urb xfer, pipe 3 != type 1
[  708.009086] WARNING: CPU: 0 PID: 6614 at drivers/usb/core/urb.c:480 usb_submit_urb+0x518/0x5a0 [usbcore]
[  708.009087] Modules linked in: usbserial ch341(OE) vmw_vsock_vmci_transport vsock vmw_vmci fuse vboxnetadp(OE) vboxnetflt(OE) vboxdrv(OE) binfmt_misc nls_ascii nls_cp437 vfat fat intel_rapl nvidia_drm(POE) nvidia_modeset(POE) nvidia(POE) snd_hda_codec_hdmi 8814au(OE) sb_edac x86_pkg_temp_thermal intel_powerclamp kvm_intel kvm irqbypass crct10dif_pclmul crc32_pclmul pcc_cpufreq ghash_clmulni_intel cfg80211 squashfs snd_hda_codec_realtek snd_hda_codec_generic snd_usb_audio intel_cstate snd_usbmidi_lib intel_uncore joydev snd_rawmidi snd_hda_intel snd_seq_device rfkill intel_rapl_perf snd_hda_codec efi_pstore efivars pcspkr snd_hda_core snd_hwdep snd_pcm mei_me sg snd_timer iTCO_wdt iTCO_vendor_support snd mei soundcore evdev loop nct6775 hwmon_vid coretemp parport_pc ppdev lp parport efivarfs ip_tables
[  708.009120]  x_tables autofs4 ext4 crc16 mbcache jbd2 fscrypto ecb btrfs zstd_decompress zstd_compress xxhash raid10 raid0 multipath linear uas usb_storage hid_generic usbhid hid raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx xor raid6_pq libcrc32c crc32c_generic sd_mod nouveau bcache crc64 raid1 md_mod video ahci i2c_algo_bit libahci ttm xhci_pci libata xhci_hcd drm_kms_helper ehci_pci ehci_hcd crc32c_intel mxm_wmi drm aesni_intel r8169 scsi_mod usbcore aes_x86_64 crypto_simd realtek cryptd nvme glue_helper libphy nvme_core i2c_i801 lpc_ich mfd_core usb_common wmi button
[  708.009152] CPU: 0 PID: 6614 Comm: cat Tainted: P           OE     4.19.0-20-amd64 #1 Debian 4.19.235-1
[  708.009154] Hardware name: HUANAN Default string/X99-TF, BIOS 5.11 05/25/2020
[  708.009167] RIP: 0010:usb_submit_urb+0x518/0x5a0 [usbcore]
[  708.009170] Code: 00 00 00 89 4c 24 0c 48 89 14 24 e8 a2 ee e3 dd 8b 4c 24 0c 48 8b 14 24 45 89 f0 48 89 c6 48 c7 c7 c8 7d 4e c0 e8 45 5c 03 de <0f> 0b e9 28 fc ff ff 0f 1f 44 00 00 b8 a6 ff ff ff e9 13 fe ff ff
[  708.009171] RSP: 0018:ffffbffc627bbb58 EFLAGS: 00010282
[  708.009174] RAX: 0000000000000000 RBX: ffff9856f15d06c0 RCX: 0000000000000006
[  708.009175] RDX: 0000000000000007 RSI: 0000000000000096 RDI: ffff98583f81b6b0
[  708.009176] RBP: ffff9857f9d4f800 R08: 0000000000000449 R09: 0000000000000004
[  708.009177] R10: 0000000000000000 R11: 0000000000000001 R12: 00000000006000c0
[  708.009179] R13: 0000000000000000 R14: 0000000000000001 R15: 0000000000000003
[  708.009181] FS:  00007fa9d44fc540(0000) GS:ffff98583f800000(0000) knlGS:0000000000000000
[  708.009182] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  708.009184] CR2: 00007fa9d441b540 CR3: 0000000e94e92001 CR4: 00000000001626f0
[  708.009185] Call Trace:
[  708.009195]  ch341_submit_read_urb+0x34/0x80 [ch341]
[  708.009200]  ch341_port_activate+0x28d/0x340 [ch341]
[  708.009207]  tty_port_open+0x89/0xd0
[  708.009211]  tty_open+0xea/0x450
[  708.009216]  chrdev_open+0xcb/0x1e0
[  708.009220]  ? cdev_default_release+0x20/0x20
[  708.009224]  do_dentry_open+0x13d/0x370
[  708.009228]  path_openat+0x2d9/0x1480
[  708.009233]  ? alloc_set_pte+0xf7/0x550
[  708.009236]  do_filp_open+0x93/0x100
[  708.009240]  ? __check_object_size+0x162/0x180
[  708.009244]  do_sys_open+0x186/0x210
[  708.009250]  do_syscall_64+0x53/0x110
[  708.009256]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
[  708.009259] RIP: 0033:0x7fa9d4424f1e
[  708.009261] Code: 25 00 00 41 00 3d 00 00 41 00 74 48 48 8d 05 e9 57 0d 00 8b 00 85 c0 75 69 89 f2 b8 01 01 00 00 48 89 fe bf 9c ff ff ff 0f 05 <48> 3d 00 f0 ff ff 0f 87 a6 00 00 00 48 8b 4c 24 28 64 48 33 0c 25
[  708.009262] RSP: 002b:00007ffd84c10d00 EFLAGS: 00000246 ORIG_RAX: 0000000000000101
[  708.009264] RAX: ffffffffffffffda RBX: 00000000ffffffff RCX: 00007fa9d4424f1e
[  708.009266] RDX: 0000000000000000 RSI: 00007ffd84c132a1 RDI: 00000000ffffff9c
[  708.009267] RBP: 0000000000000001 R08: 0000000000000000 R09: 0000000000000000
[  708.009268] R10: 0000000000000000 R11: 0000000000000246 R12: 00005612e95c1f80
[  708.009269] R13: 00007ffd84c10fc0 R14: 0000000000000000 R15: 0000000000020000
[  708.009272] ---[ end trace 4a27915951d8b78f ]---
[  708.009277] usb_ch341 2-1.4.2:1.0: ch341_submit_read_urb - usb_submit_urb failed: -22


Ну, хотя бы модуль после сбоя можно и выгрузить, и загрузить обратно...

Тепреь не могу вспомнить, откуда у меня взялся модуль ch341, который хоть и не давал данных, но не вылетал? Вроде, я его для простенького китайского программатора, на CH341, ставил.