ユーザ用ツール

サイト用ツール


linux:linux-etc

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

次のリビジョン
前のリビジョン
linux:linux-etc [2013/04/12 00:49] – 外部編集 127.0.0.1linux:linux-etc [2014/04/16 15:04] (現在) – [Intel ethernet controller 82574L] Wiki Editor
行 1: 行 1:
 ====== Linuxメモ ====== ====== Linuxメモ ======
 Linux関係で調べたりしたメモ。調べた当時の情報なので、改善されたり変更されたりしている可能性あり。 Linux関係で調べたりしたメモ。調べた当時の情報なので、改善されたり変更されたりしている可能性あり。
 +
 +===== Portageの設定ファイル上書き管理 =====
 +GentooのPortageでは、同じパッケージをインストールしても設定ファイルなどユーザが手を加えたファイルを保護するようになっている。保護対象となるのは基本的に設定ファイルで、環境変数CONFIG_PROTECTで定義される。この変数に含まれている場所であれば、上書きされるかどうか判断される。
 +
 +パッケージがインストールされる時、ファイルがCONFIG_PROTECTのパスに含まれていれば、/var/lib/portage/configにそのファイルのmd5sumが記録される。つまり、パッケージで提供される初期ファイルのハッシュが記録される。
 +
 +次に、何らかの理由で同じパッケージを再度インストールする場合、既に/var/lib/portage/configにそのファイルのハッシュが記録されているので、インストールしようとするファイルのmd5sumと記録されているハッシュを比較する。この場合、基本的には初期ファイルは同じ内容なので、ハッシュが一致するため既存のファイルを残し、新たなファイルは破棄される(何もしない:._cfg0000ファイルを造らない)。基本的に、というのはインストール時にファイルに乱数や時刻を取り込むようなものは、毎回ハッシュ値が変わるのでその都度._cfg0000ファイルが作成されるため、設定ファイルを上書きするかどうか判断しなければならない(dispach-confなど)。パッケージのバージョンが変わる場合には、保護されているファイルの初期内容が変更されることが多いため、更新処理を行わなければならないが、ファイルに変更が無い場合はそのまま既存のファイルが利用される。
 +
 +
 +整理すると、再インストールにしてもアップデートにしても、CONFIG_PROTECTで保護されているファイルは、パッケージをインストールする際の生のファイルが以前と変化したファイルについてのみ、既存のファイルが存在すれば、新ファイルを._cfg0000ファイルに一時待避させてユーザに判断を促す。
 +
 +
 +===== KDMのキーボードレイアウト =====
 +KDEのグラフィカルログインマネージャのキーボードレイアウトは、KDEの設定と連動しない。コンソールの設置もxorg.confの設置もうまく反映されないので、あまりスマートではないがKDMの起動スクリプトで無理矢理設定する。
 +
 +/usr/share/config/kdm/Xsetup
 +  setxkbmap -rules evdev -model jp106 -layout jp
 +
 +setxkbmapコマンドでjp106レイアウトに変える。Gentooの場合、/usr/share/config/kdmはアップデート時に上書きされるので、アップデートするたびに確認する必要がある。CONFIG_PROTECTなどで保護するとよい。
  
 ===== kernel埋め込みのrootデバイス ===== ===== kernel埋め込みのrootデバイス =====
