スキップしてメイン コンテンツに移動

Open-WRTをFON2200にインストール


FON2200にOpen-WRTを入れてみた記録。 

以下の作業は、シリアル端子からFonのブートローダーRedBootにアクセスして行ったものです。

いけにえ :FON2200
母艦    :ノートPC VAIO-typeSZ 2007年モデル  
コンソール:TeraTerm
変換器 :今回はArduinoを使用(FT232Rだけ)


<Open-WRTってなんぞや>
組み込みLinuxの一種で、Fonのファームウェアや、DD-WRTのソース元。 
自分で好きにモジュールを組み込める、らしい。(opkg形式でインストールができる)
 これでシリアル経由でロボットの制御をしようとしてあれこれやろうと画策。結局ルーターとして重宝したっきり。 

TFTP鯖 ファームは2009年6月時点のものです。  なぜか本家とのアクセスが悪いので

内容 openwrt-atheros-root.squashfs
openwrt-atheros-vmlinux.lzma 


<PC側とコンソール上の設定>
Fonela開けてシリアルをつなぐ(改造して外にピンソケットが出してある)
ボーレートは9600bps
PCのipアドレスの設定 ネットでは固定192.168.1.10にする例が多い模様
Fonelaとシリアル通信ができると、まずはRedbootが起動するので ここでCtrl+c
Redboot> とプロンプトがでると成功。

 PCのシリアルコンソールはDeleteキーの割り当てに注意。
(Backspaceに割り当てておくとLinuxの端末動作と同様の操作が可能)


 ip_address -l 192.168.1.2/24 -h 192.168.1.10
 アドレスは Fon側 / PC 
この設定前にip_address と打ち、Fonelaのip設定を確認しておく。 
あまり凝ったipにしておくと、TFTP鯖にアクセスしてくれない。
Fonで初期設定しているipとかぶらないように設定すること。

あとの流れは、フラッシュ上のファームを消去/ロード、書き込み となる。



以下ログ 赤字が入力したこと



 fis init   //フラッシュ消去
About to initialize [format] FLASH image system - continue (y/n)? y
*** Initialize FLASH Image System
... Erase from 0xa87e0000-0xa87f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .
RedBoot> ip_address  
IP: 192.168.3.1/255.255.255.0, Gateway: 0.0.0.0
Default server: 192.168.1.10
RedBoot> load -r -b 0x80041000 openwrt-atheros-vmlinux.lzma
Using default protocol (TFTP)
__udp_sendto: Can't find address of server // ロード失敗 ( ^ω^)・・・
Can't load 'openwrt-atheros-vmlinux.lzma': some sort of network error
RedBoot> ip_address -l 192.168.1.2/24 -h 192.168.1.10 //再設定 ローカルiP変更
IP: 192.168.1.2/255.255.255.0, Gateway: 0.0.0.0
Default server: 192.168.1.10
RedBoot> load -r -b 0x80041000 openwrt-atheros-root.squashfs ファームその1書き込み
Using default protocol (TFTP)
Raw file loaded 0x80041000-0x801e0fff, assumed entry at 0x80041000
RedBoot> fis create -l 0x06f0000 rootfs
... Erase from 0xa8030000-0xa8720000: ...............................................................................................................
... Program from 0x80041000-0x801e1000 at 0xa8030000: ..........................
... Erase from 0xa87e0000-0xa87f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .
RedBoot> load -r -b 0x80041000 openwrt-atheros-vmlinux.lzma
Using default protocol (TFTP)
Raw file loaded 0x80041000-0x80100fff, assumed entry at 0x80041000
RedBoot> fis create -r 0x80041000 -e 0x80041000 vmlinux.bin.l7
... Erase from 0xa8720000-0xa87e0000: ............
... Program from 0x80041000-0x80101000 at 0xa8720000: ............
... Erase from 0xa87e0000-0xa87f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .

//以上ファーム書き込み

RedBoot> fconfig
   //Redbootの設定

Run script at boot: true
Boot script:


>> fis load -l vmlinux.bin.l7
>> exec                 //起動用スクリプト
>> //enterしてスルー
Boot script timeout (1000ms resolution): 3
Use BOOTP for network configuration: false 
enterしてスルー
Gateway IP address:
enterしてスルー
Local IP address: 192.168.3.1
enterしてスルー
Local IP address mask:
enterしてスルー
Default server IP address: 192.168.1.10
Console baud rate: 9600 //ここはRedBootのシリアルボーレートの設定。 変える必要はなし(動かすディストリによっては、速度が変わるため、ボーレート変更が必要なこともある)
enterしてスルー
GDB connection port: 9000
enterしてスルー
Force console for special debug messages: false
enterしてスルー
Network debug at boot time: false
enterしてスルー
Update RedBoot non-volatile configuration - continue (y/n)? y
... Erase from 0xa87e0000-0xa87f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .
RedBoot> reset                     //システムを再起動
... Resetting.  



 成功すると、長々と起動ステータスが表示されて  Open-WRTが現れる



