ページ

2013年8月27日火曜日

VPNの構築方法いろいろあるけれども

VPN構築

VPNの構築いろいろあるようです。

一般的には,
「ルータなどで拠点を結ぶのであればIPSec」,
「クライアントからサーバへの接続を提供したいのであればPPTP」,
「UNIXで簡単に暗号化したいのであればSSHフォワード」という選択肢になるようです。

VPNサーバーの設定
参考URL
1.PPTPでの方法

  (1)PPTP-1
   この方法は、LINUXのカーネルにパッチを入れるやり方でかなり古いLINUXサーバー向けです。

  (2)PPTP-2
   Linux用のPPTPサーバデーモンソフトとして「PopTop」を使用します。
   Windowsでは,PPTP接続を行うための手段が「仮想プライベートネットワーク」 
     --> 「MS-CHAPv2」を選択すれば可能です。

    (3)Windows7
    (2013年8月現在)今では、これが最も簡単です。Windows7が標準で実装してます。

   
2.IPsec

  LINUXにIPsec(L2TPD)をインストールしてVPNサーバーを構築できます。

3.SSL  

  LINUXにOpenVPN
  業界標準のSSL/TLSプロトコルを利用しているそうです。
  でもかなり面倒そうです。

 1-(3)が今や最も簡単です。技術の進歩はすごいものです。
 その場合でも、クライアントの設定で少しはまるポイントがありますので、書いておきます。

クライアントの設定
 Windows-XPの場合
 このURLにWindows-XPでの設定方法がかかれてますのでご参照ください。
ただ、ここであて先のホスト名またはIPアドレスとなっている部分、IPアドレスそのままを入力してもいいと思われますが、固定IPでない場合は、ダイナミックドメインサービス等で得ているドメイン名のみをいれます。ホストコンピュータ名は、エラーなく接続した後であれば、ネットワークで検索すれば出てきます。

 iPhoneの場合
   このURLを参照してください。 
iPhoneもVPNを活用でsきます。
この場合もサーバ設定の部分はIPアドレスでもいいですが、固定IPでない場合はドメイン名のみとなります。



2013年8月26日月曜日

プリンターの印刷が止まらない時の対処方法

プリンターで大量印刷した場合によくおきるのですが、プリンターの印刷が途中でエラーが発生して何回も印刷を最初から繰り返す場合があります。こうなると大変です。PCを再起動しても止まらないし、プリンターを再起動してもだめです。PCのスプーラーが記憶してしまっていて何回も最初から印刷を繰り返します。インクと紙がいくらあっても足りません。

そういう時の対処方法です。 
ネットで探すといくらでも出てきますが、再度整理しておきます。

タスクマネージャを起動します。
  spoolsv.exeをプロセス終了します。

 Windowsのシステムディレクトリにスプールフォルダを空にする。
  「C:\WINDOWS\system32\spool\PRINTERS」というディレクトリの中のファイルを削除します。

再起動する。
  再起動すると、プリンタのスプールが空っぽになっています。



2013年8月21日水曜日

