[an error occurred while processing this directive]

Печать на МФУ Samsung во FreeBSD с использованием драйверов Linux
Настройка печати через CUPS на МФУ Samsung SCX-4521F с использованием 
драйверов Linux

Окружение: 
        - FreeBSD 7.1-PRERELEASE i386
        - linux_base-f8 из портов
        - linux-png-1.2.8_2 из портов
        - linux-tiff из портов
        - linux-jpeg-6b.34 из портов
        - linux-xorg-libs-6.8.2_5 из портов
        - cups-base-1.3.9_2 из портов
        - cups-smb-backend-1.0_1 из портов

Предполагается также, что линуксолятор вкомпилирован в ядро/подгружен и работает.
Если он работает нормально, то в sysctl можно увидеть версию ядра:

   # sysctl -a|grep linux

   hw.snd.compat_linux_mmap: 0
   compat.linux.oss_version: 198144
   compat.linux.osrelease: 2.6.16
   compat.linux.osname: Linux

1. Качаем с официального сайта Samsung драйвера для Linux 
(Linux Unified Driver). В моем случае файл назывался UnifiedLinuxDriver.tar.gz.

2. Распаковываем:

   # tar -zxf UnifiedLinuxDriver.tar.gz

3. Копируем ppd-файл с драйвером и нужный фильтр в папки CUPSа. Посмотреть, 
какой именно фильтр нужен, можно в соответствующем Вашему принтеру файлу ppd:

   # cat cdroot/Linux/noarch/at_opt/share/ppd/scx4x21.ppd |grep Filter
   *cupsFilter:  "application/vnd.cups-postscript 0 rastertosamsungspl"

   # mkdir /usr/local/share/cups/model/samsung
   # cp cdroot/Linux/noarch/at_opt/share/ppd/scx4x21.ppd /usr/local/share/cups/model/samsung/
   # cp cdroot/Linux/i386/at_root/usr/lib/cups/filter/rastertosamsungspl /usr/local/libexec/cups/filter/

4. Теперь задача добавить в /compat/linux недостающие либы. Перед тем, как 
запускать линуксячий бинарник, стОит выполнить команду

   # /compat/linux/sbin/ldconfig

Далее нужно выяснить, каких библиотек не хватает. Самый простой способ - запускать 
из командной строки /usr/local/libexec/cups/filter/rastertosamsungspl и смотреть,
чего ему не хватает. Подкладывать их в /compat/linux/lib или /compat/linux/usr/lib
по одной, и запускать /compat/linux/sbin/ldconfig. 

В моем случае не хватало следующих:

        libcups.so.2
        libcupsimage.so.2
        libgnutls.so.13
        libgcrypt.so.11
        libgpg-error.so.0

Найти и скачать RPM-пакеты для нужного релиза Fedroa, в которых есть эти библиотеки, 
можно с помощью Web-сервиса RPM Search, например http://rpm.pbone.net/
Итак, у нас появляется 4 файла rpm:

   # ls -1 *rpm

   cups-libs-1.3.4-2.fc8.i386.rpm
   gnutls-1.6.3-2.fc8.i386.rpm
   libgcrypt-1.2.4-6.i386.rpm
   libgpg-error-1.5-6.i386.rpm

Достаем оттуда библиотеки:

   # rpm2cpio cups-libs-1.3.4-2.fc8.i386.rpm | tar -zxf -
   # rpm2cpio gnutls-1.6.3-2.fc8.i386.rpm | tar -zxf -
   # rpm2cpio libgcrypt-1.2.4-6.i386.rpm | tar -zxf -
   # rpm2cpio libgpg-error-1.5-6.i386.rpm | tar -zxf -

Копируем их в /compat/linux:

   # cp -v lib/libgcrypt.so.11.2.3 lib/libgpg-error.so.0.3.1 /compat/linux/lib/
   lib/libgpg-error.so.0.3.1 -> /compat/linux/lib/libgpg-error.so.0.3.1
   lib/libgcrypt.so.11.2.3 -> /compat/linux/lib/libgcrypt.so.11.2.3
   # cp -v usr/lib/libcups* /compat/linux/usr/lib/
   usr/lib/libcupsimage.so.2 -> /compat/linux/usr/lib/libcupsimage.so.2
   usr/lib/libcups.so.2 -> /compat/linux/usr/lib/libcups.so.2
   # cp -v usr/lib/libgnutls.so.13.3.0 /compat/linux/usr/lib/tls/
   usr/lib/libgnutls.so.13.3.0 -> /compat/linux/usr/lib/tls/libgnutls.so.13.3.0
   # /compat/linux/sbin/ldconfig

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

   # /usr/local/libexec/cups/filter/rastertosamsungspl

   INFO: Usage: rastertosamsungspl job-id user title copies options [file]
   ERROR: Wrong number of arguments

6. Далее идем броузером на http://localhost:631/ и подключаем принтер, как обычно.
В разделе Make/Manufacturer должен появиться Samsung, и далее - в разделе

   Model/Driver - SCX-4x21 Series.

Возможно, пропустил что-то, но в принципе суть изложена.
Аналогичным образом, я думаю, можно завести любой принтер, если к нему есть
нормальные Linux драйверы.
 
11.12.2008 , Автор: Alexander Shikoff
Ключи: freebsd, print, driver, hardware / Лицензия: CC-BY
Раздел:    Корень / Пользователю / Печать

[an error occurred while processing this directive]

[an error occurred while processing this directive]