文書の過去の版を表示しています。
目次
Linuxメモ
Linux関係で調べたりしたメモ。調べた当時の情報なので、改善されたり変更されたりしている可能性あり。
kernel埋め込みのrootデバイス
一般的にはブートローダの「root=/dev/sda2」などとして指定するが、カーネルそのものにコンパイル時にパラメータが埋め込まれている。
この値を確認するためのコマンドがrdev。
rdev
ただし、Gentooのamd64ではutil-linuxパッケージから削除されたみたい。
ext4ファイルシステムドライバ
ext4ファイルシステムドライバでext2/ext3をマウントできるように設定し、ext2/ext3ファイルシステムドライバを組み込まないと、rootファイルシステムのマウント時にext4ファイルシステムがうまくext4として認識されない場合がある1)。
カーネルの起動オプションに「rootfstype=ext4」パラメータを指定するとうまくファイルシステムタイプを認識する。
kernel /kernel-2.6.37-gentoo-r4 root=/dev/sda2 rootfstype=ext4
OpenRC移行メモ
OpenRCにアップデートした場合のファイルシステムマウント
baselayout2およびOpenRCにアップデートすると、ファイルシステムのマウント状況がおかしいように見える。表面的な問題らしい。
具体的には、「/」に二重にマウントされているように見える。
rootfs on / type rootfs (rw) /dev/root on / type ext4 (rw,commit=0)
rootファイルシステムは、起動時に仮にマウントされfstabを読み込んでもう一度マウントし直す。その際、/proc/mounts、/etc/mtabにはマウントされた情報が記録される。この処理にバグ?があるようで、mountコマンドなどでマウント状況を表示した際に2重にマウントされているように見えるようだ。
OpenRCでは高速にシャットダウンする場合などに必要なものらしい。
/etc/conf.d/net
設定を書く際に「=」の前後にスペースなどを入れない。「コマンドが見つからない」とエラーになる。
config_eth0="192.168.0.1/24"
/etc/rc.conf
起動時に警告が出るので以下の設定をコメントアウトを外し、値は空にしておく。
sys_init=""
シンボリックリンク関連
リンクが壊れたシンボリックリンクを検索、削除するツール
app-misc/symlinks
並列起動
OpenRCでは各種起動スクリプトを並列実行できるようだ。
rc_parallel="YES"
を設定すると依存関係に問題ないサービスが並列起動する。起動がかなり高速になるが推奨はされないようだ。
alsaサウンドシステムの音量設定の保存
alsaの音量設定は、デフォルトでミュート状態となる。起動時に一定の音量にする場合は、以下の設定をおこなう。
音量の設定
alsamixer
適当な音量に設定する。その後、設定を保存する。
alsactl store
保存すると、/etc/asound.stateに設定が書き込まれる。
起動時に設定を復元するように、alsasoundサービスが起動するようにする。
rc-update add alsasound default
カーネルモジュール(ドライバ)のパラメータ設定
カーネルモジュールにパラメータを渡す方法。
それぞれのモジュールは、module_param()関数でパラメータを受け取って内部動作を制御できるようになっている。 この関数にパラメータを渡したい場合、動的モジュールになっていればmodprobeでロードする際に、オプションをつけてやれば良い。起動時に設定するなら、/etc/modprobe.d/等で設定しておく。
カーネルに静的に組み込んでいる場合は、起動時にカーネルのコマンドラインオプションで渡してやる。
モジュールの情報は、
/sys/module/MODULE名/parameters/PARAM名
にあるので、ここでecho等で値を書き換えてもよいが、起動時にしか設定できないものもある。その場合は、ブートローダでカーネルにパラメータを渡せばよい。その場合は、/boot/grub/grub.confのkernel行に
MODULE名.PARAM名=VALUE
という形式でカーネルに引数を与えてやる。