FPGA(xilinx) verilogでXSTにブロックRAMを推論させる




 去年の暮れからFPGAをverilogで設計するという仕事に没頭しておりました。FPGAは、Xilinxから発表された当時(30年くらい前?)、新しいもの好きの私は、その頃高価なFPGAでトリプルポートのDRAMコントローラを画像処理用に作りました。ASICで作るよりは、FPGAで作るほうが、問題が起きた時に変更できるという利点もありましたが、高価でしたし、ゲート規模もPLDのお化けというような感じでたいしたものではなかったですが、結構設計に苦労しました。その当時まだ、論理合成なんていう便利なツールはなかったので、回路図レベルでまず設計しそれをFPGAエディターにCLBの中身を展開していくというなんとも大胆な方法で設計したものです。

 回路図をのままを設計ツールで論理合成した場合、その当時のパソコン(486レベル?)では、丸1日かかるというもので、使い物にならないというのがその理由でした。それからFPGAの設計からしばらく離れておりました。

 2012年は、verilogでの本格的な設計をはじめるきっかけとなりました。結構大規模なFPGA(xilinx)の設計で、spartan6のお世話になりました。技術の進歩は、すごいものです。しばらくFPGAから離れていただけで、タイムマシンで未来に来たかのごとく論理合成の時代は進歩していました。
 
  いろいろはまるところがありましたが、今回最も冷や汗を掻いたところは、最終段シミュレーションも大体終わり、論理合成、配置配線をしようとした時にデバイスに入りきらないというエラーが出たときです。もうボードの実装も上がり、デバイスの変更はできない状態でした。最初の想定では、デバイスの選定は問題ないはずですが、何回条件をいろいろ変えてもできなくて、悩んだのですが、聞いてみるとブロックRAMを想定して設計している部分を、論理合成ツールがブロックRAMと認識せずにCLBでRAMを構成してしまっていた事が原因でした。

 論理合成・配置配線で問題が出た場合は、ISEですと xxx.par とxxx.syr を、Planaheadですと xxx.srp とxxx.mrp を見て期待通りにブロックRAMを使って論理合成できているかを確認できます。期待するブロックRAMでできていない場合は、シュミレーションでは、動作するのですが、ブロックRAMとして認識できないような何らかの問題がRAM部の記述にあります。

 下記がブロックRAMの基本構造です。ブロックRAMの基本的な構造を理解する事で、この範囲を超えずに記述すればXSTは、ブロックRAMとして推論してくれます。完全な非同期のデュアルポートRAMを構成できます。IPブロックとして記述する方法もありますが、verilogで推論させたほうがスマートです。
心配であればコーディング途中で一度論理合成を走らせる事をお勧めします。後になって冷や汗を掻くよりは、事前にリスクを回避できれば、デバッグの効率もアップします。間違った記述でロジックを書き進めてしまってからでは、後の変更がたいへんですし、時間の浪費です。




































 どうしてもだめな場合は、(* RAM_STYLE="BLOCK" *)制約を追加する事で推論できるようになる可能性があります。基本的に上記ブロック構造を守っていればどんな複雑なロジックにしてもXSTは、ちゃんとブロックRAMとして推論してくれます。

 あたりまえのことですが、1つのデータポートにアクセスできるアドレスは1つです。この理解さえできていればブロックRAMは、攻略できます。

 XSTがブロックRAMとして推論しない認識しないと困られている皆様がんばってください。幸運を祈ります。

DOSブート USB-flashメモリーのつくり方

 フロッピーというメディアが世の中のパソコンからなくなってもうずいぶん経ちます。でもいまだにDOSブートは、必要です。仕事柄、最近は、もうインテル系の仕事も少なくなり、WindowsとかLinuxとかiOSとかしか使う機会がなくなってきてますので、DOSブートの方法を聞かれても思い出すのに一苦労です。なので、ここに備忘録として書いておきます。今日もユーザーから問い合わせがあって思い出すのに半日を費やしてしまいました。

フロッピーがあるパソコンでは、DOSブートフロッピーでDOS起動が従来通り起動できますが、フロッピードライブのついているパソコン自体を今ではほとんど見かけません。メディアも売ってません。ですので、現在はDOSブートは一般的には、USB-FLASHメモリーをDOS起動用に初期化して使います。 ネットには、この手のUSBメモリーのフォーマット情報たくさんありますので、いろいろ参考になるところを上げておきます。

・Windows98 でフォーマット
  2000/XP以降は、USBメモリーのフォーマットはできないようです。なので特にここでは、書きません。

 
HP USB Disk Storage Format Tool
  左は、HP社が提供する無償のツールです。 これでUSBメモリーをフォーマットするとDOSbootできるUSBメモリーができます。

dosブート usbメモリ
  他にもいろいろツールはあるようです。上記URLのツールでも可能です。




  
ただどの方法でも、USBメモリーを選ぶようで、あまり安いUSBFLASHメモリーを使うとブートできないという不具合に何回か見舞われました。通常のストレージで使う分には、全く問題ないのですが、ブートデバイスで使うとなると、使えないものがありました。(メーカー名はここでは、公表しません。)ですので、これで1回ブートに失敗してもあきらめないで、デバイスを変えてやれば成功します。

2013年8月20日火曜日

CPU付きのXbee はまってしまった落とし穴

