SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I'm trying to set up dual boot with Windows 10 and Slackware 14.2 (more problems later). I'm in kernel 4.4.14-smp. The machine is a new Asus Vivobook X54OU. It uses a Realtek 8821ce wireless chip, which apparently isn't part of Slackware's install. I read that I can download some help here: https://github.com/endlessm/linux/tr...less/rtl8821ce
I download the zip and transfer it to the laptop (it doesn't have ethernet) and changed the Makefile to refer to the correct directory. When I
Code:
make
I get the following output:
Quote:
make ARCH=i386 CROSS_COMPILE= -C /lib/modules/4.4.14-smp/build M=/tmp/StoreNGo/rtl8821ce modules
make[1]: Entering directory '/usr/src/linux-4.4.14'
CC [M] /tmp/StoreNGo/rtl8821ce/core/rtw_code.o
In file included from /tmp/StoreNGo/rtl8821ce/include/drv_types.h:32:0,
from /tmp/StoreNGo/rtl8821ce/core/rtw_cmd.c:22:
/tmp/StoreNGo/rtl8821ce/include/osdep_serice.h:47:33 fatal error: linux/sched/signal.h: No such file or directory
compilation terminated.
scripts/Makefile.build:258: recipe for target '/tmp/StoreNGo/rtl8821ce/core/rtw_cmd.o' failed
make[2] *** [/tmp/StoreNGo/rtl8821ce/core/rtw_cmd.o] Error 1
Makefile:1385: recipe for target '_module_/tmp/StoreNGo/rtl8821ce' failed
make[1] *** [_module_/tmp/StoreNGo/rtl8821ce] Error 2
make[1] Leaving directory '/usr/src/linux-4.4.14'
Makefile:1902: recipe for target 'modules' failed
make: *** [modules] Error 2
signal.h has been moved from its actual (older kernel) place in:
/usr/src/linux-4.4.14/include/linux/
to:
/usr/src/linux-NEWER-KERNELS/include/linux/sched/
I've never patched a kernel before and I'm confused. Does patching mean that I have to find a newer version of 4.4.x, like 4.4.156 or that I'm supposed to look for 4.x, where x is a later version?
You don't need to patch the kernel, only one file (hopefully) from the driver you downloaded. This driver was recently modified to match the modifications that were made for some file locations in newer kernels, past 4.4.153.
You said:
Quote:
I download the zip and transfer it to the laptop (it doesn't have ethernet) and changed the Makefile to refer to the correct directory.
After you extract the zip file, look for the file:
/rtl8821ce/include/osdep_service.h
and modify it according to my previous post and run make after that.
Thank you for explaining. I made that change and used "make" again. That led to a new group of messages:
Quote:
make ARCH=i386 CROSS_COMPILE= -C /lib/modules/4.4.14-smp/build M=/tmp/StoreNGo/rtl8821ce modules
make[1]: Entering directory '/usr/src/linux-4.4.14'
CC [M] /tmp/StoreNGo/rtl8821ce/core/rtw_code.o
In file included from /tmp/StoreNGo/rtl8821ce/include/include/osdep_service.h:48:0,
from /tmp/StoreNGo/rtl8821ce/include/include/drv_types.h:32,
from /tmp/StoreNGo/rtl8821ce/core/rtw_cmd.c:22:
/tmp/StoreNGo/rtl8821ce/include/osdep_service_linux.h: In function '_init_timer':
/tmp/StoreNGo/rtl8821ce/include/osdep_service_linux.h:294:2: error: implicit declaration of function 'timer_setup' [-Werror=implicit-function-declaration]
timer_setup(ptimer, pfunc, 0);
^
cc1: some warnings being treated as errors
scripts/Makefile.build:258: recipe for target '/tmp/StoreNGo/rtl8821ce/core/rtw_cmd.o' failed
make[2] *** [/tmp/StoreNGo/rtl8821ce/core/rtw_cmd.o] Error 1
Makefile:1385: recipe for target '_module_/tmp/StoreNGo/rtl8821ce' failed
make[1] *** [_module_/tmp/StoreNGo/rtl8821ce] Error 2
make[1] Leaving directory '/usr/src/linux-4.4.14'
Makefile:1902: recipe for target 'modules' failed
make: *** [modules] Error 2
I opened up the ~osdep_service.h, ~drv_types.h, and ~osdep_service_linux.h files. I don't understand what the respective lines in those files mean. They seems to refer to the file before. It looks to me like the current error has to do with a timer that was called, but I don't understand the purpose of the timer or what is wrong with it.
Thank you, jostber. I looked on kernel.org and there is no 4.15. There is 4.14.x, then 4.17.x. I wonder how the writer in the link you point to had a 4.15 to reference.
Last edited by deretsigernu; 09-17-2018 at 08:09 AM.
Reason: fix version
Thank you for explaining. I made that change and used "make" again. That led to a new group of messages:
... cc1: some warnings being treated as errors
...
I opened up the ~osdep_service.h, ~drv_types.h, and ~osdep_service_linux.h files. I don't understand what the respective lines in those files mean. They seems to refer to the file before. It looks to me like the current error has to do with a timer that was called, but I don't understand the purpose of the timer or what is wrong with it.
and give it another try with make. Well, run "make clean" before starting another "make".
Or, as suggested by some other users, try a newer kernel that already contains the required 8821ce driver (haven't checked if it's already included or in which version it was introduced). You might want to try a community compiled kernel - ask for guidance in this thread: https://www.linuxquestions.org/quest...se-4175597503/
Hi. I got the newest kernel and tried again. Here is the history reprinted
Code:
cd /tmp
tar -xvf linux-4.18.8.tar.xz
rm linux
mv linux-4.18.8 /usr/src
cd /usr/src/linux-4.18.8/
cd ..
ls
ln -s linux-4.18.8 linux
zcat /proc/config.gz > /usr/src/linux/.config
cd /usr/src/linux
ls
make oldconfig
make xconfig
make clean
make all
And this is the result:
Quote:
bash-4.3# make all
HOSTCC scripts/basic/fixdep
HOSTCC scripts/basic/bin2c
HOSTCC scripts/kconfig/conf.o
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/conf
scripts/kconfig/conf --silentoldconfig Kconfig
#
# configuration written to .config
#
HOSTCC arch/x86/tools/relocs_32.o
HOSTCC arch/x86/tools/relocs_64.o
HOSTCC arch/x86/tools/relocs_common.o
HOSTLD arch/x86/tools/relocs
CHK include/config/kernel.release
Cannot use CONFIG_CC_STACKPROTECTOR_REGULAR: -fstack-protector not supported by compiler
Makefile:1114: recipe for target 'prepare-compiler-check' failed
make: *** [prepare-compiler-check] Error 1
I went to the Makefile to see if I could edit out the
In post #10 I advised you to remove the line "#EXTRA_CFLAGS += -Werror" from /rtl8821ce/Makefile and start the driver compilation again. Removing that line from the makefile will instruct the compiler to not treat warnings as errors, which was the cause of your build failure reported in post #6:
Code:
cc1: some warnings being treated as errors
I also said that I don't know (didn't check) if the 8821ce driver is already available in the newer kernels. If it's not and if this driver is your only issue, then you can stick with the kernel Slackware is providing (4.4.14) and adapt the driver as suggested in post #3 & #5
To sum up, focus only on the driver (the zip file you downloaded) and follow my hints from post #3,#5(clarification) and #10
Last edited by abga; 09-18-2018 at 10:48 PM.
Reason: too many # :)
I respect your ambition (and potential learning experience) in compiling your own kernel, but I don't really understand why you started a new thread related to the actual driver issue and for a newer kernel didn't follow what I suggested in post #10 about the community provided ones. https://www.linuxquestions.org/quest...el-4175638931/
Back to your driver issue, have you tried what I advised you in my latest post? Is that endlessm rtl8821ce driver still failing to build under 4.4.14?
I remember helping a fellow Slacker with the BT part of the rtl8821ce driver recently and the working driver was not from endlessm but the official one from Realtek, found on an Ubuntu bug-track list.
I searched again and found the actual WiFi driver: https://bugs.launchpad.net/ubuntu/+s...m/+bug/1740231
File: rtl8821CE_WiFi_linux_v5.2.5.1_26055.20180108_COEX20170310-1212.tar.gz
I just built it under Slackware 14.2 - kernel 4.4.157 and it looks OK, at least by simulating its use, since I don't own a rtl8821ce adapter.
Extracted the tarball, ran make & make install:
I appreciate your patience and help so far. I deleted the line in the Realtek Makefile that referred to the "#EXTRA_CFLAGS += -Werror". I also made the edit you suggested for the line in /rtl8821ce/include/osdep_service.h that said to change "linux/sched/signal.h" to "linux/signal.h". Then I used "make clean" and then "make". I'm doing this inside the /tmp directory where the file was extracted as root. When I use "make", I get the following:
Quote:
make ARCH=i386 CROSS_COMPILE= -C /lib/modules/4.4.14-smp/build M=/tmp/StoreNGo/rtl8821ce modules
make[1]: Entering directory '/usr/src/linux-4.4.14'
CC [M] /tmp/StoreNGo/rtl8821ce/core/rtw_cmd.o
In file included from /tmp/StoreNGo/rtl8821ce/include/osdep_service.h:48:0,
from /tmp/StoreNGo/rtl8821ce/include/drv_types.h:32,
from /tmp/StoreNGo/rtl8821ce/core/rtw_cmd.c:22,/tmp/StoreNGo/rtl882/tmp/StoreNGo/rtl8821ce1ce
/tmp/StoreNGo/rtl8821ce/include/osdep_service_linux.h: In function '_init_time':
/tmp/StoreNGo/rtl8821ce/include/osdep_service_linux.h:294:2 error: implicit declaration of function 'timer_setup' [-Werror=implicit-function=declaration]
timer_setup(ptimer, pfunc, 0);
^
cc1: some warnings being treated as errors
scripts/Makefile.build:258 recipe for target '/tmp/StoreNGo/rtl8821ce/core/trw_cmd.o' failed
(with a few more lines)
Because I was still getting errors around making this driver, I started looking at other options for dealing with the error/'stackprotector' flag and they seemed to indicate that I need a different kernel, thus my attempts at trying to build, or otherwise set up, a new kernel. From what I can tell, the newer kernels do not have support for Realtek 8821ce. I say this because when I went through the config process in the newer kernel (can't remember which one I tried now) before the actual make (which never succeeded for me) there was never any config question about 8821ce. So, I'm hoping if I can build/get a new kernel in place, I can try installing the driver there and have some success.
Once again, I appreciate your patience. I see that you have referred to an actual Realtek driver (which I tried to find at one point, but something didn't go right before I got all of this rolling) and will see if that works for me. I will post about that later.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.