「sheevaplug」カテゴリーアーカイブ

sheevaplug電源交換

三つ注文していたsheevaplugの交換用電源が届いたので交換した。
もとから入っていたのと似ても似つかぬ形の電源が入ってきていた。
plugforumからのリンクで知ったこれ (www.newit.co.ukへのリンク)を参考にしてなんとかつけた。
ちなみに、我が家に届いたのは、このpdfと形は似ているが、右と左の線が反対で、シリコンシートを筐体側でなくて、黒いプラスチック側につけないと結線できなかった。ちょっと説明不足なかんじ。

だいぶ久しぶりにガワをかぶせて製品として完成した感じ。

これを機にSDカードに入ってるOSをバックアップ。
まぁどうせだからということで外付けHDDにもrsyncするcronを登録しておく。
で、復元を試そうと思って rsync -av –delete hogehoge hugahuga したら、、、、
マウントしていた外付けハードディスクのデータを派手に消し始めてしまいました。。。。

現在extundeleteとphotorecで復旧中、だがもう駄目そうなファイルがいくつかあるなぁ、、、。

sheevaplug に php webcalendarを入れる

結局xoops+picalはインストールと管理が面倒な上にまともに動かないのであきらめ。

php webcalendarというのがあるらしいというので試してみた。

インストールは割りと簡単。installスクリプトをwebブラウザから立ち上げてぽちぽちやるだけ。

で、インストール後は設定項目もそんなに多くないし、使うまでは楽。

どっかで日付計算にエラーがあるか、月か週を返す関数が怪しいらしく、エラーを吐いているが、

それ以外は割りと問題なさげ。ユーザには必ずパスワードをふらないといけないのと、公開ユーザが記事を削除できないのがちょっと残念。

まぁ、わりと使える感じかなぁ。

#え?googleカレンダーとかyahooカレンダー? LAN内で使えれば十分なものをどうして外に頼る必要がある?

#まぁ、やりたいだけです。はい。

続きの記事はこちら

sheevaplugにxoopsを入れる。その2

https://ttandai.info/archives/741
からの続き。

