Установка МФУ

SLAX, Deep Style, ZenWalk

Модератор: Модераторы разделов

Аватара пользователя
UnixNoob
Сообщения: 663
ОС: Slackware

Установка МФУ

Сообщение UnixNoob »

Привет. Почитал касательно данного вопроса, теперь хотелось бы понять как грамотно это оформить в Slackware.
Понял следующее:
1. Мне надо настроить демона cups
2. Скачать драйвер и пересобрать его в пакет Slackware?
3. Поставить xsane?
Или есть еще что-то для работы с мфу?
Интересует печать и сканер, факс не нужен.
Мфу samsung scx-4216F, теперь драйвера на них на сайте hp.
Спасибо сказали:

Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: Установка МФУ

Сообщение Hephaestus »

UnixNoob писал:
27.11.2020 13:34
2. Скачать драйвер и пересобрать его в пакет Slackware?
Если только он не подхватится сразу. Вряд ли, конечно, но чем Патрик не шутит...
UnixNoob писал:
27.11.2020 13:34
3. Поставить xsane?
Если правильно помню, xsane - это графическая морда к sane.
Так что его нужно тоже. А вот заведется ли сканер, не знаю.
Напишите потом, что у Вас из всего этого получилось.


У нас такой аппарат был, помню.
Правда, под Linux мы его не пробовали. Мы тогда и слов-то таких не знали.

Но сам аппарат оказался так себе: факс то ли не работал с самого начала,
то ли перестал работать почти сразу. Следом перестал работать автоподатчик.
А тут ещё девченки сунули в печать лист со скрепкой...
Короче, сдали мы его в ремонт. Вроде даже по гарантии.
Нам его починили.
Привезли мы его назад. Всё работает.
И через некоторое время опять отказывает автоподатчик.
А про факс я уже и не интересовался. Тоже вроде перестал работать.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:

Аватара пользователя
UnixNoob
Сообщения: 663
ОС: Slackware

Re: Установка МФУ

Сообщение UnixNoob »

Не удалось мне заставить работать принтер и сканер.
Начну с принтера. cups, sane и xsane в системе были установлены, принтер, при запуске cups находился, но драйвера нужного не было. Возможно подошел бы один из ML-, но я решил попробовать установить родные.

Структура каталога с драйвером такая, может я на этом этапе ошибся:

Код: Выделить всё

./uld:
./     install-printer.sh*  noarch/               uninstall-printer.sh*  x86_64/
../    install-scanner.sh*    uninstall-scanner.sh*
i386/  install.sh*                uninstall.sh*

./uld/i386:
./   gettext*                libscmssc.so*  rastertospl*       usbresetter*
../  libsane-smfp.so.1.0.1*  pstosecps*     smfpnetdiscovery*

./uld/noarch:
./                        firewall-firewalld*    package_install.sh*    scanner-meta.pkg*
../                       firewall-shorewall*    package_uninstall.sh*  scanner-script.pkg*
.version-printer*         firewall-suse*         package_utils*         scanner.pkg*
.version-printer-script*  firewall.sh*           pagesize.xml*          scripting_utils*
.version-scanner*         legacy_compat.pkg*     post_install.sh*       security.pkg*
.version-scanner-script*  libsane-smfp.cfg*      pre_install.sh*        share/
bash_debugging*           license/               printer-meta.pkg*
etc/                      oem.conf*              printer-script.pkg*
firewall-fedora*          package_api_defaults*  printer.pkg*

./uld/noarch/etc:
./  ../  smfp.conf*  smfp.fdi.in*  smfp.rules.in*

./uld/noarch/license:
./  ../  eula-fr.txt*  eula.txt*

./uld/noarch/share:
./  ../  locale/  ppd/

./uld/noarch/share/locale:
./  ../  fr/

./uld/noarch/share/locale/fr:
./  ../  LC_MESSAGES/

./uld/noarch/share/locale/fr/LC_MESSAGES:
./  ../  install.mo*  sane-smfp.mo*

./uld/noarch/share/ppd:
./                                   Samsung_ML-1640_Series.ppd*
../                                  Samsung_ML-1660_Series.ppd*
Samsung_C140x_Series.ppd*            Samsung_ML-1670_Series.ppd*
Samsung_C145x_Series.ppd*            Samsung_ML-1710_Series.ppd*
Samsung_C1810_Series.ppd*            Samsung_ML-1740_Series.ppd*
Samsung_C1860_Series.ppd*            Samsung_ML-1860_Series.ppd*
Samsung_C2620_Series.ppd*            Samsung_ML-1865W_Series.ppd*
Samsung_C2670_Series.ppd*            Samsung_ML-191x_Series.ppd*
Samsung_C268x_Series.ppd*            Samsung_ML-2010_Series.ppd*
Samsung_C3010_Series.ppd*            Samsung_ML-2150_Series.ppd*
Samsung_C3060_Series.ppd*            Samsung_ML-2160_Series.ppd*
Samsung_C351x_Series.ppd*            Samsung_ML-2240_Series.ppd*
Samsung_C401x_Series.ppd*            Samsung_ML-2245_Series.ppd*
Samsung_C406x_Series.ppd*            Samsung_ML-2250_Series.ppd*
Samsung_C410_Series.ppd*             Samsung_ML-2510_Series.ppd*
Samsung_C420_Series.ppd*             Samsung_ML-2525W_Series.ppd*
Samsung_C43x_Series.ppd*             Samsung_ML-2540_Series.ppd*
Samsung_C460_Series.ppd*             Samsung_ML-2550_Series.ppd*
Samsung_C470_Series.ppd*             Samsung_ML-2570_Series.ppd*
Samsung_C4820_Series.ppd*            Samsung_ML-2580_Series.ppd*
Samsung_C48x_Series.ppd*             Samsung_ML-2850_Series.ppd*
Samsung_CLP-300_Series.ppd*          Samsung_ML-2853_Series.ppd*
Samsung_CLP-310_Series.ppd*          Samsung_ML-2855_Series.ppd*
Samsung_CLP-320_Series.ppd*          Samsung_ML-2950_Series.ppd*
Samsung_CLP-350_Series.ppd*          Samsung_ML-3050_Series.ppd*
Samsung_CLP-360_Series.ppd*          Samsung_ML-3300_Series.ppd*
Samsung_CLP-410_Series.ppd*          Samsung_ML-331x_Series.ppd*
Samsung_CLP-600_Series.ppd*          Samsung_ML-3470_Series.ppd*
Samsung_CLP-610_Series.ppd*          Samsung_ML-3475_Series.ppd*
Samsung_CLP-620_Series.ppd*          Samsung_ML-3560_Series.ppd*
Samsung_CLP-660_Series.ppd*          Samsung_ML-371x_Series.ppd*
Samsung_CLP-670_Series.ppd*          Samsung_ML-375x_Series.ppd*
Samsung_CLP-680_Series.ppd*          Samsung_ML-4050_Series.ppd*
Samsung_CLP-770_Series.ppd*          Samsung_ML-4055_Series.ppd*
Samsung_CLP-775_Series.ppd*          Samsung_ML-451x_501x_Series.ppd*
Samsung_CLX-216x_Series.ppd*         Samsung_ML-4550_Series.ppd*
Samsung_CLX-3160_Series.ppd*         Samsung_ML-4555_Series.ppd*
Samsung_CLX-3170_Series.ppd*         Samsung_ML-551x_651x_Series.ppd*
Samsung_CLX-3180_Series.ppd*         Samsung_ML-8850_8950_Series.ppd*
Samsung_CLX-3300_Series.ppd*         Samsung_ML-8x00_Series.ppd*
Samsung_CLX-4190_Series.ppd*         Samsung_SCX-3200_Series.ppd*
Samsung_CLX-6200_Series.ppd*         Samsung_SCX-3400_Series.ppd*
Samsung_CLX-6220_Series.ppd*         Samsung_SCX-4100_Series.ppd*
Samsung_CLX-6240_Series.ppd*         Samsung_SCX-4200_Series.ppd*
Samsung_CLX-6250_Series.ppd*         Samsung_SCX-4300_Series.ppd*
Samsung_CLX-6260_Series.ppd*         Samsung_SCX-4500W_Series.ppd*
Samsung_CLX-8380_Series.ppd*         Samsung_SCX-4500_Series.ppd*
Samsung_CLX-8385X_Series.ppd*        Samsung_SCX-4600_Series.ppd*
Samsung_CLX-8385_Series.ppd*         Samsung_SCX-4623FW_Series.ppd*
Samsung_CLX-8540_Series.ppd*         Samsung_SCX-4623_Series.ppd*
Samsung_CLX-8640_8650_Series.ppd*    Samsung_SCX-4650_4x21S_Series.ppd*
Samsung_CLX-9250_9350_Series.ppd*    Samsung_SCX-470x_Series.ppd*
Samsung_CLX-9252_9352_Series.ppd*    Samsung_SCX-4725_Series.ppd*
Samsung_CLX-92x1_93x1_Series.ppd*    Samsung_SCX-472x_Series.ppd*
Samsung_CLX-981x_Series.ppd*         Samsung_SCX-483x_5x3x_Series.ppd*
Samsung_CLX-982x_Series.ppd*         Samsung_SCX-4x16_Series.ppd*
Samsung_K2200_Series.ppd*            Samsung_SCX-4x20_Series.ppd*
Samsung_K302_Series.ppd*             Samsung_SCX-4x21_Series.ppd*
Samsung_K3250_Series.ppd*            Samsung_SCX-4x24_Series.ppd*
Samsung_K401_Series.ppd*             Samsung_SCX-4x25_Series.ppd*
Samsung_K4350_Series.ppd*            Samsung_SCX-4x26_Series.ppd*
Samsung_K703_Series.ppd*             Samsung_SCX-4x28_Series.ppd*
Samsung_K7600_Series.ppd*            Samsung_SCX-5635_Series.ppd*
Samsung_M2020_Series.ppd*            Samsung_SCX-5835_5935X_Series.ppd*
Samsung_M2070_Series.ppd*            Samsung_SCX-5835_5935_Series.ppd*
Samsung_M262x_282x_Series.ppd*       Samsung_SCX-5x30_Series.ppd*
Samsung_M267x_287x_Series.ppd*       Samsung_SCX-6545X_Series.ppd*
Samsung_M283x_Series.ppd*            Samsung_SCX-6545_Series.ppd*
Samsung_M288x_Series.ppd*            Samsung_SCX-681x_Series.ppd*
Samsung_M301x_Series.ppd*            Samsung_SCX-6x20_Series.ppd*
Samsung_M306x_Series.ppd*            Samsung_SCX-6x22_Series.ppd*
Samsung_M332x_382x_402x_Series.ppd*  Samsung_SCX-6x45_Series.ppd*
Samsung_M337x_387x_407x_Series.ppd*  Samsung_SCX-6x55X_Series.ppd*
Samsung_M403x_Series.ppd*            Samsung_SCX-6x55_Series.ppd*
Samsung_M408x_Series.ppd*            Samsung_SCX-8030_8040_Series.ppd*
Samsung_M4370_5370_Series.ppd*       Samsung_SCX-8123_8128_Series.ppd*
Samsung_M453x_Series.ppd*            Samsung_SCX-8230_8240_Series.ppd*
Samsung_M458x_Series.ppd*            Samsung_SCX-881x_Series.ppd*
Samsung_M5270_Series.ppd*            Samsung_SCX-882x_Series.ppd*
Samsung_M536x_Series.ppd*            Samsung_SF-760_Series.ppd*
Samsung_MFP_560_Series.ppd*          Samsung_X3220_Series.ppd*
Samsung_MFP_65x_Series.ppd*          Samsung_X401_Series.ppd*
Samsung_MFP_750_Series.ppd*          Samsung_X4300_Series.ppd*
Samsung_ML-1520_Series.ppd*          Samsung_X703_Series.ppd*
Samsung_ML-1610_Series.ppd*          Samsung_X7600_Series.ppd*
Samsung_ML-1630W_Series.ppd*         cms/
Samsung_ML-1630_Series.ppd*

