Sergey1560 / fb_st7796s

ST7796 kernel module driver
7 stars 14 forks source link

Error when linux kernel is different with available linux-headers-current-* package #1

Closed Kekht closed 1 year ago

Kekht commented 2 years ago

Orange Pi Zero LTS with fresh-installed Armbian 22.08 Jammy from armbian.com When trying to "make" got error:

pi@orangepizero:~/fb_st7796s/kernel_module$ make
make -C /lib/modules/5.15.63-sunxi M=/home/pi/fb_st7796s/kernel_module modules
make[1]: Entering directory '/usr/lib/modules/5.15.63-sunxi'
make[1]: *** No rule to make target 'modules'.  Stop.
make[1]: Leaving directory '/usr/lib/modules/5.15.63-sunxi'
make: *** [Makefile:8: default] Error 2

Got this:

pi@orangepizero:~/fb_st7796s/kernel_module$ uname -a
Linux orangepizero 5.15.63-sunxi #22.08.1 SMP Tue Aug 30 07:00:34 UTC 2022 armv7l armv7l armv7l GNU/Linux

pi@orangepizero:~/fb_st7796s/kernel_module# apt-cache search linux-headers-current-sunxi
linux-headers-current-sunxi - Linux kernel headers for 5.15.48-sunxi on armhf current

pi@orangepizero:~/fb_st7796s/kernel_module# apt show linux-headers-current-sunxi
Package: linux-headers-current-sunxi
Version: 22.05.3
Priority: optional
Section: devel
Source: linux-5.15.48-sunxi
Maintainer: Igor Pecovnik <igor.pecovnik@****l.com>

As you can see there is other version of package, so build directory (soft link) located not in '/usr/lib/modules/5.15.63-sunxi' but in '/usr/lib/modules/5.15.48-sunxi'.

Error occurs due to usage of $(shell uname -r) at Makefile, which does not work in such cases.

Sergey1560 commented 2 years ago

Armbian недавно обновился с 22.05 на 22.08 Похоже, что в репозитории обновили ядро, но не обновили пакет linux-headers. Для того, чтобы драйвер загрузился, его нужно собрать с linux-headers той же версии, что и ядро. Поэтому и используется эта конструкция в makefile, которая подставляет версию текущего ядра. Можно исправить путь в makefile и собрать драйвер, но он не загрузится. Как это сейчас лучше решить, не знаю. Самый правильный вариант - обновить в репозитории пакет linux-headers-current. Когда это сделают, и сделают ли вообще, не знаю. У armbian есть набор скриптов для сборки ядра и образа целиком. Если нет возможности собрать самостоятельно, я могу выложить .deb пакеты с ядром и заголовочными файлами одной версии.

Судя по тому, что у вас проблема с архитектурой sunxi, а у меня была с sunxi64 (arm64, opi3lts), проблема общая и пакет linux-headers-current не обновляли для всех архитектур.