Терминал последовательного порта> Невозможно открыть /dev/ttyS0: В доступе отказано

У меня была Windows XP на этой коробке, и она не удалась. Думая, что это поврежденная ОС, я попытался переустановить ее, но она не удалась. Но потом я попытался установить Ubuntu и не смог запустить его с USB или с HD.

Сделал тест mem и обнаружил, что один из моих 512 МБ стиков (имел 2) не удался. Я удалил плохую и смог установить Ubuntu, но она была вялой.

Я пытался быстро настроить пакетное радио на ураган "Сэнди". Загрузил терминал последовательного порта и смог его использовать, но система продолжала блокироваться. Поэтому установил Xubuntu рядом с ним, планируя на следующий день закончиться, чтобы получить оперативную память для коробки. Включите Xubuntu, и теперь я получаю следующую ошибку с терминалом последовательного порта:

Cannot open /dev/ttyS0: Permission denied

Я хотел бы иметь возможность использовать терминал последовательного порта или эквивалент с Xubuntu, чтобы я мог использовать свой пакетный терминал kpc3 и подключиться к com-порту на задней панели моего компьютера.

Есть идеи?

11 ответов

The tty devices belong to the "dialout" group, I suspect you are not a member of this group and hence are denied access to /dev/ttyS0, so you need to add yourself to that group.

First check if you are a member of that group:

groups ${USER}

..это будет список всех групп, к которым вы принадлежите. Если вы не принадлежите к группе dialout, добавьте себя, например:

sudo gpasswd --add ${USER} dialout

Затем вам нужно выйти из системы и снова войти в нее, чтобы она была эффективной. Тогда посмотрите, решит ли это вашу проблему.

Единственное решение, которое работает для меня, это: (каждый раз, когда я загружаю машину)

sudo chmod 666 /dev/ttys0

Это действительно необходимо исправить во время установки. Я на 15.10 и попробовал 16.04 LTS, все еще там. Похоже, такое простое исправление.

Более старые версии 10.04LTS не имели этой проблемы.

В Ubuntu 18.04 я исправил эту проблему с помощью следующих команд:

sudo usermod -a -G tty $USER
sudo usermod -a -G dialout $USER

И после этого перезагрузите компьютер.

Если у вас все еще есть проблемы, попробуйте отладить с помощью:

strace -ff <COMMAND> > strace.txt 2>&1

И искать "отказано" в страсе.

Вы можете просто использовать эту команду:

sudo adduser $USER dialout

Это добавит текущего пользователя в группу дозвона. Войти и выйти, чтобы вступить в силу.

Ответ прост. Вам нужно добавить своего пользователя в две группы, чтобы иметь доступ к USB-портам. Эти группы dialout а также tty:

sudo usermod -a -G dialout <user>
sudo usermod -a -G tty <user>

замещать <user> с фактическим именем пользователя в этих командах.

Посмотрел различные форумы и, похоже, это ошибка, связанная с разрешениями. Вот как я обошёл проблему (длинная версия). Вам понадобится ОБА cu а также setserial пакеты установлены.

На трех вкладках терминала отслеживается вывод # tail -f /var/log/messagesВот как мы знаем, если у нас есть /dev/ttyUSB0 или нет.

Во второй вкладке просто запустил цикл ls -l это устройство, чтобы увидеть его разрешения и его идентификатор группы является "dialout". Это критический бит. По какой-то причине ваш пользователь ДОЛЖЕН использовать этот GID для cu, так...

На третьей вкладке, как root, сделал # newgrp dialout (чтобы соответствовать GID дозвона). Протестировано с # touch /tmp/anything... делать ls -l в этом файле показано, что он создан пользователем root с группой дозвона, поэтому мы готовы... # cu -l /dev/ttyUSB0В моем случае мне нужно было снова нажать клавишу возврата, чтобы увидеть ожидаемое приглашение, в других случаях может потребоваться указать скорость.

Вот решение:

