Gentoo-Linux


業務用にgentoo

  • GentooをServer用に業務として使用する場合
  • 次のカーネルを使用しましょう

gs-sources

デスクトップパフォーマンスよりも信頼性やハードウェアサポートの優先度が高いユーザには、gs-sourcesがあります。GSとはGentoo Stableを意味しています(いい感じでしょ?)。このパッチセットは、最新のハードウェアサポートを提供するためのチューニングやテストが行われており、必要なときにミッションクリティカルなサーバが動作することを保証します。このカーネルには、gentoo-sourcesで提供しているようなものすごくアグレッシブにパフォーマンスをチューニングするパッチは含まれていません。でもご安心を。みなさんが愛してやまないvanillaカーネルのすばらしいパフォーマンスは健在です。可能であれば、安定性を損なうことなくサーバにパフォーマンス関連のパッチを当てます。

このカーネルは最新のACPIサブシステム、EVMS、ECC(HA Linuxシステムで必要です)、Encrypted Loopback devices、NTFS、Win4Lin、そしてXFSをサポートします。また、IDE、ext3、シリアルネットワークカードの最新版のパッチも他のパッチと共に含まれています。

  • つまり、このソースはサーバや高可用性システムに最適なわけです。
  • オプションのパッチを選択するために、以下のUSEフラグがセットできます:
  • フラグ 説明
    crypt 暗号化パッチの適用 

OpenBlocks?でgentooを

  • 初心者には到底オススメできる内容ではございません。ヘタすればOpenBlockS?が起動しなくなる可能性もあります。
  • ここに記載されている内容について、私は一切責任を負いません。自己責任でお願いします。
  • 少なくともフラッシュROMの初期化方法、TFTPサーバやBOOTPサーバを立てられる環境をつくるべし。
  • 用意するもの(用意したもの)
  • OpenBlockS?
    • 今回はOpenBlockS 266を使用
  • 2.5"HDD(CFでは容量が足りない)
    • 今回は富士通の20GB HDDを使用
  • GentooLinux?インストール用stageファイル
  • インストールに関するコツ
  • OpenBlockS?はCPUにPowerPC採用しているのでPPC用stage tarballをもってくるべし。
  • まずOpenBlockS?標準のフラッシュROMで起動し、HDD上にGentoo環境を構築していけばOK。
  • ほぼGentoo Linux PowerPC Installation Guideどおりにインストールして問題なし。
  • PPC用インストールマニュアルは少し古いのでGentoo Linux x86 Installation Guide(日本語訳)も適宜参照すべし。
  • OpenBlockS標準のフラッシュROMのLinuxは・・・
    • ext3対応(mk2fs -j)なので夜も安心
    • w3m,lynxなどは入ってないので、ftp.ibiblio.orgからftpで直接getするか、他マシンからOpenBlockSにput(OpenBlockSはデフォルトはFTPサーバが立っている)すべし。
    • bzip2が入ってないのでstage1が解凍できない。他のマシンで解凍してからFTPでput渡すべし。
  • stage1からのインストールを試みたが、なぜかgccがうまく動かない。原因は不明(1.4_rc4だから?)。最低限stage2から実施する必要がある模様。
  • とはいえコンパイルに時間がかかるため、個人的にはstage3まで展開がお薦め。今回は手間を省くためstage3まで展開。
  • カーネル構築のコツ SSD/LinuxのOBS266用カーネルパッチを眺めたところそのままppc-sourcesが適用できそうにないため、sys-kernel/obs-sourcesを作成。といってもまだ本家に取り入れてもらってない。
    # emerge obs-sources

要チェックのカーネルコンフィグは以下のとおり。

  • General setupのDefaultbootloader kernel argumentsにチェック
    • Initial kernel command string: "console=ttyS0,9600 console=tty0 root=/dev/hda1" など。
  • File systemsの/dev file system support (EXPERIMENTAL)にチェック

そしてコンパイル。

# make dep && make clean zImage
# make modules modules_install(モジュール構成の場合)

