ラベル Mac の投稿を表示しています。 すべての投稿を表示
ラベル Mac の投稿を表示しています。 すべての投稿を表示

2016/12/26

Mac + VirtualBox + CentOS + Vivado/SDK

Xilinx の SDK から MicroBlaze にアクセスできなくて困ってたら、知人に以下のリンクを教えてもらいどうにか Hello world までこぎつけました。ありがとー!Kノキ。

だったはずなのですが。。年明けて '17/1/3 に再度お試しするも、うまくいかず。。一応記事は残しておきます↓

http://samurai375.hatenablog.jp/entry/2016/08/12/125107
このブログの前の記事も参照のこと(該当する記事は 1〜4 の4回に分かれてます)。

この際 Win マシンを買っちゃうかとも思ったけど〜。買わずに済んだと思います。
やれやれ。

とりあえず今まで構築してきた Ubuntu 環境でこのブログのように RXTXcomm.jar と librxtxSerial.so を入れ替えてみたつもりでしたがうまくいかず、あまり深追いするきもなかったので、参考にしたブログと同じ OS にしちゃえと CentOS も新規導入してみました。

では忘れないようメモ程度に軽く手順を書いておきます。


1. CentOSVirtualBox にインストールする
ルートパーティションは Vivado (デフォルトで /opt/Xilinx 以下にインストールされる)を入れることを考えて 80GB ぐらいは確保しておいた方が無難 Vivado 結構大きくて 50G~60G ぐらい使うから。Vivado のライセンスファイル発行にホスト名が必要なので適当なホスト名に変えておく。
ちなみに VirtualBox の設定で CPU x1 のままでインストールしてたら劇遅でした。。x2 にしたらまともになってきた。

2. 足りない library などを入れる
% sudo yum update
% sudo yum install ld-linux.so.2
% sudo yum install libstdc++.so.6
% sudo yum install libz.so.1
えーと、多分これだけで良いと思います。上記ブログより。
多分とは、自分は別なブログ参考にいくつかライブラリ入れた後に足りない分を入れましたので。
に従って足りないライブラリ調査してみた方がいいかも。

3. Vivado をインストール
以前ウェブインストーラーでもインストールしたことはあるのですが(Ubuntu で)、2016.4 リリース直後にウェブインストーラーを試したら遅すぎだったので全てのOSインストーラーを Mac 側に落としてきて共有フォルダに置いたデータからインストールしました。CentOS でダウンロードしても構わないのですが、自分の場合は色々な OS でお試ししてたこともあって Mac 側に落としてました。
共有フォルダにアクセスするには (% sudo gpasswd -a vboxsf が必要ですね)
% cd <共有フォルダ>/Xilinx_Vivado_SDK_2016.4_1215_1
% sudo sh xsetup

Vivado のインストール後でいいです。ホスト名と MAC アドレス(% ifconfig で確認できる)が必要。CentOS だと enp0s3 の ether: 。Vivado 起動後に Help -> Manage License からライセンスファイル Xilinx.lic をロードすれば OK です。ライセンスの種類は Arty には Design Edition が付属してくるのでそれを使っています。期限は一年間のようです。多分そのあとも使えないわけじゃなくて、新しいツールが入手できないだけだと思います。

5. ケーブルドライバをインストール
bitstream をダウンロードするのに必要です。
% cd /opt/Xilinx/Vivado/2016.4/data/xicom/cable_drivers/lin64/install_script/install_drivers
% sudo sh install_digilent.sh
% sudo sh install_drivers

シリアルポート(/dev/ttyUSB*) にユーザー権限でアクセスするために、
% sudo gpasswd -a dialout
で dialout グループに自分を追加。

6. RXTX をインストール
SDK を使うにはこれが必要です。使わないならいらないと思います。
手動でやっちゃったのですが、rxtx-2.2pre2-bins.zip を落としてきて、
RXTXcomm.jar を Java のインストールしてあるディレクトリ
/etc/alternative/lib/ext/jre_1.8.0 以下にコピー。
/opt/Xilinx/SDK/2016.4/eclipse/lnx64.o/plugins/gnu.io.rxtx.linux.x86_64_2.1.7.3_v20071015/os/linux/x86_64 以下の librxtxSerial.so, librxtxParallel.so を入れ替えます。
念のためオリジナルは mv して *.org とでも名前変えて残しておきます。

インストール作業はこれぐらいだったと思います。

あとは任意のディレクトリから Vivado を起動するのですが、
% source /opt/Xilinx/Vivado/2016.4/setting64.sh (sh, bash 系)
と設定をソースしてから vivado を起動することを忘れないように。
% vivado

Digilent の Arty などのボードは FPGA の bitstream, SDK からの MicroBlaze のプログラムのダウンロードとしての JTAG 用のUSBケーブルがシリアル通信用のケーブルと兼用できます(FTDI の FT2232 通して)。CentOS だと /dev/ttyUSB1 がシリアルポート(Virtual COM port VCP)として見えます。Arty で USB UART モジュールをインスタンスして自動配線すると、この UART が /dev/ttyUSB1 経由でアクセスすることができるようになります。
この UART に CentOS でターミナルソフトから /dev/ttyUSB1 をオープンしても良いし、簡単には SDK の SDK Terminal で + ボタンをクリックし、/dev/ttyUSB1 を選択することでも UART にアクセスすることが可能です。ターミナルソフトとしては minicom など。お好きなのを探してみてください。


最後に今回インストールに使ったハードやらソフトやらのバージョンなどについて。

MacBook Pro (Retina 15-inch, Mid 2015) Core i7 2.2GHz, MEM 16GB
macOS Sierra 10.12.2
VirtualBox 5.0.30 (仮想マシンに CPUx2, MEM8GB 割り当て)
CentOS CentOS-7-x86_64-DVD-1611.iso
Vivado Xilinx_Vivado_SDK_2016.4_1215_1
RXTX rxtx-2.2pre2-bins

です。
この環境で MicroBlaze の getting started で bitstream を生成する時間は 20分ぐらいだったかな。。もう一度後で試してみるけど。プログラムのダウンロードから実行までは案外時間かかります。ようやく Hello world 出たと言った感じ。

ところでこの手のツールはそろそろ Mac にも対応して欲しいなぁ。
Linux 版があったり、Eclips 使ってたりと移植簡単じゃん?と思うんだけど。
メーカーの皆様、是非ともよろしくお願いします。

2016/11/05

Vivado インストール


Digilent の ARTY (Xilinx Artix-7) 買ってみました。DigiKey で(秋月でも買えますが、こっちの方が若干安かったので)。ということで、早速 Vivado をインストールしてみました。

我が家の PC は MacBook Pro (mid 2015) のみ。残念ながら Vivado は Mac に対応してないので、仮想マシン上の Windows か Linux にインストールするしかありません。また Mac (10.12.1 Sierra) に入れてる VirtualBox (5.0.23) の Windows は Win10 32bit 版。残念ながら Windows 版 Vivado は 32bit には対応してません。このために Win10 64bit 版を買うのも勿体無いので、Ubuntu に入れてみることにしました。

実は ISE を入れるために Ubuntu 14.x を導入してはいたのだけど、Vivado は Ubuntu 16.x 対応と書かれているので、ディスクスペースの都合もあって新たに Ubuntu 16.04 を入れました。

Vivado は Xilinx のhttps://japan.xilinx.com/support/download.html から Linux 用自己解凍型ウェブインストーラーを選びました。.bin ファイルがダウンロードできるのですが、これの実行方法が分からない!と思ったら単なるシェルスクリプトなんですね。

% sudo sh Xilinx_Vivado_SDK_2016.3_1011_1_Lin64.bin

でいいんじゃん。。悩みましたよ。Linux 用のインストーラーかと思ってましたが、全然違いました。

ARTY には Design Edition のライセンスが一年間ついてくるので、Design Edition を選んでインストール。ダウンロードには 2.5h ほどと出てたので、夜通しほっといたら朝には終わってました。

Vivado をインストールする過程で、License Manager から Web browser を開くタイミングがあるのですが、デフォルトでインストールされている Firefox ではうまくひらけなかったです。そこで、あらかじめ Google Chrome を導入しておけば問題なくライセンスの取得ができます。Chrome をインストールするとデフォルトのブラウザにするか?と聞かれるので、忘れずにデフォルトにしておくといいかも。

ところで、Chrome のインストールはハマる。以下を参考にすると良い。
http://robotics4society.com/2016/06/16/ubuntu-chrome/

ライセンスは Certificate Based License で、Virtual マシーンに付けたホスト名と ifconfig で調べた MAC アドレスを指定して Generate しました。

次に Digilent のドライバのインストールですが、インストールされていなかったので、手動で行いました。詳細は以下。

また root でインストールしちゃうと、~/.Xilinx が root で作られてしまって vivado 起動時に怒られてしまうので、~/.Xilinx は、

% sudo chown -R your_account ~/.Xilinx

とでもして自分のアカウントにオーナーを変えておきましょう。

あとは ARTY のボードの登録ですが、Digilent から board files をダウンロードしてきて、所定の場所に展開しておけば OK です。

ただ、Vivado_HLS に ARTY の設定をするには手動で行うしかないようです。
VivadoHls_boards.xml を落としてきて、ARTY の行だけ加えてあげれば良さそうです。
オリジナルのファイルは、

% find /opt/Xilinx/Vivado_HLS -name 'VivadoHls_boards.xml' -print

などで探してみて下さい。このファイルに ARTY のコンフィグを一行だけ挿入します。フォーラムにアップされてるファイルに置き換えてもいいのかもしれませんが、内容が古いと嫌なので、必要な部分のみの導入です。

ARTY を USB に挿して Vivado から Hardware Manager を起動すると認識したのでオッケーです。


とりあえずインストールはこんなところかなー。






2012/03/28

MacBook HDD 交換

MacBook Late 2008 (13-inch, Aluminum, Core 2 Duo 2.4GHz) の HDD を SSD+HDD のハイブリッドな物 Seagate の ST750LX003 (750GB, Cache 32MB, SSD 8GB, 7200rpm, SATA-III 6Gbps) に交換しました。ちなみにこの MacBook は Pro ではないのにアルミのユニボディー。公称4GBまで搭載出来るメモリーは実は8GBまで認識して使えます(もちろん8GB積んでますが)。また SATA-II (3Gbps) 対応なので、リンク速度は 3Gbps で認識しています。

通常はシステム終了(電源を落とさない)せずにフタを閉じてスリープにして使用しているので、電源投入からの起動時間については特に気にしていませんでした。改めて計測してみると OS Lion 10.7.3 で、いままで使用していた Hitachi HTS725050A9A364 (500GB, Cache 16MB, 7200rpm, SATA-II 3Gbps) では起動(ログイン画面が出るまで)106秒かかっていたのが、ST750LX003 では 34秒と結構速くなりました。

この HDD の場合通常のベンチマークはあまり役に立たないと思いますので、主観的な感想になってしまいますが、よく使うアプリケーションの起動が速くなったりとパフォーマンスの向上がはっきりと体感できます。自分にとっては Safari, Mail に次いでよく使う Aperture の起動が速くなったことが一番の収穫です。もっとも Aperture のライブラリは極力分割して小さくすることで更に起動速度を向上させましたが。

このハイブリッド HDD、速度と容量の両方を狙うには悪く無い選択肢だと思います。満足しています。

2011/02/13

ポケコンとMacをシリアルケーブルで繋ぐ

先日、知人と昔の趣味の話ついでに高校の頃から使っているポケコン(SHARP PC-1360K)の話をした。その後、無性にいじりたくなったので、会社の机に入れていたのを持ち帰って手始めにシリアルケーブルで接続してみた。このポケコンは今でもちゃんと使える。計算が非常に遅いし、他のポケコンのように関数キーが充実していないので使う事は無いけど。

さて我が愛機 PC-1360K には本体右手にシリアル入出力ポート(SIO)が付いている。15ピンで1.27mmピッチのようなので、まずは手持ちのパーツから自作コネクタを作成した。

丁度1.27mm->2.54mmピッチ変換基板を持っているのでピーカッターを使ってまっ二つに。










ピンヘッダからピンを抜く。











抜いたピンを PC-1360K の SIO に刺す。SIO は 15ピンなのだが、ピッチ変換基板は 14ピン。SIO 1ピンはフレームグランドなので、無視。グランドは信号グランドにてとるから良し。この時点で片面に予備半田を薄く載せておく。今回使用した基板は予備半田が載っていたので基板は予備半田してない。





位置を合わせたら、一本一本コテを当てて半田をしていく。














ヘッダピンを付ける。まだやってないが、1.27mm ピッチのピンは半田でかろうじて付いている状況。エポキシでも盛って強化しておきたい。実は半田が甘くて、実験中ピンが一本外れた。。ここでフロー制御無視のため 4ピン(RTS)と5ピン(CTS)をショートしてしまう。










実験用にRS-232C のメスコネクタとレベルシフタ(秋月で売ってる SP3232)を載せた万能基板を持っているので(RTS, CTS は基板上でショート)、電源, GND, TxD, RxD を IC クリップで接続すれば出来上がり。会社同僚のアドバイスの通り PC-1360K の TxD, RxD は極性が反転しているようなので、パーツボックスの中に見つけた 2SK1336 (NMOS) で簡易インバーターを作る(S->GND, G->SIO TxD, D->レベルシフタの TxD 入力、手持ちの10KΩを D、電源間を接続)。RxD はパーツ不足で保留(後で74HC04を見つけたが、DIP じゃないのでやる気がおきません)。






