Seeker's Memo

個人的で技術的かもしれないメモがメインのブログです。http://seekers.hatenablog.jp/about

【2019年08月版】 VirtualboxにGentooをsystemdでインストールするときの自分用簡易メモ

※ポイントだけ抜粋につき、注意。詳細はGentoo Handbookなど(1次情報とか)をどうぞ。本家の情報と見比べながらやると良い。
※実機インストールも対して変わらん気がする

デスクトップ環境はお好きなものを、とりあえずの足がかり(GUI画面で作業するため)にi3wmとかawesomeなんかが良さげ


CPU(システム):一般的なAMD64
Mem:8GB もうちょっと少なくても余裕で動くかもだが、たくさんビルドするしなぁ……

シェル:ZSH
ログインマネージャ:lightdm
デスクトップ環境:なんでも。ここではAwesomeを選んでいる。GNOMEがよければ、gnomegnome-lightグループなどをインストール。
CUIエディタ:emacs-nox予定
GUIテキストエディタ:gedit予定
クリップボードマネージャ:何がいいかな?x11-misc/gpasteとか? Parcelliteでもいいか
ターミナル:シンプルな(背景透過対応の)ターミナルのterminatorを予定(またはドロップダウンターミナルのGuakeが好き)
日本語入力インプットメソッド系ibus+mozcを想定

Virtualbox

作成するときにLinux-Gentoo(x64)を指定しておく
設定開いて色々と好きなように設定する。
なおシステムはEFIを選択し、時刻はUTCは選択しなかった。
仮想化技術はできるだけ有効にしたい。
HDDイメージは多分だけど30~40GB程度あればダイジョブだとは思うけどわからん、公式の最低要件なんだっけ。

ネットと時計のセットアップとディスクパーティションフォーマットとマウントtarballの展開
ベースシステムの導入(抜粋。ディスクの準備やportageミラーの設定とPortage更新とかは端折っているのでamd64-Handbookでも見てください)

/etc/portage/make.conf

COMMON_FLAGS="-02 -pipe -march=x86-64"
MAKEOPTS="-j6"

  • march=nativeでも良さそうだが仮想PCなのでnative指定は不具合が起こる可能性。そもそも、marchの指定要らないかも?

USE変数はとりあえず最小限で

USE="symlink unicode cjk nls systemd alsa cdr dvd"


ハンドブックに従って時刻関係とロケールをとりあえず設定。Systemd予定なのでその他のホスト名やらはArch Wikiのほうがわかりやすいかも

eselectでsystemdのはいったdefault/stableのプロファイルをセット
環境の更新
# env-update && source /etc/profile

ベースシステムのSystemdのための全体更新
# emerge -e @world

ほしいツールや必須のものなどをインストール
# emerge --uDN --ask app-portage/gentoolkit dhclient eix lshw pciutils nkf htop bash-completion zsh zsh-completions zsh-syntax-highlight git exfat-utils ntfs3g mlocate dosfstools ccache dhcpcd link app-shells/gentoo-bashcomp gentoo-zsh-completions app-shells/gentoo-collections

カーネルブートローダ

カーネルビルドと設置
# emerge gentoo-sources
# ls -l /usr/src/linux
# cd /usr/src/linux && make menuconfig
# make -j6
# make modules_install
# make install

ブートローダ
# emerge grub:2 efibootmgr
loglevelは好みなので追記しなくても良い。
# nano /etc/default/grub

GRUB_CMDLINE_LINUX="loglevel=3 init=/usr/lib/systemd/systemd"

# grub-install --target=x86_64-efi --efi-directory=/boot/efi
# cp /boot/efi/EFI/boot/grubx64.efi /boot/efi/EFI/boot/bootx64.efi
# grub-mkconfig -o /boot/grub/grub.cfg


一通りベースが完成したら、再起動して、
# systemd-machine-id-setup
# hostnamectl set-hostname
# timedatectl set-ntp true && timedatectl set-timezone Asia/Tokyo
# ntpd -q -g

sudoの設定

# emerge -auDN sudo
# EDITOR=nano visudo
%wheel行のところを上1箇所だけアンコメントして保存

一般ユーザ作成

# useradd -m -g users -G wheel,video,usb,cdrom,audio [user]

デフォルトシェルの変更

$ chsh -s /bin/zsh [USER]

