atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • このページの操作履歴
    • このウィキのページ操作履歴
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡(不具合、障害など)
ページ検索 メニュー
玄箱PROとかLinuxとか
  • 広告なしオファー
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
広告非表示(β版)
ページ一覧
玄箱PROとかLinuxとか
  • 広告なしオファー
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
玄箱PROとかLinuxとか
広告非表示 広告非表示(β)版 ページ検索 ページ検索 メニュー メニュー
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • このページの操作履歴
    • このウィキのページ操作履歴
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡する(不具合、障害など)
  • atwiki
  • 玄箱PROとかLinuxとか
  • SetupDevEnv.sh

玄箱PROとかLinuxとか

SetupDevEnv.sh

最終更新:2008年02月03日 04:00

Bot(ページ名リンク)

- view
だれでも歓迎! 編集
標準Linuxの/usr/local/sbin/内にある。
開発用Linuxに必要な材料をHDDに展開する役割を担う。
また、ユーザーの意思次第でHDDブートの設定も行う。
  • 動作内容
  • スクリプト
  • スクリプト詳細
    • HDDブートの準備
    • U-Boot環境変数の設定

動作内容

  • /mnt/mtdにhddrootfs.tar.gz、uImage.buffaloがあるかどうかを確認して以下を実行。

ある場合
  • /mnt/bootディレクトリを作成し、/dev/sda1をext3形式でマウントして、そこにuImage.buffaloをコピーする。
  • /mnt/rootfsディレクトリを作成し、/dev/sda2をxfs形式でマウントして、そこにhddrootfs.tar.gzを展開する。
デバイス マウントポイント マウント形式
/dev/sda1 /mnt/boot ext3
/dev/sda2 /mnt/rootfs xfs
  • /usr/local/bin/kuro_libを/mnt/rootfs/usr/local/binにコピーする。
  • ChangeMyUbootEnvがあればU-Boot環境変数を書き換える。なければそのまま終了する。

ない場合
  • エラー終了させる。

スクリプト

#!/bin/sh

. /usr/local/bin/kuro_lib

TMP_BOOT_MPT=/mnt/boot
TMP_ROOT_MPT=/mnt/rootfs

HDD_ROOTFS=${MTD_MPT}/hddrootfs.tar.gz
UIMAGE=${MTD_MPT}/uImage.buffalo

CHANGE_UBOOT_ENV=${MTD_MPT}/ChangeMyUbootEnv

# check material
if [ -e ${HDD_ROOTFS} -a -e ${UIMAGE} ] ; then
        # I believe sda is already fdisked and format is finished.
        # That's a KUROBOX quality....www
        #

        mkdir ${TMP_BOOT_MPT}
        mkdir ${TMP_ROOT_MPT}

        mount -t ext3 ${DISK1_DEV}1 ${TMP_BOOT_MPT}
        [ $? -ne 0 ] && exit 1
        mount -t xfs ${DISK1_DEV}2 ${TMP_ROOT_MPT}
        [ $? -ne 0 ] && exit 1

        cp -afp ${UIMAGE} ${TMP_BOOT_MPT}/
        tar -zxvf ${HDD_ROOTFS} -C ${TMP_ROOT_MPT}/
        cp -f /usr/local/bin/kuro_lib ${TMP_ROOT_MPT}/usr/local/bin/

        # OK! prepare of hdd is finished.

        # change u-boot environment or not ?
        if [ -e ${CHANGE_UBOOT_ENV} ] ; then
                nvram -c set default_kernel_addr 0x00100000
                nvram -c set bootargs_base 'console=ttyS0,115200'
                nvram -c set bootargs_root 'root=/dev/sda2 rw panic=5'
                nvram -c set bootargs 'console=ttyS0,115200 root=/dev/sda2 rw panic=5 BOOTVER=1.09'
                nvram -c set bootcmd 'ide reset; ext2load ide 0:1 $(default_kernel_addr) /$(kernel); bootm $(default_kernel_addr)'
                nvram -c set nand_boot no
        fi

        # OK! u-boot environment is changed.

else
        exit 1
fi

スクリプト詳細

ブロックごとに見てみる。
#!/bin/sh

