FrontPage


最近良く聞かれること.「Raspberry Pi で Windows が動くようになったんだって?」 はいでもありいいえでもあります.Windows 10 IoT Core というバージョンが Raspberry Pi 2 model B ( と MinnowBoard? Max )向けに提供されています.IoT 向けで Windows で一般的な GUI は実装されていませんし,導入に Windows が必須で開発にも Windows と Visual Studio が必要です.私は Windows を仮想マシンの中にしか持っていなかったり,Linux の方が慣れているので今のところあまり魅了を感じません(Microsoft HoloLens? とかが遊べるなら試したいかも).元々 Windows で開発をされている方とかにはいいのかもしれません.

追記)
「とはいっても Windows だったら各社ドライバを提供しているから何でも動いていいんじゃない?」
Windows 10 IoT でサポートされているもの以外はほぼ動かないと思って下さい.一般的なデバイスに付属しているドライバは IoT版 Windows では動作しません.少なくとも今の時点では Rasbian の方がずっと多くのデバイスが動作します.

以下のページで動作デバイスの確認が出来るようです.ボードによってサポート状況は違うみたいですね.

追記2)
Windows 10 IoT 版ではない通常の Windows 10 が動くボードが Kickstarter に出てました.興味のある方は出資してみては?(所謂技適問題があるので日本での利用時には無線は切って使うしか無いと思うけれど……)


2014年12月30日のコミックマーケット87の「matoken's meme」で頒布した,「RaspberryPi?で遊ぼう!」はアリスブックさんで委託販売中です.

2013年08月12日のコミックマーケット84(3日目)のLinux Searchers さんでRaspberry Pi 本を委託させてもらい頒布しました.冬よりページ数が倍ほどにネタは大量に増えました.購入者向け&電子販売向けのデータを8月中を目処に公開予定です.

※主にこのページの内容をまとめた小冊子を作り,2012年12月31日のコミックマーケット83 で頒布しました(3日目東 X-55a 小江戸らぐ委託/表紙込み12p \100)
昼過ぎには売り切れましたありがとうございました.

gumroad での頒布も始めました.($1) ※新しいバージョンを作成中です.

ameroad も始めました(\100) ※新しいバージョンを作成中です.

R_Pi本C83.jpg koedo_C83.jpg


Raspberry Pi | An ARM GNU/Linux box for $25. Take a byte!

Raspberry Pi は手のひらサイズのLinux ボードです.値段も$35(model B)と安くお手軽に遊べます. CPU は ARM を採用しており Linux のイメージが提供されています.(*BSD 等他の OS を動かしている人も) この値段ですが,USB x2 や RJ-45 や GPIO も付いていて色々な 用途に使えそうです. しかし,入手性が悪く注文してから何ヶ月もかかる状態でした.最近は注文してから 3 週間ほどで届くようになったり,日本のお店でも買えるようになったりと入手性も良くなってきています.

手乗りLinux を始めましょう :-)

R Pi の種類

Raspberry Pi には幾つか種類があります. 大きく分けて model A, model B の 2 種類. それとmodel B の RAM の容量違いがあります. model A と model B の違いは,model A は model B の廉価版と位置づけられていて,model A は USB Port が 1 つでネットワークもありません. そのかわり安価($25)で省電力(500mA)になっています. (その他 model B には生産場所により GPIO のピン配置が違うものもあるらしいのですが未確認です)

%%ただ,model A は未発売で model B も 9 月後半からはすべて 512MB モデルに切り替わってい るので現在は model B の 512MB モデルしか入手できないはずです. (model B 256MB モデ ルが流通在庫で残っている可能性はあるので購入時は念の為 512MB モデルか確認しましょう)%%

02/04 model A 販売開始ただし未だ日本向けはないようです
03/22 pibow なPirate Store から届きました.ずっと前にRS に注文したのは未だ来ず.

RAMネットワークUSB Port消費電力値段
model A256MBなしx1500mA$25
model B512M※1ありx2700mA$35

※1 2012 年 9 月半ばまでは 256MB だったが,それ以降は 512MB になっている.

消費電力

購入

RS

発注 : 2012/07/18
発送メール : 2012/12/01
不在票投函 : 2012/12/08
512MBが届く.

※最近は3週間ほどで届いているらしい. https://plus.google.com/u/0/107154031901743896712/posts/DGT3qriopqh

Adafruit

  • Adafruit で9/27 に入荷したよメール.即注文.
  • "U.S. Postal Service First Class Mail" で送ったよメールが9/28
  • 10/15 に郵便受けに投函されていた.
    丁度これからの発送分は512MB 版送るよの頃だったので期待したが256版だった.

発送からの時間が長かったのでけちらずに速い郵便にするべきだったかも.

ModMyPi?

PiBow? のPirate Store

秋葉原

その他

必須アクセサリ

Raspberry Pi は基本的に基盤のみです.以下のものを揃える必要があります.

  • SD Card
    2GB 4GB 以上.Class 2 からok となっているが,出来たらClass10.
  • 電源
    5V 700mA microUSB.iPad 対応のAC-USB アダプタなどが利用できる. ※PC のUSB は基本的に500mA なので動作が不安定になったりすることがある.
  • USB キーボード + モニタ(HDMI or コンポジット) or ネットワークケーブル
    モニタに映して設定するにはHDMI or コンポジットのモニタとUSB キーボードが必要.出来ればマウスも.
    ネットワーク経由での設定の場合はネットワークケーブルを用意する.dhcp server が動作していること.

お勧めアクセサリ

NOOBS でOS 導入

FAT なSD Card に展開するだけ.

% unzip -x /media/mk/ex/image/NOOBS_v1_3_4.zip -d /media/mk/63BF-4E41

Raspbian 導入

RaspbianInstaller - Raspbian よりインストーラ入手.
※mirror も幾つか試しましたがsite からはかなり遅いのでbt の方がお勧め.(10分以下だった)

$ wget http://files.velocix.com/c1410/images/raspbian/2012-10-28-wheezy-raspbian/2012-10-28-wheezy-raspbian.zip
$ wget http://downloads.raspberrypi.org/images/raspbian/2012-10-28-wheezy-raspbian/2012-10-28-wheezy-raspbian.zip.sha1
$ sha1sum -c 2012-10-28-wheezy-raspbian.zip.sha1 
sha1sum: /home/eben/images/raspbian/2012-10-28-wheezy-raspbian/2012-10-28-wheezy-raspbian.zip: そのようなファイルやディレクトリはありません
/home/eben/images/raspbian/2012-10-28-wheezy-raspbian/2012-10-28-wheezy-raspbian.zip: オープンまたは読み込みに失敗しました
sha1sum: 警告: 一覧にある 1 個のファイルが読み込めませんでした?
$ cat 2012-10-28-wheezy-raspbian.zip.sha1 
3ee33a94079de631dee606aebd655664035756be  /home/eben/images/raspbian/2012-10-28-wheezy-raspbian/2012-10-28-wheezy-raspbian.zip

