{"id":5255,"date":"2018-08-06T20:16:30","date_gmt":"2018-08-06T18:16:30","guid":{"rendered":"https:\/\/pi3g.com\/?p=5255"},"modified":"2018-08-06T22:02:34","modified_gmt":"2018-08-06T20:02:34","slug":"wifi-channel-13-14-on-alpine-linux-aka-i-cant-connect-to-my-router-aka-crda-configuration","status":"publish","type":"post","link":"https:\/\/pi3g.com\/de\/wifi-channel-13-14-on-alpine-linux-aka-i-cant-connect-to-my-router-aka-crda-configuration\/","title":{"rendered":"WiFi Channel 13 &amp; 14 auf Alpine Linux aka ich kann mich nicht mit meinem Router verbinden aka crda Konfiguration"},"content":{"rendered":"<p><a href=\"https:\/\/pi3g.com\/wp-content\/uploads\/2018\/08\/wireless-router.png\"><img loading=\"lazy\" decoding=\"async\" width=\"240\" height=\"180\" title=\"Drahtlos-Router\" style=\"border: 0px currentcolor; border-image: none; display: inline; background-image: none;\" alt=\"Drahtlos-Router\" src=\"https:\/\/pi3g.com\/wp-content\/uploads\/2018\/08\/wireless-router_thumb.png\" border=\"0\"><\/a><\/p>\n<h1>Zusammenfassung<\/h1>\n<p>Bei der Entwicklung eines eingebetteten, schreibgesch\u00fctzten Testsystems f\u00fcr die Modifikation eines Pi Zero W WLAN-Ports, die wir f\u00fcr einen Kunden durchgef\u00fchrt haben, stie\u00df ich auf ein interessantes Problem.<\/p>\n<p><strong>Der Pi Zero W verbindet sich pl\u00f6tzlich nicht mehr mit unserem Router.<\/strong><\/p>\n<p>Nach einigen Nachforschungen ist es mir gelungen, die Ursache zu finden und zu beheben. <\/p>\n<h1>Der Grund daf\u00fcr: WLAN-Regelungsbereiche<\/h1>\n<p>In verschiedenen L\u00e4ndern stehen unterschiedliche WiFi-\"Kan\u00e4le\" (= Frequenzen) zur Verf\u00fcgung.&nbsp; <\/p>\n<p>Wikipedia bietet einen guten \u00dcberblick:<\/p>\n<p><a title=\"https:\/\/en.wikipedia.org\/wiki\/List_of_WLAN_channels#2.4_GHz_(802.11b\/g\/n)\" href=\"https:\/\/en.wikipedia.org\/wiki\/List_of_WLAN_channels#2.4_GHz_(802.11b\/g\/n)\">https:\/\/en.wikipedia.org\/wiki\/List_of_WLAN_channels#2.4_GHz_(802.11b\/g\/n)<\/a><\/p>\n<p>Die 2,4-GHz-Kan\u00e4le 12 und 13 sind in den USA nicht verf\u00fcgbar, in den meisten anderen L\u00e4ndern jedoch schon.<\/p>\n<p>Wenn Sie Ihre WLAN-Ger\u00e4te \/ Raspberry Pi's auf den Standardeinstellungen belassen, gehen sie davon aus, dass sie keine Verbindung zu diesen Kan\u00e4len herstellen d\u00fcrfen. Sie haben keine M\u00f6glichkeit zu wissen, wo sie sich befinden, bis Sie es ihnen sagen, und w\u00e4hlen daher in Ihrem Interesse die sichere Option \"weltweit\".<\/p>\n<p>Wenn Ihr Router hingegen auf Kanal 12 oder 13 konfiguriert ist, kann Ihr Raspberry Pi Zero W (oder jeder andere Pi, auch der Pi 3 B+) Ihren Router nicht sehen.<\/p>\n<h2><\/h2>\n<h2>Aber ich habe meinen Router nicht f\u00fcr die Verwendung dieses Kanals eingerichtet.<\/h2>\n<p>Ich auch nicht. Bis etwa 4 Uhr morgens funktionierte alles einwandfrei - dann beschloss der Router pl\u00f6tzlich, auf diesen Kanal umzuschalten, da es dort weniger St\u00f6rungen durch die Nachbarn gibt.<\/p>\n<p>Es kann sein, dass Ihr Router pl\u00f6tzlich umschaltet und Sie sich dann mit einem schwierigen Problem konfrontiert sehen.<\/p>\n<h2><\/h2>\n<h2>Wie kann ich feststellen, ob dies mein Problem ist?<\/h2>\n<p>Verwenden Sie ein WLAN-Scan-Tool. <\/p>\n<p>Ich verwende inSSIDer f\u00fcr Home. Leider scheint es nicht mehr kostenlos zu sein, aber es gibt Alternativen.<\/p>\n<p><a href=\"https:\/\/pi3g.com\/wp-content\/uploads\/2018\/08\/image.png\"><img loading=\"lazy\" decoding=\"async\" width=\"779\" height=\"291\" title=\"Bild\" style=\"display: inline; background-image: none;\" alt=\"Bild\" src=\"https:\/\/pi3g.com\/wp-content\/uploads\/2018\/08\/image_thumb.png\" border=\"0\"><\/a><\/p>\n<p>Wie Sie auf diesem Screenshot sehen k\u00f6nnen, verwendet unser Netzwerk Kan\u00e4le <strong>13 <\/strong>und 9 (da es sich um ein 802.11 n-Netz handelt, das Kanalb\u00fcndelung f\u00fcr zwei 20 MHz breite Kan\u00e4le verwendet). <\/p>\n<p>Kanal 13 ist in den USA nicht verf\u00fcgbar und daher auch nicht standardm\u00e4\u00dfig auf dem Raspberry Pi.<\/p>\n<p><\/p>\n<h1>Die L\u00f6sung: CRDA<\/h1>\n<p>Sie m\u00fcssen einige Pakete installieren und sie entsprechend einrichten, um das WiFi-Land einzustellen.<\/p>\n<p>Unter Raspbian ist dies sehr einfach und unkompliziert, da alle notwendigen Pakete f\u00fcr Sie vorinstalliert sind. <\/p>\n<p>Verwenden Sie sudo raspi-config, um das WiFi-Land einzustellen.<\/p>\n<p>Bei Alpine Linux ist etwas mehr Arbeit n\u00f6tig. In diesem Blogpost f\u00fchre ich Sie Schritt f\u00fcr Schritt durch das Programm, um Ihnen mitzuteilen, was ich gelernt habe und wof\u00fcr ich etwa einen ganzen Tag Arbeit gebraucht habe. Hoffentlich werden Sie in 20 Minuten oder weniger fertig sein.<\/p>\n<p>Es wird weitere Blog-Beitr\u00e4ge \u00fcber Alpine Linux auf dem Raspberry Pi geben. Im Moment konzentrieren wir uns auf dieses spezielle Problem der WiFi-Verbindung f\u00fcr europ\u00e4ische B\u00fcrger.<\/p>\n<p><\/p>\n<h2>Ausf\u00fchren als root<\/h2>\n<p>Im folgenden Tutorium gehe ich davon aus, dass Sie die Operationen als Benutzer <strong>Wurzel<\/strong>.<\/p>\n<p>Wenn Sie nicht Root sind, werden Sie Root, wenn es angebracht ist.<\/p>\n<p><\/p>\n<h2>Ein Hinweis auf das RAM-only-Dateisystem von Alpine<\/h2>\n<p>Alpine Linux hat den gro\u00dfen Vorteil, dass es komplett schreibgesch\u00fctzt von Ihrer SD-Karte l\u00e4uft. Das bedeutet zum Beispiel, dass Sie den Raspberry Pi w\u00e4hrend des Betriebs ausstecken k\u00f6nnen, ohne dass das Dateisystem besch\u00e4digt wird. <\/p>\n<p>Nat\u00fcrlich muss es eine M\u00f6glichkeit geben, Ihre \u00c4nderungen w\u00e4hrend der Entwicklung auf das Basissystem anzuwenden.<\/p>\n<p>Der Befehl lautet: <\/p>\n<blockquote>\n<p><strong>lbu commit -d<\/strong><\/p>\n<\/blockquote>\n<p>Wichtig: lbu commit <strong>brauchen k\u00f6nnte <\/strong>eingerichtet werden, um zu speichern <strong>bestimmte Unterverzeichnisse <\/strong>die ge\u00e4ndert werden (unter Verwendung von lbu include - siehe den unten stehenden Link f\u00fcr Details).<\/p>\n<p>Weitere Einzelheiten finden Sie auf der folgenden Seite:<\/p>\n<ul>\n<li><a href=\"https:\/\/wiki.alpinelinux.org\/wiki\/Alpine_local_backup\">https:\/\/wiki.alpinelinux.org\/wiki\/Alpine_local_backup<\/a><\/li>\n<\/ul>\n<p><\/p>\n<h2>Repositories einrichten<\/h2>\n<p>Hinweis: Standardm\u00e4\u00dfig ist auf Alpine Linux nur vi installiert. Wenn Sie nano hinzuf\u00fcgen m\u00f6chten, verwenden Sie den folgenden Befehl:<\/p>\n<blockquote>\n<p><strong>apk nano hinzuf\u00fcgen<\/strong><\/p>\n<\/blockquote>\n<p>Bearbeiten Sie die Repositories (wechseln Sie vi mit nano, wenn Sie es installiert haben):<\/p>\n<blockquote>\n<p><strong>vi \/etc\/apk\/repositories<\/strong><\/p>\n<\/blockquote>\n<p>F\u00fcgen Sie Folgendes hinzu bzw. ersetzen Sie es (f\u00fcr weitere Informationen lesen Sie den Kommentar am Ende des Textes):<\/p>\n<blockquote>\n<p><em>\/media\/mmcblk0p1\/apks<br \/>\n<\/em><a href=\"http:\/\/dl-3.alpinelinux.org\/alpine\/edge\/testing\"><em>http:\/\/dl-3.alpinelinux.org\/alpine\/edge\/testing<\/em><\/a><br \/><em><br \/>\n<\/em><a href=\"http:\/\/dl-3.alpinelinux.org\/alpine\/edge\/main\"><em>http:\/\/dl-3.alpinelinux.org\/alpine\/edge\/main<\/em><\/a><br \/><em><br \/>\n<\/em><a href=\"http:\/\/dl-3.alpinelinux.org\/alpine\/edge\/community\"><em>http:\/\/dl-3.alpinelinux.org\/alpine\/edge\/community<\/em><\/a><\/p>\n<\/blockquote>\n<p>Alle drei Edge-Repositories sind erforderlich, da sich verschiedene Pakete in unterschiedlichen Repositories befinden.<\/p>\n<p><\/p>\n<h2>Installieren Sie die erforderlichen Pakete<\/h2>\n<p>F\u00fchren Sie den folgenden Befehl aus:<\/p>\n<blockquote>\n<p><strong>apk hinzuf\u00fcgen wireless-regdb crda iw<\/strong><\/p>\n<\/blockquote>\n<p>Erl\u00e4uterung:<\/p>\n<ul>\n<li><strong>wireless-regdb <\/strong>enth\u00e4lt die Bin\u00e4rdateien der drahtlosen Regulierungsdatenbank. <\/li>\n<li><strong>crda <\/strong>ist das Userspace-Tool, das die regulatorischen Informationen f\u00fcr den Kernel aktualisiert<\/li>\n<li><strong>iw <\/strong>sind Dienstprogramme f\u00fcr die Drahtloskonfiguration, mit denen Sie die Regulierungsdom\u00e4ne (Land) einstellen k\u00f6nnen<\/li>\n<\/ul>\n<p><\/p>\n<h2>Aktuellen Regelungsbereich pr\u00fcfen<\/h2>\n<p>Laufen:<\/p>\n<blockquote>\n<p><strong>iw reg get<\/strong><\/p>\n<\/blockquote>\n<p>Dies zeigt die aktuelle Dom\u00e4ne an (h\u00f6chstwahrscheinlich Land 00: DFS-UNSET). Hier ist ein Bildschirmfoto von dem, was wir anstreben (in unserem Fall DE f\u00fcr Deutschland):<\/p>\n<p><a href=\"https:\/\/pi3g.com\/wp-content\/uploads\/2018\/08\/image-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"751\" height=\"209\" title=\"Bild\" style=\"display: inline; background-image: none;\" alt=\"Bild\" src=\"https:\/\/pi3g.com\/wp-content\/uploads\/2018\/08\/image_thumb-1.png\" border=\"0\"><\/a><\/p>\n<p><\/p>\n<h2>mdev-Regeln bearbeiten<\/h2>\n<p>Im Folgenden ist die Position des neuen Eintrags sehr wichtig - er muss sich ganz oben befinden, genau <strong>vor <\/strong>die Zeile $MODALIAS. Andernfalls wird dies nicht funktionieren!<\/p>\n<blockquote>\n<p><strong>vi \/etc\/mdev.conf<\/strong><\/p>\n<\/blockquote>\n<p>f\u00fcgen Sie die folgende neue Zeile direkt vor der Zeile $MODALIAS ein:<\/p>\n<blockquote>\n<p><em>$COUNTRY=.. root:root 0660 *\/sbin\/crda<\/em><\/p>\n<\/blockquote>\n<p>Hier ist ein Bildschirmfoto der bearbeiteten Datei:<\/p>\n<p><a href=\"https:\/\/pi3g.com\/wp-content\/uploads\/2018\/08\/image-2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"756\" height=\"311\" title=\"Bild\" style=\"display: inline; background-image: none;\" alt=\"Bild\" src=\"https:\/\/pi3g.com\/wp-content\/uploads\/2018\/08\/image_thumb-2.png\" border=\"0\"><\/a><\/p>\n<p>Referenz: <\/p>\n<ul>\n<li><a href=\"http:\/\/lists.alpinelinux.org\/alpine-devel\/5092.html\">http:\/\/lists.alpinelinux.org\/alpine-devel\/5092.html<\/a><\/li>\n<li><a href=\"https:\/\/blog.w1r3.net\/2018\/02\/11\/getting-crda-regdb-working-on-alpine.html\">https:\/\/blog.w1r3.net\/2018\/02\/11\/getting-crda-regdb-working-on-alpine.html<\/a><\/li>\n<ul>\n<li> (leider wird nicht erw\u00e4hnt, wo die neue mdev.conf-Zeile zu finden ist - ich musste mehrere Stunden lang debuggen!)<\/li>\n<\/ul>\n<\/ul>\n<p><\/p>\n<h2>Neuen modprobe.d-Eintrag erstellen<\/h2>\n<p>Laufen:<\/p>\n<blockquote>\n<p><strong>ber\u00fchren Sie \/etc\/modprobe.d\/cfg80211.conf<\/strong><\/p>\n<p><strong>vi \/etc\/modprobe.d\/cfg80211.conf<\/strong><\/p>\n<\/blockquote>\n<p>F\u00fcgen Sie die folgende Zeile ein (ggf. DE an Ihr Land anpassen - Zweibuchstabencode):<\/p>\n<blockquote>\n<p><em>Optionen cfg80211 ieee80211_regdom=DE<\/em><\/p>\n<\/blockquote>\n<p>Speichern Sie die Datei. <\/p>\n<p>Diese Datei stellt sicher, dass Ihr Regelungsbereich beim Booten korrekt angewendet wird.<\/p>\n<p>Referenz:<\/p>\n<ul>\n<li><a title=\"https:\/\/linux.die.net\/man\/8\/crda\" href=\"https:\/\/linux.die.net\/man\/8\/crda\">https:\/\/linux.die.net\/man\/8\/crda<\/a> - besagt, dass der L\u00e4ndercode ein ISO\/IEC 3166 alpha2-L\u00e4ndercode ist<\/li>\n<\/ul>\n<h2><\/h2>\n<h2>Alternativ: iw<\/h2>\n<p>Alternativ k\u00f6nnen Sie den Regelungsbereich mit iw festlegen (m\u00f6glicherweise zus\u00e4tzlich zu den oben genannten Ma\u00dfnahmen erforderlich? Mein Test zeigt jedoch, dass dies nicht funktioniert.)<\/p>\n<blockquote>\n<p>iw reg set DE<\/p>\n<\/blockquote>\n<p>Hier ist ein Bildschirmfoto:<\/p>\n<p><a href=\"https:\/\/pi3g.com\/wp-content\/uploads\/2018\/08\/image-3.png\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"407\" title=\"Bild\" style=\"display: inline; background-image: none;\" alt=\"Bild\" src=\"https:\/\/pi3g.com\/wp-content\/uploads\/2018\/08\/image_thumb-3.png\" border=\"0\"><\/a><\/p>\n<h2>Fertigstellen<\/h2>\n<p>Ausf\u00fchren (falls erforderlich):<\/p>\n<blockquote>\n<p>lbu commit -d<\/p>\n<\/blockquote>\n<p>Starten Sie neu. Ihr Pi Zero W sollte sich nun auch mit Kanal 12 und Kanal 13 verbinden k\u00f6nnen!<\/p>\n<p><\/p>\n<h1>Eine Anmerkung zu crda<\/h1>\n<p>crda ist <strong>nicht <\/strong>soll von Ihnen, dem Benutzer, ausgef\u00fchrt werden. Es wird als Hilfsanwendung von iw ausgef\u00fchrt.<\/p>\n<p>Es folgt ein grober Hack, der bei der Fehlersuche funktionieren \"k\u00f6nnte\". Manchmal funktioniert er. Selten, eigentlich.<\/p>\n<blockquote>\n<p><strong>iw reg set DE ; COUNTRY=DE \/sbin\/crda<\/strong><\/p>\n<\/blockquote>\n<p>Oft schlug es bei mir mit der folgenden Ausgabe fehl:<\/p>\n<blockquote>\n<p><em>Regulierungsbereich konnte nicht festgelegt werden -22<\/em><\/p>\n<\/blockquote>\n<p>Selbst jetzt, nachdem ich das Land richtig einstellen kann, schl\u00e4gt dieser Befehl meistens fehl ... Ich nehme an, dass es an den Race Conditions liegt.<\/p>\n<p>Soweit ich es verstanden habe, <strong>iw <\/strong>setzt bestimmte Umgebungsvariablen, die wiederum mdev veranlassen, \/sbin\/crda auszuf\u00fchren, um diese \u00c4nderungen an den Kernel zu senden.<\/p>\n<p>iw ist nicht das einzige Tool, das den Regulierungsbereich f\u00fcr den Kernel \u00e4ndern kann; wpa-supplicant soll ebenfalls dazu in der Lage sein. <\/p>\n<p>Und wie Sie gesehen haben, ist cfg80211.conf auch dazu in der Lage.<\/p>\n<p>Die Datei regulatory.bin wird installiert in <strong>\/usr\/lib\/crda<\/strong>.<\/p>\n<p>Sie ben\u00f6tigen das Paket crda-dev NICHT f\u00fcr die in diesem Blogbeitrag beschriebene L\u00f6sung.<\/p>\n<p><\/p>\n<h2>Ein Hinweis auf die Repository-Datei<\/h2>\n<p>Wenn Sie die zu Beginn hinzugef\u00fcgten Repository-Quellen entfernen\/auskommentieren, \"verschwinden\" Pakete aus Ihrem System. <\/p>\n<p>Ich werde dies weiter untersuchen m\u00fcssen, da ich gerade erst begonnen habe, mit Alpine Linux zu arbeiten.<\/p>\n<p>Entfernen Sie vorerst keine Repository-Zeilen f\u00fcr Pakete, die Sie auf Ihrem System installiert haben.<\/p>","protected":false},"excerpt":{"rendered":"<p>Zusammenfassung W\u00e4hrend der Entwicklung eines eingebetteten, schreibgesch\u00fctzten Testsystems f\u00fcr die Modifikation eines Pi Zero W WLAN-Ports, die wir f\u00fcr einen Kunden durchgef\u00fchrt haben, stie\u00df ich auf ein interessantes Problem. Der Pi Zero W stellte pl\u00f6tzlich die Verbindung zu unserem Router ein. Nach einigen Nachforschungen gelang es mir, die Ursache zu finden und zu beheben. Der Grund: WLAN regulatory domains In...<\/p>","protected":false},"author":830,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_links_to":"","_links_to_target":""},"categories":[401,400],"tags":[],"class_list":["post-5255","post","type-post","status-publish","format-standard","hentry","category-alpine-linux","category-raspberry-pi-embedded-development"],"_links":{"self":[{"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/posts\/5255","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/users\/830"}],"replies":[{"embeddable":true,"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/comments?post=5255"}],"version-history":[{"count":4,"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/posts\/5255\/revisions"}],"predecessor-version":[{"id":5267,"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/posts\/5255\/revisions\/5267"}],"wp:attachment":[{"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/media?parent=5255"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/categories?post=5255"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/tags?post=5255"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}