LINUX.ORG.RU

Настройки стека ttyACM, или плоттер печатает только первые байты

 , , ,


1

1

Добрый день!

Собственно есть плоттер, который в linux видится как /dev/ttyACM0. Я его долго не использовал. Подключаю к новому linux-серверу, и... работает коряво.

В целом что я наблюдаю. Я с помощью inkcut расширения делаю hpgl код. Подключаю к своему старому ноуту, делаю команду «cut /tmp/test.hpgl > /dev/ttyACM0» и плоттер весело жужжит, всё печатает.

Подключаю к серверу, на который был установлен более свежий debian. Плоттер начинает печатать, делает пару движений и... останавливается в процессе.

Явно дело не в плоттере. Что могло измениться в настройках ком-портов в дебиане за последние несколько лет?

Ноут:
Lenovo ThinkPad T60
stretch/sid.
4.10.0-rc6-686-pae #1 SMP Debian 4.10~rc6-1~exp1 (2017-01-31) i686 GNU/Linux

Home-Сервер на базе:
Lenovo ThinkPad x60
Stretch
4.8.0-2-686 #1 SMP Debian 4.8.15-2 (2017-01-04) i686 GNU/Linux

Ранее, пару лет назад, всё работало. С тех пор был заменен жесткий диск и система установлена с нуля.

На сервере, не установить программу setserial, из-за systemd. на ноуте видимо, через другую систему стартует.

Нашел славную утилиту ssty, и привел параметры сервера к параметрам ноута. Отличались параметрами time, eof, и некоторыми по обработе. Сейчас одинаково - но не работает.

stty -F /dev/ttyACM0 -a
speed 115200 baud; rows 0; columns 0; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 5;
-parenb -parodd -cmspar cs8 hupcl -cstopb cread clocal crtscts
ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany -imaxbel -iutf8
-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
-isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop -echoprt -echoctl -echoke -flusho -extproc

Вобщем я отчаялся и не знаю куда копать. Буду рад любым предложениям



Последнее исправление: alukard_aka_404 (всего исправлений: 1)

Может аппаратура/кабель «на грани»? Чуть другие условия и сбоит? Попробуй на меньшей скорости запустить.

Elyas ★★★★★
()

Ну команду cut /tmp/test.hpgl >/dev/ttyACM0 не стоит давать, нужно давать cat /tmp/test.hpgl >/dev/ttyACM0

FeyFre ★★★★
()
Ответ на: комментарий от qbe

плюсую. снести всякие modeswitch/networkmanager для начала.

NiTr0 ★★★★★
()
Ответ на: комментарий от Elyas

Да, Это выглядит возможым, так как разница в подключении была в 5 метров usb-усилителя. Проверю.

alukard_aka_404
() автор топика
Ответ на: комментарий от qbe

Networkmanager'ов нет, а usb-modeswith стоит на обоих одинаково. Да и совсем маловероятно, ибо он работает только в момент подключения устройства.

alukard_aka_404
() автор топика
Ответ на: комментарий от FeyFre

Да, естественно, использовал конечно cat. Прошу прощения, опечатался. Не знал про команду cut.

alukard_aka_404
() автор топика
Ответ на: комментарий от bodqhrohro_promo

Маловероятно. Ибо тестировал один и тот же файл на обоих компьютерах. И в дополнение, файл был однострочный.

alukard_aka_404
() автор топика
Ответ на: комментарий от alukard_aka_404

файл был однострочный

Буффер какойнить переполняется? Или игнорируются/не правильно обрабатываются Xon Xoff? Хендшейка не ждёт?

Deleted
()
Последнее исправление: Chelobaka (всего исправлений: 1)
Ответ на: комментарий от Deleted

Вот с собственно под стеком в назвнии темы я это и хотел бы узнать. Я не знаю где можно и как узнать размер буффера для ttyACM устройства. И найти у меня пока не получилось.

на обоих компах «управление потоком» по версии stty запрещено. Вроде больше неоткуда взяться xon/xoff

Хендшейка?

alukard_aka_404
() автор топика
Ответ на: комментарий от alukard_aka_404

Что-то муторно в этих опциях stty разбираться. Так-то я привык к сutecom. Там всё лишнее спрятано, всё что надо это baudrate, data flow, data bits, stop bits и parity.

Погоди, какой у тебя кабель? Сколько проводов? У тебя хардварный Xon Xoff? Почему ты вообще управление потоком запрещаешь? Он же тупо вывалит всё содержимое файла не дожидаясь ответа. У тебя плоттер как принимает? Пересылаешь файл и нажимаешь печатать или он в процессе самой передачи печатает (то что у CNCшников называется dreepfeeding)?

Ты говоришь, настройки идентичные. Как всегда бывает, что-то да пропустил или ещё какая утилита работает. А если на работающем лаптопе, в процессе передачи файла в другой консоли проверить параметры stty на устройстве?

А, ещё, я на все компы, с которых пересылаю данные на станки, ставлю пакет lrzsz. без него почему-то плохо работают всякие куткомы/миникомы. Может и тебе такое надо?

Deleted
()
Последнее исправление: Chelobaka (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.