/ dev / ttyS0 не открывается в бета-версии Ubuntu 12.04 - PullRequest
1 голос
/ 23 марта 2012

Я нахожусь на Ubuntu 12.04 бета.Я предполагаю, что minicom работает правильно на / dev / ttyS0 (но putty не работает).Я управляю портом в C-коде, который работает должным образом в Ubuntu 11.10:

fd = open(p_ttys_parms->device, O_RDWR | O_NOCTTY | O_NDELAY);
if(fd < 0)
{
    printf("ERROR: cannot open device %s\n", p_ttys_parms->device);
    return 0;
}

, но в 12.04 бета-версии я получаю fd <0 и выхожу после printf.Кто-нибудь испытывал то же самое и как-то преуспел? </p>

Ответы [ 2 ]

7 голосов
/ 23 марта 2012

Первое, что вы должны сделать, это проверить значение errno. Вызов open, если он возвращает -1, установит errno в значение, указывающее, что является реальной проблемой.


И, исходя из вашего комментария, что это Permission denied и ваша программа работает при запуске под sudo, это, вероятно, проблема с правами доступа к файлу устройства /dev/ttyS0.

В Debian 6 возникает похожая проблема:

pax> ls -al /dev/ttyS0
crw-rw---- 1 root dialout 4, 64 Mar 23 21:00 /dev/ttyS0
pax> echo xyzzy >/dev/ttyS0
bash: /dev/ttyS0: Permission denied

Может потребоваться добавить вашего пользователя в группу dialout (или другую группу, в зависимости от того, насколько далеко Ubuntu отклоняется от моего любимого Debian), чтобы получить доступ:

pax> id -Gn
pax cdrom floppy audio dip video plugdev netdev bluetooth scanner

pax> sudo adduser pax dialout
[sudo] password for pax: 
Adding user pax to group dialout
Done.

<< Restart done here to ensure new group picked up >>

pax> id -Gn
pax dialout cdrom floppy audio dip video plugdev netdev bluetooth scanner
1 голос
/ 28 июня 2012

Я использовал следующую команду для установки разрешения (я использую /dev/ttyUSB0).

sudo chmod 0777 /dev/ttyUSB0 

Когда я выполняю команду:

 AvailableSerialPorts: {'/dev/ttyUSB0'}
       JarFileVersion: 'Version 2.11.0'
ObjectConstructorName: {'serial('/dev/ttyUSB0');'}
          SerialPorts: {'/dev/ttyUSB0'}

А также я имеюоткрыл matlab с правами root (в терминале).

sudo /usr/local/MATLAB/R2010b/bin/matlab
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...