– 부트로더를 시스템 µSD에 설치하기 위해 메모리가 연결 되었는지 확인
– 메모리 연결은
(1) 시스템용 µSD 메모리를 컴퓨터에 연결
(2) VirtualBox 관리자 화면에서 [장치] - [USB 장치]를 선택한 후 (3) USB 저장소를 지정하는 장치(예: Generic USB storage)로 선택 그러면 우분투 리눅스에서 시스템 µSD를 사용할 수 있는 상태가 되 며, 어떤 디바이스 장치로 인식하였는지는 dmesg 명령어를 사용하 면 확인할 수 있음
– 시스템용 µSD 메모리가 /dev/sdb로 인식되었다고 가정하 고, RAW 영역의 BL1, BL2, Kernel 영역에 타겟보드용 이미 지 파일들을 설치
MicroSD 메모리에 시스템 이미지 올리기 -부트로더 설치
32
부트로더 설치
– µSD 메모리의 RAW영역의 바이트 위치 정보
MicroSD 메모리에 시스템 이미지 올리기
-부트로더 설치
부트로더 설치
– BL1 영역
• 부트로더와 관련된 체크섬 파일인 u-boot.bin.crc 파일은 BL1 영역 에 쓰여짐
• BL1 코드 생성
• 생성된 체크섬 파일 u-boot.bin.crc를 BL1 영역에 쓰기
MicroSD 메모리에 시스템 이미지 올리기 -부트로더 설치
34
root@esp:~/download# cd images ← 시스템 이미지 파일 있는 곳으로 이동
root@esp:~/download/images# makechecksum u-boot.bin 8192 ← u-boot.bin.crc 파일 생성 checksum : 0xea474
root@esp:~/download/images# ls u-boot.bin u-boot.bin.crc zImage
root@esp:~/download/images# dd if=u-boot.bin.crc of=/dev/sdb bs=1 seek=512 count=8192
8192+0 레코드 들어옴 8192+0 레코드 나감
8192 바이트 (8.2 kB) 복사됨, 0.034187 초, 240 kB/초
부트로더 설치
– BL2 영역
• BL2 영역에는 부트로더 실행파일인 u-boot.bin을 기록
– ENV 영역
• ENV 영역에는 시스템 부팅 시 부트로더(u-boot)에서 필요한 기본 적인 정보와 파라미터 값들이 들어있음
• 부트로더 빌드 중 사용되는 환경변수들은 setenv()를 통해서 만들 어짐
MicroSD 메모리에 시스템 이미지 올리기 -부트로더 설치
root@esp:~/download/images# dd if=u-boot.bin of=/dev/sdb bs=1 seek=25088
248472+0 레코드 들어옴 248472+0 레코드 나감
248472 바이트 (248 kB) 복사됨, 0.656392 초, 379 kB/초
부트로더 설치
– ENV 영역
• Achro210T 보드에서 사용되는 설정은 부트로더 소스 디렉토리의 board/samsung/achropv210/achro210.c 파일에 설정된 내용을 토대로 만들어짐
MicroSD 메모리에 시스템 이미지 올리기 -부트로더 설치
36
235 switch(regs) {
236 case BOOT_NAND:
237 Outp32(0xe02002a4, 0x0); // LED0 On 238 Outp32(0xe02002c4, 0x1); // LED1 Off 239 240 printf("checking mode for fastboot ...\n");
241 run_command("mtdparts default", 0);
242 243 if((~readl(0xE0200C04)) & 0x6) { 244 run_command("fastboot", 0);
245 } else
246 if(default_boot_mode) { // using default environment 247 sprintf(boot_cmd, "nand read %08x 600000
500000;nand read %08x B 00000 300000;
bootm %08x %08x"
248 , MEMORY_BASE_ADDRESS + 0x8000 249 , MEMORY_BASE_ADDRESS + 0x1000000 250 , MEMORY_BASE_ADDRESS + 0x8000 251 , MEMORY_BASE_ADDRESS + 0x1000000);
252 setenv("bootcmd", boot_cmd);
253 254 sprintf(boot_cmd, "root=ramfs devfs=mount console=ttySAC1,115200 ubi.mtd=4 ubi.mtd=5");
255 setenv("bootargs", boot_cmd)
부트로더 설치
– 부트로더의 커맨드 모드에서 printenv 명령을 이용하여 해당 내용을 확인 가능
– 사용자는 부트로더 명령에서 setenv 명령을 통해서 이러 한 환경변수를 등록할 수 있는데, 이렇게 등록된 환경변수 는 환경변수 영역을 삭제하지 않는 이상 계속 유지됨
MicroSD 메모리에 시스템 이미지 올리기
-부트로더 설치
부트로더 설치
– 호스트 시스템의 IP 주소와 타겟보드의 IP 주소 설정
– 저장 – 확인
MicroSD 메모리에 시스템 이미지 올리기 -부트로더 설치
38
PV210 # set serverip 192.168.10.100 PV210 # set ipaddr 192.168.10.110
PV210 # save
Welcome to Achro210T Linux Achro210T login: OK
……(생략)……
Hit any key to stop autoboot: 0 PV210 # pri
Bootdelay=3 Baudrate=115200
Ethaddr=00:40:5c:26:0a:5b Ipaddr=192.168.1.121 serverip=192.168.1.2
……(생략)
커널 설치
– dd 명령어를 이용하여 커널 이미지 파일 (zImage)을 직접 µSD 메모리에 기록
– 일반적으로 부트로더가 시스템 메모리에 정상적으로 기록 되면, 그 이후로는 USB 또는 이더넷을 이용하여 부트로더 와 커널을 다운로드하여 µSD 메모리에 설치할 수 있음