フレームバッファコンソール(fbtermを選択してみた。JFBTERMでもいいけど動くんかいな)

# emerge -auDN fbterm
# chmod u+s /usr/bin/fbterm
# setcap 'cap_sys_tty_config+ep' /usr/bin/fbterm
# systemctl set-default multiuser.target(graphical.targetかもわからん)
# gpasswd -a [USER] video
# reboot

Xサーバーとか色々導入

フレームバッファコンソールで快適作業
$ fbterm

パッケージの軽量検索ツール
$ sudo eix-update
使用例
$ eix xf86-video-


/etc/portage/make.conf:XorgドライバとGUI用設定、上記の下辺りに追記しておく。

USE="${USE} X ibus dbus"
VIDEO_CARDS="vesa virtualbox"
INPUT_DEVICES="libinput"

サンプルなので、あれだがフル活用したいなら「virtualbox」は必要かも。それ以外の場合は、libinputとvesaでOKかも
実機なら入力はlibinput、VIDEOはintel amdgpu nvidia(oss=nouveau) radeon(もしくはRadeonoss-versionのドライバ)あたりから環境にあったものを、vesa入れておいて損はないはず。グラフィックドライバの詳細や各種設定方法はGentooハンドブックなどを参照のこと
$ sudo emerge --ask --deep --update --newuse [好きな日本語対応フォント。media-fonts/mix-mplus-ipaとかRicty!]
$ sudo emerge --ask --deep --update --newuse xorg-server xinit xorg-drivers mesa mesa-progs setxkbmap libnotify xclip xsel
$ sudo eselect opengl set xorg-x11

AwesomeとターミナルとGoogleChrome
$ sudo emerge --ask -uDN awesome terminator www-client/google-chrome
$ mkdir -p ~/.config/awesome && cp /etc/xdg/awesome/rc.lua ~/.config/awesome/rc.lua
$ nano ~/.config/awesome/rc.lua

terminal="terminator"

$ awesome -k ~/.config/awesome/rc.lua

ログインマネージャ(グラフィカルディスプレイマネージャ)
# emerge --ask -uDN lightdm lightdm-gtk-greeter
# nano /etc/lightdm/lightdm.conf

[Seat:*]
greeter-session=lightdm-gtk-greeter

# systemctl set-default graphical.target
# systemctl enable lightdm.service

インプットメソッド・日本語入力設定

# emerge -auDN ibus mozc
$ nano -w ~/.xprofile

export LANG=ja_JP.UTF-8
export GTK_IM_MODULE=ibus
export QT_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export XIM=ibus

ibus-daemon -xdr

ibus+mozcのバグフィックス

$ sudo nano /usr/share/ibus/component/mozc.xml

layout default layout

のところのdefaultをjpに書き換えておく

システムの日本語化

# localectl set-locale LANG=ja_JP.UTF-8
# localectl set-keymap jp106
# localectl set-x11-keymap jp

再起動とユーザーログイン(Awesomeの起動と操作)できることを確認
ibus-mozc起動と設定。

$ ibus-setup

各種GUIディレクトリの英語化

端末を開いて、
$ LANG=C xdg-user-dirs-update --force

Virtualbox Guest Additionの導入(デフォルトは現在バージョン5系の「5.2.26」らしい。本家Virtualboxは6.0.10とかだが、GentooPortageではマスクされてる)

# emerge --ask -uDN app-emulation/virtualbox-guest-additions libnotify
# systemctl enable virtualbox-guest-additions.service

仕方ないので、クライアントと同じバージョンのISOから導入。
# mount /mnt/cdrom && cd /mnt/cdrom
# ./VBoxLinuxAdditions.run
$ sudo gpasswd -a $USER vboxusers
$ sudo reboot
$ sudo VBoxClient-all

お疲れさまでした

Optional:: layman (Portage Overlay)の導入

Layman - Gentoo Wiki

トラブルシュートメモ

IBUS+MOZCが設定され、デーモンが起動していることを確認。
またGUIでそもそもキーボード配列がおかしかったらとりあえず端末開いて、
setxkbmap -v && setxkbmap jp && setxkbmap -v

便利ツールなど一覧(自分用メモ)

mpg123
mplayer
vlc
qemu
flaggie
crossdev(crosstool-ng)
distcc
mplayer
vlc
Audacious
libisoburn(xorriso)