トップ «前の日記(2007-06-17) 最新 次の日記(2007-06-19)» 編集

Pyon's Diary

[はてなブックマーク登録数] [Google に登録] [RSS フィード] Gourmet Hardware Programming Society Software
Amazon
成る可くJIS X 0213:2004對應MSフォント(5.0)、IPAフォント(003.02)で御覽下さい

2007-06-18 舊 平成拾玖年丁亥皐月肆日癸未 (月・曇) [長年日記]

[節] 代休。

けふは代休を取つて御休み。

Tags: None | del.icio.usに追加 | はてなブックマークに追加 | livedoor クリップに追加 | Yahoo! ブックマークに追加 | Google ブックマークに追加 | Permalink

[節] KURO-BOX/PRO (No.13) EMモードに戻した。(U-Bootの環境變數を變更してEMモードにしたりHDD起動モードにしたり)

KUROBOX/PRO 製品仕樣書

  • Appendix A: u-boot 環境變數設定例。

を見ると環境變數を變更する事で起動をEMモード / HDD起動モードの孰れかに切換へる事が出來るみたいだが、起動後に立上がるシェルはBourne Shellなのでsetenvコマンドは存在し無い。

何處で設定するのだろうと思つてゐた。

可成り惱んで以下の頁を讀んで起動途中に切換へる事を知つた。

U-Bootの環境變數を確認する。

早速確認してみた。

POWERスイッチを入れるとシリアル・コンソールに次々とメッセージが出力されて行く。

Orion1   CPU =  Low

=== KURO U-Boot. ===
 ** LOADER **
 ** KUROBOX BOARD: KURO_BOX  LE (CFG_ENV_ADDR=fffff000)


U-Boot 1.1.1 (Apr 10 2007 - 18:10:08) Marvell version: 1.12.1 - TINY

DRAM CS[0] base 0x00000000   size 128MB
DRAM Total size 128MB
[256kB@fffc0000] Flash: 256 kB
Addresses 20M - 0M are saved for the U-Boot usage.
Mem malloc Initialization (20M - 16M): Done
NAND: 256 MB

Soc: 88F5182 A2
CPU: ARM926 (Rev 0) running @ 500Mhz
Orion 1 streaming disabled
SysClock = 250Mhz , TClock = 166Mhz


USB 0: host mode
USB 1: host mode
PCI 0: PCI Express Root Complex Interface
PCI 1: Conventional PCI, speed = 33000000
Net:   egiga0 [PRIME]
Using 88E1118 phy
hit any key to switch tftp boot.
Hit any key to stop autoboot:  0
<<system_bootend>>
Hit any key to stop autoboot:  0 ← 此處で何かキーを叩く。
Marvell>>                        ← プロンプトが出力される。

取敢へずhelpと打つてみた。

色々コマンドが在る模樣。

Marvell>> help
?       - alias for 'help'
base    - print or set address offset
boot    - boot default, i.e., run 'bootcmd'
bootd   - boot default, i.e., run 'bootcmd'
boot end  .
bootm   - boot application image from memory
bootp   - boot image via network using BootP/TFTP protocol
bubt    - Burn an image on the Boot Flash.
cmp     - memory compare
cp      - memory copy
cpumap - Display CPU memory mapping settings.
crc32   - checksum calculation
date    - get/set/reset date & time
diskboot- boot from IDE device
echo    - echo args to console
erase   - erase FLASH memory
ext2load- load binary file from a Ext2 filesystem
ext2ls- list files in a directory (default /)
flinfo  - print FLASH memory information
go      - start application at address 'addr'
help    - print online help
ide     - IDE sub-system
loop    - infinite loop on address range
md      - memory display
micon -command(2byte hex) -data(witin 32byte hex)
mm      - memory modify (auto-incrementing)
mtest   - simple RAM test
mw      - memory write (fill)
nand    - NAND sub-system
nboot   - boot from NAND device
nm      - memory modify (constant address)
pci     - list and access PCI Configuraton Space
printenv- print environment variables
protect - enable or disable FLASH write protection
rarpboot- boot image via network using RARP/TFTP protocol
reset   - Perform RESET of the CPU
saveenv - save environment variables to persistent storage
setenv  - set environment variables
shutdown        - Poff .
tftpboot- boot image via network using TFTP protocol
version - print monitor version

setenvは此處で使用する模樣。

printenvも在るので打つてみた。

