그동안 내가 설정했던 .config가 사라지면 안되기 때문에 백업을 받아놓겠다.
ubuntu@ubuntu14:~/pi_bsp/kernel/linux$ cp .config arch/arm/configs/bcm2711_kcci_defconfig
현재 리눅스 커널 폴더의 용량은 무려 3.4G이다.
우선 clean을 하겠다. clean을 하면 .o
오브젝트 파일을 전부 지운다.
ubuntu@ubuntu14:~/pi_bsp/kernel/linux$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- clean
CLEAN arch/arm/boot/compressed
CLEAN arch/arm/boot/dts/overlays
CLEAN arch/arm/boot
CLEAN arch/arm/crypto
CLEAN arch/arm/kernel
CLEAN arch/arm/vdso
CLEAN certs
CLEAN drivers/accessibility/speakup
CLEAN drivers/scsi
CLEAN drivers/tty/vt
CLEAN drivers/video/logo
CLEAN init
CLEAN kernel/debug/kdb
CLEAN kernel
CLEAN lib/raid6
CLEAN lib
CLEAN net/wireless
CLEAN security/apparmor
CLEAN usr
CLEAN .
CLEAN vmlinux.symvers modules.builtin modules.builtin.modinfo .vmlinux.objs .vmlinux.export.c
설정 파일도 전부 지워준다.
ubuntu@ubuntu14:~/pi_bsp/kernel/linux$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mrproper
CLEAN scripts/basic
CLEAN scripts/dtc
CLEAN scripts/genksyms
CLEAN scripts/kconfig
CLEAN scripts/mod
CLEAN scripts
CLEAN include/config include/generated arch/arm/include/generated .config .config.old .version Module.symvers
이제 압축해준다.
ubuntu@ubuntu14:~/pi_bsp/kernel$ tar -zcvf linux.tar.gz linux/
이렇게 압축된 파일을 배포하면 되는 것이다.
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2711_kcci_defconfig
항상 커널 이미지를 맨 처음 빌드할 때는 타겟 보드에 맞는 .config
를 먼저 셋팅해주기 위해서 위 명령어를 최초에 한번 반드시 쳐줘야 한다고 했다.
우리는 지금까지 디폴트 설정파일인 bcm2711_defconfig
을 이용했는데, 우리가 위에서 배포한 이미지는 우리가 커스텀한 config가 들어가 있기 때문에 그것을 기준으로 .config
를 만들어줘야 한다. 이 이유 때문에 아까 위애서 백업본을 만들어놨언 것이다.
그래서 위의 코드를 보면 bcm2711_defconfig
가 아닌 bcm2711_kcci_defconfig
로 .config
를 만들어 준 것을 확인 할 수 있다.
이 이후에 쓰는 것은 똑같다.
디바이스 드라이버 시간이 하루만 더 있다면, 컴퓨터에서 시스템 시간을 받아와서 그걸 FND로 뿌려주는 것을 해보았을 것이다.
FND라고 해서 다른 것이 아니다. led를 8개 배열로 해놓은 것이 FND이다.