Raspberry pi zero wifi настройка
Недавно вышла новая версия Raspberry Pi Zero W. Это то же самое что просто Zero, только с Wi-fi и Bluetooth на борту. В общем решил заказать, поиграться.
Комплект
Заказывал с AliExpress-а: вот здесь сама платка и к ней еще доп.набор из переходников, камеры, корпуса и GPIO пинов. Вот так выглядит весь комплект:
Характеристики Raspberry Pi Zero W:
- 1GHz, single-core CPU
- 512MB RAM
- Mini-HDMI port
- Micro-USB On-The-Go port
- Micro-USB power
- HAT-compatible 40-pin header
- Composite video and reset headers
- CSI camera connector
- 802.11n wireless LAN Wi-Fi
- Bluetooth 4.0
- 65mm x 30mm x 5mm
GPIO пины здесь нужно напаять вручную, вот так:
Распиновка такая же как на моделях Raspberry Pi 2,3,Zero:
Здесь есть дополнительная информация по каждому пину.
Пока что я их не паял, а решил провести первоначальную установку системы.
Установка Raspbian
В качестве носителя Raspberry Pi Zero W использует microSD карту, в отличие от старшей модели платы, которая работает на SD. Объем карты должен быть не меньше 2ГБ. После установки на двухгигабайтную карту, свободного места останется около 500МБ — особо не разбежишься. Поэтому если нужно хранить что-то объемное на карте, то лучше взять побольше.
Раньше, когда только появлялись платы Raspberry Pi, еще не было специального дистрибутива Linux для них, и многие использовали обычный Debian, собранный под ARM процессоры. Это было не очень удобно, потому что приходилось вручную ставить разные модули ядра и драйвера. Сейчас же есть прекрасный Raspbian — это тот же Debian, но допиленный для использования на Raspberry Pi. Многие вещи поддерживает “из коробки”, есть удобные консольные утилиты для всяческой настройки и легковесный desktop environment, на случай если планируется запускать с GUI интерфейсом.
Я скачал RASPBIAN STRETCH LITE. Это консольная версия без GUI. Теперь нужно записать его на карту.
Windows
Можно воспользоваться утилитой Win32diskimager или любой похожей — Rufus, Universal USB Creator.
Mac OS
Подключаем карту и смотрим какие диски есть в системе:
$ diskutil list /dev/disk0 (internal, physical): #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *251.0 GB disk0 1: EFI EFI 209.7 MB disk0s1 2: Apple_CoreStorage Macintosh HD 250.0 GB disk0s2 3: Apple_Boot Recovery HD 650.0 MB disk0s3 /dev/disk1 (internal, virtual): #: TYPE NAME SIZE IDENTIFIER 0: Apple_HFS Macintosh HD +249.6 GB disk1 Logical Volume on disk0s2 E3AA7CD7-2FF0-4E8C-A081-D37A05FB0815 Unencrypted /dev/disk2 (internal, physical): #: TYPE NAME SIZE IDENTIFIER 0: FDisk_partition_scheme *1.9 GB disk2 1: DOS_FAT_32 TT 1.9 GB disk2s1
Видно что /dev/disk2 — это наша флешка. Отмонтируем ее:
$ diskutil unmountDisk /dev/disk2
И теперь запишем образ Raspbian (не надо добавлять номер раздела, просто /dev/disk2):
$ sudo dd bs=1m if=2017-09-07-raspbian-stretch-lite.img of=/dev/disk2 conv=sync
Linux
Подключаем карту и смотрим какие диски есть в системе:
$ sudo fdisk -l Disk /dev/sda: 111.8 GiB, 120034123776 bytes, 234441648 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xfaa7714f Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 1026047 1024000 500M 7 HPFS/NTFS/exFAT /dev/sda2 1026048 234438655 233412608 111.3G 7 HPFS/NTFS/exFAT . Disk /dev/sdc: 15 GiB, 16043212800 bytes, 31334400 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x690a7a2e Device Boot Start End Sectors Size Id Type /dev/sdc1 * 0 2931839 2931840 1.4G 0 Empty /dev/sdc2 2880880 2885487 4608 2.3M ef EFI (FAT-12/16/32)
Наша флешка — /dev/sdc . Если замонтирован раздел, размонтируем:
И теперь запишем образ Raspbian (не надо добавлять номер раздела, просто /dev/sdc):
$ sudo dd bs=1m if=2017-09-07-raspbian-stretch-lite.img of=/dev/sdc conv=sync
Первый запуск
После записи ОС на microSD карту, вставляем ее в raspberry и подключаем питание, клавиатуру и монитор.
Что интересно, запускается плата при подключении питания в любой из microUSB портов, но вот клавиатура работает только в определенном. Поэтому, если после загрузки не работает клавиатура — просто поменяйте местами разъемы.
Логин и пароль по умолчанию в raspbian:
login: pi password: raspberry
Настройка Wi-Fi
Как я писал выше — raspbian “из коробки” отлично подходит для raspberry pi. И все нужное для настройки wi-fi уже есть в системе.
У меня дома стоит обычный wi-fi роутер и создана беспроводная сеть c WPA2-PSK. Чтобы подключить Pi к этой сети, редактируем файл /etc/wpa_supplicant/wpa_supplicant.conf . Моя сеть называется 4te-WIFI и пароль — mywifipassword . Пароль в этом файле хранится в открытом виде. key_mgmt для WPA2-PSK все равно указывается WPA-PSK.
Вот так выглядит мой конфиг:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=RU network= ssid="4te-WIFI" psk="mywifipassword" key_mgmt=WPA-PSK >
Вуаля! Интерфейс wlan0 получил IP-адрес от роутера и готов к работе:
$ ifconfig lo: flags=73 mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 1 (Local Loopback) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 wlan0: flags=4163 mtu 1500 inet 192.168.1.42 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::245e:56a5:398e:34c2 prefixlen 64 scopeid 0x20 ether b8:27:ea:fe:34:2a txqueuelen 1000 (Ethernet) RX packets 1418 bytes 174338 (170.2 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 901 bytes 280257 (273.6 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Включим ssh и добавим его в автостарт:
$ sudo systemctl start ssh $ sudo systemctl enable ssh
Теперь Rasperry Pi настроен и готов к экспериментам!
Подключение к PiZeroW с Raspbian Stretch Lite, без дополнительных переходников и монитора
В общем на днях попал мне в руки Raspberry Pi Zero W. Но сложность заключалась в том, что он имеет только микро порты для подключения, а переходников для них у меня не было.
И это затрудняло его настройку в отличии от того же Raspbery Pi 3+
Если не прибегать к паяльнику, и платам расширения, то на борту у малины имеется два microUSB и один microHDMI. При наличии двух переходников (microHDMI(M)-HDMI(F) и microUSB(M)-USB(F)) можно было бы подключить его к монитору и клавиатуре, ну а дальше в консольном режиме все настроить. Но как уже я сказал, таких переходников у меня не было, ближайший магазин с такими находился довольно далеко, а ждать доставки просто не было терпения.
Конечно же некоторые адаптеры нам все таки понадобятся, но их просто достать. В частности microUSB шнур можно взять от телефона a SD адаптер на microSD карты от фотоаппарата.
Для того чтоб подключиться я нашел два способа. Первый это по WiFi. Все что нужно это настроить на нем WiFi и SSH. Но сделать это нужно только с помощью SD карты. И так как из компьютеров у меня был только MacBook, доступа к linux разделу у меня не было (вариант с установкой ext4fuse я не рассматривал). Оставался только раздел /boot который был в FAT32 и чудесно работал с MacOS. Поэтому все что мы будем делать будет происходить в этом разделе.
Итак первое что нам нужно это включить SSH доступ к малинке.
Для этого нужно создать файл ssh без какого либо содержания и расширения
Во вторых нам нужно как-то настроить WiFi подключение при запуске
Для этого нужно вначале получить хеш пароля для WiFi. И тут я столкнулся с новой проблемой, как это сделать в MacOS. Так как до этого приходилось настраивать подключение за наличием какой-то Linux машины. Там это делается так
wpa_passphrase ИМЯ_ТОЧКИ_ДОСТУПА ПАРОЛЬ
Результат команды, выглядел так
Ну а для MacOs сгенерировать psk я не нашел как. Поэтому пришлось временно указать пароль в открытом виде. Либо настроить WiFi позже(об этом в конце статьи)
Таким образом мы настраиваем все WiFi сети и результат сохраняем в файл wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=UK ## Первые три строчки необходимы для версий Raspbian >= Stretch network= < ssid="ИМЯ_ТОЧКИ_ДОСТУПА" psk=656c4700f528aced39b853b3c51b3fdcfc55409faa83a6402e936842237ac6f3 >network=
Ну вот собственно и все. Осталось вставить карточку в RaspberryPi, подключить питание и подождать в среднем ~90 секунд пока он загрузится и поднимет WiFi соединение.
Чтоб найти IP малинки в локальной сети, можно воспользоваться командой
либо посмотреть подключенных клиентов у WiFi роутера.
Дальше остается только подключиться через SSH к найденному IP. (По умолчанию если кто вдруг не знал то для raspbian логин и пароль pi:raspberry)
Но существует еще один способ подключиться к Raspberry. Как многие заметили на плате есть еще один USB разъем помимо питания, вот он нам и понадобится. Единственное на что обращу внимание так это то что USB кабель должен быть полностью распаян (а не как у меня было, только крайние два контакта с питанием, почему я вначале и прибегнул к WiFi подключению).
Суть второго способа заключается в том чтоб подключить USB кабель к другому разъему (на плате они подписаны USB и PWR_IN), кстати в таком случае плата будет запитана от него.
Но прежде нужно дописать несколько параметров в два файла в том же /boot разделе
Первый это в cmdline.txt добавить после rootwait подключение Ethernet модулей
А второй в config.txt добавить в конец файла
Все. Вставляем карточку, дожидаемся загрузки и подключаемся по SSH к малинке по адресу raspberrypi.local
После получения доступа через SSH настроить WiFi через wpa_supplicant.conf можно уже через саму малинку воспользовавшись wpa_passphrase, только учтите что файл из /boot раздела копируется в /etc