oh...path を削って再度.

$ cat 2012-10-28-wheezy-raspbian.zip.sha1
3ee33a94079de631dee606aebd655664035756be  2012-10-28-wheezy-raspbian.zip
$ sha1sum -c 2012-10-28-wheezy-raspbian.zip.sha1 
2012-10-28-wheezy-raspbian.zip: OK
  • SD Card の準備

イメージの展開と書き込み.

$ sudo sh -c "zcat 2012-10-28-wheezy-raspbian.zip | dd of=/dev/sdb"

R pi にSD Card 挿入. Network Cable 接続. 最後にmicroUSB(電源)接続.

※はじめ何度やっても起動しなかったが,SD Card を交換したらうまく行った.Crad 不良だったらしい. > その後ダメだったCard を dd if=/dev/zero of=/dev/sdb とかして塗りつぶしてから再度試した動いた.

※Mac OS X だとデバイス名以外は同じ手順でOK. Windows だとdd for windows を導入したり,GUI だとWin32 Disk Imager などが利用できると思います.

  • 普通にうまく行ったCard
    • Toshiba microSD 2GB クラス4 SD-C02G
    • プリンストン SDHC 4GB Class10 USD10/4G
  • 0 で塗りつぶしてうまく行ったCard
    • SanDisk? ExtremePro? 8GB UHS-I
  • 問題の有りそうなCard

arp やnmap やdhcpd log からip 確認

$ arp
$ sudo nmap -sP 192.168.1.100-150
% sudo nmap -sP 192.168.2.1-255|grep 'MAC Address: B8:27:EB:' -B 2
Nmap scan report for 192.168.2.218
Host is up (-0.071s latency).
MAC Address: B8:27:EB:63:9D:B2 (Raspberry Pi Foundation)

接続

初期パスワードは raspberry

$ ssh pi@192.168.1.104 -o PreferredAuthentications=password
Host key fingerprint is 2a:04:7c:37:78:a3:b8:6a:3d:1e:df:3f:6a:24:7a:b6
+--[ECDSA  256]---+
|                 |
| .   .           |
|  o o =          |
|   + + o         |
|  . o   S        |
|   o . o         |
|  o.o +          |
| o +o+.. .       |
|o ..+Eooo..      |
+-----------------+

pi@192.168.1.121's password: 
Authenticated to 192.168.1.121 ([192.168.1.121]:22).
Linux raspberrypi 3.2.27+ #250 PREEMPT Thu Oct 18 19:03:02 BST 2012 armv6l

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.
/usr/bin/xauth:  file /home/pi/.Xauthority does not exist

NOTICE: the software on this Raspberry Pi has not been fully configured. Please  run 'sudo raspi-config'
pi@raspberrypi ~ $ 

という事で設定

$ sudo raspi-config
                                      ┌──────────────────────────────────────────────────────────────────────────────┐                                        
                                      │ Raspi-config                                                                 │                                        
                                      │                                                                              │                                        
                                      │           info               Information about this tool                     │                                        
                                      │           expand_rootfs      Expand root partition to fill SD card           │                                        
                                      │           overscan           Change overscan                                 │                                        
                                      │           configure_keyboard Set keyboard layout                             │                                        
                                      │           change_pass        Change password for 'pi' user                   │                                        
                                      │           change_locale      Set locale                                      │                                        
                                      │           change_timezone    Set timezone                                    │                                        
                                      │           memory_split       Change memory split                             │                                        
                                      │           overclock          Configure overclocking                          │                                        
                                      │           ssh                Enable or disable ssh server                    │                                        
                                      │           boot_behaviour     Start desktop on boot?                          │                                        
                                      │           update             Try to upgrade raspi-config                     │                                        
                                      │                                                                              │                                        
                                      │                                                                              │                                        
                                      │                     <Select>                     <Finish>                    │                                        
                                      │                                                                              │                                        
                                      └──────────────────────────────────────────────────────────────────────────────┘  
  • expand_rootfs で2G 以上使えるように.
  • change_pass でパスワード変更
  • change_timezone でTokyo に

再起動で反映.

簡単な意訳

  • expand_rootfs
    • 2GB 4GB 以上の容量の SD Card はそのままでは 2GB 4GB しか利用できない状態に なっています.これを全領域使えるようにします.2GB 4GB より大きい SD Card を 使っている場合は実行しましょう.
  • overscan
    • テレビに映す際などにオーバースキャンの設定を行います.
  • configure_keyboard
    • キーボード配列を変更します.
  • change_pass
    • パスワードの変更を行います.規定値は誰でも同じですから変更しておきま しょう.
  • change_locale
    • locale を変更します.コンソールでは基本的に日本語は表示できないのでコン ソールでしか利用しない場合は規定値のままのほうが良いでしょう.
  • change_timezone
    • タイムゾーンを変更します.
  • memory_split
    • RAM からビデオ RAM に割り当てる容量を変更します.
  • overclock
    • オーバークロックを行います.消費電力が増え,恐らく寿命が縮みます.
  • ssh
    • ssh の有効無効の設定ができます.
  • boot_behaviour
    • 起動時にデスクトップ画面を起動するか設定します.
  • update
    • OS 環境を最新の状態にします.通常の apt-get コマンドでも同様です.

source.list をmirror に変更

/etc/apt/sources.list

deb http://ftp.jaist.ac.jp/raspbian wheezy main contrib non-free rpi

locale 設定

$ sudo apt-get install locales
$ sudo dpkg-reconfigure locales

en_GB.UTF-8 は消して,en_US.UTF-8/ja_JP.UTF-8 を入れている. デフォルトは環境によりfbterm やx を常用する場合は ja_JP.UTF-8 にしている.

zram

Raspbian Wheezyにzramを導入してみた。 - もぐてっく

を参考に. /etc/rc.local の最後のexit 0 の前に以下を追記

