akms道東

ITイベント,勉強会への参加記録や趣味のことが書いてあるブログです.

Raspberry Pi B+ に Golang 1.6 をインストールしてみた

はじめに

Go 1.6 がリリースされたのでさっそくラズパイにインストールしてみました。 マシン:Raspberry Pi B+ OS:raspbian-jessie-lite

インストール方法

1.6ではarmv6l用に既にビルド済みのものが用意されているのでとても簡単にできます。

Downloads - The Go Programming Language

まずはwgetでファイルをダウンロードしてきます。

wget https://storage.googleapis.com/golang/go1.6.linux-armv6l.tar.gz

次に公式の手順にある通り/usr/local配下に展開します。

#展開するときのコマンド
sudo tar -C /usr/local -xzf go1.6.linux-armv6l.tar.gz

最後に/usr/local/go/binへパスを通せばインストール完了です。

export PATH="/usr/local/go/bin:$PATH"

動作確認

パスまで通した後に早速バージョンを確認しました。

> go version
go version go1.6 linux/arm

またgobotraspi_blink.goというサンプルのブログラムも問題なく動作しました。

gobot.io

おわりに

1.5まではソースからインストールすることしかできなかったので時間がかかっていましたが、1.6ではとても簡単にインストールすることができました。

時間があれば今度はソースからインストールする方法を試してみようかと思います。

raspbian で capslock を無効化設定した

はじめに

掲題ままの備忘メモです。 raspbian-jessieで設定しましたがおそらくそれ以外でも同様にできるはず。

今回の参考サイトはこちらです。

lambdalisue.hatenablog.com

caps lock -> control と caps lock <-> control

この設定は/etc/default/keyboardにあるXKBOPTIONSの項目を編集しました。

  • sudo vi /etc/default/keyboard
    • caps lock を無効化してcontrolにする場合
      • XKBOPTIONS="ctrl:nocaps"
    • caps lcok とcontrolを入れ替える場合
      • XKBOPTIONS="ctrl:swapcaps"

また既にXKBOPTIONSに何かしらの設定が入っている場合は以下のように,で区切って書き足します。

例:XKBOPTIONS="hogehoge, ctrl:nocaps"

設定を入れた後は以下のコマンドで反映しました。

sudo dpkg-reconfigure -phigh console-setup

これで問題なくcaps lock を無効化してcontrolにすることができました。

raspberry Pi B+ 用に raspbian-jessie-lite をインストールした

はじめに

これまではOSインストール済みのSDカードを本体とセットで購入していたのでそれを利用していました。 ただ容量が少ないこともあり32GのSDを買って自分で1からインストールしてみたのでその時の作業メモ。 さらにパーティションの拡張も行ったのでその時の作業メモ。

また今回は以下のサイトを参考にインストールを実施しました。

Installing Operating System Images on Mac OS - Raspberry Pi Documentation

Raspberry Piでパーティションを拡張する – UbuntuによるEco Linuxサーバ構築記

事前準備

新しくOSをインストールするためにイメージファイルを以下からダウンロードしました。

www.raspberrypi.org

また今回インストールに利用したSDカードはこちらです。

f:id:t_akms:20160213214248j:plain:w250

インストール作業

今回はmacコマンドラインとディスクユーティリティを利用してインストール作業を行いました。

インストール作業は下記手順で行いました。

  • ディスクユーティリティを使ってSDカードの初期化
  • コマンドラインからSDカードのアンマウントを実施
  • コマンドラインから dd コマンドを利用してSDカードへの書き込み

SDカードの初期化

SDカードの初期化は標準であるディスクユーティリティを使用して行いました。

フォーマットがFATになっていることを確認して実施。これは数秒で完了しました。

コマンドラインからSDカードのアンマウントを実施

次にコマンドラインに移り df コマンドを実行します。

実行すると以下のようにマウントされていることを確認できました。

> df
Filesystem    512-blocks      Used Available Capacity  iused    ifree %iused  Mounted on
中略
/dev/disk1s1    61908160      5056  61903104     1%        0        0  100%   /Volumes/UNTITLED

/dev/disk1s1 がマウントされているSDカード(のパーティション)のことを指しているので sudo diskutil unmount /dev/disk1s1 でアンマウントします。

当たり前ですが環境によってはdisk2やdisk3などになっていることもあるので確認してからアンマウントしましょう。

sudo diskutil unmount /dev/disk1s1 実行後再度 df コマンドを実行すると /dev/disk1s1 の項目がなくなっていればアンマウントは完了です。

コマンドラインから dd コマンドを利用してSDカードへの書き込み

次に dd コマンドで .img ファイルからSDカードへの書き込みを行います。

今回はdisk1がSDカードなので実行するコマンドは以下のようになります。

sudo dd bs=1m if=2016-02-09-raspbian-jessie-lite.img of=/dev/rdisk1

ここで/dev/rdisk1/dev/disk1と対象は同じですが書き込み速度に差がでます。

/dev/disk1とした場合は2312秒ほどかかり、/dev/rdisk1とした場合は80秒ほどで書き込みが完了しました。

書き込み完了後はディスクユーティリティからSDカードの取り出しを実行するか以下のコマンドでejectします。

sudo diskutil eject /dev/rdisk1

取り出し実行後はSDカードを取り外し、ラズパイに接続して起動確認します。 問題なくインストール出来ていれば起動するので以上でインストールは完了です。

パーティションの拡張

さてインストール後容量を確認すると30Gほどあるはずが1Gほどしか使用できる状態にありませんでした。

そこでfdiskresize2fsコマンドを使ってパーティションの拡張を実施しました。

fdiskでのパーティション再構築とresize2fsでの適応

上記方法でインストールを実施後まずsudo fdisk -lで現状を確認すると/dev/mmcblk0p1/dev/mmcblk0p2の二つのパーティションが確認できます。

今回は/dev/mmcblk0s2パーティションを一度削除して拡張を行いました。

詳細は参考に上げたサイトを一読してもらえればと思います。

パーティション再構築完了後wで変更内容を保存してfdiskを終了するときに警告が出るかもしれません。

しかしrebootすれば問題なく拡張されていることが確認できると思います。

その後はresize2fsを実行することで/dev/mmcblk0s2を利用している/領域が30Gほどになります。

おわりに

調べたりしながらのインストール作業だったので3時間ほどかかってしまいました。

特に/dev/rdiskを知る前に/dev/diskで実施していた時は待ち時間が長った。

これで今後raspbianのインストールが必要になっても問題なくできる。

振り返りと目標 【2015-2016】

2015年振り返り

上京して2年目でした。 東京を拠点に北海道と東京の両方で勉強会などの活動をしてきました。

あまりブログにはまとめていませんが改めてここで思いつく限りまとめようと思います。

帯広の勉強会

ゆるいITべんきょうかい in 帯広 - connpass

Tokachi Developer's Night #1 - connpass

まずは2015年に帯広で始めた勉強会です。1回目と2回目で名前が違いますが、内容はゆるい感じで行いました。

1回目の方が参加された方は多かったのですがなんだかんだと2回とも3人以上は集まったのでよかったです。 今年もできれば3回目、4回目と開催していきたいです。

また2015年12月には初めてLOCAL DEVELOPER DAY '15 IN TOKACHIが開催されてそれに参加することもできました。

LOCAL DEVELOPER DAY '15 IN TOKACHI - connpass

Goの勉強会

鎌倉で開催されたkamakura.goはブログにまとめていたのですが、他にもhikarie.goやGo Conferenceなどに参加していました。

Goは自分の手に馴染むとても使いやすい言語だと思い昨年1年はよく使っていました。

また今年はGoのアドベントカレンダーにも記事を投稿することができました。

イベントスタッフ活動

5月にはLOCAL Community Summitがありイベント運営側として久しぶりにスタッフしました。

また初めてイベントレポートも作成しました。

LOCAL Community Summit 2015 - LOCAL Community Summit | Doorkeeper

他にも12月にRubyKaigiのhelperとして参加させていただきました。

RubyKaigiのhelperとして参加して密かな目標であった師匠と一緒に仕事をするというものが叶いました。

もちろん今までもスタッフとして何かをするということはあったのですが本業のインフラ屋さんとして一緒に仕事するというのが初めてでした。師匠と一緒に仕事をすることができて本当に嬉しかったです。

2015年まとめ

最初に立てた目標と比べても達成できていることは少ないなというか皆無です。

勉強会に多く参加しても個人のブログにまとめておらず、技術的内容含めて会社のQiita:Teamに記事を書くということが多かったです。

他にも会社のブログに記事を書くこともありましたが、やはり個人のブログに書くことが減っていたという状態でした。

2016年目標

さて2016年の目標ですがそろそろ東京生活も3年目に入るので一度、北海道へ帰る方法はないかと妄想膨らませてみようかと思います。

行動に移せれば一番ですが急ぎすぎても今まであまりいい結果を得たことがないので慎重にです。

ブログへのアウトプット目標ですが、2015年は4本だったので今年は最低でも6本書くように意識します。

またラズパイも去年は以下のようなことをしていましたが今年はもう少し本格的に何かします。

仕事に関しては本職のネットワーク、インフラ以外にコードを書く機会や時間を意識して増やして勉強します。

では2016年もよろしくお願いします。

RubyKaigi2015にhelperとして参加しました

はじめに

タイトルままです。

開催されてから少し間があいてしまいましたが、RubyKaigi2015にhelperとして参加させていただきました。

helperとして行ったこと

下記リンクは私のお師匠様のブログなのですが、ここにほぼほぼお手伝いしたことが書いてあります。

まっ » 今年も rubykaigi のネットワークを支えてきた

改めて書くと基本的にはJA->ENの同時通訳用レシーバの配布をして、必要があれば会場ネットワークの作業をお手伝いするという感じでした。

他にも今後helperとして参加するかもしれない人たちの参考になればと少し細かく書いておきます。

案内用の張り紙準備や会場パネルの設置、撤去など会場設営関係の雑務、会期中のノベルティの補充なども行いました。

また英語については不安があったのですが一緒に同通レシーバ配布をしていた方の作成したカンペをもとにしてコミュニケーションがとれたので私の拙い英語力でもなんとかなりました。

(余談ですが会期中に流石に英語の勉強しないとまずいなと危機感を覚えたので英単語学習アプリを使って勉強を始めていまも細々と続けています)

おわりに

ブログを書くまでがRubyKaigiということで短文ですがまとめました。

次回は京都開催ということですが、何かしらの形でお手伝いできればしたいです。 もしくはお手伝いできなくても一般参加できればと考えています。

Raspberry Pi B+ と L-05A で SORACOM Air(nano SIM)を試してみた

はじめに

SORACOM SIMを入手したので試してみたのでその備忘録的なメモ。

現在は以下のような状態です。

(L-05Aはこの時たまたま横向きになっていて普段は上向きになっています)

以下今回準備したもの

  • Raspberry Pi B+
  • SORACOM Air データ通信 nanoSIM
  • L-05A

設定方法

設定方法は下記サイトを参考に行いました。

必要なものをインストール

まずは設定に必要なものをインストールします。今回自分がインストールしたのは以下の3つです。

  • eject
  • minicom
  • pppconfig

これを以下のようにインストールしました。

sudo apt-get install eject minicom

sudo aptitude install pppconfig

インストール完了後、早速L-05Aを接続して通信の設定を進めます。

L-05Aの設定

まずdmesgコマンドで接続を確認します。 デバイスを認識していると以下のような出力があるので確認しましょう。

> dmesg
usb 1-1.2: Product: FOMA L05A
中略
cdrom: Uniform CD-ROM driver Revision: 3.20
sr 0:0:0:0: Attached scsi CD-ROM sr0

確認後は早速CD-ROMをejectコマンドで/dev/sr0から取り外します。

> eject /dev/sr0
eject: イジェクトできません, 直近のエラー: 無効な引数です

ここで上記のように無効な引数ですと出力されていても取り外しは実施されています。

dmesgコマンドを実行すると以下のようにttyACM0ttyACM1ttyACM2が新たに認識されていることが確認できます。

> dmesg
usb 1-1.2: Product: FOMA L05A
usb 1-1.2: Manufacturer: LG Electronics Inc.
cdc_acm 1-1.2:1.0: ttyACM0: USB ACM device
cdc_acm 1-1.2:1.2: ttyACM1: USB ACM device
cdc_acm 1-1.2:1.4: ttyACM2: USB ACM device
usbcore: registered new interface driver cdc_acm
cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters

ttyACMが認識されていることを確認できたら次はminicomコマンドで接続し、APN設定をL-05Aで行います。

この時設定はttyACM0で行います。

L-05Aへの接続コマンドは以下の通りです。

minicom -D /dev/ttyACM0

接続後はまずAT+CGDCONT?でAPN情報を表示してCIDを確認します。実行結果は以下のようになります。

AT+CGDCONT?

+CGDCONT:CID,"PPP","hogehoge.ne.jp",,0,0
+CGDCONT:CID,"IP","hogehoge.net",,0,0

OK

この上記でCIDと表記している部分には何かしらの数字が入っており、それがCIDです。

既に利用されているCID以外で今回のSORACOMAir用のAPN情報を登録します。

私の場合は1と3が利用されていたのでCIDは2を利用しました。

登録にはAT+CGDCONT=n,"IP","soracom.io"(nは利用するCID)というコマンドを入力します。実行結果は以下のようになります。

AT+CGDCONT=n,"IP","soracom.io"
OK

また登録の内容にミスがありその設定を削除したい場合はAT+CGDCONT=n(nは削除したいCID)というコマンドを入力します。実行結果は以下のようになります。

AT+CGDCONT=n
OK

コマンド実行後はAT+CGDCONT?で登録できたことを確認しましょう。またAPN情報登録に使用したCIDはpppconfigでの設定時に利用します。 確認後はCTRL-A Xでminicomを終了します。

Raspberry Pi の設定

ここからはpppconfigを使った設定について説明します。

まずsudo pppconfigで設定画面を起動します。次に「Create 接続の作成」を選択します。

以降は画面に表示される内容に沿って、内容を入力していきます。私は以下のように入力しました。

プロバイダ名:soracom
DNSの設定:Dynamic  動的 DNS を使う
認証方法:CHAP
ユーザ名:SIMのパッケージに記載されているもの
パスワード:SIMのパッケージに記載されているもの
速度:460800
パルスまたはトーン:Tone
電話番号:*99***n#(nはCID)
モデムの設定方法を選択:いいえ
手動でモデムポートを選択する:/dev/ttyACM0

入力完了後は「Finished ファイルを書き出してメインメニューに戻ります。」を選択して設定を終了します。

その後、確認画面が表示されるので進んでいくと最初の画面に戻るので「Quit このユーティリティの終了」でpppconfigを終了します。

pppconfigの終了後、次に/etc/ppp/peers/プロバイダ名のファイルを開き、以下の一行をファイルの一番下に追記します。

replacedefaultroute

追記後はファイルの変更を保存してponコマンドで起動を確認します。 具体的なコマンドは以下の通りです。

sudo pon プロバイダ名

起動ができるとL05-Aの通信ランプが緑色から青色になります。

またifconfigコマンドを実行するとppp0の項目があり、ipアドレスなども確認することができます。

接続を終了する場合にはpoffコマンドを使用します。 具体的なコマンドは以下の通りです。

sudo poff プロバイダ名

接続が終了するとL05-Aの通信ランプが青色から緑色になります。

またifconfigコマンドからppp0の項目もなくなります。

設定については以上です。

おわりに

設定中に気になった点としてL-05Aが横向き(冒頭の写真)状態だとejectを何回やってもすぐCD-ROM認識状態に戻って、接続できなくなるということがありました。

ただし上向きにすると問題なくejectでき、使用することもできました。

Visual Studio Code をWindows8.1の32bit版に入れてみた

はじめに

タイトルそのままです。

新しいマシンの設定をしていて、エディタをどうしようかと考えていたところに、YAPC::Asia TokyoハッカソンVisual Studio Codeのお話を聴いたのでさっそくインストールしてみた。

ちなみに動作環境は以下の通り

Visual Studio Codeとは

詳しい説明はこちらのVisualStudio日本チームブログを見ればどんなものなのかわかるかと。

以下は上記リンクのブログより引用です。

最新の Web およびクラウド アプリケーション開発に利用できる、Mac OS XLinuxWindows 対応の新しい無料のクロス プラットフォーム コード エディターです。

ということで以下ではどのようにしてインストールしたかを書きます。

インストール時にハマったところ

通常はインストーラーをダウンロードして実行することで、問題なく入れるので大体のブログ記事などではインストールは一行で済まされています。 また依存関係にある.NETなどもインストーラー起動時にマシンに必要なバージョンのものが存在しなければインストールもしくはアップデートされるようですが、自分の場合はインストーラーが起動し、とくに.NETについての文言がでることなく数秒後にインストール失敗のウィンドウが出てきました。

失敗の原因は依存関係にあるのではと.NETをインストールしてみようとしても既にインストールされており、問題はありませんでした。 改めてエラーウィンドウを見ると、ログを確認するようにとのことでしたがログがどこにあるのかがわからず、ひたすらPC内部検索をかけけて探したり同じ状況になった人がいないかとwebで検索してみたりとしましたが、なかなか発見できずにいました。

解決方法

いろいろ探していたところこの記事にたどり着きました。 どうもインストールパスに問題があると正常に動作しないらしい。 ただ自分の場合はそもそもインストールすらできていない状態。。。

とりあえずFAQになにか情報がないかと見たところ Trouble with the Windows installer の文字が。

どうやらインストールに失敗した場合はzipファイルをダウンロードして、入れてのとのこと。

Visual Studio CodeのFAQページはこちら

実際にその通りにやると問題なく動作させることができました。

おわりに

ようやくインストールすることができたVisual Studio Codeを動作させてみると思っていたより動作が軽く感じました。 これからさらに使ってみて感想など書いていこうと思います。