歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Debian 配置 Intel PRO/Wireless 3945 和 WiFi Link 4965 設備 (iwlwifi)

Debian 配置 Intel PRO/Wireless 3945 和 WiFi Link 4965 設備 (iwlwifi)

日期:2017/2/28 16:11:25   编辑:Linux教程

以下內容描述了 Debian 系統下如何支持 Intel 3945 和 4965 芯片的 WiFi 設備。

iwl3945 和 iwl4965(Squeeze 也就是 Debian 6 下的 iwlagn 軟件包)是由 iwlwifi 驅動生成的模塊,它們支持 Intel 3945ABG 和 4965AGN 無線 LAN 設備。這是由 Intel 支持的開源驅動,代替了已經不是自由軟件的 ipw3945 驅動,這個驅動需要一個用戶空間的守護進程。本文的最後列出了支持的設備。

需要一個 non-free 的固件,可以由 firmware-iwlwifi 軟件包提供。固件必須先安裝,然後才能對設備進行操作。

關於對 Intel 無線 WiFi Link 5000,6000 和 1000 系列設備的支持,請參考 iwlagn

安裝

Squeeze(也就是 Debian 6.0)

  1. 為 /etc/apt-sources.list 添加一個 non-free 的組件。例如:
    # Debian Squeeze/6.0
    deb http://ftp.us.debian.org/debian squeeze main contrib non-free
  2. 更新可用軟件包列表。安裝 firmware-iwlwifi 和 wireless-tools 軟件包:
    # aptitude update
    # aptitude install firmware-iwlwifi wireless-tools
  3. 必要的內核模塊必須自動加載。如果必要,也可以手動加載:
    # modprobe iwl3945
    或者
    # modprobe iwlagn
  4. 確定你的設備有一個可用的接口:
    # iwconfig
  5. 喚起接口,激活設備,例如:
    # ifconfig wlan0 up
  6. 對你的無線接口進行適當的配置

可能存在的問題

大多數筆記本有一個無線網絡的開關按鈕。 【 Linux公社 www.Linuxidc.com 】確信已經打開這個開關。

接口被命名為 wlan0_rename(sysfs_create_symlink 失敗)

NetworkManager 軟件可能無法處理無線設備。/var/log/syslog 可能有類似下面的信息:

kernel: iwl3945: Intel(R) PRO/Wireless 3945ABG/BG Network Connection driver for Linux, 0.1.15ks
kernel: iwl3945: Copyright(c) 2003-2007 Intel Corporation
kernel: ACPI: PCI Interrupt 0000:03:00.0[A] -> GSI 17 (level, low) -> IRQ 22
kernel: PCI: Setting latency timer of device 0000:03:00.0 to 64
kernel: iwl3945: Detected Intel PRO/Wireless 3945ABG Network Connection
kernel: iwl3945: Tunable channels: 13 802.11bg, 23 802.11a channels
kernel: wmaster0: Selected rate control algorithm 'iwl-3945-rs'
kernel: net eth2: device_rename: sysfs_create_symlink failed (-17)
kernel: udev: renamed network interface wmaster0 to eth2
kernel: net wlan0_rename: device_rename: sysfs_create_symlink failed (-17)

這可能是由於你之前使用過 ipw3945 模塊而導致。

解決方法

在 /etc/udev/rules.d/70-persistent-net.rules 文件中,移除類似這樣的指令:

# PCI device 0x8086:0x4227 (ipw3945)
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:13:02:4c:12:12", NAME="eth2"

然後移除模塊,重新插入:

# modprobe -r iwl3945 ; modprobe iwl3945

在 /etc/udev/rules.d/70-persistent-net.rules 文件中你應該有類似下面的指令:

# PCI device 0x8086:0x4227 (iwl3945)
SUBSYSTEM=="net", DRIVERS=="?*", ATTR{address}=="00:13:02:4c:12:12", ATTR{type}=="1", NAME="wlan0"

無法聯接到訪問點(access point,AP)

如果已經指定了一個 SSID 卻無法聯接到訪問點,甚至不要求密碼的時候也聯接不上,接口可能首先需要被喚起,然後再定義 SSID:

# ip link set wlan0 up
# iwconfig wlan0 essid YourESSID

如果設備依然不能聯接上,甚至是帶有 SSID 和密碼的情況下,可以嘗試:

# iwconfig wlan0 ap any

你可能希望嘗試在 /etc/network/interfaces 中定義的不同的 wpa-sacn-ssid 和 wpa-ap-scan 值。之前的命令既接受 0 或 1,後面是 0,1 或者 2。可以設置為 wpa-scan-ssid 為 0 同時 wpa-ap-scan 為 1,但如果它沒有作用的話,請嘗試其它的配置。

你可能會發現對重試次數設置一個比較高的數值會對有助於聯接到 WEP 訪問點,或者工作在其它無線 LAN 設備,但是發送重復的分離。可以做如下嘗試,插入一個重試次數數值:

# iwconfig wlan0 retry <value>

它會使用 dhclient 多次嘗試獲取一個 IP 地址。

無法看見任何網絡

如果 NetworkManager 可以使用設備,但無法探測到任何無線網絡,可能是因為沒有安裝固件引起的:

ACPI: PCI Interrupt 0000:03:00.0[A] -> GSI 17 (level, low) -> IRQ 17
kernel: PM: Writing back config space on device 0000:03:00.0 at offset 1 (was 100102, writing 40100106)
kernel: firmware: requesting iwlwifi-4965-1.ucode
kernel: iwl4965: iwlwifi-4965-1.ucode firmware file req failed: Reason -2
kernel: iwl4965: Could not read microcode: -2

按照之前所述,安裝設備固件。

聯接成功,卻無法發送和接收

可能是你的防火牆阻止了流量。這種情況大部分會在你從 ipw3945 轉換到 iwlwifi 的時候發生,因為接口的名字從 eth2 轉換成 wlan0。檢查你的防火牆設置。例如,如果你使用 shorewall,檢查 /etc/shorewall/ 目錄下的文件,把接口的名字改成 wlan0。

支持的設備

HowToIdentifyADevice/PCI 頁面解釋了如何確定一個 PCI 設備。

iwl3945

以下內容是基於 Debian 2.6.32(2.6.32-30)內核 modinfo iwl3945 的 alias 字段。

PCI: 8086:4222 Intel Corporation PRO/Wireless 3945ABG [Golan] Network Connection
PCI: 8086:4227 Intel Corporation PRO/Wireless 3945ABG [Golan] Network Connection

iwlagn

以下信息基於 Debian 2.6.32(2.6.32-30)內核 modinfo iwlagn 的 alias 字段,同時移除了非 4965 設備。

PCI: 8086:4229 Intel Corporation PRO/Wireless 4965 AG or AGN [Kedron] Network Connection
PCI: 8086:4230 Intel Corporation PRO/Wireless 4965 AG or AGN [Kedron] Network Connection
Copyright © Linux教程網 All Rights Reserved