Perchè le altre distro verificano la posizione dello swithc WiFi, e PCLinuxOS con MATE non lo fa?

Ritratto di Sargon6

Questa volta non ho un problema con PCLinuxOS da sottoporre al forum, ma un mio problema personale, dovuto al fatto che a me, le cose, piace capirle.
Fra i vari PC su cui metto abitualmente le mani, c'è un vecchio Sony Vaio VGN-FE41M che ha lo switch della scheda WiFi che non funziona più, quindi è quasi sempre in posizione OFF.
Con altre distribuzioni di Linux, ciò è un problema, perché il fatto che l'interruttore hardware del WiFi sia in posizione OFF, fa si che eventuali penne WiFi USB, sebbene viste dal Sistema Operativo, siano di fatto inutilizzabili.
Poco tempo fa ho scoperto come aggirare il problema, ed ho cominciato ad applicarlo su tutti i S.O. che ho installato su quel portatile.

Qui
http://www.fedora-it.org/blog/sargon6/2015/03/15/disattivare-wifi-integrata
c'è un esempio di cosa devo fare per far andare su Internet Fedora XFCE installata sul Sony Vaio VGN-FE41M con switch WiFi danneggiato.

Sorprendentemente, mi sono accorto che PCLinuxOS con MATE, su quel PC, non ha nessun problema, e inserendo una pennetta WiFi nella porta USB, posso navigare disinteressandomi completamente sia delle condizioni in cui versa lo switch del WiFi, sia di blacklist varie.

I,l problema è che non capisco perchè le cose stanno così, e mi piacerebbe capirlo. Qualcuno ha idee?

Ritratto di Sargon6

Magari vi interessa consultare un po' di output...

[pclinuxosm@localhost ~]$ lsusb | grep -i net
Bus 005 Device 003: ID 0846:4260 NetGear, Inc. WG111v3 54 Mbps Wireless [realtek RTL8187B]
[pclinuxosm@localhost ~]$ lspci -knn | grep -A 2 -i net
06:00.0 Network controller [0280]: Intel Corporation PRO/Wireless 3945ABG [Golan] Network Connection [8086:4222] (rev 02)
Subsystem: Intel Corporation Device [8086:1051]
Kernel driver in use: iwl3945
--
0a:08.0 Ethernet controller [0200]: Intel Corporation PRO/100 VE Network Connection [8086:1092] (rev 02)
Subsystem: Sony Corporation Device [104d:81ef]
Kernel driver in use: e100
[pclinuxosm@localhost ~]$ lsmod | egrep -i "iwl3945|e100|rtl8187|wireless"
e100 26424 0
iwl3945 46949 0
mii 3260 1 e100
iwlegacy 39733 1 iwl3945
rtl8187 50736 0
mac80211 217997 3 iwl3945,iwlegacy,rtl8187
cfg80211 141803 4 iwl3945,iwlegacy,rtl8187,mac80211
eeprom_93cx6 1594 1 rtl8187
usbcore 121326 8 snd_usb_audio,snd_usbmidi_lib,rtl8187,uvcvideo,usbhid,ehci_hcd,uhci_hcd
[pclinuxosm@localhost ~]$ dmesg | egrep -i "iwl3945|e100|rtl8187|wireless"
Allocated new RAMDISK: 32e10000 - 333fdaa8
Move RAMDISK from 0000000037414000 - 0000000037a01aa7 to 32e10000 - 333fdaa7
ieee80211 phy0: hwaddr 00:22:3f:ee:42:9a, RTL8187BvE V0 + rtl8225z2, rfkill mask 2
rtl8187: Customer ID is 0x00
Registered led device: rtl8187-phy0::radio
Registered led device: rtl8187-phy0::tx
Registered led device: rtl8187-phy0::rx
rtl8187: wireless switch is on
usbcore: registered new interface driver rtl8187
iwl3945: Intel(R) PRO/Wireless 3945ABG/BG Network Connection driver for Linux, in-tree:s
iwl3945: Copyright(c) 2003-2011 Intel Corporation
e100: Intel(R) PRO/100 Network Driver, 3.5.24-k2-NAPI
e100: Copyright(c) 1999-2006 Intel Corporation
e100 0000:0a:08.0: enabling device (0000 -> 0003)
iwl3945 0000:06:00.0: Tunable channels: 13 802.11bg, 23 802.11a channels
iwl3945 0000:06:00.0: Detected Intel Wireless WiFi Link 3945ABG
iwl3945 0000:06:00.0: irq 45 for MSI/MSI-X
e100 0000:0a:08.0: eth0: addr 0xd2005000, irq 20, MAC addr 00:13:a9:87:b8:de
[pclinuxosm@localhost ~]$ dmesg | grep -i switch
Switching to clocksource hpet
Console: switching to colour frame buffer device 128x48
Switching to clocksource tsc
input: Lid Switch as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/input/input3
ACPI: Lid Switch [LID0]
Switching to clocksource hpet
rtl8187: wireless switch is on
[pclinuxosm@localhost ~]$ lshw -c network
WARNING: you should run this program as super-user.
*-network DISABLED
description: Wireless interface
product: PRO/Wireless 3945ABG [Golan] Network Connection
vendor: Intel Corporation
physical id: 0
bus info: pci@0000:06:00.0
logical name: wlan0
version: 02
serial: 00:19:d2:89:24:1b
width: 32 bits
clock: 33MHz
capabilities: bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=iwl3945 driverversion=3.4.70-pclos1 firmware=N/A latency=0 multicast=yes wireless=IEEE 802.11abg
resources: irq:45 memory:cc000000-cc000fff
*-usb:0
description: Wireless interface
product: NETGEAR WG111v3
vendor: Manufacturer_NETGEAR
physical id: 3
bus info: usb@5:3
logical name: wlan1
version: 2.00
serial: 00223FEE429A
capabilities: usb-2.00 ethernet physical wireless
configuration: broadcast=yes driver=rtl8187 driverversion=3.4.70-pclos1 firmware=N/A ip=192.168.1.6 maxpower=500mA multicast=yes speed=480Mbit/s wireless=IEEE 802.11bg
*-network
description: Ethernet interface
product: PRO/100 VE Network Connection
vendor: Intel Corporation
physical id: 8
bus info: pci@0000:0a:08.0
logical name: eth0
version: 02
serial: 00:13:a9:87:b8:de
size: 10Mbit/s
capacity: 100Mbit/s
width: 32 bits
clock: 33MHz
capabilities: bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=e100 driverversion=3.5.24-k2-NAPI duplex=half latency=64 maxlatency=56 mingnt=8 multicast=yes port=MII speed=10Mbit/s
resources: irq:20 memory:d2005000-d2005fff ioport:6000(size=64)
WARNING: output may be incomplete or inaccurate, you should run this program as super-user.
[pclinuxosm@localhost ~]$ ifconfig
eth0 Link encap:Ethernet IndirizzoHW 00:13:A9:87:B8:DE
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisioni:0 txqueuelen:1000
Byte RX:0 (0.0 b) Byte TX:0 (0.0 b)

