Intel Corporation PRO/Wireless 3945ABG

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Intel Corporation PRO/Wireless 3945ABG and the translation is 100% complete.
Other languages:

このガイドは、Linux を Intel Corporation PRO 3945ABG 無線カードとともに動作できるように設定する方法について記述しています。無線の設定自体はこのガイドの一部ではありません、そちらは Wi-Fi を参照してください。





lspci を使って PCI ベースのハードウェアの中から探すことができます:

root #lspci -nnkv | sed -n '/Network/,/^$/p' | head -n -1
08:00.0 Network controller [0280]: Intel Corporation PRO/Wireless 3945ABG [Golan] Network Connection [8086:4222] (rev 02)
        Subsystem: Hewlett-Packard Company PRO/Wireless 3945ABG [Golan] Network Connection [103c:135c]
        Flags: bus master, fast devsel, latency 0, IRQ 16
        Memory at e8000000 (32-bit, non-prefetchable) [size=4K]
        Capabilities: [c8] Power Management version 2
        Capabilities: [d0] MSI: Enable- Count=1/1 Maskable- 64bit+
        Capabilities: [e0] Express Legacy Endpoint, MSI 00
        Kernel driver in use: iwl3945
        Kernel modules: iwl3945


lshw を使ってすべてのハードウェア情報の中から探すことができます:

root #lshw
                description: Ethernet interface
                product: PRO/Wireless 3945ABG [Golan] Network Connection
                vendor: Intel Corporation
                physical id: 0
                bus info: pci@0000:08:00.0
                logical name: wlp8s0
                version: 02
                serial: 00:1b:77:b1:c8:8e
                width: 32 bits
                clock: 33MHz
                capabilities: pm msi pciexpress bus_master cap_list ethernet physical
                configuration: broadcast=yes driver=iwl3945 driverversion=4.1.8-gentoo firmware= ip= latency=0 link=yes multicast=yes
                resources: irq:16 memory:e8000000-e8000fff

IEEE 802.11

少なくとも cfg80211 (CONFIG_CFG80211) と mac80211 (CONFIG_MAC80211) を有効にしてください。

カーネル linux-4.19 の例
[*] Networking support  --->
    [*] Wireless  --->
        <M>   cfg80211 - wireless configuration API
        [ ]     nl80211 testmode command
        [ ]     enable developer warnings
        [ ]     cfg80211 certification onus
        [*]     enable powersave by default
        [ ]     cfg80211 DebugFS entries
        [ ]     support CRDA
        [ ]     cfg80211 wireless extensions compatibility
        <M>   Generic IEEE 802.11 Networking Stack (mac80211)
        [*]   Minstrel
        [*]     Minstrel 802.11n support
        [ ]       Minstrel 802.11ac support
              Default rate control algorithm (Minstrel)  --->
        [ ]   Enable mac80211 mesh networking (pre-802.11s) support
        -*-   Enable LED triggers
        [ ]   Export mac80211 internals in DebugFS
        [ ]   Trace all mac80211 debug messages
        [ ]   Select mac80211 debugging features  ----

Minstrel とその 802.11n サポートはrate control algorithmの1つです。いくつかのワイヤレスドライバーはこれを有効にしないといけないかもしれません。

wireless configuration API (CONFIG_CFG80211) をモジュールとしてビルド (<M>) するのではなく、カーネルに組み込む (<*>) 場合、ドライバが regulatory.db/lib/firmware からロードできず、規制ドメインサポートが機能しなくなるでしょう。CONFIG_CFG80211=m を設定するか、regulatory.dbregulatory.db.p7s (net-wireless/wireless-regdb にあります) を CONFIG_EXTRA_FIRMWARE に設定してください。

モジュールとしての iwl3945 デバイスドライバ

Intel Corporation PRO/Wireless 3945ABG は iwlegacy の名でも知られる iwl3945 ドライバを必要とします。検索 (make menuconfig 内で /) して、それがどこで見つかるか表示します:

