tag:blogger.com,1999:blog-40515532153903259312024-02-20T03:50:08.573+09:00(鬱と)SEとコンピュータlostmanhttp://www.blogger.com/profile/13588402147515022385noreply@blogger.comBlogger960125tag:blogger.com,1999:blog-4051553215390325931.post-74935425716166296662013-07-19T02:01:00.001+09:002013-07-19T02:01:18.463+09:00ソース移動のお知らせこちらに移動することにしました<br/>
・<a href="https://github.com/lostman-github/shtter">lostman-github/shtter (master)</a><br/>
<br/>
うめさんに提供していただいた<a href="http://lostman-worlds-end.blogspot.jp/2010/05/openwrt_22.html?showComment=1373621194847#c28097559419757091">パッチ</a>をマージ済みのソースはこちら<br/>
・<a href="https://github.com/lostman-github/shtter/tree/v1.1-patched">lostman-github/shtter (v1.1-patched)</a>lostmanhttp://www.blogger.com/profile/13588402147515022385noreply@blogger.com2tag:blogger.com,1999:blog-4051553215390325931.post-48819195020536000422013-06-20T02:16:00.002+09:002013-06-20T02:16:15.811+09:00日本語man再び今までeuc-jpだったのがいつの間にかutf8化されたみたいですね<br/>
man見ようとしたら盛大に文字化けしたので修正しました<br/>
<br/>
/etc/man.conf
<pre>JNROFF /usr/bin/groff -Dutf8 -Tutf8 -mandocj
</pre>
<br/>
・<a href="http://lostman-worlds-end.blogspot.jp/2010/08/gentooman.html">1度目</a><br/>
・<a href="http://lostman-worlds-end.blogspot.jp/2011/11/groff.html">2度目</a>lostmanhttp://www.blogger.com/profile/13588402147515022385noreply@blogger.com0tag:blogger.com,1999:blog-4051553215390325931.post-16395216545093170992013-06-16T03:45:00.001+09:002013-06-16T04:01:15.974+09:00複数のRAID1をLVMで管理してみた1TBx2でRAID1を組んでいたのですが手狭になってきたので3TBx2を追加しました<br/>
追加したのはTOSHIBA <a href="http://www.semicon.toshiba.co.jp/product/storage/built-in/client_hdd35/DT01ACAxxx.html">DT01ACA300</a>です<br/>
HGSTしか買ったことがなかったのですが、中身はHGSTとの事だったのでこれにしてみました<br/>
ちなみにHGSTと同じく hdparm -H /dev/sda で温度の取得ができました<br/>
<br/>
現在の構成が<a href="http://www.hgst.com/portal/site/jp/products/deskstar/7K1000.D/">Deskstar 7K1000.D</a>x2(RAID1)とDeskstar 7K1000(テンポラリ)<br/>
のような形でRAID1のストレージと単独のHDDを別々にマウントして使用していましたが<br/>
変更後は<a href="http://www.semicon.toshiba.co.jp/product/storage/built-in/client_hdd35/DT01ACAxxx.html">DT01ACA300</a>x2(RAID1)と<a href="http://www.hgst.com/portal/site/jp/products/deskstar/7K1000.D/">Deskstar 7K1000.D</a>x2(RAID1)を<br/>
LVMでひとつのストレージとしてまとめるようにしたいと思っています<br/>
<br/>
MicroserverはHDDが4台入るのですが3台は使用中なのでとりあえず1台追加して縮退状態でアレイを構築<br/>
データ移行後にテンポラリで使用しているHDDを抜いて、差し替えることにします<br/>
<br/>
縮退状態からのRAID作成<br/>
・<a href="http://toyao.net/xoops/modules/xpwiki/?%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E8%A8%AD%E5%AE%9A%E3%83%A1%E3%83%A2%2Fmdadm%E3%81%AERAID%E5%86%8D%E6%A7%8B%E7%AF%89">サーバー設定メモ/mdadmのRAID再構築 - トヤヲ.ネット</a><br/>
RAID、LVM作成時の注意点<br/>
・<a href="http://green-rabbit.sakura.ne.jp/blog/2010/11/27/2191/">LVM on RAID するときの注意点 | Green Rabbit</a><br/>
PEのサイズ<br/>
・<a href="http://www.kurobuti.com/blog/?p=3823">黒ぶちメガネのblog » Blog Archiv » partedでパーティッション作成してLVMを作ってみた</a><br/>
LVMの拡張<br/>
・<a href="http://pantora.net/pages/lvm/3/">Pantora Networks » 3章 LVM操作 応用編</a><br/>
<br/>
<a name='more'></a>
まず追加したディスク全体を使用して縮退状態でRAID1を作成<br/>
<pre># mdadm --create /dev/md0 --metadata 1.0 --level=raid1 --raid-devices=2 /dev/sda missing
mdadm: array /dev/md0 started.
</pre>
<br/>
/dev/md0で作成されていることを確認 (md1は既存のRAID)<br/>
<pre># cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sda[0]
2930266448 blocks super 1.0 [2/1] [U_]
md1 : active raid1 sdd1[0] sdc1[1]
976760400 blocks super 1.2 [2/2] [UU]
unused devices: <none>
</pre>
<br/>
/etc/mdadm.conf に次のコマンドの結果を書き込んでおくと起動時に指定した名前でデバイスが作成される
<pre># mdadm --detail --scan | grep /dev/md0
ARRAY /dev/md0 metadata=1.0 name=rabbithole:0 UUID=afb3398d:2dcfc178:37c00744:c4f0c767
</pre>
<br/>
LVM関係のコマンドをインストール<br/>
<pre>$ sudo emerge -av lvm2
</pre>
<br/>
作成したRAIDアレイにPVを作成します<br/>
<pre># pvcreate --metadatatype 2 --dataalignment 64K /dev/md0
Physical volume "/dev/md0" successfully created
# pvdisplay
"/dev/md0" is a new physical volume of "2.73 TiB"
--- NEW Physical volume ---
PV Name /dev/md0
VG Name
PV Size 2.73 TiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 9CtZqS-GQqN-wKy1-da2G-sfdg-nPBy-hIuMKw
</pre>
<br/>
PEを指定してVGを作成します<br/>
PEは8TBまで拡張できるように128MBにしました<br/>
<pre># vgcreate -s 128m vg0 /dev/md0
Volume group "vg0" successfully created
# vgdisplay -v
Finding all volume groups
Finding volume group "vg0"
--- Volume group ---
VG Name vg0
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 2.73 TiB
PE Size 128.00 MiB
Total PE 22356
Alloc PE / Size 0 / 0
Free PE / Size 22356 / 2.73 TiB
VG UUID u6MTky-7Fw1-hulq-9bvF-2xg3-bt3f-icPNXL
--- Physical volumes ---
PV Name /dev/md0
PV UUID 9CtZqS-GQqN-wKy1-da2G-sfdg-nPBy-hIuMKw
PV Status allocatable
Total PE / Free PE 22356 / 22356
</pre>
<br/>
VGからLVを作成<br/>
とりあえず2TBにしてみた<br/>
<pre># lvcreate -L 2T -n lv0 vg0
Logical volume "lv0" created
# vgdisplay -v
Finding all volume groups
Finding volume group "vg0"
--- Volume group ---
VG Name vg0
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 2.73 TiB
PE Size 128.00 MiB
Total PE 22356
Alloc PE / Size 16384 / 2.00 TiB
Free PE / Size 5972 / 746.50 GiB
VG UUID u6MTky-7Fw1-hulq-9bvF-2xg3-bt3f-icPNXL
--- Logical volume ---
LV Path /dev/vg0/lv0
LV Name lv0
VG Name vg0
LV UUID l9qC5J-DWOc-NL7T-PnTa-d7oq-b5al-vch9Ys
LV Write Access read/write
LV Creation host, time rabbithole, 2013-06-05 04:50:39 +0900
LV Status available
# open 0
LV Size 2.00 TiB
Current LE 16384
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
--- Physical volumes ---
PV Name /dev/md0
PV UUID 9CtZqS-GQqN-wKy1-da2G-sfdg-nPBy-hIuMKw
PV Status allocatable
Total PE / Free PE 22356 / 5972
</pre>
<br/>
フォーマットしてマウント<br/>
<pre># mkfs.ext4 /dev/vg0/lv0
mke2fs 1.42.7 (21-Jan-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
134217728 inodes, 536870912 blocks
26843545 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
16384 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848, 512000000
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
# mkdir /mnt/lvm
# mount -t ext4 -o noatime /dev/vg0/lv0 /mnt/lvm/
# df -h /mnt/lvm/
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg0-lv0 2.0T 199M 1.9T 1% /mnt/lvm
</pre>
<br/>
既存のアレイと取り外したいHDDからデータを移行<br/>
<pre># cd /mnt/raid
# tar cpf - ./ | (cd /mnt/lvm/ && tar xpfv -)
# cd /mnt/hdd
# tar cpf - ./ | (cd /mnt/lvm/ && tar xpfv -)
</pre>
<br/>
一度電源を落として、新しいHDDに差し替えてから起動<br/>
縮退状態のアレイに新規HDDを追加、リビルド状態を確認<br/>
<pre># mdadm /dev/md0 -a /dev/sdb
# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdc1[1] sdd1[0]
976760400 blocks super 1.2 [2/2] [UU]
md0 : active raid1 sdb[2] sda[1]
2930266448 blocks super 1.0 [2/1] [_U]
[==>..................] recovery = 10.7% (315106240/2930266448) finish=239.8min speed=181700K/sec
unused devices: <none>
</pre>
<br/>
ここまででRAID1上にLVMの領域の作成が終了しました<br/>
3TBから2TBだけ切り出して使用しているので試しに500GBほど追加するには以下のようにします<br/>
<pre># lvextend -L +500G /dev/vg0/lv0
Extending logical volume lv0 to 2.49 TiB
Logical volume lv0 successfully resized
# vgdisplay -v
Finding all volume groups
Finding volume group "vg0"
--- Volume group ---
VG Name vg0
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 1
Act PV 1
VG Size 2.73 TiB
PE Size 128.00 MiB
Total PE 22356
Alloc PE / Size 20384 / 2.49 TiB
Free PE / Size 1972 / 246.50 GiB
VG UUID W8MkGo-vsDe-ffNR-BGSu-RLQJ-mRwP-8k1iVl
--- Logical volume ---
LV Path /dev/vg0/lv0
LV Name lv0
VG Name vg0
LV UUID jN5sM0-HK7X-xpvU-PqiQ-cUD7-SVn1-JEHYwR
LV Write Access read/write
LV Creation host, time rabbithole, 2013-06-07 00:53:53 +0900
LV Status available
# open 1
LV Size 2.49 TiB
Current LE 20384
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
--- Physical volumes ---
PV Name /dev/md0
PV UUID 97qU1x-3lYU-03Dw-9cOq-FdHq-u4Y7-Ew06sU
PV Status allocatable
Total PE / Free PE 22356 / 1972
</pre>
<br/>
これでLVM的には大きくなりました<br/>
ファイルシステムをLVMの領域に合わせて拡張します<br/>
<pre># df -h /mnt/lvm/
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg0-lv0 2.0T 1.1T 825G 57% /mnt/lvm
# resize2fs /dev/vg0/lv0
resize2fs 1.42.7 (21-Jan-2013)
Filesystem at /dev/vg0/lv0 is mounted on /mnt/lvm; on-line resizing required
old_desc_blocks = 128, new_desc_blocks = 160
The filesystem on /dev/vg0/lv0 is now 667942912 blocks long.
# df -h /mnt/lvm/
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg0-lv0 2.5T 1.1T 1.3T 46% /mnt/lvm
</pre>
<br/>
これで拡張の仕方もOKです<br/>
次は既存のアレイを一度解体、再構築してLVMのメンバとして追加してみます<br/>
パーティション切って使っていたのでsdd1とかになっています<br/>
(パーティションを切る必要がないので切らずに使うようにします)<br/>
<pre># mdadm --detail /dev/md1
/dev/md1:
Version : 1.2
Creation Time : Sat Jul 21 19:39:57 2012
Raid Level : raid1
Array Size : 976760400 (931.51 GiB 1000.20 GB)
Used Dev Size : 976760400 (931.51 GiB 1000.20 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Fri Jun 7 20:19:17 2013
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Name : rabbithole:1 (local to host rabbithole)
UUID : 397bdef9:d9e30277:48fb1e60:2ee74aa9
Events : 19
Number Major Minor RaidDevice State
0 8 49 0 active sync /dev/sdd1
1 8 33 1 active sync /dev/sdc1
</pre>
<br/>
まずアレイを停止して、スーパーブロックも削除<br/>
<pre># mdadm -S /dev/md1
mdadm: stopped /dev/md1
# mdadm --zero-superblock /dev/sdd1
# mdadm --zero-superblock /dev/sdc1
# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sda[0] sdb[2]
2930266448 blocks super 1.0 [2/2] [UU]
unused devices: <none>
</pre>
<br/>
fdiskでパーティションを削除<br/>
<pre># fdisk /dev/sdd
# fdisk /dev/sdc
</pre>
<br/>
同じようにRAID1でアレイを作成<br/>
<pre># mdadm --create /dev/md1 --metadata 1.0 --level=raid1 --raid-devices=2 /dev/sdc /dev/sdd
mdadm: array /dev/md1 started.
# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdd[1] sdc[0]
976762448 blocks super 1.0 [2/2] [UU]
[>....................] resync = 0.0% (403968/976762448) finish=161.1min speed=100992K/sec
md0 : active raid1 sda[0] sdb[2]
2930266448 blocks super 1.0 [2/2] [UU]
unused devices: <none>
</pre>
<br/>
/etc/mdadm.conf の/dev/md1を新しい値に変更しておく<br/>
<pre># mdadm --detail --scan | grep /dev/md1
ARRAY /dev/md1 metadata=1.0 name=rabbithole:1 UUID=3735b68e:93098abd:cb8f64f5:0fd212d4
</pre>
<br/>
作成したアレイにPVを作成<br/>
<pre># pvcreate --metadatatype 2 --dataalignment 64K /dev/md1
Physical volume "/dev/md1" successfully created
# pvdisplay -v
Scanning for physical volume names
--- Physical volume ---
PV Name /dev/md0
VG Name vg0
PV Size 2.73 TiB / not usable 20.33 MiB
Allocatable yes
PE Size 128.00 MiB
Total PE 22356
Free PE 1972
Allocated PE 20384
PV UUID 97qU1x-3lYU-03Dw-9cOq-FdHq-u4Y7-Ew06sU
"/dev/md1" is a new physical volume of "931.51 GiB"
--- NEW Physical volume ---
PV Name /dev/md1
VG Name
PV Size 931.51 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID wrcffi-LQoQ-ctKc-ewxQ-X0Qg-JX3Y-AsqoRX
</pre>
<br/>
作成したPVをVGに追加<br/>
<pre># vgextend vg0 /dev/md1
Volume group "vg0" successfully extended
# vgdisplay -v
Finding all volume groups
Finding volume group "vg0"
--- Volume group ---
VG Name vg0
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 2
Act PV 2
VG Size 3.64 TiB
PE Size 128.00 MiB
Total PE 29808
Alloc PE / Size 20384 / 2.49 TiB
Free PE / Size 9424 / 1.15 TiB
VG UUID W8MkGo-vsDe-ffNR-BGSu-RLQJ-mRwP-8k1iVl
--- Logical volume ---
LV Path /dev/vg0/lv0
LV Name lv0
VG Name vg0
LV UUID jN5sM0-HK7X-xpvU-PqiQ-cUD7-SVn1-JEHYwR
LV Write Access read/write
LV Creation host, time rabbithole, 2013-06-07 00:53:53 +0900
LV Status available
# open 1
LV Size 2.49 TiB
Current LE 20384
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
--- Physical volumes ---
PV Name /dev/md0
PV UUID 97qU1x-3lYU-03Dw-9cOq-FdHq-u4Y7-Ew06sU
PV Status allocatable
Total PE / Free PE 22356 / 1972
PV Name /dev/md1
PV UUID wrcffi-LQoQ-ctKc-ewxQ-X0Qg-JX3Y-AsqoRX
PV Status allocatable
Total PE / Free PE 7452 / 7452
</pre>
<br/>
以上で作業は終了<br/>
これで必要に応じて動的に領域を拡張できるようになりましたlostmanhttp://www.blogger.com/profile/13588402147515022385noreply@blogger.com0tag:blogger.com,1999:blog-4051553215390325931.post-81518968927991419332012-12-31T14:40:00.001+09:002012-12-31T14:41:20.318+09:00Xperia arcを文鎮から復活させる忘れててOTAをしてしまいましたとさ <br />
<br />
・<a href="http://forum.xda-developers.com/showthread.php?t=1126358">[Tutorial] Fix FOTA bricked (unlocked bootloader) Phones - xda-developers</a><br />
<br />
ここに復旧方法と必要なファイルのリンクが書いてあるんだけどうまくダウンロードできない<br />
ファイルはFlashTool_0.2.9.1_FOTAUnbrick.exeで中身の<br />
Xperia 2011 Range_FreeXperia_ALL.ftfが必要みたいなのでファイル名で<a href="https://www.google.co.jp/search?q=Xperia+2011+Range_FreeXperia_ALL.ftf">検索する</a><br />
このファイルをFlashToolで焼く、その後に必要ならば任意のftfを焼くlostmanhttp://www.blogger.com/profile/13588402147515022385noreply@blogger.com0tag:blogger.com,1999:blog-4051553215390325931.post-33881424778929588972012-12-31T12:19:00.001+09:002013-01-04T16:34:51.719+09:00CyanogenMod10をビルドしてみた・<a href="http://wiki.cyanogenmod.org/index.php?title=Build_for_anzu">Build for anzu - CyanogenMod</a><br />
・<a href="http://forum.xda-developers.com/showthread.php?t=1807505">Guide on how I build my own CM10 test builts - xda-developers</a><br />
・<a href="http://nekomimip.blogspot.jp/2012/10/cyanogenmod.html">nekomimip@nicの雑記帳: cyanogenmodのビルド(CM10)</a><br />
<br />
年末で少し時間ができたので試してみた<br />
本当は色々カスタマイズしたかったんだけど<br />
時間切れなのでとりあえずはビルドまで<br />
(公式のWikiに修正が入ったので直しました 2013/01/04)<br />
<br />
<a name='more'></a>gitが必要なのでインストール<br />
USEのperlとpythonは不要だった <br />
<pre># emerge -v git
</pre>
<br />
python2系でないとrepoが動かないのでとりあえず~/binにリンクを張る<br />
(結構ハマった、これ他にいい回避方法ないのかな) <br />
<pre>$ ln -s /usr/bin/python2 ~/bin/python
</pre>
<br />
repoコマンドを取得<br />
<pre>$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod +x ~/bin/repo
</pre>
<br />
ダミーのユーザ名を設定 <br />
<pre>$ git config --global user.name android
$ git config --global user.email android
</pre>
<br />
リポジトリを初期化&チェックアウト<br />
(接続できない的なエラーが出てもしつこくリトライする)<br />
<pre>$ mkdir $BUILDROOT (適当なディレクトリを作成)
$ cd $BUILDROOT
$ repo init -u git://github.com/CyanogenMod/android.git -b jellybean
$ repo sync (-j10とかをつけると並列で取得してくれる)
</pre>
<br />
ネットからプロプラのファイルを取得する<strike>んだけど404で失敗するのでスクリプトを修正する</strike><br />
<strike>get-prebuiltsのURLを以下に書き換えて実行 (<a href="https://github.com/jackpal/Android-Terminal-Emulator/">jackpal/Android-Terminal-Emulator · GitHub</a>)</strike><br />
<strike><a href="http://jackpal.github.com/Android-Terminal-Emulator/downloads/Term.apk">http://jackpal.github.com/Android-Terminal-Emulator/downloads/Term.apk</a></strike><br />
(直ってた 2013/01/04)<br />
<pre>$ cd $BUILDROOT/vendor/cm
$ ./get-prebuilts
</pre>
<br />
Xperia arc用にプロジェクトの準備をする<br />
一覧が表示されるのでcm_anzu-userdebugの番号を入力する<br />
<pre>$ cd $BUILDROOT
$ . ./build/envsetup.sh
$ lunch</pre>
<br />
プロプラのファイルを実機からコピーするのでADBで接続できる状態にしておく<br />
<pre>$ cd $BUILDROOT/device/semc/anzu
$ ./extract-files.sh
</pre>
<br />
一応最新チェック<br />
<pre>$ cd $BUILDROOT
$ repo sync
</pre>
<br />
schedtoolが必要なのでインストール <br />
<pre># emerge -v schedtool
</pre>
<br />
pngcrush、optipngまたはpngoutが必要<br />
Gentooにはpngcrushとoptipngがあったのでpngcrushをインストール <br />
<pre># emerge -v pngcrush
</pre>
<br />
ビルド<br />
<pre>$ cd $BUILDROOT
$ croot
$ brunch anzu</pre>
<br />
成功するとこんな感じのメッセージがでます<br />
あとは普通に焼くだけ <br />
<pre>Package complete: /home/alice/work/cyanogenmod/anzu/out/target/product/anzu/cm-10-20121231-UNOFFICIAL-anzu.zip
d9ae4549603083002b4e98be4ecea8e3 cm-10-20121231-UNOFFICIAL-anzu.zip
</pre>
<br />lostmanhttp://www.blogger.com/profile/13588402147515022385noreply@blogger.com0tag:blogger.com,1999:blog-4051553215390325931.post-30554681861919184992012-12-30T23:34:00.000+09:002012-12-31T13:13:02.372+09:00CyanogenMod10 for Xperia arc・<a href="http://download.cyanogenmod.org/?device=anzu">CyanogenMod Downloads</a><br />
・<a href="http://wiki.cyanogenmod.org/wiki/Latest_Version#Google_Apps">Latest Version - CyanogenMod Wiki</a><br />
・<a href="http://wiki.cyanogenmod.org/wiki/Sony_Ericsson_Xperia_Arc:_Full_Update_Guide">Sony Ericsson Xperia Arc: Full Update Guide - CyanogenMod Wiki</a><br />
<br />
まだNightlyですが出ていたので入れてみました<br />
3つ目のリンクにある方法で特になんの問題もなく入るし<br />
CMの弱点であるバッテリー持ちもかなり改善されています、もう無敵ですね<br />
しかし個人的に一つ欠点があってSDカードをUSBマスストレージでマウントできないんですよね<br />
MTPかPTPしか選べなくなっています<br />
<br />
ちなみにGentooではmtpfsというパッケージを入れればマウントできるみたいなので試してみたんですが<br />
これだとファイルの作成日時を設定できませんでした <br />
(ギャラリーがファイルの作成日時順で並べ替えるのでこれ結構大事)<br />
ArchのWikiですがマウント方法はここ (<a href="https://wiki.archlinux.org/index.php/MTP#mtpfs">MTP - ArchWiki</a>)<br />
<br />
ちなみにNightlyの更新内容は以下で見れます<br />
・<a href="http://10.cmxlog.com/?device=anzu">CM10 Nightlies Changelog - Anzu</a>lostmanhttp://www.blogger.com/profile/13588402147515022385noreply@blogger.com0tag:blogger.com,1999:blog-4051553215390325931.post-59102685153401442152012-11-11T18:25:00.000+09:002012-11-11T18:25:46.735+09:00MicroServerをアクセスポイント化実はしばらく前からルータ、 NFS/NTP サーバとして運用している MicroServer ですが<br />
ずるずるとやっていなかった AP 化をしました<br />
今までの構成はオンボードの NC107i(eth0) が光回線のモデムに PPPoE で繋がっていて<br />
82574L(eth1) がハブに接続していて DHCP でアドレスを配っていました<br />
<br />
ここに <a href="http://buffalo.jp/product/wireless-lan/client/wli-uc-gnm/">WLI-UC-GNM</a> を追加してアクセスポイントとして動作させました<br />
この製品は USB 接続で a/b/g/n 対応、さらにアクセスポイントモードもサポートしています<br />
RT3070V というチップを使用していて Linux では rt2800usb というドライバでサポートされています<br />
・<a href="http://linuxwireless.org/en/users/Drivers">Drivers - Linux Wireless</a> <br />
・<a href="http://linuxwireless.org/en/users/Drivers/rt2800usb/devices">devices - Linux Wireless</a><br />
<br />
<a name='more'></a>基本的にこのあたりを参考に進めました <br />
・<a href="http://en.gentoo-wiki.com/wiki/Ralink_RT2870">Ralink RT2870 - Gentoo Linux Wiki</a><br />
・<a href="http://en.gentoo-wiki.com/wiki/Wireless/Access_point">Wireless/Access point - Gentoo Linux Wiki</a><br />
<br />
まずカーネルの設定を変更します<br />
ドライバを追加するのと、 LAN 向けのインターフェースをひとつにまとめたいのでブリッジを有効に
<br />
<pre>Device Drivers -> Network device support -> Wireless LAN -> Ralink driver support -> Ralink rt27xx/rt28xx/rt30xx (USB) support
Networking support -> Networking options -> 802.1d Ethernet Bridging
</pre>
<br />
ファームウェアが必要なのでインストールします<br />
sys-kernel/linux-firmware に含まれているらしいです<br />
/lib/firmware/rt3070.bin あたりにインストールされます<br />
<pre># emerge -v sys-kernel/linux-firmware
</pre>
<br />
次に iwconfig が必要なのでこれもインストール<br />
<pre># emerge -v net-wireless/wireless-tools
</pre>
<br />
この時点で iwconfig を実行して wlan0 が見えれば認識されているはずです
<br />
<pre># iwconfig
ppp0 no wireless extensions.
eth0 no wireless extensions.
eth1 no wireless extensions.
lo no wireless extensions.
wlan0 IEEE 802.11bgn Mode:Managed Frequency:2.412 GHz Tx-Power=20 dBm
Retry long limit:7 RTS thr:off Fragment thr:off
Power Management:on
</pre>
<br />
その他必要なものもインストールします
<br />
<pre># emerge -v net-misc/bridge-utils net-wireless/hostapd net-wireless/iw
</pre>
<br />
ブリッジの設定をして eth1 と wlan0 をひとまとめに扱えるようにします<br />
/etc/conf.d/net の設定内容は以下のような感じに (必要箇所のみ抜粋)<br />
preup の部分はこれを追加しないとブリッジの作成時に失敗するため<br />
ブリッジへの追加前にこのコマンドが実行されるようにしました<br />
・<a href="http://forum.doozan.com/read.php?2,6300,7998,quote=1">How To: Create an 802.11n AP (Access Point) w/ Debian on a Dockstar/Pogoplug/kirkwood device</a><br />
・<a href="http://www.gentoo.org/doc/ja/handbook/handbook-x86.xml?part=4&chap=5">Gentoo Linux ドキュメント -- 機能の追加</a><br />
・<a href="http://en.gentoo-wiki.com/wiki/Bridging_Network_Interfaces">Bridging Network Interfaces - Gentoo Linux Wiki</a>
<br />
<pre class="brush: bash">preup() {
if [ ${IFACE} = "br0" ]; then
iw dev wlan0 set 4addr on
fi
}
config_eth1="null"
modules_wlan0="!iwconfig !wpa_supplicant"
config_wlan0="null"
bridge_br0="eth1 wlan0"
config_br0="10.0.0.254 broadcast 10.0.0.255 netmask 255.255.255.0"
</pre>
<br />
起動用のシンボリックリンクを作成して起動してみる<br />
正しく起動できれば br0 にアドレスが割り当てられているのが確認できる
<br />
<pre># cd /etc/init.d/
# ln -s net.lo net.eth1
# ln -s net.lo net.wlan0
# ln -s net.lo net.br0
# /etc/init.d/net.br0 start
# ifconfig br0
br0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx
inet addr:10.0.0.254 Bcast:10.0.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:56649 errors:0 dropped:6 overruns:0 frame:0
TX packets:59924 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:7172489 (6.8 MiB) TX bytes:44825137 (42.7 MiB)
# /etc/init.d/net.br0 stop
</pre>
<br />
最後に hostapd の設定をする<br />
/etc/hostapd/hostapd.conf の変更した部分を列挙しておく<br />
<pre>interface=wlan0
bridge=br0
ssid=access_point_name
ieee80211n=1
wpa=3
wpa_passphrase=passphrase
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
</pre>
<br />
あと忘れてはいけないのが今まで eth1 と書いていた部分を br0 に変更すること<br />
自分の場合は /etc/dnsmasq.conf と iptables のルールを修正した<br />
<br />
以下のようにするとネットワークとアクセスポイントが起動して他の端末から接続できるようになる
<br />
<pre># /etc/init.d/net.br0 start
# /etc/init.d/hostapd start
</pre>
lostmanhttp://www.blogger.com/profile/13588402147515022385noreply@blogger.com1tag:blogger.com,1999:blog-4051553215390325931.post-52480042171580866192012-11-04T17:50:00.000+09:002012-11-11T18:09:50.020+09:00DreamPlugのinitramfsを作ってみた内蔵のmicroSDへの書き込みを減らしたくてLiveCDの様に読み出しはSDから<br />
書き込みはメモリへ書くようにしてみようかと思ってやってみた<br />
一部のパーティションだけなら簡単なんだろうけどrootまるごとやろうと思うと<br />
/をマウントする前に下準備をしないといけないですね<br />
という訳でinitramfsを作ってみました<br />
<br />
<a name='more'></a>書き込みをメモリに逃がす方法は以下のページにあるようにいろいろありますが<br />
今回は特にパッチも必要なさそうなdevice-mapperのsnapshotを使用する方法で試しました<br />
・<a href="http://www.oreilly.co.jp/community/blog/2011/02/filesystems-livecd-using-part1.html">番外編: LiveCDのファイルシステム(1) - O'Reilly Japan Community Blog</a><br />
<br />
目標としては root ファイルシステムがある /dev/sda2 は読み込み<br />
書き込みは tmpfs で確保した領域に書き込みます<br />
したがって再起動時に tmpfs が開放されるので再起動後は元の状態に戻ります<br />
また必要に応じて通常通り /dev/sda2 を書き込みでマウントする起動方法も選べるようにします<br />
<br />
device-mapper で扱うにはブロックデバイスである必要があるみたいなので<br />
最終的には以下のような構成になります <br />
<pre>/dev/sda2 (ro) -------+
|
tmpfs -> cow.img (rw) ---> /dev/mapper/rootfs (rw) -> / としてマウント
</pre>
<br />
まずカーネルで以下の項目を有効にする必要があります<br />
当然全て組み込みにしておいたほうがいいと思います<br />
<pre>General setup -> Initial RAM filesystem and RAM disk (initramfs/initrd) support
Device Drivers -> Generic Driver Options -> Maintain a devtmpfs filesystem to mount at /dev
Device Drivers -> Multiple devices driver support (RAID and LVM) -> Device mapper support
Device Drivers -> Multiple devices driver support (RAID and LVM) -> Device mapper support -> Snapshot target
</pre>
<br />
次に必要なパッケージをインストールします<br />
<pre># emerge -v app-arch/cpio dev-embedded/u-boot-tools sys-fs/lvm2
# USE=static emerge -v sys-apps/busybox
</pre>
<br />
これで必要なものは一式揃ったので initramfs のシステムの作成とスクリプトを書きます<br />
以下のページが非常に参考になります <br />
・<a href="http://en.gentoo-wiki.com/wiki/Initramfs">Initramfs - Gentoo Linux Wiki</a><br />
・<a href="http://wiki.gentoo.org/wiki/Early_Userspace_Mounting">Early Userspace Mounting - Gentoo Wiki</a><br />
<br />
ディレクトリ構造を /usr/src/initramfs 以下に作成していきます
<br />
<pre># mkdir /usr/src/initramfs
# cd /usr/src/initramfs
</pre>
<br />
まず必要なディレクトリの作成<br />
/mnt/root に最終的な root ファイルシステムをマウント<br />
/mnt/cowfs は tmpfs をマウントしてその中にディスクイメージを作成します
<br />
<pre># mkdir -p bin dev etc mnt/cowfs mnt/root proc sbin sys
</pre>
<br />
次に必要なコマンドをコピー<br />
busybox と dmsetup のスタティックビルドされているものが必要です (ldd で確認しています)<br />
<pre># which busybox
/bin/busybox
# ldd /bin/busybox
not a dynamic executable
# cp /bin/busybox bin/
# which dmsetup.static
/sbin/dmsetup.static
# ldd /sbin/dmsetup.static
not a dynamic executable
# cp /sbin/dmsetup.static sbin/
</pre>
<br />
コマンドはコピーしたのであとは init を書きます<br />
今回は以下のようにしました
<br />
<pre class="brush: bash">#!/bin/busybox sh
rescue_shell() {
echo fallback to busybox shell
exec /bin/sh
}
mount -t proc none /proc || rescue_shell
mount -t sysfs none /sys || rescue_shell
mount -t devtmpfs none /dev || rescue_shell
/bin/busybox --install -s /bin
for c in $(cat /proc/cmdline); do
case $c in
root=*)
ROOT=$(echo $c | cut -d= -f2-)
;;
rootdelay=*)
DELAY=$(echo $c | cut -d= -f2-)
;;
snapshot)
SNAPSHOT=y
;;
esac
done
if [ -z "$ROOT" ]; then
echo root is empty
rescue_shell
fi
if [ -n "$DELAY" ]; then
echo waiting for rootfs $DELAY sec
sleep $DELAY
fi
if [ -z "$SNAPSHOT" ]; then
mount -o ro $ROOT /mnt/root || rescue_shell
else
mount -t tmpfs none /mnt/cowfs || rescue_shell
dd if=/dev/zero of=/mnt/cowfs/cow.img bs=1 count=1 seek=$(blockdev --getsize64 $ROOT) || rescue_shell
LOOP=$(losetup -f)
losetup $LOOP /mnt/cowfs/cow.img
dmsetup.static create rootfs --table "0 $(blockdev --getsz $ROOT) snapshot $ROOT $LOOP P 0" || rescue_shell
mount /dev/mapper/rootfs /mnt/root || rescue_shell
if [ ! -d /mnt/root/mnt/cowfs ]; then
mkdir -p /mnt/root/mnt/cowfs
fi
sed -i "s|^$ROOT|#\0|" /mnt/root/etc/fstab
mount -o remount,ro /dev/mapper/rootfs /mnt/root || rescue_shell
mount --move /mnt/cowfs /mnt/root/mnt/cowfs || rescue_shell
fi
umount proc sys dev
exec switch_root /mnt/root /sbin/init
</pre>
<br />
肝心な部分は以下で<br />
<pre class="brush: bash">else
mount -t tmpfs none /mnt/cowfs || rescue_shell
dd if=/dev/zero of=/mnt/cowfs/cow.img bs=1 count=1 seek=$(blockdev --getsize64 $ROOT) || rescue_shell
LOOP=$(losetup -f)
losetup $LOOP /mnt/cowfs/cow.img
dmsetup.static create rootfs --table "0 $(blockdev --getsz $ROOT) snapshot $ROOT $LOOP P 0" || rescue_shell
mount /dev/mapper/rootfs /mnt/root || rescue_shell
if [ ! -d /mnt/root/mnt/cowfs ]; then
mkdir -p /mnt/root/mnt/cowfs
fi
sed -i "s|^$ROOT|#\0|" /mnt/root/etc/fstab
mount -o remount,ro /dev/mapper/rootfs /mnt/root || rescue_shell
mount --move /mnt/cowfs /mnt/root/mnt/cowfs || rescue_shell
fi
</pre>
<ol>
<li>まず /mnt/cowfs に tmpfs をマウント</li>
<li>次に dd でスパースファイルを作成、この際 root のデバイスと同じサイズにする<br />(ここは tmpfs と同じサイズにしたほうがいいかもしれない)</li>
<li>losetup を使用して作成したディスクイメージをブロックデバイスとひもづけ</li>
<li>dmsetup の snapshot を使用して新たなデバイスを作成<br />(成功すると /dev/mapper/rootfs が作成される)</li>
<li>起動後のシステムから /mnt/cowfs が見えるようにするために一度 rw でマウントしてディレクトリを作成</li>
<li>/etc/fstab を編集して root をマウントしないようにする</li>
<li>ro でリマウント (必要ないかも)</li>
<li>mount --move を使用して /mnt/cowfs を起動後も見える位置へ移動</li>
</ol>
<br />
というような具合になっています<br />
起動時のカーネルのコマンドラインに snapshot を付けるとここに入ってきて付けなければ<br />
従来通り rw でマウントして起動するようになっています (if の部分)<br />
<br />
init を忘れず実行可能にして必要なファイルは揃ったのでアーカイブにまとめてイメージを作成します<br />
PC の場合は cpio.gz のファイルで起動できた気がするのですが U-Boot はそれだけではダメで<br />
更にイメージに変換する必要がありました<br />
・<a href="http://forums.gentoo.org/viewtopic-t-855834-start-0.html">Gentoo Forums :: View topic - [Solved] Help with initramfs for Marvell OpenRD-Client LE</a><br />
<pre># chmod +x init
# find . -print0 | cpio --null -ov --format=newc | gzip -9 > ../initramfs.cpio.gz
# mkimage -A arm -O linux -T ramdisk -C gzip -n "Gentoo Busybox" -d ../initramfs.cpio.gz /boot/initramfs.kwb
</pre>
<br />
以上でようやく必要なファイルが全部揃いました<br />
上記で /boot/initramfs.kwb にコピーしていますが /boot は /dev/sda1 です<br />
U-boot でこのファイルを読み込んで起動するように設定すれば完了です<br />
カーネルの引数に snapshot を追加するのと initramfs の読み込み <br />
bootm に kernel initramfs dtb の順にアドレスを渡すようにします <br />
以下に自分の環境の例をあげます<br />
<br />
<pre>Marvell>> print
baudrate=115200
bootcmd=${x_bootcmd_usb}; ${x_bootcmd_kernel}; ${x_bootcmd_init}; ${x_bootcmd_dtb}; setenv bootargs ${x_bootargs} ${x_bootargs_snapshot}; bootm 0x6400000 0x6700000 0x6900000
bootdelay=3
eth1addr=xx:xx:xx:xx:xx:xx
ethact=egiga0
ethaddr=xx:xx:xx:xx:xx:xx
stderr=serial
stdin=serial
stdout=serial
x_bootargs=console=ttyS0,115200 root=/dev/sda2 rootdelay=3
x_bootargs_snapshot=snapshot
x_bootcmd_dtb=ext2load usb 0 0x6900000 kirkwood-dreamplug.dtb
x_bootcmd_init=ext2load usb 0 0x6700000 initramfs.kwb
x_bootcmd_kernel=ext2load usb 0 0x6400000 uImage
x_bootcmd_usb=usb start
Environment size: 618/4092 bytes
</pre>
<br />
と、これでおおよそ期待通りに動いているんですが<br />
いくつか問題があります<br />
<br />
まずメモリには限りがあるのでそれを超えるデータを書き込んだ場合正常に動作しなくなります<br />
例えばディスクの空き領域が1Gでメモリ上に確保した領域が10Mだった場合<br />
書き込みは全てメモリへ行われるので当然10MBまでしか書き込めません<br />
システムはまだ990MB空いていると思っているのでおかしなことになるのだと思われます<br />
<br />
他に、新たにファイルを作成してメモリ上へ行われた書き込みは<br />
ファイルを削除しても開放されないという事です<br />
ディスクイメージをスパースファイルで作成しましたがこれの動作によるものです<br />
なので10MBのファイルを作成したあとにそれを削除してもメモリは確保されたままです<br />
これによってひとつめの問題が起こりやすくなっています<br />
<br />
最後に、終了時に /mnt/cowfs をアンマウントできないと言われます<br />
これはまぁ当然と言えば当然なのですが (/ より上位でマウントしているため)<br />
/ をアンマウントしてからでないとアンマウントできないですよね<br />
これについてはもしかしたら解決方法があるのかもしれないですが今のところわかっていませんlostmanhttp://www.blogger.com/profile/13588402147515022385noreply@blogger.com0tag:blogger.com,1999:blog-4051553215390325931.post-83123544809417852912012-10-21T05:48:00.003+09:002012-10-22T01:05:31.538+09:00Kernel 3.6 on Dreamplugなんかやり方がわからなかったんだけどできたのでメモ<br />
<br />
<a name='more'></a>いつからかはわからないけどDreamplugのパッチがメインラインに取り込まれてました<br />
でもFDTってやつで今まで通りブートさせようとしてもうまく動かない模様<br />
<br />
調べてみるとFDT対応のDas u-bootを使わないとダメだよって書いてある<br />
・<a href="http://haliner.blogspot.jp/2012/04/dreamplug-support-in-linux-34.html">Stefan’s Blog: DreamPlug support in Linux 3.4</a><br />
で、ここがDas u-boot<br />
・<a href="http://www.denx.de/wiki/U-Boot/WebHome">WebHome < U-Boot < DENX</a><br />
・<a href="http://www.denx.de/wiki/view/DULG/UBoot">UBoot < DULG < DENX</a> (ドキュメント)<br />
<br />
というわけで、まずu-bootを置き換えてみる<br />
ちなみに実機でビルドしない場合は例によってクロスコンパイル環境が必要<br />
ちょうど<a href="http://lostman-worlds-end.blogspot.jp/2012/10/dreamplugcrossdev.html">この前作った</a>ばかりなのでそれを使用する<br />
<br />
<pre>$ wget ftp://ftp.denx.de/pub/u-boot/u-boot-latest.tar.bz2
$ tar jxvf u-boot-latest.tar.bz2
$ cd u-boot-2012.10
$ xmake distclean && xmake dreamplug_config && xmake u-boot.kwb (xmakeはラッパースクリプト)
</pre>
<br />
以上でカレントディレクトリに u-boot.kwb が作成されるのでu-bootかOpenOCDを使用して更新する<br />
<br />
次にカーネルをビルドする<br />
ここでもクロスコンパイル環境を使用する(のでxmakeを使っています)<br />
<br />
<pre>$ wget https://github.com/torvalds/linux/tarball/v3.6
$ tar zxvf v3.6
$ cd torvalds-linux-255595e/
$ xmake mrproper && xmake kirkwood_defconfig
$ xmake menuconfig
</pre>
<br />
ここで注意が必要なのがいくつか変更しなければいけない設定があること<br />
最低限必要と思われるものを以下にあげておく<br />
<pre>General setup -> Embedded system [*]
System Type -> Marvell Kirkwood Implementations -> Marvell DreamPlug (Flattened Device Tree) [*]
Device Drivers -> Character devices -> Serial drivers -> Serial port on Open Firmware platform bus [*]
</pre>
<br />
あとは好きなように設定してビルドをする<br />
ビルドする際にFDTの動作に必要なファイルもビルドする<br />
<pre>$ xmake uImage && xmake modules && xmake kirkwood-dreamplug.dtb
</pre>
<br />
これで必要なものが揃ったので arch/arm/boot/uImage と<br />
arch/arm/boot/kirkwood-dreamplug.dtb をDreamplugへコピーする<br />
<br />
次にu-bootでの起動は以下のようにする<br />
initramfsを使用している場合は "-" の部分にアドレスを指定する <br />
・<a href="http://www.informit.com/articles/article.aspx?p=1647051&seqNum=5">7.5 Device Tree Blob (Flat Device Tree) | Bootloaders in Embedded Linux Systems | InformIT</a> <br />
<br />
<pre>>> fatload usb 0 0x6400000 uImage
>> fatload usb 0 0x6800000 kirkwood-dreamplug.dtb
>> bootm 0x6400000 - 0x6800000
</pre>
<br />
以上でうまく起動するはず<br />
net.eth0 を rc-update で追加しても起動時に立ち上がってくれなくて<br />
何度もカーネルリビルドしたりシステムいじったりしたんだけど<br />
rc-update --update を実行することで解決した<br />
<a href="http://forums.gentoo.org/viewtopic-p-6720286.html">ここ</a>に書いてあったんだけど --update でサービスの依存関係を強制的に更新してくれるらしい <br />
<br />
<pre>U-Boot 2012.10 (Oct 21 2012 - 01:45:22)
Marvell-DreamPlug
SoC: Kirkwood 88F6281_A1
DRAM: 512 MiB
WARNING: Caches not enabled
SF: Detected MX25L1605D with page size 64 KiB, total 2 MiB
In: serial
Out: serial
Err: serial
Net: egiga0, egiga1
88E1116 Initialized on egiga0
88E1116 Initialized on egiga1
Hit any key to stop autoboot: 0
(Re)start USB...
USB: Register 10011 NbrPorts 1
USB EHCI 1.00
scanning bus for devices... 4 USB Device(s) found
scanning bus for storage devices... Device NOT ready
Request Sense returned 02 3A 00
2 Storage Device(s) found
reading uImage
2614504 bytes read
reading kirkwood-dreamplug.dtb
3000 bytes read
## Booting kernel from Legacy Image at 06400000 ...
Image Name: Linux-3.6.0
Created: 2012-10-21 16:00:45 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2614440 Bytes = 2.5 MiB
Load Address: 00008000
Entry Point: 00008000
Verifying Checksum ... OK
## Flattened Device Tree blob at 06800000
Booting using the fdt blob at 0x06800000
Loading Kernel Image ... OK
OK
Loading Device Tree to 0fffc000, end 0ffffbb7 ... OK
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
Booting Linux on physical CPU 0
Linux version 3.6.0 (alice@wonderland) (gcc version 4.5.4 (Gentoo 4.5.4 p1.0, pie-0.4.7) ) #1 PREEMPT Mon Oct 22 01:00:41 JST 2012
CPU: Feroceon 88FR131 [56251311] revision 1 (ARMv5TE), cr=00053977
CPU: VIVT data cache, VIVT instruction cache
Machine: Marvell Kirkwood (Flattened Device Tree), model: Globalscale Technologies Dreamplug
Memory policy: ECC disabled, Data cache writeback
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 130048
Kernel command line: console=ttyS0,115200 root=/dev/sda2 rootdelay=5
PID hash table entries: 2048 (order: 1, 8192 bytes)
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
Memory: 512MB = 512MB total
Memory: 514112k/514112k available, 10176k reserved, 0K highmem
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
vmalloc : 0xe0800000 - 0xff000000 ( 488 MB)
lowmem : 0xc0000000 - 0xe0000000 ( 512 MB)
modules : 0xbf000000 - 0xc0000000 ( 16 MB)
.text : 0xc0008000 - 0xc04982c4 (4673 kB)
.init : 0xc0499000 - 0xc04b84d0 ( 126 kB)
.data : 0xc04ba000 - 0xc04eb1a0 ( 197 kB)
.bss : 0xc04eb1c4 - 0xc057cba0 ( 583 kB)
SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
NR_IRQS:114
sched_clock: 32 bits at 200MHz, resolution 5ns, wraps every 21474ms
Console: colour dummy device 80x30
Calibrating delay loop... 1191.11 BogoMIPS (lpj=5955584)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
Setting up static identity map for 0x3871d8 - 0x387214
NET: Registered protocol family 16
DMA: preallocated 1024 KiB pool for atomic coherent allocations
Kirkwood: MV88F6281-A1, TCLK=200000000.
Feroceon L2: Enabling L2
Feroceon L2: Cache support initialised.
bio: create slab <bio-0> at 0
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
cfg80211: Calling CRDA to update world regulatory domain
Switching to clocksource orion_clocksource
NET: Registered protocol family 2
TCP established hash table entries: 16384 (order: 5, 131072 bytes)
TCP bind hash table entries: 16384 (order: 4, 65536 bytes)
TCP: Hash tables configured (established 16384 bind 16384)
TCP: reno registered
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
msgmni has been set to 1004
io scheduler noop registered
io scheduler cfq registered (default)
mv_xor_shared mv_xor_shared.0: Marvell shared XOR driver
mv_xor_shared mv_xor_shared.1: Marvell shared XOR driver
mv_xor mv_xor.0: Marvell XOR: ( xor cpy )
mv_xor mv_xor.1: Marvell XOR: ( xor fill cpy )
mv_xor mv_xor.2: Marvell XOR: ( xor cpy )
mv_xor mv_xor.3: Marvell XOR: ( xor fill cpy )
Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
f1012000.serial: ttyS0 at MMIO 0xf1012000 (irq = 33) is a 16550A
console [ttyS0] enabled
loop: module loaded
sata_mv sata_mv.0: cannot get optional clkdev
sata_mv sata_mv.0: slots 32 ports 1
scsi0 : sata_mv
ata1: SATA max UDMA/133 irq 21
orion_spi orion_spi.0: master is unqueued, this is deprecated
m25p80 spi0.0: mx25l1606e (2048 Kbytes)
3 ofpart partitions found on MTD device spi0.0
Creating 3 MTD partitions on "spi0.0":
0x000000000000-0x000000080000 : "u-boot"
0x000000100000-0x000000110000 : "u-boot env"
0x000000180000-0x000000190000 : "dtb"
mv643xx_eth: MV-643xx 10/100/1000 ethernet driver version 1.4
libphy: mv643xx_eth smi: probed
mv643xx_eth_port mv643xx_eth_port.0: eth0: port 0 with MAC address xx:xx:xx:xx:xx:xx
mv643xx_eth_port mv643xx_eth_port.1: eth1: port 0 with MAC address xx:xx:xx:xx:xx:xx
libertas_sdio: Libertas SDIO driver
libertas_sdio: Copyright Pierre Ossman
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
orion-ehci orion-ehci.0: Marvell Orion EHCI
orion-ehci orion-ehci.0: new USB bus registered, assigned bus number 1
orion-ehci orion-ehci.0: irq 19, io mem 0xf1050000
orion-ehci orion-ehci.0: USB 2.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
rtc-mv f1010300.rtc: rtc core: registered f1010300.rtc as rtc0
i2c /dev entries driver
cpuidle: using governor ladder
cpuidle: using governor menu
mmc0: mvsdio driver initialized, lacking card detect (fall back to polling)
oprofile: hardware counters not available
oprofile: using timer interrupt.
TCP: cubic registered
NET: Registered protocol family 17
lib80211: common routines for IEEE802.11 drivers
rtc-mv f1010300.rtc: setting system clock to 2012-10-22 01:01:40 UTC (1350867700)
Waiting 5sec before mounting root device...
mmc0: new high speed SDIO card at address 0001
ata1: SATA link down (SStatus 0 SControl F300)
usb 1-1: new high-speed USB device number 2 using orion-ehci
hub 1-1:1.0: USB hub found
hub 1-1:1.0: 4 ports detected
usb 1-1.1: new high-speed USB device number 3 using orion-ehci
scsi1 : usb-storage 1-1.1:1.0
usb 1-1.4: new full-speed USB device number 4 using orion-ehci
scsi 1:0:0:0: Direct-Access Generic STORAGE DEVICE 9910 PQ: 0 ANSI: 0
sd 1:0:0:0: [sda] 62333952 512-byte logical blocks: (31.9 GB/29.7 GiB)
sd 1:0:0:0: [sda] Write Protect is off
sd 1:0:0:0: [sda] No Caching mode page present
sd 1:0:0:0: [sda] Assuming drive cache: write through
sd 1:0:0:0: [sda] No Caching mode page present
sd 1:0:0:0: [sda] Assuming drive cache: write through
sda: sda1 sda2 sda3
sd 1:0:0:0: [sda] No Caching mode page present
sd 1:0:0:0: [sda] Assuming drive cache: write through
sd 1:0:0:0: [sda] Attached SCSI removable disk
EXT4-fs (sda2): mounted filesystem with ordered data mode. Opts: (null)
VFS: Mounted root (ext4 filesystem) readonly on device 8:2.
Freeing init memory: 124K
INIT: version 2.88 booting
OpenRC 0.9.8.4 is starting up Gentoo Linux (armv5tel)
* Mounting /proc ...
[ ok ]
* Mounting /run ...
[ ok ]
* /run/lock: creating directory
* /run/lock: correcting owner
* Mounting /sys ...
[ ok ]
* Mounting debug filesystem ...
[ ok ]
* Mounting /dev ...
[ ok ]
* Starting udev ...
[ ok ]
* Populating /dev with existing devices through uevents ...
[ ok ]
* Waiting for uevents to be processed ...
[ ok ]
* Mounting /dev/pts ...
[ ok ]
* Mounting /dev/shm ...
[ ok ]
* Setting system clock using the hardware clock [Local Time] ...
[ ok ]
* Autoloaded 0 module(s)
* Checking local filesystems ...
/dev/sda2: clean, 237401/1880480 files, 791619/7512960 blocks
[ ok ]
* Remounting root filesystem read/write ...
[ ok ]
* Updating /etc/mtab ...
[ ok ]
* Mounting local filesystems ...
[ ok ]
* Configuring kernel parameters ...
[ ok ]
* Creating user login records ...
[ ok ]
* Cleaning /var/run ...
[ ok ]
* Wiping /tmp directory ...
[ ok ]
* Setting hostname to rabbithole ...
[ ok ]
* Setting terminal encoding [UTF-8] ...
[ ok ]
* Setting keyboard mode [UTF-8] ...
[ ok ]
* Loading key mappings [us] ...
[ ok ]
* Bringing up interface lo
* 127.0.0.1/8 ...
[ ok ]
* Adding routes
* 127.0.0.0/8 via 127.0.0.1 ...
[ ok ]
* Activating swap devices ...
[ ok ]
* Initializing random number generator ...
[ ok ]
INIT: Entering runlevel: 3
* Bringing up interface eth0
* dhcp ...
* Running dhcpcd ...
dhcpcd[1136]: version 5.2.12 starting
dhcpcd[1136]: eth0: rebinding lease of 10.0.0.110
dhcpcd[1136]: eth0: acknowledged 10.0.0.110 from 10.0.0.254
dhcpcd[1136]: eth0: checking for 10.0.0.110
dhcpcd[1136]: eth0: leased 10.0.0.110 for 43200 seconds
dhcpcd[1136]: forked to background, child pid 1162
[ ok ]
* received address 10.0.0.110/24
[ ok ]
* Mounting network filesystems ...
[ ok ]
* Starting sshd ...
[ ok ]
* Doing udev cleanups
* Starting local
[ ok ]
This is rabbithole.lan (Linux armv5tel 3.6.0) 01:02:03
rabbithole login:
</pre>
lostmanhttp://www.blogger.com/profile/13588402147515022385noreply@blogger.com1tag:blogger.com,1999:blog-4051553215390325931.post-47906955610704390742012-10-20T01:51:00.001+09:002012-10-20T12:28:15.372+09:00DreamPlug用のCrossdevまだやってなかったのかと言われそうな気もしますが、、<br />
Gentooだと簡単ですね<br />
<br />
・<a href="http://www.gentoo.org/proj/en/base/embedded/handbook/?part=1&chap=4">Gentoo Linux Documentation -- Cross-Compiling The Kernel</a> <br />
・<a href="http://en.gentoo-wiki.com/wiki/Crossdev">Crossdev - Gentoo Linux Wiki</a><br />
<br />
<a name='more'></a><br />
まずディレクトリを作成しておく
<br />
<pre># mkdir /usr/local/portage
</pre>
<br />
/etc/make.conf に以下を追記<br />
<pre>PORTDIR_OVERLAY="/usr/local/portage"
</pre>
<br />
次に crossdev をインストール<br />
<pre># emerge -v crossdev
</pre>
<br />
ターゲットのシステムを調べるには対象のマシンで gcc -v を実行すればいいと思う
<br />
<pre># gcc -v 2>&1 | grep ^Target
Target: armv5tel-softfloat-linux-gnueabi
</pre>
<br />
crossdev -S -t armv5tel-softfloat-linux-gnueabi でインストールできる(-S で stable を指定)<br />
ただインストールする際に以下のようなエラーが出るので<br />
package.keywords と package.use はディレクトリを作ってその中に入れるようにする
<br />
<pre> * please convert /etc/portage/package.keywords to a directory
* If you file a bug, please attach the following logfiles:
* /var/log/portage/cross-armv5tel-softfloat-linux-gnueabi-info.log
</pre>
<br />
以下のようにする (package.use も同じように)<br />
<pre># cd /etc/portage
# mv package.keywords default.keywords (ファイル名は何でもいいっぽい)
# mkdir package.keywords
# mv default.keywords package.keywords/
</pre>
<br />
再度インストール
<br />
<pre># crossdev -S -t armv5tel-softfloat-linux-gnueabi
-----------------------------------------------------------------------------------
* crossdev version: 20120721
* Host Portage ARCH: amd64
* Target Portage ARCH: arm
* Target System: armv5tel-softfloat-linux-gnueabi
* Stage: 4 (C/C++ compiler)
* ABIs: default
* binutils: binutils-[stable]
* gcc: gcc-[stable]
* headers: linux-headers-[stable]
* libc: glibc-[stable]
* CROSSDEV_OVERLAY: /usr/local/portage
* PORT_LOGDIR: /var/log/portage
* PORTAGE_CONFIGROOT:
* Portage flags:
_ - ~ - _ - ~ - _ - ~ - _ - ~ - _ - ~ - _ - ~ - _ - ~
_ - ~ - _ - ~ - _ - ~ - _ - ~ - _ - ~ - _ - ~ - _ - ~
* Log: /var/log/portage/cross-armv5tel-softfloat-linux-gnueabi-binutils.log
* Emerging cross-binutils ... [ ok ]
* Log: /var/log/portage/cross-armv5tel-softfloat-linux-gnueabi-linux-headers-quick.log
* Emerging cross-linux-headers-quick ... [ ok ]
* Log: /var/log/portage/cross-armv5tel-softfloat-linux-gnueabi-glibc-headers.log
* Emerging cross-glibc-headers ... [ ok ]
* Log: /var/log/portage/cross-armv5tel-softfloat-linux-gnueabi-gcc-stage1.log
* Emerging cross-gcc-stage1 ... [ ok ]
* Log: /var/log/portage/cross-armv5tel-softfloat-linux-gnueabi-linux-headers.log
* Emerging cross-linux-headers ... [ ok ]
* Log: /var/log/portage/cross-armv5tel-softfloat-linux-gnueabi-glibc.log
* Emerging cross-glibc ... [ ok ]
* Log: /var/log/portage/cross-armv5tel-softfloat-linux-gnueabi-gcc-stage2.log
* Emerging cross-gcc-stage2 ... [ ok ]
</pre>
<br />
armv5tel-softfloat-linux-gnueabi-xxx というファイル名でコンパイラがインストールされる
これらを使ってカーネルをビルドしたい場合は以下のようになるのでスクリプトを作成しておいた
<br />
<pre>#!/bin/sh
exec make ARCH="arm" CROSS_COMPILE="armv5tel-softfloat-linux-gnueabi-" "$@"
</pre>
lostmanhttp://www.blogger.com/profile/13588402147515022385noreply@blogger.com0tag:blogger.com,1999:blog-4051553215390325931.post-60325219542006112302012-10-08T03:48:00.004+09:002012-10-08T04:04:40.473+09:00外部ストレージからの起動・<a href="http://dev.gentoo.org/%7Earmin76/arm/sheevaplug/install.xml">Gentoo Linux Documentation -- Gentoo on the Marvell SheevaPlug</a><br />
ここを参考にTFTPを使用せずUSBメモリから起動させた<br />
<br />
<a name='more'></a><br />
まず必要なファイルを用意してFATでフォーマットされたUSBメモリに書き込んでおく<br />
<br />
<pre>$ wget http://dev.gentoo.org/~armin76/arm/sheevaplug/install/uImage_kwplug
$ wget http://dev.gentoo.org/~armin76/arm/sheevaplug/install/sheevaplug.initramfs
</pre>
<br />
次にU-Bootに入ってusb startとfatls usb 2を実行する<br />
なんか色々関係ないファイルも混ざってるけどこんな感じに表示される <br />
<br />
<pre>Marvell>> usb start
(Re)start USB...
USB: Register 10011 NbrPorts 1
USB EHCI 1.00
scanning bus for devices... 5 USB Device(s) found
scanning bus for storage devices... Device NOT ready
Request Sense returned 02 3A 00
3 Storage Device(s) found
Marvell>> fatls usb 2
11399168 gentoo.efimg
gentoo.efimg.mountpoint/
137207808 image.squashfs
isolinux/
0 livecd
7236 readme.txt
2048 boot.cat
198 boot.msg
209505 elilo.efi
950 f2.msg
1468 f3.msg
1352 f4.msg
1401 f5.msg
879 f6.msg
1461 f7.msg
2662320 gentoo
6305658 gentoo.igz
24576 isolinux.bin
32256 ldlinux.sys
57 kernels.msg
160280 memtest86
1935313 system.map-gentoo
556 syslinux.cfg
1766 id_rsa
387 id_rsa.pub
3869250 sheevaplug.initramfs
2664248 uimage_kwplug
25 file(s), 2 dir(s)
Marvell>>
</pre>
<br />
<br />
カーネルを起動するのに必要な設定を書き込んで一度再起動
<br />
<br />
<pre>Marvell>> setenv arcNumber 2097
Marvell>> setenv mainlineLinux yes
Marvell>> saveenv
Saving Environment to NAND...
Erasing Nand...Writing to Nand... done
Marvell>> reset
</pre>
<br />
<br />
起動したら再度usb startをして今度は実際に読み込んで起動させる
<br />
<br />
<pre>Marvell>> fatload usb 2 0x8000000 sheevaplug.initramfs
reading sheevaplug.initramfs
3869250 bytes read
Marvell>> fatload usb 2 0x2000000 uImage_kwplug
reading uImage_kwplug
2664248 bytes read
Marvell>> setenv bootargs console=ttyS0,115200 root=/dev/ram rw
Marvell>> bootm 0x2000000 0x8000000
</pre>
<br />
<br />
あとはなにを入れるなりお好きなように
lostmanhttp://www.blogger.com/profile/13588402147515022385noreply@blogger.com0tag:blogger.com,1999:blog-4051553215390325931.post-73574651167396967102012-10-07T11:02:00.001+09:002012-10-21T02:08:49.947+09:00OpenOCDからU-Bootを更新しようとしたらはまったやり方はここのPDFに書いてあるんだけどFedora用だし<br />
バイナリも入ってるけど32bit用っぽくて使えなかった<br />
そして結構はまったので書いてみた<br />
<br />
・<a href="http://code.google.com/p/dreamplug/">dreamplug - DreamPlug - Google Project Hosting</a><br />
<br />
<a name='more'></a><br />
まず現在のバージョン
<br />
<pre>U-Boot 2011.06-02334-g8f495d9-dirty (May 31 2011 - 02:06:26)
Marvell-DreamPlug
SoC: Kirkwood 88F6281_A0
CPU running @ 1200Mhz L2 running @ 400Mhz
SysClock = 400Mhz , TClock = 200Mhz
DRAM: 512 MiB
SF: Detected MX25L1606 with page size 256, total 1 MiB
In: serial
Out: serial
Err: serial
Net: egiga0, egiga1
88E1116 Initialized on egiga0
88E1116 Initialized on egiga1
Hit any key to stop autoboot: 0
Marvell>>
</pre>
<br />
<a href="http://code.google.com/p/dreamplug/downloads/list">ここ</a>から最新のU-Bootをもらってくる<br />
(PDFもあるから確認しておくといい)<br />
<br />
dream_burn_uboot_v10_Aug-28-2012.tar.gzを展開して<br />
dream_burn_uboot/sheevaplug/openocd.binaries/bin/ へ移動<br />
ここにopenocdのバイナリと設定ファイル(target/board/dreamplug.cfg)<br />
U-Boot(u-boot、u-boot.kwb)が置いてある<br />
<br />
まずバイナリが32bit用でシステムの64bitのライブラリにリンクしようとして<br />
そのままでは使うことができなかった、なので使用しない <br />
あとこの設定ファイルもくせものでそのままでは動かなかった<br />
<a href="http://lostman-worlds-end.blogspot.jp/2012/10/openocddreamplug.html">前回の記事</a>で作成したファイルに同梱の設定を抜き出して追記する<br />
前回の設定+抜き出した下記の部分を含んだファイルをtarget/board/dreamplug.cfg2とする<br />
<br />
<pre>proc dreamplug_burn_uboot { } {
# load u-Boot into RAM and execute it
sheevaplug_init
load_image ./u-boot
load_image u-boot.kwb 0x6400000
# load_image u-boot.kwb 0x900000
resume 0x00600000
}
</pre>
<br />
まず1つ目の端末でU-Bootに入っておく<br />
<br />
<pre># screen /dev/ttyUSB0 115200
U-Boot 2011.06-02334-g8f495d9-dirty (May 31 2011 - 02:06:26)
Marvell-DreamPlug
SoC: Kirkwood 88F6281_A0
CPU running @ 1200Mhz L2 running @ 400Mhz
SysClock = 400Mhz , TClock = 200Mhz
DRAM: 512 MiB
SF: Detected MX25L1606 with page size 256, total 1 MiB
In: serial
Out: serial
Err: serial
Net: egiga0, egiga1
88E1116 Initialized on egiga0
88E1116 Initialized on egiga1
Hit any key to stop autoboot: 0
Marvell>>
</pre>
<br />
次に2つ目の端末でOpenOCDを起動する<br />
PDFの通りだけどファイル名を新しく作ったものにすること<br />
<br />
<pre># openocd -f target/board/dreamplug.cfg2 -c init -c dreamplug_burn_uboot
Open On-Chip Debugger 0.5.0 (2012-10-07-07:04)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.berlios.de/doc/doxygen/bugs.html
Info : only one transport option; autoselect 'jtag'
2000 kHz
Warn : Interface already configured, ignoring
Error: already specified ft2232_layout sheevaplug
2000 kHz
trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain
adapter_nsrst_delay: 200
jtag_ntrst_delay: 200
dcc downloads are enabled
Warn : use 'feroceon.cpu' as target identifier, not '0'
dreamplug_burn_uboot
Info : clock speed 2000 kHz
Info : JTAG tap: feroceon.cpu tap/device found: 0x20a023d3 (mfg: 0x1e9, part: 0x0a02, ver: 0x2)
Info : Embedded ICE version 0
Info : feroceon.cpu: hardware has 1 breakpoint/watchpoint unit
target state: halted
target halted in ARM state due to debug-request, current mode: Supervisor
cpsr: 0x000000d3 pc: 0xffff0000
MMU: disabled, D-Cache: disabled, I-Cache: disabled
149712 bytes written at address 0x00600000
downloaded 149712 bytes in 1.204238s (121.407 KiB/s)
216676 bytes written at address 0x06400000
downloaded 216676 bytes in 1.704923s (124.110 KiB/s)
</pre>
<br />
この時再起動されて新しいU-Bootがアップロードされるので1つ目の端末ですかさずEnterを押す<br />
現段階では書き込まれていないようで何度上記のコマンドを実行してもアップデートされることはなかった<br />
printenvを実行してみると以下のようになっているのでbootを実行すれば書き換わる<br />
<br />
<pre>U-Boot 2011.06-02334-g8f495d9-dirty (Mar 01 2011 - 20:36:44)
Marvell-DreamPlug
SoC: Kirkwood 88F6281_A0
DRAM: 512 MiB
SF: Detected MX25L1606 with page size 256, total 1 MiB
*** Warning - bad CRC, using default environment
In: serial
Out: serial
Err: serial
Net: egiga0, egiga1
88E1121 Initialized on egiga0
88E1121 Initialized on egiga1
Hit any key to stop autoboot: 0
Marvell>> printenv
bootcmd=sf probe 0; sf erase 0x0 0x100000; sf write 0x6400000 0x0 0xd0000;
bootdelay=3
baudrate=115200
x_bootcmd_ethernet=ping 192.168.2.1
x_bootcmd_usb=usb start
x_bootcmd_kernel=fatload usb 0 0x6400000 uImage
x_bootargs=console=ttyS0,115200
x_bootargs_root root=/dev/sda2 rootdelay=10
stdin=serial
stdout=serial
stderr=serial
ethaddr=xx:xx:xx:xx:xx:xx
ethact=egiga0
eth1addr=xx:xx:xx:xx:xx:xx
Environment size: 396/4092 bytes
Marvell>>
</pre>
<br />
bootを実行して実際にU-Bootを書き換えて再起動する<br />
<br />
<pre>Marvell>> boot
SF: Detected MX25L1606 with page size 256, total 1 MiB
1024 KiB MX25L1606 at 0:0 is now current device
Marvell>> reset
resetting ...
U-Boot 2011.06 (Oct 15 2011 - 02:02:08)
Marvell-DreamPlug
SoC: Kirkwood 88F6281_A0
DRAM: 512 MiB
SF: Detected MX25L1606 with page size 256, total 1 MiB
*** Warning - bad CRC, using default environment
In: serial
Out: serial
Err: serial
Net: egiga0, egiga1
88E1121 Initialized on egiga0
88E1121 Initialized on egiga1
Hit any key to stop autoboot: 0
Marvell>>
</pre>
<br />
Warningが出ているのでデフォルトで設定を上書きしておく<br />
<br />
<pre>Marvell>> saveenv
Saving Environment to SPI Flash...
Erasing SPI flash...Writing to SPI flash...done
Marvell>> reset
resetting ...
U-Boot 2011.06 (Oct 15 2011 - 02:02:08)
Marvell-DreamPlug
SoC: Kirkwood 88F6281_A0
DRAM: 512 MiB
SF: Detected MX25L1606 with page size 256, total 1 MiB
In: serial
Out: serial
Err: serial
Net: egiga0, egiga1
88E1121 Initialized on egiga0
88E1121 Initialized on egiga1
Hit any key to stop autoboot: 0
Marvell>>
</pre>
<br />
以上でアップデートが完了する<br />
しかしファイル名がAug-28-2012なのに<br />
なんでアップデート後のバージョンがOct 15 2011なんだ?lostmanhttp://www.blogger.com/profile/13588402147515022385noreply@blogger.com0tag:blogger.com,1999:blog-4051553215390325931.post-66950381078006514902012-10-07T07:58:00.003+09:002012-10-07T08:00:02.106+09:00OpenOCD@DreamPlugDreamPlug向けにOpenOCDをインストールしてみた<br />
・<a href="https://sites.google.com/site/richardgroux/tools/dreamplug#TOC-openocd-is-your-friend">DreamPlug - Admin Stuff</a><br />
<br />
<a name='more'></a><br />
useフラグにはftdiとusbが必要<br />
telnetも必要なのでnet-misc/netkit-telnetdもインストール<br />
<br />
sheeva用の設定で動くらしい<br />
<pre>$ cat /usr/share/openocd/scripts/interface/sheevaplug.cfg >openocd.cfg
$ cat /usr/share/openocd/scripts/board/sheevaplug.cfg >>openocd.cfg
$ sudo openocd -f openocd.cfg
</pre>
<br />
起動すると色々ログが出て止まるので
<br />
<pre>Open On-Chip Debugger 0.5.0 (2012-10-07-07:04)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.berlios.de/doc/doxygen/bugs.html
Info : only one transport option; autoselect 'jtag'
2000 kHz
Warn : Interface already configured, ignoring
Error: already specified ft2232_layout sheevaplug
2000 kHz
trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain
adapter_nsrst_delay: 200
jtag_ntrst_delay: 200
dcc downloads are enabled
Warn : use 'feroceon.cpu' as target identifier, not '0'
sheevaplug_load_uboot
Info : clock speed 2000 kHz
Info : JTAG tap: feroceon.cpu tap/device found: 0x20a023d3 (mfg: 0x1e9, part: 0x0a02, ver: 0x2)
Info : Embedded ICE version 0
Info : feroceon.cpu: hardware has 1 breakpoint/watchpoint unit
</pre>
<br />
他の端末からtelnetでローカルの4444に接続
<br />
<pre>$ telnet localhost 4444Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Open On-Chip Debugger
>
</pre>
<br />
"reset halt"で再起動できる<br />
他にはこんなコマンドが使えるらしい
<br />
<pre>adapter_khz [khz]
With an argument, change to the specified maximum jtag speed. For
JTAG, 0 KHz signifies adaptive clocking. With or without argument,
display current setting. (command valid any time)
adapter_name
Returns the name of the currently selected adapter (driver) (command
valid any time)
adapter_nsrst_assert_width [milliseconds]
delay after asserting SRST in ms (command valid any time)
adapter_nsrst_delay [milliseconds]
delay after deasserting SRST in ms (command valid any time)
add_help_text command_name helptext_string
Add new command help text; Command can be multiple tokens. (command
valid any time)
add_script_search_dir
dir to search for config files and scripts (command valid any time)
add_usage_text command_name usage_string
Add new command usage text; command can be multiple tokens. (command
valid any time)
append_file file_name [string ...]
append a variable number of strings to a file (command valid any
time)
arm
ARM command group (command valid any time)
arm core_state ['arm'|'thumb']
display/change ARM core state
arm disassemble address [count ['thumb']]
disassemble instructions
arm mcr cpnum op1 CRn op2 CRm value
write coprocessor register
arm mrc cpnum op1 CRn op2 CRm
read coprocessor register
arm reg
display ARM core registers
arm semihosting ['enable'|'disable']
activate support for semihosting operations
arm7_9
arm7/9 specific commands (command valid any time)
arm7_9 dbgrq ['enable'|'disable']
use EmbeddedICE dbgrq instead of breakpoint for target halt
requests (command valid any time)
arm7_9 dcc_downloads ['enable'|'disable']
use DCC downloads for larger memory writes (command valid any time)
arm7_9 fast_memory_access ['enable'|'disable']
use fast memory accesses instead of slower but potentially safer
accesses (command valid any time)
arm9
arm9 command group (command valid any time)
arm9 vector_catch [all|none|(reset|undef|swi|pabt|dabt|irq|fiq)*]
Display, after optionally updating, configuration of vector catch
unit.
arm926ejs
arm926ejs command group (command valid any time)
arm926ejs cache_info
display information about target caches
array2mem arrayname bitwidth address count
convert a TCL array to memory locations and write the 8/16/32 bit
values
bp [address length ['hw']]
list or set hardware or software breakpoint
cat file_name
display text file content (command valid any time)
command
core command group (introspection) (command valid any time)
command mode [command_name ...]
Returns the command modes allowed by a command:'any', 'config', or
'exec'. If no command isspecified, returns the current command
mode. Returns 'unknown' if an unknown command is given. Command
can be multiple tokens. (command valid any time)
command type command_name [...]
Returns the type of built-in command:'native', 'simple', 'group',
or 'unknown'. Command can be multiple tokens. (command valid any
time)
cp src_file_name dst_file_name
copy a file (command valid any time)
debug_level number
Sets the verbosity level of debugging output. 0 shows errors only; 1
adds warnings; 2 (default) adds other info; 3 adds debugging.
(command valid any time)
drscan tap_name [num_bits value]* ['-endstate' state_name]
Execute Data Register (DR) scan for one TAP. Other TAPs must be in
BYPASS mode.
dump_image filename address size
echo [-n] string
Logs a message at "user" priority. Output message to stdout. Option
"-n" suppresses trailing newline (command valid any time)
etm
Emebdded Trace Macrocell command group (command valid any time)
etm config target port_width port_mode clocking capture_driver
Set up ETM output port. (configuration command)
exit
exit telnet session
fast_load
loads active fast load image to current target - mainly for profiling
purposes
fast_load_image filename address ['bin'|'ihex'|'elf'|'s19'] [min_address [max_length]]
Load image into server memory for later use by fast_load; primarily
for profiling (command valid any time)
feroceon.cpu
target command group (command valid any time)
feroceon.cpu arm
ARM command group (command valid any time)
feroceon.cpu arm7_9
arm7/9 specific commands (command valid any time)
feroceon.cpu arm9
arm9 command group (command valid any time)
feroceon.cpu arm926ejs
arm926ejs command group (command valid any time)
feroceon.cpu arp_examine
used internally for reset processing
feroceon.cpu arp_halt
used internally for reset processing
feroceon.cpu arp_halt_gdb
used internally for reset processing to halt GDB
feroceon.cpu arp_poll
used internally for reset processing
feroceon.cpu arp_reset
used internally for reset processing
feroceon.cpu arp_waitstate
used internally for reset processing
feroceon.cpu array2mem arrayname bitwidth address count
Writes Tcl array of 8/16/32 bit numbers to target memory
feroceon.cpu cget target_attribute
returns the specified target attribute (command valid any time)
feroceon.cpu configure [target_attribute ...]
configure a new target for use (configuration command)
feroceon.cpu curstate
displays the current state of this target
feroceon.cpu etm
Emebdded Trace Macrocell command group (command valid any time)
feroceon.cpu eventlist
displays a table of events defined for this target
feroceon.cpu invoke-event event_name
invoke handler for specified event
feroceon.cpu mdb address [count]
Display target memory as 8-bit bytes
feroceon.cpu mdh address [count]
Display target memory as 16-bit half-words
feroceon.cpu mdw address [count]
Display target memory as 32-bit words
feroceon.cpu mem2array arrayname bitwidth address count
Loads Tcl array of 8/16/32 bit numbers from target memory
feroceon.cpu mwb address data [count]
Write byte(s) to target memory
feroceon.cpu mwh address data [count]
Write 16-bit half-word(s) to target memory
feroceon.cpu mww address data [count]
Write 32-bit word(s) to target memory
find <file>
print full path to file according to OpenOCD search rules (command
valid any time)
flash
NOR flash command group (command valid any time)
flash bank bank_id driver_name base_address size_bytes chip_width_bytes
bus_width_bytes target [driver_options ...]
Define a new bank with the given name, using the specified NOR
flash driver. (configuration command)
flash banks
Display table with information about flash banks. (command valid
any time)
flash init
Initialize flash devices. (configuration command)
flash list
Returns a list of details about the flash banks. (command valid any
time)
flush_count
Returns the number of times the JTAG queue has been flushed.
ft2232_device_desc description_string
set the USB device description of the FTDI FT2232 device
(configuration command)
ft2232_latency value
set the FT2232 latency timer to a new value (configuration command)
ft2232_layout layout_name
set the layout of the FT2232 GPIO signals used to control
output-enables and reset signals (configuration command)
ft2232_serial serial_string
set the serial number of the FTDI FT2232 device (configuration
command)
ft2232_vid_pid (vid pid)*
the vendor ID and product ID of the FTDI FT2232 device (configuration
command)
gdb_breakpoint_override ('hard'|'soft'|'disable')
Display or specify type of breakpoint to be used by gdb 'break'
commands. (command valid any time)
gdb_flash_program ('enable'|'disable')
enable or disable flash program (configuration command)
gdb_memory_map ('enable'|'disable')
enable or disable memory map (configuration command)
gdb_port [port_num]
Normally gdb listens to a TCP/IP port. Each subsequent GDB server
listens for the next port number after the base port number
specified. No arguments reports GDB port. "pipe" means listen to
stdin output to stdout, an integer is base port number, "disable"
disables port. Any other string is are interpreted as named pipe to
listen to. Output pipe is the same name as input pipe, but with 'o'
appended. (command valid any time)
gdb_report_data_abort ('enable'|'disable')
enable or disable reporting data aborts (configuration command)
gdb_sync
next stepi will return immediately allowing GDB to fetch register
state without affecting target state (command valid any time)
halt [milliseconds]
request target to halt, then wait up to the specifiednumber of
milliseconds (default 5) for it to complete
help [command_name]
Show full command help; command can be multiple tokens. (command
valid any time)
init
Initializes configured targets and servers. Changes command mode
from CONFIG to EXEC. Unless 'noinit' is called, this command is
called automatically at the end of startup. (command valid any time)
interface driver_name
Select a debug adapter interface (driver) (configuration command)
interface_list
List all built-in debug adapter interfaces (drivers) (command valid
any time)
interface_transports transport ...
Declare transports the interface supports. (configuration command)
ip
show IP address (command valid any time)
irscan [tap_name instruction]* ['-endstate' state_name]
Execute Instruction Register (DR) scan. The specified opcodes are
put into each TAP's IR, and other TAPs are put in BYPASS.
jtag
perform jtag tap actions (command valid any time)
jtag arp_init
Validates JTAG scan chain against the list of declared TAPs using
just the four standard JTAG signals. (command valid any time)
jtag arp_init-reset
Uses TRST and SRST to try resetting everything on the JTAG scan
chain, then performs 'jtag arp_init'. (command valid any time)
jtag cget tap_name '-event' event_name
Return any Tcl handler for the specified TAP event.
jtag configure tap_name '-event' event_name handler
Provide a Tcl handler for the specified TAP event.
jtag drscan tap_name [num_bits value]* ['-endstate' state_name]
Execute Data Register (DR) scan for one TAP. Other TAPs must be in
BYPASS mode.
jtag flush_count
Returns the number of times the JTAG queue has been flushed.
jtag init
initialize jtag scan chain (command valid any time)
jtag names
Returns list of all JTAG tap names. (command valid any time)
jtag newtap basename tap_type '-irlen' count ['-enable'|'-disable'] ['-expected_id'
number] ['-ignore-version'] ['-ircapture' number] ['-mask'
number]
Create a new TAP instance named basename.tap_type, and appends it
to the scan chain. (configuration command)
jtag pathmove start_state state1 [state2 [state3 ...]]
Move JTAG state machine from current state (start_state) to state1,
then state2, state3, etc.
jtag tapdisable tap_name
Try to disable the specified TAP using the 'tap-disable' TAP event.
jtag tapenable tap_name
Try to enable the specified TAP using the 'tap-enable' TAP event.
jtag tapisenabled tap_name
Returns a Tcl boolean (0/1) indicating whether the TAP is enabled
(1) or not (0).
jtag_flush_queue_sleep [sleep in ms]
For debug purposes(simulate long delays of interface) to test
performance or change in behavior. Default 0ms. (command valid any
time)
jtag_ntrst_assert_width [milliseconds]
delay after asserting trst in ms (command valid any time)
jtag_ntrst_delay [milliseconds]
delay after deasserting trst in ms (command valid any time)
jtag_rclk [fallback_speed_khz]
With an argument, change to to use adaptive clocking if possible;
else to use the fallback speed. With or without argument, display
current setting. (command valid any time)
jtag_reset trst_active srst_active
Set reset line values. Value '1' is active, value '0' is inactive.
load_image filename address ['bin'|'ihex'|'elf'|'s19'] [min_address] [max_length]
log_output file_name
redirect logging to a file (default: stderr) (command valid any time)
ls dirname
show a listing of files (command valid any time)
mac
show MAC address (command valid any time)
mdb ['phys'] address [count]
display memory bytes
mdh ['phys'] address [count]
display memory half-words
mdw ['phys'] address [count]
display memory words
measure_clk
Runs a test to measure the JTAG clk. Useful with RCLK / RTCK.
(command valid any time)
mem2array arrayname bitwidth address count
read 8/16/32 bit memory and return as a TCL array for script
processing
meminfo
display free heap space (command valid any time)
mflash
mflash command group (command valid any time)
mflash bank soc_type base_addr pin_id target
configure a mflash device bank (configuration command)
mflash init
initialize mflash devices (configuration command)
ms Returns ever increasing milliseconds. Used to calculuate differences
in time. (command valid any time)
mwb ['phys'] address value [count]
write memory byte
mwh ['phys'] address value [count]
write memory half-word
mww ['phys'] address value [count]
write memory word
nand
NAND flash command group (command valid any time)
nand check_bad_blocks bank_id [offset length]
check all or part of NAND flash device for bad blocks
nand device bank_id driver target [driver_options ...]
defines a new NAND bank (configuration command)
nand drivers
lists available NAND drivers (command valid any time)
nand dump bank_id filename offset length ['oob_raw'|'oob_only']
dump from NAND flash device
nand erase bank_id [offset length]
erase all or subset of blocks on NAND flash device
nand info [banknum | first_bank_num last_bank_num]
print info about one or more NAND flash devices
nand init
initialize NAND devices (configuration command)
nand list
list configured NAND flash devices
nand probe bank_id
identify NAND flash device
nand raw_access bank_id ['enable'|'disable']
raw access to NAND flash device
nand verify bank_id filename offset
['oob_raw'|'oob_only'|'oob_softecc'|'oob_softecc_kw']
verify NAND flash device
nand write bank_id filename offset
['oob_raw'|'oob_only'|'oob_softecc'|'oob_softecc_kw']
write to NAND flash device
noinit
Prevent 'init' from being called at startup. (configuration command)
pathmove start_state state1 [state2 [state3 ...]]
Move JTAG state machine from current state (start_state) to state1,
then state2, state3, etc.
peek address
peek at a memory address (command valid any time)
pld
programmable logic device commands (command valid any time)
pld device driver_name [driver_args ... ]
configure a PLD device (configuration command)
pld init
initialize PLD devices (configuration command)
poke address value
poke at a memory address (command valid any time)
poll ['on'|'off']
poll target state; or reconfigure background polling
power_restore
Overridable procedure run when power restore is detected. Runs 'reset
init' by default. (command valid any time)
profile
profiling samples the CPU PC
rbp address
remove breakpoint
reg [(register_name|register_number) [value]]
display or set a register; with no arguments, displays all registers
and their values
reset [run|halt|init]
Reset all targets into the specified mode.Default reset mode is run,
if not given.
reset_config [none|trst_only|srst_only|trst_and_srst]
[srst_pulls_trst|trst_pulls_srst|combined|separate]
[srst_gates_jtag|srst_nogate] [trst_push_pull|trst_open_drain]
[srst_push_pull|srst_open_drain]
configure adapter reset behavior (command valid any time)
reset_nag ['enable'|'disable']
Nag after each reset about options that could have been enabled to
improve performance. (command valid any time)
resume [address]
resume target execution from current PC or address
rm file_name
remove a directory or file (command valid any time)
runtest num_cycles
Move to Run-Test/Idle, and issue TCK for num_cycles.
rwp address
remove watchpoint
scan_chain
print current scan chain configuration (command valid any time)
script <file>
filename of OpenOCD script (tcl) to run (command valid any time)
shutdown
shut the server down (command valid any time)
sleep milliseconds ['busy']
Sleep for specified number of milliseconds. "busy" will busy wait
instead (avoid this). (command valid any time)
soft_reset_halt
halt the target and do a soft reset
srst_deasserted
Overridable procedure run when srst deassert is detected. Runs 'reset
init' by default. (command valid any time)
stacktrace
returns the stacktrace as a list of triples: proc, file, line.The
stack trace is reset when a new stack trace is being built after a
new failure has occurred. (command valid any time)
step [address]
step one instruction from current PC or address
svf svf [-tap device.tap] <file> [quiet] [nil] [progress]
Runs a SVF file.
target
configure target (configuration command)
target count
Returns the number of targets as an integer (DEPRECATED) (command
valid any time)
target create name type '-chain-position' name [options ...]
Creates and selects a new target (command valid any time)
target current
Returns the currently selected target (command valid any time)
target init
initialize targets (configuration command)
target names
Returns the names of all targets as a list of strings (command
valid any time)
target number number
Returns the name of the numbered target (DEPRECATED) (command valid
any time)
target smp targetname1 targetname2 ...
gather several target in a smp list (command valid any time)
target types
Returns the available target types as a list of strings (command
valid any time)
target_request
target request command group (command valid any time)
target_request debugmsgs ['enable'|'charmsg'|'disable']
display and/or modify reception of debug messages from target
targets [target]
change current default target (one parameter) or prints table of all
targets (no parameters) (command valid any time)
tcl_port [port_num]
Specify port on which to listen for incoming Tcl syntax. Read help
on 'gdb_port'. (configuration command)
telnet_port [port_num]
Specify port on which to listen for incoming telnet connections.
Read help on 'gdb_port'. (command valid any time)
test_image filename [offset [type]]
tms_sequence ['short'|'long']
Display or change what style TMS sequences to use for JTAG state
transitions: short (default) or long. Only for working around JTAG
bugs. (command valid any time)
trace
trace command group
trace history ['clear'|size]
display trace history, clear history or set size
trace point ['clear'|address]
display trace points, clear list of trace points, or add new
tracepoint at address
transport
Transport command group (command valid any time)
transport init
Initialize this session's transport (command valid any time)
transport list
list all built-in transports (command valid any time)
transport select [transport_name]
Select this session's transport (command valid any time)
trunc file_name
truncate a file to zero length (command valid any time)
usage [command_name]
Show basic command usage; command can be multiple tokens. (command
valid any time)
verify_image filename [offset [type]]
verify_ircapture ['enable'|'disable']
Display or assign flag controlling whether to verify values captured
during Capture-IR. (command valid any time)
verify_jtag ['enable'|'disable']
Display or assign flag controlling whether to verify values captured
during IR and DR scans. (command valid any time)
version
show program version (command valid any time)
virt2phys virtual_address
translate a virtual address into a physical address (command valid
any time)
wait_halt [milliseconds]
wait up to the specified number of milliseconds (default 5) for a
previously requested halt
wait_srst_deassert ms
Wait for an SRST deassert. Useful for cases where you need something
to happen within ms of an srst deassert. Timeout in ms (command
valid any time)
wp [address length [('r'|'w'|'a') value [mask]]]
list (no params) or create watchpoints
xsvf (tapname|'plain') filename ['virt2'] ['quiet']
Runs a XSVF file. If 'virt2' is given, xruntest counts are
interpreted as TCK cycles rather than as microseconds. Without the
'quiet' option, all comments, retries, and mismatches will be
reported.
</file></file></file></pre>
lostmanhttp://www.blogger.com/profile/13588402147515022385noreply@blogger.com0tag:blogger.com,1999:blog-4051553215390325931.post-2661948453214979182012-09-12T01:07:00.001+09:002012-09-15T04:03:11.358+09:00今更Xperia Ice Bean 4.2nをインストールしてみたひさしぶりの記事がまたメモになってしまったっていうね<br />
というわけで手順は以下<br />
もうずっと弄ってなかったんだけどすごく簡単になりましたねぇ<br />
<br />
<a name='more'></a><br />
Kernel<br />
<a href="http://forum.xda-developers.com/showthread.php?t=1680793">[Kernel][Arc/Arc S] Stock ICS Kernel 4.1.B.0.431/587 with CWM 5.5.0.4 - xda-developers</a><br />
<br />
IceBean 4.2n<br />
<a href="http://forum.xda-developers.com/showthread.php?t=1786871">[ROM][ARC/S]Xperia Ice Bean 4.0.4+[JB/ICS][Rel:NXT][xProjectButter][NXT & 4.2.1] - xda-developers</a><br />
<br />
<ol>
<li>TitaniumBackup等でバックアップしておく</li>
<li>端末の電源を落とす、一応バッテリを抜き差ししておく</li>
<li>Menuボタンを押しながらUSBケーブルを接続、青ランプになっていればOK</li>
<li>fastboot devices で端末が表示されるはず</li>
<li>fastboot flash boot boot_LT15_431_cwm_v2.img でカーネルを書き込み</li>
<li>fastboot reboot で再起動</li>
<li>SONYロゴ中にHomeを押してCWMを起動させる</li>
<li>wipe data/factory reset</li>
<li>wipe cache partition</li>
<li>mounts and strage -> format /system</li>
<li>advanced -> Wipe Battery Status</li>
<li>install zip from sdcard -> choose zip from sdcard -> Xperia Ice Bean 4.2n.zip</li>
</ol>
<br />
更にメモ<br />
・<a href="http://forum.xda-developers.com/showthread.php?t=1863036&highlight=ice+bean">[ROM][ARC/S][.587][[ Build: 4.3 ]]Xperia Ice Bean X - xda-developers</a> <br />
・<a href="http://xperiadev.wordpress.com/flashing/xperia-ftf-firmwares/">Firmware & Baseband « Xperia Device</a> <br />
<ol>
</ol>
lostmanhttp://www.blogger.com/profile/13588402147515022385noreply@blogger.com5tag:blogger.com,1999:blog-4051553215390325931.post-54373773779147547362012-02-26T23:53:00.004+09:002012-02-27T01:00:34.067+09:00OpenJTalkを使ってみる・<a href="http://hts-engine.sourceforge.net/">hts_engine API</a><br />・<a href="http://open-jtalk.sourceforge.net/">Open JTalk</a><br />・<a href="http://www.mmdagent.jp/">MMDAgent - Toolkit for Building Voice Interaction Systems</a><br /><br />上記サイトから必要なファイルを取得する<br /><pre><br />$ wget http://downloads.sourceforge.net/hts-engine/hts_engine_API-1.06.tar.gz<br />$ wget http://downloads.sourceforge.net/open-jtalk/open_jtalk-1.05.tar.gz<br />$ wget http://downloads.sourceforge.net/open-jtalk/open_jtalk_dic_utf_8-1.05.tar.gz<br />$ wget http://downloads.sourceforge.net/open-jtalk/hts_voice_nitech_jp_atr503_m001-1.04.tar.gz<br />$ wget http://sourceforge.net/projects/mmdagent/files/MMDAgent_Example/MMDAgent_Example-1.1/MMDAgent_Example-1.1.zip<br /></pre><br /><br />hts_engine APIをビルドしてインストール<br />今回はホームディレクトリの下にインストールするのでprefixを指定する<br /><pre><br />$ tar zxvf hts_engine_API-1.06.tar.gz<br />$ cd hts_engine_API-1.06/<br />$ mkdir $HOME/local/openjtalk<br />$ ./configure --prefix=$HOME/local/openjtalk && make && make install<br />$ cd ..<br /></pre><br /><br />OpenJTalkをビルドしてインストール<br />hts_engine APIと同じ場所にインストールする<br />ホームディレクトリの下にインストールしたので<br />ヘッダとライブラリのパスを指定する<br /><pre><br />$ tar zxvf open_jtalk-1.05.tar.gz<br />$ cd open_jtalk-1.05/<br />$ ./configure --prefix=$HOME/local/openjtalk --with-hts-engine-header-path=$HOME/local/openjtalk/include --with-hts-engine-library-path=$HOME/local/openjtalk/lib --with-charset=UTF-8 && make && make install<br />$ cd ..<br /></pre><br /><br />辞書ファイルを配置する (結局指定するからどこでもいい?)<br /><pre><br />$ mkdir -p ~/local/openjtalk/share/open_jtalk<br />$ tar zxvf open_jtalk_dic_utf_8-1.05.tar.gz<br />$ mv open_jtalk_dic_utf_8-1.05 ~/local/openjtalk/share/open_jtalk/<br /></pre><br /><br />音声ファイルを配置する<br /><pre><br />$ mkdir ~/local/openjtalk/share/hts_voice<br />$ tar zxvf hts_voice_nitech_jp_atr503_m001-1.04.tar.gz<br />$ mv hts_voice_nitech_jp_atr503_m001-1.04 ~/local/openjtalk/share/hts_voice/<br />$ unzip MMDAgent_Example-1.1.zip<br />$ mv MMDAgent_Example-1.1/Voice/mei_normal ~/local/openjtalk/share/hts_voice/<br /></pre><br /><br />…とこれで終わりと思ったんだけどうまく合成してくれなくて困ってるlostmanhttp://www.blogger.com/profile/13588402147515022385noreply@blogger.com0tag:blogger.com,1999:blog-4051553215390325931.post-15304087848866466842012-01-09T00:02:00.005+09:002012-09-15T04:04:31.169+09:00root取得 & ClockworkMod for Xperia arc・<a href="http://forum.xda-developers.com/showthread.php?t=1312859">[HOW-TO] Root Phones w/ Android v2.2.x-2.3.x (zergRush Method) - xda-developers</a><br />
・<a href="http://forum.xda-developers.com/showthread.php?t=1345741">[RECOVERY][14/11/11] 5.0.2.7-nAa-r2 ClockworkMod for Stock Xperia Mini/Pro/Active/Arc - xda-developers</a><br />
<br />
ワンクリックツールとか出てるけどだいたいWindows用だよね<br />
ということで手動でのroot取得とClockworkModの導入をしてみた<br />
対象は4.0.1.C.1.9<br />
<br />
<a name='more'></a><br />
まずroot取得<br />
<br />
・<a href="https://github.com/downloads/revolutionary/zergRush/zergRush.zip">https://github.com/downloads/revolutionary/zergRush/zergRush.zip</a><br />
・<a href="http://androidsu.com/superuser/">http://androidsu.com/superuser/</a><br />
<br />
上記URLからzergRush.zipとSuperuser-3.0.7-efghi-signed.zipをダウンロードしてzipを展開しておく<br />
<br />
<pre>PC: zergRushをAndroidへ転送
$ adb shell mkdir /data/local/tmp
$ adb push zergRush /data/local/tmp
$ adb shell chmod 755 /data/local/tmp/zergRush
$ adb shell
Android: zergRushを実行
$ cd /data/local/tmp/
$ ./zergRush
PC: 勝手にシェルから抜けるのでremountしてsuを転送
$ adb remount
$ adb push su /system/bin
$ adb push su /system/xbin
$ adb shell
Android: suの権限を設定
$ chmod 4755 /system/bin/su
$ chmod 4755 /system/xbin/su
$ exit
PC: Superuserをインストール
$ adb push Superuser.apk /system/app
</pre>
<br />
<br />
次にClockworkModの導入<br />
・<a href="http://minicm.googlecode.com/files/CWM-5.0.2.7-nAa-r2.tar">http://minicm.googlecode.com/files/CWM-5.0.2.7-nAa-r2.tar</a><br />
CWM-5.0.2.7-nAa-r2.tarをダウンロード、展開してツリー通りのディレクトリへコピー<br />
パーミッションを755へ変更する、cpがないので予めBusyBoxを入れておくかddで代用<br />
再起動してSonyEricssonのロゴが表示されているときに画面を何度かタップする<br />
(参考ページにはボリュームダウンを何度か押すと書いてあるが間違い?)<br />
<br />
build.propの編集<br />
ro.camera.sound.forced=1 → 0lostmanhttp://www.blogger.com/profile/13588402147515022385noreply@blogger.com1tag:blogger.com,1999:blog-4051553215390325931.post-52029276068465111352012-01-02T02:50:00.005+09:002012-01-09T00:11:48.105+09:00arcめも新年あけましておめでとうございます<br />一発目からメモですが…、今年もよろしくお願いします<br /><br />という訳で色々なところで既出の内容ですがXperia arcを入手したので<br />しばらくは内容が偏りがちになるかも<br />で、CyanogenModを焼くときは4.0.1.C.1.9のROMから以下を抜き出しておく<br /><br />/system/app/JapaneseIME.apk<br />/system/lib/libemoji_docomo.so<br /><br />/system/build.prop<br /><pre><br />ro.build.fingerprint=docomo/SO-01C_1246-7916/SO-01C:2.3.4/4.0.1.C.1.9/9nv33w:user/release-keys<br />ro.config.libemoji=libemoji_docomo.so<br /></pre>lostmanhttp://www.blogger.com/profile/13588402147515022385noreply@blogger.com0tag:blogger.com,1999:blog-4051553215390325931.post-86317736941447851322011-11-12T18:55:00.002+09:002011-11-12T19:01:39.091+09:00groffの設定を変えてみた・<a href="http://d.hatena.ne.jp/kei10in/20091019/1255980903">groff-1.20 で日本語 man を表示する - @kei10in の日記</a><br /><br /><a href="http://lostman-worlds-end.blogspot.com/2010/08/gentooman.html">まえ</a>に日本語のmanを表示するために面倒なことをしていたけどもう少し簡単な方法があったので変えてみた<br />LANG=ja_JP.utf8、LC_ALL=ja_JP.utf8でないと相変わらず文字化けしますが…<br />変更方法は以下、前はlvを入れていましたが不要になりますね<br /><br />/etc/man.conf<br /><pre><br />JNROFF /usr/bin/groff -DeucJP -Tutf8 -mandocj<br /></pre>lostmanhttp://www.blogger.com/profile/13588402147515022385noreply@blogger.com0tag:blogger.com,1999:blog-4051553215390325931.post-24057039825706427022011-11-04T00:21:00.006+09:002013-01-05T15:31:11.067+09:00NFSv4NFSについて<br />
どうやらGentooではNFSv3のサーバをたてるのは微妙らしい<br />
nfs-utilsにrpc.lockdがないので<a href="http://insnvlovn.blogspot.com/2011/05/nfsflock.html">flockに失敗するから</a><br />
という訳でNFSv4でたててみた<br />
<br />
<a name='more'></a>準備はカーネルでCONFIG_NFSD_V4とかその辺りを有効にして<br />
nfs-utilsをインストールするだけ<br />
<br />
あとは /etc/exports を書く<br />
・<a href="http://www.asahi-net.or.jp/~aa4t-nngk/nfsv4.html#exports">Stray Penguin - Linux Memo (NFSv4)</a><br />
<br />
rootで/をマウントさせたかったので以下を追記<br />
<pre>/ 192.168.1.200(rw,fsid=0,insecure,no_subtree_check,sync,no_root_squash)</pre>
<br />
<strike>/etc/idmapd.conf の以下の行をコメントアウト</strike><br />
<pre>Nobody-User = nobody
Nobody-Group = nobody</pre>
<br />
起動は以下のようにする<br />
<pre># /etc/init.d/nfs start
# exportfs -arv</pre>
<br />
うまく起動できなかったら<br />
/etc/init.d/rpcbind<br />
/etc/init.d/rpc.pipefs<br />
/etc/init.d/rpc.idmapd<br />
が起動しているかを確認、していなかったら起動後に再度NFSを起動<br />
<br />
クライアントからは以下のようにしてマウントできる<br />
rpcbind、rpc.pipefs、rpc.idmapdが必要<br />
<pre># /etc/init.d/rpc.idmapd start ←他も勝手に起動するはず
# mount -t nfs4 192.168.1.18:/ nfs</pre>
<br />
バージョンを指定したいときは-o nfsvers=3を付け加えるlostmanhttp://www.blogger.com/profile/13588402147515022385noreply@blogger.com0tag:blogger.com,1999:blog-4051553215390325931.post-80932803803759451922011-11-03T22:23:00.003+09:002011-11-03T22:50:39.245+09:00myGtkMenuOpenBoxからCompizへ移行したのですがOpenBoxのようなRootMenuを使いたかったので調べてみました<br />シンプルなデスクトップが好きなのでGNOMEを使用せずCompiz単体で使っています<br /><br />基本構成はこれだけ<br />x11-wm/compiz-fusion<br />x11-misc/stalonetray<br /><a href="http://sites.google.com/site/jvinla/mygtkmenu">myGtkMenu</a><br /><br />myGtkMenu以外はemergeですんなり入るし特に問題ないと思われます<br />myGtkMenuはひと手間かかるのでは以下<br /><br /><a name='more'></a><br /><br />とりあえずダウンロードしてmake<br /><pre><br />$ wget http://sites.google.com/site/jvinla/myGtkMenu-1.3.tar.gz<br />$ mkdir mygtkmenu<br />$ cd mygtkmenu<br />$ tar zxvf ../myGtkMenu-1.3.tar.gz<br />$ make<br /></pre><br /><br />myGtkMenuというファイル名でバイナリができるのでそのまま叩くと動くことを確認できる<br />オプションを何も指定しないと同封のTestMenu.txtを読もうとする<br />何かファイルを指定すればそれを設定ファイルとして読み込む<br /><br />Compizから実行するにはとりあえずできたバイナリと設定ファイルをわかりやすい場所にコピーする<br /><pre><br />$ cp myGtkMenu ~/bin<br />$ cp TestMenu.txt ~/.mygtkmenu.conf<br /></pre><br /><br />で、CCSMを起動してmyGtkMrnuを呼び出す設定をする<br />Commands→Commandsを開いて適当なところにコマンドを記述する<br />Command line 0 に myGtkMenu ~/.mygtkmenu.conf と書いた<br /><br />次にKey Bindingsを開いてコマンドを書いた番号と同じ番号にショートカットキーを追加する<br />適当に Shift-Ctrl-Space にした<br />とりあえず押してみてメニューが表示されるか確認する<br /><br />最後にデスクトップを右クリックしたときに上記コマンドを呼び出す設定をする<br />CCSMの初期画面に戻って Viewport Switcher→Desktop-based Viewport Switching を開く<br />ここの Initiate plugin action にトリガーとなるアクション Button3<br />Plugin for initiate action に発動したときに使うプラグイン commands<br />Action name for initiate にプラグインのアクション run_command0_key<br />をそれぞれ設定すれば作業は終了<br /><br />あとは設定ファイルを好みに編集するだけ<br /><br />・<a href="http://makea.hostzi.com/archives/436">Compizを単体で使う | Make a nice day</a>lostmanhttp://www.blogger.com/profile/13588402147515022385noreply@blogger.com0tag:blogger.com,1999:blog-4051553215390325931.post-49801814240436737242011-11-03T15:36:00.003+09:002011-11-03T23:27:11.792+09:00about:configLinuxのFirefoxのabout:configで毎回やる設定を書いておく<br /><br />キャッシュのディレクトリを変更<br />browser.cache.disk.parent_directory;/tmp/firefox<br /><br />マウスの中クリックでページ遷移しない<br />middlemouse.contentLoadURL;false<br /><br />ロケーションバーをクリックしたときに全選択する<br />browser.urlbar.clickSelectsAll;true<br /><br />検索バーも全選択するようにしたい時は上記設定後一度削除して追加lostmanhttp://www.blogger.com/profile/13588402147515022385noreply@blogger.com0tag:blogger.com,1999:blog-4051553215390325931.post-10097443028248398412011-10-01T00:51:00.003+09:002011-10-01T02:15:31.990+09:00QTのアプリをGTKの見た目で使うqtconfigで設定すればいいみたいなんだけどどこに入ってるかわからないので調べてみた<br /><br /><pre><br /># emerge app-portage/pfl<br />$ e-file qtconfig<br /></pre><br /><br />とするとx11-libs/qt-guiやらx11-libs/qt-coreやらインストール済みのパッケージが<br />出てきたのでどうやらUSE flagが足りないらしい<br />ぐぐってみると<a href="http://www.mail-archive.com/gentoo-user@lists.gentoo.org/msg49791.html">qt3supportが必要</a>らしいので/etc/make.confに追加<br />あとQTでGTKのテーマを使うにはqgtkstyleというのが必要みたいなんだけど<br />インストールしようとしたらqt-guiに含まれていると言われたので確認<br />gtkstyleというそれっぽいものを見つけたのでこれも追加しておく<br />以上の設定をしたらemerge -N worldをするとリビルドと必要なものが入るはず<br /><br /><pre><br />$ qtconfig<br /></pre><br /><br />で設定画面を出してGUIスタイルでGTK+を選択すればmozcの設定画面もGTKのテーマが使用される<br />ちなみにSkypeもこの方法で大丈夫だろうと思ったんだけど<br />64bit環境でapp-emulation/emul-linux-x86-qtlibsを使用して動かしているのが原因でダメらしい<br />これをqtconfig等必要なものを含む形でリビルドすればいいのかなlostmanhttp://www.blogger.com/profile/13588402147515022385noreply@blogger.com0tag:blogger.com,1999:blog-4051553215390325931.post-2494961737893923592011-09-30T22:38:00.008+09:002011-10-15T16:49:18.259+09:001TBプラッタを買ってきた<a href="http://www.hitachigst.com/portal/site/jp/products/deskstar/7K1000.D/">Deskstar 7K1000.D</a>の1TBx1プラッタのHDS721010DLE630です<br />秋葉原の<a href="http://www.ark-pc.co.jp/item/HDS721010DLE630/code/13110098">arkで4980円</a>でした<br />2つ購入して0で埋めてる最中なんですがプラッタ5枚と比べると異常に静かですね<br />フル稼働しててもガリガリ言わないから動いてるのか不安になるレベル<br />ファンがあたってない場所に置いていても39Cだから安心できそう、起動時は30C<br />書きはじめの外周部分は205MB/s出ていますね<br />内周の方にいくに従って速度は落ちていき、最終的には147MB/sくらい<br />2時間ほどで全て0で埋めることができました<br /><br /><a name='more'></a><br /><pre><br /># hdparm -itT /dev/sdb<br /><br />/dev/sdb:<br /><br /> Model=Hitachi HDS721010DLE630, FwRev=MS2OA5N0, SerialNo=xxxxxxxxxxxxxx<br /> Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }<br /> RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=56<br /> BuffType=DualPortCache, BuffSize=25956kB, MaxMultSect=16, MultSect=16<br /> CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=1953525168<br /> IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}<br /> PIO modes: pio0 pio1 pio2 pio3 pio4 <br /> DMA modes: mdma0 mdma1 mdma2 <br /> UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6 <br /> AdvancedPM=yes: disabled (255) WriteCache=enabled<br /> Drive conforms to: unknown: ATA/ATAPI-2,3,4,5,6,7<br /><br /> * signifies the current active mode<br /><br /> Timing cached reads: 6448 MB in 2.00 seconds = 3225.42 MB/sec<br /> Timing buffered disk reads: 506 MB in 3.00 seconds = 168.47 MB/sec<br /></pre><br /><br /><pre><br /># fdisk -l /dev/sdb<br /><br />Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes<br />255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors<br />Units = sectors of 1 * 512 = 512 bytes<br />Sector size (logical/physical): 512 bytes / 4096 bytes<br />I/O size (minimum/optimal): 4096 bytes / 4096 bytes<br />Disk identifier: 0x00000000<br /><br />Disk /dev/sdb doesn't contain a valid partition table<br /></pre><br /><br />ちなみにFoxconn製だった<br />RAID1を組むために2台買ったんだけどこれならマシンの方も置き換えたいなぁlostmanhttp://www.blogger.com/profile/13588402147515022385noreply@blogger.com0tag:blogger.com,1999:blog-4051553215390325931.post-35241880324768799642011-09-30T01:59:00.003+09:002011-09-30T02:10:03.650+09:00mozc_toolはQTで書かれているみたいibus-mozcに変えてみたんだけど設定がない、、<br />スペースが全角だったりとかで非常に使いづらい状態でした<br />なんで設定ないんだろうと思ったら<br /><br />/usr/lib/mozc/mozc_tool -mode=config_dialog<br /><br />で設定画面を出せるみたいだけどそんなファイルないし、、<br />ぐぐってみたらUSEにqt4が必要だそう、QTで書かれているんですね<br /><br />・<a href="http://mylinux.blog42.fc2.com/blog-entry-559.html">個人的Linux: Gentoo: mozc_tool は、要qt4</a><br /><br />というわけでqt4を追加してibusを再起動したら<br />トレイアイコンの左クリックにメニューが追加されてそこから開けるようになりました<br />ただ設定画面を開いてみたらWindows風のテーマが適用されているみたい<br />QTにGTKのテーマを使わせるのはどうやるんだろう、、<br />Gnomeとかだと空気読んで何とかしてくれるのかもしれないけどOpenboxだしlostmanhttp://www.blogger.com/profile/13588402147515022385noreply@blogger.com0tag:blogger.com,1999:blog-4051553215390325931.post-29930272097019424592011-09-26T01:49:00.006+09:002011-09-30T01:58:45.242+09:00SyntaxHighlighterをウィジェットにいつのまにかBloggerのテンプレートも若干スマートフォン対応していたので使ってみた<br /><br />設定→メールとモバイル→モバイル テンプレート<br />ここで、はいを選択すると有効にできる<br /><br />ドロップダウンでデフォルトを選択していると<br />デザインのテンプレートデザイナーで選択しているテンプレートのモバイル用が使われて<br />テンプレートデザイナーで編集した設定も一部使えるんだけど<br />いつものノリでHTMLを直接編集すると何故かモバイル用には使われなくなってしまう模様<br />今まではHEADタグの中に書き加えていたんだけどうまくできなくなってしまった<br /><br />PC用で変更を加えたテンプレートをモバイル用でも使いたい場合は<br />HTMLの編集はしてはいけないみたい<br />なのでウィジェットから<a hrefhttp://alexgorbatchev.com/SyntaxHighlighter/>SyntaxHighlighter</a>を使えるようにしてみました<br />というのが以下のスクリプト<br />JavaScriptはよくわからないから適当にぐぐって書いてみただけなので<br />もっと良い書き方があるかもしれないけど、、<br /><br />ガジェットの追加→HTML/JavaScript に貼り付けると使えるようになります<br />使い方は<a href=http://lostman-worlds-end.blogspot.com/2010/06/syntaxhighlighter.html>まえ</a>と同じ<br />ちなみにモバイル用にはウィジェットが表示されないのでハイライトはされない<br /><br /><a name='more'></a><br /><pre class="brush:js"><br /><script type="text/javascript"><br /><br />function loadCss(href) {<br /> var head = document.getElementsByTagName('head')[0];<br /> var link = document.createElement('link');<br /> link.rel = 'stylesheet';<br /> link.type = 'text/css';<br /> link.href = href;<br /><br /> head.appendChild(link);<br />}<br /><br />function loadScript(src) {<br /> var script = document.createElement('script');<br /> script.type = 'text/javascript';<br /> script.src = src;<br /><br /> document.body.appendChild(script);<br />}<br /><br />loadCss('http://alexgorbatchev.com/pub/sh/current/styles/shCore.css');<br />loadCss('http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css');<br /><br />loadScript('http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js');<br />loadScript('http://alexgorbatchev.com/pub/sh/current/scripts/shBrushBash.js');<br />loadScript('http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCpp.js');<br />loadScript('http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCss.js');<br />loadScript('http://alexgorbatchev.com/pub/sh/current/scripts/shBrushDiff.js');<br />loadScript('http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJScript.js');<br />loadScript('http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJava.js');<br />loadScript('http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPerl.js');<br />loadScript('http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPhp.js');<br />loadScript('http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPlain.js');<br />loadScript('http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPython.js');<br />loadScript('http://alexgorbatchev.com/pub/sh/current/scripts/shBrushSql.js');<br />loadScript('http://alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js');<br /><br /></script><br /><br /><script type="text/javascript"><br /><br />var interval = setInterval(function() {<br /> if (SyntaxHighlighter == null) return;<br /><br /> clearInterval(interval);<br /> interval = null;<br /><br /> SyntaxHighlighter.config.bloggerMode = true;<br /> SyntaxHighlighter.all();<br />}, 1000);<br /><br /></script><br /></pre>lostmanhttp://www.blogger.com/profile/13588402147515022385noreply@blogger.com0