こんにちは。
私はラズベリーパイを持っています。
では。
だから何だっつー話なんですが。
部屋が寒くて PC作業が辛いのです。
しかしここに載せているもののバージョンアップネタなど考えるに、ローカルで当ホームページを読みたいのです。
(ネットにアップしてあるのを読むとアクセス履歴に反映されてしまって良くないのでローカルが望ましい)
試しに Androidのスマホのローカルにデータを全て入れてみたんですが、スマホの WEBブラウザってローカルのファイルを読めてもリンクが使えないようなんで、イマイチでした。
仕方ないので、ローカルに WEBサーバーを立てようかと思い、普段はしまってあるラズパイに登場願おうというものです。
私が持っているのはこのモデルです。
Raspberry Pi 2 Model B
上記サイトにある諸元は以下の通りです。
●Specification
Compared to the Raspberry Pi 1 it has:
A 900MHz quad-core ARM Cortex-A7 CPU
1GB RAM
Like the (Pi 1) Model B+, it also has:
100 Base Ethernet
4 USB ports
40 GPIO pins
Full HDMI port
Combined 3.5mm audio jack and composite video
Camera interface (CSI)
Display interface (DSI)
Micro SD card slot
VideoCore IV 3D graphics core
32bit QuadCoreのパワフルな CPUのマシンで、メモリが 1GBという大容量、Wifiなどという軟弱なネットIFはなく、漢の実線 100Mbit/s なのが売りです。
男の中の男が使う硬派な SBCで、以下で遊んでからしばらくご無沙汰していました。
「光センサーで IoT(前編)」
「光センサーで IoT(中編)」
「光センサーで IoT(後編)」
ここでまたラズパイのリブートと洒落込んで、NGiNXサーバーにしてみたい。
買った頃は Raspbian というラズパイ専用の OSがインストールされていました。
「パイがビアンかぁ…」と感慨深く思ってましたが、Debian 8(Jessie)ベースの OSで、使い心地は Debianのそれでした。
2024年1月15日現在では、Raspberry Pi OSと名を変え、Linuxディストリの殆どが 32bitを捨ててしまった今でもまだ 32bit版が出ていて助かる気持ちです。
Raspberry Pi OSのメジャーバージョンアップは apt upgradeコマンドではできず、最初からイントールした方が良いというのが公式の見解のようですので、普通にインストールとします。
1.環境
Raspberry Pi OSは 2023年末に出たばかり、Debian 12(bookworm)ベースの 32bit版をインストールします。
SDカードの作成等の作業は VMware Workstation Playerの仮想マシンにインストールした Lubuntu 22.04.3で行います。
2.SDカード作成
SDカード作成を Ubuntuでやるのであれば、公式の aptリポジトリに「rpi-imager」というパッケージがありますので、まずそれをインストールします。
subro@Lubuntu2204:~$ sudo apt -y install rpi-imager
〜〜〜 省略 〜〜〜
インストールできました。
ラズパイから SDカードを抜いて Lubuntuが動いている PCに挿します。
Windows 10の VMware Workstation Playerで SDカード(USBデバイス)を挿すと、Windows 10の画面にこんなウィンドウが出ます。
[仮想マシンに接続] を選択し、仮想マシン名から対象のマシンを選択し、OKを押します。
では SDカードに OSを書き込みましょう。
Lubuntuでは、スタートメニューから [アクセサリ] - [imager] を選択すると「Raspberry Pi Imager」を実行できます。
OSを選ぶを押します。
ここで 32bit/64bit・Light/Full の版を選択できるんですね。
私は32bit Full版を選択します。
ストレージを選ぶを押します。
対象のSDカードを選びましょう。
右下の歯車マークを押します。
サーバーとして使うつもりなので、[SSHを有効にする] にチェックを入れ、
[パスワード認証を使う] を選択します。
ちょっと下にスクロールするとこうなります。
[ユーザー名とパスワードを設定する] にチェックを入れます。
Raspberry Pi OSのデフォルトの管理ユーザーである [pi]ユーザーのパスワードを入れましょう。
更に下にスクロールするとこうなります。
日本仕様にします。
[タイムゾーン:] を [Asia/Tokyo] に、
[キーボードレイアウト:] を [jp] にし、保存を押します。
書き込むを押します。
はいを押します。
ここから SDカードへの書き込みが始まり、結構時間がかかると思います。
風呂に入ります。
ラズベリーパイは元々子供のコンピューター教育のため「安く誰でも買えるように」という崇高な思想の下に作られたはずなのに、最近のは何かね、メモリは 8GBもあって Wifiが付いてて 3万もするとは、PC買ったほうが早いつ〜の。
というか Armで Windowsは動かない…ことはないか。
でも普通の Windowsじゃないから Excelは動かんしな。
PCの代わりにはならないじゃろ。
あのスペックに 3万払うなら中古ノート買った方がモニタもキーボードも付いてて良いんじゃない?
あぁ GPIOで遊びたいけど YouTubeももっと滑らかに観たいってことか。
横着な奴らだべ。
風呂から出ました。
SDカードはでき上がっているようです。
続ける必要は無いので [×] で閉じてしまいましょう。
3.ラズパイ起動
でき上がった SDカードをラズパイに挿してラズパイを立ち上げてみます。
線を繋ぐのは電源とネットだけ。
モニタ・キーボード・マウスは繋ぎません。
4.IPアドレス確認と sshログイン
デフォルトは DHCP設定になっていますので、私の環境だと光ルータの DHCPサーバー機能で何かしらの IPアドレスが割り振られているはずです。
しかしその IPアドレスが何か分からない…
光ルーターの DHCP割当状況を見てみました。
総当りで sshログインを試してみた結果、[192.168.1.12] だったようです。
subro@Lubuntu2204:~$ ssh pi@192.168.1.12
The authenticity of host '192.168.1.12 (192.168.1.12)' can't be established.
ED25519 key fingerprint is SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.1.12' (ED25519) to the list of known hosts.
pi@192.168.1.12's password: SDカード作成時に設定した [pi]ユーザーのパスワード
Linux raspberrypi 6.1.0-rpi7-rpi-v7 #1 SMP Raspbian 1:6.1.63-1+rpt1 (2023-11-24) armv7l
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Tue Dec 5 10:35:13 2023
pi@raspberrypi:~ $
ログインできました。
5.各種初期設定
兎にも角にもまずは固定IPにしないとどうにもなりません。
※以下の IP設定は自宅環境に合わせて読み替えて下さい。
IPアドレスを [192.168.1.200] にします。
pi@raspberrypi:~ $ sudo nmcli c mod "Wired connection 1" ipv4.addresses 192.168.1.200/24 ipv4.method manual
デフォルトゲートウェイを [192.168.1.1] にします。
pi@raspberrypi:~ $ sudo nmcli con mod "Wired connection 1" ipv4.gateway 192.168.1.1
DNSサーバーを [192.168.1.1] にします。
pi@raspberrypi:~ $ sudo nmcli con mod "Wired connection 1" ipv4.dns "192.168.1.1"
IPアドレスを新しくするため、一旦ラズパイをリブートします。
pi@raspberrypi:~ $ sudo reboot
正しく設定できていれば、新しい IPで sshログインできるはずです。
言語設定がイギリス英語になっているので日本語にします。
pi@raspberrypi:~ $ sudo localectl set-locale LANG=ja_JP.UTF-8 LANGUAGE="ja_JP:ja"
pi@raspberrypi:~ $ date
2024年 1月 15日 月曜日 21:00:00 JST
日本語表記になりました。
あとは、まぁ、パッケージを一通りアップデートしておきますかね。
pi@raspberrypi:~ $ sudo apt update
〜〜〜 省略 〜〜〜
pi@raspberrypi:~ $ sudo apt upgrade
〜〜〜 省略 〜〜〜
これで初期設定としては良いんではないでしょうか。
※個人的には raspi-configにて、SPI有効化と、GUI無効化もしています。
6.NGiNXインストール
インストールします。
pi@raspberrypi:~ $ sudo apt install -y nginx
特に何の問題もなくインストールできました。
後は [/var/www/html]ディレクトリが Document Root になっているので、そこ以下にこのホームページのデータをコピーするだけです。
これで WEBサーバーになっちゃうんだから、面白いオモチャですよね。
==========
とにかく sshで繋がるようになりさえすればコッチのものです。
あとはもう布団の中からスマホで繋いだりできますから、何でもありですね。
Raspberry Pi OSの当該バージョンですが、aptリポジトリに 最新の OpenJDK-21や、Node.js 20が無かったです。
これがまだ出たばかりだから間に合ってないってなら良いのですが「32bitのパッケージはもう作らない」って事だと困るなぁ。
Intel/AMDの CPUだと様々な OSSで 32bit版がもう出なくなりつつあって、ラズパイだけは裏切らないと思ってるんですが…。
しかし 2Bももう買って随分経つし、そろそろ 32bitは終わりなのかも知れません。
Raspberry Pi 5 はまだ技適が取れてないから我慢ですね。