This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.
Please visit our production wiki at https://wiki.gentoo.org
Intel Corporation PRO/Wireless 3945ABG
Это руководство описывает как настроить Linux, что бы работала беспроводная карта Intel Corporation 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
Включите по крайней мере опции cfg80211 и mac80211. Некоторым драйверам для беспроводных устройств требуется алгоритм управления скоростью.
[*] 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 с его поддержкой 802.11n это и есть алгоритм управления скоростью.
Драйвер устройства iwl3945 как модуль
Для Intel Corporation PRO/Wireless 3945ABG необходим драйвер iwl3945 (или iwlegacy). Поиск (/ в make menuconfig) показывает где найти его:
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>
, как показано здесь. После изменений настроек ядра не забудьте пересобрать ядро.
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 ...
, отобразит больше информации о драйвере:
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 также необходимо собрать в ядре.
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
Firmware
Необходима iwlwifi-3945-ucode-15.32.2.9.tgz прошивка (firmware) (или новее). Она находится в пакете sys-kernel/linux-firmware.
root #
emerge --ask sys-kernel/linux-firmware
Имена сетевых устройств
Имена сетевых устройств, как их предоставляет ядро, 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
Смотрите также
- wifi — руководство для других wifi сетевых устройств
- wpa_supplicant — a wifi supplicant to handle network authentication.
- упрвление сетью — утилиты для управления доступом в интернет