忘れないうちにメモ。
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