Доброго всем дня!
Срочно нужно решение проблемы с установкой Xerox Phaser 3010 в 64-bit версию Ubuntu 12.04 LTS.
Драйверы на оф. сайте совместимы только с 32-bit версиями Ubuntu до 8-й включительно и совершенно неюзабельны.
Пытался обновить CUPS до последней оф. версии (1.6.1) - эффекта нет.
Пересобирал пакет с дровами с заменой устаревших зависимостей, доустанавливал вручную недостающие 32-bit библиотеки libcups - эффекта нет.
Принтер, предлагаемый по умолчанию при подключении девайса - Xerox Phaser 3100 - устанавливается, определяется (меняется статус при включении и выключении) но не печатает.
В логах CUPS'а в первых двух случаях пишет "Filter Error" в последнем "Thread still active".
Перелопатил весь инет, принтер новый, солюшена по установке нигде не нашел, как будто только у меня руки кривые, а у всех остальных работает из коробки.
Прошу помощи тех, кто смог победить 3010/3040 или другие принтеры Xerox с аналогичной проблемой на Ubuntu 12.04 LTS.
Возможно, есть опыт успешного подключения на других дистрибутивах?
Заранее спасибо откликнувшимся.
Пользователь решил продолжить мысль 29 Октября 2012, 15:49:43:
Спасибо всем за помощь!..
Принтер работает в Ubuntu 12.04 LTS 64, пишу солюшен!
Пользователь решил продолжить мысль 29 Октября 2012, 16:36:30:
Скачиваем .deb пакет с официальными 32-битными драйверами для принтера, датированные 11 октября 2011 года:
xerox-phaser-3010-3040_1.0-28_i386.zip.
Поскольку наша система 64-битная, нам нужно поставить 32-битные библиотеки, для обеспечения совместимости с 32-битным драйвером. Наверное, все знают, что этот пакет называется ia32-libs. Что может быть проще? Набираем sudo apt-get install ia32-libs. И получаем облом. Пакет не устанавливается, поскольку зависит от пакета ia32-libs-multiarch. Пытаемся установить вначале его. И опять облом, снова зависимости. Зависимости зависят от зависимостей и... Потратив два часа на ручную установку пакетов, которым просто нет конца и края, я оставил это бесперспективное занятие, и стал искать альтернативу.
Вначале пришлось выяснить, почему такие траблы с установкой 32-битных версий библиотек? Оказалось, это связано с переходом на multiarch архитектуру. Пакет ia32-libs теперь 'dummy' - пустышка, и зависит от библиотек, которые в нем раньше содержались. А для установки 32-битных библиотек CUPS'а теперь достаточно набрать sudo apt-get install libcups2:i386. Но это в теории, на практике снова бесконечная череда зависимостей и в итоге ничего не работает. Вроде бы, нововведение хорошее и должно облегчить жизнь юзерам, но на практике стало в сто раз хуже и неудобнее. Либо это баг, либо я чего-то не понимаю и делаю неправильно.
Тогда я решил поступить проще – скачал с Launchpad'а последнюю полноценную версию пакета ia32-libs для Oneric Ocelot скомпиленного под 64-битную архитектуру:
ia32-libs_20090808ubuntu26_amd64.deb.
Как оказалось, здесь тоже не обошлось без зависимостей и требуется установка lib32asound2 lib32bz2-1.0 lib32ffi6 lib32gcc1 lib32ncurses5 lib32ncursesw5 lib32stdc++6 lib32z1 и lsb-release. Но к моему удивлению, пакет и все его зависимости установились без каких - либо проблем, причем последние - автоматически. Ставил пакет при помощи GDebi Package Installer, хотя думаю, dpkg -i даст тот же результат.
После установки пакета обязательно делаем
sudo apt-get update && apt-get upgrade !
Если хочется скачать зависимости, например, для установки принтера на компьютере, где нет доступа к сети, ссылки на скомпиленные пакеты даны на той же странице.
Теперь заходим в терминал, запускаем наутилус из под рута – sudo nautilus.
Перетаскиваем в домашнюю папку рута архив с официальным драйвером принтера, распаковываем сначала архив, потом .deb пакет, берем оттуда папку usr и копируем ее в корень файловой системы. На вопрос о том, что папка уже существует, выбираем Merge (Объединить).
Если кто-то хочет поступить кошерно, можно разобрать пакет, заменить устаревшие зависимости и собрать его обратно. Как сделать это - гугл в помощь, обсуждалось уже не раз. Без этой процедуры пакет устанавливается некорректно. Можно поступить некошерно и воспользоваться методом, приведенным выше, что гораздо быстрее.
Если распаковать пакет не под рутом, принтер печатать не будет из за неправильно настроенных параметров доступа к фильтрам печати (видимо, хозяином сего добра может быть только рут). Конечно, можно установить права на файлы вручную, но имхо, так проще.
Закрываем наутилус, обновляем базу системных библиотек – sudo ldconfig.
Перезагружаемся, включаем принтер, забиваем в браузере
https://localhost:631/admin и попадаем в панель управления CUPS'ом. Опа! А принтер-то, оказывается, уже установлен! Выбираем настройки печати по умолчанию и печатаем тестовую страницу. Работает!
Наслаждаемся результатом!
ps
Теперь apt постоянно предлагает обновить пакет ia32-libs до последней версии multiarch, но из-за бага сделать это невозможно и он постоянно весит в менеджере обновлений и мозолит глаза. Чтобы запретить обновление пакета, вводим в терминале:
echo 'ia32-libs' hold | sudo dpkg --set-selections
Если в дальнейшем захочется обновить пакет, просто заменяем hold на install и вводим команду еще раз.
Если нужно, чтобы пакет не только не обновлялся, но и вообще не отображался в менеджере обновлений, нужно найти пакет в синаптике и выбрать в меню package -> lock version. Наверняка можно как-то сделать это через консоль, но я не нашел.
pps
Если кто-то сможет установить ia32-libs-multiarch так, как это изначально было задумано Марком, прошу вас - отпишитесь в этой теме, думаю, многим будет интересно.