aircrack-ng / rtl8188eus

RealTek RTL8188eus WiFi driver with monitor mode & frame injection support
926 stars 397 forks source link

compiling error #187

Open sharif1337 opened 2 years ago

sharif1337 commented 2 years ago

make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/5.18.0-kali5-amd64/build M=/home/hidden/Desktop/tools/rtl8188eus modules make[1]: Entering directory '/usr/src/linux-headers-5.18.0-kali5-amd64' CC [M] /home/hidden/Desktop/tools/rtl8188eus/os_dep/osdep_service.o /home/hidden/Desktop/tools/rtl8188eus/os_dep/osdep_service.c: In function ‘thread_exit’: /home/hidden/Desktop/tools/rtl8188eus/os_dep/osdep_service.c:1271:9: error: implicit declaration of function ‘complete_and_exit’ [-Werror=implicit-function-declaration] 1271 | complete_and_exit(comp, 0); | ^~~~~ /home/hidden/Desktop/tools/rtl8188eus/os_dep/osdep_service.c: In function ‘rtw_change_ifname’: /home/hidden/Desktop/tools/rtl8188eus/os_dep/osdep_service.c:2450:28: warning: passing argument 1 of ‘_rtw_memcpy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 2450 | _rtw_memcpy(pnetdev->dev_addr, adapter_mac_addr(padapter), ETH_ALEN); | ~^~~~ /home/hidden/Desktop/tools/rtl8188eus/os_dep/osdep_service.c:899:24: note: expected ‘void ’ but argument is of type ‘const unsigned char ’ 899 | void _rtw_memcpy(void dst, const void src, u32 sz) | ~~^~~ cc1: some warnings being treated as errors make[2]: [/usr/src/linux-headers-5.18.0-kali5-common/scripts/Makefile.build:293: /home/hidden/Desktop/tools/rtl8188eus/os_dep/osdep_service.o] Error 1 make[1]: [/usr/src/linux-headers-5.18.0-kali5-common/Makefile:1858: /home/hidden/Desktop/tools/rtl8188eus] Error 2 make[1]: Leaving directory '/usr/src/linux-headers-5.18.0-kali5-amd64' make: *** [Makefile:2058: modules] Error 2

quickreflex commented 1 year ago

There is a solution to the problem. Read the other issues below where the patched driver file is.

flash3636 commented 1 year ago

hi sir i have error on compiling please help me

quickreflex commented 1 year ago

Copy the output of the make command and paste it here or attach it as a text file.

flash3636 commented 1 year ago

IMG_20220717_175820 Please help me

quickreflex commented 1 year ago

It works, but you have to use my driver archive where all the bugs are fixed and you need to install kernel headers. Run the following sequence of commands in an empty directory:

wget https://github.com/aircrack-ng/rtl8188eus/files/8977331/rtl8188eus_new.tar.gz tar xvf rtl8188eus_new.tar.gz cd rtl8188eus_new sudo make sudo make install sudo modprobe 8188eu sudo reboot

flash3636 commented 1 year ago

THANK YOU BRO..... FOR YOUR HELP THANK YOU THANK YOU VERY VERY HAVE FRIENDS....?

flash3636 commented 1 year ago

I AM BEGINNER MY AGE IS 17th TO 18th HAVE FRIENDS....?

quickreflex commented 1 year ago

You have not installed the driver. You must login and use the root user account to run the "make install" command without error.

flash3636 commented 1 year ago

Hi quickreflex please send instagarm id

sharif1337 commented 1 year ago

It works, but you have to use my driver archive where all the bugs are fixed and you need to install kernel headers. Run the following sequence of commands in an empty directory:

wget https://github.com/aircrack-ng/rtl8188eus/files/8977331/rtl8188eus_new.tar.gz tar xvf rtl8188eus_new.tar.gz cd rtl8188eus_new sudo make sudo make install sudo modprobe 8188eu sudo reboot

It's works 😃

SimplyCEO commented 1 year ago