./uld/noarch/share/ppd/cms:
./              CLP-320sc.cts*   CLX-3160sc.cts*  M262xsc.cts*  M337xsc.cts*     SCX-472xsc.cts*
../             CLP-360sc.cts*   CLX-3170sc.cts*  M267xsc.cts*  ML-2160sc.cts*   SF-760sc.cts*
C410sc.cts*     CLP-600sc.cts*   CLX-3180sc.cts*  M283xsc.cts*  ML-2540sc.cts*
C420sc.cts*     CLP-610sc.cts*   CLX-6220sc.cts*  M288xsc.cts*  ML-2950sc.cts*
C43xsc.cts*     CLP-620sc.cts*   K2200sc.cts*     M301xsc.cts*  SCX-3400sc.cts*
CLP-300sc.cts*  CLP-660sc.cts*   M2020sc.cts*     M306xsc.cts*  SCX-4650sc.cts*
CLP-310sc.cts*  CLX-216xsc.cts*  M2070sc.cts*     M332xsc.cts*  SCX-470xsc.cts*

./uld/x86_64:
./   gettext*                libscmssc.so*  rastertospl*       usbresetter*
../  libsane-smfp.so.1.0.1*  pstosecps*     smfpnetdiscovery*


Пример одного из install.sh:

Код: Выделить всё

#!/bin/sh

SCRIPTS_DIR="$(dirname "$0")"

# load 'scripting' run-time support utility functions
. "${SCRIPTS_DIR}/scripting_utils"

# load 'package' run-time support utility functions
. "${SCRIPTS_DIR}/package_utils"

#. "${SCRIPTS_DIR}/packet.sh"
environment_init $(basename "$0" ".sh")

