Tag Archives: Mac

Raspberry Piをモニタ等無しでMacから使えるようにする方法

7
Filed under RaspberryPi
Tagged as , ,

このブログでは書いていませんでしたが、先月Raspberry Piを購入し、すでにディスプレイ、キーボード、マウスを繋いでNOOBS使ってOS入れたり、ちょこっと仕事に使ったりしていました。
ですが、ちょっとした作業のたびにモニタをラズパイに専有されるのがイヤだな〜(Macでメインに使っているし〜)と思っていたのです。
その解決方法が見つかったので、試してみました!
しかも、SDカードへのOSのインストールから、ディスプレイ、モニタ、マウス無しでやってみます。

Raspberry Pi Model B+ (Plus)

Raspberry Pi Model B+ (Plus)

中古価格: ¥ 7,000 より

Amazon価格:¥ 4,180

カテゴリ:Tools & Hardware


最終形と問題点

まず最初に、今回のエントリの最終形を図にしておきます。これで分かる人はこの後続く長いエントリは読まなくてOK!
Mac, Raspberry Pi, LAN
接続の方法としては、Macの有線LANポートを作り、そこにインターネット共有を設定し、Raspberry Piに有線LANで繋いで、SSHで入る、という形になります。これならMacがWi-Fiでインターネットにつながっていたら(普通つながっていますよね?)、MacもRaspberry Piも外のインターネットに繋がるという幸せな状態です!
基本的にはこれでOKなのですが、「ディスプレイ、キーボード、マウスを一度も繋がない」となると問題点が2つ出てきます。
1. SDカードへのOSインストールにNOOBSを使えない
2. RaspberryPiに振られたIPアドレスがわからない
これらへの対応がメインとなります。

SDカードにOSイメージを焼く

まずはMacのブラウザで下記URLにアクセスし、適当なOSイメージをダウンロードします。
Downloads | Raspberry Pi
迷ったら、Raspbianでいいと思います。
ダウンロードが終わったら、展開すると、.imgという拡張子のファイルが出てきます。
次は、ターミナルを開いて、このファイルがある場所に移動します。

$ sudo dd bs=1ms if=2014-06-20-wheezy-raspbian.img of=/dev/disk1

という感じのコマンドでイメージを焼くのですが、作業環境によってもちろん引数は変わります。
ディスクイメージのところはダウンロードして焼きたいOSイメージを指定します。
最後のofに与える引数はSDカードのデバイス名を与えるわけですが、これは diskutil list というコマンドで確認できます。
mac osx diskutil list
例えば、上図のようになっていると思いますが、この場合、/dev/disk1 を指定するわけです。
/dev/disk1 を指定したい場合に、of=/dev/rdisk1 と”r”をつけて指定すると、アンバッファモードでの転送になり転送が高速(約20倍!)になります(2016/08/14 追記。ななしさん、ありがとうございました!)
ddコマンドを実行した時、デバイスがbusyである、というようなエラーが出ることがあります。この場合、マウントを外す必要があるので、「ディスクユーティリティ」アプリ (/Applications/Utilities/Disk\ Utility.app) を起動して、「マウント解除」を行います。(「ディスクを取り出す」ではないので注意!)
Mac ディスクユーティリティ マウント解除

されて、これで上記のddコマンドを実行完了したらSDカード作成は完了なのですが、、実は、かなり時間がかかります!
Raspbianをmicro SDカードにコピーしたら、大体1時間ちょっとかかりました。
正直、NOOBSからOSインストールをしたほうが良かったかなー、と若干後悔するレベルです。
しかも、このddコマンド後、進捗状態が表示されません!
(実は、完全にフリーズしたかと思い、キャンセルしたりしてしまいました…)
でも、ご安心を!!
Control+Tを押すと、その時点での転送完了バイト数や平均転送速度が表示されます!

処理が完了すると、特にメッセージもなく、シェルがコマンド待ち状態に戻ります。
(インストール完了後にcheers!的なアイコンを表示する最近のパッケージとは大違いw)
しかし!!何はともあれ、今はモニタとか無しで環境を作るのが第一義にあります!

インターネット共有

ここで、Mac側のインターネット共有の準備をしておきます。
最近のMacBookには有線LANポートがないので、ThunderBoltなどの変換器を用意します。

Apple Thunderbolt-ギガビットEthernetアダプタ MD463ZM/A

Apple Thunderbolt-ギガビットEthernetアダプタ MD463ZM/A

定価:¥ 2,880

Amazon価格:¥ 3,980

カテゴリ:Personal Computers

発売日:2012-06-13



最近はUSBハブも付いたものがありますので、これも良さそうです!