行 79: 行 98:
 という形式でカーネルに引数を与えてやる。 という形式でカーネルに引数を与えてやる。
  
 +
 +===== USE flag管理 =====
 +GentooのUSE flagを管理するのに、これまでeuseを使っていた。ただし、これは/etc/portage/make.confのグローバルなUSE flagしか管理できない。パッケージごとの指定は、エディタでいちいち/etc/portage/package.useを書き換えていた。面倒だと思いつつ、それほど頻繁に行う作業でもないので放置していたが、便利なツールがあることをたまたま発見した。
 +
 +インストール
 +  emerge -av flaggie
 +
 +使い方は、flaggieコマンドに続けて、パッケージ名、[+/-]フラグとする。「+」で追加、「-」で除去。パッケージを指定しなければ、グローバル(make.conf)に設定される。
 +
 +  flggie gcc +lto
 + 
 +
 +===== PHPメモ =====
 +GentooでApache用のPHP設定ファイルは、通常/etc/php/apache2-php<ver.>/php.iniにある。この設定ファイルの他に、
 +<code>
 +--with-config-file-scan-dir=/etc/php/apache2-php5.5/ext-active
 +</code>
 +がビルド時に設定されているので、php.iniファイルがあるディレクトリのext-activeディレクトリの.iniファイルも読み込まれる。
 +
 +USE flagなどでエクステンションを追加すると、その設定ファイルはここに格納されるので、有効/無効にする際にはチェックする必要がある。また、モジュールの読み込みはこちらで、設定自体はphp.iniにあることもあるので、両方を確認する。
 +
 +
 +===== Intel ethernet controller e1000ドライバ =====
 +<del>Intelの82574Lチップを積んだPCIeボードで頻繁にエラーが出る問題の対処方法。</del>
 +チップの問題ではなく、e1000ドライバの問題かもしれない。
 +
 +以下の様なエラーが頻出して、その都度ネットワークが再起動してしまう。
 +
 +  Mar 24 15:00:18 [kernel] e1000e 0000:00:19.0 eth1: Detected Hardware Unit Hang:
 +  Mar 24 15:00:18 [kernel]   TDH                  <7e>
 +  Mar 24 15:00:18 [kernel]   TDT                  <8e>
 +  Mar 24 15:00:18 [kernel]   next_to_use          <8e>
 +  Mar 24 15:00:18 [kernel]   next_to_clean        <7e>
 +  Mar 24 15:00:18 [kernel] buffer_info[next_to_clean]:
 +  Mar 24 15:00:18 [kernel]   time_stamp           <1001afbef>
 +  Mar 24 15:00:18 [kernel]   next_to_watch        <7e>
 +  Mar 24 15:00:18 [kernel]   jiffies              <1001b04d4>
 +  Mar 24 15:00:18 [kernel]   next_to_watch.status <0>
 +  Mar 24 15:00:18 [kernel] MAC Status             <40080083>
 +  Mar 24 15:00:18 [kernel] PHY Status             <796d>
 +  Mar 24 15:00:18 [kernel] PHY 1000BASE-T Status  <3800>
 +  Mar 24 15:00:18 [kernel] PHY Extended Status    <3000>
 +  Mar 24 15:00:18 [kernel] PCI Status             <10>
 +  Mar 24 15:00:20 [kernel] e1000e 0000:00:19.0 eth1: Detected Hardware Unit Hang:
 +  Mar 24 15:00:20 [kernel]   TDH                  <7e>
 +  Mar 24 15:00:20 [kernel]   TDT                  <8e>
 +  Mar 24 15:00:20 [kernel]   next_to_use          <8e>
 +  Mar 24 15:00:20 [kernel]   next_to_clean        <7e>
 +  Mar 24 15:00:20 [kernel] buffer_info[next_to_clean]: 
 +  Mar 24 15:00:20 [kernel]   time_stamp           <1001afbef>
 +  Mar 24 15:00:20 [kernel]   next_to_watch        <7e>
 +  Mar 24 15:00:20 [kernel]   jiffies              <1001b0ca4>
 +  Mar 24 15:00:20 [kernel]   next_to_watch.status <0>
 +  Mar 24 15:00:20 [kernel] MAC Status             <40080083>
 +  Mar 24 15:00:20 [kernel] PHY Status             <796d>
 +  Mar 24 15:00:20 [kernel] PHY 1000BASE-T Status  <3800>
 +  Mar 24 15:00:20 [kernel] PHY Extended Status    <3000>
 +  Mar 24 15:00:20 [kernel] PCI Status             <10>
 +
 +以下の対策をして「収まった」ように見えたが、再発したので追記。
 +
 +以前の対策を元に戻して、今回はNICのTSOをオフにする。e1000ドライバでTSOが有効になっていると問題が生じることがあるらしい。TSOはパケットの一部の処理をCPUからNICに任せる機能で、高負荷時に問題がある場合があるという。
 +
 +  ethtool -K outside rx off tx off tso off
 +
 +再起動で元に戻るので、起動時にコマンドを実行するようにしておく。
 +
 +参考:[[http://extstrg.asabiya.net/pukiwiki/index.php?TSO%28TCP%20Segmentation%20Offload%29%A4%CE%CC%B5%B8%FA%B2%BD]]
 +----
 +カーネルに以下のパラメータを渡すと、とりあえず収まった(それ以上追求していない)。
 +
 +  "e1000e.IntMode=1,1 e1000e.InterruptThrottleRate=10000,10000"
 +
 +e1000eドライバに、何らかのパラメータを渡しているのだが、内容は未調査。
 +gentooでgrub2ならば、/etc/default/grubのGRUB_CMDLINE_LINUX_DEFAULTに追加し、grub.cfgを再構築する。
 +
 +ドライバをIntelから持ってくる必要はない。カーネルに同梱されているものでOKだった。
 +
 +参考:[[http://www.doxer.org/learn-linux/resolved-intel-e1000e-driver-bug-on-82574l-ethernet-controller-causing-network-blipping/]]
linux/linux-etc.1365695343.txt.bz2 · 最終更新: 2013/06/13 00:24 (外部編集)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki