Siapkan kartu SD untuk Wifi di Headless Pi

158

Saya perlu SSH Pi saya lebih dari wifi tetapi karena itu adalah model papan A (menggunakan hub usb tidak mungkin - pernah) dan saya tidak memiliki ethernet, saya tidak dapat mengkonfigurasi Pi untuk terhubung ke jaringan wifi aman saya. Saya ingin kartu SD dicolokkan ke laptop saya dan saya ingin mengedit file dengan informasi konfigurasi wifi di dalamnya sehingga Pi saya akan terhubung ke jaringan saya secara otomatis saat start-up sehingga saya kemudian dapat SSH untuk mendapatkan kontrol. Saya tahu cara mengaktifkan SSH pada sistem tanpa kepala berkat jawaban ini .

Edit . Saya sudah mencari-cari dan saya bertanya-tanya apakah saya bisa mengedit file /etc/network/interfacessementara kartu SD di PC saya dan memasukkan semua hal-hal jaringan ssid, psk dan wlan0 di dalamnya. Akankah ini berhasil? Terima kasih

11chubby11
sumber
Anda dihadapkan dengan kesulitan di sana. Saya akan menyarankan menggunakan LAN USB sementara untuk terhubung melalui SSHS. Sebagian besar driver termasuk untuk mereka. Masukkan WiFi Anda dan kemudian ikuti jawaban ini untuk mengatur WiFi Anda pada Pi. Setelah Anda mem-boot ulang, cabut LAN dan boot menggunakan Wifi. Seharusnya terhubung secara otomatis dalam beberapa menit.
Piotr Kula
2
Cara berbiaya rendah untuk mengaturnya adalah dengan menggunakan adaptor serial usb untuk menyambung ke serial pada header GPIO. Anda bahkan tidak perlu mengaktifkan ssh untuk melakukan ini
John La Rooy
lihat jawaban saya [di sini] [1] untuk metode alternatif [1]: raspberrypi.stackexchange.com/a/31397/30719
memebrain

Jawaban:

239

Ada beberapa jawaban bagus di sini, tetapi banyak yang ketinggalan zaman. Sejak Mei 2016, Raspbian telah dapat menyalin rincian wifi dari /boot/wpa_supplicant.confke /etc/wpa_supplicant/wpa_supplicant.confuntuk secara otomatis mengkonfigurasi akses jaringan nirkabel:

Jika file wpa_supplicant.conf ditempatkan di direktori / boot /, ini akan dipindahkan ke direktori / etc / wpa_supplicant / saat berikutnya sistem di-boot, menimpa pengaturan jaringan; ini memungkinkan konfigurasi Wifi untuk dimuat ke kartu dari Windows atau mesin lain yang hanya dapat melihat partisi boot.

- Pembaruan terbaru untuk Raspbian - Raspberry Pi , 2016-05-13

Karena /bootpartisi ini dapat diakses oleh komputer mana pun dengan pembaca kartu SD, konfigurasi wifi kini jauh lebih sederhana.

File wpa_supplicant.conf yang khas adalah:

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
}

Ganti «your_ISO-3166-1_two-letter_country_code» dengan Kode Negara ISO Anda (seperti CAuntuk Kanada), «your_SSID» dengan nama titik akses nirkabel Anda dan «your_PSK» dengan kata sandi wifi Anda.

Jika Anda tidak ingin menyimpan kata sandi wifi Anda dalam teks biasa, Anda dapat menggunakan wpa_passphraseutilitas ini untuk menyimpan kata sandi hash:

wpa_passphrase «your_SSID»

Utilitas akan meminta kata sandi, dan akan mengembalikan nilai hash heksadesimal. Perhatikan bahwa kata sandi hash ini disimpan tanpa tanda kutip di /boot/wpa_supplicant.conf, misalnya:

psk=b76dc68cb76bfea7232e32634f859ca760cd8abeee318a346b51d3bde00b8965

Perhatikan bahwa country, ctrl_interfacedan update_configbaris diperlukan dalam file sebagaimana dibuat di /boot: jika tidak ada, sistem tidak akan terhubung ke jaringan. Proses di atas dapat diulang untuk memperbaiki kelalaian.

Proses ini telah diuji dengan Raspbian dan Raspbian Lite pada rilis November 2018.


