디바이스 드라이버 배포하는법

kenGwon·2024년 2월 29일
0

[Embedded Linux] BSP

목록 보기
36/36

우선 중요한 config파일을 백업

그동안 내가 설정했던 .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이다.

profile
스펀지맨

0개의 댓글