lo Link encap:Loopback locale
indirizzo inet:127.0.0.1 Maschera:255.0.0.0
indirizzo inet6: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:2 errors:0 dropped:0 overruns:0 frame:0
TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
collisioni:0 txqueuelen:0
Byte RX:100 (100.0 b) Byte TX:100 (100.0 b)

wlan1 Link encap:Ethernet IndirizzoHW 00:22:3F:EE:42:9A
indirizzo inet:192.168.1.6 Bcast:192.168.1.255 Maschera:255.255.255.0
indirizzo inet6: fe80::222:3fff:feee:429a/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5 errors:0 dropped:0 overruns:0 frame:0
TX packets:26 errors:0 dropped:0 overruns:0 carrier:0
collisioni:0 txqueuelen:1000
Byte RX:860 (860.0 b) Byte TX:5843 (5.7 KiB)

[pclinuxosm@localhost ~]$ iwlist scan
wlan0 Failed to read scan data : Network is down

lo Interface doesn't support scanning.

eth0 Interface doesn't support scanning.

wlan1 Scan completed :
Cell 01 - Address: 9C:97:26:03:E7:8E
Channel:6
Frequency:2.437 GHz (Channel 6)
Quality=70/70 Signal level=-31 dBm
Encryption key:on
ESSID:"InfostradaWiFi-03E78E"
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s
24 Mb/s; 36 Mb/s; 54 Mb/s
Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 48 Mb/s
Mode:Master
Extra:tsf=0000000000000000
Extra: Last beacon: 6521ms ago
IE: Unknown: 0015496E666F737472616461576946692D303345373845
IE: Unknown: 010882848B962430486C
IE: Unknown: 030106
IE: Unknown: 2A0104
IE: Unknown: 2F0104
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : TKIP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
IE: Unknown: 32040C121860
IE: Unknown: 2D1A1C181BFFFF000000000000000000000000000000000000000000
IE: Unknown: 3D1606001300000000000000000000000000000000000000
IE: Unknown: DD990050F204104A00011010440001021041000100103B0001031047001017EC8BCFE612513DBDECAF1659D06DB81021000B546563686E69636F6C6F721023000E546563686E69636F6C6F72205447102400043538326E104200093133313956465247511054000800060050F204000110110012546563686E69636F6C6F722054473538326E100800020004103C0001011049000600372A000120
IE: Unknown: DD090010180202000C0000
IE: WPA Version 1
Group Cipher : TKIP
Pairwise Ciphers (1) : TKIP
Authentication Suites (1) : PSK
IE: Unknown: DD180050F2020101000003A4000027A4000042435E0062322F00

[pclinuxosm@localhost ~]$

Ritratto di footstep11

