기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.
안녕하세요 ? 한가지 문의드립니다.
NAND flash에 ubi 파일시스템이 올라가 있고, 파티션은 다음과 같습니다.
mtdblock0: u-boot
mtdblock1: kernel
mtdblock2: root filesystem
mtdblock3: user app filesystem
이러한 상황에서 nand flash를 dump를 뜨서 양산용 image를 만든다음 rom writing 업체에 맡기려고 합니다.
구체적으로 제가 한 방법을 설명드리면...
target board의 /mnt를 PC의 /home/nfs에 마운팅을 한다음에, 콘솔에서 다음의 명령을 사용했습니다.
dd if=/dev/mtdblock2 of=/mnt/rootfs.img bs=4096
생성된 rootfs.img를 다시 target board의 mtdblock2에 writing하여서 booting해보니 정상부팅이 되었습니다.
여기서 제가 궁금한 것을 여쭤 보려고 합니다.
1.첫째문의: 위의 방법은 특정 파티션(즉, mtdblock2)만 image를 만드는 방법입니다.
mtdblock0~mtdblock3까지 전체를 한개의 양산용 image로 만드는 방법은 어떻게 하면 되는지요 ?
2.문의2: bad sector를 고려하지 않았습니다만...
bad sector를 문제점을 고려하면 위와 같이 하면 안될 것으로 생각됩니다.
bad sector의 문제점을 고려한다면, 구체적으로 어떤 방법(명령어)로 flash 전체 image를 만들면 되는지요 ?
즉, image를 뜨면 되는지요 ?
구체적인 명령(방법)을 서술해 주시면 감사하겠습니다.
저 같은경우엔 bad없는 nand를 찾아서 거기에 프로그램 다 심고 마스터칩을 업체에 넘기면 다 알아서 해주더라고요
boot같은경우는 bad 보장해주는영역이라 상관없고 , kernel은 write할때 bad skip하고, 읽을떄 bad skip하면 되지만
문제는 ramdisk(rootfs)인데요. 저도 이건 아직까지 복불복이라 이렇다할 해결책이 없네요
ramdisk시스템 자체가 그 영역에 bad있으면 어쩔수없는지라 ...
아니면 커널단 ramdisk 로딩하는 부분에서 bad skip할수있게 수정하면 가능할거는 같습니다
시도해보진 않았어요
음.....복잡한 문제일 듯 싶습니다.
nand별로 bad block이 다르게 나오는 경우가 많아서요.
예전 저의 경우는 cpu 보드에 nand socket이 있는 보드를 만들어서 gang writing 장비로
직접 만들어 썼습니다.
다른 방법은 참 애매하네요.