Les iPhones plus récents diffuseront un SSID en mode point d'accès en tant que tel:
My Name\342\\\200\\\231\\s iPhone
J'ai observé ce SSID dans l'interface graphique.
Lorsque j'attrape le SSID via la ligne de commande:
$ sudo iwlist wlan0 scan | grep ESSID
> My Name\xE52\x80\x99s iPhone
Dans l'iPhone, il apparaît comme:
My Name's iPhone
Si, dans wpa_supplicant.conf, j'entre:
network={
ssid="My Name's iPhone"
psk="my_passcode"
}
Le Raspberry Pi ne se connectera pas au point d'accès iPhone.
Cependant, si, en wpa_supplicant.conf
, j'entre:
network={
ssid="My Name\342\\\200\\\231\s iPhone"
psk="my_passcode"
}
J'obtiens une erreur dans la ligne de commande.
$ sudo ifdown wlan0
$ sudo ifup wlan0
> wpa_supplicant: /sbin/wpa_supplicant daemon failed to start
> run-parts: /etc/network/if-pre-up/wpasupplicant exited with return code 1
> Failed to bring up wlan0
Via l'interface graphique, j'obtiens l'erreur "Argument invalide".
Si, dans wpa_supplicant.conf
J'entre:
network={
ssid="My Name\xE52\x80\x99s iPhone"
psk="my_passcode"
}
Ensuite, raspbian ne s'y connectera pas et se connectera à un réseau de priorité inférieure (supposons que les priorités soient correctement définies, que j'ai testées).
SSID
l'iPhone? Je ne veux pas que tout le monde voie "Joe Bloggs iPhone" de toute façon et mette en place un sensSSID
.SSID
? Le «\» est un caractère d'échappement NIX normal. Je suppose que cela dérive d'Unicode (peut-être U + 2019)\xE52\x80\x99
.Réponses:
L'invite iPhone comprend le caractère Unicode U + 2019 "guillemet droit simple". Ceci est valable (si très gênant).
Il est assez facile d'inclure des caractères Unicode dans les chaînes. Ce qui suit ferait écho à l'
bash
invite de commandes.La documentation (très sommaire) de
man wpa_supplicant.conf
ne semble pas préciser comment lessid
paramètre est interprété. Vous pouvez essayer le formulaire ci$'My Name\u2019s iPhone'
- dessus et voir si cela aide.REMARQUE La chaîne
"My Name\xE52\x80\x99s iPhone"
de votre question n'est pas Unicode valide (il y a un caractère en excès5
) mais cela PEUT fonctionner si vous le corrigez.la source
J'ai regardé comment wpa_supplicant analyse le fichier de configuration, et il semble qu'il extrait les octets exacts entre
ssid="
le dernier et le dernier"
. Unicode échappé (\ u) et caractères non ascii échappés (\ x) ne fonctionneront pas.Dans votre cas, vous devrez spécifier votre SSID comme ceci:
Qui ressemblerait à ceci dans un éditeur hexadécimal:
Si vous utilisez la sortie de
iw
(qui échappe aux caractères non ascii), vous pouvez utiliser Python pour interpréter et écrire les octets exacts dans un fichier:Notez que si vous souhaitez vous connecter à un point d'accès avec le SSID ,
A so called "SSID"
il travaillera pour entrer comme ceci:ssid="A so called "SSID""
. En effet, wpa_supplicant recherchera les octets entre le premier et le dernier devis sur une ligne.Une limitation que j'ai trouvée est que wpa_supplicant.conf n'acceptera pas les caractères de nouvelle ligne (0x0A) dans le SSID, même si cela est techniquement possible.
la source
ssid="\U0001F4A9"
puis je l'ai écrit avecfile.write(ssid.encode("UTF-8"))
. Lisez lessid
fichier avecxxd
et copiez les octets sans espaces. La ligne dans ma configuration se lit maintenantssid=f09f92a9
.Vous pouvez prendre le ssid, dans ce cas "l'iPhone de mon nom" (sans les guillemets), et le convertir en hexadécimal en utilisant https://www.browserling.com/tools/text-to-hex .
Prenez le résultat, dans ce cas 4d 79 20 4e 61 6d 65 e2 80 99 73 20 69 50 68 6f 6e 65 et supprimez les espaces.
Ou en bash
Mettez à jour /etc/wpa_supplicant/wpa_supplicant.conf:
Quittez ensuite l'éditeur, et dans le terminal:
Si vous n'avez aucune erreur, essayez de vous connecter. Devrait marcher. Assurez-vous simplement que votre valeur hexadécimale SSID n'est PAS entre guillemets et ne contient pas d'espaces.
À votre santé!
la source
Vous devez renommer votre iPhone pour supprimer tous les espaces ... cela peut être fait dans Paramètres> Général> À propos.
Une fois que vous avez choisi un nom sans espaces, vous pourrez vous connecter à un point chaud sans problèmes.
la source