web-dev-qa-db-ja.com

外付けUSBデバイスの場合、Linuxでドライバーに加えてファームウェアが必要なのはなぜですか?

数日前、古いバージョンのLinuxにUSBWiFiアダプターをインストールしようとしていました。正常にインストールしました。

しかし、私が従った手順では、ドライバーだけでなく、そのアダプターで使用されているチップのファームウェアもインストールする必要がありました。

ファームウェアについて調べたところ、ファームウェアはハードウェア上で動作するソフトウェアであることがわかりました。しかし、ファームウェアはルーターのファームウェアのようにアダプターにプリロードされていませんか?チップにプリロードされていないのはなぜですか?

7
Kashyap Kansara

から buntu Wiki

多くのデバイスには、オペレーティングシステムで機能させるための2つの重要なソフトウェアがあります。 1つ目は、システムがハードウェアと通信できるようにするソフトウェアである、動作するドライバーです。 2つ目はファームウェアです。これは通常、デバイスが正しく機能するためにデバイスに直接アップロードされる小さなコードです。ファームウェアは、デバイス内のハードウェアをプログラミングする方法と考えることができます。実際、ほとんどすべての場合、ファームウェアはブラックボックスであるという点でハードウェアのように扱われます。付属のソースコードは無料で配布されていません。

そして

ファームウェアは通常、ハードウェアデバイスを開発する会社によって保守されます。 Windowsの世界では、ファームウェアは通常、インストールするドライバーの一部です。多くの場合、ユーザーには表示されません。 Linuxでは、ファームウェアはさまざまなソースから配布される場合があります。一部のファームウェアは、Linuxカーネルソースから提供されます。再配布ライセンスを持っている他のものは上流から来ます。一部のファームウェアには、残念ながら無料の再配布を許可するライセンスがありません。

ファームウェアには、BIOSソフトウェアと共通の重要な機能があります。それ自体を更新することはできません。これは(オープンソースではなく)完全にクローズドソースであり、何らかの手順で再インストールできますが、ダウンストリームユーザーが検査したり修正したりすることはできません。

6
MariusMatutiae

主な理由は、ベンダーが製品の発売後にUSBデバイスのファームウェアを変更できるようにしたいと考えているためです...

  • ...ファームウェアにバグがある可能性があります
  • ...管轄は変更される可能性があります
  • ...ベンダーは後でより多くの機能をサポートできるようにしたいと考えています
  • ...互換性の問題が現場で発生する可能性があります

したがって、ますます多くのUSBデバイスにブートローダーのみが装備され、ファームウェアのアップロードが必要になります。

5
Run CMD