# enable zram
modprobe zram
echo $((256 * 1024 * 1024)) > /sys/block/zram0/disksize
mkswap /dev/zram0
swapon -p 1 /dev/zram0

256MB にしてみた.

再起動して確認.

$ cat /proc/swaps 
Filename                                Type            Size    Used    Priority
/var/swap                               file            102396  0       -1
/dev/zram0                              partition       262140  0       1

over clock

通常の状態で数日連続稼働. 安定しているのでover clock を試す.

$ sudo raspi-config

の overclock から設定可能.

┌──────────────────────────────────────────────────────────┐                                                  
│ Chose overclock preset                                   │                                                  
│                                                          │                                                  
│ None   700MHz ARM, 250MHz core, 400MHz SDRAM, 0 overvolt │                                                  
│ Modest 800MHz ARM, 250MHz core, 400MHz SDRAM, 0 overvolt │                                                  
│ Medium 900MHz ARM, 250MHz core, 450MHz SDRAM, 2 overvolt │                                                  
│ High   950MHz ARM, 250MHz core, 450MHz SDRAM, 6 overvolt │                                                  
│ Turbo  1000MHz ARM, 500MHz core, 600MHz SDRAM, 6 overvolt│                                                  
│                                                          │                                                  
│                                                          │                                                  
│                                                          │                                                  
│                                                          │                                                  
│                                                          │                                                  
│                                                          │                                                  
│                                                          │                                                  
│                                                          │                                                  
│                                                          │                                                  
│              <Ok>                  <Cancel>              │                                                  
│                                                          │                                                  
└──────────────────────────────────────────────────────────┘   
$ cat /proc/cpuinfo 
Processor       : ARMv6-compatible processor rev 7 (v6l)
BogoMIPS        : 697.95
Features        : swp half thumb fastmult vfp edsp java tls 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xb76
CPU revision    : 7

Hardware        : BCM2708
Revision        : 000f
Serial          : 00000000dd1e9672

BogoMIPS は変わらんような?

Avahi(Bonjour)

dhcp でip を取得するとip がわからなくなります.

$ sudo nmap -sP 192.168.1.1-255

とかするとわかるけど面倒です.

Avahi を使って判りやすくします.

導入

$ sudo apt-get install avahi-daemon

これで,ホスト名.local という名前が利用できるようになる. #update-rc.d はしなくても設定されていた

