Bug 47061 - модуль ядра bbswitch не компилируется на современных ядрах 5.x
Summary: модуль ядра bbswitch не компилируется на современных ядрах 5.x
Status: REOPENED
Alias: None
Product: Sisyphus
Classification: Development
Component: kernel-source-bbswitch (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Yuri N. Sedunov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-07-28 14:32 MSK by Nikolay Strelkov
Modified: 2023-08-01 11:51 MSK (History)
15 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Nikolay Strelkov 2023-07-28 14:32:34 MSK
Шаги для повторения:
1. Иметь утсановленную систему p10, полностью обновить все пакеты и ядро std-def

   apt-get update
   apt-get dist-upgrade
   update-kernel -a -f -y -t std-def

2. Установить пакеты 

   apt-get install kernel-source-bbswitch kernel-headers-modules-std-def bumblebee dkms rpm-build dpkg eepm

3. Перезагрузить компьютер
4. Извлечь архив исходного кода bbswitch и попробовать скомпилировать bbswitch

Ожидаемый результат:
* компиляция успешна, возможность использования dkms есть

Реальный результат:
* компиляция завершается ошибкой

```
$ cp /usr/src/kernel/sources/bbswitch-0.8.tar.bz2  /tmp
$ cd /tmp
$ tar -xf bbswitch-0.8.tar.bz2
$ cd bbswitch-0.8
$ make
make -C /lib/modules/5.10.186-std-def-alt1/build M="$(pwd)" modules
make[1]: Entering directory '/usr/src/linux-5.10.186-std-def-alt1'
  CC [M]  /tmp/bbswitch-0.8/bbswitch.o
/tmp/bbswitch-0.8/bbswitch.c: In function ‘bbswitch_init’:
/tmp/bbswitch-0.8/bbswitch.c:460:18: error: implicit declaration of function ‘proc_create’ [-Werror=implicit-function-declaration]
  460 |     acpi_entry = proc_create("bbswitch", 0664, acpi_root_dir, &bbswitch_fops);
      |                  ^~~~~~~~~~~
/tmp/bbswitch-0.8/bbswitch.c:460:16: warning: assignment to ‘struct proc_dir_entry *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
  460 |     acpi_entry = proc_create("bbswitch", 0664, acpi_root_dir, &bbswitch_fops);
      |                ^
/tmp/bbswitch-0.8/bbswitch.c: In function ‘bbswitch_exit’:
/tmp/bbswitch-0.8/bbswitch.c:490:5: error: implicit declaration of function ‘remove_proc_entry’ [-Werror=implicit-function-declaration]
  490 |     remove_proc_entry("bbswitch", acpi_root_dir);
      |     ^~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:286: /tmp/bbswitch-0.8/bbswitch.o] Error 1
make[1]: *** [Makefile:1832: /tmp/bbswitch-0.8] Error 2
make[1]: Leaving directory '/usr/src/linux-5.10.186-std-def-alt1'
make: *** [Makefile:13: default] Error 2

```

Дополнительная информация:
* баг-репорт создан из-за ветки форума https://forum.altlinux.org/index.php?topic=47736.0 , где пользователь столкнулся с проблемами использования Bumblebee в p10
* при использовании bbswitch из Debian (https://packages.debian.org/bookworm/bbswitch-dkms) ошибок компиляции нет - см. ниже

```
$ cd /tmp
$ wget http://ftp.debian.org/debian/pool/main/b/bbswitch/bbswitch-dkms_0.8-15_amd64.deb
$ dpkg -x bbswitch-dkms_0.8-15_amd64.deb bbswitch
$ cd bbswitch
$ cd usr/src/bbswitch-0.8/
$ make
make -C /lib/modules/5.10.186-std-def-alt1/build M=/tmp/bbswitch/usr/src/bbswitch-0.8 modules
make[1]: Entering directory '/usr/src/linux-5.10.186-std-def-alt1'
  CC [M]  /tmp/bbswitch/usr/src/bbswitch-0.8/bbswitch.o
  MODPOST /tmp/bbswitch/usr/src/bbswitch-0.8/Module.symvers
  CC [M]  /tmp/bbswitch/usr/src/bbswitch-0.8/bbswitch.mod.o
  LD [M]  /tmp/bbswitch/usr/src/bbswitch-0.8/bbswitch.ko
make[1]: Leaving directory '/usr/src/linux-5.10.186-std-def-alt1'
``` 

похоже, что в Debian наложены патчи для обеспечения сборки на современных версиях ядра. Примените их, пожалуйста, в ALT.

Насколько я понимаю, исправление этого бага позволит исправить баг https://bugzilla.altlinux.org/47060 и дать пользователям возможность полноценно пользоваться вариантом Nvidia Optimus старой реализации, требующей Bumblebee.
Comment 1 Sergey V Turchin 2023-07-31 16:48:02 MSK
(Ответ для Nikolay Strelkov на комментарий #0)
> Насколько я понимаю, исправление этого бага позволит исправить баг
> https://bugzilla.altlinux.org/47060
Нет. Там всё в порядке.

> и дать пользователям возможность
> полноценно пользоваться вариантом Nvidia Optimus старой реализации,
> требующей Bumblebee.
Для bumblebee он не нужен. Он нужен только для полного отключения питания на 3D-контроллере, а bumblebee это умеет по завершении использования. Только для этого может быть полезен.
Comment 2 Sergey Ivanov 2023-07-31 17:59:36 MSK
Проверил в p10 и sisyphus, ошибка воспроизводится.

В p9 данная ошибка не воспроизводится. bbswitch успешно собирается
# uname -r 
5.4.250-std-def-alt1
# rpm -q gcc
gcc-8-alt2.x86_64
Comment 3 Vitaly Chikunov 2023-07-31 19:21:15 MSK
Отдел тестирования, пожалуйста не подтверждайте баги со сборкой чего либо из пакетов kernel-source-. Уже не в первый раз такое происходит.
Comment 4 Nikolay Strelkov 2023-07-31 19:42:07 MSK
Я потратил время на анализ пакетов bbswitch у Debian и в ALT. 
Сейчас такими закрытиями багов вы отбиваете всяческую охоту помогать людям использовать ALT, который реально по инфраструктуре лучший в РФ.
Пакет с DKMS из дебиановских исходников в Альте собирается. Может быть отделу тестирования этот вариант поближе рассмотреть?

По промежуточному итогу оба сообщения об ошибках - bug 47061 и bug 47060 закрыты без полезного для конечного пользователя результата. Ну и на форуме в ветке https://forum.altlinux.org/index.php?topic=47736.0 топикстартер оказался "послан" использовать другие системы. Не очень дружелюбно.

А главное я не понял - Bumblebee то сможет все-таки в ALT Linux работать или нет?
Как тогда правильно оформить сообщение об ошибке по этой проблеме чтобы стал работать вариант реализации Nvidia Optimus - Legacy? 
Работающие устройства у пользователей все еще есть. Вы им реально Debian предлагаете использовать? Или может сразу closed-source астру (фактически ваших прямых конкурентов)?
Comment 5 Dmitry V. Levin 2023-07-31 19:48:59 MSK
Поскольку в Сизифе из этого пакета не собрано никаких модулей ядра, вешать баги о том, что они не собираются, не имеет смысла.
Comment 6 Sergey V Turchin 2023-08-01 11:51:56 MSK
(Ответ для Nikolay Strelkov на комментарий #4)
> Я потратил время на анализ пакетов bbswitch
Только не связывайте сильно bbswitch и bumblebee. Их можно рассматривать совершенно отдельно.