내 임베디드 시스템에서는 Linux 커널 4.19.102와 systemd 240을 사용합니다. 모든 콘텐츠는 buildroot 2019.02.9를 사용하여 생성됩니다.
장치의 직렬 포트를 사용하여 콘솔을 출력했습니다.
bootargs = "console=ttyS0,115200";
내가 사용한 이전 버전(buildroot 2018.05, 커널 4.16.y 및 systemd 237)의 콘솔 측에서는 모든 것이 괜찮았습니다. 다음 파일이 있습니다. 시작 중/etc/systemd/system/getty.target.wants/[email protected]
/sbin/getty -L ttyS0 115200 vt100
이제 콘솔은 일반적인 시작 메시지를 인쇄한 다음 로그 메시지를 두 번 인쇄합니다.
Welcome to MyDevice
MyDevice login:
Welcome to MyDevice
MyDevice login:
"r"로 시작하는 긴 비밀번호로 로그인하려고 하면 다음과 같은 결과가 나타납니다.
Welcome to MyDevice
MyDevice login:
Welcome to MyDevice
MyDevice login: root
Password: r
Login incorrect
MyDevice login:
SSH를 사용하여 로그인할 수 있기를 원합니다. 이 빌드에서 "getty" 서비스가 두 번 시작되는 것을 보았습니다.
# ps | grep getty
988 root /sbin/getty -L ttyS0 115200 vt100
1002 root /sbin/getty -L console 115200 vt100
1117 root grep getty
/etc 파일 현재: /etc/systemd/system/getty.target.wants/console-getty.service
부팅 중이지만 /sbin/getty -L console 115200 vt100
여전히 /sbin/getty -L ttyS0 115200 vt100
부팅 중입니다.
"콘솔" 서비스(이전 버전과 동일한 상태)를 종료하면 로그인할 수 있고 마침내 콘솔이 작동합니다.
콘솔 서비스가 시작되지 않도록 buildroot 또는 systemd를 어떻게 구성합니까?
답변1
문제는 BR2_TARGET_GENERIC_GETTY_PORT가 buildroot 2018.05의 "콘솔"에 설정되어 있다는 것입니다. buildroot 2019.02.9에서 'ttyS0'을 통해 변경해야 합니다.