if [ $# -ne 1 ] ; then
	show_nls_message "**** Usage: \${0} package"
	exit 1
fi
load_package "$1"


MISSING_REQUIREMENTS="$(get_missing_requirements)"
log_variable MISSING_REQUIREMENTS
if [ -n "${MISSING_REQUIREMENTS}" ] ; then
	report_missing_requirements "${MISSING_REQUIREMENTS}"
	exit 1
fi

IS_INSTALL_NECESSARY="$(isInstallNecessary)"
log_variable IS_INSTALL_NECESSARY
if ! ${IS_INSTALL_NECESSARY} ; then
	report_no_install_reason
	log_message "Skipping package '${PACKAGE_NAME}'/'$(dist_version)' installation since version '$(version)' is already installed"
	exit 0
fi

if ! have_root_permissions ; then
	show_nls_message "**** Root privileges are required"
	exit 1
fi

# attempt to install dependencies
DEPENDENCIES="$(dependencies)"
log_variable DEPENDENCIES
for DEPENDENCY in ${DEPENDENCIES} ; do
        log_message "invoking: ${SCRIPTS_DIR}/package_install.sh" "${DEPENDENCY}"
        if ! "${SCRIPTS_DIR}/package_install.sh" "${DEPENDENCY}" ; then
		log_message "dependency installation failure"
		exit 1
	fi
done

log_message "removing previously installed files (if present)"
remove_package_files

# register package as dependency
register_dependency

# package specific install
log_message "installing package"
do_install

# install version file (if available)
DIST_VERSION_FILE="$(_dist_version_file "${PACKAGE_NAME}" "${PACKAGE_SUFFIX}")"
log_variable DIST_VERSION_FILE
if [ -r "${DIST_VERSION_FILE}" ] ; then
	VERSION_FILE="$(_version_file "${PACKAGE_NAME}" "${PACKAGE_SUFFIX}")"
	log_variable VERSION_FILE
	install_p "${DIST_VERSION_FILE}" "${VERSION_FILE}" 2>&1 | log_redirected_output
else
	log_message "'${DIST_VERSION_FILE}' is unavailable"
fi

# report end of install
after_install

log_message "finished"

Так вот, зашел я в папку noarch и с помощью makepkg создал пакет slackware и установил его.
Что мне это дало или должно было дать, я честно говоря не понял. Открыл cups указал файл ppd.
Принтер написал что он готов, но при отправке на печать ругался на отсутствие файла - rastertospl.
Скопировал я его,от root, в папку /usr/libs64/cups/filter, ошибка пропала, но получил теперь ошибку "filter failed"
В логах увидел следующее:

Код: Выделить всё

D [28/Nov/2020:16:19:38 +0300] [Job 4] Dictionary stack:
D [28/Nov/2020:16:19:38 +0300] [Job 4] --dict:739/1123(ro)(G)--   --dict:1/20(G)--   --dict:80/200(L)--   --dict:80/200(L)--   --dict:133/256(ro)(G)--   --dict:318/325(ro)(G)--   --dict:33/64(L)--   --dict:6/9(L)--   --dict:6/20(L)--
D [28/Nov/2020:16:19:38 +0300] [Job 4] Current allocation mode is local
D [28/Nov/2020:16:19:38 +0300] [Job 4] Last OS error: Broken pipe
D [28/Nov/2020:16:19:38 +0300] [Job 4] GPL Ghostscript 9.53.3: Unrecoverable error, exit code 1
D [28/Nov/2020:16:19:38 +0300] [Job 4] Rendering completed
D [28/Nov/2020:16:19:38 +0300] [Job 4] PID 3568 (/usr/lib64/cups/filter/gstoraster) stopped with status 1.
D [28/Nov/2020:16:19:38 +0300] [Job 4] Hint: Try setting the LogLevel to "debug" to find out more.
D [28/Nov/2020:16:19:38 +0300] [Job 4] Waiting for read thread to exit...
D [28/Nov/2020:16:19:38 +0300] [Job 4] Read thread still active, aborting the pending read...
D [28/Nov/2020:16:19:38 +0300] [Job 4] Resetting printer.
D [28/Nov/2020:16:19:38 +0300] [Job 4] PID 3570 (/usr/lib64/cups/backend/usb) exited with no errors.
D [28/Nov/2020:16:19:38 +0300] [Job 4] End of messages
D [28/Nov/2020:16:19:38 +0300] [Job 4] printer-state=3(idle)
D [28/Nov/2020:16:19:38 +0300] [Job 4] printer-state-message="Rendering completed"
D [28/Nov/2020:16:19:38 +0300] [Job 4] printer-state-reasons=none

Сканер, если верить этому
не поддерживается совсем. sane его не находит, в группу scanner пользователь добавлен. Что в таком случае дают драйвера,я так же не понял.
Правда вопрос чем он его считает, SCX-4x16 или 4200 Series, как указано в файле ppd принтера.

lsusb пишет это:

Код: Выделить всё

Bus 001 Device 004: ID 04e8:3409 Samsung Electronics Co., Ltd SCX-4216F Scanner
Простите меня за такие простыни, я просто слегка в шоке, от установки принтера и сканера в linux. Возможно я зашел не с того конца, не знаю.
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 18753
Статус: ✡ иностранный агент
ОС: Debian GNU/Linux

Re: Установка МФУ

Сообщение Bizdelnick »

UnixNoob писал:
28.11.2020 17:30
получил теперь ошибку "filter failed"
Либ каких-нибудь, небось, не хватает. Попробуйте его руками запустить, что скажет?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
UnixNoob
Сообщения: 663
ОС: Slackware

Re: Установка МФУ

Сообщение UnixNoob »

Bizdelnick
а что вы имеете в виду под руками? с консоли?
Мне тут подумалось что наверно мне перед сборкой в пакет Slackware, нужно было выполнить установку драйвера во временный каталог...
И уже потом собирать пакет Slackware. Т.к папка х86_64 осталась без дела, в моем варианте сборки... Хотя не уверен что оно бы установилось, надо пробовать.
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 18753
Статус: ✡ иностранный агент
ОС: Debian GNU/Linux

Re: Установка МФУ

Сообщение Bizdelnick »

UnixNoob писал:
28.11.2020 19:55
что вы имеете в виду под руками? с консоли?
Да.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
UnixNoob
Сообщения: 663
ОС: Slackware

Re: Установка МФУ

Сообщение UnixNoob »

Bizdelnick, в ручном режиме он пишет:

Код: Выделить всё

id запроса Samsung_SCX-4x16_Series-6 (1 файл.)
А в очереди так же про "filter failed"

С установкой драйверов не понятно мне.
По логике если оно у меня не работает с установленными драйверами, значит я что-то не так сделал. Readme бы какой прикрутили, как-то не хочется мне скрипты, которые не ясно куда и что поставят запускать. Особенно учитывая что драйвер 2017г, может он вообще не должен у меня устанавливаться.
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 18753
Статус: ✡ иностранный агент
ОС: Debian GNU/Linux

Re: Установка МФУ

Сообщение Bizdelnick »

UnixNoob писал:
28.11.2020 23:27
не хочется мне скрипты, которые не ясно куда и что поставят запускать
Ну препарируйте этот скрипт и разберитесь, что и куда он ставит.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: Установка МФУ

Сообщение Hephaestus »

UnixNoob писал:
28.11.2020 17:30
Так вот, зашел я в папку noarch и с помощью makepkg создал пакет slackware и установил его.
Расскажите, как создавали пакет.
UnixNoob писал:
28.11.2020 17:30
Что мне это дало или должно было дать, я честно говоря не понял.
Чисто физически это должно было создать нужные структуры каталогов и раскидать туда файлы,
попутно выставив права доступа и т.п.
UnixNoob писал:
28.11.2020 17:30
Сканер, если верить этому
не поддерживается совсем.
В этом нет ничего удивительного. Создатели sane не имеют возможности проверить все существующие на свете аппараты и добавить их поддержку.
Поддержка добавляется либо производителями устройств, либо пользователями, у кого есть такие устройства.
В самом простом случае берется блоб - бинарный файл с фирменной начинкой (прошивка, условно говоря) и скармливается sane.
После этого sane имеет возможность нормально общаться с аппаратом.
Но это возможно только в случае, если в sane существует драйвер для данного класса устройств.
Тогда работа с конкретными устройствами данного класса происходит с использованием этих прошивок.

Если же производитель всё-таки озаботился созданием драйверов сканера под Linux, то вполне вероятно,
предполагается использование sane. В этом случае при установке "фирменного драйвера" в систему добавляются нужные библиотеки, блобы и пр., и всё это хозяйство взаимодействует с sane.
UnixNoob писал:
28.11.2020 17:30
Что в таком случае дают драйвера,я так же не понял.
Драйвера дают ту самую поддержку устройства в Linux, которой изначально нету.
UnixNoob писал:
28.11.2020 17:30
Возможно я зашел не с того конца, не знаю.
Вообще, да. Немного не с того конца.

UnixNoob писал:
28.11.2020 23:27
По логике если оно у меня не работает с установленными драйверами, значит я что-то не так сделал. Readme бы какой прикрутили, как-то не хочется мне скрипты, которые не ясно куда и что поставят запускать.
Скрипты запускать не советую, по крайней мере, на боевой системе.
Лучше в контейнере/виртуалке.
Я бы создал слакбилд, который раскидывает файлы по каталогам так, как это принято в системе.
Ну или так, как это делают скрипты. Там создается структура каталогов в /opt/ и туда раскидываются бинарные файлы, ppd и пр.
А вот куда это всё раскидывается по итогам установки Вашего пакета - это вопрос интересный.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:

Аватара пользователя
UnixNoob
Сообщения: 663
ОС: Slackware

Re: Установка МФУ

Сообщение UnixNoob »

Hephaestus писал:
29.11.2020 13:26
Расскажите, как создавали пакет.
Зашел в папку /noarch и выполнил команду sudo makepkg <название создаваемого пакета>.
Я подумал что он будет ругаться, если пакет создать не удастся,но он создался.
Установить его во временный каталог,с помощию make install предварительно не вышло. Точно файлы попадают в /usr/share и что-то в /etc.
Уходят ли куда-то файлы из папки x86_64 не знаю, думаю что нет. Readme там нет, make тоже нет.

Как в таком случае создаются пакеты Slackware правильно? Это и не исходник и даже не перепаковка?
Спасибо сказали:

Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: Установка МФУ

Сообщение Hephaestus »

UnixNoob писал:
29.11.2020 14:15
Зашел в папку /noarch и выполнил команду sudo makepkg <название создаваемого пакета>.
Я подумал что он будет ругаться, если пакет создать не удастся,но он создался.
Понятно. Что бы ему не создаться-то? Создастся, только бестолковый.
Он тупо упаковал содержимое каталога noarch в формат пакета tgz. Вот и всё.
Причем, упаковал "как есть": эти вот скрипты попали в пакет, текст лицензии (нафиг оно не надо).

Структура каталогов создавалась? Нет. Значит, всё попадает в корень.
Единственное, что при таком раскладе оказывается более-менее на своём месте - каталог etc, поскольку он действительно должен быть в корне.
Бинарники/конфиги копировались в правильные места? Нет. Значит, они вообще в пакет не попадают, поскольку они расположены не в noarch, а в соседнем каталоге.

Естественно, оно в итоге не работает: ни одного бинарника нет.
UnixNoob писал:
29.11.2020 14:15
Установить его во временный каталог,с помощию make install предварительно не вышло.
Там нет make-файла, поэтому make не поможет.

UnixNoob писал:
29.11.2020 14:15
Уходят ли куда-то файлы из папки x86_64 не знаю, думаю что нет.
Как я уже сказал, никуда не уходят: они вообще в другом каталоге, который при создании пакета
даже не затрагивался.
UnixNoob писал:
29.11.2020 14:15
Как в таком случае создаются пакеты Slackware правильно?
Вручную. Создаем слакбилд, в котором предварительно создаются все нужные каталоги,
а потом туда копируются файлы. Это тупо команды mkdir и cp. Ну или install, если больше нравится.
Я могу попробовать создать, но у меня устройства нет, поэтому проверять не на чем.
UnixNoob писал:
29.11.2020 14:15
Это и не исходник и даже не перепаковка?
Да, это не исходник. Но это упаковка.
Посмотрите любой слакбилд, что там происходит с файлами документации.
Ровно это и происходит: создание каталогов и копирование.
Или посмотрите какой-нибудь слакбилд закрытой софтины (типа браузера Opera).
Там сплошные бинарники и всё что нужно сделать - раскидать их по местам - то же самое: создание каталогов и копирование.

Да, кстати.
В данном конкретном случае, может оказаться, что нужно воспроизвести структуру каталогов, которую создают скрипты. Здесь уже готовые бинарники, как они компилировались, мы не знаем. И где эти бинарники намерены друг друга искать, мы тоже не знаем. Поэтому размещение их по стандартным путям в системе может не сработать (хотя попробовать, конечно, можно). Достоверно я этого не знаю, разумеется. Просто этот вот момент с путями надо иметь в виду.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:

Аватара пользователя
UnixNoob
Сообщения: 663
ОС: Slackware

Re: Установка МФУ

Сообщение UnixNoob »

Hephaestus писал:
29.11.2020 14:57
Да, это не исходник. Но это упаковка.
Посмотрите любой слакбилд, что там происходит с файлами документации.
Ровно это и происходит: создание каталогов и копирование.
По Слакбилду я хотя бы понимаю куда и что ставится. Здесь же конкретного пути нет. Или я не понял где это смотреть.

Hephaestus писал:
29.11.2020 14:57
Я могу попробовать создать, но у меня устройства нет, поэтому проверять не на чем.
Я такую задачу пока не осилю, я смотрел в эти скрипты, понимаю что он какие-то переменные дергает с PATH, что - то он хочет положить в /opt, так по-крайней мере показал bash -x. Но как из этого сформировать нужную мне структура каталогов я не понял.
Если есть время/желание - посмотрите.
Но честно говоря это уже выходит за рамки форумной помощи и мне не очень удобно о таком просить.
Спасибо сказали:

Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: Установка МФУ

Сообщение Hephaestus »

UnixNoob
Ну, вот примерно так.
scx4216f_driver.SlackBuild.gz
Решение, можно сказать, в лоб.
Создаются каталоги, раскидываются файлы, выставляются права.
Создаются симлинки, генерится конфиг.
Поскольку устройства у меня нет, ставить собранный пакет мне бессмысленно.
Возможно, я что-то упустил, но с виду всё нормально.

Тем не менее, это ещё не всё.
В оригинальных скриптах ещё выполняется генерация файлов для udev.
В принципе, нужный кусок можно выдернуть прямо из скрипта
и воткнуть в doinst.sh, но это я не пробовал. Там надо посмотреть, что к чему.

Попробуйте пока этот вариант. Возможно, что-то и взлетит.
Насчет правил udev подумаем.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:

Аватара пользователя
UnixNoob
Сообщения: 663
ОС: Slackware

Re: Установка МФУ

Сообщение UnixNoob »

Hephaestus спасибо большое, попробую - отпишусь.
Спасибо сказали:

Аватара пользователя
UnixNoob
Сообщения: 663
ОС: Slackware

Re: Установка МФУ

Сообщение UnixNoob »

Hephaestus
Принтер заработал.
Сканер по команде sane-find-scanner пишет:

Код: Выделить всё

# Your USB scanner was (probably) detected. It may or may not be supported by
  # SANE. Try scanimage -L and read the backend's manpage.
А scanimage - L выдает это:

Код: Выделить всё

device `smfp:usb;04e8;3409;6758-04020434815' is a Samsung SCX-4x16 Series on USB Scanner
При открытии xsane в названии окна видно что он нашел сканер, так же при открытии Load Device settings он сам открывает путь к файлу .drc,
но при нажатии кнопки scan пишет:
Failed to start scanner. Error during device I/O.
А откуда вы узнали вот это все:

Код: Выделить всё

mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/
mkdir -p $PKG/opt/samsung/printer/share/ppd/cms
mkdir -p $PKG/opt/smfp-common/printer/{lib,bin}/
mkdir -p $PKG/opt/smfp-common/scanner/lib/
mkdir -p $PKG/opt/smfp-common/scanner/share/locale/fr/
mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/cups/backend
mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/cups/filter
mkdir -p $PKG/usr/share/locale/fr/LC_MESSAGES/

#cp -R noarch/share/ppd $PKG/opt/samsung/printer/share

install -m644 noarch/share/ppd/*.ppd $PKG/opt/samsung/printer/share/ppd
install -m644 noarch/share/ppd/cms/* $PKG/opt/samsung/printer/share/ppd/cms

install -m755 $ARCH/libscmssc.so $PKG/opt/smfp-common/printer/lib/
install -m755 $ARCH/pstosecps $PKG/opt/smfp-common/printer/bin/
install -m755 $ARCH/rastertospl $PKG/opt/smfp-common/printer/bin/
install -m755 $ARCH/smfpnetdiscovery $PKG/opt/smfp-common/printer/bin/
install -m755 $ARCH/libsane-smfp.so.1.0.1 $PKG/opt/smfp-common/scanner/lib/
install -m644 noarch/share/locale/fr/LC_MESSAGES/sane-smfp.mo $PKG/opt/smfp-common/scanner/share/locale/fr/
install -m644 noarch/pagesize.xml $PKG/opt/smfp-common/scanner/share/
install -m644 noarch/libsane-smfp.cfg $PKG/opt/smfp-common/scanner/share/
install -m644 noarch/oem.conf $PKG/opt/smfp-common/scanner/share/
install -m644 noarch/etc/smfp.conf $PKG/$SANE_CONF_DIR/smfp-samsung.conf


ln -sf "/opt/smfp-common/printer/bin/smfpnetdiscovery" "$PKG/usr/lib${LIBDIRSUFFIX}/cups/backend"
ln -sf "/opt/smfp-common/printer/bin/rastertospl" "$PKG/usr/lib${LIBDIRSUFFIX}/cups/filter"
ln -sf "/opt/smfp-common/printer/bin/pstosecps" "$PKG/usr/lib${LIBDIRSUFFIX}/cups/filter"
ln -sf "$SANE_DIR"/libsane-smfp.so.1 "$PKG/$SANE_DIR"/libsane-smfp.so
ln -sf "$SANE_DIR"/libsane-smfp.so.1.0.1 "$PKG/$SANE_DIR"/libsane-smfp.so.1
ln -sf "/opt/smfp-common/scanner/lib/libsane-smfp.so.1.0.1" "$PKG/$SANE_DIR"
ln -sf "/opt/smfp-common/scanner/share/locale/fr/sane-smfp.mo" "$PKG/usr/share/locale/fr/LC_MESSAGES/"


cat <<EOF >$PKG/$SANE_CONF_DLL_DIR/smfp.conf
smfp
EOF

Кратенько порядок действий, если вас не затруднит. Потому что я смотрел в install.sh и package_install.sh и не понял куда и что :unsure:
Спасибо сказали:

Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: Установка МФУ

Сообщение Hephaestus »

UnixNoob писал:
29.11.2020 23:30
А откуда вы узнали вот это все
На самом деле всё невероятно просто.
Я пошел по пути наименьшего сопротивления и запустил скрипты в контейнере.
Подменил в скрипте каталог назначения, чтобы установка прошла "в чистый каталог".
Таким образом стало известно, какие файлы куда ставятся.
Это всё не сразу, а по итогам нескольких запусков install/uninstall.

Потом я выставил в некоторых местах set -x, чтобы был отладочный вывод на экран.

Далее, я обратил внимание на сообщения типа "Registering CUPS backend" ("Registering SANE backend") во время установки.
Прошерстив скрипты на предмет этих сообщений, нашел соответствующие функции.
Выставляя выборочно set -x в функциях, смотрел, что происходит в скрипте.
Таким образом, было выявлено остальное: симлинки, редактирование конфигов и пр.

Если действовать чисто аналитическим путем (без запуска скриптов), будет примерно то же самое,
только дольше: нужно смотреть скрипты от стартового и вглубь. Встретив вызов функции, искать в скриптах её реализацию и смотреть, что она делает. Просмотр отладочной информации в процессе выполнения проще в том смысле, что можно видеть уже присвоенные значения переменных. В самом скрипте не всегда понятно, чему равна переменная.

Кстати, обычный запуск этих скриптов завершится с ошибкой: не отрабатывает mktemp. Пришлось подправить.
UnixNoob писал:
29.11.2020 23:30
Потому что я смотрел в install.sh и package_install.sh и не понял куда и что
Нужно смотреть дальше: printer.pkg. Там внутри функция do_install(), из которой
вызывается install_base_files(). Вот в ней как раз раскидывание файлов по каталогам (для принтера).
Для сканера всё аналогично в файле scanner.pkg.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:

Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: Установка МФУ

Сообщение Hephaestus »

UnixNoob писал:
29.11.2020 23:30
А scanimage - L выдает это:
device `smfp:usb;04e8;3409;6758-04020434815' is a Samsung SCX-4x16 Series on USB Scanner

при нажатии кнопки scan пишет:
Failed to start scanner. Error during device I/O.
Мда. Я подозреваю, что у Вас отсутствует файл устройства /dev/scanner или подобный.
А вообще, не исключено, что устройств в системе должно быть два: принтер и сканер,
потому что CUPS ничего не знает о сканерах, а SANE ни сном, ни духом о существовании принтеров.
Поскольку с udev мы ничего не делали, то устройство сейчас в лучшем случае одно.
Если SANE пытается обращаться к устройству, которое на самом деле принтер, то понятно, что будет ошибка.
Но это всё домыслы. В режиме экстрасенса сложновато анализировать ситуацию.
Реальную картину видно только Вам.

Короче, надо бы дожать правила udev.
Причем, не обязательно именно те, которые генерируются в скриптах, хотя и их тоже.
Правила udev там в основном для "горячего подключения" устройства.
А в данном случае они представляют интерес с точки зрения создания файлов устройств
и присвоения всяких там "правильных" имен.

Кстати, нажатие кнопки scan - это же в программе? Или на аппарате?
Аппаратная, скорее всего, сейчас не работает, но кто знает...
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:

Аватара пользователя
UnixNoob
Сообщения: 663
ОС: Slackware

Re: Установка МФУ

Сообщение UnixNoob »

Hephaestus писал:
30.11.2020 01:07
На самом деле всё невероятно просто.
Да уж, проще не придумаешь. :)
Hephaestus писал:
30.11.2020 01:07
Я пошел по пути наименьшего сопротивления и запустил скрипты в контейнере.
Это docker или что-то родное из linux?
Hephaestus писал:
30.11.2020 01:07
Нужно смотреть дальше: printer.pkg. Там внутри функция do_install(), из которой
вызывается install_base_files(). Вот в ней как раз раскидывание файлов по каталогам (для принтера).
Посмотрю.
Hephaestus писал:
30.11.2020 08:22
Мда. Я подозреваю, что у Вас отсутствует файл устройства /dev/scanner или подобный.
А он должен быть? Или появиться после установки драйвера?
Hephaestus писал:
30.11.2020 08:22
Короче, надо бы дожать правила udev.
Я с радостью, куда смотреть?
Hephaestus писал:
30.11.2020 08:22
Кстати, нажатие кнопки scan - это же в программе? Или на аппарате?
Программы, на аппарате нет отдельно кнопки сканирования, только режим копира, для этого ПК не нужен совсем.
Спасибо сказали:

Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: Установка МФУ