Marvell>> printenv
baudrate=115200
loads_echo=0
ipaddr=192.168.11.150
serverip=192.168.11.1
rootpath=/nfs/arm
cpuName=926
CASset=min
MALLOC_len=4
bootargs_end=:::DB88FXX81:eth0:none
ethact=egiga0
ethaddr=00:16:01:A4:C4:0C
buffalo_ver=BOOTVER=1.091
build_time=18:10:02
initrd=initrd.buffalo
kernel=uImage.buffalo
nand_uImage_offset=20000
default_initrd_addr=0x02000000
def_tftp=tftp $(default_kernel_addr) $(kernel); tftp $(default_initrd_addr) $(initrd); setenv bootargs $(bootargs_base) $(bootargs_root)  rw initrd=0x02000040,20M panic=5 $(buffalo_ver); bootm $(default_kernel_addr) $(default_initrd_addr)
default_kernel_addr=0x00100000
bootargs_base=console=ttyS0,115200
bootargs_root=root=/dev/sda2 rw panic=5
bootargs=console=ttyS0,115200 root=/dev/sda2 rw panic=5 BOOTVER=1.09
bootcmd=ide reset; ext2load ide 0:1 $(default_kernel_addr) /$(kernel); bootm $(default_kernel_addr)
nand_boot=no
stdin=serial
stdout=serial
stderr=serial
enaMonExt=no
enaFlashBuf=yes
enaCpuStream=no
ethprime=egiga0
bootdelay=3
disaMvPnp=no
overEthAddr=no
usb0Mode=host
usb1Mode=host

Environment size: 1046/4092 bytes

EMモード / HDD起動モードの切換へに關はると思はれる處を抜き出してみた。

default_kernel_addr=0x00100000
bootargs_base=console=ttyS0,115200
bootargs_root=root=/dev/sda2 rw panic=5
bootargs=console=ttyS0,115200 root=/dev/sda2 rw panic=5 BOOTVER=1.09
bootcmd=ide reset; ext2load ide 0:1 $(default_kernel_addr) /$(kernel); bootm $(default_kernel_addr)
nand_boot=no

LinkStation / 玄箱をハックしよう -- HDD BootモードのU-Boot環境に書かれてゐる通り、KUROBOX/PRO 製品仕樣書のP.17 Appendix A.3: uImage(/dev/sda1)、rootfs(/dev/sda2) の場合のブート設定と微妙に異なつた。

斯樣な事に成つて了ふとFlash起動環境に戻す際にKUROBOX/PRO 製品仕樣書LinkStation / 玄箱をハックしよう -- Flash Bootモードに戻すと何れを信じれば良いのか、自分の知識ではどちらが正しいのか判斷が附か無い。

EMモードに切換へる。

取敢へずKUROBOX/PRO 製品仕樣書の方の設定でEMモードに變更してみた。

Marvell>> setenv bootargs_root root=/dev/mtdblock2 rw
Marvell>> setenv bootargs $(bootargs_base) $(bootargs_root) $(buffalo_var)
Marvell>> setenv uImage_block 0
Marvell>> setenv uImage_offset 0x00020000
Marvell>> setenv bootcmd 'nboot $(default_kernel_addr) $(uImage_block) $(uImage_offset); bootm $(default_kernel_addr)'
Marvell>> boot

起動メッセージが出力されて途中で、

(前略)
Freeing init memory: 112K
--- rcStart (NANDroot) ---
===== Starting MountSystemFolders =====
mounting procfs ... [Success]
(以降略)

と成つてゐたのでEMモードに成つてゐる事が確認出來た。

但し再起動するとHDD起動モードに戻つてゐた。

今度は LinkStation / 玄箱をハックしよう -- Flash Boot モードに戻すの設定でやつてみた。

Marvell>> setenv bootargs_root root=/dev/mtdblock2 rw panic=5
Marvell>> setenv bootargs $(bootargs_base) $(bootargs_root) $(buffalo_ver)
Marvell>> setenv bootcmd 'nboot $(default_kernel_addr)  0 $(nand_uImage_offset) ;setenv bootargs $(bootargs_base) $(bootargs_root) $(buffalo_ver); bootm $(default_kernel_addr)'
Marvell>> setenv nand_boot yes
Marvell>> boot

此もEMモードで起動した。

但し此方も再起動するとHDDからの起動に戻つて了つた。

どちらの設定が正しい(どちらも起動するだから、どちらも正しい、と云ふ事か)のか判ら無い。

どうしたものかと思ひ「KURO Flash ブート」で見附けた

を讀んで以下の頁が在る事を知つた。

早速此乃頁に買いて在る設定と比べて見た結果、LinkStation / 玄箱をハックしよう -- Flash Bootモードに戻すの方が現實に即している模樣。

其れは其れとしてEMモードに戻す爲に毎度U-Boot環境變數を書換へるのも辛い。恆久的に戻すにはsaveenvを實行して保存すれば良いみたいなのでやつてみた。

Marvell>> setenv bootargs_root root=/dev/mtdblock2 rw panic=5
Marvell>> setenv bootargs $(bootargs_base) $(bootargs_root) $(buffalo_ver)
Marvell>> setenv bootcmd 'nboot $(default_kernel_addr) 0 $(nand_uImage_offset) ;setenv bootargs $(bootargs_base) $(bootargs_root) $(buffalo_ver); bootm $(default_kernel_addr)'
Marvell>> setenv nand_boot yes
Marvell>> saveenv
Saving Environment to Flash...
.
Un-Protected 1 sectors
Erasing Flash...
.
Erased 1 sectors
Writing to Flash... done
.
Protected 1 sectors
Marvell>> boot

此で起動して更に再起動して見るとEMモードで起動してゐる事が確認出來た。

追記: U-Boot環境變數を變更してHDD起動環境に變更する。(2007-11-04)

既にHDD起動環境を構築濟みである場合、EMモードからHDD起動モードに戻る爲には以下の樣にU-Boot環境變數を變更すれば良い。

Marvell>> setenv bootargs_root root=/dev/sda2 rw panic=5
Marvell>> setenv bootargs $(bootargs_base) $(bootargs_root) $(buffalo_ver)
Marvell>> setenv bootcmd 'ide reset; ext2load ide 0:1 $(default_kernel_addr) /$(kernel); bootm $(default_kernel_addr)'
Marvell>> setenv set nand_boot no
Marvell>> saveenv
Saving Environment to Flash...
.
Un-Protected 1 sectors
Erasing Flash...
.
Erased 1 sectors
Writing to Flash... done
.
Protected 1 sectors
Marvell>> boot

此乃設定はSetupDevEnv.shから採つた。

Tags: Hardware KURO-BOX/PRO | del.icio.usに追加 | はてなブックマークに追加 | livedoor クリップに追加 | Yahoo! ブックマークに追加 | Google ブックマークに追加 | Permalink

[節] KURO-BOX/PRO (No.14) 内藏HDDのパーティション・サイズを變更する。(簡單には無理だつたが PartitionDefinition を弄つて對處した。)

EMモードに無事戻つたので内藏HDDのパーティション・サイズの變更に挑戰してみた。初期化スイッチを使用してHDD起動環境に變更すると内藏HDDに自動的にパーティションが切られるが其乃大きさは以下の通り。

Disk /dev/sda: 82.3 GB, 82348277760 bytes
255 heads, 63 sectors/track, 10011 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/sda1               1           7       56196   83  Linux      ← 約 55 MB
/dev/sda2               8         373     2939895   83  Linux      ← 約 2.8 GB
/dev/sda3             374         390      136552+  82  Linux swap ← 約 133 MB
/dev/sda4             391       10011    77280682+  83  Linux      ← 殘り全て。

と成つてゐる。此を以下の樣に切り直した。

Disk /dev/sda: 82.3 GB, 82348277760 bytes
255 heads, 63 sectors/track, 10011 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/sda1               1          32      257008+  83  Linux      ← 約 256 MB
/dev/sda2              33        2523    20008957+  83  Linux      ← 約 20 GB
/dev/sda3            2524        2773     2008125   82  Linux swap ← 約 2 GB
/dev/sda4            2774       10011    58139235   83  Linux      ← 殘り全て。

此で一旦再起動してDiskDelete.shを實行し、以下の事を確認して初期化スイッチを五秒押しゝた。

  • パーティション・サイズの再確認。
  • /mnt/mtd (mtd device) に以下のファイルが在る事。
  • ChangeMeDevHDD (HDD パーティションを開發用に設定する爲の意思表示ファイル)
  • ChangeMyUbootEnv (U-Boot の環境變數を書換へる爲の意思表示ファイル)
  • hddrootfs.tar.gz (開發環境用ルートファイル)
  • uImage.buffalo (カーネル)

途中で亦止まつたので、再起動してfdiskで確認すると先程切つたパーティションが綺麗さつぱり消えてゐた。

どうやら豫めパーティションが切つて在つても/usr/local/bin/PartitionDefinitionに随つて切り直される模樣。

追記: 結局。(2007-11-08)

結局PartitionDefinitionを弄る事にした。

追記: PatirionDefinitionを變更した。(2007-11-14)

Debianを入れるにしろGentooを入れるにしろHDD一臺で行ふ爲にはデフォルトのファーティション構成では無理。

其處でPartitionDefinitionを以下の樣に變更した。

n
p
1

17
n
p
2

1323
n
e
3

8705
n
p
4


n

1356
t
5
82
n

3968
n

6580
n


w

上記の樣に變更してfdiskを實行した。

(kuro) # fidsk /dev/sda < /usr/local/bin/PartitionDefinition

The number of cylinders for this disk is set to 10011.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
(中略)
SCSI device sda: drive cache: write back
 sda: sda1 sda2 sda3 < sda5 sda6 sda7 sda8 > sda4
Syncing disks.

結果は以下の通り。

(以前略)
   Device Boot    Start       End    Blocks   Id  System
