Skip to content

fix: multiple definition of aes_encrypt#240

Open
Anoncheg1 wants to merge 3 commits intomorrownr:mainfrom
Anoncheg1:in-kernel
Open

fix: multiple definition of aes_encrypt#240
Anoncheg1 wants to merge 3 commits intomorrownr:mainfrom
Anoncheg1:in-kernel

Conversation

@Anoncheg1
Copy link
Copy Markdown

@Anoncheg1 Anoncheg1 commented Jan 7, 2025

Error message:

  AR      drivers/built-in.a
  AR      built-in.a
  AR      vmlinux.a
  LD      vmlinux.o
ld: drivers/net/wireless/realtek/rtl8822b/core/crypto/aes-internal-enc.o: in function `aes_encrypt':
aes-internal-enc.c:(.text+0x80): multiple definition of `aes_encrypt'; lib/crypto/aes.o:aes.c:(.text+0x870): first defined here
ld: drivers/net/wireless/realtek/rtl8822b/core/crypto/aes-internal-enc.o: in function `__pfx_aes_encrypt':
aes-internal-enc.c:(.text+0x70): multiple definition of `__pfx_aes_encrypt'; lib/crypto/aes.o:aes.c:(.text+0x860): first defined here
make[2]: *** [scripts/Makefile.vmlinux_o:89: vmlinux.o] Error 1
make[1]: *** [/usr/src/linux-6.6.67-gentoo/Makefile:1148: vmlinux_o] Error 2
make: *** [Makefile:234: __sub-make] Error 2

I tested for Linux kernel 6.6.67-gentoo.

I used following script to install directly in kernel to "drivers/net/wireless/realtek/" path.

#!/bin/bash
RTL=rtl8822b # rtl8812au
FOLDERS=88x2bu-20210702

CONF_MOD=CONFIG_RTL8822BU

# mkdir -p "/lib/modules/$(uname -r)/build"
mkdir -p "/lib/modules/$(cat /usr/src/linux/include/config/kernel.release)/build" # gentoo way

# - remove folder in kernel
rm -r /usr/src/linux/drivers/net/wireless/realtek/${RTL} &> /dev/null
# - copy folder to kernel
cp -r /usr/local/src/${FOLDERS} /usr/src/linux/drivers/net/wireless/realtek/${RTL}
# - replace line in Makefile, we include in kernel
sed -i "s/export ${CONF_MOD} = m/export ${CONF_MOD} = y/" /usr/src/linux/drivers/net/wireless/realtek/${RTL}/Makefile

# - add line to uplevel Makefile to our folder
echo 'obj-$('${CONF_MOD}')		+= '"${RTL}/" >> /usr/src/linux/drivers/net/wireless/realtek/Makefile
# - create/restore .back for kernel config
if [ -e /usr/src/linux/drivers/net/wireless/realtek/Kconfig.back ] ; then
    cp /usr/src/linux/drivers/net/wireless/realtek/Kconfig.back /usr/src/linux/drivers/net/wireless/realtek/Kconfig
else
    cp /usr/src/linux/drivers/net/wireless/realtek/Kconfig /usr/src/linux/drivers/net/wireless/realtek/Kconfig.back
fi
# - add section to Kconfig with path to our Kconfig
head -n -1 /usr/src/linux/drivers/net/wireless/realtek/Kconfig > /tmp/Kconfig
echo "source \"drivers/net/wireless/realtek/${RTL}/Kconfig\"" >> /tmp/Kconfig
echo >> /tmp/Kconfig
echo 'endif # WLAN_VENDOR_REALTEK' >> /tmp/Kconfig
mv /tmp/Kconfig /usr/src/linux/drivers/net/wireless/realtek/Kconfig


# - remove rtw88
echo "" > /usr/src/linux/drivers/net/wireless/realtek/rtw88/Kconfig 
echo "" > /usr/src/linux/drivers/net/wireless/realtek/rtw88/Makefile

@morrownr
Copy link
Copy Markdown
Owner

morrownr commented Jan 7, 2025

Hi again @Anoncheg1

I see the work you have done. I am to the point that I am about to discontinue maintenance on this driver due to the work on rtw88 over the last year. rtw88 as of kernel 6.12 is in good shape and as of 6.14 should be excellent. We can use someone of your skills to help testing and working on the downstream rtw88 that we are using to upstream work to the kernel:

https://github.com/lwfinger/rtw88

I hope to see you there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants