Published using Google Docs
kofGentoo
Updated automatically every 5 minutes

つまづかない Gentoo 入門

VirtualBoxの仮想マシンへのGentoo Linuxのインストール

VirtualBoxの仮想マシンの作成

Gentoo Linuxのインストールについて

最初のネットワーク設定について

ホストからsshで接続してのインストール作業について

さきほど立ち上げたsshdに接続しホストからインストール作業を行いましょう。

ファイルシステムとstage3, portageの展開について

make.confについて

カーネルソースの取得、コンパイル設定について

その他諸々

Mac OSX での Gentoo Prefix の使い方

Gentoo/Prefix Mac OS Xのインストール

インストール後にGentoo環境に入る

マスクを外すには

laymanでオレオレportageを使えるようにするまで

@naota344 さんのリポジトリを使ってみる

HDDへのGentoo Linuxインストール時のTips

無線

X

カーネル設定

make.conf

起動・設定

つまづかない Gentoo 入門

by @naota344, @kozo2, @peccul

この小冊子はGentooハンドブックには書かれていない使い方やつまづきどころをまとめ、必ずGentooを使って(そして楽しんで)頂けるようになることを目的として書きました。

大きくわけて

が書かれています。

VirtualBoxの仮想マシンへのGentoo Linuxのインストール

ここではWindows7にインストールしたVirtualBoxの仮想マシンにGentoo Linux(x86)をインストールする方法をまとめています。

