Can't compile rtl8821ce wifi driver on Lubuntu 18.10












0















I'm trying to get Linux working with my Lenovo Yoga 530-14ARR laptop. It has a wireless Realtek "rtl8821ce" card, which is not recognized out of the box by my brand new Lubuntu 18.10 install (I tried other lightweight distros before, without success). According to this question's top answer, compiling this and modprobe the resulting module should do the trick.



Unfortunately, I can't get it to compile on my machine:



liloboot@lubuntu:~/rtl8821ce$ make
make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/4.18.0-10-generic/build M=/home/liloboot/rtl8821ce modules
make[1]: Entering directory '/usr/src/linux-headers-4.18.0-10-generic'
Makefile:982: "Cannot use CONFIG_STACK_VALIDATION=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel"
CC [M] /home/liloboot/rtl8821ce/os_dep/linux/os_intfs.o
/home/liloboot/rtl8821ce/os_dep/linux/os_intfs.c:1325:22: error: initialization of ‘u16 (*)(struct net_device *, struct sk_buff *, void *, u16 (*)(struct net_device *, struct sk_buff *))’ {aka ‘short unsigned int (*)(struct net_device *, struct sk_buff *, void *, short unsigned int (*)(struct net_device *, struct sk_buff *))’} from incompatible pointer type ‘u16 (*)(struct net_device *, struct sk_buff *, struct net_device *, u16 (*)(struct net_device *, struct sk_buff *))’ {aka ‘short unsigned int (*)(struct net_device *, struct sk_buff *, struct net_device *, short unsigned int (*)(struct net_device *, struct sk_buff *))’} [-Werror=incompatible-pointer-types]
.ndo_select_queue = rtw_select_queue,
^~~~~~~~~~~~~~~~
/home/liloboot/rtl8821ce/os_dep/linux/os_intfs.c:1325:22: note: (near initialization for ‘rtw_netdev_ops.ndo_select_queue’)
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:327: /home/liloboot/rtl8821ce/os_dep/linux/os_intfs.o] Error 1
make[1]: *** [Makefile:1546: _module_/home/liloboot/rtl8821ce] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.18.0-10-generic'
make: *** [Makefile:1902: modules] Error 2


EDIT: Following chili555's comment, I tried this. It finally worked but I had several problems that I want to point out in an answer. See below.










share|improve this question




















  • 3





    Ubuntu 18.10 uses a newer kernel version than that contemplated in the answer you quoted above. I suggest that you try this instead: askubuntu.com/questions/1070593/… It 'makes' for me in 18.10, albeit with a few possibly harmless warnngs. Welcome to Ask Ubuntu.

    – chili555
    Feb 6 at 20:46











  • Thanks a lot for pointing that out. I posted an answer with some complements.

    – Patrice Gahide
    Feb 6 at 22:34
















0















I'm trying to get Linux working with my Lenovo Yoga 530-14ARR laptop. It has a wireless Realtek "rtl8821ce" card, which is not recognized out of the box by my brand new Lubuntu 18.10 install (I tried other lightweight distros before, without success). According to this question's top answer, compiling this and modprobe the resulting module should do the trick.



Unfortunately, I can't get it to compile on my machine:



liloboot@lubuntu:~/rtl8821ce$ make
make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/4.18.0-10-generic/build M=/home/liloboot/rtl8821ce modules
make[1]: Entering directory '/usr/src/linux-headers-4.18.0-10-generic'
Makefile:982: "Cannot use CONFIG_STACK_VALIDATION=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel"
CC [M] /home/liloboot/rtl8821ce/os_dep/linux/os_intfs.o
/home/liloboot/rtl8821ce/os_dep/linux/os_intfs.c:1325:22: error: initialization of ‘u16 (*)(struct net_device *, struct sk_buff *, void *, u16 (*)(struct net_device *, struct sk_buff *))’ {aka ‘short unsigned int (*)(struct net_device *, struct sk_buff *, void *, short unsigned int (*)(struct net_device *, struct sk_buff *))’} from incompatible pointer type ‘u16 (*)(struct net_device *, struct sk_buff *, struct net_device *, u16 (*)(struct net_device *, struct sk_buff *))’ {aka ‘short unsigned int (*)(struct net_device *, struct sk_buff *, struct net_device *, short unsigned int (*)(struct net_device *, struct sk_buff *))’} [-Werror=incompatible-pointer-types]
.ndo_select_queue = rtw_select_queue,
^~~~~~~~~~~~~~~~
/home/liloboot/rtl8821ce/os_dep/linux/os_intfs.c:1325:22: note: (near initialization for ‘rtw_netdev_ops.ndo_select_queue’)
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:327: /home/liloboot/rtl8821ce/os_dep/linux/os_intfs.o] Error 1
make[1]: *** [Makefile:1546: _module_/home/liloboot/rtl8821ce] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.18.0-10-generic'
make: *** [Makefile:1902: modules] Error 2


EDIT: Following chili555's comment, I tried this. It finally worked but I had several problems that I want to point out in an answer. See below.










share|improve this question




















  • 3





    Ubuntu 18.10 uses a newer kernel version than that contemplated in the answer you quoted above. I suggest that you try this instead: askubuntu.com/questions/1070593/… It 'makes' for me in 18.10, albeit with a few possibly harmless warnngs. Welcome to Ask Ubuntu.

    – chili555
    Feb 6 at 20:46











  • Thanks a lot for pointing that out. I posted an answer with some complements.

    – Patrice Gahide
    Feb 6 at 22:34














0












0








0








I'm trying to get Linux working with my Lenovo Yoga 530-14ARR laptop. It has a wireless Realtek "rtl8821ce" card, which is not recognized out of the box by my brand new Lubuntu 18.10 install (I tried other lightweight distros before, without success). According to this question's top answer, compiling this and modprobe the resulting module should do the trick.



Unfortunately, I can't get it to compile on my machine:



liloboot@lubuntu:~/rtl8821ce$ make
make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/4.18.0-10-generic/build M=/home/liloboot/rtl8821ce modules
make[1]: Entering directory '/usr/src/linux-headers-4.18.0-10-generic'
Makefile:982: "Cannot use CONFIG_STACK_VALIDATION=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel"
CC [M] /home/liloboot/rtl8821ce/os_dep/linux/os_intfs.o
/home/liloboot/rtl8821ce/os_dep/linux/os_intfs.c:1325:22: error: initialization of ‘u16 (*)(struct net_device *, struct sk_buff *, void *, u16 (*)(struct net_device *, struct sk_buff *))’ {aka ‘short unsigned int (*)(struct net_device *, struct sk_buff *, void *, short unsigned int (*)(struct net_device *, struct sk_buff *))’} from incompatible pointer type ‘u16 (*)(struct net_device *, struct sk_buff *, struct net_device *, u16 (*)(struct net_device *, struct sk_buff *))’ {aka ‘short unsigned int (*)(struct net_device *, struct sk_buff *, struct net_device *, short unsigned int (*)(struct net_device *, struct sk_buff *))’} [-Werror=incompatible-pointer-types]
.ndo_select_queue = rtw_select_queue,
^~~~~~~~~~~~~~~~
/home/liloboot/rtl8821ce/os_dep/linux/os_intfs.c:1325:22: note: (near initialization for ‘rtw_netdev_ops.ndo_select_queue’)
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:327: /home/liloboot/rtl8821ce/os_dep/linux/os_intfs.o] Error 1
make[1]: *** [Makefile:1546: _module_/home/liloboot/rtl8821ce] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.18.0-10-generic'
make: *** [Makefile:1902: modules] Error 2


EDIT: Following chili555's comment, I tried this. It finally worked but I had several problems that I want to point out in an answer. See below.










share|improve this question
















I'm trying to get Linux working with my Lenovo Yoga 530-14ARR laptop. It has a wireless Realtek "rtl8821ce" card, which is not recognized out of the box by my brand new Lubuntu 18.10 install (I tried other lightweight distros before, without success). According to this question's top answer, compiling this and modprobe the resulting module should do the trick.



