Linux cdc_acm устройство - непредвиденные символы, отправленные на USB-устройство

Если /var/www/drupal NFS, монтируются, и rootsquash включен, Вы получите ошибку, такую как это. Необходимо будет внести это изменение с сервера NFS непосредственно или внести изменение как существующий некорневой владелец этих файлов.

Могло также случиться так, что полномочия записи не включены на файлах, с которыми Вы получаете ошибку. Удостоверьтесь, что запись укусила, зеркально отражается, по крайней мере, для владельца файла.

3
13.01.2018, 01:58
1 ответ

После добавления большего количества трассировок ядра я нашел

localhost kernel: [<c12c6757>] process_echoes+0x117/0x2c0
localhost kernel: [<c12c8409>] n_tty_receive_char+0x379/0x770
localhost kernel: [<c121fce4>] ? rb_erase+0xb4/0x120 
localhost kernel: [<c12c89f6>] n_tty_receive_buf+0x1f6/0x380 
localhost kernel: [<c14d62cb>] ? __schedule+0x39b/0x6d0

который показывает tty подсистеме отзывающиеся эхом и стирающиеся символы - это были символы, которые вызывали проблему. Следующий код удаляет tty протокол работы линии, и он теперь работает

struct termios usb_termio; // set the USB to raw mode
memset(&usb_termio, 0, sizeof(usb_termio)); // clear the structure 
cfmakeraw(&usb_termio); 
if (tcsetattr(BLED_fd, TCSANOW, &usb_termio)< 0) {
    perror("tcsetattr usb");
    return(1);
} 

@Sergey Власов при Переполнении стека проанализировал трассировку сообщения USB и и пришел к тому же заключению из другого пути. Его объяснение помогло мне лучше понять, что usbmon производят https://stackoverflow.com/questions/14866899/linux-cdc-acm-device-unexpected-characters-sent-to-device

2
27.01.2020, 21:28

Теги

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