Salut à tous.

Étant au Canada depuis quelques mois, j'ai réinstallé Fedora 17 sur mon PC. Tout marchait bien jusqu'à ce que je retourne en France : en effet, le Wifi de ma Freebox Française est configurée sur le canal 13 (canal interdit aux USA et au Canada). Or, lors de l'installation, mon PC a décrété tout seul qu'étant donné que je me situais au Canada, je ne devais pas pouvoir voir les canaux 12 et 13.

Bref, j'ai trouvé une astuce sur Internet qui consiste à modifier temporairement le "regulatory domain" (qui permet d'activer les canaux 12 et 13) :
# iw reg set EU
Sauf que c'est temporaire : à chaque reboot, je dois me taper cette commande pour que le Wifi marche. Comment faire pour le rendre permanent ?

J'ai bien essayé de modifier le fichier /etc/wpa_supplicant/wpa_supplicant.conf en ajoutant la ligne "country=EU" mais ça ne marche pas. J'ai essayé aussi de créer le fichier /etc/modprobe.d/options avec comme contenu
options cfg80211 ieee80211_regdom=EU
mais rien n'y fait.
J'aimerais, si possible, éviter d'utiliser la "technique du rc.local" et utiliser un fichier de configuration, s'il en existe un. Mais j'imagine qu'il en existe un, sinon comment le système fait pour savoir sur quelles fréquences scanner ?...

Quelqu'un a une idée ?
Je pense que la solution du fichier dans modprobe.d est tout indiquée, retente en ajoutant un .conf au nom de ton fichier options, sinon il est pas pris en compte me semble.
All files underneath the /etc/modprobe.d directory which end with the .conf extension specify those
options as required.
madko wrote:retente en ajoutant un .conf au nom de ton fichier options, sinon il est pas pris en compte me semble.
C'est bien ça. Merci beaucoup madko !
9 jours plus tard
Bon, problème pas si résolu que ça en fait : maintenant que j'ai modifié les canaux accessibles, mon PC plante régulièrement. En fait, au bout de ~1h d'utilisation, X freeze. J'ai plus qu'à killer ma session ou rebooter (je peux accéder aux tty).