BusyBox v1.11.2 (2009 time UTC) built-in shell (ash)
Enter 'help' for a list of built-in commands.
_______ ________ __
| |.-----.-----.-----.| | | |.----.| |_
| - || _ | -__| || | | || _|| _|
|_______|| __|_____|__|__||________||__| |____|
|__| W I R E L E S S F R E E D O M
KAMIKAZE (8.09.1, r16278) ----------------------------
* 10 oz Vodka Shake well with ice and strain
* 10 oz Triple sec mixture into 10 shot glasses.
* 10 oz lime juice Salute!
---------------------------------------------------

root@(none):/#

Popular posts

Arduino Nano Everyを試す

 秋月で売っていたAtmega8と、感光基板でエッチングしたArduino互換ボードを製作してみて、次に本家ボードも買って…  と気が付いたら10年が経過していた。  ハードウェア的な観点では、今は32bitMCUの低価格化、高性能化、低消費電力化が著しい。動作周波数も100MHz超えが当たり前で、30mA程度しか消費しない。  動作電圧範囲が広く、単純な8ビットMCUが不要になることはまだないだろうけど、クラシックなAVRマイコンは値上がりしており、価格競争力は無くなりつつある。 そしてコモディティ化により、公式ボードでは不可能な値付けの安価な互換ボードがたいていの需要を満たすようになってしまった。     Arduino Nano Every https://store.arduino.cc/usa/nano-every https://www.arduino.cc/en/Guide/NANOEvery  そんな中、Arduino本家がリリースした新しいNanoボードの一つ。  他のボード2種はATSAMD21(Cortex-M0+)と無線モジュールを搭載したArduino zero(生産終了済み)ベースのIoT向けボードだが、 Nano EveryはWifi Rev2と同じくAtmega4809を採用していて、安価で5V単電源な8ビットAVRボードだ。  Atmega4809はATmegaと名がついているが、アーキテクチャはXMEGAベースとなり、クラシックAVRとの間にレジスタレベルの互換性は無い。   https://blog.kemushicomputer.com/2018/08/megaavr0.html  もちろん、ArduinoとしてはArduinoAPIのみで記述されたスケッチやライブラリは普通に動作するし、Nano Every用のボードオプションとして、I/Oレジスタ操作についてはAPIでエミュレーションするコンパイルオプション(328Pモード)がある。 公式のMegaAVR0ボードはどれもブートローダーを使わず、オンボードデバッガで直接書き込みを行っている。  ボードを観察してみると、プログラマ・USBCDCとしてATSAMD21が搭載されている(中央の四角いQFNパッケージ)MCU的にはnEDBG

ATmega4809(megaAVR0)を試す

