Tag: Gentoo

Build.distのメモ

概要 RasberyPi用のGentooであるGenPi64というプロジェクトがある。 ただアップされているイメージが古い、様子。 新しいGentooを試したい。 GenPi64のイメージを作製するには GenPi64/Build.Dist: Build scripts for building GenPi64 images.を使う。 仕組みは非常に合理的というか良くできている、が、うまく動かなかったので仕組みを調べている。 これはそのメモ。 サイト内関連ページ トラブル関連 プルリク作った時のメモ 手順 事前準備 必要なパッケージ追加 sudo emerge --ask dev-python/lockfile dev-python/iniparse sys-fs/btrfs-progs sys-fs/dosfstools sys-block/parted sudo QEMU_USER_TARGETS="aarch64 arm" QEMU_SOFTMMU_TARGETS="aarch64 arm" USE="static-libs" emerge --changed-use --ask --newuse --quiet app-emulation/qemu 以前は dev-python/pychroot も必要としていた。 が、pychrootが2023/12/22にアーカイブされてしまい、Gentooとしてもパッケージが存在しないようになってる。 GitHub - pkgcore/pychroot: a python library and cli tool that simplify chroot handling この人も困ってそうではあるが User:Maffblaster/Todo - Gentoo Wiki quick start https://github.com/GenPi64/Build.Dist/ を git pull し、ディレクトリに移動 Read more...

Gentooでkubernetesのセットアップに失敗した

事前準備 固定 IP 化 swap を無効化 docker のインストールと自動起動 cgroup で CPU とメモリーが有効になっている必要がある Gentoo で OpenRC だと /etc/rc.conf で設定する。 Gentoo側は Cgroup v1 と v2 の設定が選べる(hybrit になるようだ)。 Kubernetes での Cgroup v2 サポートは Docker で Docker Engine 20.10 から実装された模様 2021/10/10 時点の 私の Gentoo の Docker のバージョンを確認した所、20.10.7 だった。 kubernetes は 1.22 から Cgroup v2 をサポートした模様 参考 Kubernetes 1.22 における新機能は? なぜ失敗しているのか? kubeletやkubeadmのコンパイルは上手くいく。そういう観点でパッケージメンテナの作業は成功している。 kubeletも起動している。kubeadm –dry-runも正常に終了する。が実際にkubeadmで構築する段階で失敗している。 ここまま検証するより、一度、正常に動作しているkubenetesと比較した方が検証が進みやすそうだったので、構築できたk3s.ioを用いて検証を続けている。 kubernetes をインストールする gentoo は標準でパッケージが用意されていたので、それでどこまで行けるか確認してみる。 パッケージインストール app-admin/helm がマスクされていたのでマスクを外す。 cat << EOF | sudo tee -a /etc/portage/package. Read more...

RaspberryPiでUSBブートを試みる

