Автор Тема: Сканеры Штрихкода в P10 перестали работать  (Прочитано 1460 раз)

Оффлайн flint1975

  • Завсегдатай
  • *
  • Сообщений: 1 386
    • Email
После обновления до p10 не работает сканер штрихкода Metrologic (HoneyWell) MS-7120 (а так же MS-5145)
Сканер USB в режиме com порта, если переключить в режим клавиатуры всё работает.
Одновременно со сканером подключены другие USB_COM устройства (кассовый аппарат Атол, терминал оплаты - они прекрасно работают)
в p7 точно работает, в p8 и p9 не проверял
[root@kassa dev]# lsusb
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 003: ID 0c2e:0700 Metrologic Instruments Metrologic MS7120 Barcode Scanner (uni-directional serial mode)
[root@kassa dev]# ls -l | grep USB
crw-rw---- 1 root  uucp      188,   0 апр 21 01:00 ttyUSB0
[root@kassa dev]# minicom -D /dev/ttyUSB0
minicom: невозможно открыть /dev/ttyUSB0: Ошибка ввода/вывода

Куда копать?

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 283
    • Домашняя страница
    • Email
В модуль ядра.
Андрей Черепанов (cas@)

Оффлайн flint1975

  • Завсегдатай
  • *
  • Сообщений: 1 386
    • Email
непонятно как копать, модуль ядра для чипов usb-serial как я понимаю один для всех устройств, а остальные устройства работают
Ладно в багзиллу баг оформлю.
Да и нет там отдельных модулей для ком портов

Оффлайн flint1975

  • Завсегдатай
  • *
  • Сообщений: 1 386
    • Email
а на что вешать баг? прям на ядро?

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 6 146
А юзер от которого сканируете в группе uucp состоит?

Оффлайн flint1975

  • Завсегдатай
  • *
  • Сообщений: 1 386
    • Email
да, более того от рута тоже не сканирует, а другие подобные устройства работают, не работают только Metrologic (honeywell), причем все доступные в данный момент у меня модели с usb интерфейсом.

Дополнительно: проверил сейчас на Simply 9.0 - не работает, ни сразу после установки, ни после dist-upgrade и update-kernel
« Последнее редактирование: 21.04.2022 16:25:32 от flint1975 »

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 283
    • Домашняя страница
    • Email
а на что вешать баг? прям на ядро?
На модуль ядра, который этим занимается.
https://unix.stackexchange.com/questions/60078/find-out-which-modules-are-associated-with-a-usb-device
Андрей Черепанов (cas@)

Оффлайн flint1975

  • Завсегдатай
  • *
  • Сообщений: 1 386
    • Email
Выполнил исследование работоспособности сканеров Metrologic Honeywell на разных версиях Simply linux:
1. На 7 платформе работает всегда
2. На 8 платформе работает сразу после установки на ядре 4.9.35-un-def-alt0.M80P
    driver=metro_usb
Просле обновления - на этом же ядре работает, а вот на новом: 4.19.238-un-def-alt0.M80P уже выдает ошибку ввода-вывода с устройством
  driver=metro_usb
3. на всех старших платформах - не работает.

Оффлайн flint1975

  • Завсегдатай
  • *
  • Сообщений: 1 386
    • Email
собственно модуля ядра metro_usb я не нашел
на что вешать багу - неясно?

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 6 146
https://wtware.ru/forum/viewtopic.php?t=5881 - пишут про смену режима при которой начинает работать

Оффлайн flint1975

  • Завсегдатай
  • *
  • Сообщений: 1 386
    • Email
Спасибо за ссылку, на P10 - на последнем ядре стд-деф ни bi-directional ни uni-directional для сканера 9520 не заработали, а у 7120 - режим bi-directional отсутствует - вернее он переключается, но остается в uni-directional
пока оставил на p8 Simply с ядром, которое при установке.
То, что это баг - сомнений нет, вопрос баг чего?

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 6 146
То, что это баг - сомнений нет, вопрос баг чего?
видимо ядра.
Тут только git bisect поможет....

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 6 146
https://github.com/torvalds/linux/blob/master/drivers/usb/serial/metro-usb.c - похоже что писали наши соотечественники, попробуйте написать ( https://vk.com/timyr_lan ), может помогут.

Оффлайн tamerlan311

  • Начинающий
  • *
  • Сообщений: 2
    • Email
Нашел причину. Фикс для ядра во вложении.

Без объявления .write_int_callback, с какого-то момента перестал инициироваться соответствующий endpoint и драйвер не мог отправить команду на устройство.

Я смотрю там много чего стоит причесать. Доделаю, отправлю исправления в апстрим.

Оффлайн tamerlan311

  • Начинающий
  • *
  • Сообщений: 2
    • Email
Вот собственно коммит, сломавший драйвер:
USB: serial: metro-usb: drop unused interrupt-out callback
v4.11-rc1
https://github.com/torvalds/linux/commit/965bbef552cdbf22ab7fb83e7f92b2f251d56f70