101 lines
3.5 KiB
Bash
101 lines
3.5 KiB
Bash
#!/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"
|