OSを上げたら、機器が認識されなくなった|ドライバーが消える2つのパターン

OSを更新したら、それまで動いていた周辺機器が認識されなくなることを示したイメージ図 ITライフハック
この記事は約8分で読めます。
当ページはプロモーションが含まれています

OSを新しくしたら、それまで使っていた機器が動かなくなりました。

壊れたわけではありません。差し直しても、電源を入れ直しても、認識しない。

カーネルから、その機器のドライバーが無くなっていたのでした。

今回は、この話です。Raspberry Pi に限らず、Linux を使っていれば起きます。

機器が動かないときの3つの段階と、それぞれで止まる場所を示した図

スポンサーリンク

「動かない」には、3段階あります

まず、どこで止まっているかを分けます。

1. 機器として見えない
   → 配線、電源、ハブの問題

2. 見えるが、ドライバーが読み込まれない
   → カーネルにドライバーが無い

3. ドライバーは読み込まれるが、動かない
   → ファームウェアが足りない

どこで止まっているかで、打つ手がまったく違います。

スポンサーリンク

確認のしかた

段階1:見えているか

lsusb

USB機器の一覧が出ます。

手元の機体で、TVチューナーを挿した状態がこれです。

Bus 001 Device 004: ID 3275:0080 VidzMedia Pte Ltd PX-S1UD Digital TV Tuner

ここに出ていれば、機器としては見えています。 配線と電源は問題ありません。

出ていないなら、その先を調べても意味がありません。 ケーブル、ポート、ハブの電力を先に疑ってください。

段階2:ドライバーが読み込まれたか

dmesg | tail -30

機器を挿したときの記録が出ます。

うまくいっている場合は、こうなります。実際の出力です。

usb 1-1.2: new high-speed USB device number 4 using xhci_hcd
usb 1-1.2: New USB device found, idVendor=3275, idProduct=0080
usb 1-1.2: Product: PX-S1UD Digital TV Tuner
usb 1-1.2: Manufacturer: PLEX Digital TV Tuner
smsusb:smsusb_probe: board id=18, interface number 0
DVB: registering new adapter (Siano Rio Digital Receiver)
usb 1-1.2: DVB: registering adapter 0 frontend 0 (Siano Mobile Digital MDTV Receiver)...
smsdvb:smsdvb_hotplug: DVB interface registered.
smsmdtv:smscore_init_ir: IR port has not been detected
smsusb:smsusb_probe: Device initialized with return code 0

いちばん下の行を見てください。

Device initialized with return code 0

0 で終わっていれば、成功しています。

読み込まれていない場合

USB機器として見つかったところで、記録が止まります。

usb 1-1.2: New USB device found, idVendor=xxxx, idProduct=xxxx
usb 1-1.2: Product: ...
(ここで終わり)

その先が何も出ないなら、対応するドライバーがありません。

読み込まれているモジュールを確認する

lsmod | grep -i dvb

関係するモジュールが並びます。 上の例だと、`smsusb` `smsdvb` `smsmdtv` が該当します。

何も出ないなら、読み込まれていません。

ドライバーとファームウェアは、別物です

ここを分けて考えないと、詰まります。

ドライバーとファームウェアは別物で、両方そろって初めて動くことを示した図

ドライバー

OSの側にある部品です。 カーネルに含まれているか、追加で入れるか。

これが無いと、機器を認識できません。

ファームウェア

機器の側で動くプログラムです。 起動するときに、OSから機器へ送り込まれます。

ファイルとして、決まった場所に置いておく必要があります。

上のチューナーの場合、こういうファイルです。

/lib/firmware/isdbt_rio.inp

これは、メーカーが配布しているものです。 OSには含まれていないので、自分で入れます。

両方そろって、初めて動きます

ドライバーがあっても、ファームウェアが無ければ動きません。

そして、そのときの記録は「ドライバーは読み込まれたが、その先で失敗した」という形になります。

段階2をクリアして、段階3で止まっている状態です。

消えた機器の話

ここからは、実際に困った話です。

bookworm にしたら、動かなくなった

もう1台、別のTVチューナーを使っていました。かなり古い機器です。

OSを bookworm に上げたら、動かなくなりました。

差し直しても、電源を入れ直しても、記録に出てこない。それまで何年も動いていたものです。

戻せませんでした

調べて、いくつか試しましたが、元に戻す方法が見つかりませんでした。

諦めました。

古い機器で、対応するドライバーがもう保守されていない。そういう状態だったのだと思います。

これは、たまに起きます

カーネルは、古くて使われなくなったドライバーを外していきます。

保守する人がいなくなった、対応する機器がほとんど残っていない。そういう理由で、整理されます。