Сообщение Hephaestus »

UnixNoob писал:
30.11.2020 20:17
Да уж, проще не придумаешь.
Просто, в том смысле, что никаких чудес.

Берем картину мироздания
и тупо смотрим, что к чему (c).

В смысле, берем скрипты, разбираем по косточкам, пишем свои.
Эдакий "анализ и синтез", да.
На самом деле это всё проще, чем кажется на первый взгляд.
UnixNoob писал:
30.11.2020 20:17
А он должен быть? Или появиться после установки драйвера?
Ну, какой-то файл должен быть. Иначе как обращаться к устройству? По идее, появление файла устройства происходит при загрузке драйвера в память.
От udev это не зависит. Но udev может помочь в другом: выставить права доступа, выполнить команду (или вызвать скрипт), присвоить более удобное имя (или создать симлинк).

Вывод scanimage -L должен показать нечто такое
smfp:/dev/scanner0
А в Вашем случае вместо этого мы видим
UnixNoob писал:
29.11.2020 23:30
`smfp:usb;04e8;3409;6758-04020434815'
то есть вместо имени файла VID/PID и серийный номер, судя по всему.

Запуск сканирования из командной строки выглядит как-то так:
scanimage backend:/dev/scanner --format pnm > outfile.pnm
то есть для Вашего аппарата по идее должно быть так:
scanimage smfp:/dev/scanner --format pnm > outfile.pnm

А с учетом имеющихся данных получается как-то так:
scanimage `smfp:usb;04e8;3409;6758-04020434815' --format pnm > outfile.pnm
я собственно, даже не соображу, как это правильно записать.

