Intel Corporation PRO/Wireless 3945ABG

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

Other languages:
English • ‎日本語 • ‎한국어 • ‎polski • ‎русский


Resources

이 안내서는 인텔사의 PRO 3945ABG 무선 네트워크 카드를 리눅스에서 동작하도록 설정하는 방법을 설명합니다. 무선 네트워크 설정 자체는 이 안내서에서 다루지 않으므로, 이 내용을 찾아보려면 WiFi 페이지를 참고하십시오.

커널

하드웨어 감지

우선 하드웨어를 발견했는지 확인하십시오. 여러 접근 방식이 있습니다.

lspci

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

lshw로 하드웨어 정보를 검색할 수 있습니다:

root #lshw
  *-core
     *-pci
        *-pci:0
           *-network
                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=15.32.2.9 ip=192.168.178.23 latency=0 link=yes multicast=yes
                resources: irq:16 memory:e8000000-e8000fff

IEEE 802.11

Activate at least cfg80211 and mac80211. Some wireless drivers also require a rate control algorithm.

커널 linux-4.1
[*] Networking support  --->
    [*] Wireless  --->
        <*>   cfg80211 - wireless configuration API
        [ ]     nl80211 testmode command
        [ ]     enable developer warnings
        [ ]     cfg80211 regulatory debugging
        [ ]     cfg80211 certification onus
        [*]     enable powersave by default
        [ ]     cfg80211 DebugFS entries
        [ ]     use statically compiled regulatory rules database
        [ ]     cfg80211 wireless extensions compatibility
        <*>   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 and its 802.11n support is a rate control algorithm.

iwl3945 장치 드라이버 모듈

Intel Corporation PRO/Wireless 3945ABG needs the iwl3945 driver aka iwlegacy. Search (/ in make menuconfig) shows where to find it:

커널 linux-4.1 검색 결과
Symbol: IWL3945 [=m]
 Type  : tristate
 Prompt: Intel PRO/Wireless 3945ABG/BG Network Connection (iwl3945)
   Location:
     -> 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
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 도움말
CONFIG_IWL3945:
  
 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:
  
         <http://intellinuxwireless.org/>.
  
 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
 runs.
  
 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
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
    (/lib64/firmware) Firmware blobs root directory
    [ ] Fallback user-helper invocation for firmware loading

펌웨어

iwlwifi-3945-ucode-15.32.2.9.tgz(또는 이후 버전의) 펌웨어가 필요합니다. 이 펌웨어는 sys-kernel/linux-firmware 꾸러미에 들어있습니다.

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

Network device names

Network device names eth0, wlan0, etc. as provided by the kernel could be changed on boot (see dmesg) by the /lib/udev/rules.d/80-net-name-slot.rules udev rule.

To keep the classic naming this rule can be overwritten with an equally named empty file in the /etc/udev/rules.d directory:

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

설정 확인

모듈 불러오기

modprobe 명령에서는 어떤 오류도 반환하지 말아야합니다:

root #modprobe iwl3945

More information about the driver module (such as the supported parameters) can be obtained by 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 <ilw@linux.intel.com>
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.0, iwl3945, wlp8s0와 같은 식으로 dmesg 출력을 찾아보십시오:

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 15.32.2.9

추가 참조