Как я могу получить (и научиться осмысленно интерпретировать) очень низкоуровневую диагностику подсистемы Wifi на моем Ubuntu 10.04 (Lucid) Система Linux?

#linux #wifi #ubuntu-10.04 #linux-device-driver #diagnostics

#linux #wifi #ubuntu-10.04 #linux-device-driver #диагностика

Вопрос:

Я покопался в NetworkManager (а оттуда в dbus и т. Д.) И Определил используемый мной драйвер беспроводной сети (iwlagn); но я уверен, что я могу узнать больше, если бы только знал, где искать.

С благодарностью будут оценены указатели на учебные пособия, ссылки (on- или off-line) или инструкции.

(Если люди считают, что об этом лучше спросить на serverfault.com , или superuser.com , просто дай мне знать.)

Если это представляет интерес, вот что sudo lspci -vvxxx -s 04:0.0 возвращается:

 04:00.0 Network controller: Intel Corporation Wireless WiFi Link 5100
    Subsystem: Intel Corporation Device 1201
    Control: I/O- Mem  BusMaster  SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx 
    Status: Cap  66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
    Latency: 0, Cache Line Size: 64 bytes
    Interrupt: pin A routed to IRQ 32
    Region 0: Memory at f2c00000 (64-bit, non-prefetchable) [size=8K]
    Capabilities: [c8] Power Management version 3
        Flags: PMEClk- DSI  D1- D2- AuxCurrent=0mA PME(D0 ,D1-,D2-,D3hot ,D3cold )
        Status: D0 PME-Enable- DSel=0 DScale=0 PME-
    Capabilities: [d0] Message Signalled Interrupts: Mask- 64bit  Queue=0/0 Enable 
        Address: 00000000fee0100c  Data: 41b1
    Capabilities: [e0] Express (v1) Endpoint, MSI 00
        DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <512ns, L1 unlimited
            ExtTag- AttnBtn- AttnInd- PwrInd- RBE  FLReset 
        DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
            RlxdOrd  ExtTag- PhantFunc- AuxPwr- NoSnoop  FLReset-
            MaxPayload 128 bytes, MaxReadReq 128 bytes
        DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr  TransPend-
        LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <128ns, L1 <32us
            ClockPM  Suprise- LLActRep- BwNot-
        LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk 
            ExtSynch- ClockPM  AutWidDis- BWInt- AutBWInt-
        LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk  DLActive- BWMgmt- ABWMgmt-
    Capabilities: [100] Advanced Error Reporting <?>
    Capabilities: [140] Device Serial Number 04-ed-3b-ff-ff-65-1e-00
    Kernel driver in use: iwlagn
    Kernel modules: iwlagn
00: 86 80 32 42 06 04 10 00 00 00 80 02 10 00 00 00
10: 04 00 c0 f2 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 86 80 01 12
30: 00 00 00 00 c8 00 00 00 00 00 00 00 0a 01 00 00
40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 01 d0 23 c8 00 00 00 0d
d0: 05 e0 81 00 0c 10 e0 fe 00 00 00 00 b1 41 00 00
e0: 10 00 01 00 c0 8e 00 10 10 08 10 00 11 9c 06 00
f0: 40 01 11 10 00 00 00 00 00 00 00 00 00 00 00 00
  

Ответ №1:

Прежде всего, вы должны включить отладочный вывод стека 802.11 в ядре.

Во-вторых, вы должны скомпилировать свое ядро (или просто модуль драйвера) с включенным выводом отладки ( CONFIG_IWLWIFI_DEBUG ). Вот выдержка из файла Kconfig:

   To set a value, simply echo an 8-byte hex value to the same file:

      % echo 0x43fff > /sys/class/net/wlan0/device/debug_level

  You can find the list of debug mask values in:
      drivers/net/wireless/iwlwifi/iwl-debug.h
  

Также есть некоторая поддержка DebugFS для iwlagn ( CONFIG_IWLWIFI_DEBUGFS ).

В-третьих, если вы используете WPA или 802.11i (вы должны), вы можете отключить NetworkManager и создать свой собственный конфигурационный файл для wpa_supplicant (ознакомьтесь с README, чтобы узнать, как это сделать). Затем вы можете запустить wpa_supplicant с -dd помощью переключателя, чтобы включить его отладочную информацию.

Комментарии:

1. Есть ли у вас какие-либо предложения о том, что я должен изучить / где я мог бы это сделать, чтобы лучше понять весь этот вывод отладки?

2. Я не знал о пакете wireless-tools, и это различные прекрасные инструменты: iwconfig, iwlist и т. Д. Сейчас я с восторгом смотрю на iwlist… Ух ты!

3. wireless.kernel.org это основной сайт, представляющий интерес. Вы также можете взглянуть на источники драйверов. Забудьте о пакете wireless-tools, он устарел! iw Вместо этого используйте инструмент: linuxwireless.org/en/users/Documentation/iw

4. Вот еще один отличный источник, который я раньше не видел: hpl.hp.com/personal/Jean_Tourrilhes/Linux /…

5. mac80211 больше похож на фреймворк драйвера устройства для беспроводных карт. Смотрите описание: linuxwireless.org/en/developers/Documentation/mac80211 Большинство современных драйверов беспроводной сети (включая iwlagn!) основаны на mac80211.