カーネル linux-4.1 search results
Symbol: IWL3945 [=m]
 Type  : tristate
 Prompt: Intel PRO/Wireless 3945ABG/BG Network Connection (iwl3945)
     -> Device Drivers
       -> Network device support (NETDEVICES [=y])
 (1)     -> Wireless LAN (WLAN [=y])
   Defined at drivers/net/wireless/iwlegacy/Kconfig:37
   Depends on: NETDEVICES [=y] && WLAN [=y] && PCI [=y] && MAC80211 [=y]
   Selects: IWLEGACY [=m]

ここで示すように、モジュール <M> として設定してください。カーネル設定の変更後は忘れずにカーネルを再ビルドしてください。

カーネル linux-4.1 with modular drivers
Device Drivers  --->
  [*] Network device support  --->
    --- Network device support
      [*]   Wireless LAN  --->
        --- Wireless LAN
          < >   Marvell 8xxx Libertas WLAN driver support with thin firmware
          < >   Cisco/Aironet 34X/35X/4500/4800 ISA and PCI cards
          < >   Atmel at76c50x chipset  802.11b support
          < >   Atmel at76c503/at76c505/at76c505a USB cards
          < >   Intersil Prism GT/Duette/Indigo PCI/Cardbus (DEPRECATED)
          < >   USB ZD1201 based Wireless device support
          < >   Wireless RNDIS USB support
          < >   Realtek 8180/8185/8187SE PCI support
          < >   Realtek 8187 and 8187B USB support
          < >   ADMtek ADM8211 support
          < >   Simulated radio testing tool for mac80211
          < >   Marvell 88W8xxx PCI/PCIe Wireless support
          < >   Atheros Wireless Cards  ----
          < >   Broadcom 43xx wireless support (mac80211 stack)
          < >   Broadcom 43xx-legacy wireless support (mac80211 stack)
          < >   Broadcom IEEE802.11n PCIe SoftMAC WLAN driver
          < >   Broadcom IEEE802.11n embedded FullMAC WLAN driver
          < >   IEEE 802.11 for Host AP (Prism2/2.5/3 and WEP/TKIP/CCMP)
          < >   Intel PRO/Wireless 2100 Network Connection
          < >   Intel PRO/Wireless 2200BG and 2915ABG Network Connection
          < >   Intel Wireless WiFi Next Gen AGN - Wireless-N/Advanced-N/Ultimate-N (iwlwifi)
          < >   Intel Wireless WiFi 4965AGN (iwl4965)
          <M>   Intel PRO/Wireless 3945ABG/BG Network Connection (iwl3945)
                  iwl3945 / iwl4965 Debugging Options  --->
          < >   Marvell 8xxx Libertas WLAN driver support
          < >   Hermes chipset 802.11b support (Orinoco/Prism2/Symbol)
          < >   Softmac Prism54 support
          < >   Ralink driver support  ----
          < >   Realtek rtlwifi family of devices  ----
          [ ]   TI Wireless LAN support  ----
          < >   ZyDAS ZD1211/ZD1211B USB-wireless support
          < >   Marvell WiFi-Ex Driver
          < >   CW1200 WLAN support
          < >   Redpine Signals Inc 91x WLAN driver support

Intel PRO/Wireless 3945ABG/BG ... の行のヘルプ (make menuconfig 内で h を押すことで得られます) は、ドライバについてのさらなる詳細を表示します:

コード linux-4.1 help
 Select to build the driver supporting the:
 Intel PRO/Wireless 3945ABG/BG Network Connection
 This driver uses the kernel's mac80211 subsystem.
 In order to use this driver, you will need a microcode (uCode)
 image for it. You can obtain the microcode from:
 The microcode is typically installed in /lib/firmware. You can
 look in the hotplug script /etc/hotplug/firmware.agent to
 determine which directory FIRMWARE_DIR is set to when the script
 If you want to compile the driver as a module ( = code which can be
 inserted in and removed from the running kernel whenever you want),
 say M here and read <file:Documentation/kbuild/modules.txt>.  The
 module will be called iwl3945.

組み込みの iwl3945 デバイスドライバ

ドライバをモジュールとして (<M>) ビルドするのではなくカーネルに組み込む (<*>) 場合は、ファームウェアもカーネルに組み込む必要があります。

カーネル linux-4.1 with built-in drivers
Device Drivers  --->
  Generic Driver Options  --->
    -*- Userspace firmware loading support
    [ ]   Include in-kernel firmware blobs in kernel binary
    (iwlwifi-3945-2.ucode) External firmware blobs to build into the kernel binary
    (/lib/firmware) Firmware blobs root directory
    [ ] Fallback user-helper invocation for firmware loading


iwlwifi-3945-ucode- ファームウェア (またはそれ以降のもの) が必要です。sys-kernel/linux-firmware パッケージを介して利用できます。

root #emerge --ask sys-kernel/linux-firmware


このセクションの情報は古くなっています。更新された手順については Udev#省略可能: 予測可能なネットワークインターフェース名を無効化または上書きするを参照してください。

カーネルによって提供される eth0 や wlan0 のようなネットワークデバイス名は、通常は /lib/udev/rules.d/80-net-name-slot.rules での udev ルールによってシステムの起動時に変更されます (dmesg 参照)。

旧来の命名ルールを維持するには、/etc/udev/rules.d ディレクトリ内に、同じ名称のファイルを空で作成することで上書きします:

root #touch /etc/udev/rules.d/80-net-name-slot.rules



modprobe がエラーを返すべきではありません:

root #modprobe iwl3945

ドライバモジュールについてのさらなる情報 (サポートされているパラメータなど) は modinfo iwl3945 によって得ることができます:

user $modinfo iwl3945
filename:       /lib/modules/4.1.15-gentoo-r1/kernel/drivers/net/wireless/iwlegacy/iwl3945.ko
firmware:       iwlwifi-3945-2.ucode
license:        GPL
author:         Copyright(c) 2003-2011 Intel Corporation <>
version:        in-tree:s
description:    Intel(R) PRO/Wireless 3945ABG/BG Network Connection driver for Linux
srcversion:     A279E9C3E47A7F92078CA7C
alias:          pci:v00008086d00004227sv*sd*bc*sc*i*
alias:          pci:v00008086d00004222sv*sd*bc*sc*i*
alias:          pci:v00008086d00004227sv*sd00001014bc*sc*i*
alias:          pci:v00008086d00004222sv*sd00001044bc*sc*i*
alias:          pci:v00008086d00004222sv*sd00001034bc*sc*i*
alias:          pci:v00008086d00004222sv*sd00001005bc*sc*i*
depends:        iwlegacy
intree:         Y
vermagic:       4.1.15-gentoo-r1 SMP mod_unload 
parm:           antenna:select antenna (1=Main, 2=Aux, default 0 [both]) (int)
parm:           swcrypto:using software crypto (default 1 [software]) (int)
parm:           disable_hw_scan:disable hardware scanning (default 1) (int)
parm:           fw_restart:restart firmware in case of error (int)



再起動した後、dmesg 出力から 08:00.0iwl3945 そして wlp8s0 を grep してください:

user $dmesg | grep -i '08:00.0\|iwl3945\|wlp8s0'
[    0.148048] pci 0000:08:00.0: [8086:4222] type 00 class 0x028000
[    0.148099] pci 0000:08:00.0: reg 0x10: [mem 0xe8000000-0xe8000fff]
[    0.148419] pci 0000:08:00.0: PME# supported from D0 D3hot D3cold
[    0.148518] pci 0000:08:00.0: disabling ASPM on pre-1.1 PCIe device.  You can enable it with 'pcie_aspm=force'
[    7.198115] iwl3945: Intel(R) PRO/Wireless 3945ABG/BG Network Connection driver for Linux, in-tree:s
[    7.198118] iwl3945: Copyright(c) 2003-2011 Intel Corporation
[    7.198183] iwl3945 0000:08:00.0: can't disable ASPM; OS doesn't have ASPM control
[    7.252250] iwl3945 0000:08:00.0: Tunable channels: 13 802.11bg, 23 802.11a channels
[    7.252254] iwl3945 0000:08:00.0: Detected Intel Wireless WiFi Link 3945ABG
[    7.492257] iwl3945 0000:08:00.0 wlp8s0: renamed from wlan0
[    7.504225] systemd-udevd[278]: renamed network interface wlan0 to wlp8s0
[   15.828778] iwl3945 0000:08:00.0: loaded firmware version