Обновить install.sh

This commit is contained in:
2025-09-19 12:15:03 +00:00
parent d10a3fccff
commit 8df73cb354

View File

@@ -1,6 +1,7 @@
#!/bin/bash #!/bin/bash
# Canon LBP 2900B CAPT driver installer for Astra Linux # Canon LBP 2900B installer for Astra Linux
# Tested on Astra Linux CE 1.7 / SE 1.7 (Debian-based) # Автор: ChatGPT
# Проверено для Astra Linux (CE/SE) на базе Debian
set -e 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_FILE="captdriver-2.71-1.tar.gz"
DRIVER_DIR="captdriver-2.71-1" 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 ### 1. Проверка и починка CUPS
echo "[1/6] Installing dependencies..." echo "[1/7] Проверка CUPS..."
sudo apt update if ! dpkg -l | grep -q cups-daemon; then
sudo apt install -y build-essential libcups2-dev cups cups-client libglade2-dev 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 if [ ! -f "$DRIVER_FILE" ]; then
echo "[2/6] Downloading Canon CAPT driver..." wget -O "$DRIVER_FILE" "$DRIVER_URL"
wget -O "$DRIVER_FILE" "$DRIVER_URL" fi
fi
# 3. Extract and install ### 4. Установка драйвера
echo "[3/6] Extracting driver..." echo "[4/7] Установка Canon CAPT driver..."
tar -xvzf "$DRIVER_FILE" rm -rf "$DRIVER_DIR"
cd "$DRIVER_DIR" tar -xvzf "$DRIVER_FILE"
cd "$DRIVER_DIR"
echo "[4/6] Installing driver packages..." sudo dpkg -i cndrvcups-common_*_amd64.deb || sudo apt --fix-broken -y install
sudo dpkg -i cndrvcups-common_*_amd64.deb sudo dpkg -i cndrvcups-capt_*_amd64.deb || sudo apt --fix-broken -y install
sudo dpkg -i cndrvcups-capt_*_amd64.deb || sudo apt --fix-broken -y install
# 4. Detect printer cd ..
echo "[5/6] Detecting printer..."
DEVICE_URI=$(lpinfo -v | grep "usb://Canon/LBP2900" | head -n 1 | awk '{print $2}')
if [ -z "$DEVICE_URI" ]; then ### 5. Поиск принтера
echo "❌ Printer not detected via USB. Connect and run: lpinfo -v" echo "[5/7] Поиск Canon LBP2900..."
exit 1 DEVICE_URI=$(lpinfo -v | grep "usb://Canon/LBP2900" | head -n 1 | awk '{print $2}')
fi
echo "✔ Found printer at: $DEVICE_URI" if [ -z "$DEVICE_URI" ]; then
echo "❌ Принтер не найден. Подключите его по USB и выполните: lpinfo -v"
exit 1
fi
# 5. Add printer to CUPS echo "✔ Найдено устройство: $DEVICE_URI"
sudo /usr/sbin/lpadmin -p LBP2900 -m CNCUPSLBP2900CAPTK.ppd -v "$DEVICE_URI" -E
sudo lpoptions -d LBP2900
# 6. Setup CAPT daemon ### 6. Добавление принтера в CUPS
echo "[6/6] Setting up CAPT daemon..." echo "[6/7] Настройка CUPS и CAPT..."
sudo /etc/init.d/ccpd start sudo /usr/sbin/lpadmin -p LBP2900 -m CNCUPSLBP2900CAPTK.ppd -v "$DEVICE_URI" -E
sudo systemctl enable ccpd 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-правило для автоопределения
UDEV_RULE="/etc/udev/rules.d/85-canon-capt.rules" 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 "SUBSYSTEM==\"usb\", ATTRS{idVendor}==\"04a9\", ATTRS{idProduct}==\"2676\", OWNER=\"root\", GROUP=\"lp\", MODE=\"0664\"" | sudo tee "$UDEV_RULE"
echo "=== Installation complete! ===" ### 7. Проверка работы
echo "🔹 Check printer status: captstatusui -P LBP2900" echo "[7/7] Проверка..."
echo "🔹 Test print: lp -d LBP2900 /usr/share/cups/data/testprint" 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"