Maybe it is a feature since kernel 5.19 did not show any error messages stated at my commit: https://github.com/KanuX-14/rtl8188eus/commit/0f1905259ec9b85fd1453be3abd322ff543e12bc It appears to be that from kernel 5.18 the extern function breaks some declarations, making it have definitions in multiple files.

quickreflex commented 1 year ago

Here's a quote from a kernel developer letter:

With compilers which follow the C99 standard (like modern versions of gcc and clang), "extern inline" does the opposite thing from older versions of gcc (emits code for an externally linkable version of the inline function).

"static inline" does the intended behavior in all cases instead.

SimplyCEO commented 1 year ago

So it is really the newer C version that they are implementing. This will break a lot of codes.

charlie0x01 commented 1 year ago

It works, but you have to use my driver archive where all the bugs are fixed and you need to install kernel headers. Run the following sequence of commands in an empty directory:

wget https://github.com/aircrack-ng/rtl8188eus/files/8977331/rtl8188eus_new.tar.gz tar xvf rtl8188eus_new.tar.gz cd rtl8188eus_new sudo make sudo make install sudo modprobe 8188eu sudo reboot

does that work on k5.18 on kali linux 2022.2?

quickreflex commented 1 year ago

Yes, it works.

charlie0x01 commented 1 year ago

Yes, it works.

Thank you so much, brother it worked!!!

MrRezax85 commented 1 year ago

It works, but you have to use my driver archive where all the bugs are fixed and you need to install kernel headers. Run the following sequence of commands in an empty directory:

wget https://github.com/aircrack-ng/rtl8188eus/files/8977331/rtl8188eus_new.tar.gz tar xvf rtl8188eus_new.tar.gz cd rtl8188eus_new sudo make sudo make install sudo modprobe 8188eu sudo reboot

Please help me Screenshot 2022-10-26 210342

SimplyCEO commented 1 year ago

@MrRezax85 Use this instead.

MrRezax85 commented 1 year ago

@MrRezax85 Use this instead.

thank you bro this work

Lucksinia commented 1 year ago

Hi, I have a question. If I can't use wget (because I don't have Ethernet or WiFi connections, obviously...) Where do I need to unzip/untar archive? /lib/modules/3.4.39-01-lobo/kernel/drivers? Because make is like:

make [1]: *** /lib/modules/3.4.39-1-lobo/build: no such file or directory. Stop. Makefile:2061: recipe for target 'modules' failed make: [modules] Error 2

But build file IS here, I can clearly see it. Can you help me? (Posting here, because make error 2. If I need to open a new issue, I will) Thank you in advance.

SimplyCEO commented 1 year ago

@Lucksinia You need at least the kernel source in order to build the kernel modules.

If you don't have internet connected to your device, get your kernel source code from your phone or a public wifi. Send it to your device, and then compile it using your already installed configuration file under /boot/.

Do a modules_install and a headers_install and you are good to go. It should install the build driver.

Lucksinia commented 1 year ago

Okay... I know that will be idiotic question, but I got no Idea how to do it after messing with it for quite a while. Under /boot/ in "cloned" repo folder? Or under running kernel?

Or if just under modules makefile, it writers:

The present kernel configuration has modules disabled. Please type 'make config ' and enable loadable modules support. Then build a kernel with module support enabled.

But if I make config:

recipe for target config failed.

And I am not well versed in kernel building to do it without already precompiled and ready image of a distro.

SimplyCEO commented 1 year ago

The configuration file is under /boot/. The reference of the current directory is ./boot/.
It is needed to copy it to the current kernel repository and rename it to .config. Example:

cp -v /boot/config-x.y.z .config

Sorry for not being clear of it, as you are not familiar with kernel building.
You need to make the files in order to install:

make olddefconfig
make modules
make headers

And then install it as root:

sudo make install modules_install
sudo make install headers_install
sudo update-initramfs -u

If sudo is not installed, it may be needed to use su and do from the 'make' part. Or use your own installed super-user manager.

These instructions are for Debian-based or itself. Use this script as reference.