Drivers

致命:未找到模組 p80211。antiX 13.1 (Debian Wheezy) 下的 RTL8192CUS WLAN 回歸

  • May 14, 2015

該問題涉及基於 Debian Wheezy(穩定)的發行版antiX 13.1下RTL8192CUS WLAN 晶片的驅動程序支持回歸。該晶片實際上位於Edimax EW-7811Un 802.11n 無線適配器中。

首先,這裡是一些一般系統資訊。

$ inxi -F
System:    Host: 4000cdt Kernel: 3.7.10-antix.3-486-smp i686 (32 bit) 
          Desktop: IceWM 1.3.7 Distro: antiX-13.1_386-full Luddite 19 June 2013
Machine:   No /sys/class/dmi, using dmidecode: you must be root to run dmidecode
CPU:       Single core Pentium II (Deschutes) (-UP-) cache: 512 KB flags: (pae) clocked at 233.275 MHz 
Graphics:  Card: Chips and F65555 HiQVPro X.Org: 1.12.4 drivers: chips (unloaded: fbdev,vesa) Resolution: 800x600@60.0hz 
          GLX Renderer: Gallium 0.4 on softpipe GLX Version: 2.1 Mesa 8.0.5
Network:   Card: Edimax EW-7811Un 802.11n Wireless Adapter [Realtek RTL8188CUS] 
          IF: N/A state: N/A mac: N/A
Drives:    HDD Total Size: 40.0GB (8.7% used) 1: id: /dev/sda model: TOSHIBA_MK4032GA size: 40.0GB 
Partition: ID: / size: 9.9G used: 3.0G (32%) fs: ext4 ID: /home size: 25G used: 284M (2%) fs: ext4 
          ID: swap-1 size: 2.15GB used: 0.00GB (0%) fs: swap 
Sensors:   System Temperatures: cpu: 71.0C mobo: N/A 
          Fan Speeds (in rpm): cpu: N/A 
Info:      Processes: 88 Uptime: 2:57 Memory: 72.4/151.4MB Client: Shell (bash) inxi: 1.9.9 

在啟動過程中,螢幕上會出現以下錯誤,這是在執行/etc/network/if-pre-up.d/linux-wlan-ng-pre-up腳本時引起的:

FATAL: Module p80211 not found.

/etc/network/if-pre-up.d/linux-wlan-ng-pre-up
Failed to load p80211.ko.

Listening on LPF/wlan0/00:1f:1f:bf:45:7a
Sending on   LPF/wlan0/00:1f:1f:bf:45:7a
Sending on   Socket/fallback
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 7
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 10
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 14
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 17
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 13
No DHCPOFFERS received.
No working leases in persistent database - sleeping.

可以通過分別發出sudo modprobe p80211sudo dhclient -v wlan0命令來重現錯誤消息。

載入以下模組:

$ lsmod
Module                  Size  Used by
mperf                    870  0 
cpufreq_stats           2600  0 
cpufreq_powersave        575  0 
cpufreq_conservative     3562  0 
ppdev                   4124  0 
lp                      6127  0 
uinput                  5093  1 
nfsd                  156046  2 
auth_rpcgss            19755  1 nfsd
nfs_acl                 1576  1 nfsd
nfs                    88586  0 
lockd                  42731  2 nfs,nfsd
fscache                21695  1 nfs
sunrpc                122417  6 nfs,nfsd,auth_rpcgss,lockd,nfs_acl
af_packet              19031  6 
dm_crypt               10846  0 
arc4                    1400  2 
rtl8192cu              45534  0 
rtlwifi                43564  1 rtl8192cu
rtl8192c_common        23999  1 rtl8192cu
mac80211              192647  3 rtlwifi,rtl8192c_common,rtl8192cu
cfg80211              123731  2 mac80211,rtlwifi
microcode               8484  0 
evdev                   6815  10 
mac_hid                 2214  0 
psmouse                52159  0 
pcspkr                  1273  0 
serio_raw               3177  0 
i2c_piix4               6769  0 
toshiba_acpi           10065  0 
sparse_keymap           1937  1 toshiba_acpi
parport_pc             23969  1 
rfkill                 10599  3 cfg80211,toshiba_acpi
parport                21942  3 lp,ppdev,parport_pc
wmi                     6240  1 toshiba_acpi
pcmcia                 24870  0 
battery                 5391  0 
yenta_socket           15802  0 
ac                      1753  0 
pcmcia_rsrc             5995  1 yenta_socket
pcmcia_core             8446  3 pcmcia,pcmcia_rsrc,yenta_socket
processor              23837  1 
button                  3513  0 
btrfs                 555574  0 
zlib_deflate           15207  1 btrfs
dm_mod                 51354  1 dm_crypt
floppy                 41663  0 
fan                     1818  0 
thermal                 6606  0 
thermal_sys            10423  3 fan,thermal,processor

證明這不是身份驗證問題:

$ sudo cat /var/log/dmesg |grep wlan0
[   36.321107] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[   38.921480] wlan0: authenticate with 00:xx:xx:xx:xx:xx
[   38.971473] wlan0: send auth to 00:xx:xx:xx:xx:xx (try 1/3)
[   38.996892] wlan0: authenticated
[   39.000218] wlan0: associate with 00:xx:xx:xx:xx:xx (try 1/3)
[   39.055578] wlan0: RX AssocResp from 00:xx:xx:xx:xx:xx (capab=0x411 status=0 aid=2)
[   39.056549] wlan0: associated
[   39.056781] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[   49.062856] wlan0: disassociating from 00:xx:xx:xx:xx:xx by local choice (reason=3)
[   49.086100] wlan0: deauthenticating from 00:xx:xx:xx:xx:xx by local choice (reason=3)
[   50.431396] wlan0: authenticate with 00:xx:xx:xx:xx:xx
[   50.481575] wlan0: send auth to 00:xx:xx:xx:xx:xx (try 1/3)
[   50.684150] wlan0: send auth to 00:xx:xx:xx:xx:xx (try 2/3)
[   50.888146] wlan0: send auth to 00:xx:xx:xx:xx:xx (try 3/3)
[   51.092212] wlan0: authentication with 00:xx:xx:xx:xx:xx timed out

$ sudo iwconfig
wlan0     IEEE 802.11bgn  ESSID:off/any  
         Mode:Managed  Access Point: Not-Associated   Tx-Power=20 dBm   
         Retry  long limit:7   RTS thr=2347 B   Fragment thr:off
         Encryption key:off
         Power Management:off

lo        no wireless extensions.

我已經嘗試過:

  • 從 Realtek 站點安裝Linux 驅動程序,同時解除安裝linux-wlan-ng軟體包並將核心rtl8192cu模組列入黑名單(以前使用 antiX 12M 的方法),以及
  • ipv6.disable=1作為grub引導參數提供給核心。

問題

為什麼p80211在應該基於 Debian Wheezy stable的發行版中找不到該模組?如何讓 DHCP 為這個無線適配器工作?

FATAL: Module p80211 not found.通常表明所提供的驅動程序對於使用的核心已過時。

此外,Realtek 驅動程序的目前版本 3.4.4_4749.20121105 將無法與最新的 Linux 核心一起編譯。解決方案包括安裝降級核心,在其上編譯Realtek的驅動程序,並將降級核心提供的驅動程序列入黑名單。

按 Ctrl+Alt+F1 在顯示管理器之外獲取命令行。執行smxi.shAntix 附帶的腳本。

sudo smxi

對於其他 GNU/Linux 發行版,請從smxi.org下載腳本。按照說明進行操作。Adist-upgrade並不總是必要的。

選擇:6) kernel-options > 1) alternate-kernel-install

核心3.6.0-11.dmz.1-liquorix-686或更低的工作,核心3.7.0-10.dmz.1-liquorix-686和更高的不。具有長期支持的最新穩定核心是3.4.0-35.dmz.1-liquorix-686.

在繼續之前,請務必重新啟動到新核心。這個核心可以預設啟動;簡單編輯…

sudo nano /boot/grub/menu.lst

從Realtek 的網站下載 RTL8192CUS Linux 驅動程序。

提取驅動程序。然後,將下面setup.sh的 bash 腳本保存在與install.sh. (我從SolydXKSchoelje那裡得到了這個腳本——發行版的名聲。)

#!/bin/bash
if [ $UID -ne 0 ]; then
 echo "Please, type the root password..."
 su -c "$0 $@"
 exit
fi

apt-get install linux-headers-`uname -r`
apt-get install build-essential
rmmod rtl8192cu
chmod +x install.sh
./install.sh
echo "blacklist rtl8192cu" > /etc/modprobe.d/blacklist-rtl8192cu.conf
echo 8192cu >> /etc/modules

使腳本可執行並執行它。

chmod +x setup.sh
./setup.sh

成功完成腳本後,發出

sudo service network restart

您的 RTL8192CUS 無線適配器現在應該可以正常工作了。

使用 Wicd 應用程序連接到無線網路。如果始終使用相同的 WLAN,還可以將安全憑證硬編碼如下:

sudo chmod 600 /etc/network/interfaces
sudo nano /etc/network/interfaces

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet dhcp

auto wlan0
iface wlan0 inet dhcp
   wpa-ssid xxxxxxxxxxx
   wpa-psk xxxxxxxxxxxx

為什麼在應該基於 Debian Wheezy stable 的發行版中找不到 p80211 模組?

因為 Anti 手動滾動了核心並且可能將該模組遺漏了。我在以前版本的不同裝備上遇到了這個問題,並通知了團隊。

http://antix.freeforums.org/post28122.html#p28122

我在這里而不是在論壇上回答你。該論壇有一個發布程式碼讀數的錯誤。如果在 AntiX 論壇上發帖。在 /etc/issue 或 /ect 之間留一個空格,否則你會收到消息

您無權訪問此伺服器上的 /posting.php。

編輯:作為我過去使用的快速修復解決方案。您可以在 X 中以 root 身份執行 smxi 並通過陸線連接(如果可用)安裝 Liqourix 或 Debian 核心,

引用自:https://unix.stackexchange.com/questions/94439