ホーム
 TOPへ 最終更新日:2006年 1月 8日



Contents
※以下は RedHat Linux 7.3(kernel 2.4.18-3)/Panasonic CF-M1ER での例

 
● キーマップ変更(Caps Lock <=> 右Ctrl)

    1. キーマップを別名でコピー後展開
    
        # cd /lib/kbd/keymaps/i386/qwerty/
        # cp -p jp106.kmap.gz jp106_ctrl_caps.kmap.gz
        # gzip -d jp106_ctrl_caps.kmap.gz
    
    2. jp106_ctrl_caps.kmap を変更
    
        # vi /lib/kbd/keymaps/i386/qwerty/jp106_ctrl_caps.kmap
    
        で、
        
        keycode  58 = Caps_Lock を Control に変更
        keycode  97 = Control を Caps_Lock に変更
    
    3. 圧縮後、キーテーブル選択
    
        # gzip jp106_ctrl_caps.kmap
        # /usr/sbin/kbdconfig
        
        で、jp106_ctrl_caps を選択後、キーテーブル再起動
        
        # /etc/init.d/keytable restart
    
    4. X の設定変更
    
        # vi /etc/X11/XF86Config-4
        
        Option  "XkbModel"  "jp106" を "jp106_ctrl_caps" に変更
        
        もしくは、
        
        #   Option  "XkbOptions"    "ctrl:nocaps" のコメント(#)をはずす

        もしくは、
        
        #   Option  "XkbDisable" のコメント(#)をはずす
        
        この後、X を再起動


  Indexに戻る

 
● カレントディレクトリに PATH を通す

    # vi ~/.bash_profile
    
    で、
    PATH=$PATH:$HOME/bin
    に :./ を加える


  Indexに戻る

 