アマゾンのサーバでエラーが起こっているかもしれません。
一度ページを再読み込みしてみてください。

システム環境設定>共有>インターネット共有を選択します。
『共有する接続経路』には外に出ていく経路(今回はWi-Fi)、『相手のコンピュータが使用するポート』にはRaspberry Piがつながるポートを指定します。
Mac インターネット共有
最後に、左側の「インターネット共有」の「入」にチェックを入れて完了です。

Raspberry Piを起動、IP探し

さぁ、いよいよ起動です!
SDカードをMacから外して、Raspberry Piに挿します。
LANコネクタにLANケーブルを接続します。
そして電源USBを挿すと、Raspberry Piの起動です!
ACTのLEDがチカチカしはじめます。Raspberry PiがTypeB+ならLANコネクタのLEDも点滅します!
さて、SSHで接続するわけですが、ここでRaspberry Piに振られたIPがわからない、という2つ目の問題にぶち当たります。
これはとりあえず、地道に調べるしかないようです。
まずはifconfig
ズラズラーっと出ますが、私の環境では下記のような箇所があります。これがThunderboltに挿したLANコネクタのブリッジしているところだと思われます。

$ ifconfig
(略)
bridge100: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	options=3<RXCSUM,TXCSUM>
	ether 3e:1e:33:3e:e9:33 
	inet 192.168.2.1 netmask 0xffffff00 broadcast 192.168.2.255
	Configuration:
		id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0
		maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200
		root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0
		ipfilter disabled flags 0x2
	member: en4 flags=3<LEARNING,DISCOVER>
	        ifmaxaddr 0 port 7 priority 0 path cost 0
	media: autoselect
	status: active

192.168.2.1というのがあり、ここから192.168.2.255までがおそらく、割り当てられているわけで、
ここの辺だと当たりをつけます。
さらにもうひとつ、arpというコマンドを使うと良いらしいので試してみると次のような結果が出ました。

$ arp -a
? (169.254.255.255) at ff:ff:ff:ff:ff:ff on en4 [ethernet]
? (192.168.1.1) at 8:21:bb:a7:83:11 on en0 ifscope [ethernet]
? (192.168.1.101) at 2c:bb:e1:23:71:a3 on en0 ifscope [ethernet]
? (192.168.1.255) at ff:ff:ff:ff:ff:ff on en0 ifscope [ethernet]
? (192.168.2.1) at 2e:15:bb:1d:d9:13 on bridge100 ifscope permanent [bridge]
? (192.168.2.2) at 28:17:bb:1f:b6:13 on bridge100 ifscope [bridge]
? (192.168.2.255) at ff:ff:ff:ff:ff:ff on bridge100 ifscope [bridge]

これを見ると、どうやら、192.168.2.2っぽいなー、と絞り込めるわけです。
SSHでログインしてみます。Raspbianの初期アカウントとパスワードはpi/raspberryなので、そのとおりに指定ます。

$ ssh pi@192.168.2.2
pi@192.168.2.2's password: <ここでパスワードを入力>
Linux raspberrypi 3.12.22+ #691 PREEMPT Wed Jun 18 18:29:58 BST 2014 armv6l
(略)

無事ログインできました!
抜けるときにはexitします。
電源を切る時には、USBを抜いてもいいし、sudo haltしてもOKです。

SSHで怒られた時

OSを入れなおしたりしてIPアドレスが変わらない場合にはSSHでログインしようとしたときに「WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!」等の警告文が出ることがあります。
一度保存した鍵が合わなくて、サーバがクラックされているのでは?という親切なメッセージです。
適当なエディタ(emacsでもvimでも)で、Mac上のknown_hostsファイルを編集することで対応出来ます。

$ emacs ~/.ssh/known_hosts

今接続しようとしたIPが先頭にある行を探し、その行を削除することで対応は完了です。
もう一度SSHを試してみましよう。

以上!

これで、Raspberry Piを始めるのに、モニタやマウスやキーボードを用意する必要はありません!と言い切れるようになりました!
しかも、持ち歩き時の荷物も減ったので、カフェでラズベリーパイを食べながらRaspberry Piをいじる、なんてこともできますね!


アマゾンのサーバでエラーが起こっているかもしれません。
一度ページを再読み込みしてみてください。


Raspberry Piクックブック (Make:PROJECTS)

著者/訳者:Simon Monk

出版社:オライリージャパン( 2014-08-23 )

定価:

Amazon価格:¥ 3,671

大型本 ( 384 ページ )

ISBN-10 : 4873116902

ISBN-13 : 9784873116907


WIMAXが遅くなったと思ってたら原因が見つかった!

0
Filed under Mac
Tagged as , ,

1ヶ月位前から、なんだかWIMAXが異常に重いなー、と悩んでいました。

Wi-Fi WALKER WiMAX HWD13 [ホワイト]

Wi-Fi WALKER WiMAX HWD13 [ホワイト]

中古価格: ¥ 285 より

Amazon価格:¥ 2,700

カテゴリ:エレクトロニクス



仕事でメインで使っているので、これが遅いと非常に困る。というか、昨日まで困っていました!
Dropboxの同期が終わらないとか、致命的。。
契約してもうすぐ2年、ずーっとバリバリ使っていましたが、WIMAXなのでパケット制限とかあるわけでもないし、何?会社の近くのWIMAXアンテナとかなくなったのか?とか疑ってしまいました。
場所が悪いのか?(でも全く同じ場所でこれまで使えていたし)動かしてみても、8月になっても状況が変わらないので、auに行って(契約はauなので)聞いてみました。
しかし、
「パソコン側のWi-Fi設定を一度クリアして再設定してみてください」
「本体のリセットボタンを押して再設定してみてください」
「それがダメなら修理ですかねー」
という感じで、なんとなく、こちらとしても「それは違うんじゃないかなー」という回答しか得られなかったのです。
もう諦めかけていたのですが、今朝、解決しました!

結論:Wi-Fi WALKERの設定を変える

「11b/g/n」となっているWLAN設定を「11b/g」に切り替えると良いらしい、という情報を入手したのです!
「Wifiの通信速度が遅い | Apple サポートコミュニティ」
早速ブラウザからWi-Fi WALKERの設定画面にアクセスして設定してみます。
http://wi-fiwalker.home
特にパスワードとか要らないので、そのまま設定します。
WiFi Walker設定 11b/g
これで私の場合も改善しました!良かった!

原因?

ではなぜ、これまで遅くなかったのか?という疑問が出てきます。
そういえば、1ヶ月前といえば、今のMacBook Pro (Late 2013)に買い替えた時期です!
これに買い替えてから、という時期になるので、古いMacBook Pro (Mid 2009)では問題が発生しなかったのかもしれません。

アマゾンのサーバでエラーが起こっているかもしれません。
一度ページを再読み込みしてみてください。

補足:通信速度メモ

いつものBNRスピードテストで測定してみた速度をメモしておきます。

・設定変更前(遅いとき)

—— BNRスピードテスト (ダウンロード速度) ——
1.NTTPC(WebARENA)1: 1.04Mbps (128.82KB/sec)
2.NTTPC(WebARENA)2: 110.18Kbps (13.74KB/sec)
推定転送速度: 1.04Mbps (128.82KB/sec)
————————————————–

2つ目の「2.NTTPC(WebARENA)2」が異常に違うのが問題のようですね。
この違いは回線の違いかな。確かに特定のサーバへのアクセスが遅いような感じでしたので。

・設定変更後(改良後)

—— BNRスピードテスト (ダウンロード速度) ——
1.NTTPC(WebARENA)1: 1.05Mbps (131.41KB/sec)
2.NTTPC(WebARENA)2: 886.56Kbps (109.93KB/sec)
推定転送速度: 1.05Mbps (131.41KB/sec)
————————————————–

2つ目の速度が改善されたのが一目でわかります!良かった!

iOSアプリのドキュメントはOmniGraffleで解決!

0
Filed under Mac, 仕事ツール
Tagged as , , ,

先日、たまたま発見したのですが、XcodeのプロジェクトファイルをOmniGraffleで開くことが出来ます!
OmniGraffle
実は、たまたまファイルとアプリの関連付けがおかしく、意図せず開いてしまったので、開いている最中、なんでこんな関連付けになってしまったんだろー。と不思議に思っていました。

クラス図!

ですが、開いて驚いたのですが、OmniGraffleはxcodeprojファイルを開く機能をきちんと備えており、なんと、クラス図を作ってくれるのです!
OmniGraffle opens Xcode Project
もちろん、OmniGraffleのオブジェクトとして配置されているので、すべてを自由に編集可能です。
クラスの派生構造を階層構造として保持しているので、OmniGraffleの自由レイアウト機能にも対応しています!

使い道

使い道ですが、複雑化したプロジェクトのクラス構成を一覧するにはとても良いと思います。
もちろん、クラス図として使わなくても、画面遷移のメモを作るのとかにも下地としてあると便利ですよね。
※今どきドキュメントなんて書かない!という人もいるかと思いますが、個人的にはエンジニアだろうが作図くらいサクッと出来てあたりまえだと考えています。

OmniGraffle最新版でも!

ちなみに、私の環境は、OmniGraffle Pro 5.4.4です。
アップグレードでも$99.99する上に、特段困っていないので、バージョンを上げていませんが、最新版は6.xとなります。
OmniGraffle6のマニュアルは英語ですが、iBooksで無料で取得出来ます。

このマニュアルで調べた所、Pro版だけですが、どうやら問題なく使えるようで、Xcodeプロジェクトや.pbproj、.framework、さらには.nibファイルも開けるようです!

OmniGraffle、ヤバい!

Unityビルド後の処理について

0
Filed under Unity
Tagged as , , , ,

UnityでiPhoneビルドした後、その処理で同時にファイルの処理をしてほしいことがあります。
Unity PostprocessBuild
例えば、xcodeprojファイルの中をいじるとか、ですね。
その方法を調べてみたら、まず見つかったのは、PostProcessBuildAttribute という方法。

PostProcessBuildAttributeで後処理

上記リンク先をみてみると、C#とJavaScriptの処理が書かれているので、これを適当なスクリプトファイルとして、 /Assets/Editor/に配置すればよいということらしいです。
例えば、JavaScriptで処理を書く場合、下記のような内容のスクリプトを /Assets/Editor/myPostprocessBuild.js と保存してビルドすれば、OnPostprocessBuild が実行されるわけです。

1
2
3
4
5
6
7
8
9
10
11
12
// myPostprocessBuild.js
#pragma strict
import UnityEditor.Callbacks;
@PostProcessBuild
 
static function OnPostprocessBuild(target : BuildTarget, pathToBuiltProject : String )
{
  Debug.Log( "myPostprocessBuild ---" );
  Debug.Log( pathToBuiltProject );
 
  // pathToBuiltProject は、Unity-iPhone.xcodeproj のあるディレクトリへのパス.
}

確かに実行されることを確認しました!

が、
なんか、
使いにくい。。

書き出されたファイルとかを処理するのは、Unity JavaScript(と私の力量)じゃ無理な気がします。。

他に方法がないかと調べたら、Perlとかで処理する方法がありました!
それが次の方法。
unity postprocessbuild scripts

PostprocessBuildPlayerで後処理

上記リンク先によると、“PostprocessBuildPlayer”という名前(拡張子なし)のファイルを /Assets/Editor/ 以下に配置しておくと、そのファイル内に書かれた、シェルスクリプトかPerlスクリプトが実行される、というわけです。
shスクリプトなら、そこから色々なスクリプトやプログラムを呼び出せると思うのですが、もう一気にいろいろ処理しちゃいたいので、今回はperlを選んでみました。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/usr/bin/perl
 
use strict;
 
my $installPath = $ARGV[0];
 
# The type of player built:
my $target = $ARGV[1];
 
# What optimizations are applied.
# At the moment either "" or "strip" when Strip debug symbols is selected.
my $optimization = $ARGV[2];
 
# The name of the company set in the project settings
my $companyName = $ARGV[3];
 
# The name of the product set in the project settings
my $productName = $ARGV[4];
 
# The default screen width of the player.
my $width = $ARGV[5];
 
# The default screen height of the player 
my $height = $ARGV[6];

これですね!
しかし、私の環境ではprintの出力がUnityのコンソールに書きだされなかったので、ついでに下記のようなスクリプトを追記しました。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# Build Time.
my $buildTime = localtime(time);
 
# Debug print to log.txt
open( LOGFILE, "+>>log.txt" );
 
print LOGFILE "BUILD LOG --- $buildTime\n";
print LOGFILE "Install Path: $installPath\n";
print LOGFILE "Target      : $target\n";
print LOGFILE "Optimization: $optimization\n";
print LOGFILE "Company Name: $companyName\n";
print LOGFILE "Product Name: $productName\n";
print LOGFILE "Width       : $width\n";
print LOGFILE "Height      : $height\n";
print LOGFILE "\n";
 
close( LOGFILE );

プロジェクトフォルダにlog.txtというファイルが作成され、無事、下記のような出力がなされていることが確認されました!

1
2
3
4
5
6
7
8
BUILD LOG --- Wed Jun 26 15:58:20 2013
Install Path: /prj/201306-Test/Test
Target      : iPhone
Optimization: strip
Company Name: DefaultCompany
Product Name: 201306-Test
Width       : 1024
Height      : 768

これでできることが色々増えました!


[AD]

↓ちょっとした空き時間にiPhoneで見るのにベスト!

↓面白かったので全4巻購入しちゃいました!

限界集落(ギリギリ)温泉第一巻

限界集落(ギリギリ)温泉第一巻

カテゴリ:Kindle版

発売日:2013-01-05