A


失敗した。


前回RaspberryPi3にCentOS7を入れて舞い上がっていたけれど、PHP7を入れようとremiリポを登録するためにまずはepelリポを入れようとしたらraspiには対応してなくて断念。

ついでにApache2.4.25を入れるためにaprとapr-utilの最新(確か1.5.2)を入れようとgroupinstallでDevelopmentToolsを入れたらaprの1.4系が入ってしまい、それを削除してaprの1.5は入ったけどapr-utilがどうしても入らず、これも断念。

一応java1.8(openjdk)を入れてtomcat8.0.42をDLしてきて設定したら、これはちゃんとトップ画面が表示されて動作している気がした。

しかし、総じて失敗だ。

ゆえに、素直にRaspbianにします。わがまま言ってサーセンでした><


MicroSDカードのフォーマット

すでにCentOS7が入っているMicroSDカードであるが、Raspbianを入れ直すためフォーマットしたくてWindows10上でUSB接続したカードリーダーからMicroSDカードを見てみると、Jドライブで総容量500MBとか!32GBなのに!

でも、SDカードフォーマッターで、Jドライブ指定してオプション設定の消去設定をイレースフォーマットにしてフォーマットしたら32GB(実際には28GBちょっと)に戻った。
良かった。

ここ、ドキドキの第1ポイント。


Raspbianのダウンロード

RaspberryPiの公式サイトのDOWNLOADSでしばし迷う。

世の中的にはNOOBSをDLしてそのzipファイルを解凍してMicroSDカードにコピーして、RaspberryPiに差して起動すればGUIでOSとしてRaspbianを選択してインストール、って流れの先駆者の方々も結構いらっしゃる。

だが、しかし!

自分にはRaspbianのデスクトップを使う気はサラサラない。
つまりCUIベースで良いのだ。

となるとDL対象は、NOOBSではなくRaspbian、しかもMinimal imageの「Raspbian Jessie Lite」である!
2017/04/05時点でのRaspbianはVersion:March2017、ReleaseDate:2017-03-02である。

つ~わけで以下ページの「Raspbian Jessie Lite」のDownload ZIPリンクからDL&解凍。

解凍したイメージファイルは前回同様、イメージ書き込みソフト「DD for Windows」を使ってMicroSDカードに焼く。

ちなみに、DLするのは本当にLiteのほうでよいのかどうか。。。
ここがドキドキの第2ポイントです。今でも。


起動、そして初期設定

焼いたMicroSDカードをRaspberryPi3に挿してACアダプター接続して起動。

ログインはpi/raspberry。

そして俺は日本人!ニホンジィィィーーーン!!

というわけで、LocaleとかTimezoneとかキーボードレイアウトとか設定するために以下のコマンドを叩く。

$ sudo raspi-config

すると、以下の画面が表示される。

01
このメニューの中でヤル事は、

  • Localisation Option->Change Localeja_JP.UTF-8 UTF-8を選択。その他のLocale(例えばen-GB.UTF-8)は非選択状態に。
    ※スペースキーで「*」が付いたら選択状態、「*」が消えれば非選択状態。
  • Localisation Option->Change TimezoneAsia->Tokyoと選択していく
  • Localisation Option->Change Wi-fi CountryJP Japanを選択
  • Localisation Option->Change Keyboard LayoutGeneric 105-Key (Intel) PC->Other->Japanese->Japaneseと選んでいってThe default for the keyboard layout->No compose keyと選択していく ※SSHなどでリモート接続した状態でsudo raspi-configした場合はキーボードレイアウト変更のメニューは表示されないので注意ね

上記以外の設定としては

  • SSHを使用可能にするためにInterfacing Options->SSHYesを選択
  • MicroSDカードの容量をフル認識させるために、Advanced Options->Expand FilesystemYesを選択。でもこれやる前にdf -hで確認したら/にすでに32GB割り当てられてた。やる必要ないのか?
  • Raspbianではデスクトップ使わない、ということはグラフィック使わない、ということで、GPUにメモリーをあまり振り分ける必要もないので、Advanced Options->Memory Splitで初期値64となっているのを16(最低値)に変更

