ようこそゲストさん

Kerosoft : Modus Operandi

2009/11/16(Mon) Debian4にIntel PCI-E GbEを認識させる方法

はてブ情報 はてブに登録 はてブ数 2009/11/16 23:58 Software::Linux
別にDebian 4.0/etchに限ったことではないが、古いkernelのLinuxを使っている場合、PCI ExpressのNICなどのドライバを持っていないことが多く、OSをインストールはいいがネットワーク全滅ということがある。

Intelの場合は幸いにもドライバを公開してくれているので楽ではあるが、Windowsの時と比べてダイアログに従ってポンポン行けばよいほど楽ではないので、いろいろ試行錯誤してみて解決策を見出したので、そのメモ。

ダウンロード

今回tryしたマシンはhp compaqのdx7500 SFF PCという、BTO PC。
構成表の「インテル(R) WG82567V ギガビット・ネットワーク・コネクション」を頼りにintelを探すと、82567に該当するドライバを発見。
以下からダウンロード。
Network Adapter Driver for PCI-E Gigabit Network Connections under Linux*

インストールしてみる

とりあえずマニュアル通りにやってみる。
$ cd
$ tar zxvf e1000e-1.0.15.tar.gz
$ cd src
$ sudo make install
すると、カーネルソースがないと怒られる。
ま、そりゃそうか。
Windows慣れしてると「ドライバインストールにカーネルが要る」という発想がイマイチだな…。

kernel準備

自分が使っているのはDebian 4.0/etchのrev6なので、kernel.orgからlinux-2.6.18.6.tar.bz2とかをダウンロードして/usr/src/に解凍。
# mv linux-2.6.18.6.tar.bz2 /usr/src
# cd /usr/src
# tar jxf linux-2.6.18.6.tar.bz2

適宜小細工

カーネルソースのパスを見つけてくれない*1ので、/usr/src/linuxにシンボリックを張るのが楽。
# ln -s linux-2.6.18.6 linux
version.hが無いという問題はREADMEにも書いてあるようにmakeすりゃいいのでする。
# cd /usr/src/linux/
# make include/linux/version.h
コンフィグがautoconf.hという名前で無いといけないらしいのでシンボリック。
# ln -s config.h autoconf.h
で、これでmakeやったらコンパイラがないと言われたwこれはひどい……

*1 : uname -rの結果は、'2.6.18-6-686'で解凍ディレクトリに該当しない

gccインストール

# aptitude install gcc
ネットワークが使えないので、CD-ROMよりaptインストール。

Makefile修正

gccをインストールして再度makeに挑戦すると
This driver is not supported on kernel versions older than 2.4.0
カーネルが2.4.0以下だと!?そんなはずはない…。

色々追っていくと、Makefileのカーネルバージョンが入るべきKVERに何も入っていないことが判明したので、代入しても良いかと思ったが、とりあえずunameコマンドを使う事に。
Makefileをいじって177行目あたりのKVERの定義している下に
# get the kernel version - we use this to find the correct install path
KVER := $(shell $(CC) $(EXTRA_CFLAGS) -E -dM $(VERSION_FILE) | grep UTS_RELEASE | awk ' print $$3' | sed 's/\"//g')
KVER := $(shell uname -r)    # ←これを追加
とする

makeエラー

が、まだmakeエラー起こす。
どうやら、カーネル側も置いただけじゃだめで適宜コンパイルが居る模様。
# cd /usr/src/linux
# make oldconfig && make prepare
新機能の部分については、適当にEnter連打でよい。
ちなみに、
WARNING: Symbol version dump /usr/src/linux-2.6.18.6/Module.symvers
         is missing, module will have dependencies and modversions.
は無視で問題なさそう。

またmakeエラー

MODPOST
/bin/sh: script/mod/modpost そのようなファイルやディレクトリはありません
make[2]: *** [__modpost] Error 127
make[1]: *** [modules] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.18.6'
make: *** [default] Error 2 
というなエラーメッセージで止まった場合、
# cd /usr/src/linux
# make modules_prepare
で直る。

やっと

これでやっとmakeが通った。いえーい。
注意として、一発目でsudo make installやって失敗した場合、makeで生成されたファイルがroot権限で0バイトのまま残ってしまい、ユーザ権限でmakeしても許可がないなどと怒られるので、一度書庫ごと解凍し直したほうが良さそう。
make cleanやるにも、先のMakefile修正の部分までたどり着いていないとcleanできないって怒られるので。


ちなみに、sudo make installしたときの
catmanモードで/var/cache/man/cat7/e1000e.7.gz に書き込みできません
は無視した。

参考文献など

本家のREADME
README
autoconf.hはconfig.hのシンボリックでおkのソース
Linux kernel source not configured: missing config.h [Archive] - Ubuntu Forums
カーネルソースを利用したモジュールの作成方法についての補足
http://sourceforge.jp/forum/forum.php?forum_id=16160
modpostで止まった時の対処法
incentivespro.com :: View topic - modpost missing
参考になった記事や興味深かった記事は、他の人も見つけやすいようにリンクはてブしていただけると助かります…。 コメントも歓迎です。

名前:  非公開コメント   

  • TB-URL  http://mo.kerosoft.com/0147/tb/

2009/11/16(Mon) Windows7のウィンドウ整列機能をオフにする

はてブ情報 はてブに登録 はてブ数 2009/11/16 11:42 Software::Windows
Windows7の新機能の一つに、ウィンドウの自動整列機能がある。

というのが、昨今、ワイドディスプレイ化が進んだことなどにより、左右に半分ずつブラウザを並べたり、ブラウザとWordを並べたりといったような使い方をしやすいよう、ウィンドウを左端もしくは右端に持って行くと、横幅が画面の半分で自動整列されるようにしたのだろう。

が、私個人としてはノートPCは別として、基本的にデュアルディスプレイで生活しているので、ブラウザなんぞは2ndディスプレイに最大化するのが常であるし、ノートPCだとFn+矢印キーでPageDw/UpやHome/Endを操作するときに誤爆してWin+矢印キーを操作し、先の自動整列が起こってしまうのが面倒に感じていた。

というわけで、この自動整列機能及びショートカットキーの切り方。

方法

新機能を付けたときそれを使いたくないユーザのために、簡単にオフにできるようになっているのは助かると思った。

というわけで、操作は簡単。
  1. コントロールパネルを開き、コンピュータの簡単操作の横のボタンを押す。


  2. マウス動作の変更を選ぶ。


  3. ウィンドウが画面の端に移動されたとき自動的に整列されないようにしますにチェックを入れる。


たったこれだけです。
参考になった記事や興味深かった記事は、他の人も見つけやすいようにリンクはてブしていただけると助かります…。 コメントも歓迎です。

名前:  非公開コメント   

  • TB-URL  http://mo.kerosoft.com/0146/tb/