背景 SD カードが壊れた。最近のラズパイは HDD ブートに対応しているので HDD ブートで Gentoo を起動した。 作業としては通常の RaspberrypiOS で起動、(新しいラズパイなら不要だと思うが私は必要だった)ファームウェアのアップデートを行い、 Genpi64 のイメージをダウンロード、HDD に書き出し、起動した。ハマるポイントは無く、意外とスムーズに起動した。 2021/09/28 RaspberryPi 4B で確認した。 Raspberry Pi 2B、3A+、3B、3B+の場合、手順は異なるかもしれない。 手順 ファームウェアが古い場合はアップデート HDD ブートはファームウェアが「2020-09-03」以降である必要がある。 参考 [SDカード不要? 「Raspberry Pi 4」をUSBブートさせる方法について https://gadgetrip.jp/2021/05/raspberry_pi4_usb_boot/ ラズパイ4を完全 USB Boot 化 コマンド 効果 vcgencmd bootloader_version 現在のブートローダーのバージョンを確認 rpi-eeprom-update アップデートがあるか確認 sudo rpi-eeprom-update -a アップデート ファームウェアのバージョンを確認するため rpi-imager をRaspberrypiOS のページからダウンロードして、SD カードに書き込み起動する。 ラズパイ4を完全 USB Boot 化を参考にさせていただきファームウェアのアップデートを行った。 Read more...

Gentoo ラズパイ関連

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 lsblk NAME 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. Read more...

GenPi64でrootパーティションの拡張

partedを起動 GenPi64 /home/demouser $ sudo parted GNU Parted 3.6 Using /dev/sda Welcome to GNU Parted! Type 'help' to view a list of commands. セクタ単位に表示を切り替え (parted) unit s 空きスペース確認 (parted) print free Model: SATA SSD (scsi) Disk /dev/sda: 468862128s Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 63s 2047s 1985s Free Space 1 2048s 524287s 522240s primary fat16 boot, lba 2 524288s 9682946s 9158659s primary btrfs 9682947s 468862127s 459179181s Free Space resizeは使えない Read more...

Softether関連

ソースからインストール 環境 gentto raspi64に Softether をインストール 手順 git clone https://github.com/SoftEtherVPN/SoftEtherVPN_Stable.git cd SoftEtherVPN_Stable ./configure && make -j5 && sudo make install インストール後のファイル構成 /usr/{vpnbridge, vpnclient, vpncmd, vpnserver} ディレクトリが作成され、 例えば/usr/vpncmd配下には hamcore.se2, vpncmd など必要なファイルが設置される。 2021/08時点では設定ファイルもこのディレクトリ配下にいくつか置かれている。 この hamcore.se2のパーミッションは -rw------- 1 root root 2009296 8月 18 12:33 hamcore.se2 なので、rootで実行する必要がある。 sudo vpncmd rootで実行しないと下記のエラーがでた。 -- Alert: SoftEther VPN Kernel -- Fatal Error: The file "hamcore.se2" is missing or broken. Please check hamcore.se2. (First, reboot the computer. If this problem occurs again, please reinstall VPN software files. Read more...

Gentoo distccd Docker

背景 Gentoo の Docker イメージが作りたい。が、 オフィシャルの gentoo/stage3-amd64 の更新頻度が低い( 2021/08/08 時点で以前のアップデートが 1 年前だった ) portage 用のイメージ gentoo/portageがあり、こちらは毎日更新されている。 コマンドや glibc などが置かれているビルド済みの領域は gentoo/stage3-amd64 に置かれているため、実際に使うときには emerge –update –deep –newuse @world とリビルドが必要 リビルドするとイメージのサイズがかなり増える が、できればコンパクトなイメージにしたい。 結論(2021/08/17 時点) docker-slimを使ってイメージをコンパクトにする方法が一番コンパクトになった。 手法 サイズ 備考 ダウンサイジング前 3.04GB 不要なディレクトリの削除 1.8GB emerge が一時的に使うファイル郡 (上記ディレクトリ削除に加えて)不要なパッケージの削除 983MB パッケージ一覧を見ながら不要そうなパッケージを削除 docker-slim 39MB Dockerfile サンプル ここに公開した 手法の比較 不要なディレクトリ削除は emerge が一時的に使うファイル郡を削除するだけなので安全に使える。 Read more...

make.confのメモ

make.confの FEATURES のメモ 私が良く使う、あるいは検討したもの。man make.confでも確認できる。 usepkg ローカルで使用可能なパッケージの利用を試みる バイナリーパッケージガイド - Gentoo Wiki getbinpkg リモートのバイナリパッケージホストからバイナリパッケージをダウンロード バイナリーパッケージガイド - Gentoo Wiki buildpkg インストールするたびにバイナリパッケージを作成する バイナリーパッケージガイド - Gentoo Wiki binpkg-multi-instance パッケージディレクトリを新しい形にする portage-3.0.15以降はデフォルとなので不要 バイナリーパッケージガイド - Gentoo Wiki parallel-fetch 同時に複数回呼ばれた場合、プロセス間の干渉を防ぐ Project:Portage/FAQ - Gentoo Wiki parallel-install インストール時、キメの細かいロックを使用して高度な並列化を行う、更に並列化を行う場合はebuild-lockを無効化する man make. Read more...

distccのサーバ/クライアント設定

distcc サーバーを建てる 概要 ラズパイ Gentoo GenPi64 でのコンパイルに時間がかかるので、 amd64 のマシンの docker 上にクロスコンパイル環境を構築、 distcc デーモンを立てて、ラズパイがクライアント、amd64 が distcc サーバの構成でコンパイルを早くした。 手順 distcc が起動する docker コンテナを作る distcc への接続確認 telnet コマンドでポート 3632 に接続。 切断は Ctrl + ] を押してから Ctrl + d $ telnet localhost 3632 Trying ::1... Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. ^] telnet> Connection closed. GenPi64 distcc クライアント側の設定 GenPi64 は distcc はインストール済みなので emerge は不要。ただし gcc のプロファイルを揃える distcc サーバーの IP アドレスの追加 は必要。 gcc のプロファイルを確認 Read more...