Selain itu, Anda mungkin ingin menambahkan akses Secure Shell (SSH) ke Raspberry Pi tanpa kepala Anda. SSH dinonaktifkan pada Raspbian secara default untuk alasan keamanan. Anda dapat mengaktifkannya dengan membuat file bernama /boot/ssh:

Untuk pengaturan tanpa kepala, SSH dapat diaktifkan dengan menempatkan file bernama 'ssh', tanpa ekstensi apa pun, ke partisi boot kartu SD. Ketika Pi mem-boot, ia mencari file 'ssh'; jika ditemukan, SSH diaktifkan dan kemudian file dihapus. Konten file tidak masalah: bisa berisi teks atau tidak sama sekali.

- SSH (Secure Shell) - Dokumentasi Raspberry Pi

Jika Anda mengaktifkan akses SSH, Anda harus segera mengganti kata sandi pengguna pi standar . Karena kata sandi default ( raspberry ) dikenal luas, Raspberry Pi Anda secara efektif terbuka untuk semua orang di jaringan Anda sampai Anda mengubah kata sandi. Anda dapat melakukan ini dengan passwdperintah.

scruss
sumber
2
Ada dua batasan untuk solusi ini (diuji dengan gambar 2016-09-23): 1. File harus diformat dengan ujung garis gaya Linux (LF, bukan CR LF). 2. Itu tidak berfungsi dengan gambar cahaya Raspbian di Raspberry Pi 3.
user2154065
1
@ user2154065 1. File rahasia ke LF dengan Notepad ++ dengan mengklik kanan pada "Dos \ Windows" di kanan bawah dan memilih "format UNIX / OSX". 2. wpasupplicantPaket mungkin tidak termasuk dalam Raspbian Lite.
Hydraxan14
1
Sekarang saya telah menjalankan beberapa mesin Raspbian Lite, saya cukup yakin komentar saya salah: wpa_supplicant disertakan, atau dapat dengan mudah diinstal.
scruss
5
@kleinfreund tidak menyertakan frasa sandi dalam teks yang jelas. Jalankan "wpa_passphrase SSID" (dengan SSID Anda) dan masukkan frasa sandi saat diminta. Salin output ke file wpa_supplicant.conf Anda, hapus baris yang menyertakan cleartext dan hanya menyisakan versi hash. (Anda dapat melakukan ini pada sistem yang berbeda sehingga Anda memiliki file sebelumnya ketika mengatur micro SD Anda untuk Pi.)
Peter Hansen
4
@scruss - jawaban Anda hampir benar, tambahkan baris ini ke wpa_supplicant.confsampel di atas: ctrl_interface=/var/run/wpa_supplicant Saya baru saja mencoba Zero W baru dengan Raspbian Strech Lite
ctekse
23

Beberapa Instruksi spesifik:

Isi dari /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

Isi dari /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"
}

Jujur. Dua file itu, dengan konten yang diberikan adalah apa yang saya gunakan pada semua pi saya. Mereka boot dan langsung terhubung ke router nirkabel saya. Negosiasi DHCP memberikan alamat, dan router saya memutuskan nama host ke alamat IP yang tepat. Pastikan untuk memberi nama setiap PI dengan tepat melalui /etc/hostname.

Keanehan pada interfacesfile dalam trailing iface default...diperlukan, jika tidak, koneksi WPA nirkabel tidak akan muncul.

The wpa_supplicant.confberkas dapat memiliki beberapa network={entri juga, saya digunakan untuk mengambil pi saya untuk bekerja ... pasang dan voila, itu terhubung otomatis sana juga, konfigurasi pekerjaan adalah sedikit lebih rumit sekalipun. Termasuk di sini sebagai contoh, tambahkan / ganti yang berikut dalam wpa_supplicant.conffile:

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"
}

Pada dasarnya, ini memindai wpa_supplicant.conffile dan menghubungkan ke jaringan pertama yang ditemukannya yang cocok. Sangat berguna. Anda dapat menghubungkannya ke jaringan 'terbuka' secara otomatis juga. Bukan hal terbaik untuk dilakukan, tetapi bisa dilakukan.