USB シリアルケーブルは Arvel の SRC06-USB。ドライバは FDTI 。FDTI のホームページには Mac のドライバもあるので、インストールしておく。うちでは /dev/cu.usbserial-FTDC6A59 で認識されている。

Mac (MacBook) 側はターミナルを開いて、標準付属の screen コマンドで、
% screen /dev/cu.usbserial-FTDC6A59 1200
を実行して受信準備。ポケコン側は、
> OPEN
> LPRINT "Hello World!"
と実行。結果が写真の通り。Mac のターミナルに表示されています♪





ちなみに PC-1360K のシリアル通信の最高速度は 1200bps 。これをデフォルトのパリティ無し、データ8ビット、ストップビット1の設定で実行してるのだけど、見てるとすごーく遅い。

余談。
ポケコン側の4ピン(RTS)と5ピン(CTS)をショートするのを忘れて、一日無駄にした。オシロが無いので動いているかどうかを判断するのが難しい。もちろんテスターはあるが。ポケコンから LPRINT を実行すると無反応になるので、その時点で気づくべきだった。またポケコンのボタン電池が弱っていたので、同じぐらいの電位を出力する USB ポートから直にポケコンに電源を与えていたのだけど、実験中にうっかりどこかにショートしたらしく、MacBook から 1A の過電流の警告を出してしまった。くわばらくわばら。
ちなみに SIO から受信するベーシックのコマンドが見当たらないのだが、気のせいか?レベルシフタを入れてから考えよう(INPUT#1でいいようだ。後で試そう)。

おしまい。

2009/02/20

エリカ様

昨日 Amazon より届きました。
エリカ様の名前は Web でちらほら見かけていたのですが、この本を執筆してたとは。。手元に届いてから始めて知りました。

Xcode の使い方や、iPhone Developer Program にもそれなりに触れてはいますがまるっきり初心者向けではありません。Objective-C の初歩は知っていることが前提で、iPhone SDK でチュートリアルは一応こなしたけど次なにしよう?という人向けです。

最初の例題から Interface Builder は使わないという、ある意味正統派?なアプローチがなされています。
2-3 章ではビューのドラッグというレシピが紹介されてるのですが、こんな単純な方法でドラッグできるとは。。目から鱗です。勉強になります。

2009/01/16

iPhone 本




年末に iPhone SDK プログラミング大全の発売をHMDT Journalの書き込みで知り、書店でちら見してから買おうかどうかと悩んだ挙げ句 amazon で注文。年明け早々引っ越しもあったので送り先は会社。発売早々の 1/8 に確実にゲットできました。
すごい売れ行きのようでもう増刷だそうです。書店で買おうとしていたらまだゲットできていなかったかも。。。

ところで、ようやく斜め読みしながらポチポチ試しはじめたところです。
既にお試しで基本的な UI を使ってアプリを一つ作ってみたことはあるので全くの素人というわけではありませんが、包括的にザックリ書かれた本書は自分のようなちょっとかじった人間にとってとっかかりに丁度よいかなと思ってます。他の本のように本棚の肥やしにならないようにせねば。

とりあえず iPhone のアプリ開発に興味があるならあって悪く無い本だと思います(よいしょっと。いや、ホント)。あと今更ですがここでプレゼントキャンペーンやってます〜。

2008/08/13

iPhone の同期


仕事柄、細かくスケジュールを管理することはないのでカレンダー系のソフトはあまり使っていなかった。でも iPhone 購入をきっかけにつかってみてる。そうするとついつい、個人のスケジュールと会社のスケジュールを両方詰め込みたくなるのだが、これが思ったようにいかない。最終的にはどうにかマージして運用をはじめた。

自分の場合、自宅の Mac + iCal と mobile me。会社は Microsoft Exchange。こういう環境である。
結論から言うと、会社の Win PC 上の Outlook と Mac の iCal でそれぞれ iTunes を使い同期をとることにした。

会社の IT は iPhone を正式にサポートしてはいないのだが VPN 接続でき、Exchange server の設定もちゃんとできる。メールもカレンダーも iPhone の気持ちのよいインターフェースで読めるし、会議の出席要請があれば iPhone から承諾できる。勿論 iPhone からメールを書いたり、スケジュールをカレンダーに書ける。
しかし、うちの会社の設定なのか、他の Exchange server も同様なのか、iPhone のセキュリティレベルがグンとアップする。具体的にはスリープ解除ボタンを押すたびにパスコードという最低5桁だったかな?を毎度入力しなければならなくなる。また一旦スリープ解除してパスコードを入力しても、最長で 5分以内にまたパスコードを入力しなければならない。これがすごく「うっとうしい」
しかも社内では他人のカレンダーを参照できるのだが、iPhone で書いたスケジュールはプライベート設定が無いので、同期直後で見せたくないスケジュールにプライベートのフラグを立てるまでは他人にプライベートなスケジュールを他人に見られる可能性がある。
あとはカレンダーのカテゴリーは Exchange に同期したとたん無くなってしまった。。知人の iPod touch OS 2.0 では Calendar というカテゴリーが表示されたようだけど自分のは無し。結局、会社のメールは見づらいけど Safari を使って読めるし、パスコードは面倒なのでこの方法は却下した。
Exchange に関連するカレンダーのカテゴリーやメールアカウントのデータにアクセスするときだけセキュリティを厳しくしてくれればいいのに。。。

他の手段として、Win 用の iTunes についている mobile me のツールを使って Outlook と mobile me の同期をとろうと試みたが、流石に会社の Fire Wall はそれを許さない。もちろんこれも却下。

ところで iPhone のカレンダーを mobile me に同期させると、Exchange, Outlook や iCal とは同期はとれない。mobile me から 3G or Wi-Fi 経由で同期がかかるのでご注意を。

最終的にカレンダーは mobile me での同期、及び Exchange の使用も諦め、Win PC 上の Outlook と Mac の iCal で同期をとることにした。データのマージはそれ程難しくはない。一旦 Win PC で iPhone に会社のスケジュールを入れ、Mac で同期をとるとデータをマージしてくるか上書きするかなど聞いてくるのでマージするにすればよい。もう一度 Win PC で同期をとると、Outlook にもそれが反映される。Outlook 側には iCal で使っていたカテゴリーの名前で新しいカレンダーが追加される(Outlook のカレンダーは Calendar という名前になる)。Calendar 以外のカテゴリーは他人からは見えないようなので、これで安心してプライベートなデータを手間をかけずに入力出来る。
ただ、最初に Mac の iCal のデータが入った iPhone を同様に Win に持っていってマージしようとしたけど、マージ中にエラーが出てうまくいかなかった。どっちを先に入れて、マージするかは試行錯誤が必要かも。

とりあえず、これで会社と自宅のスケジュールを同期することが出来たわけだ。残念ながら mobile me での変更は、iPhone にプッシュできないし、その逆もできない。もちろん Mac に接続して同期する場合は mobile me のデータと iCal の同期は可能なのでそこで始めてアップデートが全てになされる。もっとも iPhone を持ち歩くなら Web 経由で mobile me を見たり変更したりしないだろうし、現状で動作が遅く不安定な mobile me を使ってスケジュールなんぞ入力したくない。とりあえずやりたいことがだいたい出来たのでここらでカレンダーのマージは止めときます。

2007/02/08

Mac OS X で Perl/Tk

会社用のちょっとしたツールを作ろうと思ってうちでもデバックできるように環境を整えた。
参考にした Web http://homepage1.nifty.com/alchemy/tips/perl_tcl_tk.html

インストールした時の環境
Mac OS X 10.4.8 (Intel Mac)
Perl 5.8.6
gcc 4.0.1
Tk module Tk804.027

Tk module は CPAN から、
http://www.perl.com/CPAN/modules/by-module/Tk/
以下の
Tk-804.027.tar.gz
を持ってきてコンパイルした。

% perl Makefile.PL;make;sudo make install
でインストールはあっさり完了。

ちなみに参考にした Web に書いてあるとおり Mac OS X 10.4(Tiger) には Tcl/Tk Aqua が既にインストールされていた。

インストールの確認で以下のコードを実行。Terminal からでは実行できないが、X11 の xterm からは実行できる。

#!/usr/bin/perl

use Tk;

my $mw = MainWindow->new;
$mw->title ("Hello World");
$mw->Button(-text => "Done",
-command => sub {exit})->pack;
MainLoop;


UNIX 系のツールを使おうとするときは Mac OS X のありがたみを感じる。
まぁ、コンパイルがすんなり通らずに苦労することもあるけどね。