Sergey1560 / fb_st7796s

ST7796 kernel module driver
7 stars 14 forks source link

Ошибка при сборке драйвера на ядре 6.6.18 #10

Open jeecrypt opened 6 months ago

jeecrypt commented 6 months ago

Здравсвуйте! Возникла проблема при сборке ядра, из-за несовместимости типов указателей функций при инициализации структуры в макросе FBTFT_REGISTER_DRIVER

Железо: Orange Pi+ 2

Система:

uname -a
Linux orangepiplus 6.6.18-current-sunxi #3 SMP Fri Feb 23 08:25:28 UTC 2024 armv7l GNU/Linux

Ход компиляции:

make[1]: Entering directory '/usr/src/linux-headers-6.6.18-current-sunxi'
  CC [M]  /home/pi/fb_st7796s/kernel_module/fb_st7796s.o
In file included from /home/pi/fb_st7796s/kernel_module/fb_st7796s.c:8:
/home/pi/fb_st7796s/kernel_module/fbtft.h:315:19: error: initialization of ‘void (*)(struct spi_device *)’ from incompatible pointer type ‘int (*)(struct spi_device *)’ [-Werror=incompatible-pointer-types]
  315 |         .remove = fbtft_driver_remove_spi,                                 \
      |                   ^~~~~~~~~~~~~~~~~~~~~~~
/home/pi/fb_st7796s/kernel_module/fb_st7796s.c:196:1: note: in expansion of macro ‘FBTFT_REGISTER_DRIVER’
  196 | FBTFT_REGISTER_DRIVER(DRVNAME, "sitronix,st7796s", &display);
      | ^~~~~~~~~~~~~~~~~~~~~
/home/pi/fb_st7796s/kernel_module/fbtft.h:315:19: note: (near initialization for ‘fbtft_driver_spi_driver.remove’)
  315 |         .remove = fbtft_driver_remove_spi,                                 \
      |                   ^~~~~~~~~~~~~~~~~~~~~~~
/home/pi/fb_st7796s/kernel_module/fb_st7796s.c:196:1: note: in expansion of macro ‘FBTFT_REGISTER_DRIVER’
  196 | FBTFT_REGISTER_DRIVER(DRVNAME, "sitronix,st7796s", &display);
      | ^~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
make[3]: *** [scripts/Makefile.build:243: /home/pi/fb_st7796s/kernel_module/fb_st7796s.o] Error 1
make[2]: *** [/usr/src/linux-headers-6.6.18-current-sunxi/Makefile:1915: /home/pi/fb_st7796s/kernel_module] Error 2
make[1]: *** [Makefile:234: __sub-make] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-6.6.18-current-sunxi'
make: *** [Makefile:8: default] Error 2

Заранее огромное спасибо!

Sergey1560 commented 6 months ago

Посмотрите вот тут https://github.com/evgs/fb_st7796s/tree/master там уже есть исправления под 6.* ядро + ещё какие-то правки.

jeecrypt commented 6 months ago

К сохалению Unknown kernel architecture Для ядра 6.6.18

jeecrypt commented 6 months ago

Проблема была в архитектуре Помогла правка скрипта устрановки

#armbian, https://www.armbian.com/orangepi3-lts/
- echo "$UN" | grep sunxi64 && LHEADERS=linux-headers-current-sunxi64
- echo "$UN" | grep sunxi64 && OVL=armbian-add-overlay

+ echo "$UN" | grep sunxi && LHEADERS=linux-headers-current-sunxi
+ echo "$UN" | grep sunxi && OVL=armbian-add-overlay