lornix
sumber
Saya perlu memiliki ip statis juga sebagai tanpa kepala dan saya tidak dapat ssh tanpa mengetahui alamat ip-nya. Saya saat ini ada id_str="home"di wpa_supplicant.conf dan iface home inet static(info ip statis di bawah ini) di file antarmuka, ini memberi saya ip statis tetapi saya tidak yakin apakah ini adalah cara terbaik untuk mengaturnya dan agak membingungkan untuk mengatur ( dan saya mendapatkan kesalahan "Tidak dapat menemukan perangkat" rumah "" saat boot).
11chubby11
1
Saya menggunakan dyn.com (atau dyndns.com) untuk memungkinkan nama yang tepat untuk mengakses pi saya, gunakan ddclient untuk secara otomatis mengatur nama ke alamat yang tepat. Sebagai alternatif, gunakan router Anda untuk menentukan alamat dhcp statis, jauh lebih berguna. Saya juga menggunakan upnpcd untuk secara dinamis mengatur pengaturan upnp untuk memungkinkan saya terhubung ke sistem saya dari luar jaringan saya, tidak ada IP statis yang pernah diperlukan sekarang, itu mengatur dirinya sendiri di mana pun itu. (iface stanza hanya dapat memiliki lo / eth0 / wlan0 / default sebagai opsi, 'home' tidak akan berfungsi)
lornix
Bagaimana saya bisa menambahkan /etc/network/interfacesboot SD? Letakkan saja di mana saja dan itu akan menyalinnya?
denislexic
Pada dasarnya komentar untuk jawaban oleh lornix - yang solusinya saya gunakan dengan sukses - karena saya tidak punya perwakilan untuk menulis komentar. Untuk mengedit sistem file root, Anda perlu me-mount partisi kedua, bukan yang pertama, partisi boot. Saya melakukannya: sudo mount / dev / sdc2 / mnt setelah itu saya dapat mengedit file di bawah / mnt root, yaitu /mnt/etc/wpa_supplicant/wpa_supplicant.conf dan / mnt / etc / network / interface dan / mnt / etc / hostname (lagi menggunakan sudo). Setelah selesai, keluar dari hierarki / mnt, dan lakukan sudo umount / mnt Anda kemudian dapat memasukkan kartu-SD ke Rπ dan boot. Perhatikan bahwa ini membutuhkan mesin Linux,
Ketil Malde
10

Sejak November 2016 SSH telah dinonaktifkan secara default di gambar Raspbian standar untuk alasan keamanan.

Untuk mengaktifkannya kembali, buat file kosong bernama sshatau ssh.txtpada folder boot kartu sd (partisi fat32 dapat diakses dari windows)

Untuk mengkonfigurasi pengaturan wifi, Anda juga membuat file bernama wpa_supplicant.confdisana yang berisi:

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

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

Kedua file ini dapat dibuat di windows, dan diedit menggunakan notepad.

Kemudian masukkan kartu SD ke pi, dan Anda harus dapat SSH masuk

Mike Redrobe
sumber
Senang melihat mereka sangat menyederhanakan pengaturan! Jawaban Hebat!
lornix
3

Pada STRASCH RASPBIAN Anda harus memasukkan ctrl_interfacedan update_configmasukwpa_supplicant.conf

Untuk mendapatkan wifi dengan ssh saat boot, lakukan langkah-langkah sederhana ini pada kartu SD Anda:

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

Dengan konten:

country=AU  #omit if US
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
    ssid="YourNetworkSSID-1"
    psk="passwordOne"
}
  1. Lepaskan kartu SD, masukkan pi, boot pi
rynop
sumber
2

Anda bisa menggunakan interfacesfile tersebut. Memuatnya dengan semua informasi jaringan dan memasukkannya ke dalam thumb drive dan reboot RPi dengan itu. RPi mengambil pengaturan dan mengatur WiFi tanpa perlu perangkat keras tambahan atau monitor.

Setelah itu Anda bisa SSH ke Pi dan menginstal VNC untuk mendapatkan GUI. Jika Anda ingin instruksi langkah demi langkah untuk itu, lihat Option 3: Connect with WiFidi http://www.dexterindustries.com/BrickPi/getting-started/using-the-pi/

karan
sumber
Tidak bisa menjalankan ini. Tidak dapat menemukan info lain di internet tentang cara mengatur wifi ini.
11chubby11
Lupa menyebutkan skrip yang digunakan untuk mengotomatisasi ini. Ini dia
karan
2

