忘れないうちにメモ。
iso を落とすのが面倒なので、Arch のイメージを使ってインストールします。
今回は用途が限られているためかなり手抜きしています、ご容赦ください。
※ あくまで一例です
Partitioning
/dev/vda1 | /boot | ext2 | 32MB |
/dev/vda2 | swap | – | 2GB |
/dev/vda3 | / | ext4 | のこりすべて |
# fdisk /dev/vda # mkfs.ext2 /dev/vda1 # mkfs.ext4 /dev/vda3 # mkswap /dev/vda2 # swapon /dev/vda2 # mount /dev/vda3 /mnt # mkdir /mnt/boot # mount /dev/vda1 /mnt/boot
ベースシステムのインストール
# cd /mnt // stage3 tarball # curl -O http://ftp.jaist.ac.jp/pub/Linux/Gentoo/releases/amd64/autobuilds/current-stage3-amd64/stage3-amd64-20150409.tar.bz2 # tar xvfjp stage3-*.tar.bz2 // portage snapshots # curl -O http://ftp.jaist.ac.jp/pub/Linux/Gentoo/snapshots/portage-latest.tar.bz2 # tar xvfj portage-latest.tar.bz2 -C ./usr # rm *.tar.bz2
Chroot!!
# cp -L /etc/resolv.conf ./etc/resolv.conf # mount -t proc none ./proc # mount --rbind /dev ./dev # mount --rbind /sys ./sys # chroot ./ /bin/bash (chroot)# source /etc/profile (chroot)# env-update >>> Regenerating /etc/ld.so.cache... (chroot)# emerge --sync
make.conf
それっぽく。
(chroot)# vim /etc/portage/make.conf // 次を追加または編集 CFLAGS="-O2 -pipe -march=native" MAKEOPTS="-j3" GENTOO_MIRRORS="http://ftp.jaist.ac.jp/pub/Linux/Gentoo/"
まず
エディタは重要ですよね
# emerge vim
カーネル設定
コンパイルにかかる時間を極力抑えたいので、make allnoconfig で全部無効にした状態で必要なオプションだけ有効にしています。
ちなみにサウンドまわりは割愛してます。
※ あくまで一例です
(chroot)# emerge gentoo-sources (chroot)# cd /usr/src/linux (chroot)# make allnoconfig (chroot)# make menuconfig
General setup ---> // Embedded じゃないので切っておく [ ] Embedded system [ ] Configure standard kernel features (expert users) ---> Bus options (PCI etc.) ---> [*] PCI support Gentoo Linux ---> [*] Gentoo Linux support Support for init systems, system and service managers ---> // systemd を使うので [*] systemd [*] 64-bit kernel General setup ---> // プロセス間通信 [*] System V IPC // sysfs を使えるようにする [*] Enable deprecated sysfs features to support old userspace tools // 稼働中のカーネルの設定が見れるように [*] Kernel .config support [*] Enable access to .config through /proc/config.gz // systemd で必要 [*] Automatic process group scheduling -*- Control Group support ---> [*] Freezer cgroup subsystem [*] Device controller for cgroups [*] Cpuset support [*] Include legacy /proc//cpuset file [*] Simple CPU accounting cgroup subsystem [*] Resource counters [*] Memory Resource Controller for Control Groups [*] Memory Resource Controller Swap Extension [*] Memory Resource Controller Swap Extension enabled by default [*] Memory Resource Controller Kernel Memory accounting [*] Block IO controller -*- Namespaces support ---> [*] UTS namespace [*] IPC namespace [*] User namespace [*] PID Namespaces -*- Network namespace Processor type and features ---> // マルチ(コア)プロセッササポート [*] Symmetric multi-processing support // KVM [*] Linux guest support ---> [*] Enable paravirtualization code [*] KVM Guest support (including kvmclock) Executable file formats / Emulations ---> // ELF 形式のバイナリをサポートするかどうか [*] Kernel support for ELF binaries -*- Networking support ---> // 通信できるように Networking options ---> [*] Packet socket [*] Unix domain sockets Device Drivers ---> Virtio drivers ---> [*] PCI driver for virtio devices // 仮想マシンのメモリを動的に割り当てる感じのやつ [*] Virtio balloon driver // systemd で必要 Generic Driver Options ---> [*] Support for uevent helper // フレームバッファの利用に必要 [*] Connector - unified userspace <-> kernelspace linker ---> [*] Block devices ---> [*] Virtio block driver [*] Network device support ---> [*] Network core driver support [*] Virtio network driver // evdev Input device support ---> [*] Event interface // シリアルコンソールを使いたかった Character devices ---> Serial drivers ---> [*] 8250/16550 and compatible serial support [*] Console on 8250/16550 and compatible serial port Graphics support ---> Frame buffer Devices ---> [*] Support for frame buffer devices ---> // uvesafb を有効化 [*] Userspace VESA VGA graphics support Console display driver support ---> // フレームバッファコンソールを有効にする [*] Framebuffer Console support File systems ---> // ext4 を有効にする(ext2 のめんどうもみてくれるっぽい) [*] The Extended 4 (ext4) filesystem [*] Ext4 POSIX Access Control Lists [*] Ext4 Security Labels // 疑似ファイルシステムを有効化 Pseudo filesystems ---> [*] Tmpfs POSIX Access Control Lists Kernel hacking ---> [ ] Kernel debugging // 緊急用 [*] Magic SysRq key
(chroot)# make (chroot)# make install
3 分くらいで終わる
systemd の設定
(chroot)# vim /etc/portage/make.conf // USE="bindist mmx sse sse2" // ↓ USE="bindist mmx sse sse2 systemd" (chroot)# emerge systemd Calculating dependencies... done! 〜〜〜 (sys-fs/udev-216:0/0::gentoo, installed) pulled in by >=sys-fs/udev-208-r1 required by (virtual/udev-215:0/0::gentoo, installed) For more information about Blocked Packages, please refer to the following section of the Gentoo Linux x86 Handbook (architecture is irrelevant): http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?full=1#blocked
エラーになった。
udev まわりで衝突してるっぽいのでいったん消す
(chroot)# emerge --unmerge udev
再度
(chroot)# emerge systemd
シリアルコンソールからも入れるようにしたい
(chroot)# ln -s /usr/lib/systemd/system/[email protected] /etc/systemd/system/getty.target.wants/[email protected]
syslog-ng、dhcpcd
必要そうなツールを入れる
(chroot)# emerge syslog-ng dhcpcd 〜〜〜 * Error: The above package list contains packages which cannot be * installed at the same time on the same system. 〜〜〜 (sys-fs/udev-216:0/0::gentoo, ebuild scheduled for merge) pulled in by >=sys-fs/udev-208-r1 required by (virtual/udev-215:0/0::gentoo, installed) For more information about Blocked Packages, please refer to the following section of the Gentoo Linux x86 Handbook (architecture is irrelevant): http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?full=1#blocked
また udev でコケたので消す
(chroot)# emerge --unmerge udev
再び
(chroot)# emerge syslog-ng dhcpcd (chroot)# systemctl enable syslog-ng (chroot)# systemctl enable dhcpcd
Grub の設定
(chroot)# emerge grub (chroot)# vim /etc/default/grub // デフォルトの init を systemd にする GRUB_CMDLINE_LINUX="init=/usr/lib/systemd/systemd" (chroot)# grub2-install /dev/vda (chroot)# grub2-mkconfig -o /boot/grub/grub.cfg
その他設定
(chroot)# vim /etc/fstab /dev/vda1 /boot ext2 noatime 1 2 /dev/vda3 / ext4 noatime 0 1 /dev/vda2 none swap sw 0 0 (chroot)# vim /etc/locale.gen // コメントを外す en_US.UTF-8 (chroot)# locale-gen (chroot)# echo "LANG=en_US.UTF-8" > /etc/locale.conf (chroot)# echo "KEYMAP=jp106" > /etc/vconsole.conf (chroot)# echo "gentoovpc" > /etc/hostname (chroot)# rm /etc/localtime (chroot)# ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime // root パスワードを設定 (chroot)# passwd
ここで一旦 reboot
(chroot)# exit # reboot
デスクトップ環境のインストール
とりあえず MATE と lightdm をいれた
# vim /etc/portage/make.conf // 追記 INPUT_DEVICES="evdev" VIDEO_CARDS="vesa" # emerge xorg-server
# vim /etc/portage/make.conf // USE="bindist mmx sse sse2 systemd" // ↓ USE="bindist mmx sse sse2 systemd X python gudev gtk cairo udisks" # emerge mate lightdm # systemctl enable lightdm
ついでに USE フラグの変更で影響のあるパッケージを再コンパイルしておく
# emerge --update --deep --newuse @world
ユーザーの作成
// まず sudo をいれる # emerge sudo # useradd -m your-user-name # passwd your-user-name # gpasswd -a your-user-name wheel # visudo // コメントを外す %wheel ALL=(ALL) ALL
再起動してデスクトップが表示されれば完了
つかれた
#GentooInstallBattle – 完 – pic.twitter.com/hUa6TO8gqM
— うさぎちゃん (@u3g3) 2015, 4月 11