Xbee(zigbee):特にProgrammable XBee-PRO ZBについてお困りのかたのために役にたつサイト、情報を整理しました。

 XBee(ZigBee)を今回のターゲットシステムで使用しました。非常によくできていているのですが、最初はきっとはまります。特に何か少しターゲットでCPUを使ってアプリを作りたいという場合は、これを使うと便利なのですが、全くといっていいくらい関連書籍とかネットにも情報がないので、はまります。同じような事でお悩みの方のために今回はまってしまった事項を整理します。基本的な事項はいろいろなサイトで説明されているので、省略します。

XBee-PRO ZB Extended-Range Programmable S2Bモジュール(PCBアンテナ)
余談ですが、このモジュール遠くから見るとなぜかどうもゴキブリのような気がするのは私だけでしょうか?

 まず最初の失敗は発注型番ミスです。XBee種類が多いです。CPU付のXBeeを使用予定でしたが、型番がよくわからず代理店に問い合わせて発注したのですが、その型番が間違ってました。

 基本的には、シリーズ1と2がありますが、各々出力レベルの違いでPRO版と通常版がわかれております。CPU付(Programmable)は、シリーズ2にしかなく、S2Bというものがありますが、これとCPU付(Programmable)とは、違うようですが、ただCPU付は、シリーズ2のPRO版(S2B)しかないようです。Programmable XBee-PRO ZB というのが、CPU付のXbeeの正式名称のようです。Xbeeの型番を検索するのは、このサイト(秋月)が最もわかり安いです。サポートいらないという自身のある方は、代理店から購入するよりもここからネット購入するのがいいかもしれません。

 内蔵CPUは、FreescaleのMC9S08QE32で低消費電力が売りのようです。H08コアと書いてあるのでARMでもないようです。その次に悩んだのがその構造でした。CPU付とCPU無しで全くPin番コンパチです。DIOとかUARTとかADCの入力ポートとかがついています。回路図がついているのですが、ものすごくシンプルなもので、きっと省略してるものと思い込んでいました。DIO等の信号を選択するためのスイッチ素子がついているものと思っており、いろいろ質問した結果そうではなく、ただ回路図のとおりワイヤードオアされているだけのものであるとわかりました。ですので、たとえば同一pinのDIOでリソースが2つある事になります。従来のXbee-radio部が持つIOリソースとCPUのIOリソースの2つです。これは、スイッチ素子でセレクトされません。間違って両方出力でイネーブルにconfigrationすると出力がぶつかる事になりますので、気をつけてください。

 なので、 Programmable XBee-PRO ZBの開発ツールには、configrationする部分が2つあります。1つは、ファームのconfig XCTUというツールを使ってXbbeのradio部のファームを読んだり書いたり設定できるところ、もう1つは、CPUのアプリ開発用のツールCodeWarriorには、config.xmlでCPUのIOリソースのconfigを設定できる部分があります。これを理解しておくと後の開発debugに役に立ちます。特にファームのDIOをPull-upする設定もありますが、このDIO部分と同一のアナログ入力をCPUで使う場合、ファームでDIO-Pull-upをイネーブルにするとアナログ電圧値に影響がありますので、要注意です。

 CPUのアプリ開発用のツールCodeWarriorには、まだまだBUGがあるようです。特にUART部分は、注意です。サンプルどおりに書いても動作しません。SDKに細工が必要なようです。代理店からもらったサンプルソースが全く動作せずに困り果てた末に得た回答は、SDKの修正が必要との事でこれだけでも1人月くらいの工数を浪費しました。試行錯誤の連続でした。アプリの書き込みボーレートはデフォルトの115200bpsのみでしかうまく動作しませんでした。radio部の通信レートも115200のほうがいいです。外部を9600bpsで動作させたい場合、CPUを使用する場合あえて同一レートにする必要もありません。CPUでアプリを作りさえすれば、どのようにでもできますので、今回のシステムでは、外部9600bpsで動かし、内部無線部は、115200bpsで構成しました。

 今回感じたことは、とにかくあきらめず、しつこく、試行錯誤の繰り返しで、いろいろ実際のボードでまず試して見ることが大事です。どうしてもだめな部分は、回避する事を考えるべきです。開発用ツールCodeWarriorには、膨大なサンプルソースがありますので、これを利用する事をまず考えるべきです。Programmable XBee-PRO ZB 非常によくできております。XBee単体での使用が最もシンプルですが、CPU付をお考えの方ぜひチャレンジしてください。外付けCPUをわざわざつける事もなく結構便利なアプリが構築できます。