Headless PiでWifi用のSDカードを準備する


158

Wi-Fi経由でPiをSSHで接続する必要がありますが、モデルAボード(USBハブを使用することは不可能です)であり、イーサネットがないため、Piをセキュリティで保護されたWi-Fiネットワークに接続するように構成できません。SDカードをラップトップに接続し、wifi構成情報を含むファイルを編集して、Piが起動時に自動的にネットワークに接続し、SSHで制御できるようにします。この回答のおかげで、ヘッドレスシステムでSSHを有効にする方法を知っています

編集。私は周りを探していましたが/etc/network/interfaces、SDカードが私のPCにある間にファイルを編集して、そこにすべてのネットワークssid、psk、およびwlan0のものを入れることができるかどうか疑問に思っています。これは機能しますか?ありがとう


あなたはそこにかなりの苦境に直面しています。一時的にUSB LANを使用してSSHS経由で接続することをお勧めします。それらにはほとんどのドライバーが含まれています。WiFiを挿入し、この回答に従ってPiでWiFiをセットアップします。病棟を再起動したら、LANのプラグを抜き、Wifiを使用して起動します。数分以内に自動接続されるはずです。
ピョートルクラ

2
低コストのセットアップ方法は、USBシリアルアダプターを使用してGPIOヘッダーのシリアルに接続することです。これを行うためにsshを有効にする必要さえありません
ジョンラルーイ

代替方法[1]については私の回答[こちら] [1]を参照してください:raspberrypi.stackexchange.com/a/31397/30719
memebrain

回答:


239

ここにはいくつかの素晴らしい答えがありますが、多くは時代遅れです。2016年5月以来、Raspbianはwifiの詳細をからコピーし/boot/wpa_supplicant.conf/etc/wpa_supplicant/wpa_supplicant.conf、ワイヤレスネットワークアクセスを自動的に構成することができました。

wpa_supplicant.confファイルが/ boot /ディレクトリに配置されている場合、これは次回のシステム起動時に/ etc / wpa_supplicant /ディレクトリに移動され、ネットワーク設定が上書きされます。これにより、ブートパーティションのみを表示できるWindowsまたはその他のマシンからWifi設定をカードにプリロードできます。

Raspbianの最新アップデート-Raspberry Pi、2016-05-13

/bootパーティションは、SDカードリーダーを備えたどのコンピューターからもアクセスできるため、wifiの設定ははるかに簡単になりました。

典型的なwpa_supplicant.confファイルは次のとおりです。

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=«your_ISO-3166-1_two-letter_country_code»

network={
    ssid="«your_SSID»"
    psk="«your_PSK»"
    key_mgmt=WPA-PSK
}

置き換え«your_ISO-3166-1_two-letter_country_code»をあなたとISOの国コード(たとえば、CAカナダ用)、«your_SSID»ワイヤレスアクセスポイント名として«your_PSK»あなたの無線LANのパスワードを使用して。

WiFiパスワードをプレーンテキストで保存したくない場合は、wpa_passphraseユーティリティを使用してハッシュ化されたパスワードを保存できます。

wpa_passphrase «your_SSID»

ユーティリティはパスワードの入力を求め、16進数のハッシュ値を返します。このハッシュされたパスワードは、引用符なしでに保存されることに注意してください/boot/wpa_supplicant.conf。例:

psk=b76dc68cb76bfea7232e32634f859ca760cd8abeee318a346b51d3bde00b8965

で作成されたファイルにはcountryctrl_interfaceおよびupdate_config必要であることに注意してください/boot。これらが存在しない場合、システムはネットワークに接続しません。上記のプロセスを繰り返して、省略を修正できます。

このプロセスは、2018年11月リリース時点でRaspbianとRaspbian Liteの両方でテストされています。


さらに、ヘッドレスRaspberry PiにSecure Shell(SSH)アクセスを追加することもできます。セキュリティ上の理由から、RaspbianではSSHはデフォルト無効になっています。次のファイルを作成して有効にできます/boot/ssh