. /usr/local/bin/kuro_lib
シェルにshを指定して、/usr/local/bin/kuro_libをサブシェルで実行している。
このkuro_lib内の
  • MTD_MPT変数(=/mnt/mtd)
  • DISK1_DEV変数(=/dev/sda)
を使用するためだ。
TMP_BOOT_MPT=/mnt/boot
TMP_ROOT_MPT=/mnt/rootfs

HDD_ROOTFS=${MTD_MPT}/hddrootfs.tar.gz
UIMAGE=${MTD_MPT}/uImage.buffalo

CHANGE_UBOOT_ENV=${MTD_MPT}/ChangeMyUbootEnv
TMP_BOOT_MPTという変数を用意し、そこに/mnt/bootを代入。
TMP_ROOT_MPTという変数を用意し、そこに/mnt/rootfsを代入。
HDD_ROOTFSという変数を用意し、そこに/mnt/mtd/hddrootfs.tar.gzを代入。
UIMAGEという変数を用意し、そこに/mnt/mtd/uImage.buffaloを代入。
CHANGE_UBOOT_ENVという変数を用意し、そこに/mnt/mtd/ChangeMyUbootEnvを代入。
# check material
必要材料のチェック。

HDDブートの準備

if [ -e ${HDD_ROOTFS} -a -e ${UIMAGE} ] ; then
/mnt/mtd/hddrootfs.tar.gzが存在し、かつ/mnt/mtd/uImage.buffaloも存在するならば次を実行する。
# I believe sda is already fdisked and format is finished.
# That's a KUROBOX quality....www
#
「sdaはもうfdiskされフォーマットもされていると信じています。これが玄箱クオリティです。」とコメントされている。
mkdir ${TMP_BOOT_MPT}
mkdir ${TMP_ROOT_MPT}
mkdirコマンド?で/mnt/bootと/mnt/rootfsというディレクトリを作成している。
mount -t ext3 ${DISK1_DEV}1 ${TMP_BOOT_MPT}
mountコマンドで、/dev/sda1をext3形式で/mnt/bootにマウントしている。
[ $? -ne 0 ] && exit 1
そのmountコマンド実行時に終了ステータスが「0」(つまり正常)でなければ、終了ステータス「1」(つまり異常)を設定しスクリプトを終了する。
mount -t xfs ${DISK1_DEV}2 ${TMP_ROOT_MPT}
mountコマンドで、/dev/sda2をxfs形式で/mnt/rootfsにマウントしている。
[ $? -ne 0 ] && exit 1
そのmountコマンド実行時に終了ステータスが「0」(つまり正常)でなければ、終了ステータス「1」(つまり異常)を設定しスクリプトを終了する。
cp -afp ${UIMAGE} ${TMP_BOOT_MPT}/
cpコマンド?で/mnt/mtd/uImage.buffaloを/mnt/boot/にコピーしている。
「-afp」オプションは、「-a」で「できるだけ属性や構造を保持する」、「-f」で「同名ファイルを警告せずに上書きする」、「-p」で「パーミッションやタイムスタンプを保持したままコピー」という意味だ。
tar -zxvf ${HDD_ROOTFS} -C ${TMP_ROOT_MPT}/
tarコマンドで/mnt/mtd/hddrootfs.tar.gzを/mnt/rootfs/に展開している。
「-zxvf」オプションは、「-z」で「アーカイブ展開と同時にzip形式での解凍も行う(拡張子:.tar.gz)」、「-x」で「アーカイブからファイル・ディレクトリを取り出す」、「-v」で「処理の詳細を表示する」、「-f」で「アーカイブファイルのファイル名/デバイスファイル名を指定する」という意味だ。
cp -f /usr/local/bin/kuro_lib ${TMP_ROOT_MPT}/usr/local/bin/
ふたたびcpコマンド?で/usr/local/bin/kuro_libを/mnt/rootfs/usr/local/bin/に「-f」オプション(同名ファイルを警告せずに上書きする)でコピーしている。
# OK! prepare of hdd is finished.
HDDの準備は完了しました、とのコメント。
# change u-boot environment or not ?
U-Bootの環境も変更するかどうか、というコメント。ここからU-Bootの環境変数の変更処理だ。

