dreemurrs-embedded / Pine64-Arch

:penguin: Arch Linux ARM for your PinePhone/Pro and PineTab/2
691 stars 105 forks source link

PineTab2 kernel fails to compile #541

Closed oklopfer closed 1 year ago

oklopfer commented 1 year ago

Steps to reproduce

Attempt to compile the kernel

Expected behavior

Kernel compiles successfully

Actual behavior

Kernel build fails

Logfiles and additional information

oklopfer@oklopfer:~/linux$ ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- KBUILD_DEBARCH=arm64 LOCALVERSION=-oktab make -j$(nproc) modules
 CALL    scripts/checksyscalls.sh
  CC [M]  drivers/net/wireless/bes/bes2600/main.o
  CC [M]  drivers/net/wireless/bes/bes2600/bes2600_sdio.o
drivers/net/wireless/bes/bes2600/main.c: In function ‘bes2600_init_wapi_cipher’:
drivers/net/wireless/bes/bes2600/main.c:326:23: error: variable ‘wapi_cs’ has initializer but incomplete type
  326 |         static struct ieee80211_cipher_scheme wapi_cs = {
      |                       ^~~~~~~~~~~~~~~~~~~~~~~
drivers/net/wireless/bes/bes2600/main.c:327:18: error: ‘struct ieee80211_cipher_scheme’ has no member named ‘cipher’
  327 |                 .cipher = WLAN_CIPHER_SUITE_SMS4,
      |                  ^~~~~~
In file included from ./include/net/mac80211.h:20,
                 from drivers/net/wireless/bes/bes2600/main.c:22:
./include/linux/ieee80211.h:3955:25: warning: excess elements in struct initializer
 3955 | #define SUITE(oui, id)  (((oui) << 8) | (id))
      |                         ^
./include/linux/ieee80211.h:3972:41: note: in expansion of macro ‘SUITE’
 3972 | #define WLAN_CIPHER_SUITE_SMS4          SUITE(0x001472, 1)
      |                                         ^~~~~
drivers/net/wireless/bes/bes2600/main.c:327:27: note: in expansion of macro ‘WLAN_CIPHER_SUITE_SMS4’
  327 |                 .cipher = WLAN_CIPHER_SUITE_SMS4,
      |                           ^~~~~~~~~~~~~~~~~~~~~~
./include/linux/ieee80211.h:3955:25: note: (near initialization for ‘wapi_cs’)
 3955 | #define SUITE(oui, id)  (((oui) << 8) | (id))
      |                         ^
./include/linux/ieee80211.h:3972:41: note: in expansion of macro ‘SUITE’
 3972 | #define WLAN_CIPHER_SUITE_SMS4          SUITE(0x001472, 1)
      |                                         ^~~~~
drivers/net/wireless/bes/bes2600/main.c:327:27: note: in expansion of macro ‘WLAN_CIPHER_SUITE_SMS4’
  327 |                 .cipher = WLAN_CIPHER_SUITE_SMS4,
      |                           ^~~~~~~~~~~~~~~~~~~~~~
drivers/net/wireless/bes/bes2600/main.c:328:18: error: ‘struct ieee80211_cipher_scheme’ has no member named ‘iftype’
  328 |                 .iftype = BIT(NL80211_IFTYPE_STATION),
      |                  ^~~~~~
In file included from ./arch/arm64/include/asm/alternative-macros.h:6,
                 from ./arch/arm64/include/asm/barrier.h:14,
                 from ./include/linux/list.h:11,
                 from ./include/linux/module.h:12,
                 from drivers/net/wireless/bes/bes2600/main.c:14:
./include/vdso/bits.h:7:33: warning: excess elements in struct initializer
    7 | #define BIT(nr)                 (UL(1) << (nr))
      |                                 ^
drivers/net/wireless/bes/bes2600/main.c:328:27: note: in expansion of macro ‘BIT’
  328 |                 .iftype = BIT(NL80211_IFTYPE_STATION),
      |                           ^~~
./include/vdso/bits.h:7:33: note: (near initialization for ‘wapi_cs’)
    7 | #define BIT(nr)                 (UL(1) << (nr))
      |                                 ^
drivers/net/wireless/bes/bes2600/main.c:328:27: note: in expansion of macro ‘BIT’
  328 |                 .iftype = BIT(NL80211_IFTYPE_STATION),
      |                           ^~~
drivers/net/wireless/bes/bes2600/main.c:329:18: error: ‘struct ieee80211_cipher_scheme’ has no member named ‘hdr_len’
  329 |                 .hdr_len = 18,
      |                  ^~~~~~~
drivers/net/wireless/bes/bes2600/main.c:329:28: warning: excess elements in struct initializer
  329 |                 .hdr_len = 18,
      |                            ^~
drivers/net/wireless/bes/bes2600/main.c:329:28: note: (near initialization for ‘wapi_cs’)
drivers/net/wireless/bes/bes2600/main.c:330:18: error: ‘struct ieee80211_cipher_scheme’ has no member named ‘pn_len’
  330 |                 .pn_len = 16,
      |                  ^~~~~~
drivers/net/wireless/bes/bes2600/main.c:330:27: warning: excess elements in struct initializer
  330 |                 .pn_len = 16,
      |                           ^~
drivers/net/wireless/bes/bes2600/main.c:330:27: note: (near initialization for ‘wapi_cs’)
drivers/net/wireless/bes/bes2600/main.c:331:18: error: ‘struct ieee80211_cipher_scheme’ has no member named ‘pn_off’
  331 |                 .pn_off = 2,
      |                  ^~~~~~
drivers/net/wireless/bes/bes2600/main.c:331:27: warning: excess elements in struct initializer
  331 |                 .pn_off = 2,
      |                           ^
drivers/net/wireless/bes/bes2600/main.c:331:27: note: (near initialization for ‘wapi_cs’)
drivers/net/wireless/bes/bes2600/main.c:332:18: error: ‘struct ieee80211_cipher_scheme’ has no member named ‘key_idx_off’
  332 |                 .key_idx_off = 0,
      |                  ^~~~~~~~~~~
drivers/net/wireless/bes/bes2600/main.c:332:32: warning: excess elements in struct initializer
  332 |                 .key_idx_off = 0,
      |                                ^
drivers/net/wireless/bes/bes2600/main.c:332:32: note: (near initialization for ‘wapi_cs’)
drivers/net/wireless/bes/bes2600/main.c:333:18: error: ‘struct ieee80211_cipher_scheme’ has no member named ‘key_idx_mask’
  333 |                 .key_idx_mask = 0x01,
      |                  ^~~~~~~~~~~~
drivers/net/wireless/bes/bes2600/main.c:333:33: warning: excess elements in struct initializer
  333 |                 .key_idx_mask = 0x01,
      |                                 ^~~~
drivers/net/wireless/bes/bes2600/main.c:333:33: note: (near initialization for ‘wapi_cs’)
drivers/net/wireless/bes/bes2600/main.c:334:18: error: ‘struct ieee80211_cipher_scheme’ has no member named ‘key_idx_shift’
  334 |                 .key_idx_shift = 0,
      |                  ^~~~~~~~~~~~~
drivers/net/wireless/bes/bes2600/main.c:334:34: warning: excess elements in struct initializer
  334 |                 .key_idx_shift = 0,
      |                                  ^
drivers/net/wireless/bes/bes2600/main.c:334:34: note: (near initialization for ‘wapi_cs’)
drivers/net/wireless/bes/bes2600/main.c:335:18: error: ‘struct ieee80211_cipher_scheme’ has no member named ‘mic_len’
  335 |                 .mic_len = 16
      |                  ^~~~~~~
drivers/net/wireless/bes/bes2600/main.c:335:28: warning: excess elements in struct initializer
  335 |                 .mic_len = 16
      |                            ^~
drivers/net/wireless/bes/bes2600/main.c:335:28: note: (near initialization for ‘wapi_cs’)
drivers/net/wireless/bes/bes2600/main.c:326:47: error: storage size of ‘wapi_cs’ isn’t known
  326 |         static struct ieee80211_cipher_scheme wapi_cs = {
      |                                               ^~~~~~~
drivers/net/wireless/bes/bes2600/main.c:338:11: error: ‘struct ieee80211_hw’ has no member named ‘cipher_schemes’
  338 |         hw->cipher_schemes = &wapi_cs;
      |           ^~
drivers/net/wireless/bes/bes2600/main.c:339:11: error: ‘struct ieee80211_hw’ has no member named ‘n_cipher_schemes’
  339 |         hw->n_cipher_schemes = 1;
      |           ^~
drivers/net/wireless/bes/bes2600/main.c:326:47: warning: unused variable ‘wapi_cs’ [-Wunused-variable]
  326 |         static struct ieee80211_cipher_scheme wapi_cs = {
      |                                               ^~~~~~~
make[6]: *** [scripts/Makefile.build:252: drivers/net/wireless/bes/bes2600/main.o] Error 1
make[6]: *** Waiting for unfinished jobs....
drivers/net/wireless/bes/bes2600/bes2600_sdio.c: In function ‘bes2600_get_gpio_from_dts’:
drivers/net/wireless/bes/bes2600/bes2600_sdio.c:1403:28: error: storage size of ‘flags’ isn’t known
 1403 |         enum of_gpio_flags flags;
      |                            ^~~~~
drivers/net/wireless/bes/bes2600/bes2600_sdio.c:1407:31: error: implicit declaration of function ‘of_get_named_gpio_flags’; did you mean ‘of_get_named_gpio’? [-Werror=implicit-function-declaration]
 1407 |                 wakeup_gpio = of_get_named_gpio_flags(wireless_node, gpio_name, 0, &flags);
      |                               ^~~~~~~~~~~~~~~~~~~~~~~
      |                               of_get_named_gpio
drivers/net/wireless/bes/bes2600/bes2600_sdio.c:1403:28: warning: unused variable ‘flags’ [-Wunused-variable]
 1403 |         enum of_gpio_flags flags;
      |                            ^~~~~
cc1: some warnings being treated as errors
make[6]: *** [scripts/Makefile.build:252: drivers/net/wireless/bes/bes2600/bes2600_sdio.o] Error 1
make[5]: *** [scripts/Makefile.build:494: drivers/net/wireless/bes/bes2600] Error 2
make[4]: *** [scripts/Makefile.build:494: drivers/net/wireless/bes] Error 2
make[3]: *** [scripts/Makefile.build:494: drivers/net/wireless] Error 2
make[2]: *** [scripts/Makefile.build:494: drivers/net] Error 2
make[1]: *** [scripts/Makefile.build:494: drivers] Error 2
make: *** [Makefile:2025: .] Error 2

I am in charge of porting the PineTab 2 to Ubuntu Touch, and I am failing to build the kernel due to the bes2600 module being incomplete, and therefore unable to compile. I have looked across your repository and pkgs, but have not been able to figure out how you are getting around this issue.

Danct12 commented 1 year ago

BES2600 module currently only compiles with the set of options enabled in this kernel config

I'll be closing this as this isn't related to this distro, please join the PineTab chat room or ask in UBports Porting chat (will catch you on there).

oklopfer commented 1 year ago

Got it, thanks. Missed having to actually disable those other modules for it. Compiling successfully on 6.3 now.