● PC カードに差した無線 LAN を2つ目の Ethernet デバイスとして認識させる

    ※以下の構成を想定しているので注意
        eth0: 有線LAN(既に認識・動作確認済み)
        eth1: 無線LAN
    
    1. pcmcia-cs が入っているかどうか確認
    
        # rpm -qa | grep pcmcia
        
        で、
        
        kernel-pcmcia-cs-3.1.27-18
        
        のように表示されれば OK
    
    2. /etc/pcmcia/config の記述確認
    
        使用するカードの記述があるかどうかを確認、無ければ追加する(*1)
        
        例1) MELCO WLI-PCM-L11 の場合
        
            以下のような行が既に存在する
            
                card "MELCO WLI-PCM-L11"
                  version "MELCO", "WLI-PCM-L11"
                  bind "orinoco_old_cs"
        
        例2) I・O DATA WN-B11/CF の場合
        
            該当するものが存在しないため、/etc/pcmcia/option.conf を作成して(*1)、
            以下のように記述した(*2)
            
                card "WNB11CF"
                  manfid 0x0004, 0x2003
                  bind "wvlan_cs"
            
            (*1) /etc/pcmcia/config に記述されていない場合は、/etc/pcmcia/ 下に
                (任意の名前).conf というファイルを作成すると、これが追加で読み込まれる
                なお、config や、デフォルトでは config.opts も読み込まれるので、
                これらに追加しても認識はされるが、アップデートによって消去される可能性が
                あるため推奨されていないようである
            
            (*2) 記述の無いPC/CFカードの場合は、とりあえずノートPCに挿入した状態で、
                # cardctl ident
                により、例えば
                Socket 0:
                  product info: "IO DATA", "WNB11CF", "Version1.00", ""
                  manfid: 0x0004, 0x2003
                  function: 6 (network)
                のような情報が得られるため、これを利用する。
                
                bind "xxx" の xxx 部分はドライバ名(実際に対応しているかどうかは?)
                
                とりあえず、無線LAN用のドライバとしては、
                ・orinoco_cs    :   Lucent / Intersil(PRISM2)両用?
                ・orinoco_old_cs:   Lucent の古いチップ用?
                ・wvlan_cs      :   Lucent / Intersil(PRISM2)両用(PRISM2は機能限定)
                等がある

    3. modprobe(ローダブルモジュール高レベル管理)用定義ファイル編集
    
        # vi /etc/module.conf
        
        で、
        
        probe eth1 orinoco_cs orinoco_old_cs wvlan_cs
        
        を追加(modprobe で eth1 が指定されると、指定したドライバを順にサーチ)
    
    4. ifcfg-eth1 を作成
    
        # vi /etc/sysconfig/network-scripts/ifcfg-eth1
        
        で、
        
        DEVICE='eth1'
        BOOTPROTO='none'
        # 【 DHCP の場合は BOOTPROTO='dhcp' 】
        ONBOOT='no'
        TYPE='Ethernet"
        USERCTL='no'
        # 【アドレスは自分のネットワークの設定に応じて変更のこと】
        NETWORK='192.168.0.0'
        BROADCAST='192.168.0.255'
        IPADDR='192.168.0.11'
        GATEWAY='192.168.0.1'
        NETMASK='255.255.255.0'
        
        のような記述をする
    
    5. wireless.opts 編集
    
        # vi /etc/pcmcia/wireless.opts
        
        で、導入したカードの記述を確認し、編集する
        
        *,*,*,XX:XX:XX:*) の XX には、該当カードの MAC アドレスの先頭3桁(ベンダID)を指定( | で区切れば複数指定可能)
        
            INFO=    → カード情報
            ESSID=   → ESSID       :使用するアクセスポイントのESSID(SSID)("any"は任意のアクセスポイントを使用)
            MODE=    → 動作モード  :"Managed"[インフラストラクチャ(Infrastructure)モード]/"Ad-Hoc"[アドホック(Ad hoc)モード]
            RATE=    → ビットレート:"auto" "1M" "11M" から選択
            CHANNEL= → 使用チャネル:"1" "2" "3" ...       ※ CHANNEL か FREQ のどちらかを使用
            FREQ=    → 使用周波数  :"2.422G" "2.46G" ...
            KEY=     → WEPキー     :"off"(無効)/"xxxx-xxxx-xx"(16進数・10桁形式(40(64)bits))/"s:?????"(半角英数記号5桁)
        
        例1) MELCO WLI-PCM-L11 の場合
        
            # Lucent Wavelan IEEE (+ Orinoco, RoamAbout and ELSA)
            # Melco/Buffalo Networks WLI-PCM-L11
            # Note : wvlan_cs driver only, and version 1.0.4+ for encryption support
            *,*,*,00:60:1D:*|*,*,*,00:02:2D:*)
                INFO="Wavelan IEEE example (Lucent default settings)"
                ESSID="any"
                MODE="Managed"
                RATE="auto"
                KEY="s:paswd"
                ;;
        
        例2)  I・O DATA WN-B11/CF の場合
            # IO DATA WN-B11/CF
            #   product info: "IO DATA", "WNB11CF", "Version1.00", ""
            #   manfid: 0x0004, 0x2003
            #   function: 6 (network)
            *,*,*,00:E0:00:*)
                INFO="IO DATA WN-B11/CF"
                ESSID="WLANAP"
                MODE="Managed"
                RATE="11M auto"
                KEY="off"
                ;;
    
    6. PCMCIA サービス再起動
    
        # service pcmcia restart
        
        または
        
        # /etc/rc.d/init.d/pcmcia restart
        
        ※このとき、
        
          # tail -f /var/log/messages
        
          で、動作を確認しながら行うとよい
          
        この後、ping を打つなり、ifconfig 及び iwconfig で適切な内容が表示されるかどうかなりで動作を確認できる。
        
        例) eth1(無線)を通して ping を打つ
        
            # ping -I eth1 192.168.0.1
        
    
    ※ eth0(有線)を無効にして eth1(無線) を有効にしたいような場合は、
    
        # ifdown eth0
        # ifup eth1
        
       のようにする
       
       この場合、
       
        # ifconfig
        
       だけでは eth1 と lo のみが表示されるが、
       
        # ifconfig -a
        
       とすると eth0 も表示される

    ・ /etc/sysconfig/network を適切に設定しておく必要がある。
    
        NETWORKING=yes
        NETWORKING_IPV6=yes
        HOSTNAME='foo.localdomain'
        GATEWAY=192.168.0.1
        GATEWAYDEV=eth0
        USERCTL=yes


  Indexに戻る

 
● バックグラウンドでジョブを実行する

    1. バックグランドでジョブを起動
    
        コマンドの後に & をつける
        
        例)iPAQ への PPP 接続をバックグラウンドで実行する
        
            # pppd call ipaq &
    
    2. バックグラウンドジョブの表示
        
        jobs コマンドを使用する
        
        例)
            # jobs
            [1]+  Running                 pppd call ipaq &
    
    3. バックグラウンドジョブをフォアグランドに切り替える
    
        fg コマンドを使用する
        
        例)
            # fg %1
    
    4. ジョブを停止する
    
        Ctrl + Z を押す。
        
        例) Ctrl + Z を押すと、
            [1]+  Stopped                 pppd call ipaq
            のように表示され、ジョブが停止する
    
    5. 停止中のジョブをバックグラウンドで再開する。
    
        bg コマンドを使用する
        
        例)
            # bg %1
            [1]+ pppd call ipaq &
        
        ※ fg コマンドを使えば、フォアグラウンドで再開する


  Indexに戻る

 
