Chapter 3: Ubuntu OS 부팅 microSD카드 만들기
우분투 부팅가능한 SD카드를 만들기 위해 SD카드를 준비합니다: 다음 링크(ubuntu_mmc.img)에서 SD카드 부팅이미지를 다운로드 받고 이미지를 microSD카드에 아래와 같이 플래쉬합니다. Windows의 경우: Win32DiskImager(다운로드) 를 사용하여 부트 이미지 SD카드에 씁니다. Linux의 경우: microSD카드를 슬롯에 집어 넣으면 자동으로 SD카드가 마운팅 되는데, 먼저 microSD카드의 모든 파티션을 unmount시킵니다. 예를들어 SD카드가 두개의 파티션을 가지고 있다고 하면 아래와 같이 명령어를 수행하여 unmout시킵니다. $ umount 그 다음으로 dd명령어를 이용하여 이미지를 microSD카드에 플래쉬합니다. 이 명령은 주의하셔서 사용하여야 합니다. 만약 "of/dev/____" 의 파라메터 부분에 하드 디스크 장치를 잘못 포인팅하면, 하드디스크의 모든 데이터는 지워집니다.
MacOS경우: MacOS 터미널도 df와 dd 명령을 지원합니다. micro-sd카드를 넣고 마운팅이 되면, sd카드의 모든 파티션을 unmount합니다. 예를 들어 SD 카드가 두개의 파티션을 가지고 있다고 하면, 아래와 같이 명령어를 입력합니다.
만약 umount가 실패하면 아래와 같이 입력하여 umount를 강제로 진행합니다.
dd명령어를 이용하여 microSD카드에 이미지를 씁니다. 이 경우에도 "of=/dev/___" 파라메터가 하드 디스크를 포인팅 하지 안도록 주의 하십시오. 그렇지 않으면 하드 디스크의 모든 데이터가 지워집니다. $ sudo dd if=/udisk/ubuntu_mmc.img of=/dev/disk1 bs=1M 이렇게하여 부팅가능한 microSD카드를 만들었으면 pcDuino의 슬롯에 삽입한 후에 pcDuino에 전원을 인가하십시오. pcDuino가 SD카드로 부팅이 될 것입니다.
SD부트 이미지 리싸이즈 및 SD용량을 최대치로 확장시키기: expand스크립트를 아래와 같이 준비합니다. 준비된 스크립트를 실행하고 리부팅 시킵니다.
리부팅 후에 아래와 같이 명령어를 입력합니다. $ sudo resize2fs /dev/mmcblk0p2 부팅이 안될 경우에는,, pcDuino가 SD카드로 부팅이 되는지 아니면 NAND에서 부팅이 되는지 확인합니다. 때때로 SD카드를 인식하는데 실패하여서 NAND로 대신 부팅이 되는 경우가 있습니다. df 명령을 이용하여 체크할 수 있습니다. 만약 NAND를 통해서 부팅이 되었다면, root는 /dev/nandd이며 SD를 통해 부팅이 되었다면 root는 /dev/mmcblk0p1입니다. 이런 이슈가 발생할 경우, 시리얼 디버그 케이블을 제거하고 디바이스를 리셋시켜 다시 시도하여 보십시오.
파워유저를 위한 부팅SD카드 만들기 1. 아래의 두개의 패키지를 다운로드 받습니다. 압축을 풉니다.
pcduino_hwpack.tar.xz파일의 압축을 풀면, 아래의 파일을 얻게 됩니다.
ubuntu.tar.xz의 압축을 풀면 아래의 파일을 얻게 됩니다.
uImage와 script.bin은 커널파일로 pcDuino에서도 볼수 있습니다. 아래 명령 참조.
2. microSD카드를 슬롯에 넣고 아래와 같이 umount합니다.
3. fdisk명령을 이용하여 두개의 파티션을 만듭니다. 첫번째 파티션은 부트 파티션이며, 파일시스템은 FAT입니다. uImage및 script.bin파일이 저장됩니다. 두번째 파티션은 ubuntu 파일시스템입니다. 파일시스템 타입은 ext3입니다. 아래와 같이 명령을 실행합니다.
Command (m for help): d Selected partition 1 Command (m for help): n Partition type:
Select (default p): p Partition number (1-4, default 1): Using default value 1 First sector (2048-15122431, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-15122431, default 15122431): +64M
Command (m for help): n Partition type:
Select (default p): p Partition number (1-4, default 2): 2 First sector (206848-15122431, default 206848): Using default value 206848 Last sector, +sectors or +size{K,M,G} (206848-15122431, default 15122431): +1800M
Command (m for help): w The partition table has been altered!
Calling ioctl() to re-read partition table. [ 5652.370000] mmcblk0: p1 p2 Syncing disks.
부트 영역과 ubuntu 영역의 크기는 변경이 가능합니다만, 부트영역은 최소 64M이상 우분투 영역은 최소 1G이상을 권장합니다. 위의 스크립트는 64M부트영역과 1.8G 우분투 영역을 생성하는 스크립트입니다만, 차후 모든 SD영역을 ubuntu파티션이 사용할 수 있게 리싸이즈가 가능합니다. 4. 파티션을 포맷합니다.
5. 커널을 첫번째 파티션에 복사합니다.
6. ubuntu를 두번째 파티션에 카피합니다.
7. SD카드를 부팅가능하게 만듭니다.
8. 이미지를 dump합니다. (옵션임)
9. SD카드를 보드에 넣고 재부팅합니다. |