LANの状態に応じて、回線を接続する。
母校(東北電子専門学校)が今年もTGSに出展しているということなので、冷かすためだけに1.5時間+待ち時間30分かけていってきました。
そして色々回ることなく、学校のブースだけを回って出てきました。所要時間10分のために30分+1200円でした。何をしてるんだ自分。
やはりというかなんというか、あまりにも人が多すぎていやんだったので、早く出てきたのは正解だったと自分では思っています。中の待ち時間も半端なかった。試遊5分のために40分も並ぶほど酔狂ではありません。
本題ですが、私はVaio Type ZにGentooを突っ込んで、色々持ち運んでいます(当然ながらHDDにはリカバリ領域すら残していません)。
外で利用する場合、emobileの接続端末を利用して、中で利用する場合でも無線LANを利用しているため、基本的に有線LANは利用していません。
で、Gentooは基本的にshutdownしたりしません。カーネル再構築後のrebootとかくらいなんですが、そのたびに、繋いでいない有線LANがDHCPの接続待ちが発生し、そこで分単位の待ち時間が発生してしまいます。
これは中々にしんどいため、前々からどうにかならないか、と思っていましたが、どうにかなりました。
emerge ethtool で、ethtoolをインストールします。
ちなみにloに対してethtoolを利用すると、以下のような結果になります。
derui@vaio_z test % sudo ethtool lo Settings for lo: Link detected: yes
この「Link detected: 」の部分が、noになっている場合、回線が接続されていないことになります。
んで、Gentooでは、回線への接続は /etc/init.d/net.loへのシンボリックリンクを /etc/init.d/net.eth0 のようにして作成しますので、net.loを書き換えることで実現させました。
書き換え前後のdiffは以下の通り。
diff -c /home/derui/develop/my-ruby-sources/net.lo.orig /home/derui/develop/my-ruby-sources/net.lo *** /home/derui/develop/my-ruby-sources/net.lo.orig 2009-09-26 15:29:47.189986014 +0900 --- /home/derui/develop/my-ruby-sources/net.lo 2009-09-26 15:29:38.461985991 +0900 *************** *** 746,751 **** --- 746,757 ---- fi fi + if [[ `ethtool ${iface} | grep "Link detected: no"` ]] ; then + einfo "Link not detected, and exit starting eth0" + eend 0 + return 0 + fi + einfo "Bringing up ${iface}" eindent for (( config_counter=0; config_counter<${#config[@]}; config_counter++ )); do Diff finished. Sat Sep 26 15:30:41 2009
とりあえずこれで上手くいきました。が、ppp0とかでも上手くいくかどうかは確認してません。
でもこれで起動時間が非常に短かくなりました。後は起動時に行っているintel/nvidiaのカード認識部分を何とかすれば、快適になるかと思います。