自分が使っている機器が、その対象になることがある。 これは、避けようがありません。

「消えた」には、2種類あります

ここが、この記事でいちばん書きたいところです。

ドライバーが消えた原因が、カーネル側かディストリビューション側かで打つ手が変わることを示した図

もう1つの経験

最初に出したチューナーの話です。

Ubuntu では、動かなくなりました。 ドライバーが入っていない状態でした。

ところが、Debian では動きます。 上に貼った記録が、その証拠です。

同じ Linux なのに、結果が違いました。

つまり、こういうことです

「Linux なら動く」ではありません。

そのディストリビューションのカーネルに、そのドライバーが含まれているかどうかです。

何を入れて、何を外すか。これは、ディストリビューションごとに決めています。

Raspberry Pi OS は Debian ベースです

ここが、実用として効きます。

Ubuntu で動かなかった機器が、Raspberry Pi では動くことがあります。

実際、上のチューナーがそうでした。

打つ手が違います

カーネルから外された
  → 戻す手段が、たいていない
  → 別の機器を探すことになる

ディストリビューションが外した
  → 別のディストリビューションで動くことがある
  → 追加のパッケージで入ることもある

同じ「動かない」でも、諦めるかどうかが変わります。

OSを上げる前に

使っている機器がある場合、注意が要ります。

いきなり上げない

常時動かしている機体なら、なおさらです。

別のカードを用意して、そちらで新しいOSを試すのが安全です。microSDカードなら、差し替えるだけで戻せます。

上げる前に、記録しておく

uname -r
lsusb
lsmod
ls /lib/firmware/ | head -50

動いていたときの状態が分かると、比較できます。

とくに `lsmod` の出力は、どのモジュールが使われていたかの記録になります。

上げた直後に、確認する

機器を挿して、`dmesg` を見てください。

段階2まで進んでいるかどうかで、状況がだいたい分かります。

動かなくなったときにやること

1. 段階を切り分ける

`lsusb` と `dmesg` を見て、どこで止まっているかを確かめます。

ここを飛ばして探し始めると、時間を無駄にします。

2. モジュールの名前で調べる

以前動いていたときの `lsmod` があれば、そこにモジュール名があります。

その名前で検索すると、状況が分かることがあります。 外されたのか、名前が変わったのか、別のパッケージに移ったのか。

3. 追加のパッケージを探す

カーネル本体に無くても、別途配布されていることがあります。

ただ、古い機器ほど期待できません。

4. 別のディストリビューションを試す

これが効く場合があります。

上に書いたとおり、Ubuntu で無くても Debian にはあるということが実際に起きます。

Raspberry Pi OS は Debian ベースなので、そこで動く可能性があります。

5. 諦める判断

正直に書きます。

古い機器で、保守されていないドライバーの場合、戻せないことがあります。

時間をかけて調べても、出てこない。そういうときは、区切りをつけたほうがいいと思います。

自分も、片方は諦めました。

買うときに、少しだけ考えておく

Linux で使う予定があるなら

買う前に、機器の型番で検索してみてください。

動かしている人がいるかどうかが分かります。情報が新しいほど、安心です。

古い機器を再利用する場合

いま動いているからといって、この先も動くとは限りません。

OSを上げた瞬間に、使えなくなることがあります。

常時動かすものに組み込むなら、そのリスクは頭に入れておいたほうがいいと思います。

まとめ

  • 「動かない」は3段階。見えない/ドライバーが無い/ファームウェアが足りない
  • `lsusb` で見えるか、`dmesg` でどこまで進むかを先に確認する
  • 成功していれば、記録の最後が return code 0 になる
  • ドライバーとファームウェアは別物。 両方そろって動く
  • ファームウェアはメーカー配布のことがある。 OSには含まれない
  • カーネルは、古いドライバーを外していく。 これは避けられない
  • 「消えた」には2種類。カーネルから外されたか、ディストリビューションが外した
  • 「Linux なら動く」ではない。 そのカーネルに含まれているかどうか
  • Ubuntu で動かなくても、Debian では動くことがある(実際に経験)
  • Raspberry Pi OS は Debian ベース。 そこが効く場合がある
  • OSを上げる前に、別のカードで試す。 そして `lsmod` を控えておく
  • 戻せないこともある。 区切りをつける判断も要る

片方は諦めて、片方は別のOSで動きました。

同じ「ドライバーが無い」でも、先に切り分けておけば、無駄に探さずに済みます。

このシリーズは、これで終わりです。microSDの延命設定、スワップ、そしてドライバー。 どれも、長く動かしていると出てくる話でした。

※本記事は2026年8月時点の実測です。カーネルの構成は、版によって変わります。

タイトルとURLをコピーしました