Anda juga dapat mengonfigurasi kartu SD yang secara otomatis akan menginstal Rasbian dengan koneksi WiFi yang telah dikonfigurasikan sebelumnya pada Raspberry pi Anda (pengaturan Raspberry Pi tanpa kepala). Ini memungkinkan pi Anda untuk hanya terhubung ke daya untuk boot pertamanya.

Langkah 1: Unduh Noobs Dapatkan dan unzip perangkat lunak Noobs terbaru (versi Offline dan instal jaringan) di https://www.raspberrypi.org/downloads/

Alternatif: tautan langsung ke file: http://downloads.raspberrypi.org/NOOBS_latest

Pada saat penulisan, versi NOOBS terbaru adalah 1.4.0

Langkah 2: Konfigurasi tanpa kepala Pada direktori os /, hapus semua folder selain rasbian /. Bahkan Anda seharusnya hanya memiliki satu folder lain bernama Data_Partition.

Dalam folder rasbian, edit file flavours.json. Anda harus melihat yang berikut:

{
  "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"
    }
  ]
}

Hapus bagian "Raspbian - Boot to Scratch", sehingga file akan terlihat seperti ini di akhir:

{
  "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"
    }
  ]
}

Edit file recovery.cmdline di direktori root NOOBS dan tambahkan silentinstall ke daftar argumen. File akan terlihat seperti ini di akhir:

runinstaller quiet vt.cur_default=1 elevator=deadline silentinstall

Langkah 4 (opsional): Konfigurasikan tata letak keyboard dan Bahasa kustom Jika Anda ingin mengubah tata letak keyboard default (kami) dan / atau bahasa default (default adalah 'kami') tambahkan lang = XX keyboard = XX dalam daftar argumen pemulihan File .cmdline (XX harus diganti dengan kode bahasa dan keyboard Anda, yang bisa berupa fr, de, ... Default adalah kita).

File akan terlihat seperti ini di akhir:

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

Langkah 5 (opsional): Mengkonfigurasi Wifi Noobs Config adalah alat yang akan menyalin / melewati beberapa file setelah instalasi Rasbian. Di antara banyak hal lainnya, alat ini memungkinkan Anda untuk melakukan pra-konfigurasi Wifi di Pi Anda. Namun ini mengasumsikan bahwa dongle wifi yang Anda gunakan didukung langsung oleh Raspbian.

