{"id":23497991,"url":"https://github.com/freedomben/rtl8188ce-linux-driver","last_synced_at":"2025-04-04T22:06:56.592Z","repository":{"id":10616294,"uuid":"12835913","full_name":"FreedomBen/rtl8188ce-linux-driver","owner":"FreedomBen","description":"This modified version of the RealTek WiFi driver fixes some issues with RealTek cards on Linux.","archived":false,"fork":false,"pushed_at":"2023-01-05T12:40:50.000Z","size":22319,"stargazers_count":491,"open_issues_count":90,"forks_count":109,"subscribers_count":36,"default_branch":"master","last_synced_at":"2025-03-28T21:06:09.822Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FreedomBen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-09-14T20:55:45.000Z","updated_at":"2025-03-07T18:47:55.000Z","dependencies_parsed_at":"2023-01-13T16:24:31.784Z","dependency_job_id":null,"html_url":"https://github.com/FreedomBen/rtl8188ce-linux-driver","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FreedomBen%2Frtl8188ce-linux-driver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FreedomBen%2Frtl8188ce-linux-driver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FreedomBen%2Frtl8188ce-linux-driver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FreedomBen%2Frtl8188ce-linux-driver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FreedomBen","download_url":"https://codeload.github.com/FreedomBen/rtl8188ce-linux-driver/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247256112,"owners_count":20909240,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-25T05:17:41.080Z","updated_at":"2025-04-04T22:06:56.571Z","avatar_url":"https://github.com/FreedomBen.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"rtl8188ce-linux-driver\n======================\n\nThis modified version of the RealTek WiFi driver fixes some issues with RealTek cards on Linux.\n\n**Why use this driver?**\n\n1.  It has been modified to allow you to transmit at up to 33 dBm instead of the stock driver hard limit of 20 dBm, regardless of your CRDA regulatory domain.  This is a substantial increase in capability because every 3 dB increase is equivalent to a doubling of the power.  IOW, you can pump out 4x more Tx power than before.  This is subject to CRDA restrictions however (though you can set that to whatever you want, just make sure you're staying legal)\n2.  It has a few default settings that generally increase stability\n3.  Some helpful fixes are backported from newer kernels so that they can be enjoyed without upgrading the entire kernel (very useful for staying on your distros current kernel while benefitting from fixes relating to this driver)\n\nWell supported RealTek cards:\n\n        RTL8188CE\n        RTL8192CE\n        \nWell supported kernel releases:\n\n        3.2.x\n        3.8.x\n        3.11.x\n        3.13.x\n        3.14.x\n        3.15.x\n        3.16.x\n        3.17.x\n        3.18.x\n        3.19.x\n        4.0.x\n        4.1.x\n        4.2.x\n        4.3.x\n        4.4.x\n        4.5.x\n        4.6.x\n        4.7.x\n        4.8.x\n        4.9.x\n        4.10.x\n        4.11.x\n        4.12.x\n        4.13.x\n        4.14.x\n        4.15.x\n        4.16.x\n        4.17.x\n        4.18.x\n        4.19.x\n        4.20.x\n        5.0.x\n        5.1.x\n        5.2.x\n        5.3.x\n        5.4.x\n        5.5.x\n        5.6.x\n        5.7.x\n        5.8.x\n        5.9.x\n        5.10.x\n        5.11.x\n        5.12.x\n        5.13.x\n        5.14.x\n        5.15.x\n        5.16.x\n        5.17.x\n        5.18.x\n        5.19.x\n        6.0.x\n\nWell supported [Ubuntu](https://ubuntu.com/) (and Ubuntu-based) releases:\n\n        Ubuntu 12.04 (LTS)\n        Ubuntu 13.04\n        Ubuntu 13.10\n        Ubuntu 14.04 (LTS)\n        Ubuntu 14.10\n        Ubuntu 15.04\n        Ubuntu 15.10\n        Ubuntu 16.04 (LTS)\n        Ubuntu 16.10\n        Ubuntu 17.04\n        Ubuntu 17.10\n        Ubuntu 18.04 (LTS)\n        Ubuntu 20.04 (LTS)\n        Ubuntu 22.04 (LTS)\n\n        Elementary OS Luna\n        Elementary OS Isis\n\n        Linux Mint 13   Maya (LTS)\n        Linux Mint 15   Olivia\n        Linux Mint 16   Petra\n        Linux Mint 17   Qiana (LTS)\n        Linux Mint 17.1 Rebecca (LTS)\n\nWell supported [Fedora](https://getfedora.org/) (and Fedora based) releases:\n\n        Fedora 19\n        Fedora 20\n        Fedora 21\n        Fedora 22\n        Fedora 23\n        Fedora 24\n        Fedora 25\n        Fedora 26\n        Fedora 27\n        Fedora 28\n        Fedora 29\n        Fedora 30\n        Fedora 31\n        Fedora 32\n        Fedora 33\n        Fedora 34\n        Fedora 35\n        Fedora 36\n\n        Red Hat Enterprise Linux 7.0 (LTS)\n        Red Hat Enterprise Linux 7.1 (LTS)\n        Red Hat Enterprise Linux 7.2 (LTS)\n        Red Hat Enterprise Linux 7.3 (LTS)\n        Red Hat Enterprise Linux 7.4 (LTS)\n        Red Hat Enterprise Linux 7.5 (LTS)\n        Red Hat Enterprise Linux 7.6 (LTS)\n        Red Hat Enterprise Linux 7.7 (LTS)\n        Red Hat Enterprise Linux 8.0 (LTS)\n        Red Hat Enterprise Linux 8.1 (LTS)\n        Red Hat Enterprise Linux 8.2 (LTS)\n        Red Hat Enterprise Linux 8.3 (LTS)\n        Red Hat Enterprise Linux 8.4 (LTS)\n        Red Hat Enterprise Linux 8.5 (LTS)\n        Red Hat Enterprise Linux 8.6 (LTS)\n        Red Hat Enterprise Linux 9.0 (LTS)\n\n        CentOS 7.0 (LTS)\n        CentOS 7.1 (LTS)\n        CentOS 7.2 (LTS)\n        CentOS 7.3 (LTS)\n        CentOS 7.4 (LTS)\n        CentOS 7.5 (LTS)\n        CentOS 7.6 (LTS)\n        CentOS 7.7 (LTS)\n        CentOS 8.0 (LTS)\n        CentOS 8.1 (LTS)\n        CentOS 8.2 (LTS)\n        CentOS 8.3 (LTS)\n        CentOS 8.4 (LTS)\n        CentOS 8.5 (LTS)\n        CentOS 8.6 (LTS)\n        CentOS 9.0 (LTS)\n\nAlmaLinux and Rocky Linux versions that match above CentOS should work fine but are not specifically tested.\n\nArch is also supported, but tends to break each time the kernel is bumped up a minor version (like 3.13.x to 3.14.x).  I try to fix the breakage quickly but this is not how I support my family ;-)\n\nOther RealTek cards, kernel releases, and Linux flavors/releases are supported, but not tested by me (since I don't have them/use them).  From the original readme file:\n\n--This driver supports following RealTek PCIE Wireless LAN NICs:\n\n        RTL8188CE/RTL8192CE\n        RTL8191SE/RTL8192SE\n        RTL8192DE\n        RTL8723AE\n        RTL8188EE\n\n--This driver supports following Linux OSes:\n\n        Fedora Core\n        Debian\n        Mandriva\n        Open SUSE\n        Gentoo\n        MeeGo\n        android 2.2 (froyo-x86), etc.\n        \n\nPlease note that I have only tested the driver on Ubuntu and Fedora (the well supported releases).  If you are NOT using Ubuntu, pay close attention to your kernel version when selecting branches.  You also need to substitute your package manager whenever you see `apt-get install`, so Fedora would be `dnf install xxx`.  Most package names are the same but there may be some difference.\n\n\nAutomatic Installation:\n-----------------------\n\nThere is an install script called install.sh which attempts to automate the manual steps.  If the script fails to build and install the driver, you should follow the steps for manual installation.\n    \nAfter cloning this repo, if you want to run the install script, simply run:\n\n    ./install.sh\n\nIf you already have `git` installed, you can run this one-liner to clone the repo and kick of the automatic install script:\n\n    git clone https://github.com/FreedomBen/rtl8188ce-linux-driver.git \u0026\u0026 cd rtl8188ce-linux-driver \u0026\u0026 ./install.sh\n\nYou may wish to register the modules with DKMS for automatic rebuild when your kernel changes.  For that, see the steps for Semi-Automatic Installation (DKMS).\n\n\nSemi-Automatic Installation (DKMS):\n-----------------------------------\n\n*Thanks to saiarcot895 for the initial effort getting this working*\n\nYou can alternatively use DKMS, so that when a new patch-release of the kernel is released by your distro, you don't have to manually recompile the driver. However, there are a few drawbacks with this method:\n\n1. You need to know what kernel version you are on.\n\n2. You need to change the branch when you change the minor version of the kernel (e.g. 3.13.x to 3.15.x).\n\nTo use DKMS:\n\n1. Follow steps 0-2 in the \"Manual Installation\" section below.\n\n1. Copy the repo `cp -rv . /usr/src/rtlwifi-1.0.0`\n\n\n2. Run the following command to register the sources with DKMS (the `1.0.0` can be any numbers): (note the period at the end!)\n\n    sudo dkms add rtlwifi/1.0.0 .\n\n3. Run the following command to build and install the modules:\n\n    sudo dkms install rtlwifi/1.0.0\n\n4. DKMS should automatically switch you onto the new modules. To verify this, run `./am_i_using_this_driver.sh`.\n\nTo uninstall and remove the modules from DKMS, run the following command:\n\n    sudo dkms remove rtlwifi/1.0.0 --all\n\nManual Installation:\n--------------------\n\nTo check your kernel version:  \n\n    uname -r\n\nThese commands should be typed in an open terminal.  I recommend you start in your home directory by typing `cd`\n\n0\\.  Clone this git repository:\n\nInstall git if necessary:\n\n    sudo apt-get install git\n    \n    or\n\n    dnf install git\n\nClone the repo (Basically it makes a copy of the current source code)\n\n    git clone https://github.com/FreedomBen/rtl8188ce-linux-driver.git\n\n\n1\\.  Install build dependencies:\n\n    Ubuntu:\n\n    apt-get install gcc build-essential linux-headers-generic linux-headers-$(uname -r)\n\n    Fedora:\n\n    dnf install kernel-devel kernel-headers\n    dnf groupinstall \"Development Tools\"\n    dnf groupinstall \"C Development Tools and Libraries\"\n\n    Arch:\n\n    sudo pacman -S git \n    sudo pacman -S linux-headers\n    sudo pacman -S base-devel\n\n2\\. (Skip unless your first build attempt fails) -\u003e Make sure you are on the correct branch for your kernel version.  The branches are named after Ubuntu releases to which they commonly apply, but the most important factor is not the version of Ubuntu, it is the kernel version.  There is a script called `verify_branch` that will help you find the right branch based on your kernel version.  When you run \"make\", the script `verify_branch` will be automatically called for you.  It will recommend to you the best branch for your kernel version.  If you tried the recommended branch and your build failed, you may need to try a different one.  If so, decline the offer to automatically switch branches for you.\n\nIf you need to, you can switch to the correct branch with:\n\n    git checkout \u003cbranch\u003e\n    \nEx: \"git checkout ubuntu-13.04\"\n\n    Release ver. | *Kernel ver.  | Branch Name\n    --------------------------------------------\n    Ubuntu 12.04 | Kernel 3.2.x  | ubuntu-12.04\n    Ubuntu 13.04 | Kernel 3.8.x  | ubuntu-13.04\n    Ubuntu 13.10 | Kernel 3.11.x | ubuntu-13.10\n    Ubuntu 14.04 | Kernel 3.13.x | ubuntu-14.04\n    Ubuntu 14.10 | Kernel 3.16.x | ubuntu-14.10\n    Ubuntu 15.04 | Kernel 3.19.x | ubuntu-15.04\n    Ubuntu 15.10 | Kernel 4.2.x  | ubuntu-15.10\n    Ubuntu 16.04 | Kernel 4.4.x  | ubuntu-16.04\n    Ubuntu 16.10 | Kernel 4.8.x  | ubuntu-16.10\n    Ubuntu 17.04 | Kernel 4.10.x | ubuntu-17.04\n    Ubuntu 17.10 | Kernel 4.13.x | ubuntu-17.10\n    Ubuntu 18.04 | Kernel 4.15.x | ubuntu-18.04\n    Ubuntu 20.04 | Kernel 5.4.x  | ubuntu-20.04\n    Ubuntu 22.04 | Kernel 5.15.x | ubuntu-22.04\n    Mint 17      | Kernel 3.13.x | mint-17\n    --------------------------------------------\n    Any 3.13.x   | Kernel 3.13.x | generic-3.13.x\n    Any 3.14.x   | Kernel 3.14.x | generic-3.14.x\n    Any 3.15.x   | Kernel 3.14.x | generic-3.14.x\n    Any 3.16.x   | Kernel 3.16.x | generic-3.16.x\n    Any 3.17.x   | Kernel 3.17.x | generic-3.17.x\n    Any 3.18.x   | Kernel 3.18.x | generic-3.18.x\n    Any 3.19.x   | Kernel 3.19.x | generic-3.19.x\n    Any 4.0.x    | Kernel 4.0.x  | generic-4.0.x\n    Any 4.1.x    | Kernel 4.1.x  | generic-4.1.x\n    Any 4.2.x    | Kernel 4.2.x  | generic-4.2.x\n    Any 4.3.x    | Kernel 4.3.x  | generic-4.3.x\n    Any 4.4.x    | Kernel 4.4.x  | generic-4.4.x\n    Any 4.5.x    | Kernel 4.5.x  | generic-4.5.x\n    Any 4.6.x    | Kernel 4.6.x  | generic-4.6.x\n    Any 4.7.x    | Kernel 4.7.x  | generic-4.7.x\n    Any 4.8.x    | Kernel 4.8.x  | generic-4.8.x\n    Any 4.9.x    | Kernel 4.9.x  | generic-4.9.x\n    Any 4.10.x   | Kernel 4.10.x | generic-4.10.x\n    Any 4.11.x   | Kernel 4.11.x | generic-4.11.x\n    Any 4.12.x   | Kernel 4.12.x | generic-4.12.x\n    Any 4.13.x   | Kernel 4.13.x | generic-4.13.x\n    Any 4.14.x   | Kernel 4.14.x | generic-4.14.x\n    Any 4.15.x   | Kernel 4.15.x | generic-4.15.x\n    Any 4.16.x   | Kernel 4.16.x | generic-4.16.x\n    Any 4.17.x   | Kernel 4.17.x | generic-4.17.x\n    Any 4.18.x   | Kernel 4.18.x | generic-4.18.x\n    Any 4.19.x   | Kernel 4.19.x | generic-4.19.x\n    Any 4.20.x   | Kernel 4.20.x | generic-4.20.x\n    Any 5.0.x    | Kernel 5.0.x  | generic-5.0.x\n    Any 5.1.x    | Kernel 5.1.x  | generic-5.1.x\n    Any 5.2.x    | Kernel 5.2.x  | generic-5.2.x\n    Any 5.3.x    | Kernel 5.3.x  | generic-5.3.x\n    Any 5.4.x    | Kernel 5.4.x  | generic-5.4.x\n    Any 5.5.x    | Kernel 5.5.x  | generic-5.5.x\n    Any 5.6.x    | Kernel 5.6.x  | generic-5.6.x\n    Any 5.7.x    | Kernel 5.7.x  | generic-5.7.x\n    Any 5.8.x    | Kernel 5.8.x  | generic-5.8.x\n    Any 5.9.x    | Kernel 5.9.x  | generic-5.9.x\n    Any 5.10.x   | Kernel 5.10.x | generic-5.10.x\n    Any 5.11.x   | Kernel 5.11.x | generic-5.11.x\n    Any 5.12.x   | Kernel 5.12.x | generic-5.12.x\n    Any 5.13.x   | Kernel 5.13.x | generic-5.13.x\n    Any 5.14.x   | Kernel 5.14.x | generic-5.14.x\n    Any 5.15.x   | Kernel 5.15.x | generic-5.15.x\n    Any 5.16.x   | Kernel 5.16.x | generic-5.16.x\n    Any 5.17.x   | Kernel 5.17.x | generic-5.17.x\n    Any 5.18.x   | Kernel 5.18.x | generic-5.18.x\n    Any 5.19.x   | Kernel 5.19.x | generic-5.19.x\n    Any 6.0.x    | Kernel 6.0.x  | generic-6.0.x\n\n    * Note, if the Ubuntu/Mint release version and your kernel version conflict,\n      go with the branch corresponding to your *kernel version* as\n      that is what really matters!\n\n3\\. Compile:\n\n    make\n\n4\\. Unload the existing rtl kernel modules.\n\n    lsmod | grep ^rtl | awk '{print $1}'                             // to list the modules\n    sudo modprobe -r $(lsmod | grep ^rtl | awk '{print $1}' | xargs) // To unload them\n\n4.5\\. (Optional) Backup stock drivers\n\nYou may wish to make a backup of your stock drivers in case you need to restore them.  This is done for you automatically by the install script but the truly paranoid may wish to do it themselves as well.  \n\n    cp -r /lib/modules/$(uname -r)/kernel/drivers/net/wireless/rtlwifi ~/\n\nOr tarball it up:\n\n    tar -czf \"~/rtlwifi.tar.gz\" -C \"/lib/modules/$(uname -r)/kernel/drivers/net/wireless/rtlwifi\" .\n\n**Important**: When restoring this backup manually, make absolutely sure you are putting it back in to the exact same kernel version.  Failure to do this properly may result in an unbootable system.  I suggest you let the script do your backups automatically and use this as a last resort.\n\n5\\. Install:\n    \n    sudo make install\n\n6\\. Modprobe in the new driver (if you're not using an RTL8188CE or RTL8192CE, adjust accordingly):\n\n    sudo modprobe rtl8192ce \n\n*(rtl8192ce is the driver for the RTL8188CE card also)*\n\n\n7\\. The rtl8192ce should load all modules it depends on (`rtlwifi`, `rtl8192c_common`, `mac80211`, `cfg80211`, etc.), but if it doesn't work you may need to modprobe back in the other modules too.  Common modules:\n\n    rtl8192ce, rtlwifi, rtl8192c_common, mac80211, cfg80211\n\nNOTE: Unlike the stock driver, `rtl8192c_common` is only required with kernel \u003e= 3.14\n\n\n8\\. Make persistent by adding this to the end of `/etc/modules` (for Ubuntu), or `/etc/rc.modules` (for Fedora) (if Fedora make sure `/etc/rc.modules` is executable), or `/etc/modules-load.d/rtlwifi.conf` (for Arch). If you don't have an RTL8188CE or RTL8192CE, then substitute the correct kernel module in place of `rtl8192ce`:\n\n    rtl8192ce\n\nNOTE:  By \"make persistent\", I mean making the loading of the RLT8192CE kernel modules happen automatically at boot time so you don't have to modprobe them in yourself.  If `udev` is seeing your Realtek card (which is usually the case), then it will load the kernel modules for you without this, but putting this in hurts nothing.\n\nYou may want to verify your CRDA domain.  For example if you were in Bolivia it would be: `iw reg set BO`\nThere is more information about CRDA available at: http://ttys1.wordpress.com/2012/04/12/fixing-regulatory-domain-crda-of-realtec-wireless-device-drivers/\n\n\nTroubleshooting:\n----------------\n\n**0\\. To check whether you are running this driver or not, run the script:**\n\n    ./am_i_using_this_driver.sh\n\n**1\\. If you have loaded the kernel modules (with `modprobe`) and you are using this driver (check with the script in step 0), and you still have no connection, try restarting `wpa_supplicant`.  If you use `systemd`:**\n\n    sudo systemctl restart wpa_supplicant\n\n**2\\. If you get the following error:**\n    \n    FATAL: Error inserting rtl8192ce (/lib/modules/3.8.0-34-generic/kernel/drivers/net/wireless/rtlwifi/rtl8192ce/rtl8192ce.ko): Invalid argument\n\nAfter running: \n\n    modprobe rtl8192ce \n    \nYou may have invalid configuration options in `/etc/modprobe.d/rtl8192ce.conf`.  You can either remove the file or remove any options that are not supported.\n\n**3\\. If your connection seems unstable:**\n\nThis driver has been modified to allow up to 33 dBm Tx power (instead of the stock driver limit of 20).  This allows you to crank up the Tx power, which *vastly* improves performance for me. \n\nTo do this, your CRDA regulatory domain must allow it.  You need to be aware of the laws that govern your local area so you are not in violation.  If you do this, you assume all legal liability for your actions.  Also, don't crank your Tx power up to 33 dBm when you're sitting right next to your router.  Almost all wireless routers have AGC built-in that will save them from hot transmitters, but it is better to try not to fry the receiver.  Keep in mind that you're hacking your wi-fi card to bypass the normal safety net(s) that prevent us from doing cool stuff.\n\nA very lenient CRDA domain is Bolivia (BO) that will let you up to 33 dBm.  To set Bolivia, run the following:\n\n    sudo iw reg set BO\n\nTo turn up the Tx power, run this (substitute your wireless interface name for \u003cif-name\u003e and desired power level for \u003cvalue\u003e):\n\n    sudo iwconfig \u003cif-name\u003e txpower \u003cvalue\u003e\n\n    E.g.:\n\n    sudo iwconfig wlan0 txpower 33\n\nTo check the current Tx power, run:\n\n    iwconfig \u003cif-name\u003e | grep \"Tx-Power\"\n\nThe current Tx power will be listed as `Tx-Power=xx dBm`\n\n\n**4\\. If you're getting power drops\\*:**\n\nYou may have better luck fixing your data rate.  The best rate will vary depending on your Tx power, Rx power, and distance from the router.  You may want to set the rate to be fixed at a speed similar to your internet connection speed unless you're doing other stuff on your LAN.  Basgoosen found his sweet spot to be 24M.  You can set the fixed rate as follows (substitute your wireless interface for \\\u003cwlan\\\u003e, so for example wlan0):\n\n    sudo iwconfig \u003cwlan\u003e rate fixed\n    sudo iwconfig \u003cwlan\u003e rate 24M\n    sudo iwconfig \u003cwlan\u003e bit fixed\n    sudo iwconfig \u003cwlan\u003e bit 24M\n\nTo make this persistent, create a file in `/etc/network/if-up.d` containing the following (substitute your wireless interface for \\\u003cwlan\\\u003e!):\n\n    #!/bin/sh\n\n    if [ \"$IFACE\" = \"\u003cwlan\u003e\" ]; then\n        sudo iwconfig \u003cwlan\u003e rate fixed\n        sudo iwconfig \u003cwlan\u003e rate 24M\n        sudo iwconfig \u003cwlan\u003e bit fixed\n        sudo iwconfig \u003cwlan\u003e bit 24M\n    fi\n\n\\*Thanks to basgoosen for this suggestion\n\n**5\\. My kernel package was updated by my distro and now I'm stuck back on the stock driver!**\n\nYeah unfortunately this does currently happen anytime your kernel package is updated by your distro.  The solution is to rebuild and reinstall this driver.  On the plus side that gives you a chance to pull down the latest changes so that you're up to date.\n\nPlease don't save a copy of the drivers compiled under a different version of the kernel to copy back in after the kernel update.  While a clever solution, this could cause undefined and potentially disastrous results if the ABI changes (which it does frequently).  The drivers need to be rebuilt using the new kernel headers to ensure they are compiled correctly.  It may work fine for a few upgrades, but eventually it will leave your system unbootable.\n\nYou can run this command to automatically clone this repo and kick off the installer (git must be installed already):\n\n    git clone https://github.com/FreedomBen/rtl8188ce-linux-driver.git \u0026\u0026 cd rtl8188ce-linux-driver \u0026\u0026 ./install.sh\n\nYou might also consider using DKMS if your kernel changes often.  There are instructions near the top of this README.\n\n**6\\. I think this driver broke something.  How do I get back to the stock driver?**\n\nYou basically have two choices.  Either will get the job done.  When you run `sudo make uninstall`, the make script will try to restore your backup from when you installed.  The system works like this:\n\n* When you run `sudo make install`, the existing drivers are backed up to `~/.rtlwifi-backups` as a precaution (this is new as of 29-May-2014, so if you installed before then, you have no backups.  Sorry)\n* When you run `sudo make uninstall`, this location is checked for a backup that matches your current kernel version.  If one cannot be found, then you are stuck with choice #2.  If a suitable backup is found, the script will offer to restore it for you. \n\nChoice #1 - Use the backup that the install script made for you:\\*\n\n    sudo make uninstall\n\nor\n\n    ./restore_backup.sh\n\n* Note that this will look in the home directory of whichever user you are when you run it, so if it doesn't see a backup, try it again with `sudo` so that it will check root's home directory, or as a regular user so it will check that user's directory.*\n\nChoice #2 - Reinstall your distro's kernel package:\n\nThis obviously varies by distro.  For Ubuntu, try:\n\n    sudo apt-get install --reinstall linux-image-extra-$(uname -r)\n\nPlease consider reporting the failure (or even better, send a pull request), so I can try to fix it.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffreedomben%2Frtl8188ce-linux-driver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffreedomben%2Frtl8188ce-linux-driver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffreedomben%2Frtl8188ce-linux-driver/lists"}