gentoo-on-rpi-64bit 初期セットアップ
ココに書いてあるものをなぞった このページにラズパイで Gentoo を便利に稼働させる細かいノウハウがあるので一読した方が良い。これを作った sakaki- 氏すごい。 Gentoo 一般についてはGentoo Linux amd64 ハンドブック:Gentoo での作業にまとまっている。
条件
- Linux マシン( Ubuntu 21.04 ) で行った。
- 解凍に zstd が必要
- Xfce, LibreOffice, VLC, Kodi, GIMP などを含むデスクトップ環境を選択した(ライトイメージもある)
- ライトイメージの場合、解凍されたファイル名も異なるので読み替えが必要
手順
SD カードが刺さっているパスを確認する
SD カードを Linux マシンに刺した上で /var/log/syslog を確認するか lsblk で確認する。
$ sudo lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223.6G 0 disk
├─sda1 8:1 0 300M 0 part /boot/efi
└─sda2 8:2 0 223.3G 0 part /
sdb 8:16 1 28.9G 0 disk
├─sdb1 8:17 1 255M 0 part
└─sdb2 8:18 1 28.6G 0 part私の場合は /dev/sdb で認識されていた。
イメージのダウンロード、解凍、書き込み
※ SD カードが認識されているパスによってコマンドが変わるので注意 私は /dev/sdb だった。
作業用ディレクトリ作成
tmpdir=$(date +%Y%m%d%H%M) && mkdir $tmpdir && cd $tmpdirデスクトップ版をダウンロードと展開
wget -c https://packages.genpi64.com/genpi-aarch64-desktop-latest.img.zst
zstd -d genpi-aarch64-desktop-latest.img.zst -o genpi-aarch64-desktop-latest.img
sudo dd if=genpi-aarch64-desktop-latest.img of=/dev/sdb bs=1M status=progress; sudo syncライト版をダウンロードと展開
wget -c https://packages.genpi64.com/genpi-aarch64-lite-latest.img.zst
zstd -d genpi-aarch64-lite-latest.img.zst -o genpi-aarch64-lite-latest.img
sudo dd if=genpi-aarch64-lite-latest.img of=/dev/sdb bs=1M status=progress; sudo syncラズパイに SD カードと LAN ケーブル、電源とディスプレイ、キーボードを接続して起動、ログイン
ssh demouser@IP アドレス でログインできる。
id: demouser pass: raspberrypi64 でログインできる。
- ssh で外部から作業した方が捗るので IP アドレスを確認する。
- デフォルトで sshd が起動しているので IP アドレスが分かっているならいきなり ssh ログインで良い。
- 外部から ssh demouser@IP アドレス でログインできることを確認する
アカウント追加
初回起動時にキーボードや wifi 設定を変えられるアプリが起動しているので必要に応じて変更 ( Application => Setting => RPi Config Tool からでも開ける )
ユーザーの追加と削除( オプション )
ユーザー名は適宜変更
sudo useradd --create-home --groups "adm,disk,lp,wheel,audio,video,cdrom,usb,users,plugdev,portage,cron,gpio,i2c,spi" --shell /bin/bash --comment "tin-machine" tin-machine
sudo passwd tin-machinessh 鍵のコピーを ssh クライアントから行う
ssh-copy-id tin-machine@10.10.254.21新しく作ったユーザーでログインし sudo できることを確認、 元あった demouser の削除
sudo userdel --remove demouserロケール設定
下記は sudo -s で root になってから行う。
echo 'ja_JP.UTF-8 UTF-8' >> /etc/locale.gen
locale-gen
locale_num=$(eselect locale list | grep ja_JP.utf8 | awk '{print $1}' | sed -e 's/\[//' -e 's/\]//')
eselect locale set $locale_num && . /etc/profile
echo -e 'LINGUAS="ja"\nL10N="ja"' >> /etc/portage/make.conf参考 LINGUAS
タイムゾーン設定
cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
echo "Asia/Tokyo" > /etc/timezoneswap 追加
1GB の swap 領域を作成する例。
mkdir /var/cache/swap/
cd /var/cache/swap/
truncate -s 0 ./swapfile
chattr +C ./swapfile
btrfs property set ./swapfile compression none
dd if=/dev/zero of=swapfile bs=128M count=8
mkswap ./swapfile
chmod 0600 ./swapfile
swapon ./swapfile
echo '/var/cache/swap/swapfile swap swap defaults 0 0' >> /etc/fstab参考 Btrfs 特有の問題がある Btrfs だと copy-on-write や圧縮機能をオフにしないと swap ファイルが作れない。 なるほど。逆に失敗してくれるのはよく出来てる。
最新にアプデ
/etc/portage/make.conf で使用する CPU 数を減らす
MAKEOPTS="-j16 -l16"16 コア利用する、となっているが gcc のコンパイルに失敗するので 5 プロセス程度に留める ↓ 2021/07/18 に Github の問題提起されているされているので、将来的に値が変わるかも
MAKEOPTS="-j5 -l5"アップデート ここを参考にした
sudo emerge --sync
sudo dispatch-conf # portageが書き換える設定を確認して反映
sudo emerge --ask --update --deep --newuse --with-bdeps=y @worldportage のレポジトリの状況によっては @world でのアップデートに失敗する事もある。 その場合はアップデートする範囲を狭くする意図で @system で行ってみると上手くいく場合がある。
sudo emerge --ask --update --deep @systemNTP 設定
sudo emerge net-misc/ntp
rc-update add ntpd default
rc-service ntpd statusホスト名
sudo vi /etc/conf.d/hostname
オプショナルな設定
NFS用
sudo emerge net-fs/nfs-utilsブラウザ
emerge @preserved-rebuild
sudo emerge www-client/firefoxその他
sudo emerge net-misc/youtube-dl