Подробный гайд: Ошибка «device is busy» (или «Resource busy» / «Устройство занято») в Alt Linux

Подробный гайд по устранению ошибки device is busy сканера в ALT Linux. Диагностика USB, прав доступа, конфликтов модуля usblp и SANE.

2026.07.04                  


Подробный гайд: Ошибка «device is busy» (или «Resource busy» / «Устройство занято») в Alt LinuxПодробный гайд: Ошибка «device is busy» (или «Resource busy» / «Устройство занято») в Alt Linux Ошибка «device is busy» (или «Resource busy» / «Устройство занято») при работе со сканером в ALT Linux означает, что операционная система или другой процесс уже захватили устройство, и программа для сканирования (SANE, XSane, Simple-scan и др.) не может получить к нему монопольный доступ.


Шаг 1. Убиваем зависшие процессы сканирования

Самая частая причина — фоновый процесс «завис» и держит порт открытым.

1. Откройте терминал и посмотрите, какие процессы могут обращаться к сканеру:

   ps aux | grep -iE 'xsane|simple-scan|skanlite|scanimage|saned'

2. Если вы видите зависшие процессы, завершите их принудительно:

   killall -9 xsane simple-scan skanlite scanimage

3. Также проверьте, не держит ли устройство утилита fuser:

   sudo fuser -v /dev/bus/usb/*/*

(Если в выводе есть процессы, связанные с USB-сканером, завершите их по PID).


Шаг 2. Конфликт модуля ядра usblp (Критично для МФУ!)

Если у вас не просто сканер, а МФУ (принтер + сканер), ядро Linux может автоматически захватывать USB-интерфейс устройства для печати с помощью модуля usblp, блокируя при этом интерфейс сканера.

1. Проверьте, загружен ли модуль:

   lsmod | grep usblp

2. Если он в списке, временно выгрузите его, чтобы проверить, решит ли это проблему:

   sudo modprobe -r usblp

3. Попробуйте отсканировать. Если проблема ушла, значит, дело было в этом.

Примечание:

Современный CUPS (система печати) отлично работает без usblp через libusb.

Если печать не пропала после выгрузки модуля, можно добавить его в черный список навсегда:

   echo "blacklist usblp" | sudo tee /etc/modprobe.d/blacklist-usblp.conf

Шаг 3. Проверка прав доступа и групп

В ALT Linux доступ к USB-устройствам регулируется правилами udev и группами пользователей. Если вашего пользователя нет в нужной группе, система может отдавать ошибку «busy» или «permission denied».

1. Проверьте, в каких группах состоит ваш пользователь:

   groups

2. Убедитесь, что вы состоите в группах scanner, usb и/или plugdev. Если их нет, добавьте себя:

   sudo usermod -aG scanner,usb,plugdev $USER

3. Обязательно перелогиньтесь в системе (или перезагрузите ПК), чтобы новые группы применились.


Шаг 4. Перезапуск служб SANE и CUPS

Иногда демон SANE (saned) или служба печати cups «залипают» в состоянии ожидания устройства.

1. Перезапустите службы:

   sudo systemctl restart saned.socket saned@.service
   sudo systemctl restart cups

2. Если saned работает через xinetd (в старых версиях ALT), перезапустите его:

   sudo systemctl restart xinetd

Шаг 5. Глубокая диагностика через SANE (Если ничего не помогло)

Если устройство всё равно пишет «busy», нужно посмотреть, как именно SANE видит сканер.

1. Включите максимальный уровень отладки SANE и попробуйте найти сканер:

   SANE_DEBUG_DLL=255 scanimage -L 2> sane_debug.log

2. Откройте файл sane_debug.log и посмотрите последние строки. Там будет указано, какой именно бэкенд (драйвер) пытается обратиться к устройству и на каком этапе возникает ошибка.

3. Попробуйте обратиться к сканеру напрямую, минуя графические оболочки:

   scanimage -T

Если эта команда выдает ту же ошибку «device is busy», проблема точно на уровне ядра/udev, а не в графической программе (XSane и т.д.).


Шаг 6. Сетевые сканеры (если сканер подключен по сети)

Если сканер сетевой, ошибка «device is busy» может означать, что демон saned на удаленной машине (или на этом же ПК, если вы сканируете по сети) уже обрабатывает другой запрос.

1. Проверьте статус сокета saned:

   systemctl status saned.socket

2. Убедитесь, что в файле /etc/sane.d/saned.conf разрешён доступ с вашего IP-адреса (или стоит +localhost / 192.168.1.0/24).

3. Если на удаленной машине висит процесс saned, перезагрузите службу на той машине.


Чек-лист:

  1. killall -9 xsane simple-scan (убить зависшие программы).
  2. sudo modprobe -r usblp (снять захват ядром, если это МФУ).
  3. sudo systemctl restart cups saned.socket (перезапустить службы).
  4. Переподключить USB-кабель сканера в другой порт (желательно USB 2.0, а не 3.0, так как некоторые старые сканеры капризны к контроллерам xHCI).

Информация предоставлена в ознакомительных целях. Применение описанных настроек в системах, должно осуществляться только после согласования с ответственными за информационную безопасность и в соответствии с требованиями ФСТЭК, ФСБ и иных уполномоченных органов.


Статью подготовил: Денис Аверко @Nymexis г. Омск

Комментарии

Загрузка...
Если комментарии не загружаются, можете попробовать отключить блокировщик рекламы для этого сайта