上記を設定して最初のメニュー画面に戻ってFinishを選択すると再起動しますかと聞かれるので素直に再起動。
※TabキーでYesCancelFinishに移動できます。


無線LANの設定

SSHのサービスは稼働できたけど、まだLANに接続していないのでリモートから接続することはできないので、下記のコマンドで無線LANの設定をしちゃいます。
[SSID]は自分の無線LANルーターのアクセスポイントの識別子、[PASSPHRASE]はアクセスポイントへ接続する際の暗号化キー(パスフレーズ)です。

$ sudo sh -c 'wpa_passphrase [SSID] [PASSPHRASE] >> /etc/wpa_supplicant/wpa_supplicant.conf'

上記を実行すると/etc/wpa_supplicant/wpa_supplicant.confに設定が書き込まれます。

$ sudo vi /etc/wpa_supplicant/wpa_supplicant.conf
 
country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
 
network={
        ssid="[SSID]"
        #psk="[PASSPHRASE]"
        psk=b7fc...
}

んでもって、コメントとは言え#psk="[PASSPHRASE]"って感じでパスフレーズが平文でごりっと書かれているので、この行は消しとこう。

これで、一旦ラズパイを再起動(sudo shutdown -r now)してから確認してみる。

$ ifconfig
eth0      Link encap:イーサネット  ハードウェアアドレス b8:27:eb:fc:b7:5c
          :
 
lo        Link encap:ローカルループバック
          inetアドレス:127.0.0.1 マスク:255.0.0.0
          :
 
wlan0     Link encap:イーサネット  ハードウェアアドレス b8:27:eb:a9:e2:09
          inetアドレス:192.168.0.2 ブロードキャスト:192.168.0.255  マスク:255.255.255.0
          :

上記のようにwlan0に対してIPアドレス(この場合192.168.0.2)が振られていれば、ネットワークの設定は成功だ。


IPアドレスの固定化

ただね、俺の場合、192.168.0.2は普段iPhoneに振ってるの。

たまたま、この設定をしている時にiPhoneはWi-Fi接続していなかったため、無線LANルーターが勝手に192.168.0.2に割り振ってしまったわけで、例えば192.168.0.101にラズパイのIPアドレスを固定したい。

なので、以下を実施。

$ sudo vi /etc/dhcpcd.conf
 
# ファイル/etc/dhcpcd.confに以下4行を追記
interface wlan0
static ip_address=192.168.0.101
static router=[無線LANルーターのIPアドレス]
static domain_name_servers=[DNSのIPアドレス。大抵、無線LANルーターのIPアドレスと同じ値]

これで、一旦ラズパイを再起動(sudo shutdown -r now)してから確認してみる。

$ ifconfig
eth0      Link encap:イーサネット  ハードウェアアドレス b8:27:eb:fc:b7:5c
          :
 
lo        Link encap:ローカルループバック
          inetアドレス:127.0.0.1 マスク:255.0.0.0
          :
 
wlan0     Link encap:イーサネット  ハードウェアアドレス b8:27:eb:a9:e2:09
          inetアドレス:192.168.0.101 ブロードキャスト:192.168.0.255  マスク:255.255.255.0
          :

てな感じで、wlan0に対して固定したいIPアドレス(この場合192.168.0.101)が振られていれば、IPアドレスの固定化は成功だ。


パッケージのアップデート

これで、ネットワークにも繋がったし、Windows10のPCからTeraTermでラズパイにSSH接続できるようにもなった。

というわけで、Raspbianを最新化しておく。

まずはパッケージリストの更新、ということで以下コマンドを実行。

$ sudo apt-get update
無視 http://archive.raspberrypi.org jessie InRelease
エラー http://archive.raspberrypi.org jessie Release.gpg
  archive.raspberrypi.org:80 (93.93.130.104) への接続を開始できません。 - connect (101: ネットワークに届きません) [IP: 93.93.130.104 80]