ヘッドレスセットアップの場合、SDカードのブートパーティションに「ssh」という名前のファイルを拡張子なしで配置することにより、SSHを有効にできます。Piが起動すると、「ssh」ファイルを探します。見つかった場合、SSHが有効になり、ファイルが削除されます。ファイルの内容は重要ではありません。テキストを含むことも、まったく含まないこともできます。

SSH(Secure Shell)-Raspberry Piドキュメント

SSHアクセスを有効にする場合は、できるだけ早く標準piユーザーのパスワードを変更する必要があります。デフォルトのパスワード(raspberry)は広く知られているため、パスワードを変更するまで、Raspberry Piはネットワーク上のすべてのユーザーに対して事実上開かれています。passwdコマンドでこれを行うことができます。


2
このソリューションには2つの制限があります(2016-09-23画像でテスト済み):1.ファイルはLinuxスタイルの行末でフォーマットする必要があります(CR LFではなくLF)。2. Raspberry Pi 3のRaspbian light画像では機能しませんでした。
user215406516年

1
@ user2154065 1. 右下の「Dos \ Windows」を右クリックし、「UNIX / OSX形式」を選択して、Notepad ++でファイルをLFに変換します。2. wpasupplicantパッケージはおそらくRaspbian Liteに含まれていません。
Hydraxan14

1
これで、いくつかのRaspbian Liteマシンを実行しましたが、コメントが間違っていたと確信しています。wpa_supplicantは含まれているか、簡単にインストールできます。
スクルース

5
@kleinfreundはパスフレーズをクリアテキストに含めません。「wpa_passphrase SSID」(SSIDを使用)を実行し、プロンプトが表示されたらパスフレーズを入力します。出力をwpa_supplicant.confファイルにコピーし、クリアテキストを含む行を削除し、ハッシュバージョンのみを残します。(別のシステムでこれを行うと、Pi用にmicro SDをセットアップするときにファイルを事前に用意できます。)
ピーターハンセン

4
@scruss -あなたの答えは、ほぼ正しい、この行を追加してくださいwpa_supplicant.conf上記のサンプル: ctrl_interface=/var/run/wpa_supplicant 私はちょうどRaspbianストレッチライトを使用して新しいゼロWにしようとした
ctekse

23

特定の指示:

の内容/etc/network/interfaces

auto lo
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet manual
    wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
    post-up ifdown eth0
iface default inet dhcp

の内容/etc/wpa_supplicant/wpa_supplicant.conf

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid="YOUR_SSID_HERE"
    psk="YOUR_SECRET_PASSPHRASE_HERE"
    id_str="SOME_DESCRIPTIVE_NAME"
}

正直。与えられたコンテンツを持つこれらの2つのファイルは、すべてのpiで使用するものです。彼らは起動し、すぐに私の無線ルーターに接続します。DHCPネゴシエーションはアドレスを提供し、ルーターはホスト名を適切なIPアドレスに解決します。を使用して各PIに適切な名前を付けてください/etc/hostname

interfaces末尾のファイルに奇妙さiface default...が必要です。そうしないと、ワイヤレスWPA接続が起動しません。

wpa_supplicant.confファイルが複数持つことができるnetwork={で出来上がりそれをプラグイン...私は仕事に私のパイを取るために使用され、あまりにもエントリを、それはあまりにも自動的にそこに接続し、作業者の設定しかし、もう少し複雑でした。ここに例として含まれているので、wpa_supplicant.confファイルに以下を追加/置換します。

network={
    ssid="THE_OFFICE"
    scan_ssid=1
    key_mgmt=WPA-EAP
    eap=PEAP
    identity="WORK_USERNAME"
    password="WORK_PASSWORD"
    phase1="peaplabel=0"
    phase2="auth=MSCHAPV2"
    id_str="SOME_DESCRIPTIVE_NAME"
}

基本的に、wpa_supplicant.confファイルをスキャンし、一致する最初のネットワークに接続します。とても便利な。この方法でも、自動的に「オープン」ネットワークに接続することができます。賢いことではありませんが、実行可能です。


ヘッドレスとして静的IPも必要であり、IPアドレスを知らなくてもSSHを使用できません。私は現在id_str="home"wpa_supplicant.confとiface home inet staticinterfacesファイルに(これの下の静的IP情報)を持っています、これは私に静的IPを与えますが、これがそれを設定する最良の方法であるかどうかはわかりません起動時に「デバイス「ホーム」が見つかりません」というエラーが表示されます)。
11chubby11

