LPI

LPI テキスト処理フィルタ1

テキスト処理フィルタとは、ファイルを読み込んで
何らかの処理を行って書き出すものをさす。

■catコマンド(ファイルの内容を標準出力する)

書式:cat [ファイル名]

[例] (file1とfile2の内容をfileにまとめて書き出す)
 $ cat file1 file2 > file

■tacコマンド
(catと反対でファイルの最下行から逆方向に表示)

書式:tac [ファイル名]

[例] (catとtacの比較)
 $ cat file
    hogehoge
    lpi
 $ tac file
    lpi
    hogehoge

■nlコマンド
(テキストファイルの一部又は全部に行番号を付加)

書式:nl [オプション] [ファイル名]

[例] $ nl file
       1 hogehoge
       2 lpi

nlコマンドオプション
~~~~~~~~~~~~~~~~~~~~~~
-b <形式> 指定した形式で本文に行番号を付加
-h <形式> 指定した形式でヘッダーに行番号を付加
-f <形式> 指定した形式でフッターに行番号を付加

nlコマンドの形式
~~~~~~~~~~~~~~~~~~
a 全ての行
t 空白以外の行
n 行番号の付加を中止

■odコマンド
(バイナリファイルの内容を8進数や16進数で表示。
デフォルトでは8進数表示。)

書式:od [オプション] [ファイル名]

odコマンドのオプション
~~~~~~~~~~~~~~~~~~~~~~~~~~
-t <出力タイプ> 出力フォーマットを指定する

odコマンドの出力タイプ
~~~~~~~~~~~~~~~~~~~~~~~~~
c ASCII文字
o 8進数
x 16進数

■headコマンド
(ファイルの先頭部分を表示。デフォルトでは10行目
まで表示。)

書式:head [オプション] [ファイル名]

[例] ファイルの1行目から30行目まで表示する

      $ head -30 file

■tailコマンド(ファイルの末尾部分を表示)

書式:tail [オプション] [ファイル名]

tailオプションのオプション
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-c <バイト数> 出力するバイト数を指定する
-<行数>
-n <行数>  先頭から指定された行数分だけ表示
-f     ファイルの末尾に追加された行を常に表示

 

| | コメント (0) | トラックバック (0)

LPI コマンド履歴

1度使ったコマンドをもう1度使ったり、一部だけ変更して
使いたい場合は、bashの履歴機能を利用。

プロンプトが出ている状態で↑キー、(又はCtrl + Pキー)
を押すと実行したコマンドが最近実行したものから表示
される。

historyコマンドを使うと、コマンド履歴が順に表示される。
古いものから順に番号が付く。

$ history
    1    ls
    2    cat .profile
    3    vi .profile

履歴番号が3のコマンドを実行するには、履歴番号の前に
[ ! ]を付けて、実行する。

$ !3

コマンド履歴は、ユーザのホームディレクトリにある
.bash_historyファイルに保存される。
このファイルは、環境変数HISTFILEによって変更可能。
履歴を残す数は、環境変数HISTSIZEで設定される。
デフォルトは、500となっている。


| | コメント (0) | トラックバック (0)

LPI 引用府