U-Boot環境変数の設定

if [ -e ${CHANGE_UBOOT_ENV} ] ; then
/mnt/mtd/ChangeMyUbootEnvが存在すれば次を実行。
nvram -c set default_kernel_addr 0x00100000
nvram -c set bootargs_base 'console=ttyS0,115200'
nvram -c set bootargs_root 'root=/dev/sda2 rw panic=5'
nvram -c set bootargs 'console=ttyS0,115200 root=/dev/sda2 rw panic=5 BOOTVER=1.09'
nvram -c set bootcmd 'ide reset; ext2load ide 0:1 $(default_kernel_addr) /$(kernel); bootm $(default_kernel_addr)'
nvram -c set nand_boot no
nvramコマンド?を使ってU-Boot環境変数を設定している。
各環境変数の変更内容については環境変数について?で説明する。
ここではルートファイルシステムを/dev/sda2、ブートするカーネルを/dev/sda1、NANDフラッシュからのブートはしない、という設定になっている。
fi
/mnt/mtd/ChangeMyUbootEnvの有無の条件分岐を終了する。
# OK! u-boot environment is changed.
U-Boot環境を変更しました、というコメント。
実際は/mnt/mtd/ChangeMyUbootEnvがなくてもここを通るので「変更しました」では間違っているが、コメントなので問題はない。
else
/mnt/mtd/hddrootfs.tar.gzかあるいは/mnt/mtd/uImage.buffaloがなければ以下を実行。
exit 1
終了ステータスに「1」(つまり異常)を設定しスクリプトを終了する。
fi
/mnt/mtd/hddrootfs.tar.gzと/mnt/mtd/uImage.buffaloの有無の条件分岐を終了する。

タグ:

シェルスクリプト 玄箱PRO固有 一覧
+ タグ編集
  • タグ:
  • シェルスクリプト
  • 玄箱PRO固有
  • 一覧
タグの更新に失敗しました
エラーが発生しました。ページを更新してください。
ページを更新
「SetupDevEnv.sh」をウィキ内検索
LINE
シェア
Tweet
玄箱PROとかLinuxとか
記事メニュー

ブログ内検索



メニュー

  • トップページ
  • 掲示板


更新履歴

取得中です。

未作成ページ

  • routedコマンド
  • loginコマンド
  • gettyコマンド
  • xinetd
  • inetd
  • ランレベル
  • 共有ライブラリ
  • bash
  • syslog
  • fileコマンド
  • mkdirコマンド
  • cpコマンド
  • nvramコマンド
  • 環境変数について
  • wgetコマンド
  • norフラッシュ
  • カーネルとは
  • killallコマンド
  • デバイス
  • パーティション
  • unix
  • vfs
  • システムコール
  • fdiskコマンド
  • sethostname.sh
  • httpd.sh
  • telnet.sh
  • inetd.sh
  • smb.sh
  • clientutil_servd.sh
  • bootcomplete.sh
  • fancontroller.sh
  • boss.sh
  • telnet
  • cpu
  • arm
  • mkswapコマンド
  • samba
  • swat
  • httpd
  • dns
  • hosts
  • resolv.conf
  • nsswitch.conf
  • シンボリックリンク
  • grepコマンド
  • sedコマンド
  • tarコマンド
  • echoコマンド
  • procコマンド

-
記事メニュー2

タグ一覧

標準Linux 概略 Linux全般 シェルスクリプト 一覧 玄箱PRO固有 ディレクトリ エラー /etc RESETボタン コマンド ディストリビューション tftp 外部接続 起動メッセージ U-boot フラッシュメモリ 開発用Linux オプション 終了メッセージ /dev /var /usr miconapl /bin /sbin /proc スペック プログラム

「玄箱PRO」関連ブログ

#technorati
人気記事ランキング
  1. miconaplコマンド
  2. mountコマンド
  3. プラグイン/コメント
  4. プラグイン
  5. (標準Linux)標準Linuxとは
