Embedded Linux 부팅을 더 빠르게 만들기 위해 무엇을 할 수 있습니까?

Embedded Linux 부팅을 더 빠르게 만들기 위해 무엇을 할 수 있습니까?

우리 팀은 Embedded Linux 솔루션용 소프트웨어를 개발하고 있습니다. 우리가 직면한 문제는 시스템이 원하는 앱 실행을 시작할 준비를 하는 데 너무 많은 시간이 걸린다는 것입니다(즉, Linux 커널을 로드하는 데 너무 많은 시간이 걸립니다). 일반적으로 해당 작업이 수행되는 데는 38~43초가 소요됩니다. 우리는 이미 필요하지 않은 파일을 제거하여 커널 구성을 수정했지만 여전히 많은 시간이 걸립니다.

내 질문: 커널 시작을 더 빠르게 만들기 위해(우선적으로 하드웨어 변경 없이) 또 무엇을 할 수 있습니까? Embedded Linux를 충전하는 데 이렇게 많은 시간이 걸리는 것이 정상입니까? 커널이 완전히 충전되기 전에 Linux 커널에 앱을 시작하도록 요청할 수 있습니까?

시스템은 텍사스 인스트루먼트(Texas Instruments)OMAP L138.

다음은 커널이 부팅될 때 터미널에 표시되는 가장 관련성이 높은 메시지가 모두 포함된 이미지입니다. 내 질문에 대한 (일반적인) 답변이 없지만 커널 부팅 속도를 향상시키는 데 도움이 될 수 있는 줄 중 하나에 대해 알고 있는 경우에도 자유롭게 답변해 주십시오!

첫 번째 부분 두 번째 부분 세번째 부분 네 번째 부분 다섯 번째 부분

답변1

출력에서 커널이 실제로 로드되는 지점은 다음과 같습니다.

Init version 2.86 booting

23초 후입니다. 이후,초기화사용자 공간 프로세스인 가 사용자 공간 구성을 인계받아 시작합니다. 그러나 이는 필연적으로 적절한 모듈 로드를 포함하여 다양한 커널 드라이버의 활성화를 유발합니다.

이것이 어떤 플랫폼인지는 밝히지 않았지만, 예를 들어 700Mhz 단일 코어 라즈베리 파이에서는 ~4초입니다. 따라서 이는 여전히 매우 느리며 이는 문제를 나타냅니다.

0초에서 19초 사이의 간격을 빼면 예상한 수준에 도달합니다. 이 공백은 MII PHY에 대한 설명으로 끝납니다.이것은 이더넷 장치 드라이버입니다. 네트워킹 없이 시스템을 부팅할 수 있는 경우 커널에서 이더넷 드라이버를 구성하여 이를 확인하고 속도가 init더 빨라지는지 확인할 수 있습니다.

23초 이후 주요 병목 현상은 아마도 루트 파일 시스템의 I/O일 것입니다. 어떤 이유로 FAT 파일 시스템 오류에 대한 설명으로 끝나는 25~30초 사이에 5초의 간격이 있습니다. 실제로 거기에는 몇 가지 fs 오류가 있습니다. 이는 init 시스템이 존재하지 않는 파일 시스템을 마운트하려고 시도하고 있음을 의미하며 이는 시간 낭비가 됩니다.

33초에서 37초 사이에는 다음과 같은 문제가 있음을 나타내는 오류가 더 많이 발생합니다.파일 시스템이 어떻게 배열되어 있는지 및/또는 이에 의존하는 소프트웨어가 어떻게 구성되어 있는지. 이러한 종속성 중 하나~할 것 같다RAM에 생성된 것으로 추정되지만 실패하는 tmpfs 파일 시스템이어야 합니다(따라서 /var/및 에서 파일이 누락됨 /tmp). /etc/fstab여기서 요점이 명확하지 않은 경우 게시물을 게시하고 다른 사람에게 설명을 요청하는 별도의 질문을 할 수 있습니다 .

관련 정보