symbolic linkをお勉強
EeePC900AでBluetoothマウスを使うにあたりコメントで助けていただいて一旦は自動認識まで出来た。
しかし亀亀増設したSSDにXandrosをクリーンインストール後、同じことをやろうとするも出来ない。
推測するに当時はBlueSoleil Linux for ASUS EeePC900ってのをインストールした後だったのでディレクトリ構成が出来ていたようだ。
クリーンインストール後は/、rwには
/lib/modules/2.6.21.4-eeepc/kernel/drivers/bluetooth
なんちゅうディレクトリどころか/lib/modules/すら無い。
(BlueSoleilインストール後は有ったんだけど)
もっとも教えてくださった方はEeePC900Aをお持ちでは無いとのこと。
おそらく知識があればこの手の話は理解できるんだと思う。
ってことでお勉強!
symbolic linkとは
あるファイルやディレクトリに別の名前を与え、ユーザやアプリケーションがその名前をファイル本体と同様に扱えるようにする仕組み。
UNIX系OSのファイルシステムの機能として定着している。
UNIXでは「ln」コマンドでシンボリックリンクを作成することができ、ファイルシステム上にはリンク情報が格納された0バイトのファイルが出現する。
元のファイルを扱うのと同じ感覚でシンボリックリンクと通してファイルやディレクトリにアクセスすることができる。
のだそうだ。ようするにショートカットですな!
わかりやすい説明を見つけたので丸々引用
--------------------------------------------------------------------------------------------
ln コマンドの引数の順序は cp
コマンドと同じ。
一つ目の引数に既存のファイル名を指定し、二つ目の引数に新しいファイル名を指定する。
ただ、-s
オプションをつけてシンボリックリンクを作成する場合、一つ目の引数に指定するファイル名の相対パスは、カレントディレクトリではなく新しいリンクを作成
するディレクトリが基準になる。これが本当に間違えやすい。
例えばカレントディレクトリが /home/user のときに
ln -s dir1/src dir2/link を実行すると、
/home/user/dir2/link に /home/user/dir2/dir1/src へのシンボリックリンクが出来る。/home/user/dir1/src へのリンクではない!!
--------------------------------------------------------------------------------------------
なのだそうだ。教えて頂いたケースでは
リンクの作成は、/lib/modules/2.6.21.4-eeepc/kernel/drivers/bluetoothのディレクトリで
ln -s bluetooth.2.6.21.4.ko bluetooth.ko
ln -s hci_usb.2.6.21.4.ko hci_usb.ko
で良いとのこと。
もしかして/.rwなんぞにこだわらなくてもcdコマンドで各々のターゲットのところへおもむけば自動的に/roのところに行くので、そこでLnコマンド叩けば良いのかもしれん!
とコンソールで
cd /lib/modules/2.6.21.4-eeepc/kernel/drivers/bluetooth と叩いて
ls とするとそこにはhci_usb.2.6.21.4.koではなくhci_usb.koが居た。
ん?逆じゃねぇのか?
あっ!私が「hci_usb.2.6.21.4.koにrenameした」と書いてたからだ。
うーむ、もうちょっとで判りそうだぞ!
追記
cd /lib/modules/2.6.21.4-eeepc/kernel/drivers/bluetooth
sudo ln -s hci_usb.ko hci_usb.2.6.21.4.ko
cd /lib/modules/2.6.21.4-eeepc/kernel/net/bluetooth
sudo ln -s bluetooth.ko bluetooth.2.6.21.4.ko
sudo depmod -a で依存関係を構築
出来た!
| 固定リンク
この記事へのコメントは終了しました。
コメント
こんばんは(ぺこり)
lnコマンドに関しては、記載のとおりでよろしいと思います。
で、Xandrosではカーネルのアップデートはないようなので言及致しませんでしたけど、できる限りデフォルトのものはrenameしないで、シンボリックリンクを張る方が良いですよ。renameしてしまうと、パッケージの管理上ファイルが不存在になって、うまく管理できなくなる可能性ああります。
投稿: 自由人 | 2009年3月16日 (月) 22時12分
自由人さんへ
renameの件了解いたしました。
今回、おかげさまでクリーンインストールから記事の手順で成功いたしました。
なのでrenameもせずに成功です。(^^)
投稿: アンビンバンコ | 2009年3月16日 (月) 22時34分