La raison pour laquelle je pense que ce problème de freeze est lié au Wifi, c'est déjà parce que ça ne me le faisait pas avant ; mais aussi parce que mon /var/log/messages se remplit de ces messages toutes les 3 secondes :
[root@valhost ~]# tail -n 20 /var/log/messages
Jan  1 17:06:38 valhost kernel: [  749.316956] cfg80211:   (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Jan  1 17:06:38 valhost kernel: [  749.316989] cfg80211: Calling CRDA for country: 97
Jan  1 17:06:42 valhost kernel: [  752.464084] cfg80211: Calling CRDA to update world regulatory domain
Jan  1 17:06:42 valhost kernel: [  752.469156] cfg80211: World regulatory domain updated:
Jan  1 17:06:42 valhost kernel: [  752.469164] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
Jan  1 17:06:42 valhost kernel: [  752.469171] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Jan  1 17:06:42 valhost kernel: [  752.469177] cfg80211:   (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
Jan  1 17:06:42 valhost kernel: [  752.469182] cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
Jan  1 17:06:42 valhost kernel: [  752.469187] cfg80211:   (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Jan  1 17:06:42 valhost kernel: [  752.469192] cfg80211:   (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Jan  1 17:06:42 valhost kernel: [  752.469225] cfg80211: Calling CRDA for country: 97
Jan  1 17:06:45 valhost kernel: [  755.616197] cfg80211: Calling CRDA to update world regulatory domain
Jan  1 17:06:45 valhost kernel: [  755.620970] cfg80211: World regulatory domain updated:
Jan  1 17:06:45 valhost kernel: [  755.620977] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
Jan  1 17:06:45 valhost kernel: [  755.620984] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Jan  1 17:06:45 valhost kernel: [  755.620989] cfg80211:   (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
Jan  1 17:06:45 valhost kernel: [  755.620994] cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
Jan  1 17:06:45 valhost kernel: [  755.620999] cfg80211:   (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Jan  1 17:06:45 valhost kernel: [  755.621029] cfg80211:   (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Jan  1 17:06:45 valhost kernel: [  755.621058] cfg80211: Calling CRDA for country: 97
Ce qui fait que mes fichiers de log sont obèses (~20Mio) :
[root@valhost ~]# ls -alh /var/log/ | grep message
-rw-------.  1 root   root    18M Jan  1 17:08 messages
-rw-------.  1 root   root   1.7M Dec  9 20:35 messages-20121209
-rw-------.  1 root   root   1.5M Dec 16 19:35 messages-20121216
-rw-------.  1 root   root   2.3M Dec 23 12:32 messages-20121223
-rw-------.  1 root   root    13M Dec 31 13:27 messages-20121231
Chose étrange aussi, mais je pense que c'est lié à l'utilisation de la bande des 5GHz (donc c'est pas si étrange que ça) : j'ai 32 canaux utilisables par ma carte Wifi :
[root@valhost ~]# iwlist wlan0 channel
wlan0     32 channels in total; available frequencies :
          Channel 01 : 2.412 GHz
          Channel 02 : 2.417 GHz
          Channel 03 : 2.422 GHz
          Channel 04 : 2.427 GHz
          Channel 05 : 2.432 GHz
          Channel 06 : 2.437 GHz
          Channel 07 : 2.442 GHz
          Channel 08 : 2.447 GHz
          Channel 09 : 2.452 GHz
          Channel 10 : 2.457 GHz
          Channel 11 : 2.462 GHz
          Channel 12 : 2.467 GHz
          Channel 13 : 2.472 GHz
          Channel 36 : 5.18 GHz
          Channel 40 : 5.2 GHz
          Channel 44 : 5.22 GHz
          Channel 48 : 5.24 GHz
          Channel 52 : 5.26 GHz
          Channel 56 : 5.28 GHz
          Channel 60 : 5.3 GHz
          Channel 64 : 5.32 GHz
          Channel 100 : 5.5 GHz
          Channel 104 : 5.52 GHz
          Channel 108 : 5.54 GHz
          Channel 112 : 5.56 GHz
          Channel 116 : 5.58 GHz
          Channel 120 : 5.6 GHz
          Channel 124 : 5.62 GHz
          Channel 128 : 5.64 GHz
          Channel 132 : 5.66 GHz
          Channel 136 : 5.68 GHz
          Channel 140 : 5.7 GHz
          Current Frequency:2.472 GHz (Channel 13)
Y aurait-il un moyen pour arrêter ce flood de messages ?

À noter que ces messages floodent aussi quand le Wifi est désactivé (avec ifdown par exemple).
Et le paquet crda est bien installé?
Tu en as bien beaucoup, des canaux, sur mon ordi portable, acheté en France, je n'en ai que 13, tous dans la plage des 2.4GHz
[root@host ~]# iwlist wlan0 channel
wlan0     13 channels in total; available frequencies :
          Channel 01 : 2.412 GHz
          Channel 02 : 2.417 GHz
          Channel 03 : 2.422 GHz
          Channel 04 : 2.427 GHz
          Channel 05 : 2.432 GHz
          Channel 06 : 2.437 GHz
          Channel 07 : 2.442 GHz
          Channel 08 : 2.447 GHz
          Channel 09 : 2.452 GHz
          Channel 10 : 2.457 GHz
          Channel 11 : 2.462 GHz
          Channel 12 : 2.467 GHz
          Channel 13 : 2.472 GHz
[root@host ~]#
Je n'y connais pas grand chose, mais c'est peut-être cette pléthore de canaux qui pose problème...
madko wrote:Et le paquet crda est bien installé?
[root@valhost ~]# yum info crda
Loaded plugins: langpacks, presto, refresh-packagekit
Installed Packages
Name        : crda
Arch        : x86_64
Version     : 1.1.2_2011.04.28
Release     : 2.fc17
Size        : 31 k
Repo        : installed
From repo   : koji-override-0
Summary     : Regulatory compliance daemon for 802.11 wireless networking
URL         : http://www.linuxwireless.org/en/developers/Regulatory/CRDA
License     : ISC
Description : CRDA acts as the udev helper for communication between the kernel
            : and userspace for regulatory compliance. It relies on nl80211
            : for communication. CRDA is intended to be run only through udev
            : communication from the kernel.
Ouais.
chepioq wrote:Tu en as bien beaucoup, des canaux, sur mon ordi portable, acheté en France, je n'en ai que 13, tous dans la plage des 2.4GHz
[root@host ~]# iwlist wlan0 channel
wlan0     13 channels in total; available frequencies :
          Channel 01 : 2.412 GHz
          Channel 02 : 2.417 GHz
          Channel 03 : 2.422 GHz
          Channel 04 : 2.427 GHz
          Channel 05 : 2.432 GHz
          Channel 06 : 2.437 GHz
          Channel 07 : 2.442 GHz
          Channel 08 : 2.447 GHz
          Channel 09 : 2.452 GHz
          Channel 10 : 2.457 GHz
          Channel 11 : 2.462 GHz
          Channel 12 : 2.467 GHz
          Channel 13 : 2.472 GHz
[root@host ~]#
Je n'y connais pas grand chose, mais c'est peut-être cette pléthore de canaux qui pose problème...
Je ne pense pas. La bande des 5GHz n'est disponible qu'avec certaines cartes Wifi. Peut-être que ta carte ne la supporte pas.

On peut pas demander au kernel d'utiliser une certaine plage de fréquences via la ligne de boot (au lieu d'utiliser un fichier de conf) ?
Je vais voir si les erreurs sont toujours là lorsque je commente la ligne du fichier de conf...
Bon, en virant la ligne que j'ai ajouté dans wpa_supplicant.conf, j'ai plus les erreurs qui floodent mon log. Par contre, je dois me taper un
# iw reg set FR
à chaque boot pour pouvoir capter les canaux 12 et 13.

Avec le iw reg set FR, je n'ai pas de flood dans le log non plus. C'est donc vraiment cette ligne qui pose problème.

Par contre, le freeze de mon PC, je pense pas que ça soit dû à ça mais plutôt à Google Music Manager.

Je vais essayer de chercher pourquoi ça me floode autant mes logs cette daube.
En attendant, si quelqu'un a une idée, je suis preneur 😉
Bah l'idée serait d'utiliser rc.local pour lancer cette commande qui t'est indispensable.
Ou encore (je viens de rechercher) en passant par systemd, en créant un service ou en en modifiant 1 (je pense à /usr/lib/systemd/system/NetworkManager.service ) et en y ajoutant ta commande dans la partie [Service] : Chez moi il est de cette forme :
[Unit]
Description=Network Manager
After=syslog.target
Wants=network.target
Before=network.target

[Service]
Type=dbus
BusName=org.freedesktop.NetworkManager
ExecStart=/usr/sbin/NetworkManager --no-daemon
# Suppress stderr to eliminate duplicated messages in syslog. NM calls openlog()
# with LOG_PERROR when run in foreground. But systemd redirects stderr to
# syslog by default, which results in logging each message twice.
StandardError=null

[Install]
WantedBy=multi-user.target
Alias=dbus-org.freedesktop.NetworkManager.service
il deviendrai
[Unit]
Description=Network Manager
After=syslog.target
Wants=network.target
Before=network.target

[Service]
Type=dbus
BusName=org.freedesktop.NetworkManager
ExecStart=/usr/sbin/NetworkManager --no-daemon ; /usr/sbin/iw reg set FR
# Suppress stderr to eliminate duplicated messages in syslog. NM calls openlog()
# with LOG_PERROR when run in foreground. But systemd redirects stderr to
# syslog by default, which results in logging each message twice.
StandardError=null

[Install]
WantedBy=multi-user.target
Alias=dbus-org.freedesktop.NetworkManager.service
Mais à chaque mise à jour de systemd, cette configuration risque d'être perdue.
Merci bien pour vos réponses, mais justement j'aurais voulu éviter d'utiliser un script au démarrage...
Je vais essayer de trouver une réponse sur le Web, mais si je ne trouve rien je vais devoir passer par là...

Merci quand même !
Valdes wrote:Merci bien pour vos réponses, mais justement j'aurais voulu éviter d'utiliser un script au démarrage...
Je vais essayer de trouver une réponse sur le Web, mais si je ne trouve rien je vais devoir passer par là...

Merci quand même !
Mais j'y pense tout à coup, tu as un ssd, tu as donc déjà un fichier rc.local dans /etc/rc.d

Tu n'as qu'à rajouter ta commande dans ce fichier...
Ya un rapport entre ssd et rc.local? J'ai un ssd je n'ai pas ce fichier

Suffit de le créer sinon, ce fichier /etc/rc.d/rc.local, et d'activer le bon service qui s'en charge:
systemctl restart rc-local.service
Au prochain boot ça devrait passer.
ah oui ok je suis passé par udev pour faire ça.
madko wrote:ah oui ok je suis passé par udev pour faire ça.
Juste pour ma culture personnelle, comment as-tu fait ?
j'ai crée un fichier /etc/udev/rules.d/99-ssd.rules avec la ligne suivante:
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="noop"
Normalement l'attribut queue/rotational devrait indiquer un SSD.
madko wrote:j'ai crée un fichier /etc/udev/rules.d/99-ssd.rules avec la ligne suivante:
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="noop"
Normalement l'attribut queue/rotational devrait indiquer un SSD.
Franchement, pour moi c'est du chinois, je viens de regarder le man udev, c'est vraiment pas trop clair...

Y-aurait-il un bon tuto quelque part ?...
http://www.reactivated.net/writing_udev_rules.html je crois que c'est ce que j'avais lu
On dévie un peu du sujet, mais j'avais cru comprendre que le wifi et la partie qui gérait le changement de region (via crda) passait par udev. Mais sur ma fedora 18 je ne vois rien en ce sens...

@Valdes: question qu'on aurait peut être du poser plus tôt, mais ça ne fait que contourner le problème, pourquoi ne pas changer le canal de ta box?