2.1. ハードウェア設定と構成

2.1. ハードウェア設定と構成

2.1.1. BIOSとUEFI

BIOS

BIOS(Basic Input Output System)はキーボードなどのデバイスを制御する基本的なプログラムでマザーボードや拡張カードのフラッシュROMに書き込まれている。 これはパソコンの起動時に最初に実行されるプログラムで、コンピュータの基本的なハードウェアを制御する役割を担っている。

BIOSの役割は以下の通り。

  • OSを起動するためのプログラムをディスクから読み込んで実行する
  • デバイスの動作を設定
  • 基本的な入出力の管理

UEFI

UEFI(Unified Extensible Firmware Interface)はBIOSの容量制限がなくなったり、GUIベースのセットアップ画面を利用できるなど拡張されたBIOSの後継規格。

UEFIはBIOSと異なり、C言語などのプログラミング言語を使用して開発された。 また、BIOSよりも高速で安定性が高く、セキュリティも強化されている。

UEFIには、BIOSに比べて多くの機能があり、起動ローダーやネットワークブート機能、セキュアブート機能などがある。

UEFIの特徴は以下の通り。

  • 起動ドライブの容量制限(2TB)の撤廃
  • GUIベースのセットアップ画面

UEFIとBIOSのセットアップ

OSがインストールされているコンピュータのBIOS/UEFIに入るにはコンピュータ起動後にBIOSに入るにはDeleteやF1、F2などを連打する必要がある。なお連打するキーはマザーボードのメーカによって異なる。

BIOS/UEFIでは以下項目を設定可能。

  • 日付や時刻(ハードウェアクロック)
  • ディスクドライブや各種デバイスのパラメータ
  • キーボードの使用/不使用
  • 電源管理
  • ブートデバイスの優先順位
  • デバイスへのIRQ(割り込み要求)の割り当て
  • 各種デバイスの使用/不使用

2.1.2. デバイスの情報確認

デバイスファイル

Linuxではハードウェアのアクセスを抽象化したデバイスファイルにて行う。デバイスファイルは/dev配下にある。

なおこれらはudevという仕組みにより自動的に生成される。

/procディレクトリ

Linuxカーネルが認識しているデバイス情報は/proc配下に格納される。

主なファイル説明
/proc/cpuinfoCPUの情報を格納したファイル
/proc/interruptsIPQなどの情報を格納したファイル
/proc/ioportsデバイスの制御とデータの受け渡しを行うI/Oポートのアドレスを格納したファイル
/proc/meminfoメモリの情報を格納したファイル
/proc/bus/usb/*USBデバイスの情報を格納したファイル
/proc/bus/pci/*PCIデバイスの情報を格納したファイル
/proc/cmdline起動時のカーネルオプションが格納したファイル

lspciコマンド

デバイスの情報を確認するためのコマンド。

lspci 
オプション説明
-v詳細に表示
-vvより詳細に表示

2.1.3. USBデバイス

USBはPCを周辺機器と接続するための規格。 特徴は以下の通り。

  • 最大127台のデバイスをUSB接続可能
  • 同一コネクタ
  • ホットプラグ
  • プラグ&プレイ
    • H/W、F/W、ドライバ、OS、アプリケーション間が自動的に協調し機器の組み込みと設定を自動的に行う
  • 電源供給

USBのバージョン

バージョン最大転送速度
USB 1.012Mbps
USB 1.112Mbps
USB 2.0480Mbps
USB 3.05Gbps
USB 3.110Gbps
USB 4.040Gbps

デバイスドライバ

ハードウェアの利用にはデバイスドライバが必要となる。 ドライバはベンダーが用意した専用ドライバとLinuxシステムが提供するクラスドライバに分けられる。

USBデバイスを使用するにはデバイスドライバが必要。これはUSBデバイスがデバイスクラスに応じて異なる方法で通信するために使用される。また、クラスドライバはデバイスクラスに準拠する。

デバイスクラスサポートするUSBデバイスの例
HID: Human Interface Deviceskbd, mouse
USB Mass Storage DeviceUSBメモリ、HDD、デジタルオーディオプレーヤー
オーディオマイク、スピーカー、サウンドカード
プリンタプリンタ
ワイヤレスコントローラーWi-Fiアダプタ、Blutoothアダプタ

なお、デバイスクラスの使用に沿ったUSBデバイスはクラスドライバで対応するため、専用のデバイスドライバは不要となる。

lsusbコマンド

接続されたUSBデバイスの情報を表示するためのコマンド。

lsusb
オプション説明
-v詳細な情報を表示
-tツリー形式でUSBデバイスを表示
-s [bus]:[device]特定のバス番号とデバイス番号で指定されたUSBデバイスの情報を表示
-d [vendor]:[product]特定のベンダーIDとデバイスIDで指定されたUSBデバイスの情報を表示

2.1.4. udev

udevはデバイスの管理とドライバの自動検出を行う仕組み。 udevはシステムに新しいデバイスが追加された場合、デバイスの属性情報を取得し、それに基づいて対応するデバイスドライバを自動的に読み込むことができる。

デバイスの情報は、D-Busと呼ばれるプロセス間通信(IPC)のための機構により、異なるアプリケーション間でデータやシグナルを送信したり、受信したりすることができる。

2.1.5. デバイスドライバのロード

lsmodコマンド

lsmodコマンドはロードされたカーネルモジュールの一覧を表示するためのコマンド。 カーネルモジュールは、カーネル内で動作するドライバーやファイルシステムなどの機能を提供している。

lsmod

modprobeコマンド

modprobeコマンドはカーネルモジュールを手動でロードするためのコマンド。modprobeコマンドを使用すると、特定のカーネルモジュールをロードしたり、モジュールの依存関係を自動的に解決したりすることができる。

modprobe <カーネルモジュール名>