Я только что обновил свою операционную систему до Ubuntu 18. Обычно я устанавливал IDE arduino через веб-сайт Arduino, потому что тот, что был предоставлен через портал Ubuntu Software, всегда был более старой версией, и мне требовались новейшие функции и поддержка платы. Однако, поскольку я только что установил новейшую операционную систему, я подумал, что в официальном центре программного обеспечения от Ubuntu будет указана новейшая версия IDE, и она это сделала.

Теперь о сочной части! У моего ноутбука и настольного компьютера были одинаковые проблемы с доступом к последовательным портам. я выполнил команду make user из группы удаленного доступа и установил разрешения для последовательного порта, но всегда должен был выходить из системы, а затем снова входить в нее, повторять все заново при каждой перезагрузке! НЕ СМЕШНО!.

На этот раз это не сработало. Даже в центре программного обеспечения опция разрешений для программного обеспечения показывает, что последовательный порт "отключен". нет возможности разрешить доступ к порту даже после того, как все разрешения были предоставлены вручную через окно терминала с помощью sudo.

Я решил удалить Arduino IDE из центра программного обеспечения и установить его с веб-сайта, так что я и сделал. На этот раз я прочитал установочные файлы, просто чтобы увидеть, упоминает ли он разрешения для последовательного порта или нет, ***** конечно, он сделал! ****** все порты настроены с полными правами доступа, доступ пользователей по всем направлениям. Оказывается, это был ответ. после запуска файла arduino-linux-setup.sh, предоставленного arduino, все проблемы последовательного порта были решены. ниже приводится выдержка из arduino-linux-setup.sh файл;

echo ""
echo "******* Add User to dialout,tty, uucp, plugdev groups *******"
echo ""

sudo usermod -a -G tty $1
sudo usermod -a -G dialout $1
sudo usermod -a -G uucp $1
sudo groupadd plugdev
sudo usermod -a -G plugdev $1


acmrules () {

    echo ""
    echo "# Setting serial port rules"
    echo ""

    cat <<EOF
    "KERNEL="ttyUSB[0-9]*", TAG+="udev-acl", TAG+="uaccess", OWNER="$1"
   "KERNEL="ttyACM[0-9]*", TAG+="udev-acl", TAG+="uaccess", OWNER="$1"
   EOF

}

Таким образом, вы видите, что даже ЯДРО осуществляется. Мое предложение:

установить с веб-сайта arduino ide. игнорируйте центр программного обеспечения в это время, пока он не будет восстановлен. Да, ПРОГРАММНЫЙ ЦЕНТР не допускает разрешения на последовательный порт во время установки и навсегда после.

Задача решена!

У меня была такая же проблема, и я попробовал все советы отсюда. Единственное, что у меня сработало, - это удаление среды IDE, которую я загрузил из программного обеспечения Ubuntu, и повторная установка программного обеспечения с сайта Arduino.

Для моего конкретного устройства(/dev/ttyTHS1, что привело меня сюда после поиска), мне пришлось как добавить пользователя в группу, так и изменить группу, чтобы она имела доступ на чтение и запись (ранее у нее был только доступ на запись).

Команды, которые я запускал, были

      » ls -l /dev/ttyTHS1
crw--w---- 1 root tty 238, 1 Nov 27  2023 /dev/ttyTHS1
» sudo usermod -a -G tty $USER
» sudo chmod g+rw /dev/ttyTHS1
» ls -l /dev/ttyTHS1
crw-rw---- 1 root tty 238, 1 Nov 27  2023 /dev/ttyTHS1

В моем случае проблема все еще существует, даже когда я добавляю своего пользователя в группу, используя:

Поэтому, когда я использую:

sudo gpasswd --add ${USER} dialout

и когда я печатаю: groups Я получил этот результат:

ilyahoo adm cdrom sudo dip plugdev lpadmin sambashare

Но когда я печатаю id -Gn ilyahoo Результат:

ilyahoo adm tty dialout cdrom sudo dip plugdev lpadmin sambashare 

Я знаю, что есть проблема, что я не знаю, что это, если честно.

Чтобы получить решение, я просто набрал

newgrp ilyahoo

и проблема была исправлена.

И если все вышеперечисленное не решает проблему, следует:

      sudo chown $USER: /dev/ttyS0

или же

      sudo chown :dialout /dev/ttyS0
Другие вопросы по тегам