VirtualBoxの仮想マシンの作成

  1. 新規アイコンをクリックします
  2. 仮想マシン名を入力(ここではGentooVMとしました)、OSタイプにLinux, Gentooを選択します
  3. 仮想マシンのメモリサイズを入力します。このマシンの場合メモリが8Gあるので2G割り当てています。4Gある場合なら1G位、4Gなければメモリを増設したほうがよいかもしれません。
  4. 仮想マシンのHDDを作成します。そのまま次へをクリックしてください。
  5. これ以降ウィザードが始まりますが、すべてそのまま次へをクリックしてください。これで仮想マシンができました。
  6. Gentooのミラーサイト(http://www.gentoo.org/main/en/mirrors2.xml#Japan)からGentooのインストールCDのイメージをダウンロードします。ここでは http://ftp.jaist.ac.jp/pub/Linux/Gentoo/releases/x86/current-iso/ からダウンロードします。install-x86-minimal-<数字>.isoとなっているものをダウンロードします。
  7. 仮想マシンの設定をします。VirtualBoxを起動し作成した仮想マシンを選択した状態で設定アイコンをクリックしてください。
  8. CD/DVDデバイスに6.でダウンロードしたGentooのx86isoイメージを設定します。
  9. core2などのマルチプロセッサをお使いの方はプロセッサ数を増やし、IO APICを有効化してください。もしプロセッサ数を増やしてVMの起動に失敗するようであればBIOS設定でVirtualization technologyの項目を探し、有効化してください。
  10. ネットワークの設定を行います。後のインストールではゲストのGentooにWindowsからsshでアクセスします。ブリッジアダプタを選択してください。これで仮想マシンの設定は終わりです。

  1. 起動アイコンをクリックしてください。Gentooのブート画面になったらenterキーを押して進んでください
  2. 日本語キーボードをお使いの方は起動後のkeymap選択で22を入力してください
  3. この画面まで来たらあとはGentoo Linux x86 Quick Install Guide(http://www.gentoo.org/doc/en/gentoo-x86-quickinstall.xml) に従ってインストールを行います。ここからはその内容の説明、そしてQuick Installには書かれていない設定をご説明します。

Gentoo Linuxのインストールについて

最初のネットワーク設定について

まずネットワークにつながっていないとGentooはインストールができません。

Quick Install GuideではホストマシンからゲストのGentooにsshでつなぎインストール作業を行っています。こちらの方がVirtualBoxのウインドウ内で作業するより便利なのでこの通りやってみましょう。先ほどVMのネットワーク設定ではブリッジアダプタを選択しました。(これはホストのIPと同じセグメントにもう一個IPを設定できるカードがゲストに増えたというようなイメージをして頂けるといいと思います。)ここではゲストのGentooに固定IPを割り当てます。

net-setup eth0

とコマンドを入力しましょう。するとブリッダプタ設定を行ったネットワークインタフェースの情報が表示され「設定を行うインタフェースはこれでいいですか?」といった旨の質問がされますのでYesを選択してください。

次にネットワークが無線か有線接続か聞かれます。ブリッジアダプタ設定なのでMy network is wiredを選択してください。

その次の割り当てるIPの設定については決め打ちで設定します。

ホストマシンのIPが192.168.0.3とでもなっていれば192.168.0.4などとしてください。

broadcast addressは192.168.0.255とします。

Network maskは255.255.255.0とします。

GatewayとDNS serverアドレスは192.168.0.1とします。

DNS search suffixについては空白でよいでしょう。空白のままenterを押してください。

これでnet-setupは終了です。

ping google.com

とコマンド入力すればネットワーク接続を確認できます。pingが帰ってくれば成功です。次に

/etc/init.d/sshd start

とコマンド入力しsshdを立ち上げ

passwd

とコマンド入力し適当なパスワードを設定しましょう。

ホストからsshで接続してのインストール作業について

さきほど立ち上げたsshdに接続しホストからインストール作業を行いましょう。

ホスト側の端末で

ssh root@192.168.0.4

とし、先ほどのパスワードを入力すればsshでゲストのGentooに入れます。

ファイルシステムとstage3, portageの展開について

ファイルシステムについてはGentooハンドブックのディスク設定のページ(http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=1&chap=4)の通りにして頂ければ結構です。

ディスクの設定が終われば次には

mount /dev/sda3 /mnt/gentoo
mkdir /mnt/gentoo/boot
mount /dev/sda1 /mnt/gentoo/boot
といったことを行うのですが

これは /(root)用のパーティション(/dev/sda3)をGentooインストール用の場所/mnt/gentooにマウントし、次に/boot用のパーティション(/dev/sda1)をGentooのboot用の場所/mnt/gentoo/bootにマウントする、といった意味があります。

Gentoo Linuxではまずこの/mnt/gentoo下にstage3と呼ばれる最低限のLinux環境とportageというパッケージ情報のツリーを展開します。この最低限のLinux環境はまだ自力で(ここで使ったようなCDなしで)起動することはできません。そこで自力で起動できるように、その最低限の環境を使って、/mnt/gentoo/bootにLinuxカーネルを自分で配置し、ブートローダGRUBがそのカーネルを使って起動するように設定を行ないます。以上がGentooのインストールのおおまかな流れになります。

Gentoo handbookのchapter5(http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=1&chap=5)では、この最低限の環境の展開までを行なっています。

proc,devのマウントとchrootとの展開について

前章のようにstage3を展開しただけではまだprocと呼ばれるシステム情報やdevと呼ばれるデバイス情報がGentooインストール用の場所/mnt/gentoo下にないためこれらも自分でマウントします。

mount -t proc proc /mnt/gentoo/proc
mount --rbind /dev /mnt/gentoo/dev

これができればlive cd環境でのDNSの設定コピー後にchrootと呼ばれるコマンドを用い、/mnt/gentooをこれからインストールするGentoo Linuxの/とします。

cp -L /etc/resolv.conf /mnt/gentoo/etc/
chroot /mnt/gentoo /bin/bash
env-update && source /etc/profile

make.confについて

make.confは下記の設定をお勧めします

CFLAGS="-O2 -march=native -pipe -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"
CHOST="i686-pc-linux-gnu"
MAKEOPTS="-j3"

仮想マシンの設定でCPU数を1にしている場合 MAKEOPTS=”-j2”にしてください

カーネルソースの取得、コンパイル設定について

Gentoo Linuxではカーネルのソースもネットワーク経由で自分で取得、コンパイルします。

Gentoo handbookのchapter7(http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=1&chap=7)で行っている

emerge gentoo-sources

コマンドではGentooの最新の安定版のカーネルソースコードを/usr/src/linuxに展開しています。

カーネルのインストールはgenkernelは使わずにマニュアルでやったほうがいいです。

カーネル設定は多岐にわたりますが細かいことは追々やるというスタンスがよいので最初にすべての設定を知ろうとする必要はありません。

ここではQuick Install GuideやHandbookで行われていない

make localyesconfig

というコマンドについても説明します。

make localyesconfigというコマンドをmake menuconfigの前に行うと、現在使っているカーネルの機能(lspciコマンドで検出される現在のデバイス情報[ネットワークカード、USBなども])を検出してそれに応じたカーネルオプションを.configというファイルに書き出してくれます。そのためGentooのドキュメントには書かれていないのですがmake menuconfig前にこのmake localyesconfigを行うことをおすすめします。

make localyesconfig後にmake menuconfigでさらにカーネルのコンパイル設定を行います。

CPUとファイルシステムの設定はmake localyesconfigではよきにはからってくれていないのでこれはmake menuconfig後各自で行います。

ほとんどの場合CPUはCore2かと思います。あとファイルシステムはext3にしたのでハンドブックの7.c. デフォルト: マニュアルコンフィギュレーションに書かれているように Ext3 journaling file system support に x をつけるようにしてください。(ファイルシステムはデフォルトでExt3にxが付いているはずですが)

またもし最近

init-early.sh used greatest stack depth: 5792 bytes left

といった端末出力で起動が止まったという方は下記のようにdevtmpfsをカーネルに含めればよいです。

Device drivers > Generic driver options>

< * > Maintain a devtmpfs filesystem to mount at /dev

< * > Automount devtmpfs at /dev , after the karnel mounted the root

最近のstage3では/devを

もしカーネルの設定に失敗し後で起動できなくなった場合は、live cdで起動後これまで同様にchrootまでの作業を行ってからカーネルをコンパイルし直します。カーネルのソースコードは/usr/src/linuxに残っているのでemerge gentoo-sourcesをし直す必要はありません。

その他諸々

を編集する必要はありません。

以上です。仮想マシンであればGentooでも気軽に試すことができると思います。ぜひPortageの世界へ踏み込んでみてください!!

Mac OSX での Gentoo Prefix の使い方

Mac OSX でGentoo Prefix使うってことは,インストールさえすんでしまえばほぼGentoo/FreeBSDとほとんど同じことができるようになります

Gentoo/Prefix Mac OS Xのインストール

基本は本家のガイドラインに従って,インストールすると使えるようになります.

コマンドの部分を抽出するのも面倒なのでgistに置いたので,そのままシェルスクリプトとして動かすと小一時間ほど待てばGentooの環境が完成します.

% curl -o installgentoo https://gist.github.com/raw/664495/e8c262cba87a40983785e792c0cb340dff7e660a/installgentoo

% chmod a+x ./installgentoo

% ./installgentoo

これで~/Gentoo以下にGentooの環境がインストールされ,もともとのMacの環境とは独立した環境が出来上がります.

もし万が一Gentooの環境が不必要になれば,~/Gentooを削除すればきれいさっぱり消すことができます.

インストール後にGentoo環境に入る

% cat ~/bin/intogentoo

export EPREFIX="$HOME/Gentoo"

export PATH="$EPREFIX/usr/bin:$EPREFIX/bin:$EPREFIX/tmp/usr/bin:$EPREFIX/tmp/bin:$PATH"

こんな感じのスクリプトを用意して,Gentoo環境にパスを通すことでGentooでインストールしたコマンドを使えるようになります.

% source ~/bin/intogentoo

実際にGentoo環境に入るためにこのスクリプトをsourceで読み込めばその直後からGentooのコマンドが呼べるようになります.上のファイルの内容を.zshrcとか.bashrcにかいておけば常にGentooの環境が使えるようになりますね

マスクを外すには

Mac用にマスクを外すぞ.例えばEmacsの最新版が欲しくなったとして,

% emerge -uDNvaj emacs-vcs

These are the packages that would be merged,
in order:

Calculating dependencies...
done!

!!! All ebuilds that could satisfy
"app-editors/emacs-vcs" have been masked.
!!! One of the following masked packages is required to complete your request:
- app-editors/emacs-vcs
-24.0.9999 (masked by: package.mask)
/Users/peccu/Gentoo/usr/portage/profiles/package.mask:
# Ulrich Mueller <ulm@gentoo.org> (10 Mar 2010)
# Emacs live ebuilds. Use at your own risk.
...略

こんな感じでemergeしたら(masked by: missing keyword)って怒られたら,マスクを外しましょう.

まずautounmaskというツールが必要なので,emergeしましょう

% emerge app-portage/autounmask

つぎにマスクを外したいパッケージ名を引数にautounmaskコマンドを実行します.

% autounmask app-editors/emacs-vcs

% autounmask app-editors/emacs-vcs-24.0.9999

バージョン番号まで必要なんですが,バージョン番号がなくても候補が出てくるので,

これでマスクが外れるので,emergeできるようになったと思います

laymanでオレオレportageを使えるようにするまで

laymanって,非標準のportage treeをあたかも標準portageのように使える仕組みみたいなもの

まず,laymanを% emerge -uaDNv laymanでインストール

@naota344 さんのリポジトリを使ってみる

${EPREFIX}/etc/layman/layman.cfg の overlays のところに

http://github.com/naota/gentoo-prefix-overlay/raw/master/repository.xml をこんな感じでに追加する

overlays : http://www.gentoo.org/proj/en/overlays/repositories.xml

http://github.com/naota/gentoo-prefix-overlay/raw/master/repository.xml

そして % layman -a naota-prefix すれば使えるはず

source /Users/peccu/Gentoo/var/lib/layman/make.conf

laymanのインストールまわりは

http://d.hatena.ne.jp/peccu/20100809/gentooghc

を参照

HDDへのGentoo Linuxインストール時のTips

無線

無線LAN・有線LAN混在環境でのネットワークへの接続というと NetworkManager が有名ですが、 Gentoo ではネットワーク設定ファイルが特殊なためうまく動作しないことがあります。(0.8.1 から Gentoo の設定を統合するパッチが当てられるらしいが、まだテスト中) 代わりに wicd をいれてみましょう。

emerge wicd

でインストールができます

/etc/init.d/wicd start

で、 wicd を開始し

することで毎回OS起動時に wicd が起動されるようになります。

wicd-cli (GUI) や wicd-curses (CUI) を使って wicd の設定をすることができます。

ここまでで wicd がネットワーク管理してくれるようになったので、 net.eth0 といった旧来のサービスはいりません。

rc-update del net.eth0

として、 eth0 (やその他)のデバイスの接続スクリプトがOS起動時に動かないようにしておきましょう。

X

カーネル設定

Xなどのソフトをインストールする前に、まずカーネルの設定を見直しましょう。

X ではデフォルトでは evdev というイべントハンドルドライバを入力に使います。

Device Drivers --->
 Input device support --->
 <*>  Event interface

最近のグラフィックドライバは KMS という仕組みを使っています。これをカーネル側で有効にしておきましょう。

Device Drivers --->
 Graphics support --->
   Support for frame buffer devices --->
   
(VGA, Intel, nVidia, ATI 全てのドライバを無効にしておきます)

   
(コンソールでのフレームバッファをONにしておきます。KMS で使われます)
   Console display driver support --->
     <*>  Framebuffer Console Support

ここからは使用しているビデオカードごとの設定となります

Intel のカードを使っていれば

Device Drivers --->
 Graphics support --->
   /dev/agpgart (AGP Support) --->
   <*>  Intel 440LX/BX/GX, I8xx and E7x05 chipset support
   Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
   <*>  Intel 830M, 845G, 852GM, 855GM, 865G (i915 driver)
        i915 driver
   [*]    Enable modesetting on intel by default

nVidia のカードであれば

(DRM を有効に)
Device Drivers --->
 Graphics support --->
 <*>  Direct Rendering Manager --->

(Nouveau はいまのところ実験的ドライバになります)
Device Drivers --->
 Staging drivers --->
 [ ]  Exclude Staging drivers from being built
 <*>    Nouveau (nVidia) cards

Nouveau は nVidia 用のGPLドライバですが、うまく動かないこともあります。その場合 emerge nvidia-drivers で nVidia から提供されているドライバをいれてみてください。この時は、以下のカーネル設定が必要になります。

Processor type and features --->

         [*] MTRR (Memory Type Range Register) support

Kernel Hacking --->

         [ ] Lock debugging: detect incorrect freeing of live locks

         [ ] Lock debugging: prove locking correctness

         [ ] Lock usage staticstics

RadeonHD 2000より新しいATIのカードを使っていればまず emerge radeon-ucode してください。

(radeon-ucode firmware を使うようにする)
Device Drivers --->
 Generic Driver Options --->
 [*]  Include in-kernel firmware blobs in kernel binary
 
# RadeonHD 2000, 3000, 4000 シリーズ:
 (radeon/R600_rlc.bin radeon/R700_rlc.bin) External firmware blobs
 
# RadeonHD 5000 (Evergreen) 以降のカード:
 (radeon/CEDAR_me.bin radeon/CEDAR_pfp.bin radeon/CEDAR_rlc.bin
  radeon/CYPRESS_me.bin radeon/CYPRESS_pfp.bin  

   radeon/CYPRESS_rlc.bin
  radeon/JUNIPER_me.bin radeon/JUNIPER_pfp.bin radeon/JUNIPER_rlc.bin
  radeon/REDWOOD_me.bin radeon/REDWOOD_pfp.bin
  radeon/REDWOOD_rlc.bin) External firmware blobs
 (/lib/firmware/) Firmware blobs root directory

(Radeon の KMS を有効にする)
Device Drivers --->
 Graphics support --->
 <*>  Direct Rendering Manager --->
 <*>    ATI Radeon
 [*]      Enable modesetting on radeon by default

上記のものより昔のカードであれば、 nVidia の項目に書いたのと同様に DRM を有効にし、 Radeon の KMS を有効にするだけです。

make.conf

INPUT_DEVICES, VIDEO_CARDS の変数を設定することで、インストールする入力ドライバ・ビデオカードドライバが選択されます。

デフォルトのINPUT_DEVICES="evdev keyboard mouse" でまず困ることはないでしょう。 ノートPCなどで synaptics のタッチパッドが使えるなら synaptics もいれておきましょう。MacBookなどでは mtrack です。

VIDEO_CARDS は Intel なら intel, nVidia なら nouveau, Radeon なら radeon をいれておきます。フリーのドライバがうまく動かなければ、 nVidia なら nvidia,  Radeon なら fglrx とすることで各社提供のドライバが使われます。

ここまでできたら emerge xorg-server することで X がインストールされます。

起動・設定

まずそもそも最近のXではうまくいけば設定が全く必要ないことすらあります。

startx

で動かないかどうか見てみましょう。

自分で xorg.conf を書くこともできますが、自動生成におまかせするのが圧倒的に楽ですし、だいたいの場合うまく動きます。

Xorg -configure

で、設定が生成されます。自動設定で書かれた設定ファイルが動くかどうか確かめましょう。

X -retro -config /root/xorg.conf.new

です。うまく動いているようであれば、このファイルを /etc/X11/xorg.conf にコピーすることで、どのユーザからも X が使えるようになるはずです。おつかれさまでした。