저는 모니터로 7인치 LCD를 쓰고 있으니 800x480보다 큰 사이즈의 이미지를 준비해주겠습니다.
각자 큰 사이즈의 이미지를 준비하십쇼
어차피 나중에 gimp라고 하는 이미지 편집기로 편집할거니까 상관 읍어요~
samba로 넣어주든 우분투에서 넣든 다 괜춘~ 결론적으로 우분투에 이미지가 준비되어 있으면 됨.
samba로 들어간 이미지 파일을 ~pi_bsp/kernel/로 copy해주시고
sudo apt install gimp 안되면 sudo snap install gimp
gimp
gimp 열고나서 이미지 드래그해서 넣어주고 열고 회전하고 크기 조절해주면 됨.
LCD에 이미지의 LOW_LEVEL 데이터 값을 줘서 이미지를 출력하는거임.
세로 이미지 이신분들은
이미지 좌클릭 -> 이미지 image -> 변형 transform -> 회전 해주시고 가로는 ㄱㅊ 저는 패스합니다.
좌클릭 -> 이미지 -> 이미지 크기조정
파일-> export as ->
그럼 이제 이미지는 준비된겨 본격적으로 커널 이미지 바꿔보자구~
gimp를 통해 kernel에 사용할 이미지를 만들고 로 변환하기 위해
ubuntu@ubuntu8:~$ sudo apt install netpbm
ubuntu@ubuntu8:~/pi_bsp/kernel$ pnmquant -fs 224 wing.ppm > logo_wing_224.ppm
ubuntu@ubuntu8:~/pi_bsp/kernel$ ls -l logo_wing_224.ppm
-rw-rw-r-- 1 ubuntu ubuntu 1152015 2월 15 13:39 logo_wing_224.ppm
여기까지 하면 ppm ascii를 binary로 바꾼거고
ubuntu@ubuntu8:~/pi_bsp/kernel$ pnmnoraw logo_wing_224.ppm > logo_wing_clut224.ppm
ubuntu@ubuntu8:~/pi_bsp/kernel$ ls -l logo_wing_clut224.ppm
-rw-rw-r-- 1 ubuntu ubuntu 3348958 2월 15 13:40 logo_wing_clut224.ppm
여기까지 하면 binary를 10진수 숫자로 변환해주는거임
ubuntu@ubuntu8:~/pi_bsp/kernel$ cp logo_wing_clut224.ppm linux/drivers/video/logo/
ubuntu@ubuntu8:~/pi_bsp/kernel$ cd linux/drivers/video/logo/
ubuntu@ubuntu8:~/pi_bsp/kernel/linux/drivers/video/logo$ ls -l logo_wing_clut224.ppm
-rw-rw-r-- 1 ubuntu ubuntu 3348958 2월 15 13:42 logo_wing_clut224.ppm
ubuntu@ubuntu8:~/pi_bsp/kernel$ vi linux/drivers/video/logo/Kconfig
71G로 71번째 줄 가주고
O누르면 현재 커서 윗라인에 입력모드
71 config LOGO_WING_CLUT224
72 bool "wing 224-color Linux logo"
73 depends on LOGO
74 default y
75 endif # LOGO
72번째 줄은 bool타입으로 커널에 띄울건지 미포함할건지를 선택할 수 있음.
또 tri state도 있는데 커널 ,디바이스 드라이버, 미포함 3개 중 하나를 선택할 수 있음.
ubuntu@ubuntu8:~/pi_bsp/kernel$ vi linux/drivers/video/logo/Makefile
15라인에서 o눌러서 아랫 라인에 입력모드
16 obj-$(CONFIG_LOGO_WING_CLUT224) += logo_wing_clut224.o
아래 명령어 쳐서 logo.c 수정
ubuntu@ubuntu8:~/pi_bsp/kernel$ vi linux/drivers/video/logo/logo.c
102번 라인 소문자 o쳐서 아랫줄에 아래 코드 추가.
103 #ifdef CONFIG_LOGO_WING_CLUT224
104 logo = &logo_wing_clut224;
105 #endif
ubuntu@ubuntu8:~/pi_bsp/kernel$ vi linux/include/linux/linux_logo.h
47번 라인 소문자 o쳐서 아랫줄에 아래 코드 추가.
48 extern const struct linux_logo logo_wing_clut224;
ubuntu@ubuntu8:~/pi_bsp/kernel/linux$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
menuconfig 들어가서 설정 변경해보자
왼쪽 화살표로 help로 넘어가서 enter 쳐보면 아래와 같이 나온다.
Kconfig가 있는 위치에 파일을 넣었다고 알 수 있는거고
exit하고 save하고 쭉 exit
read only만 가능한 파일 (.config)의 5382라인 가보면 값이 바뀌어 있는게 보임
ubuntu@ubuntu8:~/pi_bsp/kernel/linux$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage modules dtbs -j4
make 명령어를 치면
우리가 넣은 logo 이미지가 잘 들어간걸 볼 수 있음.
이제 타겟보드인 라즈베리파이로 넘겨 줘야겠져
ubuntu@ubuntu8:~/pi_bsp/kernel/linux$ cp arch/arm/boot/zImage /srv/nfs/
pi@pi08:/mnt/ubuntu_nfs$ sudo cp zImage /boot/firmware/kernel7
kernel7.img kernel7l-backup.img kernel7l.img
pi@pi08:/mnt/ubuntu_nfs$ sudo cp zImage /boot/firmware/kernel7l.img
pi@pi08:/mnt/ubuntu_nfs$ sync
pi@pi08:/mnt/ubuntu_nfs$ sudo reboot
잘 나오죠? 참 쉽죠?..허허
'Linux BSP' 카테고리의 다른 글
[Linux] Foreground, Background 개념 명령어로 이해하기 (1) | 2024.02.16 |
---|---|
[Linux] Linux 압축 관련 명령어 정리 (1) | 2024.02.15 |
[Linux] Kernel, Process, Memory..? (0) | 2024.02.15 |
[Linux BSP] U-Boot 초기화 과정 (0) | 2024.02.13 |
[Ubuntu-RaspberryPi] C언어로 U-Boot gpio제어를 통한 led 동작시키는 명령어 추가 (1) | 2024.02.13 |