이전 글에서는 제가 구매한 GT911 기반 터치스크린을 활성화하고 meta-jooojub-rpi를 수정했습니다.
이어서 이번 글에서는 E-Ink 디스플레이를 활성화해보겠습니다.
1. Hardware Setup
이전 글에 써 놓았지만, 저는 GDEY075T7-T01 제품을 구매했습니다.
- GDEY075T7-T01: https://www.good-display.com/product/483.html
E-Ink 디스플레이 컨트롤러는 기존에 가지고 있던 Waveshare e-paper driver HAT을 사용했습니다.

2. Modifying Yocto Recipes
다행히 제가 가지고 있는 E-Paper Driver HAT은 별도의 커널 Driver가 필요 없습니다.
SPI 연결만 잘 해놓고 초기화와 컨트롤만 잘하면 됩니다.
아마 기존에 가지고 있는 Waveshare용 테스트 코드도 문제없이 동작할 겁니다.
Python으로 SPI와 GPIO 컨트롤이 필요하기 때문에, Image Recipe에 관련 패키지를 추가합니다.
recipes-core/images/jooojub-rpi0-2w.bbbitbake
빌드를 해보면 Yocto에서 python3-gpiozero와 python3-lgpio패키지를 찾을 수 없다는 빌드 에러가 발생합니다.
Missing or unbuildable dependencysh
python3-gpiozero 패키지는 meta-homeassistant에 있고, python3-lgpio 패키지는 제공해주는 곳을 못찾겠네요.
이렇게 된 이상 gpiozero와 lgpio를 위한 레시피를 meta-jooojub-rpi에 bb 파일을 추가하기로 했습니다.
빌드가 어렵지 않은 패키지들이기 때문에 빌드 가능한 bb 파일을 쉽게 만들 수 있었습니다.
recipes-devtools/python/python3-gpiozero_2.0.1.bbbitbake
recipes-devtools/python/python3-lgpio_0.2.2.0.bbbitbake
이제 Distro 파일에 SPI_BUS를 사용하기 위한 설정과 spidev 커널 모듈이 자동으로 insmod 되도록 설정하면 빌드를 위한 준비는 끝납니다.
conf/distro/rpi0-2w.confbitbake
3. E-Ink Display Test
수정된 레시피로 빌드된 이미지 기반으로 E-Ink 디스플레이가 잘 되는지 Waveshare에서 제공한 샘플 코드를 수정해서 사용해 보았습니다.
SPI 통신도 잘 되고, 디스플레이 출력도 문제없이 잘 동작합니다.

4. Next Steps
SPI 통신을 이용한 E-Ink 디스플레이는 기존에 가지고 있던 Waveshare HAT과 샘플 코드 덕분에 큰 어려움 없이 설정을 완료했습니다.
다음에는 gpio shutdown이라는 overlay를 이용해서 Tact Switch로 보드를 끄고 켤 수 있도록 해보겠습니다.