/dev/sda1               1          17      136521   83  Linux      <- カーネル置き場
/dev/sda2              18        1323    10490445   83  Linux      <- HDD 起動環境の /
/dev/sda3            1324        8705    59295915    5  Extended
/dev/sda4            8706       10011    10490445   83  Linux      <- Samba 用
/dev/sda5            1324        1356      265041   82  Linux swap <- スワップ領域
/dev/sda6            1357        3968    20980858+  83  Linux      <- Debian 亦は Gentoo を入れた時の / 用
/dev/sda7            3969        6580    20980858+  83  Linux      <- Debian 亦は Gentoo を入れた時の /var 用
/dev/sda8            6581        8705    17069031   83  Linux      <- Deabin 亦は Gentoo を入れた時の /home 用

更にInitDisk1.shを以下の樣に變更した。

@@ -42,13 +42,16 @@
 if [ -e ${CHANGE_TO_DEVHDD_FILE} ] ; then
        fdisk ${DISK1_DEV} < /usr/local/bin/PartitionDefinition
        Format_EXT3 ${DISK1_DEV}1
-       Format_XFS ${DISK1_DEV}2
-       Format_XFS ${DISK1_DEV}4
-       mkswap ${DISK_DEV}3
+       Format_EXT3 ${DISK1_DEV}2
+       Format_EXT3 ${DISK1_DEV}4
+       Format_EXT3 ${DISK1_DEV}6
+       Format_EXT3 ${DISK1_DEV}7
+       Format_EXT3 ${DISK1_DEV}8
+       mkswap ${DISK1_DEV}5
        /usr/local/sbin/SetupDevEnv.sh
 else
        fdisk ${DISK1_DEV} < /usr/local/bin/PartitionDefinition1
-       Format_XFS ${DISK1_DEV}1
+       Format_EXT3 ${DISK1_DEV}1
        MountShare ${DISK1_DEV} ${DISK1_MPT}
 fi

此乃樣に變更して置いて初期化スイッチを押した。

SCSI device sda: 160836480 512-byte hdwr sectors (82348 MB)
SCSI device sda: drive cache: write back
 sda: sda1 sda2 sda3 < sda5 sda6 sda7 sda8 > sda4
(中略)
EXT3 FS on sda1, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
kjournald starting.  Commit interval 5 seconds
EXT3 FS on sda2, internal journal
EXT3-fs: mounted filesystem with ordered data mode.

終はつた處で再起動した。

處がHDD起動環境の/etc/init.d/rcSの中で/dev/sda3をスワップ領域と決め打ちして處理してゐる箇所が有り以下の樣なエラーが起動中に出力された。

(以前略)
===== Starting MountSystemFolders =====
[Success]

mkswap: error: swap area needs to be at least 40kB
BusyBox v1.1.1 (2006.11.29-02:37+0000) multi-call binary

Usage: mkswap [-c] [-v0|-v1] device [block-count]

PreUnable to find swap-space signature
pare a disk partition to be used as a swap partition.

Options:
        -c              Check for read-ability
        -v0             Make version 0 swap [max 128 Megs]
        -v1             Make version 1 swap [big!] (default for kernels >
                        2.1.117)
        block-count     Number of block to use (default is entire partition)

swapon: /dev/sda3: Invalid argument
(以降略)

其處で/etc/init.d/rcSを以下の樣に變更した。

@@ -44,8 +44,8 @@
        DispSF ${FAIL}
        echo ""

-       mkswap /dev/sda3
-       swapon /dev/sda3
+       mkswap /dev/sda5
+       swapon /dev/sda5
 }

 RestoreTime(){

再度再起動すると今度はエラー無しで起動した。

Tags: Hardware KURO-BOX/PRO | del.icio.usに追加 | はてなブックマークに追加 | livedoor クリップに追加 | Yahoo! ブックマークに追加 | Google ブックマークに追加 | Permalink

[節] BRUSSELS (神樂坂)

「鮎のエスカベッシュ」週間なので、ち○し○と行つた。

鮎は旨かつた。

鮎は旨かつた。

鮎は旨かつた。

Tags: Gourmet | del.icio.usに追加 | はてなブックマークに追加 | livedoor クリップに追加 | Yahoo! ブックマークに追加 | Google ブックマークに追加 | Permalink

[節] 昨今の政府・與黨・外國勢力の跋扈を見るに附け。

自分を獨裁官にした方が良いのでは無いかと思ふけふ此乃頃。

Tags: None | del.icio.usに追加 | はてなブックマークに追加 | livedoor クリップに追加 | Yahoo! ブックマークに追加 | Google ブックマークに追加 | Permalink
[]

正當なXHTML1.1です! 正當なCSSです! BlogScouter Pyon's Land (MyMiniCity)
© pyon