LINUX.ORG.RU

компиляция драйвера, ошибки make

 , , , ,


0

1

графическое окружение пока не установлено поэтому я записал логи с 'script':

sh-5.1# ak  amek    make clean modules && sudo make ina stalll 
make -C /lib/modules/`uname -r`/build M=$PWD clean
make[1]: Entering directory '/lib/modules/5.10.127-gnu1-1-lts/build'
make[1]: Leaving directory '/lib/modules/5.10.127-gnu1-1-lts/build'
make -C /lib/modules/`uname -r`/build M=$PWD modules
make[1]: Entering directory '/lib/modules/5.10.127-gnu1-1-lts/build'
  CC [M]  /root/rtl8xxxu-main/rtl8xxxu_core.o
In file included from [01m[K/root/rtl8xxxu-main/rtl8xxxu_core.c:33[m[K:
[01m[K/root/rtl8xxxu-main/rtl8xxxu.h:1911:22:[m[K [01;31m[Kerror: [m[Kfield '[01m[Kled_cdev[m[K' has incomplete type
  struct led_classdev [01;31m[Kled_cdev[m[K;
                      [01;31m[K^~~~~~~~[m[K
[01m[K/root/rtl8xxxu-main/rtl8xxxu.h:1977:15:[m[K [01;35m[Kwarning: [m[K'[01m[Kenum led_brightness[m[K' declared inside parameter list will not be visible outside of this definition or declaration
          enum [01;35m[Kled_brightness[m[K brightness);
               [01;35m[K^~~~~~~~~~~~~~[m[K
[01m[K/root/rtl8xxxu-main/rtl8xxxu_core.c:[m[K In function '[01m[Krtl8xxxu_init_led[m[K':
[01m[K/root/rtl8xxxu-main/rtl8xxxu_core.c:7563:5:[m[K [01;31m[Kerror: [m[Kdereferencing pointer to incomplete type '[01m[Kstruct led_classdev[m[K'
  led[01;31m[K->[m[Kbrightness_set_blocking = priv->fops->led_classdev_brightness_set;
     [01;31m[K^~[m[K
[01m[K/root/rtl8xxxu-main/rtl8xxxu_core.c:7570:6:[m[K [01;31m[Kerror: [m[Kimplicit declaration of function '[01m[Kled_classdev_register[m[K'; did you mean '[01m[Kclass_register[m[K'? [[01;31m[K-Werror=implicit-function-declaration[m[K]
  if ([01;31m[Kled_classdev_register[m[K(&priv->udev->dev, led))
      [01;31m[K^~~~~~~~~~~~~~~~~~~~~[m[K
      [32m[Kclass_register[m[K
[01m[K/root/rtl8xxxu-main/rtl8xxxu_core.c:7576:47:[m[K [01;31m[Kerror: [m[Ktype of formal parameter 2 is incomplete
  priv->fops->led_classdev_brightness_set(led, [01;31m[Kled->brightness[m[K);
                                               [01;31m[K^~~~~~~~~~~~~~~[m[K
[01m[K/root/rtl8xxxu-main/rtl8xxxu_core.c:[m[K In function '[01m[Krtl8xxxu_deinit_led[m[K':
[01m[K/root/rtl8xxxu-main/rtl8xxxu_core.c:7586:47:[m[K [01;31m[Kerror: [m[K'[01m[KLED_OFF[m[K' undeclared (first use in this function)
  priv->fops->led_classdev_brightness_set(led, [01;31m[KLED_OFF[m[K);
                                               [01;31m[K^~~~~~~[m[K
[01m[K/root/rtl8xxxu-main/rtl8xxxu_core.c:7586:47:[m[K [01;36m[Knote: [m[Keach undeclared identifier is reported only once for each function it appears in
[01m[K/root/rtl8xxxu-main/rtl8xxxu_core.c:7586:47:[m[K [01;31m[Kerror: [m[Ktype of formal parameter 2 is incomplete
[01m[K/root/rtl8xxxu-main/rtl8xxxu_core.c:7587:2:[m[K [01;31m[Kerror: [m[Kimplicit declaration of function '[01m[Kled_classdev_unregister[m[K'; did you mean '[01m[Kclass_unregister[m[K'? [[01;31m[K-Werror=implicit-function-declaration[m[K]
  [01;31m[Kled_classdev_unregister[m[K(led);
  [01;31m[K^~~~~~~~~~~~~~~~~~~~~~~[m[K
  [32m[Kclass_unregister[m[K
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:280: /root/rtl8xxxu-main/rtl8xxxu_core.o] Error 1
make[1]: *** [Makefile:1822: /root/rtl8xxxu-main] Error 2
make[1]: Leaving directory '/lib/modules/5.10.127-gnu1-1-lts/build'
make: *** [Makefile:22: modules] Error 2
sh-5.1# exit
exit

почему-то он всё обфускавал я удалил оттуда некоторые не utf-8 символы

там в начале я написал «make clean modules && sudo make install»

ОС:hyperbola gnu/linux libre

драйвер:https://github.com/lwfinger/rtl8xxxu



Последнее исправление: anon39 (всего исправлений: 1)

Ты возможно будешь очень смеяться, но знаешь что я обычно делал, в бытнось мою, молодую? А нахрен закомментировал все ошибочные строки в коде... Ну, правда, кое-где и поправил...
=)
Работало, между прочим. Не процесс сборки, а сам драйвер.

cadaber ★★
()
Последнее исправление: cadaber (всего исправлений: 1)

Из предположений - разные ветки для разных версий ядер, но тут вижу только master по ссылке

Бывает что настроено реагировать на все варнинги как ошибки, мне и такое попадалось при сборке драйверов, но это я не помню как отключил

Тут же явное несоответствие прототипов функций, числа параметров

И я такое лечил поиском хедеров, в которых лежали эти недостающие структуры и типы, и добавлением их явно в шапку кода драйвера, вот прям include то и сё

Ну бывает такое что на одной системе не надо их прописывать и сразу видится что надо. А бывает что приходится прописать явно, и автор мог не тестировать на всех мыслимых системах

«Kled_classdev_register[m[K’; did you mean ’[01m[Kclass_register» - вот точно хедеры не все видятся, ну очень очень похоже

I-Love-Microsoft ★★★★★
()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)

сделай «make |& cat» - не будет esc-последовательностей расцветки

Вставь строку в файл rtl8xxxu.h

#include <linux/leds.h>
после строки
#include <linux/bitfield.h>

Оно соберётся.

На 6.1 оно собирается без правок.

vel ★★★★★
()
Последнее исправление: vel (всего исправлений: 1)