Не знаю, поможет ли здесь udev(думаю, можно его заставить), но в некоторых conf-файлах прописано имя /dev/scanner. Возможно, это стоит сделать, но целевой conf-файл слишком уж отличается от всех прочих. Так что здесь пока неясно.
Да, кстати, оригинальные скрипты редактируют dll.conf: добавляют туда строку "smfp", и "отключают" строку "geniusvp2". Я сделал немного иначе: создал отдельный файл и поместил его в подкаталог dll.d.
Почему так? Создать новый файл при установке пакета и удалить этот файл при удалении пакета - это проще, чем редактировать существующий файл при установке пакета, а потом "вертать взад" при удалении пакета.
Так вот, dll.conf я не трогал и соответственно, наличие строки "geniusvp2" не проверял. На что она влияет, судить не берусь. В моих файлах такой строки нет, но тем не менее.

UnixNoob писал:
30.11.2020 20:17
Я с радостью, куда смотреть?
Да всё туда же - в скрипты.
Если есть энтузиазм, можете эту маленькую задачу решить в качестве упражнения на "анализ и синтез".
Итак, задача: Вытащить из скрипта кусок кода, который генерирует файл правил udev на основе шаблона.
Полученный кусок кода изменить таким образом, чтобы его можно было вставить в SlackBuild, например.
Это значит, что нужно оставить только значимую часть кода, убрав всю обвязку (сопутствующие функции, запись логов, словом всё, что не имеет отношения к слакбилду).
Отправная точка: модуль scanner-script.pkg, функция fill_full_template().
Инструменты: терминал, любимый текстовый редактор, grep (больше вроде бы ничего не нужно).

Сам файл правил udev, как оказалось, не содержит ничего интересного - всего лишь присваивает владельца/группу и выставляет права доступа. Я ожидал большего, честно говоря. С учетом того, что вместо имени файла устройства выводится всякая техническая премудрость, возможно имеет смысл запрячь udev на предмет присвоения имени или создания симлинка.

Вариант файла правил udev, как он создается оригинальными скриптами, представлен под спойлером.
Насколько я понимаю, он всегда выходит одинаковый.
В общем-то, можно не заморачиваться с генерацией, а взять его "как есть".
Spoiler

