Can't compile rtl8821ce wifi driver on Lubuntu 18.10
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
add a comment |
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
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
add a comment |
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
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
drivers wireless lubuntu make realtek-wireless
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
add a comment |
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
add a comment |
1 Answer
1
active
oldest
votes
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 todos2unix
all of them. - I had to manually
sudo
-run some of thedkms
commands indkms-install.sh
becausesudo ./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 newwlp1s0
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
andrfkill list
. I had to add an entry to/etc/modprobe.d/blacklist.conf
as explained in this: appendblacklist ideapad_laptop
at the end of the file, then reboot.
And the wifi module is now working properly.
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
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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 todos2unix
all of them. - I had to manually
sudo
-run some of thedkms
commands indkms-install.sh
becausesudo ./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 newwlp1s0
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
andrfkill list
. I had to add an entry to/etc/modprobe.d/blacklist.conf
as explained in this: appendblacklist ideapad_laptop
at the end of the file, then reboot.
And the wifi module is now working properly.
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
add a comment |
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 todos2unix
all of them. - I had to manually
sudo
-run some of thedkms
commands indkms-install.sh
becausesudo ./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 newwlp1s0
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
andrfkill list
. I had to add an entry to/etc/modprobe.d/blacklist.conf
as explained in this: appendblacklist ideapad_laptop
at the end of the file, then reboot.
And the wifi module is now working properly.
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
add a comment |
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 todos2unix
all of them. - I had to manually
sudo
-run some of thedkms
commands indkms-install.sh
becausesudo ./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 newwlp1s0
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
andrfkill list
. I had to add an entry to/etc/modprobe.d/blacklist.conf
as explained in this: appendblacklist ideapad_laptop
at the end of the file, then reboot.
And the wifi module is now working properly.
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 todos2unix
all of them. - I had to manually
sudo
-run some of thedkms
commands indkms-install.sh
becausesudo ./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 newwlp1s0
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
andrfkill list
. I had to add an entry to/etc/modprobe.d/blacklist.conf
as explained in this: appendblacklist ideapad_laptop
at the end of the file, then reboot.
And the wifi module is now working properly.
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
add a comment |
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
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
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