ワイヤレスなRaspberry Pi環境をつくる
April 28, 2013 at 01:54 AM | categories: raspberry pi |Raspberry Pi遊ぶからにはその小ささを生かしたことがしたいですよね。 というわけで手始めにワイヤレス化しました。手順は非常に簡単で、ほぼAmazonで買ったパーツを差すだけで達成できました。
Raspberry Piを標準的な構成でうごかすとLANケーブル、電源、 キーボード、ディスプレイの4本コードがのびることになりますが、sshで接続できればディスプレイもキーボードも不要なのであと必要なのはネットワーク環境と電源だけです。
電源は 5V 700mA なので、普通のスマートフォン用バッテリーがそのまま使えます。 5V 700mAを越えていれば何でもいいと思いますが、今回は以下をつかいました。
ネットワークはUSBの無線LAN受信機を使います。 これも何でもいいと思いますが、あまり最新のモデルだとドライバが対応してないかもしれないのでちょっと古めのもののほうが無難です。以下の商品は問題なく動きました。
wifiの設定はX Windowの設定画面からしました。startx
でデスクトップを起動するとWiFi Config
というアイコンがあるのでそこから設定できます。
ターミナルでifconfig
を実行してwlan0にinet addrが割り当てられていることを確認できればOKです。
pi@raspberrypi ~ $ /sbin/ifconfig eth0 Link encap:Ethernet HWaddr b8:27:eb:90:32:15 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:8 errors:0 dropped:0 overruns:0 frame:0 TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1104 (1.0 KiB) TX bytes:1104 (1.0 KiB) wlan0 Link encap:Ethernet HWaddr 10:6f:3f:ec:5f:b8 inet addr:192.168.1.13 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:4285 errors:0 dropped:0 overruns:0 frame:0 TX packets:673 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:937903 (915.9 KiB) TX bytes:81630 (79.7 KiB)
ここで確認したIPアドレスにsshしてつながれば完了です。
Raspberry Pi はじめました
April 28, 2013 at 01:30 AM | categories: raspberry pi |前々から気になってたRaspberry Piを手に入れました。
最終的にはセンサーとかいろいろつけてインタラクティブなおもちゃをつくりたいですが、当面の目標は秋月電子で調達してきたLCDディスプレイに文字を表示させるためのドライバを書くことにしようと思います。
Raspberry Piのセットアップ手順はぐぐればすぐでてくるので割愛しますが、そのままだとsdcardの空き領域がつかえないので起動時にマウントできるようにするまでの手順だけメモしときます。
pi@raspberrypi ~ $ sudo fdisk /dev/mmcblk0 Command (m for help): p Disk /dev/mmcblk0: 31.7 GB, 31674335232 bytes 4 heads, 16 sectors/track, 966624 cylinders, total 61863936 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00014d34 Device Boot Start End Blocks Id System /dev/mmcblk0p1 8192 122879 57344 c W95 FAT32 (LBA) /dev/mmcblk0p2 122880 3788799 1832960 83 Linux Command (m for help): n Partition type: p primary (2 primary, 0 extended, 2 free) e extended Select (default p): Using default response p Partition number (1-4, default 3): Using default value 3 First sector (2048-61863935, default 2048): 3788800 Last sector, +sectors or +size{K,M,G} (3788800-61863935, default 61863935): Using default value 61863935 Command (m for help): p Disk /dev/mmcblk0: 31.7 GB, 31674335232 bytes 4 heads, 16 sectors/track, 966624 cylinders, total 61863936 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00014d34 Device Boot Start End Blocks Id System /dev/mmcblk0p1 8192 122879 57344 c W95 FAT32 (LBA) /dev/mmcblk0p2 122880 3788799 1832960 83 Linux /dev/mmcblk0p3 3788800 61863935 29037568 83 Linux Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Syncing disks. pi@raspberrypi ~ $ sudo mkfs.ext4 /dev/mmcblk0p3 mke2fs 1.42.5 (29-Jul-2012) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 1815072 inodes, 7259392 blocks 362969 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=0 222 block groups 32768 blocks per group, 32768 fragments per group 8176 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done
上記のように、fdisk
でパーティションをきってrebootしたあと、mkfs.ext4
でフォーマットします。
最後に/etc/fstab
に以下を追記してもう一度再起動して完了です。 マウントするディレクトリ(以下だと/home
)は適当にかえてください。/homeにマウントする場合はpiユーザのホームディレクトリをコピーしておくといいと思います。
/dev/mmcblk0p3 /home ext4 defaults,noatime 0 2
pi@raspberrypi ~ $ df -h Filesystem Size Used Avail Use% Mounted on rootfs 1.8G 1.4G 246M 86% / /dev/root 1.8G 1.4G 246M 86% / devtmpfs 212M 0 212M 0% /dev tmpfs 44M 276K 44M 1% /run tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 88M 0 88M 0% /run/shm /dev/mmcblk0p1 56M 19M 38M 34% /boot /dev/mmcblk0p3 28G 172M 26G 1% /home
TOMLノススメ
April 26, 2013 at 08:21 PM | categories: tips, toml |
TOMLとは
https://github.com/mojombo/toml
Tom's Obvious, Minimal Language (TOML) とはgithubの中の人が提案している設定ファイルのためのミニ言語で、以下のような特徴があります。
- 人間が読み書きしやすい
- 標準的なデータ型が利用できる
- 曖昧さが発生する余地が極力排除されている
- パーサをかくのが簡単
なぜTOML?
例えば、YAMLを設定ファイルに使っているシステムは多いですが、YAMLの仕様書は80ページもあり正しく使うのは意外と大変です。1
またJSONはカッコやダブルクオートの割合が多すぎますし、コメントも使えません。2
TOMLをつかえばそのようなストレスはありません。
TOMLの使い方
TOMLの書き方は本家のドキュメント をみてもらえばすぐわかると思います。
TOMLのライブラリは各種言語に対応したものが既にたくさんあります。 言語によっては複数の実装が存在するものもありますが、とりあえずはgithub上でのstarの数が一番多いものから試すといいと思います。
わざわざ説明するほどの内容でもないですが、ここでは一応rubyでの使い方を紹介します。
gem install toml
でインストールして、以下のようにするだけです。YAMLの場合と大体同じですね。
require 'toml' TOML.load("thing = 9") # => {"thing" => 9} TOML.load_file("my_file.toml") # => {"whatever" => "keys"}
その他
- TOMLでは日付型も定義されていて、それもUTC固定というのが地味にいいです
- githubのコードハイライトは既にTOMLに対応してます
- emacsユーザはtoml-modeというのがmelpaに登録されているので、
M-x list-packages
からインストールできます。
まとめ
TOMLという設定ファイルのための新しいフォーマットを紹介しました。 設定ファイルにYAMLやJSONつかってるひとはTOMLに移行すると幸せになれるかもしれません。
-
仕様を正確に実装したYAMLパーサはほとんど存在しないとかいう話もちらほら ↩
Quicklinks 5
April 23, 2013 at 08:20 PM | categories: quicklinks |
MessagePack
https://github.com/msgpack/msgpack/issues/121
盛り上がってたのはもう2か月くらい前ですが議論はまだ進行中のようです。 技術的な面だけでなく日本のコミュニティの外国からの見えかたとか政治力とかといった点も興味深かったです。
toml
https://github.com/mojombo/toml
日本でLTSVが流行ってたくらいの時期にtomlというミニ言語も流行っていたらしいです。 あらゆる設定ファイルはこのフォーマットになればいいと思います。
RubyMotion
rubyをつかったiOSアプリのためのツールチェイン。 rubyのコードをllvmベースのマシン語にコンパイルするので高速に実行できるとのこと。 既存のrubyコードがすべてそのまま動くというわけではないみたいですが、XCodeとObjective-C使わなくていいというのは魅力的ですね。
- http://rubysource.com/getting-to-know-rubymotion-with-laurent-sansonetti/
- http://d.hatena.ne.jp/naoya/20120831/1346409758
MobiRuby
これもrubyでiOSアプリをつくるためのものですが、こちらはmrubyをベースにしたruby実行環境をiOSの上に構築するので既存のrubyのコードがほとんどそのまま動くそうです。
Ruboto
こっちはrubyでAndroidアプリをつくるためのもの。jrubyベース。 これに関しては別途記事書きました
genome compiler
塩基配列をリッチなUIでデザインするためのエディタ的なもの。 ゲノムをソースコードのアナロジーでつかうならコンパイルは遺伝子発現だと思うけど、これで実際にできるのはデザインした配列を生合成業者に注文するところまで。
七葉院まゆせ
CVは金元寿子さんだそうです。帰省の際は両備バス利用したいと思います。
その他
つかれてきたので以下簡易版
- gadget
- Raspberry Pi : ついに実機ゲットしました
- Google Glass : ほしい
- Compressorhead : リアルにメタルでできたメタルバンド
- http://www.youtube.com/watch?v=3RBSkq-_St8
inf-php.elがmelpaに登録されました
April 21, 2013 at 04:56 PM | categories: php, emacs |
先日つくったinf-php が melpa に登録されました。1
emacs24 以降をつかっている人はM-x list-packages
からinf-phpをインストールできるようになります。
-
初めてmelpaにpull requestを送ってみましたが、送って1分でmergeされるという爆速対応でした。 ↩
About Me
mojavy |
Recent posts
95/5 Mbps とは
(August 30, 2015 at 04:22 PM)組み込み用プログラミング言語のパフォーマンス比較
(April 21, 2015 at 01:10 AM)最近読んだ本
(April 05, 2015 at 01:23 PM)Phabricatorを使ったワークフローについて
(March 02, 2015 at 08:55 PM)dnsimpleでダイナミックDNSをつかう
(December 23, 2014 at 08:02 PM)www2014のアドテク関連のResearch Trackメモ
(October 06, 2014 at 09:05 PM)flappymacs がMELPAに登録されました
(July 16, 2014 at 01:07 AM)EmacsでFlappy Birdっぽいもの書きました
(July 10, 2014 at 08:01 PM)
Recent Popular posts
Popular posts
Categories
- C (rss) (3)
- R (rss) (1)
- adtech (rss) (1)
- advent calendar (rss) (2)
- algorithms (rss) (2)
- android (rss) (2)
- aws (rss) (1)
- blog (rss) (2)
- blogofile (rss) (3)
- books (rss) (1)
- c++ (rss) (1)
- chef (rss) (4)
- common lisp (rss) (10)
- debian (rss) (2)
- dns (rss) (1)
- elasticsearch (rss) (1)
- elf (rss) (1)
- elisp (rss) (1)
- emacs (rss) (5)
- english (rss) (1)
- game (rss) (2)
- gearman (rss) (1)
- git (rss) (1)
- github (rss) (1)
- gitlab (rss) (1)
- golang (rss) (2)
- history (rss) (1)
- impress.js (rss) (1)
- internet (rss) (1)
- ios (rss) (3)
- jekyll (rss) (1)
- jenkins (rss) (1)
- linux (rss) (4)
- lisp (rss) (2)
- ltsv (rss) (1)
- lua (rss) (1)
- mac (rss) (3)
- mach-o (rss) (1)
- memo (rss) (2)
- mustache (rss) (1)
- note (rss) (1)
- objective-c (rss) (4)
- os (rss) (1)
- osx (rss) (2)
- others (rss) (1)
- paco (rss) (1)
- pdf (rss) (1)
- php (rss) (2)
- postfix (rss) (1)
- programming (rss) (12)
- project management (rss) (1)
- python (rss) (5)
- quicklinks (rss) (6)
- raspberry pi (rss) (2)
- redmine (rss) (1)
- reveal.js (rss) (1)
- ruby (rss) (10)
- sbcl (rss) (2)
- security (rss) (1)
- shell (rss) (2)
- smtp (rss) (1)
- solr (rss) (1)
- statistics (rss) (2)
- tips (rss) (10)
- tmux (rss) (3)
- toml (rss) (1)
- tools (rss) (1)
- twitter (rss) (1)
- ubuntu (rss) (1)
- unix (rss) (5)
- v8 (rss) (1)
- web (rss) (7)
- xcode (rss) (1)
- zeromq (rss) (2)
Archives
- August 2015 (1)
- April 2015 (2)
- March 2015 (1)
- December 2014 (1)
- October 2014 (1)
- July 2014 (3)
- March 2014 (6)
- February 2014 (4)
- November 2013 (3)
- October 2013 (4)
- September 2013 (2)
- July 2013 (2)
- June 2013 (2)
- May 2013 (1)
- April 2013 (6)
- March 2013 (3)
- February 2013 (8)
- January 2013 (5)
- December 2012 (1)
- November 2012 (6)
- October 2012 (7)
- August 2012 (1)
- July 2012 (9)
- June 2012 (1)
- April 2012 (1)
- December 2011 (2)
- November 2011 (2)