Raspberry Pi OS(Buster版)をROM化する
以前、Raspbian StretchでのラズパイROM化記事を書きましたが、Raspberry Pi OS(Buster)はもっと簡単にROM化することができます。
ROM化手順
ターミナルを起動して、コマンドラインからROM化を行います。
raspi-configコマンドを実行して、以下の順に選択します。
sudo raspi-config
7 Advanced Options
AB Overlay FS
overlay file systemを有効にします。
Would you like the overlay file system to be enabled?
Yes
bootパーティションを書き込み禁止にするか聞かれるので、こちらも有効にします。
Would you like the boot partition to be write-protected?
Yes
リブートします。
Would you like to reboot now?
Yes
これだけでROM化完了です。
ROM化の確認
df コマンドでファイルシステムを確認してみます。
pi@raspberrypi:~ $ df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 433916 0 433916 0% /dev
tmpfs 94808 2832 91976 3% /run
overlay 474036 103348 370688 22% /
tmpfs 474036 0 474036 0% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 474036 0 474036 0% /sys/fs/cgroup
/dev/mmcblk0p1 258095 68280 189816 27% /boot
tmpfs 94804 0 94804 0% /run/user/1000
ルートディレクトリのファイルシステムがoverlayとなっていればROM化されています。
編集しても、リブートすればもとに戻ります。
bootパーティションが書き込み禁止になっているかも確認してみます。
pi@raspberrypi:~ $ touch /boot/aaa
touch: cannot touch '/boot/aaa': Read-only file system
ファイルを作ろうとするとエラーになります。
ROM化解除手順
編集したい場合は、ROM化の逆の手順を行ってROM化を解除します。
raspi-configコマンドを実行して、以下の順に選択します。
sudo raspi-config
7 Advanced Options
AB Overlay FS
overlay file systemを無効にします。
Would you like the overlay file system to be enabled?
No
bootパーティションを書き込み禁止にするか聞かれるので、無効にします。
Would you like the boot partition to be write-protected?
No
リブートします。
Would you like to reboot now?
Yes
これでROM化が解除されます。
Raspberry Pi OSをインストールしてWindowsからsshでログインする
Raspberry Pi OSをインストールしてみる
RaspbianからRaspberry Pi OSに変わったのでインストールしてみます。
ハードウェアはRaspberry Pi Model 3B+
インストーラ
インストーラも新しくなりました。
https://www.raspberrypi.org/downloads/
からインストーラをダウンロードしてインストールします。バージョンは1.4。
SDカードリーダー等でMictoSDカードをPCに接続します。
インストーラを起動後は、Operating Systemとインストール先のSD Cardを選択してWRITEをクリックするだけ。
今回はRaspberry Pi OSのDesktop版を選択しました。
公式ページの情報だとこんなバージョンです。
Raspberry Pi OS (32-bit) with desktop
Image with desktop based on Debian Buster
Version:August 2020
Release date:2020-08-20
Kernel version:5.4
Size:1133 MB
他にはRaspberry Pi OSのLite,Fill、Ubuntuなども選択できます。
初期設定
せっかくDesktop版を選びましたが、ここからはターミナルで初期設定を行います。
キーボードレイアウト
ラズパイは初期設定では英国キーボードになっていて使いにくいので、日本語キーボードに変更します
ターミナルを開きます。
sudo raspi-config
コンフィグ画面が開きます
4. Localisation Options
I3 Change Keyboard Layout
の順に選びます。
Keyboard modelを聞かれましたが、使っているキーボードが選択肢になかったので適当にLogitechを選びました。
次にKeyboard Layoutを選択します。こちらは重要です。
Other
Japanese
Japanese - Japanese (OADG 109A)
の順に選択しました。
最後の(OADG 109A)は使用しているキーボードに合わせて選択してください。
続いてkey function as Altgrを選択します。
AltGrというキーは日本語キーボードには無いのでNo AltGr keyを選択します。
さらにCompose keyを選択します。
こちらはよくわからなかったので、No compose keyを選択しました。
これですべての設定が終わったのでYesを選択したら完了です。
ssh
次にsshの設定を行います。
sudo raspi-config
コンフィグ画面が開きます
5 Interfacing Options
P2 SSH
の順に選べばsshでアクセスできるようになります。
ラズパイのIPアドレスを確認しておきます
ipconfig
eth0の後のIPアドレスを覚えておきます。
私の環境では192.168.11.13でした。
Windowsからsshでアクセス
sshでアクセスする準備ができたので、ここからはWindowsに戻ります。
Windows10であればOpenSshが最初からインストールされているのでsshコマンドが使えます。
先ほど確認したラズパイのIPアドレスを使います。
ラズパイの初期パスワードは pi
パスワードは raspberry なので、以下のコマンドを実行します。
ssh pi@192.168.11.13
パスワードを聞かれたら raspberry と入力するとラズパイにログインできます。
Go Modulesで自作のサブパッケージを使う
Go Modulesでローカルのサブパッケージを使ってみる
ディレクトリ構成
└─gomodsample
│ main.go
│ sample.exe
│
└─sub
sub.go
まずはGo Modulesの初期化
go mod init yrhw0609/sample
yrhw0609/sampleという名前で初期化しました
サブパッケージにSubFuncという関数を作成します
sub.go
import "fmt"
func SubFunc() {
fmt.Println("sub")
}
先ほどのSubFuncをmainパッケージから呼び出します
main.go
package main
import (
"yrhw0609/sample/sub"
)
func main(){
sub.SubFunc()
}
yrhw0609/sample/subというパッケージになっています
あとはbuildするだけ
go build
VirtualBoxの仮想マシンが開けない
VirtualBoxの仮想マシンを久々に起動しようとしたら、「セッションを開けませんでした」というエラーが表示されてしばらくハマっていました。
なんとか解決できたので、メモしておきます。
エラーの内容
動作環境
Windows10 pro
試したけどダメだったこと
- VirtualBoxを再起動
- VirtualBoxのアップデート
- Windowsを再起動
- 保存状態を破棄
- ヘッドレス起動
- Windowsの機能の有効化でHyper-Vを無効
うまくいったこと
以下の手順でHyper-VをOFFにする
1. コマンドプロンプトを管理者として起動
2. bcdedit /set hypervisorlaunchtype off
3. Windows再起動
その後VirtualBoxを起動したらうまくいった!
原因
どうやらDockerを使うためにHyper-Vを有効にしたのが原因だったらしい。
とはいえ、Dockerが使えないのは困るので、普段はHyper-VをONにしておく
Hyper-VをONにする手順
1. コマンドプロンプトを管理者として起動
2. bcdedit /set hypervisorlaunchtype auto
3. Windows再起動
GO言語+Windows10でSQLite
GO言語+Windows10でSQLiteをインストールしようしたらハマったのでメモ
go getでSQLite3をインストール
PowerShellを起動して以下のコマンドを実行します。
go get github.com/mattn/go-sqlite3
# github.com/mattn/go-sqlite3
exec: "gcc": executable file not found in %PATH%
gccが無いというエラーが出てしまいます。
gccをインストール
こちらのサイトを参考にしました。
https://www.write-ahead-log.net/entry/2016/07/01/133824
tdm-gccを以下のサイトからダウンロードします。
今回は、64bitのWindows10を使っているので、TDM64 bundleをダウンロードして、デフォルトの設定のままインストールしました。
もう一度go getでSQLite3をインストールしてみます。
go get github.com/mattn/go-sqlite3
今度はエラーが出ないで終了しました。
ラズパイにwindowsからアクセスできる共有フォルダを作成する
sambaサーバーをインストール
ラズパイにsambaサーバーをインストールします。
$ sudo apt install samba
共有フォルダにするディレクトリを設定
/home/pi/sharedを共有フォルダにします。
$ mkdir /home/pi/shared
読み書き可能な共有フォルダにしたいので、ディレクトリの権限を変更します。
$ chmod 777 /home/pi/shared
sambaサーバの設定を変更します。
$ sudo /etc/samba/smb.conf
共有フォルダの設定を末尾に追記します。
プリンタ等の設定がデフォルトで書かれているので、必要な部分コピペして変更しました。
[shared] ;この名前が共有フォルダ名になります
path = /home/pi/shared ;共有したいディレクトリのパス
guest ok = yes ;ゲストアクセスを許可
read only = no ;書き込み可能
create mask = 777 ;作成するファイルの権限
sambaデーモンを再起動
$ sudo service smbd restart
windowsからアクセス
windowsのexplorerで、\\<ラズパイのIPアドレス>\shared と入力
完了!