ゼミのお話/アルマジロゼミ/Linux組み込みボードへのDebianインストール

2018-04-16 (月) 15:53:00 (1281d)

準備

物品確認

DSC_0211.jpg
  • 図 CF:

注意1

  • 赤LED点滅時には,決して,電源を切らないように

注意2

  • Debianインストール後は,以下のコマンドで終了すること
    • shutdown -h now

ファイルシステムの初期化

  • CF上にext2ファイルシステムを作成してDebianをコピーできる状態にします.Debianを導入するだけで350MBぐらいの容量が必要となります.

手順

  • CFをLinux組み込みボードに挿入
    1279186275-picsay.jpg
    • 図 Armadillo300への取り付け
  • Linuxボード電源投入
  • rootでログイン
  • パーティション作成 (◎の行でキー入力が必要)
    • ◎[armadillo ~]# fdisk /dev/hda
      • ◎Command (m for help): d
      • Selected partition 1
      • ◎Command (m for help): n
      • Command action
      • e extended
      • p primary partition (1-4)
      • ◎p
      • ◎Partition number (1-4): 1
      • ◎First cylinder (1-1946, default 1): 1
      • ◎Last cylinder or +size or +sizeM or +sizeK (1-1946, default 1946): 1946
      • ◎Command (m for help): w
      • The partition table has been altered!
      • Calling ioctl() to re-read partition table.
      • Syncing disks.
    • ファイルシステムの作成
      • ◎[armadillo ~]# mke2fs -O -filetype /dev/hda1

Debainのインストール

  • Debianの分割されたアーカイブファイルをArmadilloにftp転送してCFにコピーします.

CFと転送ファイル用のramfsをマウント

  • [armadillo ~]# mount /dev/hda1 /mnt
  • [armadillo ~]# mount -t ramfs none /home/ftp/pub
  • [armadillo ~]# chmod 777 /home/ftp/pub

ftpでアーカイブファイルを転送

CFにアーカイブファイルを展開

  • [armadillo ~]# tar zxvf /mnt/debian-etch-a300-1.tgz -C /mnt
    • debian-etch-a300-1からdebian-etch-a300-5まで繰り返し行う
  • [armadillo ~]# rm -f /mnt/debian-etch-a300-?.tgz
  • [armadillo ~]# mv /mnt/linux-a300-1.07.bin.gz /mnt/boot/Image.gz
  • [armadillo ~]# sync

起動設定

  • CFにインストールしたDebianを起動するように設定

Debian起動設定

  • Linuxボードの電源を切る
  • ジャンパピンの設定
    • JP1:2-3
    • JP2:1-2
      1279191132-picsay.jpg
      • 図 Armadillo300上のジャンパピンとジャンパピン番号
  • Linuxボードの電源投入する
  • 起動確認

旧情報

  • 現在,"Hermit起動モード設定"を行わなくても起動するので,必要がなければ"Hermit起動モード設定"を行わなくてよい.

Hermit起動モード設定

  • Linuxボードの電源を切る
  • CFを抜く
  • ジャンパピンの設定(工場出荷の初期状態でも可能)
    • JP1:2-3
    • JP2:1-2
      1279191132-picsay.jpg
      • 図 Armadillo300上のジャンパピンとジャンパピン番号
  • Linuxボードの電源投入する
  • 起動パラメータでルートファイルシステムをCFに指定する
    • hermit> clearenv
    • hermit> setenv console-ttyAM0,115200 root=/dev/hda1 noinitrd
  • Linuxボードの電源を切る
  • CFを挿入する
  • Linuxボードの電源投入する
  • 起動確認

初期設定

rootでのログイン確認

  • rootでのログインを行う.初期設定では以下のようになっている.
    • ユーザ名:root
    • パスワード:なし

rootのパスワード設定

  • rootのパスワードを設定する.設定しないと,ssh等でログインができない.
    • パスワード設定コマンド
      • passwd
    • 設定パスワード
      • ユーザ名:root
      • パスワード:root

ネットワーク設定

  • 注意事項
    • Armadillo300には有線LAN,無線LANが存在する.同一セグメントで動作させる場合,以下の状態にするとネットワークの動作が保障されない.
      • 片方を固定IPで,もう片方をDHCPでIPを設定する.
      • 両方固定IPの場合に,両方にgatewayを設定する.
  • デバイス名
    • 有線LAN:eth0
    • 無線LAN:ath0

必須ソフトウェアのインストール

  • 無線LAN設定のためのソフトウェア
    • wlanconfig
    • iwconfig
  • は初期状態ではインストールされていない.また,ネットワーク経由でArmadillo300にインストールするためのソフトウェア
    • ssh
  • も初期状態ではインストールされていない.そこで,Debianで使用可能なソフトウェアパッケージ(ソフトウェアをダウンロード・インストール等行う管理システム)であるaptを用いて無線LANの設定ツールをインストールする.まず,aptの設定を行い,次にaptを用いたソフトウェアのインストールを行う.

aptの設定

無線LAN設定ツールのインストール

  • apt-get install wireless-tools madwifi-tools
    • 途中で容量確認等のプロンプトが出るので,全部 y を入力する.
  • 注意:
    • 無線LANのMACアドレスは全部設定し終わるまで取得できない.そこでMACアドレスが必要な場合は,まず以下の手順で適当に設定し,MACアドレスを取得する.
  • wlanconfig ath0 destroy
  • wlanconfig ath0 create wlandev wifi0 wlanmode sta
  • ifconfig ath0
    • これでMACアドレス取得
    • HWaddr の項目がMACアドレス

sshのインストール

  • apt-get install ssh

