以前都是用我的ubuntu 6.06上无线,今天突然想用feisty上,于是发现一个BUG。
系统Feisty, 网卡TP-LINK:tl-wn210,在配置好essid后,每启用一次,iwconfig显示的essid就少一位,这样会导致AP错误。
暂时解决方案:第一次配置的时候需要在/etc/network/interfaces中把essid后面多加一位字符.
例如:
iface wlan0 inet dhcp
wireless-essid MYLINKx //x为增加的字符
wireless-key 1111111111
auto wlan0
查看了wireless-tools的源代码,也调试跟踪了下,发现没有问题。
初步确定问题处在return(ioctl(skfd, request, pwrq));
request = SIOCGIWESSID看来是kernel 2.6.20.15的BUG
695 /************************** IOCTL SUPPORT **************************/
696 /*
697 * The original user space API to configure all those Wireless Extensions
698 * is through IOCTLs.
699 * In there, we check if we need to call the new driver API (iw_handler)
700 * or just call the driver ioctl handler.
701 */
702
703 /* ---------------------------------------------------------------- */
704 /*
705 * Wrapper to call a standard Wireless Extension handler.
706 * We do various checks and also take care of moving data between
707 * user space and kernel space.
708 */
709 static int ioctl_standard_call(struct net_device * dev,
710 struct ifreq * ifr,
711 unsigned int cmd,
712 iw_handler handler)
849 ret = handler(dev, &info, &(iwr->u), extra);
"net/core/wireless.c" 2353 行 --35%--
继续定位
403 struct acpi_fixed_event_handler {
404 acpi_event_handler handler; /* Address of handler. */
405 void *context; /* Context to be passed to handler */
406 };Trackback: http://tb.donews.net/TrackBack.aspx?PostId=1165336