Код: Выделить всё

# This file is a part of Unified Linux Driver
# Rules to allow low level USB device access for smfpautoconf
#
# For new distributions,
# Permissions and group are set according to common libsane rules
#

ACTION!="add", GOTO="smfp_label_end"

# Check device type
ENV{DEVTYPE}=="usb_device", GOTO="smfp_create_usb_dev"

# Check SUBSYSTEM (should be either "usb" or "usb_device")
SUBSYSTEM=="usb", GOTO="smfp_create_usb_dev"
SUBSYSTEM=="usb_device", GOTO="smfp_create_usb_dev"

GOTO="smfp_label_end"

LABEL="smfp_create_usb_dev"

# Check Vendor ID
ATTR{idVendor}!="04e8", GOTO="smfp_label_end"

ATTRS{idProduct}=="3425", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="341c", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="342a", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="343d", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3456", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="345a", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3427", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="343a", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3428", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="343b", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3455", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3421", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3439", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3444", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="343f", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="344e", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3431", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="345c", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="344d", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3462", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3464", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3461", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3460", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="340e", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3435", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="340f", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3441", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="344f", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3413", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="341b", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="342e", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3426", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="342b", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3433", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3440", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3434", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="345b", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3457", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="341f", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3453", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="344b", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3409", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3412", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3419", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="342c", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="343c", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3432", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="342d", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3430", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="342f", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3446", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="341a", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3437", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3442", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3466", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="340d", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="341d", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3420", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3429", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3443", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3438", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="344c", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="345d", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3463", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3465", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3450", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3468", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3469", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3467", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="346b", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="346a", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="346e", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3471", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3472", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="347d", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="347c", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="347e", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3481", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3482", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3331", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3332", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3483", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3484", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3485", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3478", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3325", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3327", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="346f", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3477", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3324", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3326", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3486", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3487", ENV{libsane_matched}="yes"
ATTRS{idProduct}=="3489", ENV{libsane_matched}="yes"

ENV{libsane_matched}=="yes", OWNER="root", MODE="664", GROUP="lp"

LABEL="smfp_label_end"
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:

Аватара пользователя
UnixNoob
Сообщения: 663
ОС: Slackware

Re: Установка МФУ

Сообщение UnixNoob »

Hephaestus писал:
30.11.2020 22:57
Если есть энтузиазм, можете эту маленькую задачу решить в качестве упражнения на "анализ и синтез".
Итак, задача: Вытащить из скрипта кусок кода, который генерирует файл правил udev на основе шаблона.
Посмотрю на днях, отпишусь потом о результатах.
Спасибо сказали:

Аватара пользователя
UnixNoob
Сообщения: 663
ОС: Slackware

Re: Установка МФУ

Сообщение UnixNoob »

Hephaestus писал:
30.11.2020 22:57
Вариант файла правил udev, как он создается оригинальными скриптами, представлен под спойлером.
Насколько я понимаю, он всегда выходит одинаковый.
Посмотрел немного файлы.
Он извлекает из sane.rules имя я так понял, для будущего файла rules.

Код: Выделить всё

