いろんな技術にふれたい

いろんな技術に触れたい

日頃色々触れた技術を自分なりにまとめておきたいと思ってます。難しいものほどブログ書く時間がかかるのが問題・・・

情報系大学院生の就活振り返り

就活振り返り

久しぶりに更新します.@_tokina23です.

最近,大学院の修士中間発表と就活を無事に終えました.(2018/07末現在)

私は何度か書いていますが,(一応)国立の電気通信大学大学院に所属しています.この度,無事に?就活を終えましたので,その記録を残しておきたいと思います.

最終的にはD社(一部の人はわかるかもしれません)に決定しました.お世話になった方々には非常に感謝しています.

また,この記事が誰かの参考になればと思います.

まずは簡単に進学についての振り返りから.

電気通信大学大学院への進学

私は広島の国公立大学広島大学ではない)にて学部時代を過ごしました.もともと,高校生のときから電通大には来たかったのですが,ちょっと偏差値が足りず断念..

前大学ではまあまあの成績を収め,セキュリティキャンプインターンシップ,研究活動などをそこそこにこなしていました.

もともとは「早期卒業資格を手に入れることができたら他大学院に進学しよう」と考えていましたが,やはり微妙に成績が足りず,残念ながらその資格は手に入りませんでした.

(一応弁解しておきますと,その世代は非常に優秀な方が多かったようです,,)

いざ学部3年も終わりが近づいてきたとき,とある友人が筑波大学大学院に進学したことをきっかけに,やはり自分も昔から行きたいと考えていた大学院にチャレンジする気持ちが湧いてきました.

しかし,そんなすぐにアグレッシブに活動できない私は,書類とりよせから何まで地味にゆるゆるとやることで,既成事実的に受験しなければいけない段階まで自分を自身で追い詰め,受験にチャレンジしました.(ちなみに推薦受験です)

研究室はあまり深くこだわらなかったので正直今後悔しているのですが,それはまた別の話・・・

研究を除いて,こっちの環境は広島のそれと大きな差がありました.それは情報量です.就活から勉強会やらなにまで,そのチャンスはそこら変にごろごろしています.こればかりはさすが東京,さすが国立だなあと思いました.

(補足)

電気通信大学大学院の推薦受験は所属大学の上位20%以上の成績であれば受験可能です.なおかつ,TOEICの点数の申請も不要です.一般はTOEIC申請必要だそうです.

就活のまとめ

まず,私自身は最近のキラキラベンチャーばかりを目指していたわけでも,お硬い(例えばNTTデータ)ところばかりを受けていたわけでもありません.「やりたい仕事ができるか」を軸に就活をしていました.

就活の戦果

まず,私が本選考を受けたのは10社です.これはIT業界では多いほうかと思います.

私の軸は主に2つありました.それは「クラウド系」もしくは「自動車系」です.昨年度からクラウド技術に興味を持ち,そうした観点からインフラ業界にも目を向けていました.また,もともと自動車セキュリティの研究をしていた背景から,自動車業界にも興味を持っていました.

さて,その戦果は以下の図のとおりです.

@_tokina23の就活戦歴

実は最も早く選考に臨んだのはAWSでしたが,あえなく最終選考で落ちてしまい,そこから迷走が始まりました.一時期はこころが・・・となりましたが,現在は元気です.

LINEも受けました.正直,そんなに興味はなかったのですが,あの天下のLINE.新宿ミライナタワーに居を構えるその本社に向かうべくマクドナルドで技術試験を小一時間といたところ,無事に選考を通過し,一次面接に向かいましたが惨敗でした.

Fi社(社名は伏せます)は最も早く内定を頂いたベンチャーさんなのですが,様々な人の意見やキャリアパスから社会人として最初に入社する企業としては除外しましたが,結構悩みました.

NTTCom(クラウド系)は研究室の先輩からお声を頂戴し,何気なく足を運んでみたところそのライフワークバランスやクラウド事業に惹かれ,選考を受け(実際には選考という名目ではありませんでしたが),内定をいただきました.

D社に関しては,全くのあらぬ方向からのお誘いを受け,最初は何気なく話を聞くところから始まりました.当初はNTTComに行くかな,と考えていたのでお話程度のつもりですが,選考を受けにつれ,そのグローバルな立場でチャレンジできる点などから魅力を感じるようになりました.そ の結果,この度内定を承諾するに至ります.ちなみにセキュリティ系(一応)になります.自動車セキュリティからIoTセキュリティまでやっていく所存だそうです.

少し総括しますと,ES,webテスト,技術テストはすべて通過できたので自分としてはまあまあだったかな,と思っています.しかし,結局面接で落ちているので,もっと企業を分析して自己アピールにつなげる必要があったかな,とか思ってしまいます.最終的に,落ちる=その企業は自分に合わない をモットーに自由に就活ができたので,1社でも内定をいただくと気持ちに余裕もでき,良い流れとなるかなと思っています.

選考を辞退した会社とその理由

選考を辞退した会社(選考段階途中で辞退,もしくは懇談や説明会などのみに参加)については以下の通りです.

昨年度のインターンシップに参加し,行かないことを決意しました.私は本社の技術本部のセキュリティを行う部署に配属となりました.上司さんやその他の方たちには非常に良くしていただいたし,思ったよりお堅い雰囲気もなく,フレックス制度もあったので非常に悪いというわけではありませんでした.しかし,インターンシップ参加者(とくに 名古屋大!!! の人たち(仲良くなった方もいます))がいわゆるパリピであったこと,毎日渋滞が発生すること(トヨタ渋滞),周りになにもないこと,会社の雰囲気がぬるすぎること,などから私の肌にあわず選考受けることはやめました.座談会などに参加したのですが,やはりやめてしまいました.インターンシップだけなら貴重な経験ができたと思っています.

1dayインターンシップや勉強会に参加したのですが,端的にいうと,リクルータの人がめっちゃ鼻にかかる人でした.それだけで行きたくなくなりました.しかし,ここでできた友人と後にNTTComで再会したり,トヨタインターンの人と再会するなど,参加してよかったと考えています.

サポーターズ経由でお話を頂いたので2度ほど行きましたが,選考を受けるほど業務内容や年収に魅力を感じず断念.

前の大学でも行くことができたため,よりチャレンジするという意味で今回は辞退させていただきましたが,非常に良い会社です.優秀な後輩がここでお仕事しています.

ブラッ○企業であることをひしひしと感じたので断念.あとエンジニア職があんまりない.

  • 楽天株式会社(内定辞退)

毎週月曜日の朝会や,毎日9時出社であること,3年後離職率50%以上などから断念

  • NTTCom (内定辞退)

最後まで悩んだものの,苦渋の判断の末辞退.転職先としてもありだと考えています.しいていうなら収入や企業の立地(朝の通勤)などが難.

大学院における就活関係の時期について

インターンシップや就活の大体の時期のフローです.もしこれから就活される方がいれば,参考にしてください.

就活サイトについて

私が利用したサイトは以下でした.

  • サポーターズ

4月の段階から1dayインターンの案内が来たり,良いスタートダッシュをサポートしてくれるかなと思います.逆求人イベントなどで声をかけていただいて勉強会に参加するなどのチャンスを多くいただきました.

Salesforceトヨタ自動車株式会社にエントリーするためだけに利用しました.一度間違えてまとめてプレエントリーをしてしまってからしつこくいろんなところから電話が来たので正直恨んでいます.プレエントリーだけなのに電話してこないでほしいです.また,リクナビから直接特別選考案内をくれるサービス(リクナビエージェント)の登録の連絡がきたため,1週間だけ利用してみましたが,d-Space社などの珍しい案内がありましたよ.

逆求人やイベントなどで,もし私の名前を調べたときに出てくるように登録していました.フィックスターズさんやビズリーチさんからスカウトが来ましたが断りました.サイボウズの広島のスタートアップが募集していたので応募したところ,新卒は一般ルートでお願いしますと言われてしまいましたw

最近Twitter求人とか流行ってますよね.やっておいて損はないはず,,あとやりとりにFacebookのMessengerやTwitterのDMの場合もありましたね.

  • 各企業の採用ページ

結局直接エントリーすることが一番多かった気がします.行きたい企業はリサーチしておく事が大事だと思います.

あとはどこに行くにしてもコネです(たぶん)

最後に

重ねまして,就活でお世話になった方々にお礼申し上げます.

私としては,就活は学生として最も多くの企業を知ることができる最大の機会だと思っています.もちろん行きたい1社でバッチリ決めればいいのですが,落ちてから沢山の企業を知ることができるチャンスになったかな,と考えています(というかそう考えるしかない,,).