megaAVR 0という新しいAVRシリーズを試してみた。  小さいパッケージなのに、UARTが4本もあるのが気になったのがきっかけ。 登場すると噂の Arduino Uno Wifi rev2  にも採用されるらしい。  簡単にデータシートを眺めてみると、アーキテクチャはXmegaシリーズを簡素化し、動作電圧範囲を広げたもののようだ。  CPUの命令セットはAVRxtと新しくなっているが、Xmegaで拡張された一部の命令(DESやUSBで使われる命令)が削除されていて、基本的に今までのATmegaとほぼ同じだ。  コンパイラからは、先に登場した新しいtinyAVR0, tinyAVR1シリーズと共にAVR8Xと呼ばれて区別されている。  CPU周りを見てみると、割り込みレベルなど、今までのクラシックなATmegaで足りないなと思っていたものがかなり強化されていた。 ArduinoAPIを再実装するとしたら便利そうなペリフェラルもだいたい揃っている。 データシート P6  DMAは無いけれど、周辺機能にイベント駆動用の割り込みネットワークが張り巡らされているのがわかる。  できるだけCPUを介在させない使い方がいろいろ提案されているので、アプリケーションノートやマニュアルを読み込むことになる。 ピックアップした特徴 ・データメモリ空間(64kB)に統合されたFlashROMとEEPROM ・RAM 6kB ROM 最大48kB (メモリ空間制限のため) ・デバッグ専用の端子 UPDIを搭載 ・優先度付きの割り込み(NMIと2レベル) ・ピン単位の割り込み(かなり複雑になった) ・リセットコントローラ(ソフトウェアリセット用レジスタが実装され、リセット原因が何だったかもリセット後に読み出せるようになった) ・豊富な16ビットタイマ(4809では5基) ・16ビット リアルタイムカウンタ(RTC) ・豊富な非同期シリアル/同期シリアル(USART 4ch、SPI 1ch,TWI 1ch) ・内蔵クロックは最高20MHz(PLL)と32kHzの2種類。外部クロックは発振器と時計用水晶のみ ・ADCは10bit 16ch ・内蔵VREF電圧が5種類と多い(0.55V,1.1V,1.5V.2.5V.4.3V

GPSアンテナをつくる

GPSアンテナを作ってみた。 1575MHzの波長は約19cmなので、半波長で9.5cmとなる。 GHz帯とはいえ、結構長いものだなぁ。 セラミック等の誘電体がなければ、平面アンテナで真面目に半波長アンテナを作ろうとすると手のひらサイズの面積が必要になってしまう。 普通のダイポールだと指向性があるので、交差させてクロスダイポールにする。 屋外地上局のアマチュア衛星用アンテナの設計をそのまま縮小したもの。 水平パターンはややいびつ 92.2mmの真鍮の針金(Φ=0.5mmくらい)を2本用意して、42.3mmで90°に曲げる。 長さの同じ素子同士を並べて配置する。 (全長が半波長より長い素子と短い素子が交差した状態) 片方をアンテナ信号線、もう片方をGNDにつなげば完成。 実際5分くらいでつくったけれど、果たしてどうだろうか。 今回は、道具箱に眠っていた表面実装タイプのMT3339系モジュールに取り付けた。 アンテナはもともと3x1.2mm程度のとても小さいチップアンテナで、 LNAが入っているけど感度が悪かったのでお蔵入りしていた代物。 最近の携帯機器はみなアンテナに厳しい。 さて・・・ クロスダイポール版モジュールをPCでモニタしたウインドウ(左)と、QZ-Rader画面 東側に建物遮蔽があるので、そちら側の衛星はSNが悪い。 とりあえず補足できた衛星数はシミュレーションされたものとほぼおなじだった。 アンテナの角度をいろいろ振って、逆さまにしてもロストすることはなかった。 セラミックのパッチアンテナレベルにはなったかな・・・。 簡単にできてそれなりに測位するけれど、携帯性は皆無になった。 あと、近接周波数の干渉を受けやすいかもしれない。 GPSアンテナのDIY例としては、QFHアンテナもある。 ラジオゾンデなどで使われている例がある。 いつもお世話になっているQFHアンテナ計算シートのサイト https://www.jcoppens.com/ant/qfh/fotos_gps.en.php ヘリカルアンテナは加工精度の難易度が上がるので、今回はクロスダイポールにした。 GNSSとなると、複数の周波数のために調整されているセラミックパッチアンテナが有利だと思う。 セラミックパッチア

人工衛星の住む軌道 (とKSP)

相乗り衛星の軌道を、Kerbal Space Programで再現してみた。 現実の軌道をいくつかシミュレートしてみる。  衛星の行き先は、わりと限られた範囲に集中している。 低軌道(300~400km)  CubeSat級の衛星にはHotな軌道。 わずかに存在する気体分子や電離した原子が抵抗となるため、半年ほどで大気圏に再突入してしまうが、それゆえデブリ化の危険がほとんどない。 断面積と重量により、軌道寿命の差が極端にひらく。 基本的には地球の影に定期的はいることもあり、電力収支、熱環境共に厳しい。  投入手段: ISSからの放出、低軌道観測衛星への相乗り。 最近はISSに直接装置を設置する例も増えてきた。 極軌道(太陽同期軌道)(600~1000km)   観測衛星の天国。 軌道傾斜角が赤道と直行するような軌道。 特に太陽同期軌道では数日~数週毎に同じ地点の上空を通過するため、地表をまんべんなく安定した条件で観察できる。  太陽と軌道円の角度によっては、数週間~数ヶ月は日照状態が続くので電力不足に陥りにくい。  初期のCubeSatをはじめ、数十キロ級のマイクロサットなどが数多く投入され、今も投入されている軌道。  ただし、軌道が高くなるにつれ軌道寿命が延びることになる。 多くの衛星が周回していることもあり、長い軌道寿命の中で、交差、衝突する可能性が無視できなくなりつつある。 現在ではデブリ化を防ぐための取り組みがはじまっている。 参考文献: http://www.spacenews.com/article/civil-space/4207665th-international-astronautical-congress-cubesat-revolution-spotty 楕円軌道(数百~数千km)  宇宙開発初期のロケットで多かった軌道。 モルニア軌道を除くと利用例は少ない。静止軌道へ投入される主衛星との相乗りで、トランスファ軌道で放出されるものは存在していた。  投入例としては、アマチュア衛星( Phase-3シリーズ )がある。 かつては数基のアマチュア衛星で、地球をカバーして通信しようという計画があった。  近地点が数百kmだと、ヴァン・アレン帯を毎回横切ることになり、荷電粒子によって電子機器や太陽