나는 꽤 탄탄한 Linux 경험을 가지고 있지만 임베디드/소형 시스템 세계에서는 거의 경험이 없어서 혼란스럽습니다.
나는 작은 x86 호환 SBC를 사용하는 프로젝트에서 친구의 작업을 돕기로 동의했습니다. 센서 세트와 USB ADC를 사용하여 애플리케이션 모니터링을 위한 데이터 로거 및 모니터로 사용됩니다. 매우 빠르게 부팅해야 하므로 다양한 부팅 최적화, 서비스 비활성화 등을 시도하고 있습니다.
그에게 필요한 최종 결과는 런레벨 2(네트워크 없음, 콘솔만, 데이터 로깅 및 표시에 필요한 서비스를 제외한 모든 서비스 건너뛰기)로 빠르게 부팅하거나 SSH 등 및 네트워크 서비스를 통해 부팅할 수 있는 머신입니다. 런레벨 3에는 DHCP가 포함되어 있습니다. SCP를 통해 기록된 데이터를 다른 호스트에 복사하기 위한 원격 액세스 및 스크립트를 허용합니다.
불행하게도 이것은 궁극적으로 임베디드 시스템이 될 것이므로 시뮬레이션된 하드웨어 입력(스위치나 버튼 등)을 사용하여 부트로더/커널에 런레벨 2 또는 3으로 부팅하도록 지시하는 방법을 찾아야 합니다.
이 이야기를 들어본 사람이 있나요? 일종의 IO(직렬, 병렬 또는 일종의 GPIO로 추측됩니다)를 폴링하기 위해 GRUB 또는 커널 자체를 패치하는 것 외에 제안/아이디어가 있습니까?
고마워요, 제이슨
답변1
정확한 답은 모르지만, 그럴 가능성이 낮거나 어려울 것 같습니다.
따라서 내 제안은 항상 런레벨 2로 부팅하고 10초마다 직렬 포트(또는 사용하는 포트)의 스위치 상태를 확인하는 프로그램을 작성하여 런레벨 3으로 변경하는 것입니다. 이렇게 하면 빠르게 부팅할 수 있고 큰 어려움 없이 런레벨을 변경할 수 있습니다.