기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.
현재 제 시스템이 zImage는 낸드에서 읽어서 부팅 후...
RootFS은 NFS로 연결하도록 되어있습니다...
(RootFS-aESOP6410-android-20091011 을 사용중입니다.. 가장 최근 것 같아서.. ^^;)
6410 보드에서 직접 부팅을 하고 싶은데, RootFS을 올리질 못하겠습니다...
현재 이 글을 참고해서 시도중인데..
1. flash_eraseall 명령이 없다고 나옵니다..
2. mount 하고 압축파일을 풀어야하는데..
/dev/mtdblock2 라는게 없네요..
일단 /dev/block/mtd2라는게 존재해서 이걸 /sdcard에 mount 시켰습니다...
mount -t yaffs2 /dev/block/mtdblock2 /sdcard
이렇게 하면 마운트는 되는데..
3. 또 tar가 없다고 나오네요... -.-;
여기까지 되고나면 u-boot bootargs만 수정하면 Nand에서 부팅이 될 것 같은데...
어찌해야할지 도움을 주시길...
flash_eraseall 명령 등은 Android RFS에 포함되어 있지 않습니다.
해당 명령들은 이전에 배포한 GPE X-Windows Root File System에 포함되어 있습니다.
대략적인 절차는 다음과 같습니다.
1. NAND에 기록할 파일을 tar -cf 명령으로 묶는다.
(임베디드 시스템의 Tar 명령은 zlib를 사용하지 않기 때문에 압축은 하지 않습니다.)
2. tar 명령으로 묶은 파일 시스템을, GPE 파일 시스템의 /home/root 디렉터리에 위치
3. GPE 파일 시스템을 NFS로 마운트하여 리눅스 부팅
4. GPE 파일 시스템에서 flash_eraseall 명령으로 NAND Flash 메모리 포멧
5. NAND Flash 마운트
6. tar 명령을 사용하여 NAND Flash에 Android RFS를 풀어서 넣는다.
7. 보드 리셋 & uBoot의 환경 설정 메뉴로 진입
8. Android가 기록된 NAND Flash를 파일 시스템으로 사용하기 위해 부트 아규먼트 수정
9. 부팅
링크하신 이솝6410 보드 부팅 환경 설정 방법에서, GPE-Xwindows 파일 시스템과 Android와의 차이점은
init=/init 가 추가 여부만 다릅니다. 부트아규먼트에 init=/init가 추가된다면 안드로이드를 사용할 때이고,
추가하지 않는다면 일반적인 리눅스 표준 RFS를 사용할 때 입니다.
결론을 말씀드리면, Android RFS의 경우 BusyBox를 포팅하지 않는 이상 리눅스 관련 명령들의 지원이
매우 제한적 입니다. 따라서, 그 대신 GPE-X Windows 파일 시스템을 사용하여 NAND에 기록하는 것 입니다.