もしAWSに入社させていただけたのであれば,それはそれで嬉しいのですが,それができなかったいま,今度は自動車セキュリティの道を進んでいくしかない!所存です

研究頑張りたいと思います😣

IoTSecJP Tokyo #3に参加してきました

どうも、現在まだ就活中のひみつ(tokina)です。

1ヶ月程度も遅くなってしまいましたが、2018/04/28にIoTSecJP Tokyo #3に参加し、お話を聞かせて頂きました。抽選にパスして良かったです。折角メモをとっていたので、記事として残しておきたいと思います。

iotsecjp.connpass.com

ruffnex.net

また、4/22には秋葉原UDXにて技術書展が開催され、そちらも参加させて頂きました。IoTSecJPの技術書は非常に人気で、開始1時間弱で完売してしまったため、私はPDF版を購入しました。こちらの感想も簡単に書きたいと思います。

今回、一番の注目ワードは私としては「ドローン」でした。ドローンの使用例が増加している今、セキュリティとしての視点「アンチドローン」が必要なのではないでしょうか。

覚えている範囲で感想などを書いていきたいと思います。

とかなんとか書いてる間に名古屋もありましたね!!

当日のスケジュールはこんな感じでした。

1. Phone Aplliさん

phoneappli.net

Phone Aplliさんが提供しているweb電話帳についての説明

某大手様において、活用されているとのこと。               

その他コミュニケーションツール(Slack、Skype など)と連携できる→ベンチャーのような会社から大手にも対応できる!

誰がどこにいるか知ることが出来るIoTのシステムとの連携も可能らしい。

現在は大手が取引相手で悩んでいるらしい

本当は比較的小規模な会社様にももっと利用してほしいらしいです。

snow peak * Phone Appli

Phone Appliさんおオフィスは「気持ちのよい自然の香り」が漂っていました。自然を意識して、気持ちよく働ける環境づくりを。

+会社に来なくてもクオリティの高いコミュニケーションを(在宅でも!)

weekly 1 on 1ブース

上司など、1対1でミーティングしたいとき、ありませんか?そんなときに無音で会話できるスペースです。

現在、村田製作所さんと共同で実証実験中らしい。

部下のメンタルヘルス、コミュニケーション → ボックス中の会話などを可視化

自動的にこうした会話情報を収集、管理できるようです。

その他

  • Personal work 集中スペース

    ダイエット椅子、集中できるメガネなどを用意。個人が集中できるスペースを提供。

  • Apple watch全社員貸与

    社員の健康管理、意識向上 一人3万円なら逆に安いのでは?

2. hogehugaさん「アンチドローンの話」

hogehugaさんの資料です↓

アンチドローン概観

hogehugaさんは普段から様々なニュースを提供してくれているので、いつも参考にさせていただいています。この前の技術書典で出版したIoTSecJP本でもアンチドローンについて解説されていました。

アンチドローンとは

リスクについては航空防衛コンサルティングファーム CARCIEL Inc.などを参考に。

「スパイ、密売、攻撃、衝突」こうした目的を防ぐこと。

ドローンの利活用例

もちろんドローンは不正利用ばかりではなく、うまく利用すれば必ず社会に貢献するはずですよね。

  • 建設

    地図を指定したら自動で空中から撮影

    自立飛行しながら建設現場の3Dモデルを作成してくれるらしい

    応用すれば自動で農薬を巻くこともできる!さらに赤外線カメラで必要な農薬を

  • 郵便

    宅配実験した例があるがすぐに衝突したらしい

  • 軍事利用

    偵察、爆撃、、、かつての兵器より非常にコストが小さくできるが、、

  • これらが妨害されると??

    多くの面で”妨害”によって不利益を被ることが明らか→アンチドローンが必要

どんな機能が?

  • 各種センサで自立飛行

    画像センサ、赤外線センサ、気圧センサ、GPS → ホバリング、3次元的な固定

ドローンとの通信

ドローンとの通信は特定の周波数を利用しています。

テレメトリ系と制御系は帯域が別の可能性がある(ここはそれぞれの対応仕様を解析してみないとわからないですね)

通信の内容自体は案外JSONかもしれない?

トイドローンを解析してみよう!

通信の妨害?

  • 通信経路

    簡単に電波遮断すれば通信できないよね(法的にはアウトかもしれないけど)

    特定のCHのみ無効にもできるよね

  • 物理的妨害

    超音波を当てるとジャイロセンサが狂っておかしくなる(BlackHat2017)

    加速度センサが誤作動するとか、、

    画像認識を妨害っていうのも考えられるはず

  • ドローン自体への攻撃

    USBデバッグして何かしらを仕込む

    DJIでAndroidを利用しているものもある

個人的にドローンで遊んでみたいと思っていたので、今後お金が貯まれば購入して遊んでみたいと思います。

3. Noriaki Hayashiさん「ハッカーの嗜み RTL2832チップとSDR」

SDR; Software Defined Radio

OSSで提供されているらしい!

KaliLinuxにもSDRのソフトが沢山入っている→ホットトピックらしい

しかしKaliでも使いづらいとか

FMラジオも聞けるワンセグチューナーにもなる「REALTEKさんのチップ RTL2832」

無線のELLO WORLDはFMラジオ

(がんばれば)テレビも見れます

受信状況を確認するスペクトラム・アナライザにも

SIGINT; 飛行機の機内にてADS-B信号の受信をやってみた

専用のソフトウェアを利用すれば航空情報を拾うことが出来る

ADS-Bの信号を解析をしてみれば?

高度・緯度・経度などを見れる

  • 受動的な攻撃

ないすまし、偽装攻撃

行き過ぎた信頼関係があるのでは?

CANもそうだし、もともと攻撃などを想定してない性善説で成り立ってしまっているのでは?

おあそび

信号機の信号をハック、トイドローンも

HackRF

ちょっと前からたまに聞くやつですね。無線テスト用途のやつです。

私も最近LoRaWAN(920MHz帯)について調べていたので、HackRFについても目にすることがありました。

ちょっとたかいかも?

NFC/RFID なら Proxmark3

最近ホテルのカードキーを複製した人がいましたね、、

日本のホテルのホテルキーだと簡単に。。。?

どうやら部屋番号×入室時間で一意に識別してるらしい?それって宿泊者が複数いる場合にやばいのでは、、、?

参考書籍

Inside Radio An attack and Defense Guide

4. tessyさん「深圳にいったはなし」

中国のシリコンバレーと呼ばれてるシンセンに行ってきたそうです。

新規開発、ハードウェアスタートアップ支援なども充実してるらしい!(いきたい)

キャッシュレス社会

そもそも、中国ではすでに現在「街中どこでもQRコードで支払い」とのこと。噂には聞いていましたが、、

中国人の友人も、日本ではできるだけカード支払いで済ませたいと言っていたのを思い出しました。

日本みたいにチャージ方式もできるけど、基本的には銀行からの引き落としらしいです。

さらには個人間でのやりとりも!

日本だとLINE Payのような感じでしょうか?現金主義もほどほどまでに、クレジットカードをうまく活用していきたいこの頃です。

ジャンクショップ

マイニング、ASIC機も普通にうってた ANT MINER

あやしいスマートカメラなどなど

これも行ってみたい、、、

5. Yukiさん「IoTとファームウェアと私」

資料は後から展開してくれるらしい! ← @h1romaruoさんのアカウントをチェック!

baudrateを調べるツールがあるらしい(個人的にこれは嬉しい)

Flashromのヒント:I/Oから離れていてなにかしら目印がついているICを探す

デバッグピンがある

いつものようにツールを使って解析しましょう!

ちょっとメモと取りそこねました、、

デバッグピンがない

データシートをぐぐって探す

今回はAttify Badgeを利用してアクセス→SPI、JTAGなどに対応している

spiflashを実行してデータを抽出

flasromを利用してファームウェアをダンプ、binwalkでバイナリを解析、抽出

チップオフってなに?

チップを取り外す、、、!

チップオフに便利なツールがあるらしい(こわい)

ファームウエアのエミュレーション

さて、いろんな方法をつかってダンプしたファームウェア、どうしますか?

ってときにファームウェアをエミュレーションできるらしい(資料参照)。

webインタフェースを起動→ブルートフォースとか、被検体に便利らしい。

JATGやシリアルが有効になっているかを確認できるwebサイトもあるよ

IoT調査に便利な物品もまとめている→webサイト

6. NVさん「よくあるバックドアの話」

私はバックドアって聞いたとき、ウイルスのバックドアかと思いましたが、そっちではありませんでした。

「ゲーム機(ごにょごにょ)にバックドアってありますよね?」

「後ろにある拡張ポートってなんだったんだろう」

昔のあるゲーム機には、後ろに謎の拡張ポートがあったのを覚えていますか?

私はゲームをあまりしないので知りませんでした。どうやらこのポートは内部バスをそのまま引き出したもの、、、、→チートに使われてしまうよね、とのころでした。

これ結構自動車のナビ内部のマシン(AGLとか)の解析に使えるのでは?!

7. 「蟹さんのlwIPネタとBearSSL」

docs.google.com

すみません、集中力が切れてしまいメモできてませんでした、、笑

ここでカニさんとは、あのよくみるRealtek社のロゴのことですね。

8. 黒林檎さん

最後はいつもどおり黒林檎さんのお話を聞くことができました。

今回は脅威モデリングの話でした。

Microsoft Threat Modeling toolがあるらしい。Azure Fuzzとかと組み合わせることができるとか

チャートを作成すると、脅威が姦挙げられる箇所を教えてくれ、ツールで検証も可能だそうです。

レポートの出力もしてくれるとのこと。

私のアルバイト先が無料提供しているツールにも似たようなのがあった気がします(?)

そもそもどうやって

簡単な図から攻撃のルートを探すことが大事ヂョね

IPカメラのハッキングの例だと、まずは機器のハック→クラウドハックの可能性もあるよね?

リスクを考える

シナリオを考えてみる

IoTセキュリティの範囲とは?まずなにやる?

攻撃経路、シナリオを詳細化する → これが一番大事(できるかできないかはおいておいて)

SHODANでport554があいているものを調べるとかするとたくさん見つかるかもしれないですえ。

IoT自体にセキュリティ機能をいれておいたらいんじゃないんですか?

最近は改ざん検知機能あるよね

打倒ssmjp

黒林檎おすすめのPentestPartnersってのが面白いらしい

この前は、Apple watch(これもIoT)のフォレンジックのデータが殺人事件の解明に利用されたこともあるとのこと。

また、最近はスマート家電も流行っていますよね。例えばスマート体重計。

怪しいサイトではスマート家電のLCDを売ってたりとかするので、購入して解析しちゃったり、、

とくに最近おもしろいのは喋るおもちゃ(BLEで)

海外の製品を模倣して日本の製品でも同じようにできるのでは?!

日本と海外だとセキュリティの考え方が異なる→海外の製品は攻撃されることをあまり意識してない(というかもはや気にしていない)場合もちらほら。

まいふれんどけいら → プライバシーとセキュリティ

the01.jp

ちょっと前に話題になったマイ・フレンド・ケイラはネットに繋がるおもちゃだったのですが、、

コーヒーメーカ

今回は、某社のスマートコーヒーメーカに攻撃してみる。

なにができそう?なりすましとか?

今回のコーヒーメーカーはBLEを利用しているので、BLEハッキング技術が必要。

  • 通信を傍受(BLEを傍受するツールもあるらしい)
  • Replay攻撃

製品には2つのモード

  • 認証あり:単一ユーザ
  • 認証なし:複数ユーザ (認証を入れると複数ユーザの管理が面倒くさい)

AndroidにはBluetothのダンプする機能がある

Attributeプロトコル

スニッフィングに関する知識と組み合わせて

Bluefruit,$24くらい

こうしたReplay攻撃は認証ありモードではできない!

攻撃対象は未認証モードのコーヒーメーカということになる(脅威とリスクの区別)

JTAGに関してはCar Hackers Handbookに記載されているらしい

テストの例

ホワイト、ブラック、グレー

ホワイトテストは基本的には難し、、、

通常のハッカーブラックボックステスト

ネットワークの攻撃経路を調査する場合

NMAPとかをつかってコーヒーメーカをスキャン。

どうやらtelnet, https, rtspとかある

でも、この時点ではアクセスなにもできない

方向性の一つとしては専用のスマートフォンアプリがあるので、それで通信を行う場合に、スマートフォンからのアクセスをburpとかで盗聴できるよね?

ただし、アクセスする先は企業のサーバとかなので、それに対する攻撃などはわきまえるように!

基盤に直接アクセス

ネットワークレベルからのアクセスはすでに限界なので、いつものように基盤からアクセスしてみる。

!3つピンがそろってたらUART!

解析に使うツールは、黒林檎さんてきにはattify badgeのほうが使いやすいらしい

これでファームウェアをflashromをつかってダンプ(ダンプ対象かちゃんと確認すること)

spiflashを使えばダンプしやすいそうです。

次に、binwalkしてバイナリを取り出します。

retdecというデコンパイラ、バイナリをPythonやCとかに書き換えてくれるやつをつかって、その動作を大体把握します。

最終的に、PCからコーヒーの注文ができるようになったそうです。

しかし、ログインして利用するモード(個人の好みの味を登録して使うモード)などは暗号化されている?らしく、現状むりそう、、、

その他

雑魚な解析は無償ツールで十分にすることが出来る(らしい)

レインボークラック

IoTMalwareもできそう??

オンラインレインボークラック

未認証のRTSPプロトコルを調査

技術書典について

techbookfest.org

今年4月に技術書典4が開催されましたね。ご存知の方も多いと思います。

秋葉原UDXで開催されたのですが、私は日中に水道橋で用事があったため、朝と夕方にいったのですが、ものすごい人だったのを覚えています。

ここでIoTSecJPさんも技術書を扱っていました。

techbookfest.org

なんと開始1時間で完売してしまい、私は手に入れることができませんでした。。(悲しい)

ですが、後ほど電子版を取り扱っていたため、そちらで入手することができたので良かったです。

購入は以下から↓

iotsecjp.booth.pm

  • はるてぃさん「BusPirateのファームウェアアップデート」
  • omoikaneさん「BusPirateのバイナリモードでSPIhるアッシュメモリをダンプする方法」
  • hogehugaさん「アンチドローン:対策と現状」
  • にほんももんがさん「IoTへの感染を狙ったマルウェアの調査日誌」
  • 黒林檎さん「IoTフォレンジック入門」
  • NVさん「表面実装部品の取り扱いについて」

となっております。私としてはBusPirateの使い方について詳解されており、薄い本としてはとてもよいものだと思います。また、黒林檎さんのスマート給餌器の解析についても触れられており、解析の一連の流れを追うことができます。

最後に

今月名古屋回も開催されましたね。IoTセキュリティがどんどん注目されているようで、非常に良いことだと思います。情報も共有されているようなので、目を通してみたいと思います。

また、夏コミにも参加するそうなので、もし顔を出せたら購入させていただきたいと思います。

また、現在私個人の活動としては、いくつかありまして、一人で進めようとしているのはラズパイを使った自動車の解析です。Amazonでうっていた謎のツールも入手したり、はんだづけしたりと、すごくゆっくりですが趣味程度に嗜んでいます。

いろいろブログにしたいことも多いのですが、なかなかはかどりませんがぼちぼちマイペースでやっていきましょう。

おまけ

当日のつぶやきがTogetterでまとめられています。

IoTSecJP東京 #3のつぶやきまとめ - Togetter

togetter.com

Raspberry Pi起動時にMACからBluetoothでシリアル接続する方法について(メモ)

Raspberry Pi起動時にMACからBluetoothでシリアル接続する方法について(メモ)

今回、Raspberry Piをセットアップから久しぶりに行いました。そこで、毎回ディスプレイを用意するのは面倒なのでもちろん遠隔からSSHのようにログインして操作したかったので、MacからBluetoothで接続したいと考え、色々調べていました。

結果的にうまくいったので、そのメモを残しておきたいと思います。

今回の検証で必要なもの・環境は以下のとおりです。

  • Raspberry Pi 3(今回はRasPi 3を利用したので、ドングルなどは必要ありませんでした)
  • microSD & OS (Raspbian, 最新版Jessie Desktop version)
  • Display & HDMI cable
  • mouse & keyboard
  • Macbook Air

こんな人向けです

WiFi環境もEthernetもないけどRasPiを起動するだけでコンソールから遠隔操作したい

そもそもなぜBluetoothで接続したいのか

理由は3つあります。

  • Raspiを自動車で利用したいので、ルータが無い = WiFi環境がない
  • MBAなのでUSBtoEtherも面倒
  • 今までできそうだけど実際にやってなかった

まだ詳細は未定ですが、自分なりに自動車の解析をしたいと考えており、Bluetooth接続が最も便利だと考えたのが最大の理由です。

いくつかの方法

まず、「RasPi MAC Bluetooth」などで検索をかけると、たくさんヒットすると思います。簡単にまとめると以下の2通りです。

  • MacとRaspiでペアリングし、Macからシリアル接続
  • インターネット共有機能(bt-pan)を使ってSSH

どっちでもいいのですが、bt-panが謎のエラーをはいていたので辞めました。

さらに、シリアル接続といっても統一された方法は見られませんでした。

Raspberry Pi起動時にMACからBluetoothでシリアル接続する方法

では実際にやっていきましょう。

私が利用したRaspbianのKernel versionは4.14です。

1. MACとRasPiをペアリングする

以下、RasPiのコンソールで行います。

$ bluetoothctl
[bluetooth]# power on
[bluetooth]# scan on
[NEW] Device xx:xx:xx:xx:xx:xx tokina の MacBook Pro
[bluetooth]# pair xx:xx:xx:xx:xx:xx
[bluetooth]# connect xx:xx:xx:xx:xx:xx

ちなみにですが、MACアドレスはタブ補完できます。

これでペアリングができたはずです。PINコードなどはうまいことやってください。

2. rfcommを割り当てる

以下の記事が非常に参考になります。一部こちらを参考にしました。

mattintosh.hatenablog.com

以下もRasPiのコンソールで行います。

$ systemctl stop bluetooth
$ bluetoothd -C &
$ hciconfig hci0 up
$ sdptool add SP
$ rfcomm watch 0 1 agetty rfcomm0 115200 linux -a pi

少し解説しますと、まずシリアル通信するために、sdptoolを使いたいのですが、そのためにはbluetoothd(デーモン)の起動時に-Cオプションが必要なのです。そのため一度stopしています。

もう一つ大事なコマンドはrfcommです。

RFCOMM ‐ 通信用語の基礎知識

Bluetoothプロトコルスタックの一つで、L2CAP上でRS-232Cシリアルポートの転送機能をエミュレーションするもの。これにより、従来の有線によるデータ転送をそのまま無線に置きかえることが可能となる。

ということです。このコマンドを実行していると、アクセスされていることを見ることができます。

3. MACからアクセスする

一応ペアリングしておきましょう。MACBluetoothRaspberry Piに接続済みになっているか確認してください。もしくは/dev/tty.raspberrypi-SerialPort(私の環境です)が見えるか確認してください。

以下、Macのコンソールで行います。

$ ls /dev/tty.raspberrypi-SerialPort
/dev/tty.raspberrypi-SerialPort
$ cu -l /dev/tty.raspberrypi-SerialPort -s 115200
Password:

Connected.

Raspbian GNU/Linux 9 raspberrypi rfcomm0
raspberrypi login: pi (automatic login)

Last login: Fri May  4 06:55:27 UTC 2018 on tty1
Linux raspberrypi 4.14.34-v7+ #1110 SMP Mon Apr 16 15:18:51 BST 2018 armv7l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
-bash: cannot set terminal process group (2343): Inappropriate ioctl for device
-bash: no job control in this shell
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ ls
Desktop    Downloads  oldconffiles  Public        Templates
Documents  Music      Pictures      python_games  Videos

こんな感じでcuコマンドでシリアル接続っぽくBluetooth接続できました。これで非常に便利になりましたよね。もちろんscreenコマンドでも問題ありません。

4. (おまけ)起動時に自動的に接続可能状態にする

ここまで成功している上で、rc.localを編集します。

RasPiのnanoやvimで/etc/rc.localを開いて、以下のコマンドをexit 0の前に追記します。

sudo rfcomm watch 0 1 agetty rfcomm0 115200 linux -a pi

そう、さっきのRFCOMMコマンドです。RFCOMMコマンドを実行しないとシリアル通信をシミュレートできませんので。

これで再起動して、MACから

$ cu -l /dev/tty.raspberrypi-SerialPort -s 115200

ができれば成功です。ペアリングとかしなくても、このコマンドを入力すれば自動的にペアリングが確立するはずです。

最後に

Raspberry Pi 3をRSでクーポン配布していたときに購入して以来放置していたので、ようやく重い腰を上げました。bluetoothWiFiが内蔵されており、電源だけで遠隔操作できるので、めっちゃ便利になりました。

実は、PiCANボードなども合わせて購入したので、これから楽しみです。また続きを書きたいです。