■ [ ' ] 単一引用府(シングルクォーテーション)
単一引用府の中は、全て文字列であると解釈される。

■ [ " ]二重引用府(ダブルクォーテーション)
二重引用府内に変数があれば、その変数の内容が
展開される。
また、二重引用府内にバッククォーテーション[ ' ]
が使われていると、その中も展開される。

[例]

$ echo $DATE
8月31日 ←環境変数DATEの内容が表示される。
$ echo '$DATE'
$DATE ←文字列$DATEが出力される
$ echo "今日の日付は$DATEです。"
今日の日付は8月31日です。 
↑二重引用府内の環境変数DATEの内容も表示される。

展開させたくない場合、例えば$記号をそのまま使いたい
場合は、バックスラッシュ[\]を使う。
バックスラッシュ直後の文字は、全て文字であると判断
される。
これを「エスケープシーケンス」と言う。

[例]

$ echo "変数\$DATEの内容は「$DATE」です。"
変数$DATEの内容は「8月31日」です。
↑バックスラッシュの後ろに$DATEがある為、環境変数と
みなされず、文字列として出力される。


(注)ここでは全角のバックスラッシュを使っているが、
半角のバックスラッシュを利用する。


■[ ` ]バッククォーテーション
引用府内にコマンドがあれば、そのコマンド実行した結果
が展開される。
また変数の場合は、変数に格納されているコマンドを実行
した結果が展開される。

[例]

$ echo "カレントディレクトリは、`pwd` です。"
カレントディレクトリは、/home/hogehogeです。
↑バッククォーテーション内のコマンドの結果が出力される。

| | コメント (0) | トラックバック (0)

LPI コマンドの実行

コマンドは、次のような要素から成り立つ。

コマンド オプション 引数

■複数のコマンドの実行制御

コマンド         説明
----------------------------------------------------------
コマンド1;コマンド2   コマンド1に続いてコマンド2を実行
[例] pwd ; ls
----------------------------------------------------------
コマンド1&&コマンド2   コマンド1が正常終了した時のみ
[例] pwd && ls        コマンド2を実行
----------------------------------------------------------
コマンド1 || コマンド2   コマンド1が正常終了しなかった場合
                                のみコマンド2を実行
[例] grep LPIC file.log || echo "LPIC not found in file.log"
----------------------------------------------------------
(コマンド1;コマンド2)  一纏まりのコマンドグループとして実行
[例] (date; pwd; ls) > kekka.log
----------------------------------------------------------
{コマンド1;コマンド2}  現在のシェル内でコマンドを実行
----------------------------------------------------------

| | コメント (0) | トラックバック (0)

LPI 環境変数PATH

コマンドには内部コマンド(シェル自体に組み込まれているもの)
外部コマンド(独立したプログラムとして存在するもの)の
2種類存在する。

パスの通っていない場所に置かれているコマンドやプログラム
を実行する場合、絶対パス(フルパス)を指定する必要がある。
絶対パスは、最上位のディレクトリ( / )から表記する方法。
相対パスは、カレントディレクトリ( . )を基点とした相対位置で
表記する方法。

一般ユーザの環境変数PATHにパスを追加するには、.bash_profile
などの環境設定ファイルのPATH設定を修正するか、以下方法で
環境変数PATHを追加する。

■環境PATHの追加書式

$ PATH=$PATH:追加するディレクトリ名

(例) /mydir ディレクトリを環境変数PATHの最後に追加

$ PATH=$PATH:/mydir

※シェルは、環境変数PATHの先頭からディレクトリを検索する。
もし同名のプログラムがあった場合は、環境変数PATHの先頭に
近いほうのディレクトリに置かれているプログラムを実行する。

$ PATH=/mydir

上記のようにすると、パスが通っているディレクトリは/mydir
だけになってしまい、外部コマンドが使えなくなる。(フルパス
で指定すれば使える。)

※通常、セキュリティの理由から環境変数PATHにはカレント
ディレクトリを含みません。その為、カレントディレクトリに
あるプログラムを実行する時には、カレントディレクトリを
意味する[ . ] をつけた形式でコマンドを実行する。

(例) カレントディレクトリにあるmycommandを実行した場合

$ ./mycommand

| | コメント (0) | トラックバック (0)

LPI シェル変数と環境変数

bashシェルの基本的なユーザ設定は、ユーザのホームにある
.profileファイル、.bash_profileファイル、.bashrcファイル
行う。
.profileファイル、.bash_profileファイルは、ログイン時に1回
だけ読み込まれるのに対して、.bashrcファイルは起動する
たびに読み込まれる。

環境変数とは、その変数を定義したシェル上及びそのシェル
で実行されるプログラムからも参照する事のできる変数です。

■変数を定義する書式

変数名=値

指定する際の[=]の前後にスペースが入らないように注意する。
定義された変数はechoコマンドを使って参照ができる。
変数を指定する場合は、変数名の先頭に[$]をつける。

■echoコマンドの書式

echo [文字列又は$変数名]

例えば、echoコマンドに変数lpiを指定すると

$ lpi='Linux Professional Institute'
$ echo $lpi
Linux Professional Institute

変数を削除する場合は、unsetコマンドを使う。

■unsetコマンドの書式

unset 変数名

先ほどセットした変数lpiを削除する場合

$ unset lpi

削除する場合は、変数名の先頭に[$]はつけない。
定義されている環境変数の一覧表示にはenvコマンド
環境変数とシェル変数を両方表示するにはsetコマンド
を使う。
シェル変数は新たに起動したbashからは参照できないが、
exportコマンドでエクスポートする事で参照できるようになる。

■exportコマンドの書式

export 変数名


削除する時と同様、変数名の先頭に[$]はつけない。

以下は、シェル変数と環境変数の違いを確認している。

$ VAR=lpic        ←VAR変数を定義
$ echo $VAR    ←VAR変数をecho
lpic                        ←[lpic]が出力される
$ bash                  ←bashを新たに起動
$ echo $VAR    ←VAR変数をecho

                            ←定義されていない為、何も出力されない
$ exit                   ←新たに起動したbashを終了
$ export VAR    ←VAR変数をエクスポート
$ bash                  ←bashを新たに起動
echo $VAR    ←VAR変数をecho
lpic                        ←新たに起動したbashでも[lpic]が出力される

エクスポートと変数定義を1行で書く事も可能。

$ export VAR=lpic

| | コメント (0) | トラックバック (0)

LPI bashシェルの基本的キー操作

■bashシェルの基本操作
-------------------------------------------------------
操作                        説明
-------------------------------------------------------
Tabキー                        コマンドやディレクトリ名を補完
-------------------------------------------------------
Ctrl+Aキー                  行の先頭へカーソルを移動
-------------------------------------------------------
Ctrl+Eキー                    行の最後へカーソルを移動
-------------------------------------------------------
Ctrl+Dキー                    カーソル部分を1文字削除
-------------------------------------------------------
Ctrl+Hキー                    カーソルの左1文字削除
-------------------------------------------------------
Ctrl+Lキー                    画面をクリアしてカレント行を再表示
-------------------------------------------------------
Ctrl+Cキー                    処理を中断
-------------------------------------------------------
Ctrl+Sキー                    画面への出力を停止
-------------------------------------------------------
Ctrl+Qキー                    画面への出力を再開
-------------------------------------------------------
Ctrl+Zキー                    処理を一時停止(サスペンド)
-------------------------------------------------------

| | コメント (0) | トラックバック (0)

LPI GNU&UNIXコマンド

ユーザがログインすると、シェルは[$]や[#]などの
プロンプトを表示する。
このプロンプトは一般ユーザとスーパーユーザ
によって異なる。

例えばbashシェルの場合、一般ユーザのプロンプトは
[$]、スーパーユーザ[#]が表示される。

また、プロンプトの表示形式は環境変数のPS1で
設定する。

## 実際に環境変数PS1でプロンプトを変更してみた

.bashrcファイルに以下追加
PS1="\u:"

## 編集後、プロンプトがログインしたユーザ名で表示

プロンプト変数は、こちらを参考

| | コメント (0) | トラックバック (0)

LPI Red Hatのパッケージ管理

Red Hatのパッケージ管理は、rpmコマンドを用いて管理する。

■rpmコマンドの書式

# rpm [オプション]

オプション                                    説明
------------------------------------------------------------
【インストール/アップグレードモード】
------------------------------------------------------------
-i [パッケージファイル名]                   パッケージをインストール
( --install )                         
------------------------------------------------------------
-U [パッケージファイル名]                パッケージをアップグレード
( --upgrade )                                         (無ければインストールする)
------------------------------------------------------------
-F [パッケージファイル名]           パッケージがインストールされて
( --freshen )                                   いればアップグレードする
------------------------------------------------------------
    上記と併用するオプション
    ----------------------------------------------------------
    -v                                                                詳細な情報を表示する
    ----------------------------------------------------------
    -h  ( --hash )                                          進行状況を[#]で表示する
    ----------------------------------------------------------
    --nodeps                                    依存関係を無視してインストール
    ----------------------------------------------------------
    --force                                          既存のファイルを新しいものに
                                                          置き換える
    ----------------------------------------------------------
    --test                                              実際にはインストールせずに
                                                            テストを実施する
    ----------------------------------------------------------
【アンインストールモード】
------------------------------------------------------------
-e [パッケージ名]                             パッケージをアンインストール
( --erase )
------------------------------------------------------------
    上記と併用するオプション
    ----------------------------------------------------------
    --nodeps                             依存関係を無視してアンインストール
    ----------------------------------------------------------
【照会モード】
------------------------------------------------------------
-q [パッケージ名]                    指定したパッケージがインストール
                                                                されているか照会する
------------------------------------------------------------
    上記と併用するオプション
    ---------------------------------------------------------
    -a                                               インストール済の全てのパッケージを
    ( --all )                                     表示する
    ---------------------------------------------------------
    -f [ファイル名]                    指定したファイルを含むパッケージを
                                                        表示する
    ---------------------------------------------------------
    -p [パッケージファイル名]    対象としてパッケージファイルを
                                                                指定する
    ---------------------------------------------------------
    -c                                                指定ファイルのみを表示する
    ( --configfiles )
    ---------------------------------------------------------
    -d                                                ドキュメントのみを表示する
    ( --docfiles )
    ---------------------------------------------------------
    -i                                         インストール済のパッケージ情報を表示
    ---------------------------------------------------------
    -R                                        指定したパッケージが依存している
                                                 パッケージを表示する
    ---------------------------------------------------------

【rpmコマンド実行例】

詳細な情報進行状況を表示してパッケージをインストール
# rpm -ivh rpmpackage-2.1.3.i386.rpm

■パッケージ間の依存関係を無視してパッケージをインストール
# rpm -ivh --nodeps rpmpackage-2.1.3.i386.rpm

■カレントディレクトリ上のRPMパッケージのうち、既に
 インストールされているパッケージのみアップグレード

# rpm -Fvh *.rpm

■rpmpackageパッケージをアンインストール
# rpm -e rpmpackage

注:)この時、rpmpackageパッケージに依存しているパッケージが
  存在する場合、削除は出来ない。


■rpmpackageパッケージと依存関係にあるパッケージを表示
# rpm -qRp rpmpackage

依存関係を無視してアンインストール
# rpm -e --nodeps rpmpackage

■インストールされている全てのパッケージでパッケージ名が
 XFree86をが含まれているものを表示
# rpm -qa | grep XFree86

■各パッケージの情報を表示
# rpm -qi perl

■インストール前のパッケージ情報を表示
# rpm -qip perl

■指定したファイルが何というパッケージからインストール
 されたのか表示
# rpm -qf /bin/bash

■インストール前のパッケージからどのようなファイルが
 インストールされるのかを表示
# rpm -qlp apache-1.3.26-1.i386.rpm

| | コメント (0) | トラックバック (0)

LPI apt-getコマンド

APT:Advanced Packages Management
apt-getコマンドは、依存関係を調整しながらパッケージの
インストール、アップグレード、アンインストールを行う。

■apt-getコマンドの書式

# apt-get [オプション] [コマンド] パッケージ名

オプション                      |説明
--------------------------------------------------------------
-d                                          | ファイルをダウンロードする
                                    | (インストールはしない)
--------------------------------------------------------------
-s                                          | システムを変更せずにシミュレートする
--------------------------------------------------------------
dist-upgrade                       | Debianのシステムを最新にアップグレード
--------------------------------------------------------------
install                                  |パッケージのインストール、アップグレード
--------------------------------------------------------------
remove       | パッケージをアンインストール
--------------------------------------------------------------
update                                |パッケージ情報ファイルを更新する
--------------------------------------------------------------
upgrade         | システムの全パッケージを安全に
                                    | アップグレード
--------------------------------------------------------------

apt-getコマンドでパッケージ管理を始めるには、まず/etc/apt/sources.list
にパッケージを管理しているサイトのURLを記述する事!!

/etc/apt/sources.listファイルの内容
--------------------------------------------------------------
deb ftp://ftp.jp.debian.org/debian    woddy    main contrib non-free
--------------------------------------------------------------

# apt-get update  ##最新のパッケージ情報ファイルを取得する
# apt-get install aptsample  ##aptsampleパッケージをインストールする
# apt-get remove aptsample  ##aptsampleパッケージを完全に削除する
# apt-get dist-upgrade  ##システムを一括して最新状態にアップグレード
# apt-get upgrade  ##システムの全パッケージを安全にアップグレード

| | コメント (0) | トラックバック (0)

LPI Debianパッケージ管理

Linuxのパッケージ管理は大きく分けて、deb形式とRPM形式
の2種類がある。
deb形式は、Debian系のディストリビューションで利用さされる。

deb形式のパッケージを扱うには、dpkgコマンドを使う。

■dpkgコマンドの書式

# dpkg [オプション]  アクション

(例)dpkgコマンドを使って、debpackageパッケージをインストール。

# dpkg -i debpackage          
# dpkg --install debpackage
(どちらも同じ動作をするコマンドとなる)

オプション         | 説明
----------------------------------------------------------------
-E                       | 既に同じバージョンがインストールされていれば
                      | インストールしない
----------------------------------------------------------------
-G                       | 既に新バージョンがインストールされていれば
                           | インストールしない
----------------------------------------------------------------
-R                       | ディレクトリ内を再起的に処理する
( --recursive )      |
----------------------------------------------------------------

アクション                  | 説明
----------------------------------------------------------------
-i [パッケージファイル名] | パッケージをインストールする
( --install )         |
----------------------------------------------------------------
-r [パッケージ名]     | 設定ファイルを残してパッケージを削除
( --remove )         |
----------------------------------------------------------------
-P[パッケージ名]     | 設定ファイルを含め完全にパッケージを
( --purge )         | 削除
----------------------------------------------------------------
-l [検索パターン]     | インストール済のパッケージを検索して
( --list )          | 表示
----------------------------------------------------------------
-S[ファイル名検索パターン]| 指定されたファイルがどのパッケージから
( --search )          | インストールされたか表示
----------------------------------------------------------------
-L[パッケージ名]     | 指定パッケージからインストールされた
( --listfile )                              | ファイルを一覧表示
----------------------------------------------------------------
-s [パッケージ名]                 | パッケージの情報を表示
( --status )                            |
----------------------------------------------------------------
--configure [パッケージ名] | 展開されたパッケージを構成
----------------------------------------------------------------
--unpack [パッケージ名]      | パッケージを展開(インストールはしない)
----------------------------------------------------------------

# dpkg -l                ## システムにインストール済の全パッケージ表示させる

| | コメント (0) | トラックバック (0)

LPI 共有ライブラリ

■ライブラリには、静的ライブラリと共有ライブラリがある。

■プログラム本体からライブラリの機能(関数)を呼び出す事を
 リンクとよぶ。

■リンクには、スタティックリンク(静的リンク)とダイナミック
 リンク(動的リンク)がある。

スタティックリンクとは
コンパイルする時点で、コンパイラがライブラリから機能を
取り出し、実行ファイルに埋め込む。

ダイナミックリンクとは、
スタティックリンクだと、良く使われるライブラリの機能が重複
して入ってしまう事になるので、実行ファイルえライブラリの
機能を埋め込む事はせず、実行時にライブラリの機能を呼び出す
方法。

ダイナミックリンクによって呼び出されるライブラリを
共有ライブラリ
とよぶ。

共有ライブラリは、

[lib〜.so〜]というファイル名となる。例えば、libreadline.so.3です。
共有ライブラリは、通常 /lib , /usr/lib に置かれる。

■実行ファイルが必要としている共有ライブラリの調査方法

(例)lsコマンドが必要とする共有ライブラリの調査方法

# ldd 'which ls'

プログラム実行時には、ld.soリンカ及びローダーが実行時にリンク
する共有ライブラリを検索して必要なライブラリをロードする。
/lib, /usr/libディレクトリ以外のライブラリを検索する場合は、
/etc/ld.so.conf ファイルに記述する。
しかし、プログラム実行毎にディレクトリを検索するのは非効率的
なので、実際にはバイナリのキャッシュファイルである/etc/ld.so.cache
が参照される。

共有ライブラリを変更したい場合は、ldconfigコマンドを実行して
キャッシュを更新する必要がある。
(/etc/ld.so.confに基づいて、/etc/ld.so.cacheを再構築する)

| | コメント (0) | トラックバック (0)

LPI ブートローダのインストール

システム起動時に、BIOSは起動ドライブの最初のセクター
(MBR:マスターブートレコード、ブートセクター)から
起動プログラムを読み込む。
このプログラムがブートローダー(第一段階のブートローダー)です。
第一段階のブートローダーは、第二段階のブートローダーを呼び出し、
これがカーネルをメモリに読み込む。
このようにブートローダーは二段構成となっている。

Linuxの標準的なブートローダーはLILO ( LInux LOader )

LILOは複数のプログラムと様々なファイルから構成されている。

■ブートローダー

■マップインストーラー
(ブートセクターを更新し、マップファイルを作成するプログラム。
通常は、/sbin/lilo [liloコマンド]となる。)

■マップファイル

■LILO設定ファイル
(LILOの設定は、通常 /etc/lilo.conf となる。)

/etc/lilo.conf の設定を反映させるには、/sbin/lilo を実行しないと反映
はされない!!


■liloコマンド書式

# lilo [オプション]

オプション                    |   説明
-----------------------------------------------------------------------
-C <設定ファイル>      |設定ファイルを指定する(デフォルトは/etc/lilo.conf)
-----------------------------------------------------------------------
-q                                         |現在のマップファイルを表示する
-----------------------------------------------------------------------
-t                                         |テストのみ実行する
-----------------------------------------------------------------------
-u                                         |LILOを削除する
-----------------------------------------------------------------------

# lilo /etc/lilo.conf (設定を反映させる際に実行するコマンド)

GRUB:GRand Unifird Bootloader は、GNUが公開している多機能なブートローダー。

ブートローダーとしてGRUBをインストールするには、grub-installを使う。
以下は、/dev/hdaのMBR領域にGRUBをインストールする場合です。

# grub-install /dev/hda

GRUBの設定ファイルは、/boot/grub/grub.conf となる。

LILOの場合と異なり、設定ファイルの変更に伴うマップファイルの更新は不要!

■インストールとコンパイル

1.インストールするアーカイブを手に入れる。(ここでは、software.tar.gz)

2.アーカイブを展開する。
# tar zxvf software.tar.gz (解凍、展開)
もしくは、
# gunzip software.tar.gz ; tar zvf software.tar (圧縮ファイルを解凍、後に展開)
# gzip-dc software.tar.gz | tar xv (圧縮ファイルを解凍、後に展開)

3.環境を確認し、makefileを作成する為のconfigureを実行する。
# cd software
# ./configure

4.ソースから実行可能ファイルを生成する。(コンパイル)
# make

5.インストールを実行する。
# make install

| | コメント (0) | トラックバック (0)

LPI Linuxパーティションの分割

Linuxインストールに必要なパーティションは、最低でも

■ルートパーティション( / )
■スワップ領域(/swap)

が必要となる。

スワップ領域は、Linuxの仮想メモリとして利用される為、
物理メモリが不足した場合に、ディスクの一部を一時的に
メモリの延長として使う事ができるようにする機能となる。
その為、物理メモリ128MB搭載している場合はスワップ領域
として128〜256MB(物理メモリの同程度から2倍を目安)確保する。

# 以前、職場で検証機のOSインストールを頼まれて、
 パーティションを1スライスと言われ、まんまスワップ領域
 なしのルートパーティションのみで作成したなぁ・・・。
 検証機だったから、良かったけど・・・。
 本当は、スワップとルートで切らないと駄目だったなぁ。

| | コメント (0) | トラックバック (0)

LPI シリアルポート、USBポート、

シリアルポートを表すデバイスファイル名は、
_______________________________________________________________________
1番目のシリアルポート | /dev/ttyS0
-----------------------------------------
2番目のシリアルポート | /dev/ttyS1
-----------------------------------------

シリアルポートへのリソース割り当てが適切に行われなかった時は、
IRQ、I/Oアドレスを設定する必要があります。
どのI/Oアドレスが、どのシリアルデバイスに対応するのかは、
setserialコマンドで確認が出来る。

# setserial /dev/ttyS0
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4

上記結果は、/dev/ttyS0I/Oアドレスが0x03f8IRQが4という結果
だと分かる。

USB(Universal Serial Bus)の特徴
■最大127台のUSBデバイスを接続可能
■様々なUSBデバイスを同一のコネクタで接続可能
■電源を入れたまま接続、取り外しに対応(ホットプラグ)
■プラグ&プレイをサポート
(自動的に協調し、機器の組み込みと設定を自動的に行う仕組み)
■何台接続してもIRQの消費は1個のみ
■USBポートからUSBデバイスに電源を供給可能

LinuxでUSB機能を利用する為のカーネルモジュール(USBドライバ)には、
usb-uhci.o と usb-ohci.o がある。

___________________________________________________________________________________________________________________
usb-uchi.o |Intel社、VIA社などのUHCIコントローラに対応 
------------------------------------------------------------------
usb-ohci.o |Compaq社、SIS社、Ali社などのOHCIコントローラに対応 
------------------------------------------------------------------
※システムで、どちらのUSBコントローラを搭載しているのかはdmesgコマンド
または、lspciコマンドで確認が出来る。

# dmesg | grep usb-?hci

# lspci

USBモジュールを手動でロードする場合は、modprobeコマンドを使う。

# modprobe usb-uhci

| | コメント (0) | トラックバック (0)

LPI IRA、I/Oアドレス、DMA、SCSI、PCIの設定

LPIを取得しようかと・・・それで勉強のメモ書きを。

IRQ(Interrupt ReQuest):割り込み要求のこと。各種デバイスがCPUとデータをやり取り
際に発生し、CPUがどのデバイスからの要求なのか識別するために用いられる。

通常、IRQは自動的に割り当てられますが、手動で割り当てる時には重複しないよう
注意する。IRQが重複すると、デバイスが動作しなかったり、動作しても不安定になる
要素なる。

IRQの割り当ては、# cat /proc/interrupts で確認が出来る。

I/Oアドレスは、CPUのメモリマップ上のアドレスで入出力を行うデバイスの為に
割り当てられる。
I/Oアドレスの割り当ては # cat /proc/ioports で確認が出来る。

DMA(Direct Memory Access):CPUを使わずに、デバイスとメインメモリとの間で高速な
データ転送を行うために使う。

CPUが他の処理を実行中でも、ハードディスクなどのデバイスとメモリとのデータを
DMAコントローラが制御する為、CPUの負荷軽減となり、処理速度が向上する。
DMAチャネルの割り当ては、# cat /proc/dma で確認が出来る。

IRQ I/Oアドレス DMA の値は競合しないようにする

# lsdev コマンドにより、デバイスごとのDMA、IRQ、I/Oアドレス一覧を確認できる。

SCSI(Small Computers System Interface):コンピュータと周辺機器を接続する為の
インターフェイスの国際標準規格。

SCSIは、SCSI IDで識別されることと、SCSI IDは重複しない事が重要。
/proc/scsi ディレクトリ以下に情報がある。

SCSI接続されたハードディスクやCD-ROMドライブのデバイスファイル名は、
________________________________________________________________
1番目のデバイス | /dev/sda
------------------------------------
2番目のデバイス | /dev/sdb
------------------------------------
    :       |  :
------------------------------------
 
SCSI接続されたテープドライブのデバイスファイル名は、
________________________________________________________________
1番目のテープドライブ | /dev/st0
------------------------------------
2番目のテープドライブ | /dev/st1
------------------------------------

その他、PCIデバイス情報は # cat /proc/pci もしくは、# lspci にて確認ができる。

| | コメント (0) | トラックバック (0)