Ⅱ. 라즈베리 확장
임베디드 개발 환경 구축
https://www.raspberrypi.org/documentation/linux/kernel/building.md 참고
http://cs.sch.ac.kr/lecture/Embedd/2012/12-EmbedSW-11-Module.pdf 참고
1. 라즈베리 파이 커널 소스 다운로드
$ git clone --depth=1 https://github.com/raspberrypi/linux //depth의 경우 히스토리는 복제하지 않기 때문에 빠름
2. 툴체인 설치
$ git clone https://github.com/raspberrypi/tools
32bit: /tool/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin
64bit: /tool/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin 이다.
3. 소스 빌드
$ cd linux
$ KERNEL=kernel7
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_defconfig
-2번째 줄의 경우 라즈베리파이2는 kernel7이다. 라즈베리파이2의 boot partition에는 kernel도 있고 kernel7도 있으니 혼동 주의
4. SD card에 직접 설치
$ mkdir mnt/fat32
$ mkdir mnt/ext4
$ sudo mount /dev/sdb1 mnt/fat32
$ sudo mount /dev/sdb2 mnt/ext4
*arm-linux-gnueabihf는 앞 장의 컴파일러 path, INSTALL_MOD_PATH는 설치할 path 경로
- kernel image(mkknlimg 스크립트로 변환 필요), dtb(device tree blob) 복사
$ sudo cp mnt/fat32/$KERNEL.img mnt/fat32/$KERNEL-backup.img //필수 항목은 아님(백업용)
$ sudo scripts/mkknlimg arch/arm/boot/zImage mnt/fat32/$KERNEL.img
$ sudo cp arch/arm/boot/dts/*.dtb mnt/fat32/
$ sudo cp arch/arm/boot/dts/overlays/*.dtb* mnt/fat32/overlays/
$ sudo cp arch/arm/boot/dts/overlays/README mnt/fat32/overlays/
$ sudo umount mnt/fat32
$ sudo umount mnt/ext4
5. 모듈 임베디드 장치에서 실행
- 샘플코드 Makefile
- Make를 했을 때 아래와 같이 실행이 된다.
'프로그래밍 > Raspberry' 카테고리의 다른 글
Raspberry pi2 (시스템 콜 후킹) (0) | 2015.08.13 |
---|---|
Raspberry pi2 (시스템 콜) (0) | 2015.08.13 |
Raspberry pi2 (SD card 분석) (0) | 2015.08.13 |
Raspberry pi2 (config.txt 분석) (0) | 2015.08.13 |
Raspberry pi2 (라즈베리 기본 설정) (0) | 2015.08.13 |