Unfortunately, I can't get it to compile on my machine:



liloboot@lubuntu:~/rtl8821ce$ make
make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/4.18.0-10-generic/build M=/home/liloboot/rtl8821ce modules
make[1]: Entering directory '/usr/src/linux-headers-4.18.0-10-generic'
Makefile:982: "Cannot use CONFIG_STACK_VALIDATION=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel"
CC [M] /home/liloboot/rtl8821ce/os_dep/linux/os_intfs.o
/home/liloboot/rtl8821ce/os_dep/linux/os_intfs.c:1325:22: error: initialization of ‘u16 (*)(struct net_device *, struct sk_buff *, void *, u16 (*)(struct net_device *, struct sk_buff *))’ {aka ‘short unsigned int (*)(struct net_device *, struct sk_buff *, void *, short unsigned int (*)(struct net_device *, struct sk_buff *))’} from incompatible pointer type ‘u16 (*)(struct net_device *, struct sk_buff *, struct net_device *, u16 (*)(struct net_device *, struct sk_buff *))’ {aka ‘short unsigned int (*)(struct net_device *, struct sk_buff *, struct net_device *, short unsigned int (*)(struct net_device *, struct sk_buff *))’} [-Werror=incompatible-pointer-types]
.ndo_select_queue = rtw_select_queue,
^~~~~~~~~~~~~~~~
/home/liloboot/rtl8821ce/os_dep/linux/os_intfs.c:1325:22: note: (near initialization for ‘rtw_netdev_ops.ndo_select_queue’)
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:327: /home/liloboot/rtl8821ce/os_dep/linux/os_intfs.o] Error 1
make[1]: *** [Makefile:1546: _module_/home/liloboot/rtl8821ce] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.18.0-10-generic'
make: *** [Makefile:1902: modules] Error 2


EDIT: Following chili555's comment, I tried this. It finally worked but I had several problems that I want to point out in an answer. See below.







drivers wireless lubuntu make realtek-wireless






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Feb 6 at 22:45







Patrice Gahide

















asked Feb 6 at 17:34









Patrice GahidePatrice Gahide

1113




1113








  • 3





    Ubuntu 18.10 uses a newer kernel version than that contemplated in the answer you quoted above. I suggest that you try this instead: askubuntu.com/questions/1070593/… It 'makes' for me in 18.10, albeit with a few possibly harmless warnngs. Welcome to Ask Ubuntu.

    – chili555
    Feb 6 at 20:46











  • Thanks a lot for pointing that out. I posted an answer with some complements.

    – Patrice Gahide
    Feb 6 at 22:34














  • 3





    Ubuntu 18.10 uses a newer kernel version than that contemplated in the answer you quoted above. I suggest that you try this instead: askubuntu.com/questions/1070593/… It 'makes' for me in 18.10, albeit with a few possibly harmless warnngs. Welcome to Ask Ubuntu.

    – chili555
    Feb 6 at 20:46











  • Thanks a lot for pointing that out. I posted an answer with some complements.

    – Patrice Gahide
    Feb 6 at 22:34








3




3





Ubuntu 18.10 uses a newer kernel version than that contemplated in the answer you quoted above. I suggest that you try this instead: askubuntu.com/questions/1070593/… It 'makes' for me in 18.10, albeit with a few possibly harmless warnngs. Welcome to Ask Ubuntu.

– chili555
Feb 6 at 20:46





Ubuntu 18.10 uses a newer kernel version than that contemplated in the answer you quoted above. I suggest that you try this instead: askubuntu.com/questions/1070593/… It 'makes' for me in 18.10, albeit with a few possibly harmless warnngs. Welcome to Ask Ubuntu.

– chili555
Feb 6 at 20:46













Thanks a lot for pointing that out. I posted an answer with some complements.

– Patrice Gahide
Feb 6 at 22:34





Thanks a lot for pointing that out. I posted an answer with some complements.