● IPC リソースを変更する

    ※現在の IPC リソース値は、ipcs -l で確認できる
    
    ・一時的に変更する場合
    
        /proc/sys/kernel 以下のファイルを直接編集する。
        
        共有メモリ
            shmall  : 合計共有メモリの最大値(4KB単位)
                    ※ ipcs -l ではKB単位なので注意
            shmmax  : セグメントサイズの最大値(Byte単位)
                    ※ ipcs -l ではKB単位なので注意
            shmmni  : セグメント数の最大値
        
        セマフォ
            sem     : ファイル内には4つの数値が記述されている。
                      例) 250   32000   32      128
                      それぞれ左から、
                        ・配列ごとの最大セマフォ数
                        ・システム全体の最大セマフォ数
                        ・semop 呼び出し毎の最大命令数
                        ・最大配列数
                      を表す。
        メッセージキュー
            msgmax  : 最大メッセージサイズ(Byte単位)
            msgmnb  : キューサイズ最大値の初期値(Byte単位)
            msgmni  : システム全体での最大キュー数
    
    ・PC 起動時に自動設定する場合
    
        /etc/sysctl.conf を編集して、
            kernel.(/proc/sys/kernel以下のファイル名) = (設定値)
        のように追加/変更した後、システムを再起動する。
        
        例) 最大メッセージキュー数を変更する場合
            kernel.msgmni = 4096


  Indexに戻る

 
● ipchains を使用して IP マスカレードの設定を行う場合

    PC を IP マスカレード可能なルータとして使用する場合の、ipchains での
    設定方法を示す。
    
    ※デフォルトでは IP パケットフィルタリングは ipchains を使用して行う
      ようになっている( lokkit によるファイアウォールの設定は、ipchains
      用である)。
      もし iptables に切り替えて使用した後、再び ipchains に戻すような
      場合には、以下のようにする。
      
        # chkconfig --del iptables
        # chkconfig --add ipchains
      
      この後で、システムを再起動すると、ipchains を使用する設定になる。
    
    1. IP パケットフォワーディングを有効にする。
        
        ・一時的な措置の場合
        
            # echo "1" > /proc/sys/net/ipv4/ip_forward
        
        ・PC 起動時に自動設定する場合
        
            /etc/sysctl.conf で、
            net.ipv4.ip_forward = 0
            となっている場合は、
            net.ipv4.ip_forward = 1
            のように変更する。
    
    2. IP マスカレードの設定を行う。
        
        以下に、
        『特定のホスト(アドレス 192.168.1.0/24)から来たパケットを、
          マスカレード処理する』
        設定例を示す。
        ※ /24 はネットマスク(255.255.255.0)
        
        # ipchains -P forward DENY
            ←デフォルトの転送(forward)チェインポリシーはDENY(破棄)とする
        
        # ipchains -I input -s 192.168.1.0/24 -j ACCEPT
            ←192.168.1.* から来た全てのパケットを受け付ける
        
        # ipchains -I forward -s 192.168.1.0/24 -j MASQ
            ←192.168.1.* から来た全てのパケットをマスカレード処理して
              転送する
        
        # service ipchains save
            ←設定を保存する(/etc/sysconfig/ipchains に保存される)


  Indexに戻る

 
● Netfilter(iptables)を使用して IP マスカレードの設定を行う場合

    PC を IP マスカレード可能なルータとして使用する場合の、Netfilter
    (iptables)での設定方法を示す。
    
    ※デフォルトでは IP パケットフィルタリングは ipchains を使用して行う
      ようになっている。
      iptables に切り替える場合は、
      
        # chkconfig --del ipchains
        # chkconfig --add iptables
        # cd /etc/sysconfig
        # touch iptables
        # chmod 700 iptables
      
      この後で、システムを再起動すると、Netfilter を使用する設定になる。
      
      なお、Netfilter は、デフォルトでは IP フィルタリングに関しては
    
    1. IP パケットフォワーディングを有効にする。
        
        ※ipchains の場合と同じ手順で設定できる。
    
    2. IP マスカレードの設定を行う。
        
        以下に、
        『特定のホスト(アドレス 192.168.1.0/24)から来たパケットを、
          マスカレード処理する』
        設定例を示す。
        ※ /24 はネットマスク(255.255.255.0)
        
        # iptables -t nat -I POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
            ←192.168.1.* から来た全てのパケットをマスカレード処理して
              eth0(接続のたびにIPが変化する)から外部へ転送する
              
        ※送信元(eth0)が固定IP(例えば10.7.0.1)の場合には、
            # iptables -t nat -I POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT -to-source 10.7.0.1
              のように指定したほうがよい。
              
        # service iptables save
            ←設定を保存する(/etc/sysconfig/iptables に保存される)


  Indexに戻る

 
● よく参照するファイル/ディレクトリ

    ・ポート番号一覧
        /etc/services
    
    ・エラー番号
        /usr/include/asm/errno.h
    
    ・PATH
        (root 用標準)
        /bin
        /sbin
        /usr/bin
        /usr/sbin
        /usr/local/bin
        /usr/local/sbin
        /usr/bin/X11
        /usr/X11R6/bin
        /root/bin
        
        (後から追加したもの)
        ./                      →カレント
        /skiff/local/bin        →ARM(iPAQ)用コンパイル環境
        /usr/local/v6/bin       →IPv6用ツール


  Indexに戻る

 
● サウンドカード認識

    /etc/modules.conf に、以下のような設定を付け加える。
    
        alias sound-slot-0 nm256_audio
        options nm256_audio force_load=1
        post-install sound-slot-0 /bin/aumix-minimal -f /etc/.aumixrc -L >/dev/null 2>&1 || :
        pre-remove sound-slot-0 /bin/aumix-minimal -f /etc/.aumixrc -S >/dev/null 2>&1 || :
    
    ※特に、options nm256_audio force_load=1 が無いと認識されない


  Indexに戻る

 
● grep の使用方法

    ・ディレクトリを再帰的に検索する
    
        [書式] grep -r --include=対象ファイルのパターン 検索文字列 *
        
            例)
                $ grep -r --include=*.[ch] --include=*.cpp serchstring *
                ※ カレントディレクトリ以下の *.c *.h *.cpp 中で、serchstring を含む行を表示


  Indexに戻る

 
● ssh 用設定

    ・ディレクトリ
        /etc/ssh
    
    ・sshd 用設定ファイル
        # vi /etc/ssh/sshd_config
        で、例えば
        LoginGraceTime 600  # ログインタイムアウト設定
        PermitRootLogin no  # root ログイン許可設定
        のように変更する。


  Indexに戻る

 
● 標準出力(stdout)・標準エラー出力(stderr)を画面に表示しながらかつログに取る

    ・ "2>&1"(途中にスペースは入れないこと)を指定することにより、標準エラー
      出力を標準出力にリダイレクトできる
      ※ちなみに "1>&2" は標準出力を標準エラー出力にリダイレクトする。
      
      また、"tee"コマンドは、標準入力の内容を標準出力とファイルに同時に書き出せる。
      
      よって、
      
      例)
        make 2>&1 | tee make.log
        
      のようにすることで、make の結果出力された標準出力・標準エラー出力を
      tee に渡して、画面に出力しながらログ(make.log)にも書き出すことが可能。


  Indexに戻る

 
● ルーティング情報設定

    ・現在のルーティング情報を調べる
    
        # route -A inet
        Kernel IP routing table
        Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
        192.168.0.0     *               255.255.255.0   U     0      0        0 eth1
        127.0.0.0       *               255.0.0.0       U     0      0        0 lo
        default         192.168.0.1     0.0.0.0         UG    0      0        0 eth0


  Indexに戻る

 
● TCP の KeepAlive 設定を変更する
    
    例えば SSH で接続している際に、すぐ通信が切れてしまうような場合の対策として使用できる。
    ※ なお、SSH の場合に KeepAlive を有効にするには、サーバ側の /etc/ssh/sshd_config で、
       KeepAlive yes
       の設定後、再起動(service sshd restart)する必要がある。
    
    ・一時的な変更
    
        /proc/sys/net/ipv4/ にある、tcp_keepalive_* ファイルを変更する。
            tcp_keepalive_time
                最後のパケット交換から probe パケット送出までのアイドル時間(秒単位)
                ※デフォルト値: 7200
            tcp_keepalive_intvl
                probe パケット送出に応答がなかった場合の再送間隔(秒単位)
                ※デフォルト値: 75
            tcp_keepalive_probes 
                probe パケット再送出回数上限(この後、通信を切断する)
                ※デフォルト値: 9

    ・PC 起動時に自動設定する場合
    
        /etc/sysctl.conf を編集して、

            net.ipv4.tcp_keepalive_time = 60
            net.ipv4.tcp_keepalive_intvl = 10
            net.ipv4.tcp_keepalive_probes = 60
        
        のような記述をしておく。


  Indexに戻る



ホーム  このページの先頭