RaspberryPi Zero設定メモ
by K.I
2019/01/08〜
Index
[top]
- 今のRaspbianのバージョンは、Stretchらしい
Version | Codename |
5.0 | lenny |
6.0 | squeze |
7.0 | wheezy |
8.0 | jessie |
9.0 | stretch |
- ちなみに、コードネームはトイストーリーのキャラクタから取られているらしい
- 書き込み後、WindowsにSDカードを接続し直すと、ドライブが2つ認識されるようだ。
- フォーマットするか聞いてくるので、それはキャンセルする。
- sshを有効にするために、
- bootドライブの方に、sshという拡張子の無い空のファイルを作成する
- 作成したSDカードを、RaspberryPi zeroに挿入して、MicroUSBで電源に接続すると、
- Raspbianが起動して、ネットワークにWifi接続される
- 起動時に、/boot/wpa_supplicant.confが存在した場合、
- /etc/wpa_supplicant/wpa_supplicant.confに、上書き後、削除される。
- DHCPでIPアドレスが分からないので、pingを飛ばして、arpで調べる
> for /l %i in (0,1,100) do ping -w 1 -n 1 192.168.1.%i >> pingresult.txt
> arp -a
b8-27-ebで始まるMACアドレスから探す
- ユーザ名:pi、パスワード:raspberryで入れるはず
$ cat /etc/debian_version
9.4
stretchは、こいつだけなのでOK!
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 29G 1.2G 27G 5% /
devtmpfs 213M 0 213M 0% /dev
tmpfs 217M 0 217M 0% /dev/shm
tmpfs 217M 5.8M 211M 3% /run
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 217M 0 217M 0% /sys/fs/cgroup
/dev/mmcblk0p1 44M 23M 22M 51% /boot
tmpfs 44M 0 44M 0% /run/user/1000
$ sudo raspi-config
Localisation Options
- Change Localeで、
- en_GB.ISO-8859-15 ISO 8859-15、ja_JP.EUC-JP EUC-JP、ja_JP.UTF-8 UTF-8 をチェック
- デフォルトを ja_JP.UTF-8 に設定
- Change Timezone
Advanced Options
1これはIPアドレスが192.168.1.104、ルータが192.168.1.1の場合の例。自分の環境に合わせて設定する。
[top]
- Sambaをインストールして、ファイルサーバとして設定してみる
$ sudo apt-get update
$ sudo apt-get install samba
- 元のsmb.confを保存しておいて、新規にsmb.confを作成
$ cd /etc/samba
$ sudo mv smb.conf smb.conf.org
$ sudo vi smb.conf
例えば、以下のように記述する
[global]
unix charset=UTF-8
dos charset=CP932
workgroup=WORKGROUP
[share]
path=/var/shared
read only=no
browseable=yes
sudo systemctl restart smbd
sudo systemctl restart nmbd
$ sudo mkdir /var/shared
$ sudo chmod 777 /var/shared
$ sudo useradd -s /usr/sbin/nologin username
$ sudo pdbedit -a username
- ここでパスワードを設定すれば、共有フォルダの設定は完了
$ sudo pdbedit -L
$ sudo pdbedit -L -v
$ sudo pdbedit -a username
$ sudo pdbedit -x username
$ sudo smbpasswd username
- Windowsから、共有フォルダにアクセスしてみよう
- コマンドラインから、IPアドレスを指定する2
\\192.168.1.104
- 共有フォルダのダイアログが表示されるので、ユーザ名とパスワードを指定する
- これで、RaspberryPi Zero上の共有フォルダが表示される
- ネットワークドライブとして、この例では、
- \\192.168.1.104\share を登録しておけば、すぐにアクセスすることができる
- Wifi接続なので、速度的に不安があったが、
- ファイル書き込みはやっぱり遅いと感じるが、MP4の動画再生は全く問題なかった。
2当然ながら、固定IPで設定したアドレスを指定する。
[top]
$ sudo apt-get install usbmount
- exFatでフォーマットされたUSBメモリを使用できるように、以下をインストールしておく
$ sudo apt-get install exfat-fuse
- /lib/systemd/system/systemd-udevd.serviceを編集
MountFlags=slave
↓
MountFlags=shared
- USBメモリを挿せば、自動的に /media/usbにマウントされる
[media]
path=/media/usb
read only=no
browseable=yes
- /etc/sambaに、上記の記述を追加して、Sambaを再起動するだけ
- これでちゃんと共有できたけど、日本語が文字化けして、書き換えも出来なかった。
- /etc/usbmount/usbmount.confを以下のように編集した
FS_MOUNTOPTIONS="-fstype=vfat,iocharset=utf8,codepage=932,uid=500,gid=500,dmask=000,fmask=011"
- ちゃんと理解していないけれども、これで日本語もちゃんと表示され、書き換えもできるようになった
3USBホストケーブルとも呼ばれる。
[top]
$ sudo apt-get install nodered
$ update-nodejs-and-nodered
$ node-red-start
$ sudo systemctl enable nodered.service
- RaspberryPi ZeroのNodeRedにも、Alexa Home Skill Bridgeをインストールする
$ cd ~/.node-red
$ npm install node-red-contrib-alexa-home-skill
- これで、NodeRedに Alexa homeノードが追加される
- RaspberryPi Zeroでも、LED点灯をやってみる
- RaspberryPiのPIN7(GPIO004)に、1kΩの抵抗を介してLEDを接続する
- ヘッダピンの位置は、従来のRaspberryPiと互換性があるので、分かりやすい。
- 先日、RaspberryPi3のNodeRedで、 Alexa連携したばかりなので、
- RaspberryPi3で作成した、NodeRedのLED点灯のプログラムを、ClipboardへExportして、
- RaspberryPi zeroのNodeRedへ、Inportしてやる
- LEDをダブルクリックして、AccountへLoginして、Device設定をやり直す必要はあるみたいだ。
- Deployすると、connectedするんだけど、disconnected⇔connectedを繰り返す
- それでも、とりあえずはRaspberryPi zeroでも、
- NodeRedとAlexa連携でデバイスが操作できるようになった。
- どうやら、Alexa homeノードが設定されたNodeRedが複数あると、
- 現在、RaspberryPi3でも、NodeRedが稼働していて、同じLEDというデバイスがある状態
- 「Alexa、LEDをつけて」といっても、どちらにConnectするかは分からないので、
- 既に点灯しているLEDの方にConnectすると、なにも変化しないことになる
- ということで、NodeRedのサーバは一か所にした方が無難だろう
- まぁ、そもそもRaspberryPi zeroに、NodeRedを入れたのは、
- RaspberryPi3を常時電源ONにしておくのが勿体ないという理由なので、無問題。
- と思ったんだけど、RaspberryPi3の方のFlowを消しても、、disconnected⇔connectedが繰り返される
- ちょっと悩んでいたら、Node-RED_Alexa_Home_Skill_Bridgeの管理者の方からメールが来た
- どうやら、同じユーザ名で複数の定義がされるような状態になってるらしい。
- Accountのドロップダウンメニューを見ると、同じユーザ名が2重に出ている
- 良く分からないが、AlexaHomeノードを全部作り直した
- これで繰り返しの現象は無くなったが、サーバに負荷を掛けちゃったのかもしれない
- Accountの作成も何回もやってたので、なんか変な状態になっていたのかな。
- とりあえずお礼のメールを書いたが5、あまり迷惑かけないように気を付けよう。。
4もちろん固定IPで設定したアドレスを指定する。
5自分の英語で、ちゃんと伝わったかどうか分からないけど。
[top]
- Raspbian Stretch Lite には、動画再生のomxplayerが含まれていない
- そもそも、RaspberryPi zeroでは、動画再生は無理なのかもしれない
$ sudo apt-get install omxplayer
- 予め、HDMI端子から、ケーブルでモニターに接続してから、
- RaspberryPizeroは、Mini-HDMI端子なので、 以下のような変換コネクタを使ってみた
- で、適当なmp4のファイルを共有フォルダへコピーして、実行してみる
$ omxplayer /var/shared/filename.mp4
- これで、cec-clientが使えるようにはなったんだけど、試せないなぁ。
$ sudo apt install kodi -y
$sudo apt install - xfonts-intl-japanese xfonts-intl-japanese-big ttf-kochi-gothic ttf-kochi-mincho uim uim-anthy -y
- これも、HDMI-CECが使えないと、操作できないかな。
- 少なくとも、キーボードとマウスを接続しないとだめか。。
- スマホとかに、 Kodiのリモートアプリを入れれば、一応操作はできるようだ。
- 日本語ファイルは文字化けするので、設定で、Interface Setting→Skin→Fonts→Arial based にしておく
- Web Interfaceというのもあるんだけど、再生後のコントロールぐらいしかできないので、全く使えない。。
- HDMIを接続すると、Loginプロンプトが出るんだけど、キーボードを繋いでいないので何もできない。
- 寂しいので、Kodiを自動起動する方法はないか調べてみる。
- Kodi用ユーザ登録
sudo adduser --disabled-password --disabled-login --gecos "" kodi
sudo usermod -a -G cdrom,netdev,audio,video,plugdev,users,dialout,dip,input kodi
- XディスプレイマネージャLightdmをインストール
sudo apt-get install lightdm
- これで、再起動すると、Kodiが自動起動するようになった
[top]
- 512GBのSDカードが自動マウント出来なかったので、とりあえず手動マウントした
- 操作後に、慌ててメモしたので間違いや余計な操作や抜けがあるかも
- fdiskで見ると、/dev/sda1にちゃんとSDカードが存在している
$ sudo fdisk -l
Device Boot Start End Sectors Size Id Type
/dev/sda1 65536 966655999 966590464 460.9G 7 HPFS/NTFS/exFAT
$ sudo blkid /dev/sda1
/dev/sda1: LABEL="USB512" UUID="9C33-6BBD" TYPE="exfat"
- これで、PC から見えるようになったが、PCからみると何故か空っぽだったので、
- でも今度はエラーでリンクにアクセス出来なかったので、
- それでもダメなので、 こちらを参考に、
$ sudo vi /etc/samba/smb.conf
$ sudo systemctl restart smbd
$ sudo systemctl restart nmbd
再起動したらダメだった
- 全体の再起動していないけど、自動マウントと干渉するかも
- このRaspberryPiは、すぐ落とせないので確認は先延ばしにして暫く使っていたが、、
- 後日、停電したので、再起動したらアクセス出来なくなった
- これはあくまでも応急処置なので、ちゃんと設定し直したいけど。。
- RaspberryPiのページから、Windows用のRaspberry Pi Imagerをダウンロードする
- OSは、Raspberry Pi OS (32-BIT)を選択
- 歯車アイコンをクリックして、SSHを有効に、
- ホスト名は、raspberrypi.localにしておく
- パスワード認証にして、ユーザ名、パスワードを設定
- Wi-Fiを設定するをチェック
- ストレージでSDカードを指定して、書き込む
- SDカードをセットして、RaspberryPiを起動する
- PCで、cmdプロンプトを起動して、
- ssh ユーザ名@raspberrypi.local と入力
- 起動ディスクの作り直しで、一から設定をやり直すことになった
- Windowsから、IPアドレスでsshログイン出来なくなった。
- リモートデスクトップも、IPアドレスでアクセス出来ない。
- でも何故かノード名raspberrypiでは、アクセス可能だった。
- NodeRedは、IPアドレスでもノード名でもアクセス出来ない。。
- この記事によると、mDNSが標準サポートされるようになったことで、ノーで名でアクセス出来るようになったらしい。
- Chromeは、IPv6アドレスを優先してHTTPサーバに接続要求を出すらしい。
- まぁ、これ自体は何年も前のことなので今回の事には関係なさそうなんだけど、
Resolved IP addresses of "raspberrypi": ["2405:6581:e940:800:da37:d548:****:****"]
- となり、IPv6アドレスでアクセスしているらしい
- でも、NodeRedのsetting.jsの設定ではダメだった
- IPv4でアクセス出来ないのが問題なので、いろいろ探すと、 こんな記事を見つけた
- そういえば、この状態になる前に、リモートデスクトップにアクセス出来なくなり、GoogleやYoutube以外のサイトにアクセス不能になったので、
- ルータの電源をOFFにして再起動したら、サイトアクセスについては出来るようになったが、リモートデスクトップはIPアドレスでアクセス出来ない状態だった
Resolved IP addresses of "raspberrypi": ["2405:6581:e940:800:da37:d548:****:****","192.168.1.104"].
No alternative endpoints.
- となり、IPv4アドレスでアクセスされるようになったらしい
- 結局のところ、はっきりとした原因は不明。
- ルータのファームアップグレードだけで治ったように見えるけど、それもはっきりしない。
[top]
[電子工作関連に戻る]