今年に入ってから少しずつやっているAmis(http://continue-to-challenge.blogspot.jp/2016/02/amis.html)がようやく動くものになった。
いろいろ初めて/久しぶりのこともあり、随分と時間がかかってしまった。
でも
・基板切削 これ とか これ
・ARM向けのプログラム これ これ
・Linuxでのシリアル通信
・DD-wrtでphpを使う
・node.jsでGmailの送受信 これ
・LinuxでFIFO これ
・CSSフレームワークを使う
といろいろなことをやったものだ。
その他にもgitを使うようになったり、そのためにgogsインストールしたりと
随分開発環境も変化した。
構成図
画面
しばらくエージングしてみよう。
センサーの変化でメールが来たり、WEBからハードが制御できるのは面白いね。
つづく
2016年6月10日金曜日
2016年4月3日日曜日
AmisとCGIとの接続(名前付きパイプFIFO)
概要
webからの操作で、AmisボードのLEDを操作する準備として
Amisボードと通信するプログラムと、webでユーザー操作を受け持つcgiとの接続を検討した。
構成
dd-Wrt上のLighttpd(Port81)を使ってwebサーバーを立ち上げる
仮にAmiscommServer.cgi とする
Amisボードとの通信プログラムをAmis-Commとする
考え方は以下とか本を参考にした。
http://www.ncad.co.jp/~komata/c-kouza12.htm
C言語による実践Linuxシステムプログラミング
web側はまだ作成中
CSSフレームワークを使うとなんとなくそれっぽくできるから良いね。
foundation.js を使った。
webからの操作で、AmisボードのLEDを操作する準備として
Amisボードと通信するプログラムと、webでユーザー操作を受け持つcgiとの接続を検討した。
構成
dd-Wrt上のLighttpd(Port81)を使ってwebサーバーを立ち上げる
仮にAmiscommServer.cgi とする
Amisボードとの通信プログラムをAmis-Commとする
考え方は以下とか本を参考にした。
http://www.ncad.co.jp/~komata/c-kouza12.htm
C言語による実践Linuxシステムプログラミング
web側はまだ作成中
CSSフレームワークを使うとなんとなくそれっぽくできるから良いね。
foundation.js を使った。
2016年3月21日月曜日
AmisをARMボード(dd-wrtルーター)に移植できた
ようやく思い通りの動作になった。
原因は、気づけば大したことがないのだが、シリアル通信設定が間違っていた。
stty -F /dev/ttyACM0 -a
speed 9600 baud;stty: /dev/ttyACM0
line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -tostop -echoprt echoctl
echoke
これを修正して
stty -F /dev/ttyACM0 -echo
実行してみると、問題なく動作した。
なので、プログラムを修正Orz.
newtio.c_lflag = ~ECHO;
これで目的の動作になった。
その他
ドライバのクロスコンパイルのやり方らしきものを見つけた。
気になる。
http://www.dd-wrt.com/phpBB2/viewtopic.php?t=70462
原因は、気づけば大したことがないのだが、シリアル通信設定が間違っていた。
stty -F /dev/ttyACM0 -a
speed 9600 baud;stty: /dev/ttyACM0
line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -tostop -echoprt echoctl
echoke
これを修正して
stty -F /dev/ttyACM0 -echo
実行してみると、問題なく動作した。
なので、プログラムを修正Orz.
newtio.c_lflag = ~ECHO;
これで目的の動作になった。
その他
ドライバのクロスコンパイルのやり方らしきものを見つけた。
気になる。
http://www.dd-wrt.com/phpBB2/viewtopic.php?t=70462
2016年3月20日日曜日
AmisをARMボード(dd-wrtルーター)に移植中
連休だけど、なかなか時間がとれない…。
ついにAmisをクロスコンパイルしてARMボードに移植しようと思う。
準備
以前にできたと思っていたOpenWrtのツールチェインではうまく行かなかった。
原因究明する気力もなくなったので、debianのEmdebian-toolを使うことにした。
http://continue-to-challenge.blogspot.jp/2016/01/arm.html
動的リンクができない。なんでかなー。LD_LIBRARY_PATHにLIBを指定してもだめ。
仕方がないので、とりあえずは静的リンクでやってみることにした。
debianにeclipseを入れて開発環境ごと移動した。不本意だが仕方ない。
eclipseでクロスコンパイルかつ静的リンク で生成する方法
忘れそうなので、メモ
(1)プロジェクトの設定で、CrossGCCを選択する
(2)CrossSettingのPrefixに「arm-linux-gnueabi-」を入力する
(3)Cross G++ LinkerのAll optionsに「static」を入力する
いざコンパイル
びっくりするくらいに何も問題なく成功したが、
実行してみると問題発生Orz
シリアル通信がおかしい。PICマイコン側からErr応答しかされない。
なんでかなー。もう少しだと思ったのに。
その他
なぜか、水曜日のカンパネラが頭から離れない。洗脳ソングですな。
ついにAmisをクロスコンパイルしてARMボードに移植しようと思う。
準備
以前にできたと思っていたOpenWrtのツールチェインではうまく行かなかった。
原因究明する気力もなくなったので、debianのEmdebian-toolを使うことにした。
http://continue-to-challenge.blogspot.jp/2016/01/arm.html
動的リンクができない。なんでかなー。LD_LIBRARY_PATHにLIBを指定してもだめ。
仕方がないので、とりあえずは静的リンクでやってみることにした。
debianにeclipseを入れて開発環境ごと移動した。不本意だが仕方ない。
eclipseでクロスコンパイルかつ静的リンク で生成する方法
忘れそうなので、メモ
(1)プロジェクトの設定で、CrossGCCを選択する
(2)CrossSettingのPrefixに「arm-linux-gnueabi-」を入力する
(3)Cross G++ LinkerのAll optionsに「static」を入力する
いざコンパイル
びっくりするくらいに何も問題なく成功したが、
実行してみると問題発生Orz
シリアル通信がおかしい。PICマイコン側からErr応答しかされない。
なんでかなー。もう少しだと思ったのに。
その他
なぜか、水曜日のカンパネラが頭から離れない。洗脳ソングですな。
2016年2月28日日曜日
見通しが立った(Amis)
今年に入ってから少しずつ試作進めてきたものが見通しが立ってきた。
他の人が手垢がつくほどやり尽くされているけど、
自分でやってみたかった。
概要
扉センサーや人感センサー、明るさ、温度・湿度センサーを監視して、
異常な場合にはメールで通知するというもの。それだけ。
汎用出力があるので、光や音で知らることもできる。
赤外線出力もつけるので、家に帰る前にエアコンつけたり、
長期不在時に在宅を装うこともできるはず。
一体に何に怯えているんだろうか・・・。
名付けてAmis(エイミス)フランス語で「ともだち」 。ぜんぜん関係ないね。
構成
ArduinoとかRaspberryPiとか使えば簡単なのはわかっている。
だがしかし、あえて、この構成にしたかったのだ。なんとなく。
[センサー類]-I2cなど-[PICマイコン] -USB(CDC)-[linux(1)]-[linux(2)]
・センサー類
ディジタル入力×5
ディジタル出力×3
明るさセンサー これはCdsの値をPICのADで読む
温度・湿度センサー(HDC1000というやつ)秋月電子で売っていた I2C接続
http://www.tij.co.jp/product/jp/HDC1000
赤外線出力
・PICマイコン
PIC18F2455 余っていたので
microchipのcdcサンプルを参考にした
・Linux(1)
最寄りのルーター dd-wrtが入っている。リビングにある。
これにUSB経由でPICマイコンを接続するもの。
・Linux(2)
メール通知用 mageiaが入っている。
ONUの近くにある。
進捗
・センサー類
赤外線出力がまだ
その他は、だいたいOK
・PICマイコン
ファームはだいたいOK
基板起こす? 悩み中。
・Linux(1)
PICとの通信プログラムは、開発環境ではOK
あとはARMに移植できるか・・・!?
・Linux(2)
メール通知するだけなので、ほぼOK
ssmtpを使用
その他
花粉がすごい。体がだるい。でも頑張るぞ!
他の人が手垢がつくほどやり尽くされているけど、
自分でやってみたかった。
概要
扉センサーや人感センサー、明るさ、温度・湿度センサーを監視して、
異常な場合にはメールで通知するというもの。それだけ。
汎用出力があるので、光や音で知らることもできる。
赤外線出力もつけるので、家に帰る前にエアコンつけたり、
長期不在時に在宅を装うこともできるはず。
一体に何に怯えているんだろうか・・・。
名付けてAmis(エイミス)フランス語で「ともだち」 。ぜんぜん関係ないね。
構成
ArduinoとかRaspberryPiとか使えば簡単なのはわかっている。
だがしかし、あえて、この構成にしたかったのだ。なんとなく。
[センサー類]-I2cなど-[PICマイコン] -USB(CDC)-[linux(1)]-[linux(2)]
・センサー類
ディジタル入力×5
ディジタル出力×3
明るさセンサー これはCdsの値をPICのADで読む
温度・湿度センサー(HDC1000というやつ)秋月電子で売っていた I2C接続
http://www.tij.co.jp/product/jp/HDC1000
赤外線出力
・PICマイコン
PIC18F2455 余っていたので
microchipのcdcサンプルを参考にした
・Linux(1)
最寄りのルーター dd-wrtが入っている。リビングにある。
これにUSB経由でPICマイコンを接続するもの。
・Linux(2)
メール通知用 mageiaが入っている。
ONUの近くにある。
進捗
・センサー類
赤外線出力がまだ
その他は、だいたいOK
・PICマイコン
ファームはだいたいOK
基板起こす? 悩み中。
・Linux(1)
PICとの通信プログラムは、開発環境ではOK
あとはARMに移植できるか・・・!?
・Linux(2)
メール通知するだけなので、ほぼOK
ssmtpを使用
その他
花粉がすごい。体がだるい。でも頑張るぞ!
2016年1月24日日曜日
なんとも・・・
数週間悩んでいたことが、ふとした瞬間に解決することがあるもんだ。
その1
PICマイコンのUSB(CDCサンプル)をdd-wrtで使いたいと思っていた
ddwrtの再ビルドも覚悟して、開発環境を構築するべく挑戦したが、なかなか思うようにならなかった。
でも、今日、何の気なしにPICマイコンのベンダーIDを試しにFTDIに変えてみたら
案の定動かなかったが、ようやく気付いた。PICマイコンのUSB(CDC)はftdi_sioじゃなくて、
cdc-acmだった。Orz
insmod cdc-acm
で一撃でした。 この2~3週間はなんだったんだ。。。
よく考えてから行動しようね。
その2
久しぶり同郷の親友にあった。現状や悩み事やなど話していたらあっという間に時間が過ぎていく。なんか解放されたような気分になった。良い刺激を受けた。まずは孫子を読んでみよう。
その3
ここ数年間ずっと悩んでいたこと。希望の光が見えてきた。
頑張ってくれ!!
おしまい。
その1
PICマイコンのUSB(CDCサンプル)をdd-wrtで使いたいと思っていた
ddwrtの再ビルドも覚悟して、開発環境を構築するべく挑戦したが、なかなか思うようにならなかった。
でも、今日、何の気なしにPICマイコンのベンダーIDを試しにFTDIに変えてみたら
案の定動かなかったが、ようやく気付いた。PICマイコンのUSB(CDC)はftdi_sioじゃなくて、
cdc-acmだった。Orz
insmod cdc-acm
で一撃でした。 この2~3週間はなんだったんだ。。。
よく考えてから行動しようね。
その2
久しぶり同郷の親友にあった。現状や悩み事やなど話していたらあっという間に時間が過ぎていく。なんか解放されたような気分になった。良い刺激を受けた。まずは孫子を読んでみよう。
その3
ここ数年間ずっと悩んでいたこと。希望の光が見えてきた。
頑張ってくれ!!
おしまい。
2016年1月16日土曜日
ARMクロスコンパイル開発環境2
迷走の記録2
先週に引き続き開発環境の構築ためにあくせく、、、
この手順通りに、やってみたところ、それらしいことができた!
https://wiki.openwrt.org/jp/doc/howto/buildroot.exigence#downloading_sources
例えば、コンパイルは
./staging_dir/toolchain-arm_cortex-a9_gcc-5.2.0_musl-1.1.11_eabi/bin/arm-openwrt-linux-gcc test1.c -static -o test1_arm_static.exe
のような感じで。
メモし忘れていたけど、
仮想環境だと、失敗してもやり直せるので気楽でいいね
やりたい事はdd-wrtを導入したルーターでUSB-シリアル変換を使いたいのだけど、
それがPICだったりするので、ベンダーIDが登録されていなく、そのままでは使えない。
modprobeがあれば何とかなるのだろうけど、あいにくそれは無かった。
最悪は、PICに書き込むベンダーIDを登録されいるものに書き換えてしまう手段もあるけど、
なんかちょっと反則感があるので、ドライバを修正したい というもの。。
明日やってみようかな
先週に引き続き開発環境の構築ためにあくせく、、、
この手順通りに、やってみたところ、それらしいことができた!
https://wiki.openwrt.org/jp/doc/howto/buildroot.exigence#downloading_sources
例えば、コンパイルは
./staging_dir/toolchain-arm_cortex-a9_gcc-5.2.0_musl-1.1.11_eabi/bin/arm-openwrt-linux-gcc test1.c -static -o test1_arm_static.exe
のような感じで。
メモし忘れていたけど、
仮想環境だと、失敗してもやり直せるので気楽でいいね
やりたい事はdd-wrtを導入したルーターでUSB-シリアル変換を使いたいのだけど、
それがPICだったりするので、ベンダーIDが登録されていなく、そのままでは使えない。
modprobeがあれば何とかなるのだろうけど、あいにくそれは無かった。
最悪は、PICに書き込むベンダーIDを登録されいるものに書き換えてしまう手段もあるけど、
なんかちょっと反則感があるので、ドライバを修正したい というもの。。
明日やってみようかな
2016年1月12日火曜日
ARMクロスコンパイル開発環境
以下、迷走の記録。
以前、ARMのクロスコンパイル環境を導入したのだけど、
PCの再インストールを行って、一切の環境が消えてしまった。
http://continue-to-challenge.blogspot.jp/2014/11/buffalo-wzr-600dhp2dd-wrt_15.html
もう一度、ツールチェーンを入手しようと思ったら、
30日限定の評価版しかなかった。
・Sourcery CodeBench Lite Edition
https://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/editions/lite-edition/
コンパイルとか面倒なので、ビルド済みのやつは無いかと思い探してみると
・Linaro
http://www.linaro.org/downloads/
https://wiki.linaro.org/WorkingGroups/ToolChain
これをまず、試してみた。
Linuxの32ビット版が見当たらない。取り急ぎ動作確認したいので、
64ビット版で試してみたところ、
Illegal Instruction
となってしまったOrz
並行してコンパイルが必要なもの
(1)dd-wrt
(2)OpenWrt
(3)熱血!アセンブラ入門(http://kozos.jp/books/asm/)
(4)Emdebian-tool
やりたいことは、dd-wrtにてプログラムを実行したく、それ用にコンパイルしたい。
(1)と(2)は↓を参考に構築してみたが、
http://www.plustar.jp/lab/blog/?p=2443
http://miettal.hatenablog.com/entry/20110804/1312406923
まだまだ、実現に至らない。。。
(3)はVM版も公開されており、便利そうだが、未確認
(4)は結構情報が多いので、こちらをやってみた。
Debian8(Jessie)
http://blog.usoinfo.info/article/418379646.html
ほぼ上記リンクの通り。
わざわざVMにDebianをインストールした。。。
とりあえずは、対象となるdd-wrtにて動作可能なバイナリが作成できたので、
これを足掛かりに作業していきたい。
別件だけど、windows10でリモートデスクトップの備忘録
%windir%\system32\mstsc.exe
http://answers.microsoft.com/ja-jp/windows/forum/windows_10-networking/windows-10/46d71756-99a5-4221-b2d8-9c2af624b781?auth=1
忘れがちなので注意、
3連休だったのに、あまり収穫がないね。。。
以前、ARMのクロスコンパイル環境を導入したのだけど、
PCの再インストールを行って、一切の環境が消えてしまった。
http://continue-to-challenge.blogspot.jp/2014/11/buffalo-wzr-600dhp2dd-wrt_15.html
もう一度、ツールチェーンを入手しようと思ったら、
30日限定の評価版しかなかった。
・Sourcery CodeBench Lite Edition
https://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/editions/lite-edition/
コンパイルとか面倒なので、ビルド済みのやつは無いかと思い探してみると
・Linaro
http://www.linaro.org/downloads/
https://wiki.linaro.org/WorkingGroups/ToolChain
これをまず、試してみた。
Linuxの32ビット版が見当たらない。取り急ぎ動作確認したいので、
64ビット版で試してみたところ、
Illegal Instruction
となってしまったOrz
並行してコンパイルが必要なもの
(1)dd-wrt
(2)OpenWrt
(3)熱血!アセンブラ入門(http://kozos.jp/books/asm/)
(4)Emdebian-tool
やりたいことは、dd-wrtにてプログラムを実行したく、それ用にコンパイルしたい。
(1)と(2)は↓を参考に構築してみたが、
http://www.plustar.jp/lab/blog/?p=2443
http://miettal.hatenablog.com/entry/20110804/1312406923
まだまだ、実現に至らない。。。
(3)はVM版も公開されており、便利そうだが、未確認
(4)は結構情報が多いので、こちらをやってみた。
Debian8(Jessie)
http://blog.usoinfo.info/article/418379646.html
ほぼ上記リンクの通り。
わざわざVMにDebianをインストールした。。。
とりあえずは、対象となるdd-wrtにて動作可能なバイナリが作成できたので、
これを足掛かりに作業していきたい。
別件だけど、windows10でリモートデスクトップの備忘録
%windir%\system32\mstsc.exe
http://answers.microsoft.com/ja-jp/windows/forum/windows_10-networking/windows-10/46d71756-99a5-4221-b2d8-9c2af624b781?auth=1
忘れがちなので注意、
3連休だったのに、あまり収穫がないね。。。
2015年1月18日日曜日
FON2405E カスタムファーム導入に挑戦!
年明けはいろいろと忙しく、なかなか更新ができなかった。
入手したFON2405Eにカスタムファームを導入するべく、いろいろ調査した。
FON2405E
OS OpenWRT(Linux2.6)
CPU
RT3050 320MHz
Memory
32MB
Flash 2MB
まず、有名な「Hot
Tuna Labs 」さんが公開しているカスタムファームを導入してみた。
これは手順どおりでいけた。ただし、bootメニューに入るのが苦労した。
10回挑戦して2回程度の成功率・・・。
このカスタムファームでGPIOを操作してみたかったのだが、
/dev/class/gpioがなくよくわからなかった。
/dev/gpioはあったのだが、
mkmodでなにかやるんか???
仕方がないので、カスタムファームを作成する方法を調査した。
(結果今のところ成功はしていない。。。Orz)
1.Ralink
SDK
Ralin
SDK
・Ralink_ApSoC_SDK_3600_20110715.tar.bz2
・Ralink_ApSoC_SDK_3301.tar.bz2
の2つで試してみる
1-1.Ralink_ApSoC_SDK_3600_20110715.tar.bz2
tar
xvjf Ralink_ApSoC_SDK_3600.tar.bz2
cd
RT288x_SDK/toolchain/
tar
xvjf buildroot-gcc342.tar.bz2
mv
buildroot-gcc342 /opt/.
cd
mksquash_lzma-3.2/
make
ここまでは、うまく行ったが、
/usr/bin/ld:
mksquashfs.o: シンボル 'log10@@GLIBC_2.0'
への未定義参照です
/lib/libm.so.6:
error adding symbols: DSO missing from command line
collect2:
エラー:
ld はステータス 1
で終了しました
Makefileに-lmが無いことが原因らしい
squashfs3.2-r2/squashfs-tools/Makefile
10行目
LDLIBS
+= -lz -L${LzmaAlone} -L${LzmaC}
LDLIBS
+= -lz -lm -L${LzmaAlone} -L${LzmaC}
mkdir
/opt/buildroot-gdb
mkdir
/opt/buildroot-gdb/bin
make
install
つぎに目的のsourceをと思ったが、
source内にMakefileがない。。。困った。
1-2.Ralink_ApSoC_SDK_3301.tar.bz2
3600と同じように
tar
xvjf Ralink_ApSoC_SDK_3301.tar.bz2
cd
RT288x_SDK/toolchain/
tar
xvjf buildroot-gcc342.tar.bz2
mv
buildroot-gcc342 /opt/.
cd
mksquash_lzma-3.2/
make
そして同じように
/usr/bin/ld:
mksquashfs.o: シンボル 'log10@@GLIBC_2.0'
への未定義参照です
/lib/libm.so.6:
error adding symbols: DSO missing from command line
collect2:
エラー:
ld はステータス 1
で終了しました
<builtin>:
recipe for target 'mksquashfs' failed
make[1]:
*** [mksquashfs] Error 1
squashfs3.2-r2/squashfs-tools/Makefile
10行目
LDLIBS
+= -lz -L${LzmaAlone} -L${LzmaC}
LDLIBS
+= -lz -lm -L${LzmaAlone} -L${LzmaC}
mkdir
/opt/buildroot-gdb
mkdir
/opt/buildroot-gdb/bin
make
install
これで、buildツールの準備ができたかな。
そして本体。
make
V=99
Makefile:319:
*** 暗黙ルールと通常ルールが混ざりました.
中止.
Makefileの319を書き換え
linux
linux%_only:
linux:
リトライ!!
make[3]:
Entering directory
'/home/adeno/fon/sdk3301/RT288x_SDK/source/user/busybox'
Makefile:1262:
*** 暗黙ルールと通常ルールが混ざりました.
中止.
中止!!
再度書き換え
vi
user/busybox/Makefile
/
%/: prepare scripts FORCE
/:
prepare scripts FORCE
リトライ!!!
make[1]:
Entering directory
'/home/adeno/fon/sdk3301/RT288x_SDK/source/vendors'
Makefile:28:
*** 暗黙ルールと通常ルールが混ざりました.
中止.
vi
vendors/Makefile
all
image clean romfs romfs.post vendor_%:
all
image clean romfs romfs.post:
まだぁ?
make[1]:
Entering directory
'/home/adeno/fon/sdk3301/RT288x_SDK/source/linux-2.6.21.x'
Makefile:1443:
*** 暗黙ルールと通常ルールが混ざりました.
中止.
vi
linux-2.6.21.x/Makefile
/
%/: prepare scripts FORCE
/:
prepare scripts FORCE
リトライしていくと…。
---
/Ralink/3301/sdk3301/RT288x_SDK/source/vendors/Ralink/RT3052/mkimage:
invalid entry point -n
/Ralink/3301/sdk3301/RT288x_SDK/source/vendors/Ralink/RT3052/./Makefile:80:
recipe for target 'image' failed
make[2]:
*** [image] Error 1
make[2]:
Leaving directory
'/Ralink/3301/sdk3301/RT288x_SDK/source/vendors/Ralink/RT3052'
Makefile:29:
recipe for target 'image' failed
make[1]:
*** [image] Error 2
make[1]:
Leaving directory '/Ralink/3301/sdk3301/RT288x_SDK/source/vendors'
Makefile:297:
recipe for target 'image' failed
make:
*** [image] Error 2
---
がぼー なんでかなぁ・・・・。
2.Openwrt(Image
Builder)
make
image PROFILE=Default
しばし待つと…
makeが終了したのだが、
2490372
1月 18
12:45
bin/ramips/openwrt-ramips-rt305x-rt-g32-b1-squashfs-sysupgrade.bin*
2.5MB
2MBにおさまってないやんOrz
3.Openwrt(Buildroot)
git
clone git://git.openwrt.org/openwrt.git
cd
openwrt
./scripts/feeds
update -a
./scripts/feeds
install -a
make
defconfig
make
prereq
make
menuconfig
Target
System はRalink
RT288x/RT3xxx
Subtarget
はRT3x5x/RT5350
based boards
を選択してmakeした
3~4時間待つと
2883588
1月
18
14:21
bin/ramips/openwrt-ramips-rt305x-esr-9753-squashfs-sysupgrade.bin
2.9MB 2MBにおさまってないやんOrz
--
うーん。 なかなか難しいね。
この1週間での進捗はこんな感じ。
2014年11月15日土曜日
Buffalo WZR-600DHP2のdd-wrt化 その3
WZR-600DHP2を触る機会があったので、dd-wrtを導入してみた(のつづき)
定番プログラムを実行させてみた。1.準備
ncursesの入手
生成
CC=arm-none-linux-gnueabi-gcc ./configure --prefix=/home/[自分の作業場所]/usr --host=arm-none-linux-gnueabi --with-shared
そしてmake, make install
usr内のbinと libをコピー
そして、定番プログラム・・・slの入手!
http://www.tkl.iis.u-tokyo.ac.jp/~toyoda/
https://github.com/mtoyoda/sl
すごいよねこれ。
これでmakeするとslが生成される。
slもbinにコピー
usr内のbinと libをコピー
そして、定番プログラム・・・slの入手!
http://www.tkl.iis.u-tokyo.ac.jp/~toyoda/
https://github.com/mtoyoda/sl
すごいよねこれ。
CC=arm-none-linux-gnueabi-gcc CFLAGS=-O -I/home/[自分の作業場所]/usr/include/ncurses -I/home/[自分の作業場所]/usr/include -L/home/[自分の作業場所]/usr/lib
これでmakeするとslが生成される。
slもbinにコピー
2.いざ実行!
sshからログインすると、環境変数が読み込まれない?ようなので、
手動で・・・(なんか良い方法ないかな)
手動で・・・(なんか良い方法ないかな)
export TERMINFO=/lib/terminfo
するとこんな感じに実行できる!
Buffalo WZR-600DHP2のdd-wrt化 その2
WZR-600DHP2を触る機会があったので、dd-wrtを導入してみた(のつづき)
前回はdd-wrtのインストールまでを行った。今回は、簡単なプログラムを実行させてみた。
クロスコンパイルをやってみる。
1.準備
ツールチェーンを入手
http://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/editions/lite-edition/
ツールチェーンはいろいろ種類があるみたいだけど、
有名どころを使った。まずは動くことが大事。
ツールチェーンはいろいろ種類があるみたいだけど、
有名どころを使った。まずは動くことが大事。
2.スタティックリンクで生成してみる
いきなり難しいことはできないので、
スタティックリンクでやってみる
スタティックリンクでやってみる
hello.c
#include <stdio.h>
int main(void)
{
printf("Hello Wold\n");
return 0;
}
いざコンパイル!!
出来上がったhello.exeを600DHP2に転送して試してみる。
できた!
arm-none-linux-gnueabi-gcc hello.c -static -o hello.exe
出来上がったhello.exeを600DHP2に転送して試してみる。
できた!
3.ダイナミックリンクで生成してみる
スタティックだけではつまらないので、ダイナミックリンクでもやってみる。
そのためには、ライブラリを保存できる環境が欲しい。
前回、SDカードが/jffsに自動マウントされるようにしたので、その領域を使う。
共有ライブラリの 保存先libを自由に変更できるようにするために、
SDカードに一式を保存して、それをメイン(/lib)として利用するようにする。
まずは、
/jffs内にclone/libを作成して、現在のlibの中身を全部コピー!!
ついでにclone/bin も作成して、全部コピー!!
そして、ツールチェーンの共有ライブラリもコピーする
CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_GNU_Linux/arm-none-linux-gnueabi/libc/armv4t/lib
これで、下ごしらえはできた。
dd-wrtの「管理」から 「コマンド実行」を選択し、
起動スクリプトを作成する。
前回、SDカードが/jffsに自動マウントされるようにしたので、その領域を使う。
共有ライブラリの 保存先libを自由に変更できるようにするために、
SDカードに一式を保存して、それをメイン(/lib)として利用するようにする。
まずは、
/jffs内にclone/libを作成して、現在のlibの中身を全部コピー!!
ついでにclone/bin も作成して、全部コピー!!
そして、ツールチェーンの共有ライブラリもコピーする
CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_GNU_Linux/arm-none-linux-gnueabi/libc/armv4t/lib
これで、下ごしらえはできた。
dd-wrtの「管理」から 「コマンド実行」を選択し、
起動スクリプトを作成する。
内容としては、
があれば大丈夫。
20秒待つのはおまじない。。
マウントしたSDカードが意図しているものかの簡易的なチェックのために、
/jffs/にoptware.enableをという空のファイルを作っておく。
このファイルがある場合にSDカードのlibとbinを使用するしくみ。
一度再起動して、下準備完了。
早速、ダイナミックリンクで生成してみる。
どや!
#!/bin/sh sleep 20 if [ -f /jffs/optware.enable ]; then mount -o bind /jffs/clone/lib /lib mount -o bind /jffs/clone/bin /bin else exit fi
があれば大丈夫。
20秒待つのはおまじない。。
マウントしたSDカードが意図しているものかの簡易的なチェックのために、
/jffs/にoptware.enableをという空のファイルを作っておく。
このファイルがある場合にSDカードのlibとbinを使用するしくみ。
一度再起動して、下準備完了。
早速、ダイナミックリンクで生成してみる。
arm-none-linux-gnueabi-gcc hello.c -o hello_d.exe
どや!
次は定番プログラムの実行に挑戦
Buffalo WZR-600DHP2のdd-wrt化 その1
WZR-600DHP2を触る機会があったので、dd-wrtを導入してみた。
どうやらdd-wrt化は実績があるみたいだ。
USBポートにext3フォーマットのSDをつなげて、そこに各種アプリをインストールしてみる。
※以下自己責任+無線出力はOFFにすること。
1.dd-wrtの入手
動作確認したのは以下のバージョン
Path: Downloads › betas › 2014 › 11-11-2014-r25309 › buffalo_wzr-600dhp2
公式版ではなくbetaなのか。。
公式版ではなくbetaなのか。。
2.インストール
<デバッグ画面からファームアップを行う>
詳細は以下のリンク先が詳しい
インストール後、192.168.1.1にアクセス
ここまではとても簡単にできる!
ここまではとても簡単にできる!
3.SDを外部ストレージ化
SDカードはext3にてフォーマットした。
600dhp2に刺してみると、自動でマウントされる。
されない場合は「ネットワーク」→「USB」にある
「自動ドライブマウント」を確認する。
表示を「日本語」にしていると、レイアウトが崩れるみたいたので、
「英語」と切り替えながら確認すると良さそう。
自動マウントされたSDカードが/dev/sda1として認識された。
このUUIDを「自動ドライブマウント」の下にある
Mount this Partition to /jffsにコピペする。
これでこのSDカードが常に/jffsにマウントされるようになる。
このUUIDを「自動ドライブマウント」の下にある
Mount this Partition to /jffsにコピペする。
これでこのSDカードが常に/jffsにマウントされるようになる。
まずはここまで
登録:
投稿 (Atom)












