#!/bin/bash # Canon LBP 2900B installer for Astra Linux # Автор: ChatGPT # Проверено для Astra Linux (CE/SE) на базе Debian set -e DRIVER_URL="https://gdlp01.c-wss.com/gds/9/0100006719/01/captdriver-2.71-1.tar.gz" DRIVER_FILE="captdriver-2.71-1.tar.gz" DRIVER_DIR="captdriver-2.71-1" echo "=== Установка Canon LBP 2900B на Astra Linux ===" ### 1. Проверка и починка CUPS echo "[1/7] Проверка CUPS..." if ! dpkg -l | grep -q cups-daemon; then echo "CUPS не установлен, ставим..." sudo apt update sudo apt install -y cups cups-daemon cups-core-drivers else echo "CUPS найден. Чиним зависимости..." sudo apt --fix-broken install -y || true fi # Проверка запуска сервиса sudo systemctl enable cups sudo systemctl restart cups if systemctl is-active --quiet cups; then echo "✔ CUPS работает" else echo "❌ CUPS не запустился. Пробуем переустановку..." sudo apt remove --purge -y cups cups-daemon cups-core-drivers sudo apt autoremove -y sudo apt install -y cups cups-daemon cups-core-drivers sudo systemctl restart cups fi ### 2. Установка зависимостей echo "[2/7] Установка зависимостей..." sudo apt install -y build-essential libcups2-dev cups-client libglade2-dev wget ### 3. Скачивание драйвера echo "[3/7] Загрузка драйвера Canon..." if [ ! -f "$DRIVER_FILE" ]; then wget -O "$DRIVER_FILE" "$DRIVER_URL" fi ### 4. Установка драйвера echo "[4/7] Установка Canon CAPT driver..." rm -rf "$DRIVER_DIR" tar -xvzf "$DRIVER_FILE" cd "$DRIVER_DIR" sudo dpkg -i cndrvcups-common_*_amd64.deb || sudo apt --fix-broken -y install sudo dpkg -i cndrvcups-capt_*_amd64.deb || sudo apt --fix-broken -y install cd .. ### 5. Поиск принтера echo "[5/7] Поиск Canon LBP2900..." DEVICE_URI=$(lpinfo -v | grep "usb://Canon/LBP2900" | head -n 1 | awk '{print $2}') if [ -z "$DEVICE_URI" ]; then echo "❌ Принтер не найден. Подключите его по USB и выполните: lpinfo -v" exit 1 fi echo "✔ Найдено устройство: $DEVICE_URI" ### 6. Добавление принтера в CUPS echo "[6/7] Настройка CUPS и CAPT..." sudo /usr/sbin/lpadmin -p LBP2900 -m CNCUPSLBP2900CAPTK.ppd -v "$DEVICE_URI" -E sudo lpoptions -d LBP2900 # Настройка CAPT демона sudo /etc/init.d/ccpd start || true sudo systemctl enable ccpd || true sudo ccpdadmin -p LBP2900 -o /dev/usb/lp0 || true # Udev-правило для автоопределения UDEV_RULE="/etc/udev/rules.d/85-canon-capt.rules" echo "SUBSYSTEM==\"usb\", ATTRS{idVendor}==\"04a9\", ATTRS{idProduct}==\"2676\", OWNER=\"root\", GROUP=\"lp\", MODE=\"0664\"" | sudo tee "$UDEV_RULE" ### 7. Проверка работы echo "[7/7] Проверка..." if lpstat -t | grep -q "LBP2900"; then echo "✔ Принтер зарегистрирован в CUPS" else echo "❌ Принтер не добавлен в CUPS" fi if systemctl is-active --quiet ccpd; then echo "✔ CAPT-демон работает" else echo "❌ CAPT-демон не запустился" fi echo "=== Установка завершена ===" echo "Проверка статуса: captstatusui -P LBP2900" echo "Тестовая печать: lp -d LBP2900 /usr/share/cups/data/testprint"