1
dyn.com(またはdyndns.com)を使用して適切な名前からpiにアクセスできるようにし、ddclientを使用して名前を適切なアドレスに自動的に設定します。代わりに、ルーターを使用して静的dhcpアドレスを指定すると、はるかに便利です。また、upnpcdを使用して動的にupnp設定をセットアップし、ネットワークの外部からシステムに接続できるようにします。現在は静的IPは不要で、どこにいても自動的にセットアップされます。(ifaceスタンザはオプションとしてlo / eth0 / wlan0 / defaultのみを持つことができ、 'home'は機能しません)
lornix

/etc/network/interfacesSDブートに追加するにはどうすればよいですか?それをどこかに置くだけでコピーされますか?
-denislexic

基本的にlornixによる回答に対するコメント-私はそのソリューションをうまく使いました-コメントを書く担当者がいないためです。ルートファイルシステムを編集するには、最初のブートパーティションではなく、2番目のパーティションをマウントする必要があります。私がやった:sudo mount / dev / sdc2 / mntその後、/ mntルートの下にあるファイル、つまり/mnt/etc/wpa_supplicant/wpa_supplicant.confと/ mnt / etc / network / interfacesと/ mnt / etc / hostnameを編集できました(再びsudoを使用)。完了したら、/ mnt階層からcdし、sudo umount / mntを実行します。その後、SDカードをRπに挿入して起動します。これにはLinuxマシンが必要であることに注意してください
Ketil Malde

10

2016年11月以降、セキュリティ上の理由からSSHは標準のRaspbianイメージでデフォルトで無効になっています。

それを再度有効にするには、どちらかと呼ばれる空のファイルを作成しsshたりssh.txt、SDカードの起動フォルダに(FAT32パーティションにアクセスの窓から)

wifi設定を事前に構成するには、wpa_supplicant.confそこに含まれるファイルを作成します。

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={ 
ssid="MySSID" 
psk="MyPassword" 
}

これらのファイルは両方ともウィンドウで作成でき、メモ帳を使用して編集できます。

次に、SDカードをpiに挿入すると、すぐにSSHで接続できるはずです。


セットアップが大幅に簡素化されたことを確認できて嬉しいです!すばらしい回答です!
-lornix

3

RASPBIAN STRETCHのとして、あなたは含める必要がありますctrl_interfaceし、update_configwpa_supplicant.conf

起動時にsshでwifiを取得するには、SDカードで次の簡単な手順を実行します。

  1. touch /<sd mount point>/boot/ssh
  2. nano <sd mount point>/boot/wpa_supplicant.conf

内容で:

country=AU  #omit if US
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
    ssid="YourNetworkSSID-1"
    psk="passwordOne"
}
  1. SDカードをアンマウントし、piを入れて、piを起動します

2

interfacesファイルを使用できます。すべてのネットワーク情報をロードし、サムドライブに入れて、RPiを再起動します。RPiが設定を取得し、追加のハードウェアやモニターを必要とせずにWiFiをセットアップします。

その後、SSHでPiに接続し、VNCをインストールしてGUIを取得できます。あなたはそれのためのステップの命令によるステップをしたい場合は、チェックアウトOption 3: Connect with WiFihttp://www.dexterindustries.com/BrickPi/getting-started/using-the-pi/


これを機能させることができませんでした。カントは、wifiのこの設定方法に関するインターネット上の他の情報を見つけます。
-11チャビー

これを自動化するために使用されるスクリプトについて言及するのを忘れました。ここにあります
カラン

2

また、Raspberry pi(Raspberry Piヘッドレスセットアップ)に事前設定済みのWiFi接続を備えたRasbianを自動的にインストールするSDカードを設定することもできます。これにより、最初の起動時にpiを電源に接続することができます。

ステップ1:Noobsのダウンロードhttps://www.raspberrypi.org/downloads/で 最新のNoobsソフトウェア(バージョンオフラインおよびネットワークインストール)を入手して解凍します。

代替:ファイルへの直接リンク:http : //downloads.raspberrypi.org/NOOBS_latest

