LOOX U/C40にGentoo Linuxを入れてみた
先日ひさしぶりにArchlinux32が入ったLOOX U/C40を起動してアップデートしたら壊れて再インストールしたが、
現在のArchlinux32は公式リポジトリでパッケージバージョンの不整合が起きてるようで自分でlibにリンク張ったりする必要があって継続利用は厳しいと感じた。
古いPCで使える32bitのLinuxを探したんだが、Gentoo Linuxならソースからビルドだから永久に32bit対応じゃね?
つーわけでGentoo Linuxをインストールしてみた。
現在のArchlinux32は公式リポジトリでパッケージバージョンの不整合が起きてるようで自分でlibにリンク張ったりする必要があって継続利用は厳しいと感じた。
古いPCで使える32bitのLinuxを探したんだが、Gentoo Linuxならソースからビルドだから永久に32bit対応じゃね?
つーわけでGentoo Linuxをインストールしてみた。
公式サイトからx86のMinimal Installation CDをダウンロードしてきて、USBメモリにcatで書き込んでsyncして抜き取る。
以前はUSBメモリにisoを書き込む時にddしてたが、この前Archlinux32を再インストールする時にArch LinuxのUSBメディアの作成方法がcatになってたんで同様にcatで書き込んだ。
昔からcatは変わってないと思うが、なんで昔はddだったんだろ?
USBメモリでブートするとキーマップの選択ぽいのがでるんでjpを入力するとjpキーボードになる?
jpキーボードに初回はならなくてloadkeys jp106したんだが、インストール中に問題が生じて再起動したときは最初からjpキーボードだったんで入力ミスったかも?
[ネットワーク]
ISOから起動すると有線DHCP環境の場合は自動でネットワークが利用できるがwifiはダメ。
net-setupってコマンドがあるんでそれ使った。
[ストレージ]
[マウント]
Gentooハンドブックでマウント後にcdしてたんで同じようにしてたが、rootfsのtarをダウンロードする際にストレージ上に保存するってだけだと思うんで、
メモリが十分にあればcdしなくても良いと思う。
ハンドブックだとミラーからStage3(初期rootfs?)をLinksでダウンロードしてくるように書いてあるが、ミラーのファイルはバージョンがバラバラだったんで、
[Get Gentoo]を押して公式サイトのダウンロードページに飛んで[x86]を押してi686 systemdのStage3を落とした。
[Stage3の展開]
[chroot]
arch-chrootみたいなコマンドがほしい・・・
[ミラーサーバーを選択]
mirrorselectコマンドはダイアログが出てきてスペースで選択(複数可)してEnterで終了。
出力をportageの設定ファイルに追加する。
パッケージ管理コマンドはemergeなのにパッケージシステムはportageって名称って感じかな?
ftp://の日本のサーバーを選択した。
[バイナリパッケージ]
だが、64bitならそこそこバイナリパッケージがあるようなんだがi686だとほとんど無かった。
[CPU_FLAGS]
[linux-firmware]
linux-fw-redistributableはクローズドだがバイナリ再頒布が認められたものがインストール対象になるぽい。
[kernelインストール]
sys-kernel/installkernel grub dracutをつけるとカーネル(再)インストール時にgrub.cfgとinitramfsの再作成が行われる。
gentoo-kernelが標準kernelでbinパッケージを入れた。
が、kernel自体はバイナリだが依存関係で80パッケージインストールになって12時間ほどかかった。
/etc/portage/make.confはportageのグローバル設定ファイル。
[fstab]
[rootパスワードとユーザー作成]
[システム初期設定]
キーボードはjp106にしたらエラーになった。
ホスト名もよくわからんかったからnanoで直接設定した。
[時刻同期]
メインPCを参考にsystemd-timesyncdで同期するようにした。
Arch Wikiが詳しい。
[ファイルシステムツール]
[DHCP]
[Wifi]
が、+clientのUSEフラグをつけないとiwdのインストールの際にiwctlが入らない模様。
なしでインストールして最後の出力で気づいた・・・
[ブートローダ]
[Y]押した直後にリビルドになってるのに気づいたが、強制終了しちゃって良いのかわからなかったんで再インストールしたが2時間ほどかかった・・・
grub-mkconfigはkernelインストールの際に行われてるので省略可能だが、確認のため。
grub-installが完了すれば/dev/sdaから再起動できるが、
grub-installなんか秒で終わる気がするが10分以上経っても終わらなくておかしいと思って強制終了して何度か試したが完了しなかった。
lsコマンドとかもやたら遅くなってて、どうやらパッケージビルドでディスクアクセスしまくりで異常が発生していた模様。
grubが入る前に再起動は避けたかったが、再起動してchrootからやり直すことにした。
再起動後は秒でgrub-install完了した。
問題なくインストールしたシステムで起動してiwdでネットワークも繋がった。
xfce環境を構築しようとして、
Gentooハンドブックでシステムのプロファイルをdesktopにするのが推薦されているが、gnomeとplasmaにはsystemdのプロファイルがあるが、desktopにはsystemdのプロファイルがないんで変更しなかった。
xfceを入れるとpopplerが依存で入るがpopplerは標準だとqt5が入るらしいんで、
xfce-extra/xfce4-notifydを先に入れるように書かれているんで、
/etc/portage/make.confでUSEフラグに"X gtk3 harfbuzz"を追加するとインストールできる。
が、途中でまた遅くなった感じがして、よく見るとemergeの出力に紛れてjournaldのエラー出力が・・・
強制終了して再起動して、journaldのログ出力をvolatileに変更した。
emerge強制終了後は、
でインストール進めてたんだが、どうもメモリ不足ぽいエラーで止まった。
1GBだとxfceのビルドはできない模様・・・
ストレージをメインPCにつないでQEMUでビルドするとか考えたが、面倒だわ。
Gentoo以外にLinuxではなくBSDを使うってことも考えたんだが、そっち方向試してみるか・・・
tinycoreなんかもi686対応なんで考えたが、あれはストレージには余裕がないがメモリには余裕がある環境向けよね・・・
以前はUSBメモリにisoを書き込む時にddしてたが、この前Archlinux32を再インストールする時にArch LinuxのUSBメディアの作成方法がcatになってたんで同様にcatで書き込んだ。
昔からcatは変わってないと思うが、なんで昔はddだったんだろ?
# cat>/dev/sda
# sync
sdaがUSBメモリ。# sync
USBメモリでブートするとキーマップの選択ぽいのがでるんでjpを入力するとjpキーボードになる?
jpキーボードに初回はならなくてloadkeys jp106したんだが、インストール中に問題が生じて再起動したときは最初からjpキーボードだったんで入力ミスったかも?
[ネットワーク]
ISOから起動すると有線DHCP環境の場合は自動でネットワークが利用できるがwifiはダメ。
net-setupってコマンドがあるんでそれ使った。
[ストレージ]
# fdisk /dev/sda
# mkfs.ext4 /dev/sda1
Archlinux32を再インストールした際に/bootを分けて失敗したんでシングルパーティションにした。# mkfs.ext4 /dev/sda1
[マウント]
mount /dev/sda1 /mnt/gentoo
cd /mnt/gentoo
最初から/mnt/gentooが作られてるんで、そこにマウント。cd /mnt/gentoo
Gentooハンドブックでマウント後にcdしてたんで同じようにしてたが、rootfsのtarをダウンロードする際にストレージ上に保存するってだけだと思うんで、
メモリが十分にあればcdしなくても良いと思う。
ハンドブックだとミラーからStage3(初期rootfs?)をLinksでダウンロードしてくるように書いてあるが、ミラーのファイルはバージョンがバラバラだったんで、
[Get Gentoo]を押して公式サイトのダウンロードページに飛んで[x86]を押してi686 systemdのStage3を落とした。
[Stage3の展開]
# tar xpvf stage3-*.tar.xz --xattrs-include='*.*' --numeric-owner -C /mnt/gentoo
[chroot]
# cp --dereference /etc/resolv.conf /mnt/gentoo/etc/
# mount --types proc /proc /mnt/gentoo/proc
# mount --rbind /sys /mnt/gentoo/sys
# mount --make-rslave /mnt/gentoo/sys
# mount --rbind /dev /mnt/gentoo/dev
# mount --make-rslave /mnt/gentoo/dev
# mount --bind /run /mnt/gentoo/run
# mount --make-slave /mnt/gentoo/run
# chroot /mnt/gentoo /bin/bash
# source /etc/profile
# export PS1="(chroot) ${PS1}"
Gentooハンドブックの通りにやったがめんどくさい。# mount --types proc /proc /mnt/gentoo/proc
# mount --rbind /sys /mnt/gentoo/sys
# mount --make-rslave /mnt/gentoo/sys
# mount --rbind /dev /mnt/gentoo/dev
# mount --make-rslave /mnt/gentoo/dev
# mount --bind /run /mnt/gentoo/run
# mount --make-slave /mnt/gentoo/run
# chroot /mnt/gentoo /bin/bash
# source /etc/profile
# export PS1="(chroot) ${PS1}"
arch-chrootみたいなコマンドがほしい・・・
[ミラーサーバーを選択]
# emerge --ask --verbose --oneshot app-portage/mirrorselect
# mirrorselect -i -o >> /etc/portage/make.conf
emergeがパッケージ管理コマンドでapp-portageカテゴリのmirrorselectを入れる感じ。--ask --verboseは-avと省略できるみたい。# mirrorselect -i -o >> /etc/portage/make.conf
mirrorselectコマンドはダイアログが出てきてスペースで選択(複数可)してEnterで終了。
出力をportageの設定ファイルに追加する。
パッケージ管理コマンドはemergeなのにパッケージシステムはportageって名称って感じかな?
ftp://の日本のサーバーを選択した。
[バイナリパッケージ]
# /etc/portage/make.conf
# FEATURES="${FEATURES} getbinpkg"
# FEATURES="${FEATURES} binpkg-request-signature"
これでバイナリパッケージが優先されるらしい。# FEATURES="${FEATURES} getbinpkg"
# FEATURES="${FEATURES} binpkg-request-signature"
だが、64bitならそこそこバイナリパッケージがあるようなんだがi686だとほとんど無かった。
[CPU_FLAGS]
# emerge --ask --oneshot app-portage/cpuid2cpuflags
# echo "*/* $(cpuid2cpuflags)" > /etc/portage/package.use/00cpu-flags
これでコンパイルの際にCPUに最適化される?# echo "*/* $(cpuid2cpuflags)" > /etc/portage/package.use/00cpu-flags
[linux-firmware]
# nano /etc/portage/package.license
linux-firmwareを入れる際にライセンスで弾かれるんで、sys-kernel/linux-firmwareにlinux-fw-redistributableを追加する。sys-kernel/linux-firmware linux-fw-redistributable
# emerge --ask sys-kernel/linux-firmwarelinux-fw-redistributableはクローズドだがバイナリ再頒布が認められたものがインストール対象になるぽい。
[kernelインストール]
# nano /etc/portage/package.use/installkernel
/etc/portage/package.use以下のファイルに設定するとパッケージ単位でUSEフラグがつけられる。sys-kernel/installkernel grub dracut
# emerge --ask sys-kernel/gentoo-kernel-binsys-kernel/installkernel grub dracutをつけるとカーネル(再)インストール時にgrub.cfgとinitramfsの再作成が行われる。
gentoo-kernelが標準kernelでbinパッケージを入れた。
が、kernel自体はバイナリだが依存関係で80パッケージインストールになって12時間ほどかかった。
# nano /etc/portage/make.conf
標準kernelを使う場合、USEフラグにdist-kernelがあるとモジュールインストールをした場合にinitramfsの再作成などをしてくれるぽい。USE="dist-kernel"
/etc/portage/make.confはportageのグローバル設定ファイル。
[fstab]
# nano /etc/fstab
# /dev/sda1 ext4 defaults 0 0
# /dev/sda1 ext4 defaults 0 0
[rootパスワードとユーザー作成]
# passwd
# useradd -m user
# passwd user
# useradd -m user
# passwd user
[システム初期設定]
# systemd-machine-id-setup
# systemd-firstboot --prompt
# nano /etc/hostname
systemd-machine-id-setupマシンIDを設定して、systemd-firstboot --promptはキーボードとホスト名の設定なのか?# systemd-firstboot --prompt
# nano /etc/hostname
localhost
キーボードはjp106にしたらエラーになった。
ホスト名もよくわからんかったからnanoで直接設定した。
[時刻同期]
メインPCを参考にsystemd-timesyncdで同期するようにした。
Arch Wikiが詳しい。
[ファイルシステムツール]
# emerge --ask sys-fs/e2fsprogs
[DHCP]
emerge --ask net-misc/dhcpcd
systemctl enable dhcpcd
systemctl enable dhcpcd
[Wifi]
# nano /etc/portage/package.use/iwd
Gentooハンドブックだとwpa_supplicantを使うように書かれてるが、先日Archlinux32を入れた際にiwctlを使ってwpa_supplicantより簡単と思ったんでiwdを入れた。net-wireless/iwd +client
# emerge --ask net-wireless/iwdが、+clientのUSEフラグをつけないとiwdのインストールの際にiwctlが入らない模様。
なしでインストールして最後の出力で気づいた・・・
[ブートローダ]
# grub-install --target=i386-pc /dev/sda
# grub-mkconfig -o /boot/grub/grub.cfg
Gentooハンドブック見ながらインストールしてて、kernelインストールの際にgrubフラグをつけてたんでgrub-mkconfigは入ってるものと認識してたが、grub-installは入ってないと勘違いしてgrubをemergeしてしまった。# grub-mkconfig -o /boot/grub/grub.cfg
[Y]押した直後にリビルドになってるのに気づいたが、強制終了しちゃって良いのかわからなかったんで再インストールしたが2時間ほどかかった・・・
grub-mkconfigはkernelインストールの際に行われてるので省略可能だが、確認のため。
grub-installが完了すれば/dev/sdaから再起動できるが、
grub-installなんか秒で終わる気がするが10分以上経っても終わらなくておかしいと思って強制終了して何度か試したが完了しなかった。
lsコマンドとかもやたら遅くなってて、どうやらパッケージビルドでディスクアクセスしまくりで異常が発生していた模様。
grubが入る前に再起動は避けたかったが、再起動してchrootからやり直すことにした。
再起動後は秒でgrub-install完了した。
問題なくインストールしたシステムで起動してiwdでネットワークも繋がった。
xfce環境を構築しようとして、
Gentooハンドブックでシステムのプロファイルをdesktopにするのが推薦されているが、gnomeとplasmaにはsystemdのプロファイルがあるが、desktopにはsystemdのプロファイルがないんで変更しなかった。
xfceを入れるとpopplerが依存で入るがpopplerは標準だとqt5が入るらしいんで、
nano /etc/portage/package.use/xfce
app-text/poppler -qt5
でpopplerからqt5フラグを外した。app-text/poppler -qt5
xfce-extra/xfce4-notifydを先に入れるように書かれているんで、
# emerge --ask --oneshot xfce-extra/xfce4-notifyd
したが弾かれる。/etc/portage/make.confでUSEフラグに"X gtk3 harfbuzz"を追加するとインストールできる。
が、途中でまた遅くなった感じがして、よく見るとemergeの出力に紛れてjournaldのエラー出力が・・・
強制終了して再起動して、journaldのログ出力をvolatileに変更した。
emerge強制終了後は、
# emerge --resume
で再開できるらしい。でインストール進めてたんだが、どうもメモリ不足ぽいエラーで止まった。
1GBだとxfceのビルドはできない模様・・・
ストレージをメインPCにつないでQEMUでビルドするとか考えたが、面倒だわ。
Gentoo以外にLinuxではなくBSDを使うってことも考えたんだが、そっち方向試してみるか・・・
tinycoreなんかもi686対応なんで考えたが、あれはストレージには余裕がないがメモリには余裕がある環境向けよね・・・