큰 문제는 아닌 것 같은데 아직 뭐가 문제인지는 모르겠습니다.
저는 Buildroot 2013.11을 사용하여 SD 카드에서 부팅되는 임베디드 Linux(2.6.39) ARM9 시스템용 이미지를 빌드하고 있습니다. 다른 파일 시스템 형식을 시도했는데 일부는 부팅되지 않습니다.
나는 직장인들을 위해 무엇을 했는가?:예: rootfs.cramfs가 작동 중이고 Linux menuconfig에서 내가 선택했습니다.
File Systems
- Miscellaneous filesystems
- - Compressed ROM file system support (cramfs)
그런 다음 커널을 SD의 첫 번째 파티션에 배치하고 두 번째 파티션에 대해 다음 명령을 사용했습니다 dd
.
sudo dd if=/[path-to-rootfs]/rootfs.cramfs of=/dev/sdb2 bs=2048
커널 명령줄은 다음과 같습니다:
console=ttyS0,115200 root=/dev/mmcblk0p2 rootwait
그리고 아무 문제 없이 시스템을 부팅합니다.
일하지 않는 사람들을 위해 어떻게 해야 합니까?:예: rootfs.ubifs (및 기타 여러 가지). 실제로 위와 같은 단계를 거의 수행했습니다. 커널 명령줄은 변경되지 않습니다. 내가 수정한 내용은 linux-menuconfig에 있습니다:
File Systems
- Miscellaneous filesystems
- - SquashFS 4.0 - Squashed file system support
- - - Squashfs XATTR support
- - - Include support for LZO compressed file systems
- - - Include support for XZ compressed file systems
그리고 dd 명령:
sudo dd if=/[path-to-rootfs]/rootfs.ubifs of=/dev/sdb2 bs=2048
(참고: 이 단계를 수행한 후에는 호스트 시스템에서 파티션 2의 내용을 더 이상 읽을 수 없습니다.)
그러나 시작하는 동안 다음 메시지와 함께 충돌이 발생합니다.
No filesystem could mount root
그런 다음 위의 줄로 인해 커널 패닉이 발생합니다. 관심이 있다면 여기에 .config 파일을 넣을 수 있습니다.
내 실수를 본 사람이 있나요?
답변1
UBIFS는 소프트웨어가 처리하는 원시 플래시 장치용으로 설계되었습니다.지워진 비트 또는 페이지 쓰기와는 다르다블록 지우기. UBIFS는 블록 장치에서 작동하지 않습니다. 하드웨어(또는 일반적으로 펌웨어)는 소프트웨어가 쓰는 척하는 간단한 인터페이스를 제공하기 위해 페이지 또는 블록 다시 매핑(따라서 어느 정도 마모 평준화)을 처리합니다. 섹터는 섹터만 덮습니다( 자기 저장소와 마찬가지로).
SD 카드, MMC, SSD, USB 플래시 드라이브 등은 하드웨어에서 블록 재매핑을 처리하고 블록 장치 인터페이스를 제공하므로 UBIFS는 이러한 장치에서 작동하지 않습니다.
UBIFS는 UBI를 중간 계층으로 사용하여 MTD 장치에서 작동합니다.
보다UBIFS 문서자세한 내용은.
답변2
~에 따르면UBIFS 문서MMC/SD와 같은 블록 장치에서는 작동하지 않습니다. 그래서 그게 오류인 것 같아요.