80     RULES=$(ls /etc/udev/rules.d/*sane*.rules /lib/udev/rules.d/*sane*.rules 2>/dev/null)
181     NUMBER=100
182     for RULE in ${RULES}
183     do
184         RULE=$(basename ${RULE})
185         CUT1=$(echo ${RULE} | cut -f1 -d'-')
186         if [ ${#RULE} -ne ${#CUT1} ]; then
187             NUM=$CUT1       
188         else
189             CUT1=$(echo ${RULE} | cut -f1 -d'_')
190             if [ ${#RULE} -ne ${#CUT1} ]; then
191                 NUM=$CUT1
192             fi
193         fi
194         if [ ${NUMBER} -gt ${NUM} ]; then
195             NUMBER=${NUM}
196         fi
197     done
198     RULE_NUMBER=$((NUMBER-1))

А для генерации этого файла берется файл /etc/smfp.rules.in
Т.е получается мне надо создать файл smfp.rules и положить в /etc/udev/rules.d

Только там еще правила HAL создаются дальше и hotplug. Но hotplug я так понял не обязателен, а вот на счет hal не знаю.
Еще я что-то в /dev/ и принтера то не нашел. Но я так понял для него они не создаются, все только с cups связано.
Я конечно не знаю как ребята с HP предполагают это устанавливать в Linux. Сейчас еще у одних systemd у других нет.
Надо про контейнеры почитать в итоге. На случай таких вот драйверов и скриптов установки.
Спасибо сказали:

Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: Установка МФУ

Сообщение Hephaestus »

UnixNoob писал:
03.12.2020 22:18
Он извлекает из sane.rules имя я так понял, для будущего файла rules.
Конкретно этот момент я не отслеживал. Меня интересовало содержимое, а не имя.
Имя-то присвоить - вообще не проблема.
UnixNoob писал:
03.12.2020 22:18
А для генерации этого файла берется файл /etc/smfp.rules.in
Т.е получается мне надо создать файл smfp.rules и положить в /etc/udev/rules.d
Правильно. Вот эту самую генерацию я и предлагал Вам выдернуть из скриптов. В качестве "домашнего задания".
Получиться должно то, что я показывал по спойлером.
Впрочем, как я уже говорил, можно сохранить текст из спойлера в файл и просто включить в пакет.
Поскольку этот файл всегда один и тот же. Хотя я бы его модифицировал. А заодно поэкспериментировал бы с конфигами. Есть там одна идея.
UnixNoob писал:
03.12.2020 22:18
а вот на счет hal не знаю.
Чего Вы не знаете? Нет его. Сдох он. Уже лет десять как. Последняя версия в апстриме была в 2009 году.
В состав Slackware входил во времена версии 13.37. В 14.0 уже не было.
На смену HAL, кстати, пришел как раз udev. Так что тут и сомневаться нечего.
На кой ляд в этих скриптах предусмотрен вариант для HAL, я не знаю. Скорее всего, тянется ещё с тех времен.
UnixNoob писал:
03.12.2020 22:18
Я конечно не знаю как ребята с HP предполагают это устанавливать в Linux.
Ну, как? Обыкновенно. Распаковали тарбол, запустили скрипты, всё сгенерировалось/раскидалось, симлинки создались.
А дальше перезапуск - всё должно работать.
Все эти "установщики от производителя" - они практически все такие. Более продвинутые предлагают разные режимы запуска и даже генерируют пакеты под разные дистры.

В данном случае рестарт CUPS в процессе работы скрипта, правда, не сработал, но это в контейнере. В основной системе, может, и сработал бы. Я с этим не разбирался, поскольку для создания пакета это несущественно.
UnixNoob писал:
03.12.2020 22:18
Надо про контейнеры почитать в итоге.
Про контейнеры могу поделиться опытом. В контексте их использования в Slackware.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:

Аватара пользователя
UnixNoob
Сообщения: 663
ОС: Slackware

Re: Установка МФУ

Сообщение UnixNoob »

Hephaestus писал:
04.12.2020 07:37
Сдох он. Уже лет десять как.
Понятно.
Hephaestus писал:
04.12.2020 07:37
Про контейнеры могу поделиться опытом. В контексте их использования в Slackware.
Поделитесь, буду знать в какую сторону смотреть хотя бы, чтобы ознакомиться с вопросом.
Спасибо сказали:

Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: Установка МФУ

Сообщение Hephaestus »

UnixNoob писал:
04.12.2020 11:04
Поделитесь, буду знать в какую сторону смотреть хотя бы, чтобы ознакомиться с вопросом.
Сначала я остановился на варианте с LXC. В частности потому, что нашлись материалы на русском языке.
Затем, немного вникнув в тему, понял, что лучше запускать непривилегированные контейнеры,
и таким образом перешел к использованию связки LXC/LXD. Разбирался с помощью цикла статей (это не в контексте Slackware, а вообще), плюс на оф. сайте есть некоторые материалы на русском.

Что могу отметить по опыту использования.
Непривилегированный контейнер разворачивается из готового (заранее подготовленного) образа системы.
Образ загружается из Сети. Также можно создать собственный образ. И даже опубликовать его.
Сложность в том, что LXC/LXD изначально заточены под Ubuntu, соответственно, и образы убунтовские (не все, но многие).
Но контейнер - это не виртуальная машина, то есть не полностью изолированная среда. Это, скорее, chroot с дополнительными мерами изоляции. Следовательно, нельзя, скажем, находясь в Slackware, развернуть в контейнере Windows7.
Развернуть Ubuntu, находясь в Slackware, может быть, и можно, но я не пробовал. Точнее, пробовал, но сразу оно не взлетело, а разбираться мне было некстати. Мне нужно было иметь в контейнере Slackware, и я копал в этом направлении.
А раз нужна Slackware, значит, нужен образ Slackware. Один такой образ нашелся, но мне не подошел (уже не помню, почему).
И я создал свой.
Вкратце это так:
Подготавливаем файл нужного размера (пустой). Это будет "диск", на который поставим систему.
Настраиваем chroot к этому "диску" (со всеми сопутствующими манипуляциями).
Устанавливаем Slackware на этот "диск" (в chroot).
Получается такой "виртуальный диск" с установленной системой внутри.
Упаковываем его для создания образа системы под контейнер.
Полученный образ используем для разворачивания контейнера.
Разумеется, нужно подготовить файлы конфигурации контейнера, в которых будут настройки сети, указаны устройства (в том числе наш "диск") и т.п.
При установке системы в chroot нужно не забыть включить туда необходимые пакеты (пакеты можно поставить и позже),
но если есть готовые, лучше включить сразу. Понадобятся базовые настройки системы (создание пользователя, например).
Кроме того, я создал файлы профилей в числе прочего содержащие определенные настройки приглашения командной строки.
Таким образом, в терминале сразу видно, когда мы в контейнере, а когда за пределами.
Также пригодится каталог обмена (share) через него можно будет перекидывать файлы в контейнер и обратно.

О возможных проблемах.
Поскольку LXC/LXD ориентирован на Ubuntu, он хочет systemd, а точнее, cgroup/systemd.
В Slackware этой штуки нет, поэтому для контейнера необходимые элементы создаются.
Вообще, это происходит ещё на этапе установки lxd, но нужно иметь в виду.

По умолчанию используется файловая система zfs.
Но я несколько раз столкнулся с тем, что при очередном запуске контейнера дисковые устройства попросту отсутствовали.
Соответственно, контейнер не запускается. И вместо работы с контейнером начинаешь ковырять zfs.
Лично я грешу на то, что поддержки zfs нет в ядре linux, она подгружается отдельным модулем.
Когда устройства исчезли в очередной раз, я плюнул и перешел к использованию btrfs, которая в этом смысле значительно стабильнее.
В btrfs я вижу ещё и тот плюс, что она представлена файлом на диске. И этот файл можно примонтировать при случае (без запуска контейнера). Насколько я помню, zfs в системе представлена иначе, и прицепиться к ней вне контейнера может быть сложнее (во всяком случае, менее удобно).
Существует мнение, что btrfs старая, нестабильная и вообще, zfs лучше, но я не расположен спорить на эту тему. Я сделал выбор, исходя из практики.

Все эти манипуляции по созданию "виртуального диска", установке системы в chroot, настроек, созданию конфигов для контейнера,
созданию самого контейнера - это довольно много "ручной работы". Мне это быстро надоело и я обернул это дело в скрипты.
Кроме того, бывает нужно разные этапы процесса выполнять по отдельности, то есть только те, которые нужны (скажем, если образ уже создан, не нужно создавать его ещё раз), с этой целью был создан Makefile, который позволяет нормально этим рулить.

Это всё касается LXC/LXD. Насколько это проще (или сложнее), например, в docker, я судить не берусь.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:

Аватара пользователя
UnixNoob
Сообщения: 663
ОС: Slackware

Re: Установка МФУ

Сообщение UnixNoob »

Hephaestus
хорошо, спасибо, посмотрю тогда этот вариант и может какое-то сравнение с docker. Про docker я читал и так понял там образы берутся готовые, по-крайней мере по началу, а образ слепок файловой системы. А контейнером там называют запущенное приложение, которое думает что оно работает одно, просто нет гипервизора, как в виртуалке. А вот что считать таким вот "приложением" в задаче установки пакета я пока не понимаю. Но возможно пойму почитав про LXC/LXD.
Я когда вижу что что-то требует systemd иду в gentoo wiki сейчас. Так как там оно на выбор,бывает там какая-то полезная информация встречается. Но думаю это вы все знаете,это так,мысли в слух.
Спасибо сказали:

Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: Установка МФУ

Сообщение Hephaestus »

UnixNoob
Забыл один важный момент.
LXC и LXD - это две части одного инструмента.
LXD - демон, LXC - клиент.
Причем, LXC ставится из официальной репы (и может работать самостоятельно, но это будут привилегированные контейнеры).
А LXD ставится из SBo (и соответственно, работает в паре с LXC, обеспечивая создание непривилегированных конетейнеров).
Так вот, версия LXC в репе - 2.0.9, а версия LXD в SBO - 3.0.1. В какой-то момент это перестало работать в таком сочетании. И мне пришлось собрать пакет LXC версии 3.0.3.
Кроме того, при сборке LXD из SBo у меня была какая-то проблема (что-то там не собиралось, уже не помню, из-за чего) и я накладывал патч.

Так что не исключено, что придется повозиться, но в целом, всё вполне решаемо.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:

Аватара пользователя
UnixNoob
Сообщения: 663
ОС: Slackware

Re: Установка МФУ

Сообщение UnixNoob »

Либо я что-то еще не понимаю, либо какие-то проблемы с xsane и драйверами samsung.
Создал в /etc/udev/rules.d/ файл smfp.rules, перезапустил udev (ну и в процессе поисков было еще парочку перезагрузок), но он как не работал, так и не работает.
Добавлял в /etc/sane.d/dll.conf строчку smfp, ,но в итоге снова ошибка - "Failed to start scanner. Error during device I/O"
В /var/log/syslog падает это:

Код: Выделить всё

xsane: io/hpmud/pp.c 627: unable to read device-id ret=-1 
Пробовал закомментировать "hpio" в /etc/sane.d/dll.conf, в итоге сканнер как-будто готовится сканировать, происходит пару движений и снова та же ошибка failed to start.
После комментирования hpio, в лог еще падает это:

Код: Выделить всё

Dec  6 18:55:48 darkstar /hp-toolbox: hp-toolbox[2244]: warning: Reportlab not installed. Fax coverpages disabled.
Dec  6 18:55:48 darkstar /hp-toolbox: hp-toolbox[2244]: warning: Please install version 2.0+ of Reportlab for coverpage support.
В остальном я не вижу перемен.
scanimage -L:

Код: Выделить всё

device `smfp:usb;04e8;3409;6758-04020434815' is a Samsung SCX-4x16 Series on USB Scanner
Или правила нужно создавать как-то сложнее?
Если открыть в /etc/sane.d файл hp.conf:

Код: Выделить всё

 1 scsi HP
  2 # Uncomment the following if you have "Error during device I/O" on SCSI
  3 #   option dumb-read       
  4 # 
  5 # The usual place for a SCSI-scanner on Linux 
  6 /dev/scanner               
  7 # 
  8 # USB-scanners supported by the hp-backend 
  9 # HP ScanJet 4100C         
 10 usb 0x03f0 0x0101          
 11 # HP ScanJet 5200C         
 12 usb 0x03f0 0x0401          
 13 # HP ScanJet 62X0C         
 14 usb 0x03f0 0x0201          
 15 # HP ScanJet 63X0C         
 16 usb 0x03f0 0x0601          
 17 # 
 18 # Uncomment the following if your scanner is connected by USB, 
 19 # but you are not using libusb 
 20 # /dev/usb/scanner0 
 21 #   option connect-device
т.е в случае usb я так понимаю не используется /dev/scanner. Нужно ли udev правило в целом я не знаю.

Не знаю что ему от меня еще хочется, кто-то при решении подобной проблемы на WinXP в виртуалке уходил. :laugh:
Спасибо сказали:

Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: Установка МФУ

Сообщение Hephaestus »

UnixNoob
UnixNoob писал:
06.12.2020 19:13
Создал в /etc/udev/rules.d/ файл smfp.rules
Какой именно? Который я предъявлял под спойлером выше? Или ещё какой?
UnixNoob писал:
06.12.2020 19:13
Добавлял в /etc/sane.d/dll.conf строчку smfp
Это излишне. Я в слакбилде предусмотрел этот момент.
Если всё, отработало как нужно, то в каталоге /etc/sane.d/dll.d/ есть файл smfp.conf.
UnixNoob писал:
06.12.2020 19:13
Пробовал закомментировать "hpio" в /etc/sane.d/dll.conf
Почему именно эту строчку, а не какую-то другую?
Я писал выше, что в оригинальных скриптах предусмотрено комментирование строки geniusvp2.
Почему? Я не знаю. Вероятно, что-то с чем-то конфликтует. В моей системе такой строки нет, а Вы у себя проверьте. На всякий.
UnixNoob писал:
06.12.2020 19:13
device `smfp:usb;04e8;3409;6758-04020434815'
Я бы начал решение проблемы именно с этого. Эта штука не дает мне покоя.
Здесь должен быть файл устройства. Если его нет, то как обращаться к устройству? Непонятно.
UnixNoob писал:
06.12.2020 19:13
Или правила нужно создавать как-то сложнее?
Сложнее, чем что? Синтаксис правил всегда один и тот же.
Напихаем ли мы туда больше инструкций или меньше - зависит от ситуации.
UnixNoob писал:
06.12.2020 19:13
т.е в случае usb я так понимаю не используется /dev/scanner
Используется. Какой-то файл устройства должен быть в любом случае.
UnixNoob писал:
06.12.2020 19:13
Нужно ли udev правило в целом я не знаю.
Нужно. Как минимум, выставляет владельца/группу и права доступа.
Как максимум - выполняет дополнительные действия (это для разных устройств - по-разному).
С 3G/4G-модемом, например, без дополнительных действий вообще работать невозможно - он просто не переходит в нужный режим. Со сканерами в этом смысле попроще, но всё равно нюансы могут быть.
UnixNoob писал:
06.12.2020 19:13
Не знаю что ему от меня еще хочется
Ничего особенного. Эти скрипты сделаны довольно лихо - под все линуксы сразу. Обычно это означает, что без дополнительных манипуляций оно не взлетит нигде - разные версии ядер, разные механизмы инициализации, разный состав библиотек, разные версии sane.
Но у Вас есть шанс - scanimage -L обнаруживает устройство (и похоже, что именно то устройство, которое нужно). Осталось добиться нормального взаимодействия с этим устройством.
Сейчас главное - чтобы у Вас энтузиазм не иссяк раньше времени. Впрочем, это ведь Вам нужно, а не кому-то ещё.
UnixNoob писал:
06.12.2020 19:13
кто-то при решении подобной проблемы на WinXP в виртуалке уходил.
Самы простой вариант, но это скучно.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:

Аватара пользователя
UnixNoob
Сообщения: 663
ОС: Slackware

Re: Установка МФУ

Сообщение UnixNoob »

Hephaestus писал:
06.12.2020 20:13
Который я предъявлял под спойлером выше?
Да, этот.
Hephaestus писал:
06.12.2020 20:13
Если всё, отработало как нужно, то в каталоге /etc/sane.d/dll.d/ есть файл smfp.conf.
Есть, но я решил попробовать и в dll.conf попробовать добавить.
Hephaestus писал:
06.12.2020 20:13
Почему именно эту строчку, а не какую-то другую?
Кому-то в интернете это помогло, при решении похожей проблемы.
Hephaestus писал:
06.12.2020 20:13
Я писал выше, что в оригинальных скриптах предусмотрено комментирование строки geniusvp2.
Забыл про это, проверю.
Hephaestus писал:
06.12.2020 20:13
Здесь должен быть файл устройства. Если его нет, то как обращаться к устройству? Непонятно.
По адресу шины? Или так нельзя?
Hephaestus писал:
06.12.2020 20:13
Сложнее, чем что? Синтаксис правил всегда один и тот же.
Ну может ему права доступа нужны или чтобы имя было строго конкретное.
Hephaestus писал:
06.12.2020 20:13
Сейчас главное - чтобы у Вас энтузиазм не иссяк раньше времени. Впрочем, это ведь Вам нужно, а не кому-то ещё.
Меня беспокоит не столько мой энтузиазм, сколько вопрос, а решаемо ли это в целом. Может есть какие-то проблемы именно между sane и samsung драйверами, ошибка в логах слишком абстрактная, не указывает ни на что конкретное.
Спасибо сказали:

Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: Установка МФУ

Сообщение Hephaestus »

UnixNoob писал:
06.12.2020 20:34
Кому-то в интернете это помогло, при решении похожей проблемы.
Похожая - не значит, что такая же. Рискну предположить, что там устройство всё-таки было другое.
Или проблема другая.
UnixNoob писал:
06.12.2020 20:34
По адресу шины? Или так нельзя?
А какой он - этот адрес шины? И sane знает, что нужно обращаться по адресу шины?
UnixNoob писал:
06.12.2020 20:34
Ну может ему права доступа нужны
Вот правила udev, которые под спойлером как раз права доступа и выставляют.
Кстати, Вы обратили внимание, что там группа устанавливается как "lp"?.
Это для принтера, скорее всего.
Не исключено, что для сканера нужно что-то иное.
UnixNoob писал:
06.12.2020 20:34
чтобы имя было строго конкретное
А вот именем стоит заняться. Есть одна мысль, которую стоит проверить.
Изложу ниже.
UnixNoob писал:
06.12.2020 20:34
Меня беспокоит не столько мой энтузиазм, сколько вопрос, а решаемо ли это в целом.
Я склонен думать, что решаемо. Самое главное: устройство обнаруживается и определяется. Это уже полдела.
UnixNoob писал:
06.12.2020 20:34
ошибка в логах слишком абстрактная, не указывает ни на что конкретное.
Ну почему же? Кое-что извлечь всё-таки можно.
UnixNoob писал:
06.12.2020 19:13
xsane: io/hpmud/pp.c 627: unable to read device-id ret=-1
Буквально написано следующее: не могу прочитать идентификатор устройства. И возвращает -1 как признак неудачного завершения (в случае успеха возращался бы 0).
Если идентификатор прочитать невозможно, значит, либо его нет вообще (пустой), либо он есть, но какой-то неправильный. Сама по себе эта ошибка мало что дает, остается надеяться, что это не баг в драйвере, и решение проблемы где-то уровнем выше - в настройках.
UnixNoob писал:
06.12.2020 19:13
Dec 6 18:55:48 darkstar /hp-toolbox: hp-toolbox[2244]: warning: Reportlab not installed. Fax coverpages disabled. Dec 6 18:55:48 darkstar /hp-toolbox: hp-toolbox[2244]: warning: Please install version 2.0+ of Reportlab for coverpage support.
А это вообще не ошибка. Это предупреждение о том, что титульные страницы для факса работать не могут без установленного ReportLab версии 2.0 или выше. К Вашей проблеме это относится лишь постольку, поскольку есть у Вас факс.

Что касается имени устройства.
Если посмотреть конфиги в /etc/sane.d/, то можно видеть, что они все устроены примерно одинаково.
Однако файл для Вашего устройства принципиально другой: это xml с каким-то своим содержимым.

Между тем, в файле epson.conf сказано следующее:
# USB scanner:
# There are two different methods of configuring a USB scanner: libusb and the kernel module
# For any system with libusb support (which is pretty much any recent Linux distribution) the
# following line is sufficient. This however assumes that the connected scanner (or to be more
# accurate, it's device ID) is known to the backend.
То есть существует два способа конфигурации usb-сканера: libusb и модуль ядра.
Для начала проверьте, создается ли файл устройства (какой-нибудь /dev/scanner0 или /dev/usb/scanner0).
Если нет, то опробуйте следующий вариант.

Существующий в /etc/sane.d/ файл конфига (smfp-samsung.conf) временно уберите куда-нибудь.
И по аналогии с другими файлами создайте для Вашего устройства конфиг smfp.conf такого содержания:

Код: Выделить всё

usb 0x04e8 0x3409
/dev/usb/scanner0
Если моя гипотеза верна, то вот здесь
device `smfp:usb;04e8;3409;6758-04020434815'
Вы увидите нормальное имя файла. И, может быть, даже что-то заработает.
Если действительно появится имя файла, попробуйте запустить сканирование из командной строки.
Команды я давал выше.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали: