hostapd
我使用 Debian Wheezy等将一台旧 PC 设置为路由器。dhcpd
它有 3 个网卡和 1 个 WiFi PCI 卡(TP-Link L-WN751ND)。
问题在于,当 hostapd 运行且其接口已启动时,客户端会随机无法访问 AP。从我设置到昨天,这个路由器已经工作了 6 天,没有出现任何问题。我不明白为什么hostapd
变得无法使用。
我到底有哪些接口
eth0 is down (3Com)
eth1 gets IP from ISP DHCP (Realtek)
eth2 takes IP for my LAN over DHCPD
ppp0 - it's an ISP VPN over PPTP
配置
$ cat /etc/debian_version
wheezy/sid
$ uname -r
3.2.0-2-686-pae
$ dpkg -l | grep linux-image
ii linux-image-2.6-686 3.2+44 Linux for modern PCs (dummy package)
ii linux-image-3.2.0-2-686-pae 3.2.17-1 Linux 3.2 for modern PCs
ii linux-image-686-pae 3.2+44 Linux for modern PCs (meta-package)
$ hostapd -v
hostapd v1.0
User space daemon for IEEE 802.11 AP management,
IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator
Copyright (c) 2002-2010, Jouni Malinen <[email protected]> and contributors
$ lspci
00:00.0 Host bridge: Intel Corporation 82810E DC-133 (GMCH) Graphics Memory Controller Hub (rev 03)
00:01.0 VGA compatible controller: Intel Corporation 82810E DC-133 (CGC) Chipset Graphics Controller (rev 03)
00:1e.0 PCI bridge: Intel Corporation 82801AA PCI Bridge (rev 02) 00:1f.0 ISA bridge: Intel Corporation 82801AA ISA Bridge (LPC) (rev 02)
00:1f.1 IDE interface: Intel Corporation 82801AA IDE Controller (rev 02)
00:1f.2 USB controller: Intel Corporation 82801AA USB Controller (rev 02)
00:1f.3 SMBus: Intel Corporation 82801AA SMBus Controller (rev 02)
01:07.0 Multimedia audio controller: Ensoniq ES1371 [AudioPCI-97] (rev 06)
01:08.0 Network controller: Atheros Communications Inc. AR9227 Wireless Network Adapter (rev 01)
01:09.0 Ethernet controller: Sundance Technology Inc / IC Plus Corp IC Plus IP100A Integrated 10/100 Ethernet MAC + PHY (rev 31)
01:0a.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
01:0b.0 Ethernet controller: 3Com Corporation 3c905 100BaseTX [Boomerang]
$ ifconfig
eth1 Link encap:Ethernet HWaddr 00:60:97:d8:dd:ea
inet addr:192.168.120.184 Bcast:192.168.120.255 Mask:255.255.255.0
inet6 addr: fe80::260:97ff:fed8:ddea/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:431713 errors:74 dropped:682 overruns:59 frame:0
TX packets:171981 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:283031893 (269.9 MiB) TX bytes:21389936 (20.3 MiB)
Interrupt:10 Base address:0xd800
eth2 Link encap:Ethernet HWaddr 14:da:e9:a7:21:33
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::16da:e9ff:fea7:2133/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:276872 errors:0 dropped:0 overruns:0 frame:0
TX packets:338010 errors:1 dropped:30 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:23357782 (22.2 MiB) TX bytes:278728804 (265.8 MiB)
Interrupt:11 Base address:0xdc00
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:436 (436.0 B) TX bytes:436 (436.0 B)
mon.wlan0 Link encap:UNSPEC HWaddr
B0-48-7A-E3-AE-0F-00-00-00-00-00-00-00-00-00-00
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
ppp0 Link encap:Point-to-Point Protocol
inet addr:80.242.96.16 P-t-P:195.66.139.23 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1400 Metric:1
RX packets:225471 errors:0 dropped:0 overruns:0 frame:0
TX packets:142471 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:252918981 (241.2 MiB) TX bytes:11957326 (11.4 MiB)
wlan0 Link encap:Ethernet HWaddr b0:48:7a:e3:ae:0f
inet addr:192.168.2.1 Bcast:192.168.2.255 Mask:255.255.255.0
inet6 addr: fe80::b248:7aff:fee3:ae0f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:252 errors:0 dropped:0 overruns:0 frame:0
TX packets:420 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:31491 (30.7 KiB) TX bytes:240068 (234.4 KiB)
$ iwconfig
wlan0 IEEE 802.11bgn Mode:Master Frequency:2.437 GHz Tx-Power=13 dBm
Retry long limit:7 RTS thr:off Fragment thr:off
Power Management:on
mon.wlan0 IEEE 802.11bgn Mode:Monitor Tx-Power=13 dBm
Retry long limit:7 RTS thr:off Fragment thr:off
Power Management:on
我的系统日志的内容
这部分/var/log/messages
引起了我的注意:
May 26 03:19:01 debian kernel: [10947.008116] ------------[ cut here ]------------
May 26 03:19:01 debian kernel: [10947.008167] WARNING: at /build/buildd-linux-2.6_3.2.17-1-i386-rPdRhH/linux-2.6-3.2.17/debian/build/source_i386_none/net/sched/sch_generic.c:255 dev_watchdog+0xb1/0x104()
May 26 03:19:01 debian kernel: [10947.008181] Hardware name:
May 26 03:19:01 debian kernel: [10947.008190] NETDEV WATCHDOG: eth2 (sundance): transmit queue 0 timed out
May 26 03:19:01 debian kernel: [10947.008199] Modules linked in: cryptd aes_i586 aes_generic ppp_async crc_ccitt ppp_generic slhc ipt_MASQUERADE xt_TCPMSS xt_limit xt_pkttype ipt_REJECT xt_tcpudp xt_state ipt_LOG iptable_mangle iptable_nat iptable_filter nf_conntrack_irc nf_nat_ftp nf_conntrack_ftp nf_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_conntrack ip_tables x_tables 8021q garp stp loop arc4 ath9k ath9k_common ath9k_hw snd_ens1371 ath snd_ac97_codec mac80211
snd_rawmidi snd_seq_device cfg80211 snd_pcm evdev snd_page_alloc snd_timer fkill snd soundcore ac97_bus pcspkr serio_raw i2c_i801 gameport i2c_core iTCO_wdt iTCO_vendor_support rng_core shpchp parport_pc parport processor button thermal_sys ext4 crc16 jbd2 mbcache dm_mod sr_mod sd_mod cdrom crc_t10dif ata_generic ata_piix libata 8139too uhci_hcd ehci_hcd scsi_mod usbcore sb_common 3c59x 8139cp floppy sundance mii [last unloaded: scsi_wait_scan]
May 26 03:19:01 debian kernel: [10947.008476] Pid: 1705, comm: rs:main Q:Reg Not tainted 3.2.0-2-686-pae #1
May 26 03:19:01 debian kernel: [10947.008486] Call Trace: May 26 03:19:01 debian kernel: [10947.008513] [<c103845c>] ? warn_slowpath_common+0x68/0x79
May 26 03:19:01 debian kernel: [10947.008528] [<c1231444>] ? dev_watchdog+0xb1/0x104
May 26 03:19:01 debian kernel: [10947.008545] [<c10384d5>] ? warn_slowpath_fmt+0x29/0x2d
May 26 03:19:01 debian kernel: [10947.008560] [<c1231444>] ? dev_watchdog+0xb1/0x104
May 26 03:19:01 debian kernel: [10947.008613] [<c103ce5d>] ? local_bh_enable+0x2/0x2
May 26 03:19:01 debian kernel: [10947.008641] [<c1042010>] ? run_timer_softirq+0x150/0x1f3
May 26 03:19:01 debian kernel: [10947.008656] [<c1231393>] ? netif_tx_unlock+0x3a/0x3a
May 26 03:19:01 debian kernel: [10947.008672] [<c103ce5d>] ? local_bh_enable+0x2/0x2
May 26 03:19:01 debian kernel: [10947.008687] [<c103cef1>] ? __do_softirq+0x94/0x12f
May 26 03:19:01 debian kernel: [10947.008702] [<c103ce5d>] ? local_bh_enable+0x2/0x2
May 26 03:19:01 debian kernel: [10947.008710] <IRQ> [<c103d0e2>] ? irq_exit+0x32/0x80
May 26 03:19:01 debian kernel: [10947.008762] [<c100cd7a>] ? o_IRQ+0x65/0x76
May 26 03:19:01 debian kernel: [10947.008787] [<c12c5bf0>] ? common_interrupt+0x30/0x38
May 26 03:19:01 debian kernel: [10947.008825] [<c10f1dc1>] ? __fsnotify_parent+0x80/0x87
May 26 03:19:01 debian kernel: [10947.008844] [<c10cb955>] ? wait_on_retry_sync_kiocb+0x3c/0x3c
May 26 03:19:01 debian kernel: [10947.008858] [<c10cb955>] ? wait_on_retry_sync_kiocb+0x3c/0x3c
May 26 03:19:01 debian kernel: [10947.008872] [<c10cb901>] ? fsnotify_modify+0x37/0x4f
May 26 03:19:01 debian kernel: [10947.008887] [<c10cc1c8>] ? vfs_write+0xa4/0xd4
May 26 03:19:01 debian kernel: [10947.008901] [<c10cc367>] ? sys_write+0x3d/0x61
May 26 03:19:01 debian kernel: [10947.008916] [<c12c565f>] ? sysenter_do_call+0x12/0x28
May 26 03:19:01 debian kernel: [10947.008927] ---[ end trace d751668d50ee9171 ]---
May 26 03:19:01 debian kernel: [10947.008943] eth2: Transmit timed out, TxStatus 00 TxFrameId bc, resetting...
上面/var/log/syslog
堆满了这样的消息:
May 26 16:37:35 debian kernel: [58861.160666] ath: Could not stop RX, we could be confusing the DMA engine when we start RX up
May 26 16:37:36 debian kernel: [58861.514885] ath: DMA failed to stop in 10 ms AR_CR=0x00000024 AR_DIAG_SW=0x42000020 DMADBG_7=0x00008040
May 26 16:37:36 debian kernel: [58861.514987] ath: Could not stop RX, we could be confusing the DMA engine when we start RX up
May 26 16:37:36 debian kernel: [58861.869302] ath: DMA failed to stop in 10 ms AR_CR=0x00000024 AR_DIAG_SW=0x42000020 DMADBG_7=0x00008040
May 26 16:37:36 debian kernel: [58861.869398] ath: Could not stop RX, we could be confusing the DMA engine when we start RX up
May 26 16:37:37 debian kernel: [58862.223665] ath: DMA failed to stop in 10 ms AR_CR=0x00000024 AR_DIAG_SW=0x42000020 DMADBG_7=0x00008040
May 26 16:37:37 debian kernel: [58862.223769] ath: Could not stop RX, we could be confusing the DMA engine when we start RX up
May 26 16:37:37 debian kernel: [58862.578063] ath: DMA failed to stop in 10 ms AR_CR=0x00000024 AR_DIAG_SW=0x42000020 DMADBG_7=0x00006040
May 26 16:37:37 debian kernel: [58862.578163] ath: Could not stop RX, we could be confusing the DMA engine when we start RX up
我对这个问题的原因感到困惑,但日志让我怀疑该ath9k
模块。因此,我一直在系统日志中按主题进行谷歌搜索,发现这是一个古老的众所周知的错误。 Google 建议的解决方法是关闭 WiFi 卡的电源管理系统:
# iwconfig wlan power off
但我尝试了这种解决方法,但它对我不起作用。
答案1
解决办法是,编辑
sudo vi /etc/modprobe.d/ath9k.conf
和:
options ath9k nohwcrypt=1
然后重新启动。
根据“如何修复 Ubuntu Natty Narwhal 中的 Atheros AR9285 / AR9287 无线问题?”
http://www.htpcbeginner.com/how-to-fix-atheros-ar9285-ar9287-wireless-problems-in-ubuntu-1104/
我注意到我的无线卡无法工作。无线问题包括连接频繁丢失或下降,即使连接后速度也非常慢。
答案2
这里不可能给出准确的答案,因为您没有提供所需的所有信息。
然而,对我来说这听起来像是一个中断问题。我通过确保 ath9k 不与 [eux]hci_hcd 或其他人共享中断来解决这个问题。
要解决中断共享问题,首先查看 /proc/interrupts。如果你看到 ath9k 共享一个这样的中断:
18:272716296 IO-APIC-fasteoi ath9k,uhci_hcd:usb4
解绑usb4就可以了
echo 4 > /sys/bus/pci/drivers/uhci_hcd/unbind