Настройка печати через 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 драйверы.
URL:
Обсуждается: http://www.opennet.dev/tips/info/1869.shtml