﻿# КМАЗС-ОФИС на Linux: подключение конвертера USB-to-RS485 "Bolid"

Эта инструкция написана для пользователей с минимальным опытом Linux.
Все команды выполняйте по очереди и проверяйте результат после каждого шага.

## 1) Что важно знать заранее

1. В вашем приборе используется USB_SERIAL CH340.
2. Для CH340 в Linux обычно автоматически загружается драйвер ch341.
3. При успешном подключении обычно появляется порт /dev/ttyUSB0 (номер может быть другим).
4. На тестовом приборе определились VID=1a86 и PID=7523.

## 2) Подключите конвертер и проверьте, что Linux его видит

1. Подключите конвертер к USB-порту.
2. Выполните команду:
lsusb
3. Найдите строку с VID:PID 1a86:7523.

Пример строки:
Bus 003 Device 005: ID 1a86:7523 QinHeng Electronics CH340 serial converter

Если устройство не появилось:
- переподключите USB-кабель;
- попробуйте другой USB-порт;
- если это виртуальная машина, проверьте проброс USB в ВМ.

## 3) Проверьте, что драйвер назначился автоматически

1. Выполните:
usb-devices
2. Найдите блок вашего устройства (ориентируйтесь по Vendor=1a86 и ProdID=7523).
3. Проверьте строку I: ... Driver=...

Ожидаемый результат:
Driver=ch341

Если Driver=(none):
- отключите и снова подключите конвертер;
- проверьте сообщения ядра:
dmesg | tail -n 50
- если после переподключения Driver все равно (none), сохраните вывод lsusb, usb-devices и dmesg | tail -n 80 и передайте специалисту.

## 4) Определите имя последовательного порта

Выполните:
ls /dev/ttyUSB* /dev/ttyACM* 2>/dev/null

Обычно будет /dev/ttyUSB0.
Запомните имя порта (например, /dev/ttyUSB0).

Дополнительно можно проверить последние сообщения ядра:
dmesg | tail -n 30

Там обычно видно строку вида:
ch341-uart converter now attached to ttyUSB0

## 5) Права доступа к порту

Если при работе с портом будет ошибка Permission denied:
1. Проверьте группы пользователя:
groups
2. Если нет группы dialout, добавьте пользователя:
sudo usermod -aG dialout $USER
3. Выйдите из сеанса Linux и войдите снова.

## 6) Настройка serial-ports.txt для КМАЗС-ОФИС

Использовать напрямую ttyUSB0 в настройках программы не рекомендуется, потому что номер порта может меняться.
Лучше использовать стабильный путь из /dev/serial/by-id/.

### 6.1 Узнайте стабильное имя устройства

Выполните:
ls /dev/serial/by-id/

Пример:
usb-XXXXX_USB_Serial-if00-port0

Вместо "XXXXX" будет указан VenderId, скорее всего 1a86.

Скопируйте стабильное имя устройства в буфер обмена.

### 6.2 Откройте файл /opt/kmazs/serial-ports.txt

Если файла нет, он будет создан.

Пример:
sudo nano /opt/kmazs/serial-ports.txt

### 6.3 Добавьте строку для конвертера Bolid

Введите текст "bolid=", затем вставьте стабильное имя устройств из буфера обмена (обычно в терминале: Ctrl+Shift+V, либо Shift+Insert, либо правая кнопка мыши -> Вставить):
должно получиться примерно следующее:
bolid=usb-XXXXX_USB_Serial-if00-port0

Можно добавить комментарий строкой выше:
# Конвертер Bolid RS-485 (CH340)

Сохраните файл и закройте редактор (в nano: Ctrl+O, Enter, затем Ctrl+X).

### 6.4 Быстрый способ добавить строку одной командой

Если конвертер подключен, можно добавить строку автоматически:
echo "bolid=$(ls /dev/serial/by-id/ | grep -i USB_Serial)" >> /opt/kmazs/serial-ports.txt

После этого проверьте содержимое файла:
cat /opt/kmazs/serial-ports.txt

## 7) Настройка в программе КМАЗС-ОФИС

1. Откройте: Настройки -> Настройки программы -> RS485.
2. В поле COM-порт выберите bolid (имя из serial-ports.txt).
3. Сохраните настройки и перезапустите программу.

## 8) Краткая диагностика, если не работает

Проверьте по порядку:
1. lsusb показывает устройство 1a86:7523.
2. usb-devices показывает Driver=ch341.
3. Есть порт /dev/ttyUSB0 (или другой /dev/ttyUSB*).
4. В /dev/serial/by-id/ есть usb-XXXXX_USB_Serial-if00-port0.
5. В /opt/kmazs/serial-ports.txt есть строка:
bolid=usb-XXXXX_USB_Serial-if00-port0

Минимальный набор данных для передачи специалисту:
- lsusb
- usb-devices
- dmesg | tail -n 80
- cat /opt/kmazs/serial-ports.txt
