# ЗАПУСК КМАЗС-ОФИС на Linux - разрешение на использование COM-порта По умолчанию учётные записи пользователей в линуксе не обладают правами на работу с COM-портом. Для того, чтобы программа КМАЗС-ОФИС, запущенная под какой-либо учётной записью пользователя, имела возможность взаимодействовать с COM-портом, необходимо включить пользователя в группу dialout (в дистрибутивах на базе Debian/Ubuntu) или uucp (в дистрибутивах вроде Arch Linux или CentOS). Для этого выполните в терминале команду: sudo usermod -aG dialout $USER Если требуется включить в группу dialout конкретного пользователя, то вместо $USER укажите имя этого пользователя. Для того, чтобы группа dialout применилась к пользователю, необходимо завершить сеанс пользователя и авторизоваться заново (либо перезагрузить компьютер). Внимание! Системного пользователя kmazs-service включать в группу dialout не требуется, поскольку это действие выполняется при инсталляции пакета kmazs-office-qt5 ## Названия COM-портов в Linux Для получения списка COM-портов используйте команду: ls -l /dev/ttyS* (для физических портов) или ls -l /dev/ttyUSB* (для USB-переходников). В Linux COM-порты ttyS0, ttyS1... соответствуют аппаратным портам COM1, COM2 и т.д. ttyUSB0, ttyUSB1... соответствуют внешним устройствам, подключенным через USB-RS232 адаптеры. Чтобы быстро увидеть только активные устройства, можно также использовать команду: dmesg | grep tty ## Тестирование COM-порта Тестирование COM-портов может потребоваться при подключении карт-ридеров, которые подключаются к COM-порту и автоматически отправляют в порт номер приложенной карты. Команда настройки скорости СОМ-порта (из консоли): stty 9600 -F /dev/ttyS1 raw -echo либо такой вариант (с указанием 8 бит данных и стоп-бита): stty -F /dev/ttyUSB0 cs8 cstopb -ixon raw speed 9600 Далее нужно открыть COM-порт (для прослушивания): cat /dev/ttyS1 Если нужно что-то передать в СОМ-порт, нужно открыть другую консоль: echo "1">/dev/ttyS1 - Внимание! команда НЕ совместима с SUDO!!! Если в момент тестирования COM-порта текущий пользователь не входит в группу dialout, то можно предварительно ввести команду sudo su, либо использовать синтаксис: sudo bash -c "echo 1 > /dev/ttyS1" ## Использование дополнительных утилит для тестирования COM-порта: Для более удобного тестирования (особенно если важен двусторонний обмен или просмотр спецсимволов) часто рекомендуют использовать утилиты с интерфейсом, например minicom или screen: screen /dev/ttyS1 9600 Это стандартные инструменты для работы с последовательными портами в Linux, которые значительно упрощают отладку по сравнению с ручным использованием cat и echo. Они есть в официальных репозиториях практически всех дистрибутивов. 1. Minicom Это классический полноэкранный терминал для COM-портов. Он позволяет не только видеть входящие данные, но и настраивать параметры порта через удобное меню. Установка: Ubuntu/Debian: sudo apt install minicom CentOS/RedHat: sudo dnf install minicom Как использовать: Запустите настройку: sudo minicom -s. Выберите Serial port setup. Укажите порт (нажмите A для ввода /dev/ttyS1) и скорость (нажмите E). Отключите аппаратное управление потоком (Hardware Flow Control: No). Сохраните настройки как стандартные (Save setup as dfl) и выберите Exit. Выход: Ctrl+A, затем X. 2. Screen Универсальная утилита для управления консольными сессиями, которая умеет работать как простейший терминальный клиент. Установка: Ubuntu/Debian: sudo apt install screen CentOS/RedHat: sudo dnf install screen Как использовать: Просто укажите устройство и скорость: screen /dev/ttyS1 9600 Выход: Нажмите Ctrl+A, затем сразу клавишу K (kill session) и подтвердите y. Что выбрать? Minicom лучше, если нужно постоянно менять настройки (четность, стоп-биты) или работать в интерактивном режиме с меню. Screen удобнее для быстрой проверки «взлетит или нет», так как он запускается одной короткой командой без предварительной конфигурации.