Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: multiple definition of aes_encrypt #240

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

Anoncheg1
Copy link

@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
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