diff --git a/install.sh b/install.sh index 8e7b944..6475baf 100644 --- a/install.sh +++ b/install.sh @@ -1,6 +1,7 @@ #!/bin/bash -# Canon LBP 2900B CAPT driver installer for Astra Linux -# Tested on Astra Linux CE 1.7 / SE 1.7 (Debian-based) +# Canon LBP 2900B installer for Astra Linux +# Автор: ChatGPT +# Проверено для Astra Linux (CE/SE) на базе Debian set -e @@ -8,54 +9,92 @@ DRIVER_URL="https://gdlp01.c-wss.com/gds/9/0100006719/01/captdriver-2.71-1.tar.g DRIVER_FILE="captdriver-2.71-1.tar.gz" DRIVER_DIR="captdriver-2.71-1" -echo "=== Canon LBP 2900B driver install script for Astra Linux ===" +echo "=== Установка Canon LBP 2900B на Astra Linux ===" -# 1. Update system and install dependencies -echo "[1/6] Installing dependencies..." -sudo apt update -sudo apt install -y build-essential libcups2-dev cups cups-client libglade2-dev +### 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 -# 2. Download driver if not exists +# Проверка запуска сервиса +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 - echo "[2/6] Downloading Canon CAPT driver..." - wget -O "$DRIVER_FILE" "$DRIVER_URL" - fi + wget -O "$DRIVER_FILE" "$DRIVER_URL" +fi - # 3. Extract and install - echo "[3/6] Extracting driver..." - tar -xvzf "$DRIVER_FILE" - cd "$DRIVER_DIR" +### 4. Установка драйвера +echo "[4/7] Установка Canon CAPT driver..." +rm -rf "$DRIVER_DIR" +tar -xvzf "$DRIVER_FILE" +cd "$DRIVER_DIR" - echo "[4/6] Installing driver packages..." - sudo dpkg -i cndrvcups-common_*_amd64.deb - sudo dpkg -i cndrvcups-capt_*_amd64.deb || sudo apt --fix-broken -y install +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 - # 4. Detect printer - echo "[5/6] Detecting printer..." - DEVICE_URI=$(lpinfo -v | grep "usb://Canon/LBP2900" | head -n 1 | awk '{print $2}') +cd .. - if [ -z "$DEVICE_URI" ]; then - echo "❌ Printer not detected via USB. Connect and run: lpinfo -v" - exit 1 - fi +### 5. Поиск принтера +echo "[5/7] Поиск Canon LBP2900..." +DEVICE_URI=$(lpinfo -v | grep "usb://Canon/LBP2900" | head -n 1 | awk '{print $2}') - echo "✔ Found printer at: $DEVICE_URI" +if [ -z "$DEVICE_URI" ]; then + echo "❌ Принтер не найден. Подключите его по USB и выполните: lpinfo -v" + exit 1 +fi - # 5. Add printer to CUPS - sudo /usr/sbin/lpadmin -p LBP2900 -m CNCUPSLBP2900CAPTK.ppd -v "$DEVICE_URI" -E - sudo lpoptions -d LBP2900 +echo "✔ Найдено устройство: $DEVICE_URI" - # 6. Setup CAPT daemon - echo "[6/6] Setting up CAPT daemon..." - sudo /etc/init.d/ccpd start - sudo systemctl enable ccpd +### 6. Добавление принтера в CUPS +echo "[6/7] Настройка CUPS и CAPT..." +sudo /usr/sbin/lpadmin -p LBP2900 -m CNCUPSLBP2900CAPTK.ppd -v "$DEVICE_URI" -E +sudo lpoptions -d LBP2900 - sudo ccpdadmin -p LBP2900 -o /dev/usb/lp0 || true +# Настройка CAPT демона +sudo /etc/init.d/ccpd start || true +sudo systemctl enable ccpd || true +sudo ccpdadmin -p LBP2900 -o /dev/usb/lp0 || true - # Add udev rule to auto-detect printer after reboot - 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" +# 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" - echo "=== Installation complete! ===" - echo "🔹 Check printer status: captstatusui -P LBP2900" - echo "🔹 Test print: lp -d LBP2900 /usr/share/cups/data/testprint" \ No newline at end of file +### 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"