Files
canoninstaller/install.sh

101 lines
3.5 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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"