無視 http://archive.raspberrypi.org jessie Release
  :
  :
  W: http://mirrordirector.raspbian.org/raspbian/dists/jessie/rpi/i18n/Translation-en の取得に失敗しました  mirrordirector.raspbian.org:80 (93.93.128.193) への接続を開始できません。 - connect (101: ネットワークに届きません) [IP: 93.93.128.193 80]
 
  E: いくつかのインデックスファイルのダウンロードに失敗しました。これらは無視されるか、古いものが代わりに使われます。

は?何言ってるのか分からん。。。

とりあえず、aptで参照する先をJAISTとYamagata Universityに変更することにした。

$ sudo vi /etc/apt/sources.list
 
#deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi
## Uncomment line below then 'apt-get update' to enable 'apt-get source'
##deb-src http://archive.raspbian.org/raspbian/ jessie main contrib non-free rpi
deb http://ftp.jaist.ac.jp/raspbian jessie main contrib non-free
deb http://ftp.yz.yamagata-u.ac.jp/pub/linux/raspbian/raspbian/ jessie main contrib non-free

そんでもって、aptのソースを更新。

$ sudo apt-get dist-upgrade

再度update。

$ sudo apt-get update
無視 http://ftp.jaist.ac.jp jessie InRelease
エラー http://ftp.jaist.ac.jp jessie Release.gpg
  ftp.jaist.ac.jp:80 (150.65.7.130) への接続を開始できません。 - connect (101: ネットワークに届きません) [IP: 150.65.7.130 80]
  :
  :
エラー http://ftp.yz.yamagata-u.ac.jp jessie Release.gpg
  ftp.yz.yamagata-u.ac.jp:80 (133.24.248.18) への接続を開始できません。 - connect (101: ネットワークに届きません) [IP: 133.24.248.18 80]
  :
  :
W: http://archive.raspberrypi.org/debian/dists/jessie/ui/i18n/Translation-en の取得に失敗しました  archive.raspberrypi.org:80 (93.93.130.39) への接続 を開始できません。 - connect (101: ネットワークに届きません) [IP: 93.93.130.39 80]
 
E: いくつかのインデックスファイルのダウンロードに失敗しました。これらは無視されるか、古いものが代わりに使われます。

えーっと、、、何を言っているのかさっぱり分からん。

で、多分だけどsources.list.d/raspi.listの中が怪しいはずなので、試しに修正してもう一度updateしてみる。

$ sudo vi /etc/apt/sources.list.d/raspi.list
 
#deb http://archive.raspberrypi.org/debian/ jessie main ui
## Uncomment line below then 'apt-get update' to enable 'apt-get source'
##deb-src http://archive.raspberrypi.org/debian/ jessie main ui
deb http://ftp.jaist.ac.jp/debian/ jessie main ui

てな感じで一番上の行をコメントアウトして、一番下の行を追加してみた。

よし、今度こそ!

$ sudo apt-get update
無視 http://ftp.jaist.ac.jp jessie InRelease
エラー http://ftp.jaist.ac.jp jessie Release.gpg
  ftp.jaist.ac.jp:80 (150.65.7.130) への接続を開始できません。 - connect (101: ネットワークに届きません) [IP: 150.65.7.130 80]
  :
  :
エラー http://ftp.yz.yamagata-u.ac.jp jessie Release.gpg
  ftp.yz.yamagata-u.ac.jp:80 (133.24.248.18) への接続を開始できません。 - connect (101: ネットワークに届きません) [IP: 133.24.248.18 80]
  :
  :
W: http://archive.raspberrypi.org/debian/dists/jessie/ui/i18n/Translation-en の取得に失敗しました  archive.raspberrypi.org:80 (93.93.130.39) への接続 を開始できません。 - connect (101: ネットワークに届きません) [IP: 93.93.130.39 80]
 
E: いくつかのインデックスファイルのダウンロードに失敗しました。これらは無視されるか、古いものが代わりに使われます。

よし、もう寝る!



ああ、ドキドキが止まらない