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

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

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

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

Cannot open /dev/ttyS0: Permission denied

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

Есть идеи?

18
задан 26 August 2013 в 07:33

9 ответов

Посмотрел различные форумы и, похоже, это ошибка, связанная с разрешениями. Вот как я обошёл проблему (длинная версия). Вам понадобятся ОБА пакеты 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 В моем случае мне нужно было снова нажать return, чтобы увидеть ожидаемая подсказка, в других случаях может потребоваться указание скорости.

0
ответ дан 26 August 2013 в 07:33

Устройства tty относятся к группе «dialout», я подозреваю, что вы не являетесь членом этой группы и, следовательно, вам запрещен доступ к / dev / ttyS0, поэтому вам нужно добавить себя в эту группу.

Сначала проверьте, являетесь ли вы членом этой группы:

groups ${USER}

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

sudo gpasswd --add ${USER} dialout

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

0
ответ дан 26 August 2013 в 07:33

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

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

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

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

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

И найдите «отказано» в strace.

0
ответ дан 26 August 2013 в 07:33

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

sudo adduser $USER dialout

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

0
ответ дан 26 August 2013 в 07:33

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

Так, когда я использую:

sudo gpasswd --add ${USER} dialout

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

ilyahoo adm cdrom sudo dip plugdev lpadmin sambashare

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

ilyahoo adm tty dialout cdrom sudo dip plugdev lpadmin sambashare 

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

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

newgrp ilyahoo

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

0
ответ дан 26 August 2013 в 07:33

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

sudo chmod 666 /dev/ttys0

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

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

0
ответ дан 26 August 2013 в 07:33

Вот решение:

Я только что обновил свою операционную систему до Ubuntu 18. Обычно я устанавливал Arduino IDE через веб-сайт 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

}

, так что вы видите, что даже KERNEL действует. Мое предложение:

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

Проблема решена!

0
ответ дан 26 August 2013 в 07:33

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

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

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

0
ответ дан 17 October 2019 в 10:46

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

0
ответ дан 12 March 2020 в 07:06

Другие вопросы по тегам:

Похожие вопросы: