Disable built-in WiFi card so that USB WiFi device gets used.

poma pomidorabelisima at gmail.com
Sat Aug 3 07:06:10 UTC 2013


On 08/02/2013 12:06 AM, poma wrote:
> Cut 'n' loose :)
> 
> This is an embedded device,
> lspci:
> Realtek Semiconductor Co., Ltd. RTL8188CE 802.11b/g/n WiFi Adapter
> [10ec:8176] (rev 01)
> Kernel driver in use: rtl8192ce
> - filename:
>   /lib/modules/$(uname-r)/kernel/drivers/net/wireless/rtlwifi/
>   rtl8192ce/rtl8192ce.ko
> - rpm: kernel
> - firmware: /usr/lib/firmware/rtlwifi/rtl8192cfw.bin
> - rpm: linux-firmware
> And this one is blacklisted in
> /etc/modprobe.d/blacklist-rtl8192ce.conf:
> blacklist rtl8192ce
> And it isn't used.
> Is it useful or not I leave you to consider.
> Period.
> 
> 
> This is an external usb device,
> http://www.asus.com/Networking/USBN10
> lsusb:
> ID 0b05:1786 ASUSTek Computer, Inc. USB-N10 Wireless N dongle [Realtek
> RTL8712U]
> Driver=r8712u
> - filename:
>   /usr/lib/modules/$(uname-r)/kernel/drivers/staging/rtl8712/r8712u.ko
> - rpm: kernel
> - firmware: /usr/lib/firmware/rtlwifi/rtl8712u.bin
> - rpm: linux-firmware
> 
> OK.
> You wrote that the device works under the following conditions:
> - Installed kernel is 3.3.4-5.fc17.x86_64, i.e.
>   "kernel-3.3.4-5.fc17.x86_64.rpm" and
>   "kernel-devel-3.3.4-5.fc17.x86_64.rpm"
> - You do not use a module that is already provided by
>   the kernel install itself - "r8712u.ko"
> - You use the original Realtek rtl871x wireless lan driver - "8712u.ko"
>   downloaded[1] and compiled against the 3.3.4-5.fc17.x86_64 kernel.
> 
> In order to achieve this again, the following should be done:
> - download kernel packages:
> https://dl.fedoraproject.org/pub/fedora/linux/releases/17/Fedora/x86_64/os/Packages/k/kernel-3.3.4-5.fc17.x86_64.rpm
> https://dl.fedoraproject.org/pub/fedora/linux/releases/17/Fedora/x86_64/os/Packages/k/kernel-devel-3.3.4-5.fc17.x86_64.rpm
> - install kernel packages as root:
> # rpm -ivh kernel-3.3.4-5.fc17.x86_64.rpm --force
> # rpm -ivh kernel-devel-3.3.4-5.fc17.x86_64.rpm --force
> - reboot into 3.3.4-5.fc17.x86_64 kernel
> - compile downloaded[1] original Realtek rtl871x wireless lan driver
>   against 3.3.4-5.fc17.x86_64 kernel
> - install produced moudule - "8712u.ko"
> To download, compile and install original Realtek module you already
> know, right.
> After that, the following should be done.
> Because kernel already provides the appropriate module(and firmware) for
> the same device - "r8712u.ko", and you intend to use compiled original
> one - "8712u.ko", the first one should be blacklisted so they don't collide.
> i.e.
> /etc/modprobe.d/blacklist-r8712u.conf:
> blacklist r8712u
> 
> 
> Regarding a power management to check what's engaged, kernel ring buffer
> should be parsed:
> $ dmesg | grep 'ACPI\|PM'
> 
> e.g. Suspend/Resume output:
> PM: Preparing system for mem sleep
> PM: Entering mem sleep
> PM: suspend of devices complete after 1672.538 msecs
> ACPI: Preparing to enter system sleep state S3
> ==================system suspension=================
> ACPI: Low-level resume complete
> ACPI: Waking up from system sleep state S3
> PM: resume of devices complete after 10629.433 msecs
> PM: Finishing wakeup.
> 
> e.g. Hibernate/Thaw output:
> PM: Hibernation mode set to 'platform'
> PM: freeze of devices complete after 1478.525 msecs
> ACPI: Preparing to enter system sleep state S4
> PM: Creating hibernation image:
> ================system hibernation==================
> ACPI: Waking up from system sleep state S4
> PM: restore of devices complete after 1363.236 msecs
> PM: Image restored successfully.
> 
> 
> I can only assume that you use this mechanism to achieve the system
> suspend or the system hibernate,
> $ dconf read /org/gnome/settings-daemon/plugins/power/lid-close-ac-action
> 'suspend/hibernate'
> $ dconf read
> /org/gnome/settings-daemon/plugins/power/lid-close-battery-action
> 'suspend/hibernate'
> 
> 
> And finally, the idea that I mentioned.
> Regarding losing the WiFi device after the system resume/thaw,
> # yum install pm-utils
> 
> and create as root,
> /etc/pm/config.d/modunload_modreload
> with the following line:
> SUSPEND_MODULES="8712u"
> 
> Now if you engage the system suspend as root with the following command:
> # pm-suspend
> 
> kernel module "8712u" will be unloaded before system hit suspension, and
> later during system resuming, kernel module "8712u" will be re-loaded.
> In this way, the device should be reusable.
> Will it work or not, manually or with lid-close/open, that is the question.
> This method is rather obsolete, and in an ideal world it should not be
> necessary at all.
> One day, all kernel modules will be properly designed.
> Until then.
> 
> OK I think it was really enough. :)
> Godspeed.
> 
> 
> poma
> 
> 
> [1] Original Realtek rtl871x wireless lan driver
> http://www.realtek.com/downloads/downloadsView.aspx?Langid=1&PNid=48&PFid=48&Level=5&Conn=4&DownTypeID=3&GetDown=false&Downloads=true#2292
> RTL819xSU_usb_linux_v2.6.6.0.20120405.zip
> - rtl8712_8188_8191_8192SU_usb_linux_v2.6.6.0.20120405.tar.gz
> - filename: 8712u.ko
> 
> Ref. apps.
> - rpm: NetworkManager*, wpa_supplicant, network-manager-applet
> 
> 

"r8712u is a USB driver for RTL8712U/RTL8192SU devices, it's going to be
replaced by r92su." [1]

$ modinfo r92su
filename:
/lib/modules/3.10.4-300.fc19.x86_64/updates/wip/r92su/r92su.ko
license:        GPL
author:         Christian Lamparter <chunkeey at googlemail.com>
firmware:       rtlwifi/rtl8712u.bin
alias:          usb:v5A57p0291d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0E0Bp9063d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0009p21E7d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0DF6p0061d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0409p02B6d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v7392p7622d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v07AAp0051d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v050Dp845Ad*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BDAp8174d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v13D3p3325d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v13D3p3310d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v13D3p3341d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v13D3p3340d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v13D3p3339d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v04F2pAFF6d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v04F2pAFF5d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v04F2pAFF2d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0CDEp0030d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v14B2p3302d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v14B2p3301d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v14B2p3300d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0DF6p0064d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0DF6p004Cd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0DF6p0049d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0DF6p0058d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v2019p4901d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v2019pED18d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v13D3p3306d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0E66p0015d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v06F8pE031d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1740p9605d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v7392p7612d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v07D1p3303d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v07D1p3300d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v07D1p3302d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v050Dp815Fd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v13D3p3309d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v13D3p3336d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v13D3p3335d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v13D3p3334d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v13D3p3333d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v13D3p3342d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v13D3p3311d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v13D3p3323d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0EB0p9061d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1B75p8172d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BDAp8192d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BDAp8172d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BDAp8175d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v25D4p4CABd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v25D4p4CA1d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v20F4p646Bd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1690p0752d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BDAp5077d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v177Fp0154d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0DF6p0063d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0DF6p005Dd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0DF6p005Bd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0DF6p004Bd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0DF6p0059d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0DF6p0045d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0DF6p0057d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v2019pED16d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v2019pAB28d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0789p0167d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v06F8pE032d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v06F8pE034d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0E66p0016d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1740p9603d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v7392p7611d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v07D1p3306d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v2001p3306d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v07AAp0047d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v050Dp11F1d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v050Dp945Ad*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0B05p1791d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0B05p1786d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1B75p8171d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v083ApC512d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v07B8p8188d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BDApC512d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BDApC047d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BDAp8713d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BDAp8712d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BDAp8173d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BDAp8171d*dc*dsc*dp*ic*isc*ip*in*
depends:        cfg80211
vermagic:       3.10.4-300.fc19.x86_64 SMP mod_unload
parm:           noht:Disable MPDU aggregation. (bool)

# modprobe -v r92su
insmod /lib/modules/3.10.4-300.fc19.x86_64/kernel/net/rfkill/rfkill.ko
insmod /lib/modules/3.10.4-300.fc19.x86_64/kernel/net/wireless/cfg80211.ko
insmod /lib/modules/3.10.4-300.fc19.x86_64/updates/wip/r92su/r92su.ko

$ dmesg -t
cfg80211: Calling CRDA to update world regulatory domain
usbcore: registered new interface driver r92su
cfg80211: World regulatory domain updated:
cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain,
max_eirp)
cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
cfg80211:   (2457000 KHz - 2482000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
cfg80211:   (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
cfg80211:   (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)


poma


[1] http://wireless.kernel.org/en/users/Drivers/rtl819x#staging_drivers

Ref.
http://www.spinics.net/lists/linux-wireless/msg105622.html
https://github.com/chunkeey/rtl8192su
https://github.com/chunkeey/rtl8192su/archive/master.zip
http://vger.kernel.org/vger-lists.html#linux-wireless




More information about the users mailing list