xoopsインストール前に
文字エンコードエクステンション他を有効化するのにパッケージを導入。
# yum install php-mbstring php-gd
で、再起動後にxoopsのインストーラを立ち上げる。
(http://ホスト名/xoops/install)

で、protectorの文字化けが変だなぁ、と思っていたけど、それは
xoops_lib/modules/protector/language/japanese
がEUC-JPで書かれているせいっぽい。なんだ、それだけか。
# cd xoops_lib/modules/protector/language
# mv japanese euc_jp
# mv ja_utf8 japanese

な感じでOKかと。

class/mail/phpmailer/language/phpmailer.lang-ja.php
もEUCな感じなのでnkfしておいた。

やっぱりなにかうまくいかない。
よく見たら2010年の毎月1日は火曜日になってるし、予定の追加でhttpdのエラーログに大量にsegmentationfault(11)を吐いて落ちる。ぐぐっても情報ないし、PHPって触ったことない上結構いろんなファイルにソースが散らばってるから読むのが大変。うーむ。xoopsのバージョンが合わないのか、sheevaのphpが悪いのか,,,。

2010年の毎月1日は火曜日、2011年の毎月1日は水曜日になってたので、ひょっとしてPHPの読み込みのところでパースエラーとかが起こっているのかも。

===
どうもこの辺はモジュールがPHP5.3に対応していないのが問題らしい。5.2.xを手でビルドしないといけないのか、、、、。

sheevaplugにpukiwikiとxoopsをつっこむ

pukiwikiは、公式サイトで配布されているtar.gzを持ってきて伸長、 /etc/httpd/conf.d/pukiwiki.conf に以下のように書く。
起動前に
# yum install php httpd
も忘れずに。

Alias /pukiwiki /mnt/disk/pukiwiki
<directory "pukiwiki">
    Order deny,allow
    deny from All
    allow from 192.168.0.
    AllowOverride All #適宜設定
    Options All #適宜設定
</directory>

これで
http://(sheevaplugのホスト名とかipとか)/pukiwiki
を叩けばpukiwikiが使える。細かい設定は検索すればナンボでも出てくるので割愛。
pukiwiki自体は外付けハードディスクの中においてるが、LAN内からつなぐ分にはストレスがない。
(まぁ、公開するつもりはないわけですが。)

ちょっと日記に使う感じにはいいかな。まぁ、想定していた使い道にはちょっと不足かもしれないと思ったので、xoopsを入れてみることにする。

xoopsも、そんなに難しくない感じ。
# yum install php-mysql mysql-server zip unzip
と準備してから
公式サイトからたどって、日本語版のzipファイルを持ってきて、zipファイルを伸長する。
ちょっとハマッタが、httpd.confに書いてあるDocumentRootからxoops/htdocsが見えないとはまるらしい。
あまり/var/以下にモノを書きたくない(OSが入っているSDカードには頻繁には書きたくないから、なるべく外付けHDDに書く。)から、/var/www/htmlの中に外付けHDDへのシンボリックリンクを作っておく(シンボリックリンクに従うかどうかもhttpd.confの中に設定あり)。
で、
# /etc/init.d/mysqld start

chkconfig --level 345 mysqld on

とかしておく。
# mysqladmin -u root password "hogehuga"
してパスワードを設定
# mysql -u root -p
mysql> status

すると、文字コードがlatin1になっていたので、/etc/my.cnfに以下のように追加して文字コードを変更。

[client]
default-character-set=utf8
[mysqld]
default-character-set = utf8
skip-character-set-client-handshakecharacter-set-server = utf8
collation-server = utf8_general_ci
init-connect = SET NAMES utf8

http://ext.omo3.com/linux/mysql_character_set.html
http://ext.omo3.com/linux/mysql5_install.htmlを参考にした。詳しくはそちらをどうぞ。

xoops向けのデータベース作成などは
http://itnavi.com/FedoraXoops/
http://fedorasrv.com/mysql.shtml
を見た。
まぁ、mysqldを最初に立ち上げるときに教えてくれるように、

mysql_secure_installation を実行して適当に従う感じ。

ソケットをデフォルトから変えていたのでハマッタが、デフォルトの場所にシンボリックリンクを作成しておけばOK

ここらで
http://fedorasrv.com/xoops.shtml
にしたがってxoops用のデータベースを作成。
ブラウザから
http://[hostname]/xoops
とかやって見に行くと、インストールが始まるので指示に従う。

あとはぽちぽち押していったら構築完了。
うーん。これはこれでオーバースペックかな。とりあえず入れたいpiCalでも入れるかな。

とりあえずインストール後にはinstallフォルダを削除する。
設定内容はmainfile.phpをいじればOKなのかしら?

ぬ。protectorがEUCのままだから文字化けする。ふーむむ。
続きます。

sheevaplug にwikiを突っ込む

とりあえずyumで突っ込めるperl-Kwikiを入れる。
(mediawikiはfedora-armのyumでは入らない。mediawiki-*はいっぱいあるのに、、、、)

# yum install httpd perl-Kwiki*

して、

https://fedoraproject.org/wiki/Perl/perl-Kwiki

にしたがってやってみる。。。。。。。???

あんまりうまくいかない。

とりあえず

# yum install perl-CPAN
 
して、インストール後に
> kwiki -new mykwiki
> cd mykwiki
> kwiki -install Kwiki::RecentChanges Kwiki::Archive::Rcs Kwiki::Revisions
> kwiki -update
こんなことして、httpd.confとかの設定をしたらとりあえずは動いているけど、、、。
http://search.cpan.org/~ingy/Kwiki-0.39/lib/Kwiki/Command.pm 参照
うーん、いまいちできることが少なそうだし、kwiki -installも、yumで持ってきたやつしかインストールしてくれないみたい。まぁ、誰もfedora-armで似たようなことしてないってことか。

というわけでこれはあきらめ。

やっぱりpukiwikiでも突っ込むかなぁ。

sheevaplugのanacronが起動しない?など

sheevaplugで
/var/log/message
とかのログファイルがだいぶ大きくなってきており、ちゃんとrotateしているのかなぁ、とかちょっと気になった。ちなみに、logrotateはcron.dailyに入っている様子だが、/var/log/cronを見る限り起動していない。

crontab、cron.dの中にはないなぁ、と思っていたら,
fedoraでは
/etc/cron.d/0hourly で/etc/cron.hourly/0anacron を呼んで、その中で毎度anacronを呼んでいる様子。でもって、そのanacronでcron.dailyを呼んでいるっぽい。
fedora13のPCと違う点は、
0hourlyで標準出力を/dev/nullに捨てている点。
これをとりあえず消してみたら動いている模様。
まぁ、よくわからないがそんなもんなんだろうか。

ついでに1時間に一回も書いてくれるcronのログを止めた。
/etc/rsyslog.conf の cron の行をコメント→ /etc/init.d/rsyslog restart

ーー
ログがらみでついでに。
/var/log/cups/error.logにACLが何とかいう大量のログが流れていたのでfstabを編集、/ をdefaults、aclにした。
が、解決しないので、しばらく要調査。

sheevaplug経由で複合機のスキャナを使う@windows

CUPSでSheevaplugをプリンタサーバにしたはいいものの、せっかくの複合機なのにそのままではスキャナが全く使えないということが判明。言われてみりゃ当たり前だ。

というわけで、使えるようにする。Linuxでスキャナ使うにはsaneというのを使うらしい。http://another.maple4ever.net/archives/1221/
Fedora12化したsheevaでもyumしたら簡単にはいった。

# yum install sane xinetd

次に、man saneのしたの方に書いてある。
# default: off
# description: The sane server accepts requests
# for network access to a local scanner via the
# network.
service sane-port
{
port = 6566
socket_type = stream
wait = no
user = saned
group = saned
server = /usr/sbin/saned
}
を /etc/xinetd.d/saned に記述する。(ユーザはrootにする?)
んで、iptablesで6566ポートを開く。

次に、/etc/saned.d/saned.confを編集
nf_conntrack_saneを有効化するのがオススメと書いてあるが、面倒なので、data_portrangeをコメント解除。
下の方でいろいろ書いてあるクライアントのアドレスに 192.168.0.0/24 とか書いておく。
で、iptablesで、指定した範囲のアドレスを開いておく。

ウィンドウズのクライアントはsanetwainを利用。
http://sanetwain.ozuzo.net/

ダウンロードしたら、とりあえず起動して、ホスト名とsheeva側のユーザ名を記入。
次に、SaneTwain.dsを C:\windows\Twain_32にコピー(winxp,32bit環境です。)
C:\Document and settings\[自分のフォルダ]\sanetwain.iniをC:\windowsに移動

これでウィンドウズ側のアプリケーションからスキャナを起動できるようになりました。
ただ、スキャナからデータをプッシュするのはできない。(要は、スキャナのボタン操作で取り込みできない)
けど、まぁいいか。

sheevaplug電源の外部化

現在はGlobalScaleでSheevaPlug用の交換電源が売られています。

http://www.globalscaletechnologies.com/p-36-sheevaplug-power-supply.aspx(2010年7月24日で$9.95+送料$38.21でした。三つ注文しました。)

電源が壊れてお困りの方は買うのをおすすめしますが、以下の記事はまぁ、ご参考ということで。

===============

電源が死んでしまったsheevaplugの電源を外付けにしようと、いろいろ工作しました。

ほとんどplugforumで見たネタだけど、ポイントは以下のとおり。

1.電源は日本圧着端子のxhコネクタの4pinで入れる。
2.http://www.globalscaletechnologies.com/t-sheevaplugdetails.aspx#physicalをみるとわかるように、電源は5V、3Aのものを用意できればよさそう。
3.Sheeva-PowerPlug-V1.3-GTI-090906 (Wayback Machine 経由)のpdfを見ると、2本が5Vで2本がGRDになっとる。まぁそういうつなぎ方をせいということらしい。

で、用意したもの。

とりあえずはきっちり5V出せそうな、その辺に転がってたUSBハブの電源を用意。
基板につなぐコネクタは、
http://www.tdk-lambda.co.jp/products/sps/option/harness/indexj.html#ha2ou
これを秋葉原の千石電商で見つけたので2本購入。
で最後に、ACアダプタにつなぐジャックを購入しました。


テスタが手元になかったので、目に付いた中で一番安かったものを購入。

極性を間違えないようにいちいちテスタで確かめながらとりあえずつないでみる。


とりあえず動きました。

しばらく様子を見てから、GLOBALSCALEが用意するかもしれない交換電源をつかうか、この方向性で行くかを決めよう。

っていうか、まぁこの手の記事では枕詞ともいえるようなセリフだけど、自分で責任を取れる人以外は真似しないでください。

sheevaplug電源問題

http://web.archive.org/web/20100616193819/http://plugcomputer.org/plugforum/index.php?topic=1318.msg9502#msg9502

$10+送料手数料で、電源交換に応じてくれるとのこと。
送料高すぎだよなぁ、、、、。

次の土曜あたりに電源の線とACアダプターのコネクタを買って、電源外付け化しようと思っていたけど、これは待ちなのか、、、、。

==

その後のフォーラムへの書き込みでは、別に送り返さなくても電源を用意してくれるようだ!すばらしい!
まぁそれでも、熱とかの対策のために電源外付け化するのはありだと思っているんだけれども。どうしようかなぁ。

==
その後、GlobalScaleが電源を売り始めました。
http://www.globalscaletechnologies.com/p-36-sheevaplug-power-supply.aspx
このあたりをご参考に。

sheevaplugが死にまして。

GlobalScaleが交換用電源を売っています。

http://www.globalscaletechnologies.com/p-36-sheevaplug-power-supply.aspx

電源を交換してみた記事はこちら。

https://ttandai.info/archives/724
===========

sambaとcupsを動かし、cronで微妙なアクセスログ収集なぞやっていたsheevaplugが昨晩死にました。

ぐぐれば色々画像があるけれども、自分のも本当にそうなっているか確かめるためにとりあえずガワをあけてみる。

ゴム足をはずしてネジをはずす。わりとネジがきついのでペンチで叩いたり、、、

あけてみた。まだ異常はない?

と思いきやコンセントの口のプラスチックがかけていました。つくりが雑なのかな。

予想通り電源部分が死亡。

コンデンサの液漏れです。

予想できたのは

http://plugcomputer.org/plugforum/index.php?topic=1318.0 (Wayback machine 経由)

http://momo-shin.cocolog-nifty.com/blog/2010/02/sheevaplug-ff7a.html

でも同じ原因でsheevaplugが死んだ様がのっていたからですが。。。。

というか、forumでコンデンサが駄目になって死んだって人がだいぶいるから、駄目なロットをひいたってことなんだろうか。保証期間30日はとっくに過ぎてるし、値段相応の”development kit”ということであきらめることにする。

赤で囲んだのが電源の口。

5V2A入れれば動くようだ。フォーラムではUSBハブの電源アダプタの線からコネクタにつないで起動させている人もいる。

(太陽電池とバッテリで動かしている人もいるようで。http://plugcomputer.org/plugforum/index.php?topic=260.0 (Wayback Machine 経由))

左の黄色で囲んだのがesataで、コネクタを半田付けしてkernelを最新のやつにすれば使えるそうだ。http://shirata.ddo.jp/papa/blog/2010/02/sheevaplugesata-1.html(リンク切れ)

右下の青で囲んだやつはjtagのやつだとかなんとかforumに書いてあった。

まぁ、死んだものは仕方ないが、電源がこの調子だと、代替機としてguruplugを買うのはなしかな。とりあえずは電源の口に5V供給する方法を何とか考えるために、明日あたりちょっと探してみることにする。
#どうでもいいが、今回gooblogの画像関連が新しくなって始めて使ったが、お絵かきツールとか、アップロード関連とか、以前使ったときよりすごく使い勝手がよくなってびっくりした。

##まぁ、アドバンス会員だからといってこのあたりで特にいいことはなさそうな気がしたが、、、。1TBも画像おかないしねぇ、、、。
—–

代替機になりそうなものを探しています。

http://shop.epson.jp/n090603-1/とか

http://www.mouse-jp.co.jp/desktop/lmmini/とか

がとりあえず今の用途には使える気がしているけど、ディスプレイがないんだよなぁ、、、。

gooblogのアクセス解析ログを自動収集

せっかく使えるsheevaで、24時間稼動しているlinuxサーバの割りにこれまでsambaとcupsしか使っていなかったが、cronを回してgooblogのアクセス解析のログを自動で取得するようにした。

とりあえずテストということで、ログが保存されている11月1日分から昨日分までとってくる。
1ファイル1日分というのが微妙に使いにくい。毎日一回クリックする気がおきないから、1週間分くらいにまとめてファイルを出して欲しいところ。まぁ、面倒だからこそcronで回すんだけど。

結局ログのファイルを落として適当に整形したりまとめて、一ヶ月単位くらいでファイルにまとめるのが使いやすいか。

以下が作業メモ

まずは
$ w3m http://blog.goo.ne.jp/admin
で、ログイン状態を保持する、にチェックを入れてログイン。
次に、w3mを起動中に o をおして設定画面
随分下のほうの、「文書の標準の文字コード」をJapanese (Shift_JIS, CP932)に変更
ログの取得は
$ w3m “http://blog.goo.ne.jp/admin/showanalyze/8b?type=csv&mode=pv&date=20100210″ -dump >hogehoge
など
これを組み合わせたシェルスクリプトを組んでcronで回そうというのが今回のお話でした。
スクリプトとかコマンドとかを綺麗に書くのはどうするんだったかなぁ、、、。

sheevaplug作業メモ4

ひきつづきサーバの構築中。

http://honana.com/system/iptables.html
ここを参考にしてiptablesの設定。
/etc/init.d/iptables saveしてからrestartするのを忘れずに。
シェルスクリプトの改行コードを変えないとシェルスクリプトが走らなかった。
適当に編集して、sshdとかsambaとかcupsとかを開けておく。

sambaのログがなんか変だなぁ、ということで、いろいろ変更。
smb.confに
socket address = hogehoge
を追加しないとうるさく言われる。

udpの631ポート、192.168.0.255まで届かない旨のログがdmesg|tailしたときに出まくる。→iptablesで設定し直し。
cupsってtcpじゃなかったっけ?まぁ両方書いておく。

/var/log/eximの下にログがのこる。rootにメールを送ろうとするとエラーになるらしい。
/etc/aliasesにrootあてのメールのエイリアスを設定。

うーん。まだルータを越えたsshはだめだぞ。。。
まぁ、こんなもんだろうということで、そろそろSDカードのバックアップをとりたいんだけども、、、。
まぁいいや。

今のSDカードは16GB
そのまま使わないのはもったいないので何かしら使ってやろうと思う。まぁとりあえずは/homeのあたりを適当に10GBくらいきるのだろうか。
で、とりあえずシステムは4GBのSDカードにも収まるようにきって,残りをざっくりhomeに当てた。
バックアップ用に16GBのSDカードを買ったが、もっと小さいやつでも良かったなぁ、、、。

sheevaplug作業メモ3

帰還。

とりあえず作業メモ1に追記。ファイアウォールの設定を変更。

さて、本体に入れておくにはfedora11はダメだと判断してubuntu9.0.5を入れる。
(plugcomputer.orgからダウンロードしたやつ)
この辺を参考に設定変更など。
http://biokids.org/?%A4%C9%A4%D6%A4%AA%2FSheevaPlug%A4%C7%CD%B7%A4%DC%A4%A6%A1%AA
http://mizupc8.bio.mie-u.ac.jp/pukiwiki/index.php?SheevaPlug%2FNAND_Flash
カーネルモジュールのビルドは上の方のリンク。
modules.depにモジュール名を追加するにはdepmod -a とかする。

/etc/default/ntpdate
に適当なntpサーバを入れてntpdate
apt-get update
apt-get upgrade
した。
次はSDカードに適当なディストロを突っ込むことにする。
ちなみに、plugcomputer.orgから拾ってきたubuntu9.0.5は、/var/cache/apt/archives/partial
を掘らないとapt-getがつかえないようなので、rc.localにそのように書いておく。

やっぱりredhatじゃないとだめだよね、ということでfedora12を試すことにする。
http://fedoraproject.org/wiki/Architectures/ARM
からfedora12のprebuilt root file systemというのをもってきて、bootする前にその中のetcに入って
http://honana.com/fedora/10/setup.html
にしたがって設定変更。

んでもって試しにfedora12にnfsでboot。
よさげな感じなのでSDカードに入れることにする。

母艦で適当にfdisk、mkfsして、
http://notepad4yu.wordpress.com/2009/05/13/sd-%E3%82%AB%E3%83%BC%E3%83%89%E3%81%8B%E3%82%89-sheevaplug-%E3%82%92%E8%B5%B7%E5%8B%95%E3%81%99%E3%82%8B/
を参考にしてubootを設定。
ん?/etc/fstabでswapがなんとかと怒られる。
fstabを編集し忘れた。
適当に編集して(母艦のやつをコピーして編集して、、、)再起動。動いた。めでたしめでたし。

userを足したりいろいろ遊ぶ。とりあえずは
http://fedorasrv.com/fedora12-init.shtml
http://honana.com/fedora/10/setup.html
http://tmcosmos.org/linux/fedora/10/
なんかを参考にしていじることにする。

http://fedorasrv.com/
ここを参考にしてとりあえずntpサーバを設定。
タイムゾーンの変更は
http://d.hatena.ne.jp/rx7/20080425/p2
を参考にして
# cp /usr/share/zoneinfo/Japan /etc/localtime
な感じ。

sshが、どうもルータの向こうからアクセスできないみたいだ、、、。
cupsもうまくいかないなぁー。

とりあえずcupsは
http://honana.com/system/cups.html
を参考にやってみているけれども、、、、ふむむ。
fedora12の設定ファイルは/etc/cups以下になっている。はてさて

上手くいかないのはどうも/dev/usb/lp0ができていないからのようで、これをちゃんと作ってもらうにはカーネルモジュールを用意する必要があった。カーネルモジュールはnandにつっこんだubuntuでは作業したけどfedoraではやってなかったんだった。
$ lsmod
したときに全くひとつもモジュールが見えない。
nandでやると、ipv6,usblpなどがはいっているようにみえる。
面倒くさいから、どうせ同じカーネルだ、とえいやっとscpで母艦を経由して
/lib/modules/以下をまるっとコピー。
まぁなにやらうまくいきそうなのでOK。
あとは上のほうのURLに従って作業。簡単簡単。

cmpがない!!
# yum install diffutils
でOK

次はsambaサーバの設定
設定は/etc/samba/smb.conf
http://honana.com/samba/setting.html
http://fedorasrv.com/samba.shtml
まぁまたここを参考にしてやってみる。
設定は参考にして、ゲストは別に入れなくてもよい。
まぁほとんど[global]はデフォルトのまま。
起動ごとにusbでつないだハードディスクの/dev/以下の名前が必ずしも一致しないので、
/dev/disk/by-uuid/以下の対応するものを/etc/fstabに書いておく
(たとえば、/dev/sda1なんかにシンボリックリンクがはってあるやつ。)
で、結局fstabのハードディスクの行はこんな感じ
UUID=<UUID> /mnt/disk vfat defaults,uid=99,gid=99,rw,iocharset=utf8,codepage=932,umask=000 0 0
ちなみにuidとgidの99は、nobodyになっている。

windowsのほうのzonealarmの設定を変えないとsambaのディレクトリにアクセスできなかったので要注意。日本語ファイル名を扱うのに
http://biokids.org/?%A4%C9%A4%D6%A4%AA%2FSheevaPlug%A4%C7%CD%B7%A4%DC%A4%A6%A1%AA
ここを参考にしてモジュールをビルド。

sheevaplug作業メモ2

参考にしたのはググれば出てくる範囲だが,kernelのインストールに関しては
http://lglinux.blogspot.com/2009/09/recovering-bad-sheevaplug-kernel-flash.html
ちなみにkernelは
http://sheeva.with-linux.com/sheeva/
ここから最新版をとって入れる(どうでもいいが、ペンギンが動く!)
ubootのバイナリは
http://plugcomputer.org/plugforum/index.php?board=4.0
ここの3.4.25のなかの3ページ目?あたりにバイナリファイルをゲット
ubootのインストールは
http://www.saigyo.org/hiki/?Update+U-Boot+by+SheevaPlug+oneself
http://mizupc8.bio.mie-u.ac.jp/pukiwiki/index.php?SheevaPlug%2FU-Boot
ここにあるとおりにできた。

さて、記事の続き。
変更前後の設定はこんなかんじ。

__ __ _ _
| / | __ _ _ ____ _____| | |
| |/| |/ _` | ‘__ / / _ | |
| | | | (_| | | V / __/ | |
|_| |_|__,_|_| _/ ___|_|_|
_ _ ____ _
| | | | | __ ) ___ ___ | |_
| | | |___| _ / _ / _ | __|
| |_| |___| |_) | (_) | (_) | |_
___/ |____/ ___/ ___/ __|
** MARVELL BOARD: SHEEVA PLUG LE

U-Boot 1.1.4 (Dec 27 2009 – 22:03:21) Marvell version: 3.4.27

U-Boot code: 00600000 -> 0067FFF0 BSS: -> 006CFEE0

Soc: 88F6281 A0 (DDR2)
CPU running @ 1200Mhz L2 running @ 400Mhz
SysClock = 400Mhz , TClock = 200Mhz

DRAM CAS Latency = 5 tRP = 5 tRAS = 18 tRCD=6
DRAM CS[0] base 0x00000000 size 256MB
DRAM CS[1] base 0x10000000 size 256MB
DRAM Total size 512MB 16bit width
Addresses 8M – 0M are saved for the U-Boot usage.
Mem malloc Initialization (8M – 7M): Done
NAND:512 MB
Flash: 0 kB

CPU : Marvell Feroceon (Rev 1)

Streaming disabled
Write allocate disabled

USB 0: host mode
PEX 0: interface detected no Link.
Net: egiga0 [PRIME]
Hit any key to stop autoboot: 0
Marvell>> printenv
baudrate=115200
loads_echo=0
netmask=255.255.255.0
run_diag=yes
CASset=min
MALLOC_len=1
ethprime=egiga0
bootargs_root=root=/dev/nfs rw
image_name=uImage
bootcmd=tftpboot 0x2000000 $(image_name); setenv bootargs $(console) $(bootargs_root) nfsroot=$(serverip):$(rootpath) ip=$(ipaddr):$(serverip)$(bootargs_end) $(mvNetConfig) $(mvPhoneConfig); bootm 0x2000000;
standalone=fsload 0x2000000 $(image_name);setenv bootargs $(console) root=/dev/mtdblock0 rw ip=$(ipaddr):$(serverip)$(bootargs_end) $(mvPhoneConfig); bootm 0x2000000;
ethmtu=1500
mvPhoneConfig=mv_phone_config=dev0:fxs,dev1:fxs
mvNetConfig=mv_net_config=(00:11:88:0f:62:81,0:1:2:3),mtu=1500
usb0Mode=host
yuk_ethaddr=00:00:00:EE:51:81
nandEcc=1bit
netretry=no
rcvrip=169.254.100.100
loadaddr=0x02000000
autoload=no
ethact=egiga0
ethaddr=00:50:43:??:??:??
ipaddr=192.168.0.5
serverip=192.168.0.2
console=console=ttyS0,115200 mtdparts=orion_mtd:0x100000(u-boot),0x700000@0x100000(uImage)ro,0x1f700000@0x800000(rootfs)rw
arcNumber=2097
bootargs_end=255.255.255.0:DB88FXX81:eth0:none
rootpath=/path/to/the/rootfs/directory/
stdin=serial
stdout=serial
stderr=serial
mainlineLinux=yes
enaMonExt=no
enaCpuStream=no
enaWrAllo=no
pexMode=RC
disL2Cache=no
setL2CacheWT=yes
disL2Prefetch=yes
enaICPref=yes
enaDCPref=yes
sata_dma_mode=yes
netbsd_en=no
vxworks_en=no
bootdelay=3
disaMvPnp=no
enaAutoRecovery=yes
pcieTune=no

Environment size: 1414/131068 bytes
変更はmainlineLinux,arcNumber,bootargs_end,console,ipaddr/serverip,bootcmd
だったと思う。もちろんethaddrとrootpathは適切に編集してあります。

で、変更は
>> setenv bootargs ‘console=ttyS0,115200 rootfstype=jffs2 mtdparts=orion_mtd:0x100000(u-boot),0x700000@0x100000(uImage)ro,0x1f700000@0x800000(rootfs)rw root=/dev/mtdblock2 ip=$(ipaddr):$(serverip)$(bootargs_end) $(mvNetConfig) $(mvPhoneConfig)’
>> setenv bootcmd ‘nand read.e 0x800000 0x100000 0x400000;bootm 0x800000’

http://www.openplug.org/plugwiki/index.php/Flashing_an_Operating_System_onto_the_Plug
ここに従ってfedora11のjffs2を作ってbootしたけど、rootパスがわからん。nosoup4uじゃないのか、、、。passwdにguestがあったので試してみたら、パスなしで入れた。うーむむ。

当時
http://fedoraproject.org/wiki/Architectures/ARM/SheevaplugUSB
からとってきたfedora11のデフォルトのrootパスはmarvellだった。
fedora-armのメーリングリストのログを検索したら見つかった。

とりあえずrootになってみる。っつうか、lessとかpasswdとか入ってないね、、、。
yumを使おうとしたら怒られた。rpm -qaも効かないから、データベースが構築されていないんだろう。
とおもってrpm –rebuilddbもダメ。うーぬぬ。

どうも起動時にエラーが多かったりするようだから、ubuntuに戻そうかなぁ、、、。
apt-get/aptitudeよりyumの方が使いやすい気がする、というのはある。

こんなところで時間切れ。この作業のせいで完全に昼夜逆転したが、ま、正月はこんなもん。
続きはまた来年。

sheevaplug 作業メモ

sheevaplugをあまりいじってなかったのでいじることにする。
いまいちよくわからんのだが、うまいこと起動しなくなってしまったので、いろいろやりなおすことにする。

母艦はfedora12

とりあえずsheevaplugと母艦をUSBでつないで、
# screen /dev/ttyUSB1 115200
そのあとでsheevaplugのリセットスイッチをツマヨウジか何かでおす。

さて、うまいこと起動しない。

起動時にチェックが入って、badblockがたくさんあるよと起こられる。
DDR2 data bus test PASSED

DDR2 address bus test PASSED

DDR2 device test PASSED

Device: 0, Size: 512 MB, Page Size: 2 KB, Block Size: 128 KB
NAND detection test PASSED

Bad Block: 00320000
Bad Block: 00340000
Bad Block: 00360000
Bad Block: 00380000
Bad Block: 003a0000
Bad Block: 003c0000
Bad Block: 003e0000
Bad Block: 00400000
Bad Block: 00420000
Bad Block: 00440000
Bad Block: 0dbc0000
Bad Block: 17ba0000
NAND bad-block detection test PASSED

Speed: 100 Mbps, Duplex: Full, Link: up
GbE link detect test PASSED

RTC test PASSED


fedora12でのtftpサーバの起動は
# yum install tftp-server
# /sbin/chkconfig –level345 xinetd on /sbin/chkconfig –level345 tftp on

nfsサーバも用意しないとダメ。
# yum install nfs-utils
# /etc/init.d/nfs restart

fedoraのソフトウェアファイアウォールでnfsとtftpdを有効にしておく
↑これを忘れて時間がかかった、、、

とりあえずは
http://mizupc8.bio.mie-u.ac.jp/pukiwiki/index.php?SheevaPlug%2FU-Boot
に従ってubootの更新。

やれやれうまくきそうだ。

plugforumの掲示板におちていたuboot3.4.27(pacthed)をひろってきて入れる。

http://lglinux.blogspot.com/2009/09/recovering-bad-sheevaplug-kernel-flash.html
にしたがってkernel2.6.32を起動させようとするが

Looking up port of RPC 100003/2 on 192.168.0.2
eth0: link up, 100 Mb/s, full duplex, flow control disabled
rpcbind: server 192.168.0.2 not responding, timed out
Root-NFS: Unable to get nfsd port number from server, using default
Looking up port of RPC 100005/1 on 192.168.0.2
rpcbind: server 192.168.0.2 not responding, timed out
Root-NFS: Unable to get mountd port number from server, using default
Root-NFS: Server returned error -5 while mounting /tftpboot/rootfs
VFS: Unable to mount root fs via NFS, trying floppy.
VFS: Cannot open root device “nfs” or unknown-block(2,0)
Please append a correct “root=” boot option; here are the available partitions:
1f00 1024 mtdblock0 (driver?)
1f01 4096 mtdblock1 (driver?)
1f02 519168 mtdblock2 (driver?)
Kernel panic – not syncing: VFS: Unable to mount root fs on unknown-block(2,0)
[<c0032d04>] (unwind_backtrace+0x0/0xe0) from [<c0044304>] (panic+0x54/0x12c)
[<c0044304>] (panic+0x54/0x12c) from [<c0008f10>] (mount_block_root+0x1d4/0x214)
[<c0008f10>] (mount_block_root+0x1d4/0x214) from [<c00091b8>] (prepare_namespace+0x16c/0x1c4)
[<c00091b8>] (prepare_namespace+0x16c/0x1c4) from [<c0008764>] (kernel_init+0xe0/0x114)
[<c0008764>] (kernel_init+0xe0/0x114) from [<c002e444>] (kernel_thread_exit+0x0/0x8)

こんなことを吐いて落ちる。母艦側の設定かなぁ。

母艦のファイアウォール無効化したらちょっと進んだ。ってか、何番ポート使ってるんだろう。後でググろう。(fedoraのfirewall設定のguiのやつで、適用押してなくていろいろなやんだのはナイショ)

で、なんとかsheevaplugでlinuxが立ち上がったようだ。やれやれ。
次なにするんだっけ??

pdfの説明書のSheevaPlug -Writing Jaunty Filesystem on the NAND flash
に従って先に進む

-sh-3.2# bash
bash-3.2# find . -name flash_eraseall
./usr/sbin/flash_eraseall
bash-3.2# find . -name nandwrite
./usr/sbin/nandwrite
bash-3.2# cat /proc/mtd
dev: size erasesize name
mtd0: 00100000 00020000 “u-boot”
mtd1: 00400000 00020000 “uImage”
mtd2: 1fb00000 00020000 “root”
bash-3.2# flash_eraseall /dev/mtd1
Erasing 128 Kibyte @ 200000 — 50 % complete.
Skipping bad block at 0x00220000

Skipping bad block at 0x00240000

Skipping bad block at 0x00260000

Skipping bad block at 0x00280000

Skipping bad block at 0x002a0000

Skipping bad block at 0x002c0000

Skipping bad block at 0x002e0000

Skipping bad block at 0x00300000

Skipping bad block at 0x00320000

Skipping bad block at 0x00340000
Erasing 128 Kibyte @ 3e0000 — 96 % complete.
bash-3.2# flash_eraseall -j /dev/mtd2
Erasing 128 Kibyte @ d6a0000 — 42 % complete. Cleanmarker written at d6a0000.
Skipping bad block at 0x0d6c0000
Erasing 128 Kibyte @ 17680000 — 73 % complete. Cleanmarker written at 17680000.
Skipping bad block at 0x176a0000
Erasing 128 Kibyte @ 1fae0000 — 99 % complete. Cleanmarker written at 1f
bash-3.2# nandwrite -p /dev/mtd1 uImage
open input file: No such file or directory

あれ?説明が間違っているっぽい。
母艦で
# cp /tftpboot/uImage /path/to/rootfs/folder/.

bash-3.2# nandwrite -p /dev/mtd1 sheeva-2.6.32-uImage
Writing data to block 0
Writing data to block 20000
Writing data to block 40000
Writing data to block 60000
Writing data to block 80000
Writing data to block a0000
Writing data to block c0000
Writing data to block e0000
Writing data to block 100000
Writing data to block 120000
Writing data to block 140000
Writing data to block 160000
Writing data to block 180000
Writing data to block 1a0000
Writing data to block 1c0000
Writing data to block 1e0000
Writing data to block 200000
Writing data to block 220000
Bad block at 220000, 1 block(s) from 220000 will be skipped
Writing data to block 240000
Bad block at 240000, 1 block(s) from 240000 will be skipped
Writing data to block 260000
Bad block at 260000, 1 block(s) from 260000 will be skipped
Writing data to block 280000
Bad block at 280000, 1 block(s) from 280000 will be skipped
Writing data to block 2a0000
Bad block at 2a0000, 1 block(s) from 2a0000 will be skipped
Writing data to block 2c0000
Bad block at 2c0000, 1 block(s) from 2c0000 will be skipped
Writing data to block 2e0000
Bad block at 2e0000, 1 block(s) from 2e0000 will be skipped
Writing data to block 300000
Bad block at 300000, 1 block(s) from 300000 will be skipped
Writing data to block 320000
Bad block at 320000, 1 block(s) from 320000 will be skipped
Writing data to block 340000
Bad block at 340000, 1 block(s) from 340000 will be skipped
Writing data to block 360000
Writing data to block 380000
Writing data to block 3a0000
Writing data to block 3c0000
Writing data to block 3e0000
bash-3.2# nandwrite -p /dev/mtd2 generic.jffs2
Writing data to block 0
Writing data to block 20000
Writing data to block 40000
Writing data to block 60000

Writing data to block 7f40000
Writing data to block 7f60000
Writing data to block 7f80000
Writing data to block 7fa0000
Writing data to block 7fc0000
Writing data to block 7fe0000
Writing data to block 8000000
bash-3.2# mount -t jffs2 /dev/mtdblock2 /mnt
CLEANMARKER node found at 0x00000000 has totlen 0xc != normal 0x0
CLEANMARKER node found at 0x00020000 has totlen 0xc != normal 0x0
CLEANMARKER node found at 0x00040000 has totlen 0xc != normal 0x0
CLEANMARKER node found at 0x00060000 has totlen 0xc != normal 0x0
CLEANMARKER node found at 0x00080000 has totlen 0xc != normal 0x0
CLEANMARKER node found at 0x000a0000 has totlen 0xc != normal 0x0
CLEANMARKER node found at 0x000c0000 has totlen 0xc != normal 0x0
CLEANMARKER node found at 0x000e0000 has totlen 0xc != normal 0x0

で、おわってからreboot
ubootの設定を書き換える。
ちなみに書き換え前後の設定は次の記事。


openocdがうごかない?
firewallとは関係ないところでネットワーク関連のえらー?
libftdi、openocdをmakeしてもだめだった。libusbはエラーでmakeできず。
yumでいれたやつもだめ。なぜだ??

結局firewallは、rpcbindの111番と、
# rpcinfo -p
でmountdになってるポートを開放すればOKだった。

SheevaPlug届いた!

というわけでやっととどきました。
Ubuntuが入っているのを別なものにしたいが、まぁそれはおいおいやろう。

ルータにつないでコンセントにさして、
とりあえずこんなところを参考にして
http://openplug.org/plugwiki/index.php/New_Plugger_How_To
手元のfedoraをいれたノートPCからログインしてみる。
(まぁ、ここをみるまでデフォルトのrootのパスワードがわからなかっただけデスが、、、)

wikiにはubuntuの初期設定が間違っているから直せとかいてある。emacsがなくてviのみ、、、。
nanoが入っていたのでそれを使う。

(nanoって、結構つかいやすいなぁ、、、、。)

とりあえず
apt-get update

とりあえず問題なく終了?

再起動してみる。


次の日

gccのクロスコンパイラの圧縮ファイルが壊れている、、、。

sheevaplug

http://www.marvell.com/products/embedded_processors/developer/kirkwood/sheevaplug.jsp
http://www.globalscaletechnologies.com/p-22-sheevaplug-dev-kit.aspx

電源プラグに直接さすタイプのlinuxサーバが売っている。
注文が殺到していて届くのに4週間かかるといっているが、うーん、ほしいなぁ。
電源アダプター一体型の筐体って言うのは、熱設計上どうなんだっていうのはちょっと気になるけど、欲しいなぁ、、、どうかなぁ。

しばらく待てば$50になりそうな話もあるけど、今のうちに買ってしまうかなぁ〜。

——

注文してしまいました。
送料$33くらいだった。