$ ls /etc/rc?.d/*avahi*
/etc/rc0.d/K02avahi-daemon  /etc/rc2.d/S03avahi-daemon  /etc/rc4.d/S03avahi-daemon  /etc/rc6.d/K02avahi-daemon
/etc/rc1.d/K02avahi-daemon  /etc/rc3.d/S03avahi-daemon  /etc/rc5.d/S03avahi-daemon
$ ping raspberrypi.local
PING raspberrypi.local (192.168.1.106) 56(84) bytes of data.
64 bytes from raspberrypi.local (192.168.1.106): icmp_req=1 ttl=64 time=1.04 ms
64 bytes from raspberrypi.local (192.168.1.106): icmp_req=2 ttl=64 time=4.14 ms
 :

他のマシンから参照してみる.

$ /usr/bin/avahi-browse -t -a|grep -i raspberrypi
+  wlan0 IPv4 raspberrypi                                   Remote Disk Management local
+  wlan0 IPv4 raspberrypi [b8:27:eb:1e:96:72]               Workstation          local
+  wlan0 IPv4 raspberrypi [e0:91:53:70:eb:5a]               Workstation          local

#このツールは avahi-utils に入っている.gui だと avahi-discover が便利.
Screenshot_from_2013-01-21 18:40:28.png

ssh 接続の場合なんかも,以下のような感じでいける.

$ ssh pi@raspberrypi.local

コマンドラインでBluetooth 設定

  • パッケージ導入
    $ sudo apt-get install bluetooth bluez
  • daemon 起動確認
    $ /etc/init.d/bluetooth status
    bluetooth is running.
  • Bluetooth デバイス確認
    $ hcitool dev
    Devices:
            hci0    E0:91:53:77:E8:99
    $ hciconfig -a
    hci0:   Type: BR/EDR  Bus: USB
            BD Address: E0:91:53:77:E8:99  ACL MTU: 310:10  SCO MTU: 64:8
            UP RUNNING PSCAN 
            RX bytes:10030 acl:8 sco:0 events:191 errors:0
            TX bytes:1702 acl:8 sco:0 commands:111 errors:0
            Features: 0xff 0xff 0x8f 0xfe 0x9b 0xbf 0x59 0x87
            Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 
            Link policy: RSWITCH HOLD SNIFF PARK 
            Link mode: SLAVE ACCEPT 
            Name: 'raspberrypi-0'
            Class: 0x420100
            Service Classes: Networking, Telephony
            Device Class: Computer, Uncategorized
            HCI Version: 3.0 (0x5)  Revision: 0x1aa1
            LMP Version: 3.0 (0x5)  Subversion: 0x1aa1
            Manufacturer: Cambridge Silicon Radio (10)
    $ hciconfig hci0 revision
    hci0:   Type: BR/EDR  Bus: USB
            BD Address: E0:91:53:77:E8:99  ACL MTU: 310:10  SCO MTU: 64:8
            Build 6817
    $ hciconfig hci0 features
    hci0:   Type: BR/EDR  Bus: USB
            BD Address: E0:91:53:77:E8:99  ACL MTU: 310:10  SCO MTU: 64:8
            Features page 0: 0xff 0xff 0x8f 0xfe 0x9b 0xbf 0x59 0x87
                    <3-slot packets> <5-slot packets> <encryption> <slot offset> 
                    <timing accuracy> <role switch> <hold mode> <sniff mode> 
                    <park state> <RSSI> <channel quality> <SCO link> <HV2 packets> 
                    <HV3 packets> <u-law log> <A-law log> <CVSD> <paging scheme> 
                    <power control> <transparent SCO> <broadcast encrypt> 
                    <EDR ACL 2 Mbps> <EDR ACL 3 Mbps> <enhanced iscan> 
                    <interlaced iscan> <interlaced pscan> <inquiry with RSSI> 
                    <extended SCO> <EV4 packets> <EV5 packets> <AFH cap. slave> 
                    <AFH class. slave> <3-slot EDR ACL> <5-slot EDR ACL> 
                    <sniff subrating> <pause encryption> <AFH cap. master> 
                    <AFH class. master> <EDR eSCO 2 Mbps> <3-slot EDR eSCO> 
                    <extended inquiry> <simple pairing> <encapsulated PDU> 
                    <non-flush flag> <LSTO> <inquiry TX power> <EPC> 
                    <extended features> 
            Features page 1: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00
  • 周りのデバイス検索
    $ hcitool scan
    Scanning ...
            78:DD:08:B0:1F:37       x201s-0
            98:91:20:21:55:78       Bluetooth Keyboard
  • ペアリング スキャン可能なモードに変更(ISCAN PSCAN)
    $ sudo hciconfig hci0 piscan
    $ sudo bluetooth-agent 4835
    Confirmation request of 508531 for device /org/bluez/21109/hci0/dev_BC_F5_AC_32_AC_10
    でペアリング待ち もう一方のデバイスでペアリング.

モードを戻す(hiddenに)

$ sudo hciconfig hci0 noscan
  • プロトコル確認
    $ sdptool browse local

SPPが見つからなかったら追加する

$  sdptool add --channel=22 SP
  • SPP 接続
    $ sudo rfcomm listen /dev/rfcomm0 22
    Waiting for connection on channel 22
    Connection from 70:F9:27:71:74:5B to /dev/rfcomm0
    Press CTRL-C for hangup
    別端末で受信したり
    $ cat /dev/rfcomm0
    test
    hello
    hello pi
    送信したり
    $ echo "hello android" > /dev/rfcomm0

2回めからは

$ sudo bluetooth-agent --path /org/bluez/21109/hci0/dev_BC_F5_AC_32_AC_10 508531 &
$ sudo rfcomm connect hci0 4C:B1:99:1A:70:AD &

SD

相性があるようなので手元で確認できたものをメモしておく.

  • 普通にうまく行ったCard
    • Toshiba microSD 2GB クラス4 SD-C02G
  • 0 で塗りつぶしてうまく行ったCard
    • SanDisk? ExtremePro? 8GB UHS-I
  • 問題の有りそうなCard

USB

通常のPC などでは500mA 使えるが,R Pi は100mA 迄.そのため電力が足りなくてUSB 機器が動かなかったり,R Pi の動作が不安定になったりする. 電源付きのUSB ハブを経由してUSB 機器を利用すれば動作する.

動作確認機器

以下は手元で動作確認したUSB 機器

USB 直接続OK

電源付きUSB ハブ経由で動作OK

無線LAN 接続

このあたりはR Pi はほとんど関係なくてDebian の話ですが.

GUi で設定

GUI 設定画面を起動します.

$ gksudo wpa_gui &

Adapter を選択します.(wlan0 等)
Screenshot_from_2013-01-25 01:28:41.png [Scan]ボタンで AP 検索します.
出てきた AP 一覧から接続したいネットワークをダブルクリックして設定画面に移動します.
Screenshot_from_2013-01-25 01:28:48.png

AP の設定を入力します(家の WPA2-Personal(PSK) の場合は[PSK]欄にパスフレーズ入 力だけ)
Screenshot_from_2013-01-25 01:29:26.png

[ADD]ボタンで設定反映します. ※次回以降の 2 回目からはこの設定を覚えているの で,Adapter を選択,Network 選択,[Connect]ボタンで OK です.
Screenshot_from_2013-01-25 01:47:30.png

無線 LAN に接続できたら IP の取得と確認を行います.

$ sudo dhclient wlan0
$ ifconfig wlan0

CLI で設定

CLI で設定する場合に便利なコマンド.

  • 現在の設定確認
    $ /sbin/iwconfig wlan0
    wlan0     IEEE 802.11bgn  ESSID:"matohara"  
              Mode:Managed  Frequency:2.412 GHz  Access Point: 10:6F:3F:05:7B:70   
              Bit Rate=65 Mb/s   Tx-Power=20 dBm   
              Retry  long limit:7   RTS thr:off   Fragment thr:off
              Power Management:on
              Link Quality=53/70  Signal level=-57 dBm  
              Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
              Tx excessive retries:2  Invalid misc:6   Missed beacon:0
    
  • AP 検索
    $ sudo /sbin/iwlist wlan0 scanning
    wlan0     Scan completed :
              Cell 01 - Address: 10:6F:3F:05:7B:70
                        Channel:1
                        Frequency:2.412 GHz (Channel 1)
                        Quality=55/70  Signal level=-55 dBm  
                        Encryption key:off
                        ESSID:"matohara"
                        Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
                                  9 Mb/s; 12 Mb/s; 18 Mb/s
                        Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s
                        Mode:Master
                        Extra:tsf=00000082d0268dc0
                        Extra: Last beacon: 1770ms ago
                        IE: Unknown: 00086D61746F68617261
                        IE: Unknown: 010882848B960C121824
                        IE: Unknown: 030101
                        IE: Unknown: 2A0100
                        IE: Unknown: 32043048606C
                        IE: Unknown: DD180050F2020101010003A4000027A4000042435E0062322F00
                        IE: Unknown: DD1E00904C33CC111BFFFF000000000000000000000000000000000000000000
                        IE: Unknown: 2D1ACC111BFFFF000000000000000000000000000000000000000000
                        IE: Unknown: DD1A00904C3401001B00000000000000000000000000000000000000
                        IE: Unknown: 3D1601001B00000000000000000000000000000000000000
                        IE: Unknown: DD0900037F01010000FF7F
                        IE: Unknown: DD0A00037F04010000004000
                        IE: Unknown: DD09000740010179000000
                        IE: Unknown: DD5C0050F204104A0001101044000102103B00010310470010E587E432F69A11DE83A847832B4004D2102100012D102300095748522D473330314E102400012D104200012D1054000800060050F204000110110003575053100800020086
    

OpenWiFi?

/etc/network/interfaces に以下のような設定を追加

allow-hotplug wlan0
iface wlan0 inet dhcp
wireless-essid 利用したい無線のESSID

WEP

WPA/PSK

/etc/network/interfaces に以下のような設定を追加

auto wlan0
iface wlan0 inet dhcp
 &#160; &#160;wpa-ssid 利用したい無線のESSID
 &#160; &#160;wpa-psk パスフレーズ

しかし,これだとパスフレーズがそのまま表示されてよろしくない. wpa_passphrase を使って暗号化しておく.

$ wpa_passphrase 利用したい無線のESSID パスフレーズ
network={
        ssid="利用したい無線のESSID"
        #psk="パスフレーズ"
        psk=4122100422cd255a3a8b7518c78bcb7e66dcd9cb6b03426eb45f45ee2ab7872a
}

これを元に,/etc/network/interfaces のwpa-psk を差し替え.  auto wlan0  iface wlan0 inet dhcp      wpa-ssid 利用したい無線のESSID      wpa-psk 4122100422cd255a3a8b7518c78bcb7e66dcd9cb6b03426eb45f45ee2ab7872a

複数の設定

GPIO を触ってみる.

物理的なポートは以下を参照

# cat gpiotest.pl 
#!/usr/bin/perl
`echo "4" > /sys/class/gpio/export`;    # GPIO4 を使う準備
`echo "out" > /sys/class/gpio/gpio4/direction`; # GPIO4 をout で利用
while(1){
  $n=($n+1)%2;
  `echo "$n" > /sys/class/gpio/gpio4/value`; # 1でLED On/0でLED Off
  sleep 1; # 1秒毎に点滅
}

回路はGPIO Pin とLED の間に制限抵抗を挟んだだけ.

GPIO をpi ユーザで

動いたけどいちいちsudo するのは面倒です.

$ find /sys/class/gpio/ -ls
    47    0 drwxr-xr-x   2 root     root            0 Dec 16 01:09 /sys/class/gpio/
    48    0 --w-------   1 root     root         4096 Dec 16 01:09 /sys/class/gpio/export
    49    0 --w-------   1 root     root         4096 Dec 16 02:37 /sys/class/gpio/unexport
  1265    0 lrwxrwxrwx   1 root     root            0 Dec 16 02:37 /sys/class/gpio/gpiochip0 -> ../../devices/virtual/gpio/gpiochip0

以下のようなファイルを作成.gpio グループで読み書きが出来るようにする.

$ cat /etc/udev/rules.d/91-gpio.rules
KERNEL=="gpio*", MODE:="0660", GROUP:="gpio"

gpio グループを作成.

$ sudo addgroup gpio

何時も使うユーザをgpio グループに追加

$ sudo usermod -G gpio pi

追加されたのを確認

$ grep ^gpio: /etc/group
gpio:x:1001:pi

再起動

あれ?うまくいかない

$ find /sys/class/gpio/ -ls
    47    0 drwxr-xr-x   2 root     root            0 Dec 16 02:50 /sys/class/gpio/
    48    0 --w-------   1 root     root         4096 Dec 16 02:50 /sys/class/gpio/export
    49    0 --w-------   1 root     root         4096 Dec 16 02:50 /sys/class/gpio/unexport
  1265    0 lrwxrwxrwx   1 root     root            0 Dec 16 02:50 /sys/class/gpio/gpiochip0 -> ../../devices/virtual/gpio/gpiochip0

$10のRealTime? module を使う

ネットワークが使えない場合に便利.

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install git python-smbus i2c-tools
sudo sh -c 'sed -i -e "s/^blacklist i2c-bcm2708$/#blacklist i2c-bcm2708/" /etc/blacklist.conf'
sudo sh -c 'sed -i -e "s/^blacklist spi-bmc2708$/#blacklist spi-bmc2708/" /etc/blacklist.conf'
sudo sh -c "echo 'snd-bcm2835' >> /etc/modules"
sudo sh -c "echo 'i2c-dev' >> /etc/modules"
sudo reboot
sudo i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
mkdir GIT
cd GIT
git clone https://github.com/wyolum/Epoch.git
cd Epoch
sudo python Epoch.py
2013-10-27 18:24:22
2013-10-27 18:24:23

起動時に反映

sudo modprobe rtc-ds1307
sudo sh -c "echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device"
sudo sh -c "echo 'rtc-ds1307' >> /etc/modules"
sudo sh -c "echo 'echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device' >> /etc/rc.local"
sudo sh -c "echo 'sudo hwclock -s' >> /etc/rc.local"
sudo sh -c 'sed -i -e "s/^exit 0$//" /etc/rc.local'
sudo sh -c "echo 'exit 0' >> /etc/rc.local"

20140728 RaspberryPi? B+ 動作確認OK

Serial 接続

X飛ばすとかは出来ないけれどheadless で利用するのに便利.

TTL Adapter

SparkFun? FTDI Basic Breakout - 3.3V

RX(15) をTX にTX(14) をRX にGND をGND に接続.

http://www.flickr.com/photos/matoken/8303095641/ http://www.flickr.com/photos/matoken/8304148216/

接続には以下のものを利用.

$ cu -l /dev/ttyUSB1 -s 115200
Connected.

Debian GNU/Linux wheezy/sid raspberrypi ttyAMA0

raspberrypi login: pi
Password: 
Last login: Mon Dec 24 22:21:57 JST 2012 from 192.168.1.108 on pts/1
Linux raspberrypi 3.2.27+ #250 PREEMPT Thu Oct 18 19:03:02 BST 2012 armv6l

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.
pi@raspberrypi:~$ 

普通に使える.

PL2303HX to USB TTL

DX.com で$3以下で購入.

最近は同じものが日本でも売ってるがちょっと割高

以下のように接続して動作した.

  • 黒 : GND(P1-06)
  • 白 : TX(P1-08)
  • 緑 : RX(P1-10)
  • 赤 : 未接続

https://www.flickr.com/photos/119142834@N05/15534530609

※色はロットなどによって変わる可能性もあるので注意.

dmesg

[154522.798936] usb 1-1.2: new full-speed USB device number 19 using ehci-pci
[154522.895713] usb 1-1.2: New USB device found, idVendor=067b, idProduct=2303
[154522.895718] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[154522.895721] usb 1-1.2: Product: USB-Serial Controller
[154522.895722] usb 1-1.2: Manufacturer: Prolific Technology Inc.
[154522.896139] pl2303 1-1.2:1.0: pl2303 converter detected
[154522.897841] usb 1-1.2: pl2303 converter now attached to ttyUSB1
% lsusb -d 067b:2303
Bus 001 Device 019: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port

% lsusb -d 067b:2303 -vvv
https://gist.github.com/1265f47a168cfdf94a49

※USB 部分はパカッと開いてしまうのでテープで巻いたりホットボンドで止めるなどしたほうが良い

Android でも接続できた

boot message

fileserial_boot.log

Raspbian での設定

規定で接続できるが設定は以下の部分

  • /boot/cmdline.txt
    dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
    の *console=ttyAMA0,115200 console=tty1* 部分
  • /etc/inittab
    72:T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

逆にTTLの機器を接続したい場合はここを削る.

kismet を動かしてコミケのESSID を記録してみる(WAR Driving)

ここ数年コミケではモバイルWiFi? ルータのESSID で遊ぶ人が多いです.これを記録するのにNotePC だとバッテリの持ちや熱が心配です. 以前はiPad で記録していたのですがその時のsoft はJB しないと使えないものでiPad 3G にしてまだJB してないので使えませんでした.

そこで,R Pi をバッテリで動かしてkismet で記録してみるといいかもと思って試してみました.

バッテリはcheero Power Plus 10000mAh を利用. ほぼ満充電(前日に充電にしておいた)で7時間40分ほど動かして目盛りが3/5 になっていました.まだまだ動きそうです.

WiFi? モジュールはBUFFALO WLI-UC-GNM2 を利用.2.4GHz のみ対応なので,5GHz も対応したもので次は試したい.

もうひとつUSB WiFi? ドングルを挿してそっちで状態確認ができるようにしておくと良かったかもしれません.

今回は場所固定だったのでやっていませんが,GPS も接続するとログに位置情報も記録できます.

参考URL

導入

普通にpkg から

$ sudo apt-get install kismet

kismet の設定

/etc/kismet/kismet.conf を編集.

13c13
< #suiduser=your_user_here
---
> suiduser=pi
27c27
< source=none,none,addme
---
> source=ath5k,wlan0,pi

この状態でkismet の動作を確認しておく.

kismet の自動起動

出先でR Pi を操作するのが面倒なのでkismet を自動起動するようにしておく.

/etc/rc.local に以下を追記.

/usr/bin/kismet_server

再起動してkismet が自動的に起動してログが作られるのを確認する.

kismet のログ確認

/var/log/kismet 以下にログが生成される. 日本語AP 等文字参照になっているので変換が必要.

AP 数

$ wc -l Kismet-Dec-31-2012-2.csv
12109 Kismet-Dec-31-2012-2.csv

MAC アドレスで集計してユニークなAP 数

$ wc -l Kismet-Dec-31-2012-2.csv
12109 Kismet-Dec-31-2012-2.csv

ESSID 種類

$ cut -f3 -d\; Kismet-Dec-31-2012-2.csv| sort -n | uniq | wc -l
5224

ESSID 出現数順

$ cut -f3 -d\; Kismet-Dec-31-2012-2.csv| sort -n | uniq -c | sort -n | tail
    30 wifine
    41 Wi2
    41 mobilepoint
    52 0001softbank
    58 Wi2premium
   106 0002softbank
   145 PSP_ANPJH50352_L_GodEater
   195 PSP_ANPJH50332_L_DISCOVER
   740 Nintendo_3DS_continuous_scan_000
  4828 <no ssid>

日本語とか

$ cut -f3 -d\; Kismet-Dec-31-2012-2.csv|perl -pe 's/\\(\d+)/chr(oct($1))/eg;'

USB WiFI モジュールが2.4GHz のみ対応のものだったので,5GHz は拾えていない.以下のあたりが両対応(chip はRTl8192DU )らしい.

XBMC

IMG_20130122_173631.jpg

Paspberry Pi modelB 256MB 版に1GB SD で試している.

Raspbmc » Download > Raspbmc » OS X / Linux installation と辿ってLinux 用のインストールイメージを入手してroot 権限で実行.

導入用Script を入手(Windows/Mac,Linux 用がある)

$ python install.py
Raspbmc installer for Linux and Mac OS X
http://raspbmc.com
----------------------------------------
Please re-run this script with root privileges, i.e. 'sudo ./install.py'

実行

$ sudo python install.py
Raspbmc installer for Linux and Mac OS X
http://raspbmc.com
----------------------------------------
Please ensure you've inserted your SD card, and press Enter to continue.

Enter the 'Disk' you would like imaged, from the following list:
Disk /dev/mapper/sdb5_crypt doesn't contain a valid partition table
Disk /dev/mapper/x220-root doesn't contain a valid partition table
Disk /dev/mapper/x220-swap_1 doesn't contain a valid partition table
Disk /dev/sda: 600.1 GB, 600127266816 bytes
Disk /dev/mapper/sdb5_crypt: 599.9 GB, 599867260928 bytes
Disk /dev/mapper/x220-root: 575.6 GB, 575571755008 bytes
Disk /dev/mapper/x220-swap_1: 24.3 GB, 24293408768 bytes
Disk /dev/sdb: 500.1 GB, 500107862016 bytes
Disk /dev/mmcblk0: 966 MB, 966787072 bytes

Enter your choice here (e.g. 'mmcblk0' or 'sdd'): mmcblk0

※SD Card のデバイスを指定.間違えると悲しいことになるので注意.

It is your own responsibility to ensure there is no data loss! Please backup your system before imaging
You should also ensure you agree with the Raspbmc License Agreeement
Are you sure you want to install Raspbmc to '/dev/mmcblk0' and accept the license agreement? [y/N] y
Downloading, please be patient...
Downloaded 15.79 of 15.79 MiB (100.00%)

Please wait while Raspbmc is installed to your SD card...
(This may take some time and no progress will be reported until it has finished.)
0+2342 レコード入力
0+2342 レコード出力
76800000 バイト (77 MB) コピーされました、 0.582415 秒、 132 MB/秒
Installation complete.
Mounting the drive for post-installation settings

これでインストーラがSD Card に導入された.

ネットワークを接続して起動するとイメージのダウンロードが始まるはずだけど,今Network/Keyboad 用意できないのでまた今度….

てことで続き.

ネットワークとHDMI を用意して起動.イメージのダウンロードが始まる. 2回ほど再起動して導入完了.

Hulu を見たい

bluecop-xbmc-repo - Repository of XBMC video plug-ins - Google Project Hosting からrepository.bluecop.xbmc-plugins.zip を入手して導入する. するとビデオアドオンにHulu が出てくる. 設定なしだとビデオのリスト確認だけで再生できない.アカウント情報を登録すると起動しなくなった. 恐らく日本版に対応していない?

GPS モジュールを接続してみる

GPIOのSerial経由でGT-723F を接続

Serial を利用できるようにする

/boot/cmdline.txt

- dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
+ dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

/etc/inittab

  #Spawn a getty on Raspberry Pi serial line
- T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
  #Spawn a getty on Raspberry Pi serial line
+ #T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

dialout GROUP に pi USER を追加.

$ sudo addgroup pi dialout
The user `pi' is already a member of `dialout'.
$ id
uid=1000(pi) gid=1000(pi) groups=1000(pi),20(dialout)
$ reboot

配線例

GT-723F P1(GND)   <---> Pi P1-06(GND)
GT-723F P2(PWR)   <---> Pi P1-01(3.3V)
GT-723F P5(TTL-In) <---> Pi P14(TX)
GT-723F P6(TTL-Out) <---> Pi P1-15(RX)

動作確認

#gpscat は python-gps pkg

$ gpscat -s 9600 /dev/ttyAMA0
$GPRMC,120834.000,V,0000.0000,N,00000.0000,E,000.0,000.0,280606,,,N*70

$GPGGA,120834.000,0000.0000,N,00000.0000,E,0,00,0.0,0.0,M,0.0,M,,0000*61

$GPGSA,A,1,,,,,,,,,,,,,0.0,0.0,0.0*30

$GPGSV,2,1,07,02,63,062,,26,59,190,,05,55,342,,10,30,043,*7B

$GPGSV,2,2,07,29,24,314,,15,23,212,,12,07,232,*46

$GPVTG,000.0,T,,M,000.0,N,000.0,K,N*02

$GPRMC,120835.000,V,0000.0000,N,00000.0000,E,000.0,000.0,280606,,,N*71

$GPGGA,120835.000,0000.0000,N,00000.0000,E,0,00,0.0,0.0,M,0.0,M,,0000*60

$GPGSA,A,1,,,,,,,,,,,,,0.0,0.0,0.0*30

$GPGSV,2,1,07,02,63,062,,26,59,190,,05,55,342,,10,30,043,*7B

^C

HOLUX M-241 をUSB 接続

http://www.flickr.com/photos/matoken/8348772269/

接続すると/dev/ttyUSB0 が作成される.(他にUSB Serial Device があれば末尾の番号が+される.ttyUSB1->ttyUSB2…)

  • シリアル速度を38400 に設定
    $ sudo sh -c "stty 38400 < /dev/ttyUSB0"
  • gpsd パッケージを導入
    $ sudo apt-get install gpsd
  • gpscat でログを確認
    $ sudo gpscat /dev/ttyUSB0
    $GPGGA,131849.004,3115.1904,N,13051.0520,E,0,0,,121.0,M,29.0,M,,*43
    $GPGSA,A,1,,,,,,,,,,,,,,,*1E
    $GPGSV,3,1,11,14,77,097,,25,49,038,33,31,44,309,17,29,37,111,*71
    $GPGSV,3,2,11,30,30,234,,22,27,201,,32,23,305,,12,14,041,*7E
    $GPGSV,3,3,11,18,04,172,,16,03,223,,20,03,320,*47
    $GPRMC,131849.004,V,3115.1904,N,13051.0520,E,0.00,314.83,050113,,,N*74
    $GPVTG,314.83,T,,M,0.00,N,0.00,K,N*3F
    $GPGGA,131850.004,3115.1904,N,13051.0520,E,0,0,,121.0,M,29.0,M,,*4B
    $GPGSA,A,1,,,,,,,,,,,,,,,*1E
    $GPGSV,3,1,11,14,77,097,,25,49,038,33,31,44,309,17,29,37,111,*71
    $GPGSV,3,2,11,30,30,234,,22,27,201,,32,23,305,,12,14,041,*7E
    $GPGSV,3,3,11,18,04,172,,16,03,223,,20,03,320,*47
    $GPRMC,131850.004,V,3115.1904,N,13051.0520,E,0.00,314.83,050113,,,N*7C
    $GPVTG,314.83,T,,M,0.00,N,0.00,K,N*3F
    $GPGGA,131851.004,3115.1904,N,13051.0520,E,0,0,,121.0,M,29.0,M,,*4A
    $GPGSA,A,1,,,,,,,,,,,,,,,*1E
    $GPGSV,3,1,11,14,77,097,,25,49,038,33,31,44,309,17,29,37,111,*71
    $GPGSV,3,2,11,30,30,234,,22,27,201,,32,23,305,,12,14,041,*7E
    $GPGSV,3,3,11,18,04,172,,16,03,223,,20,03,320,*47
    $GPRMC,131851.004,V,3115.1904,N,13051.0520,E,0.00,314.83,050113,,,N*7D
    $GPVTG,314.83,T,,M,0.00,N,0.00,K,N*3F
    $GPGGA,131852.004,3115.1904,N,13051.0520,E,0,0,,121.0,M,29.0,M,,*49
    $GPGSA,A,1,,,,,,,,,,,,,,,*1E
    $GPGSV,3,1,11,14,77,097,,25,49,038,33,31,44,309,17,29,37,111,*71
    $GPGSV,3,2,11,30,30,234,,22,27,201,,32,23,305,,12,14,041,*7E
    $GPGSV,3,3,11,18,04,172,,16,03,223,,20,03,320,*47
    $GPRMC,131852.004,V,3115.1904,N,13051.0520,E,0.00,314.83,050113,,,N*7E
    $GPVTG,314.83,T,,M,0.00,N,0.00,K,N*3F
    ^C
  • gpsd を試す
    $ sudo gpsd -N -D 2 /dev/ttyUSB0
  • gpsbabel を試す
    • 導入
      $ sudo apt-get install gpsbabel
    • ロギング
      $ sudo gpsbabel -t -w -i m241 -f /dev/ttyUSB0 -o gpx -F `date +'%F-%H:%M'`.gpx &
      $ head -20 2013-01-05-22:32.gpx
      <?xml version="1.0" encoding="UTF-8"?>
      <gpx
        version="1.0"
        creator="GPSBabel - http://www.gpsbabel.org"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://www.topografix.com/GPX/1/0"
        xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
      <time>2013-01-05T13:33:12Z</time>
      <bounds minlat="31.252632141" minlon="130.843322754" maxlat="31.259998322" maxlon="130.851913452"/>
      <trk>
        <name>track-1</name>
        <desc>Log every 1 sec, 0 m</desc>
      <trkseg>
      <trkpt lat="31.259840012" lon="130.843322754">
        <ele>126.966797</ele>
        <time>2013-01-04T05:21:27Z</time>
        <name>TP000001</name>
      </trkpt>
      <trkpt lat="31.259849548" lon="130.843338013">
        <ele>127.013672</ele>

HDMI-VGA 変換経由で解像度の低いモニタを利用する

HDMI to VGA adapter を利用してVGA モニタに接続することが可能.

手元のモニタは1366x768

% diff config.txt-org config.txt 
25c25
< #hdmi_mode=1
---
> hdmi_mode=39  # 1360x768  60Hz

リアルタイム動画配信を試してみる

Justin TV

Raspberry Pi のUSB にWebCam?WiFi? モジュールを接続し,配信はffmpeg でエンコードを行いRTMP でJustin.tv へデータを送信しています.

$ padsp ffmpeg -f video4linux2 -pix_fmt bgra -s 160x120 -r 7 -i /dev/video0 -vcodec libx264 -vpre baseline -f flv "rtmp://live.justin.tv/app/live_xxxxxx_xxxxxxxx"

※最後のlive_xxxxxx_xxxxxxxx 部分はJustin.tv にlogin した状態で http://ja.justin.tv/broadcast/adv_other#fmle にアクセスして設定ファイルをダウンロード.そのファイルの中の <stream> タグの中身を書きます.

配信は出来ましたが,160x120 でも1fps とかでした. 現在クロックアップして少しだけマシになりました.

クロックアップ前

frame=39659 fps=  1 q=17.0 size=  279396kB time=37567.14 bitrate=  60.9kbits/s dup=0 drop=64

クロックアップ後(Turbo)

frame=  174 fps=  2 q=19.0 size=     658kB time=51.14 bitrate= 105.4kbits/s dup=0 drop=55    p=40   

ハードウェアエンコードが効いてないと思うので効くように出来ないか調べてみようと思っています.

PC をRaspberry Pi のコンソールにする.

Raspberry Pi のコンポジットをキャプチャしてPC で画面を見られないかなと試してみました.

USB キャプチャを利用.$10 以下のEasyCAP を選択.

挿すと /dev/video? が作成される.(なんか1回目は大抵失敗する.その場合挿しなおして認識)
適当なsoft で表示する.

$ mplayer tv:///4 -tv device=/dev/video1:norm=NTSC_M:width=720:height=480 -vf scale,pullup,pp=l5,dsize=16/9,screenshot -framedrop

EasyCAP はすごい画質悪い.コンポジットとは言え悪すぎる気がします.少し値が張るけど国産の適当なものを買ったほうがいいのかも><

Screenshot_from_2013-03-22 19:45:51.png

Amazon.co.jp: Princeton USBビデオキャプチャーユニット デジ造 映像版 PCA-DAV2: パソコン・周辺機器 というものがハードオフで\1,200- で売っていたので買ってみました. 普通に/dev/video? で繋がりました.しかし以下のようにやはりボケます.矢張りコンポジットはダメぽいですね.
Screenshot_from_2013-09-24 21:11:48.png

Mathematica

てことで入れてみる

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install wolfram-engine

途中ライセンス確認が入ります.

$ wolfram 
Wolfram Language (Raspberry Pi Pilot Release)
Copyright 1988-2013 Wolfram Research
Information & help: wolfram.com/raspi

In[1]:= 

GUI だと

$ /opt/Wolfram/WolframEngine/10.0/Executables/mathematica

Mathematicaで任意画像の輪郭を数式に変換するを試してみる

Adafruit PiTFT を使う

Adafruit のRaspberry Pi のGPIO(26Pin/40Pin両対応)接続のQVGAの液晶+タッチパネル+GPIO 接続ボタンの基板.

利用には専用ドライバ等が必要.Raspbianにはバイナリパッケージが用意されている. 現在はAdafruit から導入済みのRaspbian イメージや導入用Script が用意されていて導入は簡単になった.

導入Script 実行例
※2015/02/18時点ではこのScriptをRaspberryPi2が動作するイメージで実行するとRaspberryPi2のkernelが消えてしまうようなので注意.(/boot をコピーして起動するように.その後 linux-image-3.18.0-trunk-rpi2 firmware-linux-free linux-base を導入して復旧した?)

$ wget http://adafru.it/pitftsh
$ sudo bash ./pitftsh -t 28r -r
   :
Would you like the console to appear on the PiTFT display? [y/n] 
   :
Would you like GPIO #23 to act as a on/off button? [y/n] 
   :
$ reboot

導入後再起動すると /dev/fb1 として利用できるようになる.
https://farm9.staticflickr.com/8596/16495525821_aec7c73346_n.jpg
後はfbtermを使うなり
https://farm8.staticflickr.com/7414/15879012013_95280a79b9_n.jpg
startxして
https://farm9.staticflickr.com/8642/16497250935_62f9da692f_n.jpg
mikutterするなり出来る
https://farm8.staticflickr.com/7408/15876608414_75fd12d76d_n.jpg

mountする

SD image をmount する

Raspbian イメージは複数のパーティションを持っている.パーティション情報を確認.

% /sbin/fdisk -l -u ./2015-01-31-raspbian.img 

Disk ./2015-01-31-raspbian.img: 3.1 GiB, 3276800000 bytes, 6400000 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
Disklabel type: dos
Disk identifier: 0x00092fac

Device                     Boot  Start     End Sectors Size Id Type
./2015-01-31-raspbian.img1        8192  122879  114688  56M  c W95 FAT32 (LBA)
./2015-01-31-raspbian.img2      122880 6399999 6277120   3G 83 Linux

開始ブロックを参照する.ここでは1つ目のパーティションの開始ブロックは 8192,2つ目は 122880

以下の例では1つ目のパーティションを読み込み専用で /mnt にループバックマウントしている.

% sudo mount -o loop,ro,offset=`expr 8192 \* 512` ./2015-01-31-raspbian.img /mnt

loop デバイス経由のほうが解りやすいかも?

書籍

blog

参考URL



spam 避けですcheck を付けて下さい

添付ファイル: fileScreenshot_from_2013-09-24 21:11:48.png 760件 [詳細] fileScreenshot_from_2013-03-22 19:45:51.png 768件 [詳細] fileScreenshot_from_2013-01-25 01:47:30.png 803件 [詳細] fileScreenshot_from_2013-01-25 01:29:26.png 754件 [詳細] fileScreenshot_from_2013-01-25 01:28:48.png 759件 [詳細] fileScreenshot_from_2013-01-25 01:28:41.png 739件 [詳細] fileIMG_20130122_173631.jpg 806件 [詳細] fileScreenshot_from_2013-01-21 18:40:28.png 760件 [詳細] fileserial_boot.log 691件 [詳細] filekoedo_C83.jpg 804件 [詳細] fileR_Pi本C83.jpg 557件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-02-13 (金) 07:19:20 (738d)