LinuxでD-Link・BelkinなどのUSBワイヤレスドングルを認識させる方法【クイックガイド】
一般的に、GNU/Linuxのモダンなディストリビューションが動作しているマシンにUSBデバイスを挿せば、すぐに使える状態になると期待できます。DebianからopenSUSEまで、多くのディストリビューションは挿入されたUSBデバイスを自動的に認識し、適切なオープンソースドライバーが見つかれば有効化してくれます。Ubuntuのように、オープンソース版が存在しない場合にはクローズドソースドライバーを採用しているディストリビューションもあります。
しかし、USBドングルでワイヤレス接続を確立するのは、そう簡単ではないことがあります。Linuxディストリビューションがデバイスを自動的に有効化してくれない場合、BluetoothやWi-Fi接続を同期できず困ってしまうでしょう。幸い、ターミナルから簡単な操作を行えば、再起動後にすべて正常な状態へ戻せる可能性があります。
方法1:hcitoolでデバイスを認識させる
まずターミナルウィンドウを開きましょう。Dashで検索するか、LXDE・Whisker・KDEなどのメニューから「システムツール」経由で起動できます。また、ほぼすべてのデスクトップ環境でCtrl + Alt + Tキーを押すことでも開けます。ウィンドウマネージャーが対応していれば、Super(Windows)キーを押しながらTキーを押す方法も利用可能です。
ターミナルが起動したら、sudo hcitool lescanを実行します。これで目的のBluetoothデバイスが見つかるかもしれません。「プログラム'hcitool'は現在インストールされていません。sudo apt install bluezと入力するとインストールできます」といったエラーが表示された場合は、必要なBluetoothデーモンがインストールされていないことが原因と考えられます。sudo自体からエラーが出るケースもあります。まずリポジトリが有効になっていることを確認した上でsudo apt-get updateを実行し、続けてsudo apt-get install bluezでデーモンをインストールしてください。インストール完了後にもう一度試してみましょう。コマンドプロンプトでrebootと入力して再起動し、改善するかどうか確認するのも有効です。
方法2:99-local-bluetooth.rulesファイルを編集する
hcitoolを使ってもどうしてもデバイスを認識できない場合は、99-local-bluetooth.rulesファイルにルールを追加して、システムにデバイスを認識させる必要があります。この方法はDebian系のほぼすべてのディストリビューションで機能し、Red Hat Linuxでもおそらく動作します。ひいては、Linux Mint、Ubuntu、さらにはLXLE、Bodhi Linux、KubuntuといったUbuntu系の派生ディストリビューションにも適用できるはずです。
コマンドプロンプトでsudo nano /etc/udev/rules.d/99-local-bluetooth.rulesと入力してEnterキーを押し、ファイルを開きます。お好みに応じて、nanoの代わりにviやvimなど別のテキストエディターを使用しても構いません。ファイルの末尾までスクロールし、以下の行を追加してください。
SUBSYSTEM=="usb", ATTRS{idVendor}=="####", ATTRS{idProduct}=="####", RUN+="/bin/sh -c 'modprobe btusb; echo #### #### > /sys/bus/usb/drivers/btusb/new_id'"
ターミナルベースのエディターを使用していて、この行をコピー&ペーストしたい場合は、ターミナルの「編集」メニューから「貼り付け」を選択するか、Ctrl+Vを押す際にShiftキーも併せて押してください。
「#」の部分は、お使いのデバイスのベンダーID(Vendor ID)とプロダクトID(Product ID)に置き換える必要があります。IDが分かっているならそのまま入力しましょう。分からない場合は、コマンドラインからlsusbを実行して調べます。表示されたリストの中から自分のデバイス名を探してください。「ID」という文字列の後に、4桁の16進数、コロン、さらに4桁の16進数が続いて表示されるはずです。最初の4桁でATTRS{idVendor}=="####"の部分を、後半の4桁でATTRS{idProduct}=="####"の部分を置き換え、さらに両方のIDを使ってechoの後の記号部分も書き換えます。ファイルを保存して終了し、マシンを再起動すれば、作業は完了です。
lsusbコマンドを実行してもデバイスがリストに表示されない場合は、デバイスが正しく接続されているかを確認してください。例として挙げたスクリーンショットでは、実際にはBluetoothデバイスがリストに表示されていませんでした。これはデバイスがきちんと挿さっていなかったことが原因です。また、挿入直後にlsusbを実行するとデバイスを検出できないことがあるため、少し待ってから実行するようにしましょう。
まとめ
USBワイヤレスドングルがLinuxで自動認識されない場合でも、hcitoolによる確認やudevルールの手動追加という2つのアプローチで解決できることがほとんどです。まずはbluezパッケージの導入状況を確認し、それでも認識しない場合にベンダーIDとプロダクトIDを指定したルールを追加する、という流れで試してみてください。
著者について
Kevin Arrows(ケヴィン・アローズ)
ケヴィン・アローズは、10年以上の業界経験を持つテクノロジースペシャリストです。Microsoft Certified Technology Specialist(MCTS)の資格を保有し、最新の技術動向を追いかけることに強い情熱を注いでいます。ソフトウェア開発、サイバーセキュリティ、クラウドコンピューティングなど、幅広い技術トピックについて執筆しており、複雑な技術的概念を明快かつ簡潔に説明する能力で高い評価を得ています。
-
Gitマージ時に表示される「コミットメッセージを入力してください」から抜け出す方法
Gitでマージ操作を行った後、「コミットメッセージを入力して、このマージが必要な理由を説明してください(Please enter a commit message to explain why this merge is necessary)」という表示が出て、画面から抜け出せなくなってしまう——これはGitユーザーが陥りがちな最も戸惑う状況の一つです。何か文字を入力しても、編集画面から出られないように見えるためです。しかし実は、この表示はエラーメッセージではないのです。 このプロンプトは、マージの内容を確認・編集するために用意されたもので、入力したテキストは単なるコメントとして、後からコード
-
Unixエポックでシステムの日付と時刻を設定する方法:初心者向けステップバイステップガイド
Unixエポックとは何かUnixエポックは、1970年1月1日(木曜日)のUTC午前0時00分00秒に始まりました。それ以来、Unix系システムはこの起点からの経過秒数を数えることで時刻を管理しています。Unix本体や、Linux・FreeBSDなどの各種実装では、うるう秒を差し引いた「エポックからの正確な経過秒数」という形で時刻を記録しています。この概念は、普段の作業ではユーザーやプログラマーの目に触れることはあまりありません。しかし、Unixエポック開始からの経過秒数さえわかれば、その値を使ってシステムの時刻を直接設定できるのです。操作にはコマンドラインインターフェースが必要です。Ctrl