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:
Resources

Это руководство описывает как настроить Linux, что бы работала беспроводная карта Intel Corporation PRO 3945ABG. В этом руководстве не рассматривается настройка беспроводного подключения; смотрите статью Wi-Fi.

Ядро

Определение аппаратного обеспечения

Сначала проверьте, возможно, аппаратное обеспечение обнаружено. Можно использовать несколько подходов.

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

Включите по крайней мере 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 является алгоритмом управления скоростью. Некоторым беспроводным драйверам может понадобится его поддержка.

Важно
В случае, если wireless configuration API (CONFIG_CFG80211) скомпилирована в качестве части ядра (<*>), а не в виде модуля (<M>), драйвер не сможет загрузить regulatory.db из /lib/firmware, вследствие чего будет нарушена поддержка специфичных для отдельных стран особенностей. Установите CONFIG_CFG80211=m или добавьте regulatory.db и regulatory.db.p7s (из net-wireless/wireless-regdb) в CONFIG_EXTRA_FIRMWARE.

Драйвер устройства iwl3945 как модуль

Для Intel Corporation PRO/Wireless 3945ABG необходим драйвер iwl3945 (или iwlegacy). Поиск (/ в make menuconfig) показывает где найти его:

ЯДРО 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

Помощь (которую можно получить, нажав h в make menuconfig) на Intel PRO/Wireless 3945ABG/BG ..., отобразит больше информации о драйвере:

КОД linux-4.1 help
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>), firmware также необходимо собрать в ядре.

ЯДРО 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
    (/lib/firmware) Firmware blobs root directory
    [ ] Fallback user-helper invocation for firmware loading

Firmware

Необходима iwlwifi-3945-ucode-15.32.2.9.tgz прошивка (firmware) (или новее). Она находится в пакете sys-kernel/linux-firmware.

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

Имена сетевых устройств

Предупреждение
This section is obsolete. See Udev#Optional: Disable_or_override_predictable_network_interface_naming for updated instructions.

Имена сетевых устройств, такие как eth0 или wlan0 и так далее, как предусмотрено ядром, обычно меняются во время загрузки системы (смотрите dmesg) с помощью /lib/udev/rules.d/80-net-name-slot.rules правила udev.

Чтобы сохранить классическое именование это правило может быть перезаписано пустым файлом с таким же именем в каталоге /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 <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

После перезагрузки, с помощью команды grep, проверьте вывод dmesg на предмет 08:00.0, iwl3945 и wlp8s0:

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

Смотрите также

  • Wi-Fi — описывает настройку беспроводных сетевых устройств WiFi.
  • wpa_supplicantWi-Fi-проситель
  • Network management — describes possibilities for managing the network stack.