– Patrice Gahide
Feb 6 at 22:34










1 Answer
1






active

oldest

votes


















1














Problems and solutions when following the steps of this answer:




  • Coming from a Windows PC, all script files where in a wrong format, resulting in a 'no such file or directory' error when trying to sudo ./dkms-install.sh. I had to dos2unix all of them.

  • I had to manually sudo-run some of the dkms commands in dkms-install.sh because sudo ./dkms-install.sh was reporting errors that I finally interpreted as a lack of privileges. Don't know why.



sudo dkms build -m rtl8821ce -v v5.2.5_1.26055.20180108



sudo dkms install -m rtl8821ce -v v5.2.5_1.26055.20180108





  • Then I rebooted and ip a showed the new wlp1s0 network interface. But I was not out of the woods yet.

  • The wifi module was still hard-blocked, as shown by the outputs of nmcli radio and rfkill list. I had to add an entry to /etc/modprobe.d/blacklist.conf as explained in this: append blacklist ideapad_laptop at the end of the file, then reboot.


And the wifi module is now working properly.






share|improve this answer


























  • Awesome! Glad to hear it's working.

    – chili555
    Feb 6 at 22:43











  • @chili555 Thanks again! 15 years without Linux and the first thing I had to do when coming back was messing with a wireless connection problem... I see that manufacturers still have a long way to go... You really have to want it on some configurations.

    – Patrice Gahide
    Feb 6 at 22:51













Your Answer








StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "89"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1116164%2fcant-compile-rtl8821ce-wifi-driver-on-lubuntu-18-10%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









1














Problems and solutions when following the steps of this answer:




  • Coming from a Windows PC, all script files where in a wrong format, resulting in a 'no such file or directory' error when trying to sudo ./dkms-install.sh. I had to dos2unix all of them.

  • I had to manually sudo-run some of the dkms commands in dkms-install.sh because sudo ./dkms-install.sh was reporting errors that I finally interpreted as a lack of privileges. Don't know why.



sudo dkms build -m rtl8821ce -v v5.2.5_1.26055.20180108



sudo dkms install -m rtl8821ce -v v5.2.5_1.26055.20180108





  • Then I rebooted and ip a showed the new wlp1s0 network interface. But I was not out of the woods yet.

  • The wifi module was still hard-blocked, as shown by the outputs of nmcli radio and rfkill list. I had to add an entry to /etc/modprobe.d/blacklist.conf as explained in this: append blacklist ideapad_laptop at the end of the file, then reboot.


And the wifi module is now working properly.






share|improve this answer


























  • Awesome! Glad to hear it's working.

    – chili555
    Feb 6 at 22:43











  • @chili555 Thanks again! 15 years without Linux and the first thing I had to do when coming back was messing with a wireless connection problem... I see that manufacturers still have a long way to go... You really have to want it on some configurations.

    – Patrice Gahide
    Feb 6 at 22:51


















1














Problems and solutions when following the steps of this answer:




  • Coming from a Windows PC, all script files where in a wrong format, resulting in a 'no such file or directory' error when trying to sudo ./dkms-install.sh. I had to dos2unix all of them.

  • I had to manually sudo-run some of the dkms commands in dkms-install.sh because sudo ./dkms-install.sh was reporting errors that I finally interpreted as a lack of privileges. Don't know why.



sudo dkms build -m rtl8821ce -v v5.2.5_1.26055.20180108



sudo dkms install -m rtl8821ce -v v5.2.5_1.26055.20180108





  • Then I rebooted and ip a showed the new wlp1s0 network interface. But I was not out of the woods yet.

  • The wifi module was still hard-blocked, as shown by the outputs of nmcli radio and rfkill list. I had to add an entry to /etc/modprobe.d/blacklist.conf as explained in this: append blacklist ideapad_laptop at the end of the file, then reboot.


And the wifi module is now working properly.