フラッシュROMに書き込む。flashcfgはGentooには含まれていないためchrootから抜けて実施するかフラッシュROMからもってくる必要がある。

# flashcfg -f zImage.treeboot

/etc/inittabを適切に設定しないとRS-232Cからログインできないので注意が必要。

# nano -w /etc/inittab
# TERMINALS
c1:12345:respawn:/sbin/agetty 9600 ttyS0 linux
c2:12345:respawn:/sbin/agetty 9600 ttyS1 linux
#c3:12345:respawn:/sbin/agetty 38400 tty3 linux
#c4:12345:respawn:/sbin/agetty 38400 tty4 linux
#c5:12345:respawn:/sbin/agetty 38400 tty5 linux
#c6:12345:respawn:/sbin/agetty 38400 tty6 linux

シリアルからrootでログインするために/etc/securettyにRS-232Cポート(/dev/tts/0)を追加。

# echo 'tts/0' >> /etc/securetty

keymapsとconsolefontはOBSには不要のためはずす。

# rc-update del keymaps
# rc-update del consolefont
  • tips
dhcpcdが動かない
obs-sourcesはデフォルトではNetworking optionsのPacket socket(CONFIG_PACKET)が無効になっている。YまたはMで有効にすべし。
  • 関連リンク

Ge1.4LiveCDのbootsplashを使いたいなぁ

  • Gentoo Linux 1.4 CD のような綺麗なブート画面とコンソールにする方法
    • (bootsplash)
   bootsplash とは何かを知りたい方はこちらへどうぞ
   http://www.bootsplash.org/
   (Windowsの起動画面のようにもできるものです)
  • 1. Portageツリーの更新
#emerge sync
  • 2. media-gfx/bootsplashをインストール
    • (graphical backgrounds for frame buffer consoles).
ACCEPT_KEYWORDS=~x86 emerge bootsplash
  • bootsplashをすでに使っていた人は古い設定をアップデート
# etc-update
  • 3. カーネルの構築
  • genkernelを使ってカーネルを構築
# genkernel --config
  • 手動でカーネルを構築(genkernel以外の人)
# cd /usr/src/linux
# make menuconfig
  • カーネルに以下のオプションをつけて構築。
    • 未確認ですが、"モジュールは不可。nvidiaまたはATiの特定のオプションも 不可" とのこと。
---------------------------------------------------------------------
Code maturity level options  ---> 
   [*] Prompt for development and/or incomplete code/drivers 
Processor type and features  ---> 
   [*] MTRR (Memory Type Range Register) support 
Block Devices -> 
   [*] Loopback device support 
   [*] RAM disk support 
   (4096)   Default RAM disk size 
   [*] Initial RAM disk (initrd) support 
Console Drivers -> 
   [*] VGA text console 
   [*] Video mode selection support 
Console Drivers -> Frame-buffer support -> 
   [*] Support for frame buffer devices 
   [*] VESA VGA graphics console 
   [*] Use splash screen instead of boot logo
---------------------------------------------------------------------
  • 4. カーネルのコンパイルとインストール
  • genkernelを使ってカーネルのコンパイルとインストール
    • genkernelが自動でやってくれます。
  • 手動でカーネルのコンパイルとインストール(genkernel以外の人)
make dep && make clean bzImage modules modules_install 
mount /boot 
mv /boot/bzImage /boot/bzImage.old 
cp /usr/src/linux/arch/i386/boot/bzImage /boot/
  • 5. 1.4 CDのbootsplashをもってくる
mount /mnt/cdrom
file /mnt/cdrom/isolinux/initrd.1024
<file の結果>
initrd: Linux rev 1.0 ext2 filesystem data #gzipされてない
initrd: gzip compressed data, ・・・・     #gzipされている 
  • gzipされていなければローカルにコピーしておく
cp /mnt/cdrom/isolinux/initrd.1024 ~/initrd.1024
file ~/initrd.1024
  • gzipされていたら伸長しておく
gzip -dc /mnt/cdrom/isolinux/initrd.1024 > ~/initrd.1024
file ~/initrd.1024
  • splash.datを取り出す
dd if=~/initrd.1024 of=splash.dat skip=`perl -e 'undef $/;$_=<>;
print index($_,"BOOTSPL")' ~/initrd.1024` bs=1
(1行のコマンドです)
  • いまつくった splash.dat を使用中の initrd にくっつける。
    • initrd を使ってないときは splash.dat そのものを initrd として使えばよい。
  • いま使っている initrd が gzip されているか調べる
mount /boot
file /boot/initrd
  • gzipされていなければ説明の都合上コピーしておく(笑)
cp /boot/initrd ~/initrd
file ~/initrd
  • gzipされていたら伸長しておく
gzip -dc /boot/initrd > ~/initrd
file ~/initrd
  • splash.dat をくっつける
cat ~/splash.dat >> ~/initrd
  • いま使っている initrd が gzip されていない人は initrd をコピーする
cp ~/initrd /boot/initrd-splash
  • いま使っている initrd が gzip されている人は initrd を gzip する
gzip -9c ~/initrd /boot/initrd-splash
  • 6. /boot/grub/grub.conf の編集
---------------------------------------------------------------------
default 0 
timeout 10 
splashimage=(hd0,0)/grub/splash.xpm.gz 
# Gentoo Linux
title=Gentoo Linux (1280x1024 64k +fb +splash) 
root=(hd0,0) 
kernel=(hd0,0)/kernel-2.4.20-gentoo-r5 root=/dev/hda3  
video=vesa:1280x1024,mtrr vga=0x31A
initrd=(hd0,0)/initrd-splash
title=Gentoo Linux (1280x1024 32k +fb -splash) 
root=(hd0,0) 
kernel=(hd0,0)/kernel-2.4.20-gentoo-r5 root=/dev/hda3
video=vesa:1280x1024,mtrr vga=0x319
title=Gentoo Linux (-fb -splash) 
root=(hd0,0) 
kernel=(hd0,0)/kernel-2.4.20-gentoo-r5 root=/dev/hda3
---------------------------------------------------------------------
  • ※手動でカーネルの構築を行った人は kernel-2.4.20-gentoo-r5 を bzImage に読み替えてください。
  • オプション 'vga=' へ入れる値の表
        | 640x480  800x600  1024x768 1280x1024 
    ----+------------------------------------- 
    256 |  0x301    0x303    0x305    0x307    
    32k |  0x310    0x313    0x316    0x319    
    64k |  0x311    0x314    0x317    0x31A    
    16M |  0x312    0x315    0x318    0x31B     
※ちなみに私のパーティションは次のようになっています。
/dev/hda1   /boot
/dev/hda2   swap
/dev/hda3   /
インストールマニュアルのままインストールしてます。
ためしていませんが lilo の人は lilo.conf を次のようにすると動くはずです。
---------------------------------------------------------------------
image="/boot/bzImage"
vga=0x31A
root="/dev/hda3"
label="2.4.20-r5"
read-only # read-only for checking 
append="video=vesa:1024x768,mtrr" 
initrd=/boot/initrd-splash
---------------------------------------------------------------------
  • もちろんliloの更新をお忘れなく。
 lilo
  • 7. ブート時のdefaultランレベルにbootsplashを追加
# rc-update add bootsplash default
  • 8. 再起動し綺麗な起動画面を楽しむ
# shutdown -r now
  • [現在の問題点]
    • Gentoo Linux 1.4 CD のようにsilentモードにしてもプログレスバーがでない。 genkernelを使用して、initrdにsplash.datを追加する場合に起動途中からしか綺麗な画面にならない。
  • [参考サイト]
  • <参考までに 1.4 CD の起動コマンドライン>
cat /proc/cmdline
splash=silent vga=791 initrd=initrd.1024 acpi=off root=/dev/ram0
init=/linuxrc  nomce BOOT_IMAGE=gentoo