Hal pertama adalah mengunduh Noobs Config di GitHub ( https://github.com/procount/noobsconfig/archive/master.zip )

Kemudian unzip noobsconfig.zip dan:

  • salin “customise.sh” di direktori root file Noobs Anda

  • salin "os / Rasbian / partition_setup.sh" ke direktori "os / Rasbian /" file Noobs Anda.

  • buat folder bernama "wifi" di bawah "os / Rasbian /"

  • salin "Contoh / Rasbian / wifi / wifi / wpa_supplicant.conf" ke
    "os / Rasbian / wifi /" direktori file Noobs Anda.

  • salin “Contoh / Rasbian / wifi / Raspbian_root.txt” ke “os / Rasbian /”
    direktori file Noobs Anda.

Hal terakhir adalah mengkonfigurasi wifi ssid dan psk (kata sandi) Anda di wpa_supplicant.conf:

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

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

Langkah 5 (opsional): Ubah kata sandi default Bahkan jika langkah ini opsional, sangat disarankan untuk mengubah kata sandi default pengaturan Rasbian Anda.

Edit file os / Rasbian / os.json. Seharusnya terlihat seperti ini:

{
  "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"
}

Mari kita ubah kata sandi default pada baris 9.

Langkah 5: Salin file pada kartu SD Anda dan boot Raspberry pi Anda Salin / file masa lalu pada kartu SD yang diformat FAT.

Langkah 6: Boot dan sambungkan Boot pada kartu SD kami, setelah beberapa menit (tergantung pada kartu SD Anda, proses instalasi dapat memakan waktu lebih dari 30 menit) dan sambungkan ke Pi Anda melalui SSH.

Itu ...

jeje
sumber
Instruksi ini terlihat menjanjikan, tetapi pada NOOBS v1.9.2 tidak ada file flavours.json di direktori os / Raspbian. Karena alasan utama untuk mengeditnya adalah untuk menghapus versi alternatif, saya pikir aman untuk melewati langkah itu jika tidak diperlukan.
natevw
2

Proses pemasangan tanpa kepala sedikit berubah untuk Raspbian Stretch dan versi RetroPie yang lebih baru.

di dalam direktori boot ...

touch ssh

nano wpa_supplicant.conf

tambahkan ini ke wpa_supplicant.conf

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

lepaskan kartu sd dan masukkan pi untuk boot

beri waktu sebentar dan temukan alamat ip pi Anda

ssh ke pi

ssh pi@pi-ip-address

kata sandi default adalah raspberry

Ullauri
sumber
1

Anda perlu mengedit wpa_supplicant.conffile pada sdcard (itu dalam /etcatau /etc/wpa_supplicanttergantung pada versi distribusi Anda). Format file dijelaskan di sini: http://linux.die.net/man/5/wpa_supplicant.conf

hogliux
sumber
Tetapi jika nirkabel putus, maka tidak akan terhubung kembali secara otomatis menggunakan pengaturan dasar. Ini mengharuskan Anda menggunakan mode manual dan roaming dengan file konfigurasi tambahan.
Piotr Kula
Yah itu harus cukup untuk pengaturan, bukan? Seperti itu pasti akan terhubung ketika wpa_supplicant dimulai jika jaringan tersedia. Saya juga berpikir wpa_supplicant harus secara otomatis menyambung kembali jika Anda kehilangan jaringan.
hogliux
Lebih jauh ke komentar terakhir saya, saya ingin menambahkan bahwa saya telah menggunakan metode ini sendiri pada model raspberry A dengan debian terbaru.
hogliux
WPA Supplicant akan tidak menyambung kembali jika Anda menggunakan AUTO, Anda perlu menggunakan STATICdengan ROAMINGdan menentukan SSID untuk terhubung ke ... yang agak sulit untuk mengatur.
Piotr Kula
1

Saya telah membuat alat skrip shell (sayangnya hanya berjalan di Linux), itu mengotomatiskan seluruh proses mengunduh gambar Raspbian terbaru, membongkar gambar, menyematkan pengaturan wi-fi dan ethernet (disediakan oleh pengguna) pada gambar, membungkus ulang gambar dan membakarnya di kartu SD. Ketika Anda mem-boot Pi Anda dengan kartu SD, ia langsung terhubung dengan jaringan Anda. Script juga memiliki kemampuan untuk mencari Pi yang baru dikonfigurasi di jaringan.

Anda dapat langsung menghubungkan dongle Wi-Fi dengan Pi Anda, gunakan skrip RaspImgConfig.sh untuk menyematkan Gambar Raspbian dengan kredensial wi-fi dan membakar gambar pada kartu. Tidak perlu monitor, mouse, atau keyboard apa pun.

Video Youtube menggunakan alat ini: https://youtu.be/WdYb1L2WzjM

Salam, Subhajit Ghosh

Glowingthumb
sumber
-2

Anda dapat mengatur pi Anda untuk bekerja dengan wifi yang dilindungi kata sandi dan secara otomatis mengaktifkan ssh tanpa mem-boot pi, dengan file konfigurasi di partisi / boot.

Saya menggunakan ini untuk AIY saya dan memindai jaringan menggunakan nmap untuk menemukan pi saya.

Dari sana Anda bisa terhubung ke pi.

Zanidd
sumber
Anda setidaknya harus menjelaskan nama file yang diperlukan dan isinya, serta tautan ke informasi lebih lanjut.
Steve Robillard
-3

Saya pikir semua jawaban ini kehilangan titik bahwa model RPi TIDAK MEMILIKI Ethernet, tidak ada wi-fi, jadi apa pun yang Anda lakukan, kecuali jika Anda mendapatkan dongle eksternal, Anda tidak akan dapat terhubung ke RPi melalui ssh .. .. taruhan terbaik Anda adalah menggunakannya langsung di TV atau menggunakannya melalui port serial pada header, atau seperti yang saya katakan, dapatkan dongle eksternal untuk wifi.

amigojapan
sumber
5
Saya pikir itu tersirat bahwa dia sudah menggunakan satu. Orang akan berasumsi bahwa OP sadar bahwa ia tidak dapat terhubung ke jaringan nirkabel tanpa semacam adaptor.
Impuls