執筆時点では、最新のNOOBSバージョンは1.4.0です。

ステップ2:ヘッドレス構成 os /ディレクトリで、rasbian /以外のすべてのフォルダーを削除します。実際、Data_Partitionという名前の他のフォルダーが1つだけ必要です。

rasbian /フォルダーで、flavours.jsonファイルを編集します。以下が表示されるはずです。

{
  "flavours": [
    {
      "name": "Raspbian - Boot to Scratch",
      "description": "A version of Raspbian that boots straight into Scratch",
      "supported_hex_revisions": "2,3,4,5,6,7,8,9,d,e,f,10,11,12,14,19,1040,1041"
    },
    {
      "name": "Raspbian",
      "description": "A Debian wheezy port, optimised for the Raspberry Pi",
      "supported_hex_revisions": "2,3,4,5,6,7,8,9,d,e,f,10,11,12,14,19,1040,1041"
    }
  ]
}

「Raspbian – Boot to Scratch」部分を削除します。ファイルは最後に次のようになります。

{
  "flavours": [
    {
      "name": "Raspbian",
      "description": "A Debian wheezy port, optimised for the Raspberry Pi",
      "supported_hex_revisions": "2,3,4,5,6,7,8,9,d,e,f,10,11,12,14,19,1040,1041"
    }
  ]
}

ルートNOOBSディレクトリのrecovery.cmdlineファイルを編集し、引数リストにsilentinstallを追加します。ファイルは最後に次のようになります。

runinstaller quiet vt.cur_default=1 elevator=deadline silentinstall

ステップ4(オプション):カスタムキーボードレイアウトと言語の構成 デフォルトのキーボードレイアウト(us)および/またはデフォルトの言語(デフォルトは 'us')を変更する場合は、リカバリの引数リストにlang = XX keyboard = XXを追加します.cmdlineファイル(XXはご使用の言語とキーボードコードに置き換える必要があります。fr、deなどがあります。デフォルトはusです)。

ファイルは最後に次のようになります。

runinstaller quiet vt.cur_default=1 elevator=deadline silentinstall lang=fr keyboard=fr

ステップ5(オプション):Wifi Noobs Configの構成は、Rasbianのインストール直後にいくつかのファイルをコピー/貼り付けするツールです。他の多くのものの中でも、このツールを使用すると、PiでWifiを事前設定できます。それにもかかわらず、これは、使用するwifiドングルがRaspbianによって直接サポートされていることを前提としています。

まず最初に、GitHubでNoobs Configをダウンロードします(https://github.com/procount/noobsconfig/archive/master.zip

次に、noobsconfig.zipを解凍し、以下を実行します。

  • Noobsファイルのルートディレクトリに「customise.sh」をコピーします

  • 「os / Rasbian / partition_setup.sh」をNoobsファイルの「os / Rasbian /」ディレクトリにコピーします。

  • 「os / Rasbian /」の下に「wifi」という名前のフォルダーを作成します

  • 「Examples / Rasbian / wifi / wifi / wpa_supplicant.conf」を
    Noobsファイルの「os / Rasbian / wifi /」ディレクトリにコピーします。

  • 「Examples / Rasbian / wifi / Raspbian_root.txt」を
    Noobsファイルの「os / Rasbian /」ディレクトリにコピーします。

最後に、wpa_supplicant.confでwifi ssidとpsk(パスワード)を構成します。

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
ssid="MyNetwork"
psk="MyPassword"
}

ステップ5(オプション):デフォルトのパスワードを変更する このステップがオプションである場合でも、Rasbianセットアップのデフォルトのパスワードを変更することを強くお勧めします。

os / Rasbian / os.jsonファイルを編集します。次のようになります。

{
  "name": "Raspbian",
  "version": "wheezy",
  "release_date": "2015-02-16",
  "kernel": "3.18",
  "description": "A community-created port of Debian wheezy, optimised for the Raspberry Pi",
  "url": "http://www.raspbian.org/",
  "username": "pi",
  "password": "raspberry",
  "supported_hex_revisions": "2,3,4,5,6,7,8,9,d,e,f,10,11,12,14,19,1040,1041"
}

