Arduino로 멍청한 터미널을 만들고 있는데 이제 직렬 연결의 출력을 볼 수 있습니다. 로그인/셸은 어떻게 얻나요? 나는 이것을 시도했고 screen /dev/ttyACM0
이를 통해 호스트 컴퓨터에 입력하고 터미널 화면에서 결과를 볼 수 있지만 쉘은 없습니다. screen :exec /bin/sh
명령을 사용하면 제어 xterm 창에서 쉘이 시작되지만 더 이상 직렬 회선으로 출력되지 않습니다. agetty -L /dev/ttyACM0 9600
잠시 앉아서 기다렸다가 화면에 아무것도 표시하지 않고 종료하는 다양한 방법을 시도했습니다 . 이것을 시도했는데 cu -l /dev/ttyACM0 -s 9600
화면 상호 작용 없이 다시 멈춥니다. 화면과 비슷하게 미니컴을 아두이노에 연결했는데 쉘을 구하는 방법을 모르겠습니다. 확실히 말하자면 Arduino 기반 터미널을 통해 내 메인 컴퓨터에 액세스하려고 하는데 내 메인 컴퓨터가 USB 직렬 연결을 통해 Arduino에 쉘 세션을 제공하는 방법을 찾을 수 없습니다.
답변1
agetty
문제에 대해서는 꽤 조용한 것 같습니다. 나는 시도했다:
$ strace -e open agetty -I 'hello\012' -L /dev/ttyS0 9600
열렸 /dev//dev/ttyS0
지만 물론 실패했습니다. 그런 다음 몇 초 동안 멈춰 있다가 멈췄습니다.
매뉴얼 페이지에는 상대 파일 이름이 필요하다고 나와 있으므로 다음을 시도했습니다.
$ strace -e open agetty -I 'hello\012' -L ttyS0 9600
이번에는 올바른 장치를 열었지만 다시 실패합니다.
open("/dev/ttyS0", O_RDWR|O_NOCTTY|O_NONBLOCK) = -1 EACCES (Permission denied)
마지막으로, 이것은 성공했고 tty에 뭔가를 썼습니다:
$ sudo strace -e open agetty -I 'hello\012' -L ttyS0 9600
setsid
리뷰에서 언급한 내용 도 추가해야 합니다 . systemd(사용 가능한 경우)를 사용하여 로그인을 시작할 수도 있습니다.
$ sudo systemctl start serial-getty@ttyACM0
이는 서비스를 사용하는 경우 장치가 생성될 때마다 자동으로 시작될 수 있습니다 agetty
.--keep-baud 115200,38400,9600
systemctl enable
ttyACM0