sshの設定

  • vi /etc/ssh/sshd_config
    • PermitRootLogin? yes
      • rootでログインするのを許可する
      • 本来,一般ユーザを登録するので,基本的にはPermitRootLogin? noで.yesにする場合は,セキュリティ的に問題があることを認識し,熟考すること.

有線・無線LAN共通設定

コンピュータ名の設定

  • vi /etc/hostname
    • コンピュータの名前を入れる
      • armadillo300.csse.muroran-it.ac.jp

プロキシ設定

固定IPの設定

  • ここでは,有線(eth0)・無線LAN(ath0)に固定IPを付与する.どちらかのみ設定したい場合は,該当部分を読み飛ばすこと.

/etc/network/interfacesの設定

  • vi /etc/network/interfaces (注意:/etc/network/interfaceを編集する.)
    • auto lo eth0 ath0
    • iface lo inet loopback
    • iface eth0 inet static
      • address ***.***.***.*** (注意:***.***.***.*** はシステム管理者によって与えられたIP)
      • netmask ***.***.***.*** (注意:***.***.***.*** はシステム管理者によって与えられたネットマスク)
      • network ***.***.***.*** (注意:設定可能項目として記述.実際には記述しなくてよい)
      • broadcast ***.***.***.*** (注意:設定可能項目として記述.実際には記述しなくてよい)
      • gateway ***.***.***.*** (注意:***.***.***.*** はシステム管理者によって与えられたゲートウェイ)
    • iface ath0 inet static
      • address ***.***.***.*** (注意:***.***.***.*** はシステム管理者によって与えられたIP)
      • netmask ***.***.***.*** (注意:***.***.***.*** はシステム管理者によって与えられたネットマスク)
      • pre-up wlanconfig ath0 destroy
      • pre-up wlanconfig ath0 create wlandev wifi0 wlanmode sta
      • wireless-essid *** (注意:*** はシステム管理者によって与えられた無線LANのESSID)

DNS設定(有線・無線LAN共通)

  • vi /etc/resolv.conf
    • nameserver ***.***.***.***

DHCPによるIP設定

  • ここではDHCPサーバにより有線・無線LANにIPを自動割付することを考える.有線・無線のどちらかのみ設定したい場合は,該当部分を読み飛ばすこと.
  • DHCPサーバが適切に設定されていれば,DNSの設定も自動的に行ってくれるため,ここでは割愛する.必要があれば,固定IPの項目のDNS設定を参照のこと.

/etc/network/interfacesの設定

  • vi /etc/network/interfaces
    • auto lo eth0 ath0
    • iface lo inet loopback
    • iface eth0 inet dhcp
    • iface ath0 inet dhcp

ネットワーク設定確認

  • ネットワークの再起動
    • /etc/init.d/networking restart
  • ログアウト・ログイン(プロキシを更新)
  • 設定確認
    • ifconfig -a
    • eth0などの項目を見て,IPアドレスが割り振られていることを確認
  • 設定確認2
    • TeraTerm?等で割り当てたIPにSSHでログインできることを確認

その他情報

無線LANのコマンドによる手動設定

  • wlanconfig ath0 destroy
  • wlanconfig ath0 create wlandev wifi0 wlanmode ***
    • ***:通信モード.以下のモードが指定可能
      • sta: 通信モードManaged, アクセスポイントを介しての通信方式
      • ap: 通信モードMaster, Linux組み込みボード自体がアクセスポイントとして機能
      • adhoc: 通信モードAd-Hoc, アクセスポイントを介さず他の機器と1対1で通信を行う方式
  • iwconfig ath0 essid ***
    • ***:ESS-ID
  • IPの設定
    • IPを手動で設定する場合
      • ifconfig ath0 ***.***.***.*** up
      • (***.***.***.***: IPアドレス)
    • IPをDHCPで設定する場合
      • dhclient ath0

OS起動時における無線LANの自動起動

  • ただし,通常は/etc/network/interfacesの設定で十分なので以下は不必要.
    • vi /etc/rc0.d/S35networking
      • wlanconfig ath0 destroy
      • ... # "コマンドによる手動設定"の手順を全部書く
      • exit 0 #ファイルの最後にexit 0を書くことを忘れないように.

ユーザ登録

一般情報

  • ユーザ・グループの追加
    • 新規に作成する場合,グループの追加・ユーザの追加の順に行う.ユーザの追加時にどのグループに属するかを指定しなければならないため.
    • 以下の条件で例を示す.
      • ユーザ名:ken
      • ユーザ番号:10000
      • グループ名:kura
      • グループ番号:10001
      • 名前とか:ken kura
      • ホームディレクトリ:/home/ken-kura
      • シェル:/bin/sh
      • 個人用設定ファイルのありか:/etc/skel/
      • 初期パスワード:hoge
  • グループの追加(コマンド)
    • groupadd
      • man groupaddで使い方をみるべし
      • 例1:groupadd kura
      • 例2:groupadd -g 10001 kura
  • グループの追加(手動)
    • /etc/groupを編集
      • 例:echo "kura:*:10001:" >> /etc/group
  • ユーザの追加(コマンド)
    • useradd
      • man useraddで使い方をみるべし
      • 例1:useradd -m -c "ken kura" -d /home/ken-kura -g kura -k /etc/skel -p hoge -s /bin/sh -u 10000 ken
  • ユーザの追加(手動)
    • vipw
      • ユーザの追加・編集
      • 例:ken::10000:10001::0:0:ken kura:/home/ken-kura:/bin/sh
    • mkdir /home/ken
    • chmod 775 /home/ken-kura
    • chown ken:kura /home/ken-kura
    • cp /etc/skel/* /home/ken-kura/

終了

  • shutdown -h now
    • "Power down"のメッセージがでたら電源を切っても大丈夫
  • もしくは
    • halt