9行目のデフォルトのパスワードを変更しましょう。

ステップ5:SDカードのファイルをコピーし、Raspberry piを起動しますFAT形式のSDカードにファイルをコピー/貼り付けます。

ステップ6:起動して接続 する数分後にSDカードで起動し(SDカードによってはインストールプロセスに30分以上かかることがあります)、SSH経由でPiに接続します。

そのこと...


これらの手順は有望に見えますが、NOOBS v1.9.2の時点では、os / Raspbianディレクトリにflavours.jsonファイルはありません。編集する主な理由は代替バージョンを削除することだったので、不要な場合は単にそのステップをスキップしても安全だと思います。
natevw

2

Raspbian StretchおよびRetroPieの新しいバージョンでは、ヘッドレスセットアップのプロセスがわずかに変更されました。

ブートディレクトリ内...

touch ssh

nano wpa_supplicant.conf

これをwpa_supplicant.confに追加します

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
network={
    ssid="YOUR_NETWORK_NAME"
    psk="YOUR_PASSWORD"
    key_mgmt=WPA-PSK
}

SDカードをアンマウントし、起動のためにPIに挿入します

ちょっと待ってpiのIPアドレス見つけてください

piにssh

ssh pi@pi-ip-address

デフォルトのパスワードはraspberryです


1

wpa_supplicant.confsdcard上のファイルを編集する必要があります(配布バージョン内/etcまたは/etc/wpa_supplicant配布バージョンによって異なります)。ファイルの形式はここで説明されています:http : //linux.die.net/man/5/wpa_supplicant.conf


ただし、ワイヤレスがドロップアウトした場合、基本設定を使用して自動再接続することはありません。手動モードと追加の構成ファイルを使用したローミングが必要です。
ピョートルクラ

まあセットアップするのに十分なはずですよね?ネットワークが利用可能な場合、wpa_supplicantの起動時に確実に接続するため。また、ネットワークが失われた場合、wpa_supplicantは自動的に再接続するはずだと思います。
hogliux

最後のコメントに加えて、最新のdebianでラズベリーモデルAでこのメソッドを自分で使用したことを付け加えます。
hogliux

を使用する場合、WPAサプリカントは再接続しません。接続するにはSSIDをAUTO使用STATICROAMINGて定義する必要があります。これは設定が少し難しいです。
ピョートルクラ

1

シェルスクリプトツールを作成しました(残念ながらLinuxでのみ実行されます)。最新のRaspbianイメージのダウンロード、イメージのアンパック、wi-fiおよびイーサネット設定(ユーザー提供)のイメージへの埋め込み、再パックのプロセス全体を自動化します。画像をSDカードに焼き付けます。PiをSDカードで起動すると、すぐにネットワークに接続されます。このスクリプトには、ネットワーク上で新しく構成されたPiを検索する機能もあります。

Wi-FiドングルをPiに直接接続し、RaspImgConfig.shスクリプトを使用してRaspbianイメージにwi-fi資格情報を埋め込み、カードにイメージを書き込むことができます。モニター、マウス、キーボードは必要ありません。

ツールの使用に関するYouTubeビデオ:https : //youtu.be/WdYb1L2WzjM

よろしく、Subhajit Ghosh


-2

パスワードで保護されたwifiで動作するようにpiを設定し、/ bootパーティションの設定ファイルを使用して、piを起動せずにsshを自動的に有効にすることができます。

これをAIYに使用し、nmapを使用してネットワークをスキャンしてpiを見つけました。

そこからpiに接続するだけです。


少なくとも、必要なファイル名とその内容、および詳細情報へのリンクを説明する必要があります。
スティーブロビラード

-3

これらのすべての答えには、RPiモデルAにはイーサネットもWi-Fiもありませんので、外部ドングルを取得しない限り、sshを介してRPiに接続できないという点が欠落していると思います。 ..最善の策は、テレビで直接使用するか、ヘッダーのシリアルポートを介して使用するか、または前述したように、wifi用の外部ドングルを入手することです。


5
彼がすでに使用していることを暗示していると思います。OPは、何らかのアダプターがないとワイヤレスネットワークに接続できないことを認識していると考えられます。
衝動
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.