내 장치의 커널 부팅 시간을 개선하려고 하는데 도움이 필요합니다. 나는 사용하고있다오맵138커널 버전으로2.6.37부팅 과정은 50초 정도 소요되는데, 꽤 긴 시간인 것 같아요. 다음은 부팅 프로세스의 일부 단계에 대한 이미지입니다. 보시다시피 메시지는 19초 지연됩니다.EMAC: MII PHY 구성내 생각엔 이것이 내 부팅 시간의 주요 문제인 것 같습니다.
몇 가지 테스트를 거친 후 압축 해제 과정에서 이러한 지연이 발생한다는 사실을 발견했습니다.initramfs.cpio.lzma. 나는 몇 가지 메시지를 인쇄하여 그것을 발견했습니다.initramfs.c파일이며 이 지연은 다음에서 발생합니다.하지만내부 루프루트 파일 시스템에 압축 풀기기능. initramfs.cpio.lzma는 5.3MB이고 전체 커널 이미지(uImage)는 7.3MB입니다.
내 질문은: 내가 뭔가 잘못하고 있는 걸까요? 아니면 이를 개선할 수 있는 유일한 방법은 커널 크기를 줄이는 것입니다. 아마도 여러분 중 일부는 이전에 이 문제를 처리한 적이 있을 것이므로 부팅 시간을 지속적으로 개선하는 방법에 대한 조언을 듣고 싶습니다. 매우 감사합니다.
답변1
어쩌면 CPU 병목 현상이 아니라 플래시 미디어 액세스 시간이 느린 것이 아닐까요? TI 포럼에서 0.6MB/초의 플래시 처리량 제한을 논의하는 다음 스레드를 찾았습니다. OMAP-L138 EVM SPI 플래시 읽기 성능 및 부팅 시간
테스트를 위해(Janus가 제안한 대로) 커널 이미지 및/또는 initramfs를 압축할 수 있는지 확인하십시오( gzip -0
가능한 경우). 아니면 (다른 워크스테이션에서) 더 쉽게 사본을 얻으세요.initramfs.cpio.lzma파일, 압축을 푼다파일 시스템 cpio 초기화그런 다음 재압축을 사용합니다 lzma -0
. 새로 압축된 파일을 플래시 미디어에 다시 덮어씁니다. 파일이 약간 더 커질 것으로 예상했습니다. 부팅 속도가 더 빠르면 CPU가 병목 현상을 일으킬 수 있습니다. 시작이 느린 경우 IO가 병목 현상을 일으킬 수 있습니다.
반복 테스트를 사용하는 것도 가능 lzma -9
하지만 압축 및 압축 해제에는 많은 메모리가 필요할 수 있습니다.
다음은 lzma(v5.07) 매뉴얼 페이지에서 발췌한 내용입니다.
On the same hardware, the decompression speed is approximately a constant number of bytes of compressed data per second. In other words, the better the compression, the faster the decom- pression will usually be. This also means that the amount of uncompressed output produced per second can vary a lot. The following table summarises the features of the presets: Preset DictSize CompCPU CompMem DecMem -0 256 KiB 0 3 MiB 1 MiB -1 1 MiB 1 9 MiB 2 MiB -2 2 MiB 2 17 MiB 3 MiB -3 4 MiB 3 32 MiB 5 MiB -4 4 MiB 4 48 MiB 5 MiB -5 8 MiB 5 94 MiB 9 MiB -6 8 MiB 6 94 MiB 9 MiB -7 16 MiB 6 186 MiB 17 MiB -8 32 MiB 6 370 MiB 33 MiB -9 64 MiB 6 674 MiB 65 MiB
답변2
IO 속도가 병목 현상이 아닌 경우 또 다른 옵션은 LZ4 압축을 사용하는 것입니다. LZ4 압축은 gzip보다 파일 크기가 약간 크지만 압축 해제 속도가 매우 빠릅니다.
커널 압축을 위한 커널 구성 옵션은 CONFIG_KERNEL_LZ4=y입니다.
http://events.linuxfoundation.org/sites/events/files/lcjpcojp13_klee.pdf