(1)bootcmd は _boot_sel bootcmd=echo;echo Run Boot Selection Script;echo;run _boot_sel; (2)_boot_sel は run _phase_1 _boot_sel=run _phase_1 (3)DIPSW1_OFF で _phase_2_1 _phase_1=if get_dip 1;then echo *** SW 1 IS OFF ***;echo;run _phase_2_1;else echo *** SW 1 IS ON ***;echo; run _phase_2_2;fi (4)_phase_2_1 DIPSW2_OFF で _phase_3 _phase_2_1=if get_dip 2;then echo *** SW 2 IS OFF ***;echo;run _phase_3;else echo *** SW 2 IS ON, DOWNLOAD STANDARD OS ***;echo;run os_load_prog;fi (5)_phase_3 DIPSW3_ON で _cf_boot _phase_3=run _initsw_sel;if get_dip 3;then echo *** SW 3 IS OFF, Standard Boot ***;echo;run ${_std_script}; else echo *** SW 3 IS ON, Boot from CF ***;echo;run _cf_boot;fi (6)_cf_boot はこのように定義されている _cf_boot=usb start;echo;echo Loading ...;${cf_fs}load usb ${usbdev} ${_kernel_addr_r} ${_cf_bootfile}; if test x$filesize = x ; then ${cf_fs}load usb ${usbdev} ${_kernel_addr_r} ${_cf_bootfile_alt}; fi;usb stop; run _cfargs _addtty _show_bootargs;bootm ${_kernel_addr_r} (6)’_cf_boot を以下の一行に書き換える _cf_boot=echo;echo NKBMobile_20110919 Booting...;echo; bootm ${_kernel_addr} ------------------------------------------------------------------------- # 本当はU-Bootプロンプトで以下のように書き換えたかったのですが、 # 変数名_cf_bootのように'_'で始まると、どうもsetenvできませんでした。 => setenv _cf_boot "bootm f8000000" ## Error: illegal character '_' in variable name head "_cf_boot" => ------------------------------------------------------------------------- (7)タイムスタンプ2011/08/28 のflashcfgを使う #2011/03/09版では、-E,-Lオプションが使用できませんでした。 root@squeeze:Plathome# ls -l /usr/sbin/flashcfg.old /usr/sbin/flashcfg -r-xr-xr-x 1 root root 22664 Aug 28 05:15 /usr/sbin/flashcfg -r-xr-xr-x 1 root root 6047 Mar 9 2011 /usr/sbin/flashcfg.old (8)flashcfg -hの表示 root@squeeze:Plathome# /usr/sbin/flashcfg -h [7] (11-09-19 Mon 21:07:14 PM) usage: flashcfg Show this. flashcfg -b Show current boot setting flashcfg -c rootdev Change root file system [initrd|cf|sda-sdd[1-8]] initrd - Boot from FlashROM, / on Ramdisk sda-sdd[1-8] - Boot from FlashROM, / on CF cf - Boot from CF, / on CF flashcfg -f boot_image Load boot image to flash flashcfg -s list_file Save files to Parameter area flashcfg -S list_file Save files to User area flashcfg -x Restore files from Parameter area flashcfg -X Restore files from User area flashcfg -d Delete saved files from Parameter area flashcfg -D Delete saved files from User area flashcfg -E env_file Save params to U-Boot Environment area flashcfg -L env_file Load params from U-Boot Environment area flashcfg -h Show this. root@squeeze:Plathome# (9)現在のU-Bootパラメータを読みこむ root@squeeze:Plathome# /usr/sbin/flashcfg -L env_file root@squeeze:Plathome# [10] (11-09-19 Mon 21:09:54 PM) root@squeeze:Plathome# cp env_file env_file_20110919 (10) 前項(6)の値に57行目を置き替える root@squeeze:Plathome# vi env_file_20110919 [11] (11-09-19 Mon 21:11:15 PM) root@squeeze:Plathome# diff env_file env_file_20110919 57c57 < _cf_boot=usb start;echo;echo Loading ...;${cf_fs}load usb ${usbdev} ${_kernel_addr_r} ${_cf_bootfile}; if test x$filesize = x ; then ${cf_fs}load usb ${usbdev} ${_kernel_addr_r} ${_cf_bootfile_alt}; fi;usb stop; run _cfargs _addtty _show_bootargs;bootm ${_kernel_addr_r} --- > _cf_boot=echo;echo NKBMobile_20110919 Booting...;echo; bootm ${_kernel_addr} root@squeeze:Plathome# [ERROR:1] (11-09-19 Mon 21:13:02 PM) (11) 置き換えた_cf_bootの内容を書き込む root@squeeze:Plathome# /usr/sbin/flashcfg -E env_file_20110919 Change 1st U-Boot environment area Change 2nd U-Boot environment area root@squeeze:Plathome# [14] (11-09-19 Mon 21:14:06 PM) (12) 正しく書き込めていることをベリファイする root@squeeze:Plathome# mv env_file env_file_old root@squeeze:Plathome# /usr/sbin/flashcfg -L env_file root@squeeze:Plathome# diff env_file env_file_20110919 root@squeeze:Plathome# sed -n 57p env_file [16] (11-09-19 Mon 21:17:23 PM) _cf_boot=echo;echo NKBMobile_20110919 Booting...;echo; bootm ${_kernel_addr} root@squeeze:Plathome# [17] (11-09-19 Mon 21:27:47 PM) <<<<<<<<< DIPSW1 ON → OFF にして起動を確認します >>>>>>>>> 他DIPSWは、DIPSW2_OFF,DIPSW3_ON,DIPSW4_OFF になっています。 ● DIPSW1_ON のときPROMPTで停止 Run Boot Selection Script *** SW 1 IS ON *** *** SW 2 IS OFF, ENTER COMMAND PROMPT *** => printenv _cf_boot _cf_boot=echo;echo NKBMobile_20110919 Booting...;echo; bootm ${_kernel_addr} => ● DIPSW1_OFF のときPROMPTで停止せずBootする Run Boot Selection Script *** SW 1 IS OFF *** *** SW 2 IS OFF *** *** SW 3 IS ON, Boot from CF *** NKBMobile_20110919 Booting... ## Booting kernel from Legacy Image at f8000000 ... Image Name: 20110620_1941-sda1 Created: 2011-06-20 10:41:40 UTC Image Type: PowerPC Linux Multi-File Image (gzip compressed) Data Size: 2617598 Bytes = 2.5 MB Load Address: 00000000 Entry Point: 00000000 Contents: Image 0: 2192626 Bytes = 2.1 MB Image 1: 417113 Bytes = 407.3 kB Image 2: 7838 Bytes = 7.7 kB Verifying Checksum ... OK ## Loading init Ramdisk from multi component Legacy Image at f8000000 ... ## Flattened Device Tree from multi component Image at F8000000 Booting using the fdt at 0xf827d2a0 (以降省略)
2011年9月19日月曜日
obs600-12 DIPSW1_OFFの_cf_boot
いままで、DIPSW1_ONでPROMPTで停止し、手入力でbootmコマンドで起動させていました。もっといい方法があるような気もしますが、以下のようにしてbootm f8000000 を組み入れています。良く無い例かもしれません。が、メモとして残します。(1)〜(6)は事前調査です。
--
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