Per controllare gli switch hardware e software del wifi io utilizzo rfkill (molto piu' semplice delle istruzioni che dai nel link). Magari in mate viene lanciato al boot, per abilitarlo automaticamente.

Ciao, Mauro

Ritratto di Sargon6

footstep11 wrote:
Per controllare gli switch hardware e software del wifi io utilizzo rfkill (molto piu' semplice delle istruzioni che dai nel link). Magari in mate viene lanciato al boot, per abilitarlo automaticamente.

Ciao, Mauro


No, con MATE, rfkill nemmeno risulta fra le applicazioni installate di default... l'ho dovuto installare io per capire di cosa ti stessi parlando, e mi pare che anche non faccia l'azione da me riscontrata nemmeno su distro che lo installano di default.
Per esempio: qui
http://forum.ubuntu-it.org/viewtopic.php?f=9&t=586066#p4735482
spiego come ho risolto il problema con Linux Mint, la quale ha rfkill installata di default.
l'output del comando rfkill list per mint PRIMA dell'esecuzione della procedura, è esattamente il medesimo di PCLinuxOS con mate su cui NON ho eseguito la procedura, e che posto di seguito:

[pclinuxosm@localhost ~]$ rfkill list
0: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
1: phy1: Wireless LAN
Soft blocked: no
Hard blocked: yes
[pclinuxosm@localhost ~]$

Ritratto di footstep11

Cosa succede se dai il comando (da root):

# rfkill unblock all

Se funziona, allora puoi automatizzare la cosa mettendo la chiamata a questo semplice script (chiamalo come ti pare) qui sotto in rc.local

#!/bin/bash
# Script to toggle the wireless blocked/unblocked

# index no. of phy interface
IFACE=`rfkill list all | grep phy | cut -c 1`

# WiFi block state 0=active, 1=blocked
BLOCKED=`rfkill list all | grep -iA1 phy | grep -ic soft.*yes`

if [ $BLOCKED -eq 1 ]; then
rfkill unblock $IFACE
else
rfkill block $IFACE
fi

Ciao, Mauro

Ritratto di Sargon6

footstep11, prima di provare il tuo script, ho voluto verificare le conseguenze del comando rfkill impartito da terminale, con le varie opzioni.

Come distribuzioni "cavia", ho usato Linux Mint 64 bit con MATE (che ha il pacchetto rfkill installato di default), e PCLinuxOS 64 bit con MATE (che NON ha il pacchetto rfkill installato di default, ma io l'ho installato in un secondo tempo).

Ai fini della prova, ho ripristinato il file /etc/modprobe.d/blacklist.conf di Linux Mint alla situazione di default.

Le mie conclusioni sono le seguenti:
Linux Mint 64 bit con MATE: se inserisco le righe
# Disabilita Wifi Integrato
blacklist iwl3945

nel file
/etc/modprobe.d/blacklist.conf
con il comando rfkill block 0 (dove 0 è il numero corrispondente della periferica, secondo rfkill list) posso bloccare la pennetta WiFi USB, e con il comando rfkill block 0 la posso sbloccare.

Se rimuovo dalla blacklist iwl3945, al riavvio posso bloccare e sbloccare entrambe le schede WiFi, anche singolarmente, ma comunque la scheda WiFi USB non funziona.

PCLinuxOS 64 bit con MATE: NON ho fatto alcuna blacklist.
con il comando rfkill block X (dove X è il numero corrispondente della periferica, secondo rfkill list) posso bloccare la periferica WiFi a cui corrisponde X, e con il comando rfkill block X la posso sbloccare. In questo modo, agendo sulla pennetta WiFi USB tramite rfkill con gli opportuni parametri, posso attivarla e disattivarla, qualunque sia la situazione della scheda WiFi integrata.
Analogamente, agendo sulla scheda WiFi integrata tramite rfkill con gli opportuni parametri, posso attivarla e disattivarla, qualunque sia la situazione della scheda WiFi integrata.

[pclinuxosm@localhost ~]$ rfkill list
0: phy0: Wireless LAN
Soft blocked: no
Hard blocked: yes
[pclinuxosm@localhost ~]$ rfkill block 0
[pclinuxosm@localhost ~]$ rfkill list
0: phy0: Wireless LAN
Soft blocked: yes
Hard blocked: yes
[pclinuxosm@localhost ~]$ rfkill unblock 0
[pclinuxosm@localhost ~]$ rfkill list
0: phy0: Wireless LAN
Soft blocked: no
Hard blocked: yes
[pclinuxosm@localhost ~]$ rfkill list
0: phy0: Wireless LAN
Soft blocked: no
Hard blocked: yes
1: phy1: Wireless LAN
Soft blocked: no
Hard blocked: no
[pclinuxosm@localhost ~]$ rfkill block all
[pclinuxosm@localhost ~]$ rfkill list
0: phy0: Wireless LAN
Soft blocked: yes
Hard blocked: yes
1: phy1: Wireless LAN
Soft blocked: yes
Hard blocked: no
[pclinuxosm@localhost ~]$ rfkill unblock 1
[pclinuxosm@localhost ~]$ rfkill list
0: phy0: Wireless LAN
Soft blocked: yes
Hard blocked: yes
1: phy1: Wireless LAN
Soft blocked: no
Hard blocked: no
[pclinuxosm@localhost ~]$

Ritratto di francofait

tenere aggiornato il SO sarebbe quanto basta , mate 1.8.2 gestisce i dispositivi wi-fi locali senza il benche minimo problema. Ed è presente disponibile anche nelle repositry di PcLinuxOS.