share|improve this answer


























  • Awesome! Glad to hear it's working.

    – chili555
    Feb 6 at 22:43











  • @chili555 Thanks again! 15 years without Linux and the first thing I had to do when coming back was messing with a wireless connection problem... I see that manufacturers still have a long way to go... You really have to want it on some configurations.

    – Patrice Gahide
    Feb 6 at 22:51
















1












1








1







Problems and solutions when following the steps of this answer:




  • Coming from a Windows PC, all script files where in a wrong format, resulting in a 'no such file or directory' error when trying to sudo ./dkms-install.sh. I had to dos2unix all of them.

  • I had to manually sudo-run some of the dkms commands in dkms-install.sh because sudo ./dkms-install.sh was reporting errors that I finally interpreted as a lack of privileges. Don't know why.



sudo dkms build -m rtl8821ce -v v5.2.5_1.26055.20180108



sudo dkms install -m rtl8821ce -v v5.2.5_1.26055.20180108





  • Then I rebooted and ip a showed the new wlp1s0 network interface. But I was not out of the woods yet.

  • The wifi module was still hard-blocked, as shown by the outputs of nmcli radio and rfkill list. I had to add an entry to /etc/modprobe.d/blacklist.conf as explained in this: append blacklist ideapad_laptop at the end of the file, then reboot.


And the wifi module is now working properly.






share|improve this answer















Problems and solutions when following the steps of this answer:




  • Coming from a Windows PC, all script files where in a wrong format, resulting in a 'no such file or directory' error when trying to sudo ./dkms-install.sh. I had to dos2unix all of them.

  • I had to manually sudo-run some of the dkms commands in dkms-install.sh because sudo ./dkms-install.sh was reporting errors that I finally interpreted as a lack of privileges. Don't know why.



sudo dkms build -m rtl8821ce -v v5.2.5_1.26055.20180108



sudo dkms install -m rtl8821ce -v v5.2.5_1.26055.20180108





  • Then I rebooted and ip a showed the new wlp1s0 network interface. But I was not out of the woods yet.

  • The wifi module was still hard-blocked, as shown by the outputs of nmcli radio and rfkill list. I had to add an entry to /etc/modprobe.d/blacklist.conf as explained in this: append blacklist ideapad_laptop at the end of the file, then reboot.


And the wifi module is now working properly.







share|improve this answer














share|improve this answer



share|improve this answer








edited Feb 6 at 22:40

























answered Feb 6 at 22:34









Patrice GahidePatrice Gahide

1113




1113













  • Awesome! Glad to hear it's working.

    – chili555
    Feb 6 at 22:43











  • @chili555 Thanks again! 15 years without Linux and the first thing I had to do when coming back was messing with a wireless connection problem... I see that manufacturers still have a long way to go... You really have to want it on some configurations.

    – Patrice Gahide
    Feb 6 at 22:51





















  • Awesome! Glad to hear it's working.

    – chili555
    Feb 6 at 22:43











  • @chili555 Thanks again! 15 years without Linux and the first thing I had to do when coming back was messing with a wireless connection problem... I see that manufacturers still have a long way to go... You really have to want it on some configurations.

    – Patrice Gahide
    Feb 6 at 22:51



















Awesome! Glad to hear it's working.

– chili555
Feb 6 at 22:43





Awesome! Glad to hear it's working.

– chili555
Feb 6 at 22:43













@chili555 Thanks again! 15 years without Linux and the first thing I had to do when coming back was messing with a wireless connection problem... I see that manufacturers still have a long way to go... You really have to want it on some configurations.

– Patrice Gahide
Feb 6 at 22:51







@chili555 Thanks again! 15 years without Linux and the first thing I had to do when coming back was messing with a wireless connection problem... I see that manufacturers still have a long way to go... You really have to want it on some configurations.

– Patrice Gahide
Feb 6 at 22:51




















draft saved

draft discarded




















































Thanks for contributing an answer to Ask Ubuntu!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1116164%2fcant-compile-rtl8821ce-wifi-driver-on-lubuntu-18-10%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

flock() on closed filehandle LOCK_FILE at /usr/bin/apt-mirror

Mangá

Eduardo VII do Reino Unido