もっと見る
最近更新されたページ
  • 4567日前

    玄箱PROとは
  • 6336日前

    BusyBox
  • 6461日前

    NANDフラッシュ
  • 6481日前

    玄箱PROのスペック
  • 6482日前

    (標準Linux)ルート直下のディレクトリツリー一覧
  • 6482日前

    玄箱PROのwiki
  • 6482日前

    (標準Linux)procディレクトリ
  • 6485日前

    (標準Linux)起動メッセージ
  • 6486日前

    (標準Linux)標準Linuxとは
  • 6487日前

    (標準Linux)sbinディレクトリ
もっと見る
「玄箱PRO固有」関連ページ
  • InitDisk1.sh
  • kuro_lib
  • (エラー)Invalid tar magic
  • RESETボタン
  • KeventHandller.sh
人気タグ「/dev」関連ページ
  • (標準Linux)devディレクトリ
もっと見る
人気記事ランキング
  1. miconaplコマンド
  2. mountコマンド
  3. プラグイン/コメント
  4. プラグイン
  5. (標準Linux)標準Linuxとは
もっと見る
最近更新されたページ
  • 4567日前

    玄箱PROとは
  • 6336日前

    BusyBox
  • 6461日前

    NANDフラッシュ
  • 6481日前

    玄箱PROのスペック
  • 6482日前

    (標準Linux)ルート直下のディレクトリツリー一覧
  • 6482日前

    玄箱PROのwiki
  • 6482日前

    (標準Linux)procディレクトリ
  • 6485日前

    (標準Linux)起動メッセージ
  • 6486日前

    (標準Linux)標準Linuxとは
  • 6487日前

    (標準Linux)sbinディレクトリ
もっと見る
ウィキ募集バナー
急上昇Wikiランキング

急上昇中のWikiランキングです。今注目を集めている話題をチェックしてみよう!

  1. フォートナイト攻略Wiki
  2. デジタルモンスター まとめ@ ウィキ
  3. 発車メロディーwiki
  4. 首都圏駅メロwiki
  5. 駅のスピーカーwiki
  6. マージマンション@wiki
  7. 作画@wiki
  8. Fate/Grand Order @wiki 【FGO】
  9. トリコ総合データベース
  10. 機動戦士ガンダム ギレンの野望 アクシズの脅威V 攻略wiki
もっと見る
人気Wikiランキング

atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!

  1. アニヲタWiki(仮)
  2. ゲームカタログ@Wiki ~名作からクソゲーまで~
  3. 初音ミク Wiki
  4. ストグラ まとめ @ウィキ
  5. MADTOWNGTAまとめwiki
  6. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  7. 検索してはいけない言葉 @ ウィキ
  8. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  9. Grand Theft Auto V(グランドセフトオート5)GTA5 & GTAオンライン 情報・攻略wiki
  10. 英傑大戦wiki
もっと見る
新規Wikiランキング

最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!

  1. MADTOWNGTAまとめwiki
  2. MadTown GTA (Beta) まとめウィキ
  3. 首都圏駅メロwiki
  4. まどドラ攻略wiki
  5. Last Z: Survival Shooter @ ウィキ
  6. フォートナイト攻略Wiki
  7. 駅のスピーカーwiki
  8. ちいぽけ攻略
  9. ソニックレーシング クロスワールド 攻略@ ウィキ
  10. 戦国ダイナスティ攻略Wiki@ウィキ
もっと見る
全体ページランキング

最近アクセスの多かったページランキングです。話題のページを見に行こう!

  1. 【移転】Miss AV 見れない Missav.wsが見れない?!MissAV新URLはどこ?閉鎖・終了してない?missav.ai元気玉って何? - ホワイトハッカー研究所
  2. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  3. XVI - MADTOWNGTAまとめwiki
  4. 参加者一覧 - MADTOWNGTAまとめwiki
  5. 参加者一覧 - ストグラ まとめ @ウィキ
  6. ブラック・マジシャン・ガール - アニヲタWiki(仮)
  7. コメント/雑談・質問 - マージマンション@wiki
  8. Pokémon LEGENDS Z-A - アニヲタWiki(仮)
  9. ハーディガン - 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  10. 鬼レンチャン(レベル順) - 鬼レンチャンWiki
もっと見る

  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.