minor updates

This commit is contained in:
morrownr 2023-02-28 22:32:20 -06:00
parent 51a2fb9489
commit 85216d0a15
4 changed files with 119 additions and 98 deletions

104
FAQ.md
View File

@ -1,54 +1,5 @@
### FAQ ### FAQ
Question: Is WPA3 supported?
Answer: WPA3-SAE is supported. It works well on most modern Linux distros
but not all. Generally the reason for WPA3 not working on Linux distros is
that the distro has an old version of wpa_supplicant or Network Manager.
Your options are to upgrade to a more modern distro (distros released after
mid 2022) or compile and install new versions of wpa_supplicant and/or
Network Manager.
-----
Question: I bought two usb wifi adapters based on this chipset and am
planning to use both in the same computer. How do I set that up?
Answer: Realtek drivers do not support more than one adapter with the
same chipset in the same computer. You can have multiple Realtek based
adapters in the same computer as long as the adapters are based on
different chipsets.
-----
Question: Why do you recommend Mediatek based adapters when you maintain
this repo for a Realtek driver?
Answer: Many new and existing Linux users already have adapters based on
Realtek chipsets. This repo is for Linux users to support their existing
adapters but my STRONG recommendation is for Linux users to seek out USB
WiFi solutions based on Mediatek chipsets. Mediatek is making and
supporting their drivers per Linux Wireless Standards guidance per the
Linux Foundation. This results in far fewer compatibility and support
problems. More information and recommended adapters shown at the
following site:
https://github.com/morrownr/USB-WiFi
-----
Question: Will you put volunteers to work?
Answer: Yes. Post a message in `Issues` or `Discussions` if interested.
-----
Question: I am having problems with my adapter and I use Virtualbox?
Answer: This [article](https://null-byte.wonderhowto.com/forum/wifi-hacking-attach-usb-wireless-adapter-with-virtual-box-0324433/) may help.
-----
Secure Boot Information Secure Boot Information
Question: The driver installation script completed successfully and the Question: The driver installation script completed successfully and the
@ -90,11 +41,64 @@ Here is a link regarding Debian and Secure Boot:
https://wiki.debian.org/SecureBoot https://wiki.debian.org/SecureBoot
There is work underway to add Secure Boot suuport for systems that do not There is work underway to add Secure Boot suport for systems that do not
have `dkms` available or if a manual installation is desired. have `dkms` available or if a manual installation is desired.
----- -----
Question: Is WPA3 supported?
Answer: WPA3-SAE is supported. It works well on most modern Linux distros
but not all. Generally the reason for WPA3 not working on Linux distros is
that the distro has an old version of wpa_supplicant or Network Manager.
Your options are to upgrade to a more modern distro such as those released
after mid-2022 or compile and install new versions of wpa_supplicant and/or
Network Manager.
-----
Question: I bought two usb wifi adapters based on this chipset and am
planning to use both in the same computer. How do I set that up?
Answer: Realtek drivers do not support more than one adapter with the
same chipset in the same computer. You can have multiple Realtek based
adapters in the same computer as long as the adapters are based on
different chipsets.
Recommendation: If this is an important capability for you, I have tested
Mediatek adapters for this capability and it does work with adapters that
use the following chipsets: mt7921au, mt7612u and mt7610u.
-----
Question: Why do you recommend Mediatek based adapters when you maintain
this repo for a Realtek driver?
Answer: Many new and existing Linux users already have adapters based on
Realtek chipsets. This repo is for Linux users to support their existing
adapters but my STRONG recommendation is for Linux users to seek out USB
WiFi solutions based on Mediatek chipsets. Mediatek is making and
supporting their drivers per Linux Wireless Standards guidance per the
Linux Foundation. This results in far fewer compatibility and support
problems. More information and recommended adapters shown at the
following site:
https://github.com/morrownr/USB-WiFi
-----
Question: Will you put volunteers to work?
Answer: Yes. Post a message in `Issues` or `Discussions` if interested.
-----
Question: I am having problems with my adapter and I use Virtualbox?
Answer: This [article](https://null-byte.wonderhowto.com/forum/wifi-hacking-attach-usb-wireless-adapter-with-virtual-box-0324433/) may help.
-----
Question: Can you provide additional information about monitor mode? Question: Can you provide additional information about monitor mode?
Answer: I have a repo that is setup to help with monitor mode: Answer: I have a repo that is setup to help with monitor mode:

View File

@ -100,11 +100,12 @@ be provided via PR or message in Issues.
Note: Red Hat Enterprise Linux (RHEL) and distros based on RHEL are not Note: Red Hat Enterprise Linux (RHEL) and distros based on RHEL are not
supported due to the way kernel patches are handled. I will support supported due to the way kernel patches are handled. I will support
knowledgable RHEL developers if they want to merge the required knowledgable RHEL developers if they want to merge the required
support and keep it current. support and keep it current. I reserve the right to delete this support
if it causes any problems.
Note: Android is supported in the driver according to Realtek. I will support Note: Android is supported in the driver according to Realtek. I will support
knowledgable Android developers if they want to merge and keep current the knowledgable Android developers if they want to merge and keep current the
required support (most likely just instructions about how to compile and maybe required support (most likely just instructions about how to compile and make
a modification or two to the Makefile). a modification or two to the Makefile).
### Compatible Devices ### Compatible Devices
@ -145,22 +146,20 @@ driver on installation and reactivate the in-kernel driver on removal. No
special action needs to be taken by users. special action needs to be taken by users.
Warning: Installing multiple out-of-kernel drivers for the same hardware Warning: Installing multiple out-of-kernel drivers for the same hardware
usually does not end well. If a previous attempt to install this driver failed usually does not end well. The install-driver.sh script has the capability
or if you have previously installed another driver for chipsets supported by to detect and remove many conflicting drivers but not all. If this driver
this driver, you MUST remove anything that the previous attempt does not work well after installation and you have previously installed a
installed BEFORE attempting to install this driver. This driver can be driver that you did not remove, it suggested that you run the following
removed with the script called `./remove-driver.sh`. Information is command in an effort to determine if you need to take action to manually
available in the section called `Removal of the Driver`. You can get a remove conflicting drivers:
good idea as to whether you need to remove a previously installed
driver by running the following command:
``` ```
sudo dkms status sudo dkms status
``` ```
Warning: If you decide to upgrade to a new version of kernel such as Warning: If you decide to do a distro upgrade, which will likely install a
5.15 to 6.1, you need to upgrade the driver you have installed with new version of kernel such as 5.15 to 6.1, you need to upgrade this driver
the newest available before installing the new kernel. Use the with the newest available before performing the disto upgrade. Use the
following commands in the driver directory: following commands in the driver directory:
``` ```
@ -255,7 +254,7 @@ sudo reboot
Note: If your Linux distro does not fall into one of options listed Note: If your Linux distro does not fall into one of options listed
below, you will need to research how to properly setup up the development below, you will need to research how to properly setup up the development
environment for your system. General guidance is given the next paragraph. environment for your system. General guidance follows.
Development Environment Requirements: (package names may vary by distro) Development Environment Requirements: (package names may vary by distro)

View File

@ -28,7 +28,7 @@
# GNU General Public License for more details. # GNU General Public License for more details.
SCRIPT_NAME="install-driver.sh" SCRIPT_NAME="install-driver.sh"
SCRIPT_VERSION="20230126" SCRIPT_VERSION="20230227"
MODULE_NAME="88x2bu" MODULE_NAME="88x2bu"
DRV_VERSION="5.13.1" DRV_VERSION="5.13.1"
@ -170,31 +170,30 @@ if command -v dkms >/dev/null 2>&1; then
echo ": ""${dkms_ver}" echo ": ""${dkms_ver}"
fi fi
# display secure mode status if mokutil is installed # display secure mode status if SecureBoot is enabled and if mokutil is installed
if command -v mokutil >/dev/null 2>&1; then if command -v mokutil >/dev/null 2>&1; then
sb_state=$(mokutil --sb-state) if mokutil --sb-state | grep -i enabled >/dev/null 2>&1; then
echo ": ""${sb_state}" echo ": SecureBoot enabled - read FAQ about SecureBoot"
fi
fi fi
# needs work # check ISO 3166-1 alpha-2 Country Code is not 00
# display ISO 3166-1 alpha-2 Country Code #if iw reg get | grep -i 00 >/dev/null 2>&1; then
#a2_country_code=$(iw reg get | grep -i country) # echo ": The Country Code may not be properly set."
#echo ": Location: ""${a2_country_code}" # echo ": File 'alpha-2_Country_Codes' is located in the docs directory."
#if [[ $a2_country_code == *"00"* ]]; # echo ": Please read and follow the directions in the file after installation."
#then
# echo "The Country Code may not be properly set."
# echo "File alpha-2_Country_Codes is located in the driver directory."
# echo "Please read and follow the directions in the file after installation."
#fi #fi
echo ": ---------------------------" echo ": ---------------------------"
echo echo
echo "Checking for previously installed drivers."
echo "Checking for previously installed drivers."
# check for and remove non-dkms installations # check for and remove non-dkms installations
# standard naming # standard naming
if [ -f "${MODDESTDIR}${MODULE_NAME}.ko" ]; then if [ -f "${MODDESTDIR}${MODULE_NAME}.ko" ]; then
echo ": ---------------------------"
echo
echo "Removing a non-dkms installation: ${MODDESTDIR}${MODULE_NAME}.ko" echo "Removing a non-dkms installation: ${MODDESTDIR}${MODULE_NAME}.ko"
rm -f "${MODDESTDIR}"${MODULE_NAME}.ko rm -f "${MODDESTDIR}"${MODULE_NAME}.ko
/sbin/depmod -a "${KVER}" /sbin/depmod -a "${KVER}"
@ -204,12 +203,13 @@ if [ -f "${MODDESTDIR}${MODULE_NAME}.ko" ]; then
rm -rf /usr/src/${DRV_NAME}-${DRV_VERSION} rm -rf /usr/src/${DRV_NAME}-${DRV_VERSION}
make clean >/dev/null 2>&1 make clean >/dev/null 2>&1
echo "Removal complete." echo "Removal complete."
echo ": ---------------------------"
fi fi
# check for and remove non-dkms installations # check for and remove non-dkms installations
# with rtl added to module name (PClinuxOS) # with rtl added to module name (PClinuxOS)
if [ -f "${MODDESTDIR}rtl${MODULE_NAME}.ko" ]; then if [ -f "${MODDESTDIR}rtl${MODULE_NAME}.ko" ]; then
echo ": ---------------------------"
echo
echo "Removing a non-dkms installation: ${MODDESTDIR}rtl${MODULE_NAME}.ko" echo "Removing a non-dkms installation: ${MODDESTDIR}rtl${MODULE_NAME}.ko"
rm -f "${MODDESTDIR}"rtl${MODULE_NAME}.ko rm -f "${MODDESTDIR}"rtl${MODULE_NAME}.ko
/sbin/depmod -a "${KVER}" /sbin/depmod -a "${KVER}"
@ -219,7 +219,6 @@ if [ -f "${MODDESTDIR}rtl${MODULE_NAME}.ko" ]; then
rm -rf /usr/src/${DRV_NAME}-${DRV_VERSION} rm -rf /usr/src/${DRV_NAME}-${DRV_VERSION}
make clean >/dev/null 2>&1 make clean >/dev/null 2>&1
echo "Removal complete." echo "Removal complete."
echo ": ---------------------------"
fi fi
# check for and remove non-dkms installations # check for and remove non-dkms installations
@ -227,6 +226,8 @@ fi
# Example: /usr/lib/modules/5.15.80-rockchip64/kernel/drivers/net/wireless/rtl8821cu/8821cu.ko.xz # Example: /usr/lib/modules/5.15.80-rockchip64/kernel/drivers/net/wireless/rtl8821cu/8821cu.ko.xz
# Dear Armbiam, this is a really bad idea. # Dear Armbiam, this is a really bad idea.
if [ -f "/usr/lib/modules/${KVER}/kernel/drivers/net/wireless/${DRV_NAME}/${MODULE_NAME}.ko.xz" ]; then if [ -f "/usr/lib/modules/${KVER}/kernel/drivers/net/wireless/${DRV_NAME}/${MODULE_NAME}.ko.xz" ]; then
echo ": ---------------------------"
echo
echo "Removing a non-dkms installation: /usr/lib/modules/${KVER}/kernel/drivers/net/wireless/${DRV_NAME}/${MODULE_NAME}.ko.xz" echo "Removing a non-dkms installation: /usr/lib/modules/${KVER}/kernel/drivers/net/wireless/${DRV_NAME}/${MODULE_NAME}.ko.xz"
rm -f /usr/lib/modules/"${KVER}"/kernel/drivers/net/wireless/${DRV_NAME}/${MODULE_NAME}.ko.xz rm -f /usr/lib/modules/"${KVER}"/kernel/drivers/net/wireless/${DRV_NAME}/${MODULE_NAME}.ko.xz
/sbin/depmod -a "${KVER}" /sbin/depmod -a "${KVER}"
@ -236,30 +237,31 @@ if [ -f "/usr/lib/modules/${KVER}/kernel/drivers/net/wireless/${DRV_NAME}/${MODU
rm -rf /usr/src/${DRV_NAME}-${DRV_VERSION} rm -rf /usr/src/${DRV_NAME}-${DRV_VERSION}
make clean >/dev/null 2>&1 make clean >/dev/null 2>&1
echo "Removal complete." echo "Removal complete."
echo ": ---------------------------"
fi fi
# check for and remove dkms installations # check for and remove dkms installations
if command -v dkms >/dev/null 2>&1; then if command -v dkms >/dev/null 2>&1; then
if dkms status | grep -i ${DRV_NAME}; then if dkms status | grep -i ${DRV_NAME}; then
echo "Removing a dkms installation: ${DRV_NAME}" echo ": ---------------------------"
echo
echo "Removing a dkms installation."
dkms remove -m ${DRV_NAME} -v ${DRV_VERSION} --all dkms remove -m ${DRV_NAME} -v ${DRV_VERSION} --all
echo "Removing ${OPTIONS_FILE} from /etc/modprobe.d" echo "Removing ${OPTIONS_FILE} from /etc/modprobe.d"
rm -f /etc/modprobe.d/${OPTIONS_FILE} rm -f /etc/modprobe.d/${OPTIONS_FILE}
echo "Removing source files from /usr/src/${DRV_NAME}-${DRV_VERSION}" echo "Removing source files from /usr/src/${DRV_NAME}-${DRV_VERSION}"
rm -rf /usr/src/${DRV_NAME}-${DRV_VERSION} rm -rf /usr/src/${DRV_NAME}-${DRV_VERSION}
echo "Removal complete." echo "Removal complete."
echo ": ---------------------------"
fi fi
fi fi
# sets module parameters (driver options) and blacklisted modules # sets module parameters (driver options) and blacklisted modules
echo ": ---------------------------"
echo echo
echo "Starting installation." echo "Starting installation."
echo "Installing ${OPTIONS_FILE} to /etc/modprobe.d" echo "Installing ${OPTIONS_FILE} to /etc/modprobe.d"
cp -f ${OPTIONS_FILE} /etc/modprobe.d cp -f ${OPTIONS_FILE} /etc/modprobe.d
# determine if dkms is installed and run the appropriate routines # determine if dkms is installed and run the appropriate installation routines
if ! command -v dkms >/dev/null 2>&1; then if ! command -v dkms >/dev/null 2>&1; then
echo "The non-dkms installation routines are in use." echo "The non-dkms installation routines are in use."
@ -358,9 +360,20 @@ else
else else
echo "The driver was installed by dkms successfully." echo "The driver was installed by dkms successfully."
echo ": ---------------------------" echo ": ---------------------------"
echo
fi fi
fi fi
# provide driver upgrade information
echo "Info: Upgrade this driver with the following commands as needed:"
echo "$ git pull"
echo "$ sudo sh install-driver.sh"
echo "Note: Upgrades to this driver should be performed before distro upgrades."
echo "Note: Upgrades can be performed as often as you like."
echo "Note: Work on this driver is continuous."
echo ": ---------------------------"
echo
# unblock wifi # unblock wifi
if command -v rfkill >/dev/null 2>&1; then if command -v rfkill >/dev/null 2>&1; then
rfkill unblock wlan rfkill unblock wlan
@ -370,16 +383,17 @@ fi
# if NoPrompt is not used, ask user some questions # if NoPrompt is not used, ask user some questions
if [ $NO_PROMPT -ne 1 ]; then if [ $NO_PROMPT -ne 1 ]; then
echo printf "Do you want to edit the driver options file now? (recommended) [Y/n] "
printf "Do you want to edit the driver options file now? [y/N] " read -r yn
read -r REPLY case "$yn" in
case "$REPLY" in [nN]) ;;
[yY]*) ${TEXT_EDITOR} /etc/modprobe.d/${OPTIONS_FILE} ;; *) ${TEXT_EDITOR} /etc/modprobe.d/${OPTIONS_FILE} ;;
esac esac
printf "Do you want to apply the new options by rebooting now? (recommended) [y/N] " printf "Do you want to apply the new options by rebooting now? (recommended) [Y/n] "
read -r REPLY read -r yn
case "$REPLY" in case "$yn" in
[yY]*) reboot ;; [nN]) ;;
*) reboot ;;
esac esac
fi fi

View File

@ -28,7 +28,7 @@
# GNU General Public License for more details. # GNU General Public License for more details.
SCRIPT_NAME="remove-driver.sh" SCRIPT_NAME="remove-driver.sh"
SCRIPT_VERSION="20230126" SCRIPT_VERSION="20230226"
MODULE_NAME="88x2bu" MODULE_NAME="88x2bu"
DRV_VERSION="5.13.1" DRV_VERSION="5.13.1"
@ -77,6 +77,7 @@ echo ": ${KARCH} (architecture)"
echo ": ${KVER} (kernel version)" echo ": ${KVER} (kernel version)"
echo ": ---------------------------" echo ": ---------------------------"
echo
# check for and remove non-dkms installations # check for and remove non-dkms installations
# standard naming # standard naming
@ -133,12 +134,15 @@ rm -rf /usr/src/${DRV_NAME}-${DRV_VERSION}
make clean >/dev/null 2>&1 make clean >/dev/null 2>&1
echo "The driver was removed successfully." echo "The driver was removed successfully."
echo "You may now delete the driver directory if desired." echo "You may now delete the driver directory if desired."
echo ": ---------------------------"
echo
# if NoPrompt is not used, ask user some questions # if NoPrompt is not used, ask user some questions
if [ $NO_PROMPT -ne 1 ]; then if [ $NO_PROMPT -ne 1 ]; then
printf "Do you want to reboot now? (recommended) [y/N] " printf "Do you want to reboot now? (recommended) [Y/n] "
read -r REPLY read -r yn
case "$REPLY" in case "$yn" in
[yY]*) reboot ;; [nN]) ;;
*) reboot ;;
esac esac
fi fi