HOME
  Security
   Software
    Hardware
  
FPGA
  CPU
   Android
    Raspberry Pi
  
nLite
  Xcode
   etc.
    ALL
  
English Translate 中文翻訳
LINK
BACK
 

[NEW] 2016/03/26

Raspberry Pi 3の Linuxコンソール上で使用する各種コマンドまとめ Raspberry Pi 3の Linuxコンソール上で使用する各種コマンドまとめ

(ラズパイの Raspbian OSのコマンドラインで使用する便利コマンド、負荷試験や CPUシリアル番号の確認方法等も)

Tags: [Raspberry Pi], [電子工作]






● Raspberry Pi 3 Model B

 Raspberry Pi3 Model B RPI2 RPI3

 大人気の CPUボードの Raspberry Piに WiFiと Bluetoothが搭載されたモデルが新発売となりました。
 以前から Raspberry Pi 2を買おうかどうか迷っていましたが、Raspberry Pi 3 Model Bの発売を機に購入を決意してラズベリアンになる事にしました。

 ※ ラズパイの OS Raspbianはバージョンが上がる毎に過去の版と OSの内部の作りが変わり、過去に書かれた製作記事(例えば Raspbian Wheezyの時代の記事)がそのままではエラーが出たりして動かない事が有ります。
 ※ 当方のホームページのラズパイ記事は全て Raspberry Pi 3 Model Bと Raspbian Jessieの組み合わせで動作確認をしております。
(ただし、将来的に新しい Raspbian OSが出た場合に、当方の Raspbian Jessieを基にした内容がそのままでは動かない可能性が有ります。)


● Raspberry Piの各種コマンド

 32GBの SDカードなのに使用出来る領域が 4GBしかない(空き領域が少ない)

 RASPBIAN JESSIE 2016-05-10版から、最初の起動時に自動で SDカード領域を広げる様になりました。(あまりにも初心者からの問い合わせが多かったのかな?)
2016-05-10:
* File system automatically expanded on first boot
Download Raspbian for Raspberry Pi

 RASPBIAN JESSIE 2016-05-10版から、初回起動時に自動で領域拡張するので下記の手順は不要。
 32GBの SDカードに RASPBIAN JESSIEの imgを書き込んでも初期状態では 4GBの領域しか認識していません。
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 3.6G 3.3G 116M 97% /
 dfコマンドで確認すると /dev/rootのユーザー領域が全体で 3.6GBしか無く、既に 3.3GBを使用している状態。

$ sudo raspi-config
 で
 1 Expand Filesystem Ensures that all of the SD cards
 を実行して再起動する。
 (自動的に SDカードの領域をリパーテーションして全部の領域を使用する。)

※ Expand Filesystem後の再起動で [FAILED]や EXT4-fs errorが出て起動しなくなった場合は SDカードの相性と思って良い。


 初回起動時に自動で SD-Cardの領域拡張するのを停止する方法

/boot/cmdline.txt
 をテキストエディタで開いて、
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet init=/usr/lib/raspi-config/init_resize.sh
 から
init=/usr/lib/raspi-config/init_resize.sh
 を削除する。



ラズパイと micro SDカードの相性

 結論:相性が出るカードは素直に諦めて安定して使えるカードに交換しましょう。
 Raspberry Pi3で安定して使える相性の無い microSDカードのまとめ

[NEW] 2016/09/10
Raspberry Pi3で安定して使える相性の無い microSDカードのまとめ
Raspberry Pi3で安定して使える相性の無い microSDカードのまとめ

  ラズパイ3で安定して使える microSDカードを購入する Teamと SanDiskは絶対に買わない
 下記の対処方法はオススメしません。
 何もしなくても安定して使える SDカードを買うのが良いです。
 相性が発生して使えない SDカードは素直に捨てましょう。

PATRiOT Class10 32GB相性無し、大丈夫-
Team Class10 32GB MMCTR32GSKSA-GP相性有り、使えない下記対策でも駄目(ブートプロセス中に死ぬ)
SanDisk Ultra UHS-I 32GB相性有り、使えない下記対策で大丈夫かも?でもやっぱり駄目(全く起動しない状態から起動する様になったが不安定)

 相性が発生して使えない場合に対処方法(オススメしません)
 下記を設定で安定するかも。
 ・転送速度を標準の 50MHzから 2MHzにして遅くする。(25MHzでも良い)
 ・DMAでは無く GPIO制御で SDカードにアクセスする。(不要?)

 ※この SDカードの動作クロックの設定を変更すると、WiFiデバイスが使えなくなる問題が有る事が分かりました。
Raspberry Pi 3 no wifi

 /boot/config.txt
 に下記を追加(SDカードにイメージを焼いた後にパソコン上で config.txtをテキストエディタで開いて追記するのが良いと思う)
dtparam=sd_overclock=2
dtoverlay=mmc,overclock_50=2
# 下記の 3行は不要?
# dtparam=sd_overclock=2,sd_force_pio=on
# dtoverlay=sdhost,overclock_50=2,sd_force_pio=on
# dtoverlay=sdio,overclock_50=2,sd_force_pio=on
 dtparam=sd_overclock=2の確認
$ od -Ax -td4 --endian=big /proc/device-tree/soc/sdhost@7e202000/brcm,overclock-50
000000           2
000004

 dtoverlay=mmc,overclock_50=2の確認
$ sudo cat /sys/kernel/debug/mmc0/ios
clock:          50000000 Hz
actual clock:   2976190 Hz
vdd:            21 (3.3 ~ 3.4 V)
bus mode:       2 (push-pull)
chip select:    0 (don't care)
power mode:     2 (on)
bus width:      2 (4 bits)
timing spec:    2 (sd high-speed)
signal voltage: 0 (3.30 V)
# 相性の有る SDカードの場合はパソコン上で /config.txtに下記を追加編集する
# SDカードの転送速度を 25MHzに設定(デフォルトは 50MHz)
# ※この SDカードの動作クロックの設定を変更すると、ラズパイ3に載っている WiFiデバイスが使えなくなる問題が有る事が分かりました。
dtparam=sd_overclock=2
dtoverlay=mmc,overclock_50=2

sudo bash -c "echo dtparam=sd_overclock=25 >> /boot/config.txt"
sudo bash -c "echo dtoverlay=mmc,overclock_50=25 >> /boot/config.txt"
# ↑
# ※この SDカードの動作クロックの設定を変更すると、ラズパイ3に載っている WiFiデバイスが使えなくなる問題が有る事が分かりました。
# 相性の無いカードに買い換えるのが良いです。


 SDカードの使用量を見る(GB単位)

$ sudo du -xh / | grep -P "G\t"

$ df
 パーティション単位のディスク使用量の確認

$ df -h
 パーティション単位のディスク使用量の確認(上記の dfよりも表示内容が見やすい)

 bashコマンドラインでテキストファイルの新規作成(上書き)、追記書き込み

 テキストファイルの新規作成(既存の場合は上書き)
$ sudo bash -c "echo {新規に書き込む内容} > {ファイル名}"
例:deb ~ non-free rpiで /etc/apt/sources.listファイルを新規作成、または上書きする。
$ sudo bash -c "echo deb http://ftp.jaist.ac.jp/raspbian/ wheezy main contrib non-free rpi > /etc/apt/sources.list"

 テキストファイルに追記書き込み(既存が無い場合は新規作成)
$ sudo bash -c "echo {追記で書き込む内容} >> {ファイル名}"
例:core_freq=250を /boot/config.txtファイルの最後に追記する。
$ sudo bash -c "echo core_freq=250 >> /boot/config.txt"

※新規作成(既存の場合は上書き)は >が 1個。追記の場合は >が 2個


 ラズパイの各種設定
$ sudo raspi-config
 GUIメニューで項目を選択して各種設定を変更出来ます。

 raspi-configで SPIを有効にした時に下記のエラーが出る
modprobe: ERROR: could not insert 'spi_bcm2708': No such device
 無視して良い。
 SPI機能の名称が spi_bcm2708から spi_bcm2835に変わったため。
$ lsmod | grep spi
 で spi_bcm2835が出力されていれば問題無い。

 ラズパイの各種設定
$ sudo nano /boot/config.txt
 テキストエディタで編集します。

DOCUMENTATION > CONFIGURATION > CONFIG-TXT
 公式の CONFIG.TXTの説明。裏設定については何も書かれていません。

GitHub raspberrypi/firmware firmware/boot/overlays/README
 GitHubの CONFIG.TXTの説明。公式には書いていない項目についても書いてある。

 bashコマンドラインの重複した履歴を記録しない。
$ echo export HISTCONTROL=ignoredups >> ~/.bashrc
 ignoredups 「同じコマンドが連続する場合は 1回だけ記録する」
 ignorespace 「コマンドの先頭にスペースを入れると記録しない」
 ignoreboth ignoredupsと ignorespaceの両方を指定
$ echo export HISTCONTROL=ignoreboth >> ~/.bashrc

 bashコマンドラインで exitコマンドを履歴に記録しない。
$ echo export HISTIGNORE=exit >> ~/.bashrc
 lsコマンドも記録しない場合は export HISTIGNORE=ls:exit とする。

 ラズパイをシャットダウン操作して電源が切れたかを簡単に確認する方法
$ sudo nano /boot/config.txt
 で /boot/config.txtに下記を追加して再起動する。
dtparam=act_led_trigger=heartbeat
 緑色の ACT LEDの動作がハートビート(心臓の鼓動)になり一定間隔で点滅する。シャットダウンして電源が切れた状態では点灯したままになるので簡単にラズパイの電源が切れたかを確認出来る。(デフォルトは SDカードへのアクセス時に点滅する。)

 bashシェルからは下記のコマンドでも設定出来ます。
$ sudo bash -c "echo dtparam=act_led_trigger=heartbeat >> /boot/config.txt"


 ラズパイの各種設定
$ sudo nano /boot/cmdline.txt
 テキストエディタで編集します。

 ラズパイの時刻設定を JST(日本標準時間)にする

$ sudo raspi-config
5 Internationalisation Options -> I2 Change Timezone -> Asia -> Tokyo
 を順に選択する。

 コマンドラインでタイムゾーンを設定する場合は /etc/localtimeを書き換える
$ date
Tue 24 May 12:12:05 UTC 2016 ← タイムゾーンは UTCになっている グリニッジ標準時
$ sudo mv /etc/localtime /etc/localtime.org
$ sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
$ date
Tue 24 May 21:12:10 JST 2016 ← タイムゾーンは JSTになっている 日本標準時 GMT+9


 ラズパイのアップデート、最新の状態にする
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get dist-upgrade
※途中で [Y/n]が出たら Yか nを入力する。
$ sudo reboot
 完了したら再起動する

 Yや nの入力が面倒な場合は、下記の様に -yオプションを付けると全部 'Y'扱いになる。
$ sudo apt-get update
$ sudo apt-get -y upgrade
$ sudo apt-get -y dist-upgrade
$ sudo reboot

Failed to fetch http://mirrordirector.raspbian.org/raspbian/pool/
 の場合は、
$ cat /etc/apt/sources.list
deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://archive.raspbian.org/raspbian/ jessie main contrib non-free rpi
 を下記に書き換える
deb http://ftp.jaist.ac.jp/raspbian/ wheezy main contrib non-free rpi
#deb-src http://ftp.jaist.ac.jp/raspbian/ wheezy main contrib non-free rpi

$ sudo bash -c "echo deb http://ftp.jaist.ac.jp/raspbian/ wheezy main contrib non-free rpi > /etc/apt/sources.list"

※ upgrade途中で書き込みエラーとかで失敗する場合は SDカードの相性も考えられる。
※ SDカードの領域のリパーテーションを忘れずに。(現在のバージョンは自動で行なうので不要)(容量不足になるかも)


 再起動
$ sudo reboot
 または
$ sudo shutdown -r now

 シャットダウン(電源切断)
$ sudo shutdown -h now

 電源オフ
$ sudo poweroff

 コマンドラインでビープ音
$ echo -e "\a"
$ echo $'\a'

 NTPサーバの確認
$ ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
+y.ns.gin.ntt.ne 249.224.99.213 2 u 51 64 3 12.087 -0.757 2.707
+x.ns.gin.ntt.ne 249.224.99.213 2 u 44 64 7 13.908 -3.199 2.740
-sv01.azsx.net 103.1.106.69 2 u 44 64 7 8.207 2.628 1.139
*chobi.paina.jp 131.112.125.48 2 u 13 64 17 22.481 -2.281 3.003

 /etc/ntp.confを編集する
$ sudo nano /etc/ntp.conf
 コメント化する
# server 0.debian.pool.ntp.org iburst
# server 1.debian.pool.ntp.org iburst
# server 2.debian.pool.ntp.org iburst
# server 3.debian.pool.ntp.org iburst
 追加する
pool ntp.nict.jp iburst

$ sudo reboot

$ ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
-ntp-a3.nict.go. .NICT. 1 u 9 64 1 29.445 -12.651 10.660
+ntp-b3.nict.go. .NICT. 1 u 6 64 1 4.435 -0.121 7.412
+ntp-a2.nict.go. .NICT. 1 u 8 64 1 15.259 -5.545 4.955
*ntp-b2.nict.go. .NICT. 1 u 5 64 1 14.417 -5.118 4.956



 ラズパイの SDカードを長持ちさせる。swapの廃止、tmpの RAM Disk化

swapの廃止
$ free
total used free shared buffers cached
Mem: 753128 148756 604372 5328 11520 90720
-/+ buffers/cache: 46516 706612
Swap: 102396 0 102396

$ sudo dphys-swapfile swapoff
$ free
total used free shared buffers cached
Mem: 883048 312568 570480 6596 16832 211784
-/+ buffers/cache: 83952 799096
Swap: 0 0 0

swapの廃止(apt-get removeしないと再起動時に swapが復活する)
$ sudo apt-get -y remove dphys-swapfile

$ sudo nano /etc/dphys-swapfile
CONF_SWAPSIZE=100
 を
CONF_SWAPSIZE=0
 に書き換える方法でもよさげだが、dphys-swapfileサービスそのものが不要なので removeする。

RAMディスクの作成

$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 30G 2.3G 26G 9% /
devtmpfs 427M 0 427M 0% /dev
tmpfs 432M 0 432M 0% /dev/shm
tmpfs 432M 6.0M 426M 2% /run
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 432M 0 432M 0% /sys/fs/cgroup
/dev/mmcblk0p1 60M 20M 41M 34% /boot
tmpfs 87M 0 87M 0% /run/user/1000

$ sudo nano /etc/fstab
 に、下記行を追加する
# Make RAM Disk and Store tmp files.
tmpfs /tmp tmpfs defaults,size=32m,noatime,mode=1777 0 0
tmpfs /var/tmp tmpfs defaults,size=32m,noatime,mode=1777 0 0

$ sudo reboot

 /var/tmpと /tmpが追加されている。
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 30G 2.3G 26G 9% /
devtmpfs 427M 0 427M 0% /dev
tmpfs 432M 0 432M 0% /dev/shm
tmpfs 432M 6.0M 426M 2% /run
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 432M 0 432M 0% /sys/fs/cgroup
tmpfs 32M 0 32M 0% /var/tmp
tmpfs 32M 8.0K 32M 1% /tmp
/dev/mmcblk0p1 60M 20M 41M 34% /boot
tmpfs 87M 0 87M 0% /run/user/1000

 Logファイルの RAM Disk化も有るが、ややこしそうなので見送り。

https://www.kernel.org/doc/Documentation/gpio/sysfs.txt



 ラズパイOSのカーネルのバージョンを確認する方法
$ uname -a
Linux raspberrypi 4.1.19-v7+ #858 SMP Tue Mar 15 15:56:00 GMT 2016 armv7l GNU/Linux

$ cat /etc/issue
Raspbian GNU/Linux 8 \n \l

$ cat /etc/debian_version
8.0

$ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 8 (jessie)"
NAME="Raspbian GNU/Linux"
VERSION_ID="8"
VERSION="8 (jessie)"
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

 CPU情報の取得
$ lscpu
Architecture: armv7l
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 1
Core(s) per socket: 4
Socket(s): 1
Model name: ARMv7 Processor rev 4 (v7l)
CPU max MHz: 1126.0000
CPU min MHz: 600.0000

 CPU情報の取得(固有の CPUのシリアル番号も確認出来ます。)
$ cat /proc/cpuinfo
processor : 0
model name : ARMv7 Processor rev 4 (v7l)
BogoMIPS : 76.80
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xd03
CPU revision : 4

Hardware : BCM2709
Revision : a22082
Serial : 0000000012345678


 RaspberryPiで CPUの動作周波数を取得する

 ラズパイ3は 4コアなので cpu0~cpu3まで指定出来ます。
$ sudo cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq
600000

$ sudo cat /sys/devices/system/cpu/cpu1/cpufreq/cpuinfo_cur_freq
600000

$ sudo cat /sys/devices/system/cpu/cpu2/cpufreq/cpuinfo_cur_freq
600000

$ sudo cat /sys/devices/system/cpu/cpu3/cpufreq/cpuinfo_cur_freq
600000

 ラズパイ3は 4コアなので cpu4を指定するとエラーになります。
$ sudo cat /sys/devices/system/cpu/cpu4/cpufreq/cpuinfo_cur_freq
cat: /sys/devices/system/cpu/cpu4/cpufreq/cpuinfo_cur_freq: No such file or directory

 RaspberryPiの CPU動作モードの確認と変更方法

 現在の cpu0の動作モードを確認 → ondemand(忙しい時に頑張る)
$ sudo cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
ondemand

 設定出来る cpu0の動作モードを確認
$ sudo cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
conservative ondemand userspace powersave performance
 → performanceにすれば常に頑張る

 cpufreq-infoツールをインストールして、cpuガバナの設定を performanceにする。
$ sudo apt-get -y install cpufrequtils
$ cpufreq-info
cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009
Report errors and bugs to cpufreq@vger.kernel.org, please.
analyzing CPU 0:
driver: BCM2835 CPUFreq
CPUs which run at the same hardware frequency: 0 1 2 3
CPUs which need to have their frequency coordinated by software: 0 1 2 3
maximum transition latency: 355 us.
hardware limits: 600 MHz - 1.13 GHz
available frequency steps: 600 MHz, 1.13 GHz
available cpufreq governors: conservative, ondemand, userspace, powersave, performance
current policy: frequency should be within 600 MHz and 1.13 GHz.
The governor "performance" may decide which speed to use
within this range.
current CPU frequency is 1.13 GHz.
cpufreq stats: 600 MHz:89.11%, 1.13 GHz:10.89% (6)
analyzing CPU 1:
driver: BCM2835 CPUFreq
CPUs which run at the same hardware frequency: 0 1 2 3
CPUs which need to have their frequency coordinated by software: 0 1 2 3
maximum transition latency: 355 us.
hardware limits: 600 MHz - 1.13 GHz
available frequency steps: 600 MHz, 1.13 GHz
available cpufreq governors: conservative, ondemand, userspace, powersave, performance
current policy: frequency should be within 600 MHz and 1.13 GHz.
The governor "performance" may decide which speed to use
within this range.
current CPU frequency is 1.13 GHz.
cpufreq stats: 600 MHz:89.11%, 1.13 GHz:10.89% (6)
analyzing CPU 2:
driver: BCM2835 CPUFreq
CPUs which run at the same hardware frequency: 0 1 2 3
CPUs which need to have their frequency coordinated by software: 0 1 2 3
maximum transition latency: 355 us.
hardware limits: 600 MHz - 1.13 GHz
available frequency steps: 600 MHz, 1.13 GHz
available cpufreq governors: conservative, ondemand, userspace, powersave, performance
current policy: frequency should be within 600 MHz and 1.13 GHz.
The governor "performance" may decide which speed to use
within this range.
current CPU frequency is 1.13 GHz.
cpufreq stats: 600 MHz:89.11%, 1.13 GHz:10.89% (6)
analyzing CPU 3:
driver: BCM2835 CPUFreq
CPUs which run at the same hardware frequency: 0 1 2 3
CPUs which need to have their frequency coordinated by software: 0 1 2 3
maximum transition latency: 355 us.
hardware limits: 600 MHz - 1.13 GHz
available frequency steps: 600 MHz, 1.13 GHz
available cpufreq governors: conservative, ondemand, userspace, powersave, performance
current policy: frequency should be within 600 MHz and 1.13 GHz.
The governor "performance" may decide which speed to use
within this range.
current CPU frequency is 1.13 GHz.
cpufreq stats: 600 MHz:89.11%, 1.13 GHz:10.89% (6)

 沢山表示されるので grepで必要部分だけフィルタして表示
$ cpufreq-info | grep "current"
current policy: frequency should be within 600 MHz and 1.13 GHz.
current CPU frequency is 600 MHz.
current policy: frequency should be within 600 MHz and 1.13 GHz.
current CPU frequency is 600 MHz.
current policy: frequency should be within 600 MHz and 1.13 GHz.
current CPU frequency is 600 MHz.
current policy: frequency should be within 600 MHz and 1.13 GHz.
current CPU frequency is 600 MHz.

 cpuガバナの設定を performanceにする。
$ sudo cpufreq-set -g performance

 1.13 GHzになっていれば CPUガバナの設定変更成功
$ cpufreq-info | grep "current"
current policy: frequency should be within 600 MHz and 1.13 GHz.
current CPU frequency is 1.13 GHz.
current policy: frequency should be within 600 MHz and 1.13 GHz.
current CPU frequency is 1.13 GHz.
current policy: frequency should be within 600 MHz and 1.13 GHz.
current CPU frequency is 1.13 GHz.
current policy: frequency should be within 600 MHz and 1.13 GHz.
current CPU frequency is 1.13 GHz.


 RaspberryPiで CPU温度を取得する

$ cat /sys/class/thermal/thermal_zone0/temp
83820
 83820を 1000で割ると温度になる。→ この場合は 83.820度(連続ベンチマーク状態)

 ベンチマーク停止後は徐々に温度が下がります。
$ cat /sys/class/thermal/thermal_zone0/temp
68756
$ cat /sys/class/thermal/thermal_zone0/temp
56920

 catを使わないで CPU温度を取得する方法は vcgencmdを使います。
$ vcgencmd measure_temp
temp=66.6'C

 CPUの動作周波数の確認方法
$ vcgencmd measure_clock arm
frequency(45)=600064000

 CPUの動作電圧の確認方法
$ vcgencmd measure_volts
volt=1.2000V

 CPUの使用メモリ空間の確認方法
$ vcgencmd get_mem arm
arm=880M

 GPUの使用メモリ空間の確認方法
$ vcgencmd get_mem gpu
gpu=128M

 その他 vcgencmdの使い方はここを参照。
RPI vcgencmd usage

$ for src in arm core h264 isp v3d uart pwm emmc pixel vec hdmi dpi ; do echo -e "$src:\t$(vcgencmd measure_clock $src)"; done
arm: frequency(45)=600000000
core: frequency(1)=250000000
h264: frequency(28)=250000000
isp: frequency(42)=250000000
v3d: frequency(43)=250000000
uart: frequency(22)=48000000
pwm: frequency(25)=100000000
emmc: frequency(47)=250000000
pixel: frequency(29)=29500000
vec: frequency(10)=0
hdmi: frequency(9)=163683000
dpi: frequency(4)=0

$ for id in core sdram_c sdram_i sdram_p ; do echo -e "$id:\t$(vcgencmd measure_volts $id)"; done
core: volt=1.2000V
sdram_c: volt=1.2000V
sdram_i: volt=1.2000V
sdram_p: volt=1.2250V



 全CPUに負荷を掛ける
$ openssl speed -multi `grep processor /proc/cpuinfo|wc -l`
※数十秒で画面右上に赤四角の高温警報が確認出来ます。

 1個のCPUに負荷を掛ける
$ openssl speed -multi 1

 Linux ラズパイでメモリ使用量を調べるコマンド
free
vmstat
top
 topはプロセスの状況をリアルタイムで見る事が出来る。

htop topの強化版
$ sudo apt-get -y install htop

 CPU負荷時のラズパイ3の消費電力
負荷 CPU数消費電流負荷%読み値実行コマンド
無し0.11A0%アイドル状態
1コア0.14A25%openssl speed -multi 1
2コア0.19A50%openssl speed -multi 2
3コア0.23A75%openssl speed -multi 3
4コア0.26A100%openssl speed -multi 4
※電流の計測には USB接続型の電流計 Keweisi USB testerを使用
※接続機器:5インチ HDMIディスプレイ、USBマイク、USB光学マウス、有線LAN
※ Planex製の +5V 2A ACアダプタ(PL-WUCHG03)、秋月の大電流対応の USBケーブル 22AWG使用

スイッチサイエンス Raspberry Pi 3の電源問題についてLTしました 2016年4月13日
 電流計の読み値が 1Aでも電源の品質によっては電圧がドロップするので低電圧警報が出る模様。
 また、当たり前の事ですが、USBケーブルの芯線の太さやケーブルの長さにも影響を受けます。
 ラズパイ3せ使用する電源ケーブルの芯線は 22AWGが理想、24AWGが限界か。(AWGの数字が小さい程太くなる。American Wire Gaugeの略で、数字は線を引っ張って伸ばした回数だった様な気が、、、)

 上記レポートの中の素数のベンチ
 apt-getで sysbenchをインストール
$ sudo apt-get -y install sysbench

 sysbenchコマンドを実行(数字の 4は CPUコアの数)
$ sysbench --test=cpu --num-threads=4 run

 負荷を長い時間掛けたい場合(デフォルトは--cpu-max-prime=10000)
$ sysbench --test=cpu --num-threads=4 --cpu-max-prime=1000000 run

 GeeXLab demo_sphere_gles2
GeeXLab Downloads
 v0.9.6.0 2016.02.15 Raspberry Pi


Anker 40W 5ポート USB急速充電器 ACアダプタ PowerIQ搭載 【PowerIQ搭載】(ホワイト) 71AN7105SS-WJA
ASIN: B00IDTILEW

PLANEX 「充電万能」(2ポート合計2000mA)USB充電器 ブラック PL-WUCHG03-B
ASIN: B0043BX040

dodoomi 高速マイクロUSB2.0ケーブル (1m)
ASIN: B01AJ2J9A0
22AWG使用 USBケーブル

Ugreen プレミアムマイクロUSB2.0オス to Aオス変換充電・同期ケーブルアル ミケース付き 1m
ASIN: B00NF8E7K8
22AWG使用 USBケーブル

ルートアール USB 簡易電圧・電流チェッカー 積算電流・通電時間計測 RT-USBVATM
ASIN: B00TU71C4M
[USB CABLE A-MICROB(2A L0.3m)] USBケーブル Aオス-マイクロBオス 0.3m A-microB
・充電を意識した大電流対策品
・電源線 22AWG、データ線 28AWG
・全線結線タイプ
・データ転送に対応


●ラズパイで GeeXLabを動かす

 ラズパイで GeeXLabを動かす。

 下記にまとめました。

[NEW] 2016/09/25
Raspberry Pi3で GeeXLabを動かす方法
Raspberry Pi3で GeeXLabを動かす方法

  ラズパイで GeeXLabをインストールして GeeXLabの OpenGL 3Dライブラリのデモを動かす
・ラズパイで GeeXLabを動かす GeeXLab demo
ラズパイで GeeXLabを動かす GeeXLab demo




●ラズパイ専用カメラを有効にする
●ラズパイ専用カメラで静止画を撮影

 下記にまとめました。

[NEW] 2016/05/14
Raspberry Pi 3 Model Bに専用カメラモジュールを接続する方法
Raspberry Pi 3 Model Bに専用カメラモジュールを接続する方法

  ラズパイに専用カメラモジュールを接続して Raspbianで写真の静止画撮影や動画を録画する方法


 USB接続の Webカメラで動画を録画
$ sudo apt-get -y install libav-tools
$ avconv -f video4linux2 -r 7 -s 640x480 -i /dev/video0 video0.avi

 Webカメラで録画した動画を再生
$ omxplayer -o hdmi video0.avi

 USB接続の Webカメラで静止画を撮影
$ sudo apt-get -y install fswebcam
$ fswebcam -r 640x480 image.jpg


 音声出力の音量の設定
$ alsamixer

 スピーカー音量の設定(-10239 ~ 400)
$ amixer sset PCM 400

 音声出力 自動
$ amixer cset numid=3 0

 音声出力 ヘッドホンジャック
$ amixer cset numid=3 1

 音声出力 HDMI
$ amixer cset numid=3 2
 ※ HDMIから音声が出ない場合は config.txtの # hdmi_driver=2の行の #を取る。
 ※行の先頭の #を取る。
# hdmi_driver=2
 を
hdmi_driver=2
 にする。

 スピーカーのテスト
$ speaker-test -t sine -f 800

 サウンドの再生確認
$ aplay /usr/share/sounds/alsa/Front_Center.wav
$ aplay /usr/share/sounds/alsa/Noise.wav

 MP3の再生
$ sudo apt-get -y install mplayer
$ mplayer test.mp3

 MP3、OGGの再生
$ sudo apt-get -y install mpg321 vorbis-tools
$ mpg123 test_hoge.mp3
$ ogg123 test_hoge.ogg

 MIDIファイルの再生(PCMデバイス ALSAで再生する)
$ timidity -Os ./python_games/tetrisb.mid



 USB接続のマイクを使用する方法

 下記の C-Mediaが USB接続のマイクデバイス
$ lsusb
Bus 001 Device 004: ID 0d8c:013c C-Media Electronics, Inc. CM108 Audio Controller
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

 デバイスのカード番号とデバイス番号を確認(card 1 device 0)
# USB接続のマイクドングルの場合
$ arecord -l
**** List of CAPTURE Hardware Devices ****
card 1: Device [USB PnP Sound Device], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0

 マイクの音量を確認する(card 1なので -c 1を指定する)
$ amixer sget Mic -c 1
Simple mixer control 'Mic',0
Capabilities: cvolume cvolume-joined cswitch cswitch-joined
Capture channels: Mono
Limits: Capture 0 - 16
Mono: Capture 0 [0%] [0.00dB] [on]

 マイクの音量を設定する
$ amixer sset Mic 16 -c 1
Simple mixer control 'Mic',0
Capabilities: cvolume cvolume-joined cswitch cswitch-joined
Capture channels: Mono
Limits: Capture 0 - 16
Mono: Capture 16 [100%] [23.81dB] [on]

 必要に応じてマイクデバイスを設定する(card 1 device 0なので 1,0を指定する)
$ export ALSADEV="plughw:1,0"
$ echo $ALSADEV

 マイクの入力を WAVE形式で WAVファイルに 48kHzステレオサンプリングで 5秒間保存する(-d5で 5秒、-fdatで DAT品質 48kHz ステレオ)
$ arecord -M -d5 -twav -fdat test.wav -D plughw:1
 ※なぜか -fcdで CD音質(44.1kHzサンプリングにすると -d5の指定が無視される)

 マイクの入力をスピーカに出力する( 1秒程度の遅延が有る)
$ arecord -f S16_LE -r 44100 -D hw:1 | aplay
 Ctrl+Cで終了

# USB接続のマイク付き WebCameraの場合
$ arecord -l
**** List of CAPTURE Hardware Devices ****
card 1: CAMERA [USB2.0 PC CAMERA], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0

$ lsusb
Bus 001 Device 005: ID 1908:2310 GEMBIRD
# 1908:2310 GEMBIRDは USB接続のマイク付き WebCamera
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 001 Device 005: ID 1908:2311 GEMBIRD
# 1908:2311 GEMBIRDは USB接続のマイク無し WebCamera



 USB機器を接続

 タカラトミーのついまるスピーカー

$ lsusb
Bus 001 Device 006: ID 2445:0002

$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Takaratomy2 [Takaratomy2], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0

 Cheap USB Web Camera
Bus 001 Device 004: ID 1908:2310 GEMBIRD

 MosArt Optical USB Mouse
Bus 001 Device 005: ID 13ee:0001 MosArt



 AquesTalk Pi 日本語音声合成

 日本語音声合成 AquesTalk Pi
AquesTalk Pi - Raspberry Pi用の音声合成 - 株式会社アクエスト

[NEW] 2016/04/10
Raspberry Pi 3で日本語音声を合成して喋らせる方法(AquesTalk編)
Raspberry Pi 3で日本語音声を合成して喋らせる方法(AquesTalk編)

  ラズパイ3で 音声合成アプリ AquesTalk Piを使用してお手軽に日本語文章を喋らせる方法


 Open JTalk 日本語音声合成

 日本語音声合成 Open JTalkのラズパイ3対応のコンパイルと動作確認の手順
Open JTalk

[NEW] 2016/04/10
Raspberry Pi 3で日本語音声を合成して喋らせる方法(Open JTalk編)
Raspberry Pi 3で日本語音声を合成して喋らせる方法(Open JTalk編)

  ラズパイ3で 音声合成システム Open JTalkをコンパイルして、お手軽に日本語の文章を喋らせる方法


 汎用大語彙連続音声認識エンジン Julius

 音声認識エンジン Juliusのラズパイ3対応のコンパイルと動作確認の手順
汎用大語彙連続音声認識エンジン Julius - OSDN

[NEW] 2016/04/10
Raspberry Pi 3に USB Micを接続して日本語の音声認識をする方法(Julius編)
Raspberry Pi 3に USB Micを接続して日本語の音声認識をする方法(Julius編)

  ラズパイ3で汎用大語彙連続音声認識エンジン Juliusをコンパイルして使用する方法


 GPIO制御

 GPIOの入出力の設定や制御方法、WiringPiのビルド方法は下記の記事にまとめました


[NEW] 2016/04/02
Raspberry Pi 3の GPIOに LEDとスイッチを接続して Lチカする方法
Raspberry Pi 3の GPIOに LEDとスイッチを接続して Lチカする方法

  ラズパイ3の GPIOに LEDとスイッチを取り付けて Lチカ実験する方法


 I2Cデバイス接続を確認
 通常の I2Cバス
$ sudo i2cdetect -y 1

 dtoverlay=i2c-gpioで設定した GPIOの I2Cバス
$ sudo i2cdetect -y 3

 I2C制御のツールと Python用の I2C制御ライブラリをインストールする
$ sudo apt-get -y install python-smbus i2c-tools

 下記にまとめました。

[NEW] 2016/03/26
Raspberry Pi 3で GPIO端子の I2C機能を有効化する方法
Raspberry Pi 3で GPIO端子の I2C機能を有効化する方法

  ラズパイ3の GPIO端子の I2C機能を有効にして各種センサーを繋げる方法まとめ


 赤外線リモコンの受信と送信(学習リモコン、ラズパイでリモコン機器を制御)

IRSEND irsend - basic LIRC program to send infra-red commands

 GPIO17 出力 リモコン送信(負論理)
 GPIO18 入力 リモコン受信

 下記にまとめました。

[NEW] 2016/04/17
Raspberry Pi 3 Jessieで LIRC機能を使って学習リモコン、赤外線リモコンを送受信する方法
Raspberry Pi 3 Jessieで LIRC機能を使って学習リモコン、赤外線リモコンを送受信する方法

  ラズパイ3で赤外線受信センサと赤外線 LEDで IrDAリモコン信号を送受信して家電等の外部機器を制御する方法

・Raspberry Pi3の GPIO端子の LIRC機能を有効化して リモコン送受信をしてみるテスト
Raspberry Pi3の GPIO端子の LIRC機能を有効化して リモコン送受信をしてみるテスト




 1-Wire接続で DS18B20の温度センサーを動かしてみるテスト

Maxim DS18B20 Programmable Resolution 1-Wire Digital Thermometer

 3本足でトランジスタと同じ形をしています。(TO-92パッケージ品)

GitHub raspberrypi/firmware firmware/boot/overlays/README
 GitHubの CONFIG.TXTの説明。

 GPIO4 1-Wire通信線

 下記にまとめました。

[NEW] 2016/04/17
Raspberry Pi 3の GPIOに 1-Wire通信方式の温度センサー DS18B20を接続する方法
Raspberry Pi 3の GPIOに 1-Wire通信方式の温度センサー DS18B20を接続する方法

  ラズパイ3で 1-Wire接続の温度センサー DS18B20を使用する方法

・Raspberry Pi3の GPIO端子の 1-Wire機能を有効化して DS18B20の温度センサーを動かしてみるテスト
Raspberry Pi3の GPIO端子の 1-Wire機能を有効化して DS18B20の温度センサーを動かしてみるテスト




V.KEL VK16E、シリアル接続の GPSモジュールの使用方法

 下記にまとめました。

[NEW] 2016/09/25
Raspberry Pi3のシリアルポート UARTに VK16Eの GPSモジュールを接続する方法
Raspberry Pi3のシリアルポート UARTに VK16Eの GPSモジュールを接続する方法

  ラズパイで V.KEL VK16E、シリアル接続の GPSモジュールを接続する方法

V.KEL VK16E SIRF3チップ使用、アンテナ一体型 GPUモジュール
 深圳市微科通讯设备有限公司製 GMOUSE GPS模组 SIRF3芯片 陶瓷天线 TTL信号 9600波特率
V.KEL VK16Eの規格書 PDF

 NMEAコマンドのチェックサム自動計算オンラインサービス JavaScript
NMEA checksum calculator

・V.KEL VK16E、SiRF3シリアル接続の GPSモジュール
V.KEL VK16E、SiRF3シリアル接続の GPSモジュール


・V.KEL VK16E、SiRF3シリアル接続の GPSモジュル
V.KEL VK16E、SiRF3シリアル接続の GPSモジュル




 ラズパイ3のシリアルポートをアプリ側から使用する方法

 シリアルポートをコンソールとして使用する方法は以前に書きましたが、今回はアプリ側から使用する方法を書きます。
 シリアルコンソール機能を殺してアプリ側から使用出来る様にします。
 ラズパイ3の場合は /dev/ttyS0を使用します。
 Raspberry PI 3 Serial
 /dev/ttyS0
 GPIO14 TxD UART
 GPIO15 RxD UART

sudo nano /boot/cmdline.txt
console=serial0,115200
 を削除する。

sudo nano /boot/config.txt
enable_uart=1
 を追加する。

# 再起動する
sudo reboot

sudo pigpiod
python
import pigpio
import time

pi = pigpio.pi()

if not pi.connected:
   exit()

uart0 = pi.serial_open("/dev/ttyS0", 9600, 0)

pi.serial_write(uart0, "Hello ! Serial !")
time.sleep(1)
rdy = pi.serial_data_available(uart0)
if rdy > 0:
    (b, d) = pi.serial_read(uart0, rdy)
    print(d)

pi.serial_close(uart0)


 5インチ HDMI接続 液晶ディスプレイ(感圧式タッチパネル搭載 XPT2046 SPI接続)

 5inch HDMI LCD V2 800X480 Pixel XPT2046 Touch Controller
 AA1031-5 5.0インチ 4線式抵抗膜タッチスクリーンデジタイザ
 XPT2046タッチパネルコントローラ(SPI接続, PENIRQ=GPIO25, CE1=GPIO7)
 バックライト消費電流 30mA

 ダウンスケーリングして擬似的に解像度を高くする方法や、タッチパネルのキャリブレーション方法(校正方法)など、下記にまとめました。

[NEW] 2016/04/17
Raspberry Pi 3に HDMI接続の 800x480 5インチ TFT液晶を接続して使用する方法
Raspberry Pi 3に HDMI接続の 800x480 5インチ TFT液晶を接続して使用する方法

  ラズパイ3に 5インチ HDMI液晶を接続してタッチパネル機能を有効にする方法、ダウンスケーリングして擬似的に広くする方法。

 仮想キーボード(スクリーンキーボード)xvkbd編

xvkbd ― X Window System 用仮想キーボード

$ sudo apt-get -y install xvkbd

$ xvkbd -version
xvkbd v3.3

 デスクトップにショートカットを作成
$ nano ~/Desktop/xvkbd.desktop
 メニューにショートカットを作成
$ sudo nano /usr/share/applications/xvkbd.desktop
[Desktop Entry]
Encoding=UTF-8
Name=xvkbd
Exec=/usr/bin/xvkbd -compact
Icon=/usr/share/icons/gnome/32x32/devices/keyboard.png
Type=Application
Comment=Virtual, graphical keyboard for X Window System
Terminal=false
Categories=Utility;


 仮想キーボード(スクリーンキーボード)Matchbox Keyboard編

Virtual Keyboard for the Raspberry Pi
GitHub mwilliams03/matchbox-keyboard

※下記方法では正常に動きません。

$ sudo apt-get -y install matchbox-keyboard

$ matchbox-keyboard --h
matchbox-keyboard 0.1
Copyright (C) 2007 OpenedHand Ltd.

 デスクトップにショートカットを作成
$ nano ~/Desktop/matchbox.desktop
 メニューにショートカットを作成
$ sudo nano /usr/share/applications/matchbox.desktop
[Desktop Entry]
Encoding=UTF-8
Name=Matchbox Keyboard
Comment=Matchbox Keyboard
Exec=/usr/bin/matchbox-keyboard &
Type=Application
Icon=matchbox-keyboard.png
Categories=Panel;Utility;MB
X-MB-INPUT-MECHANSIM=True


● Raspberry Piのコンソール端末数を少なくする

/etc/inittab
 ファイルが無い?!

sudo cat /etc/securetty



● Raspberry Piの IPv6を無効化。イット革命!

ifconfig | grep inet6

/etc/sysctl.conf
net.ipv6.conf.all.disable_ipv6 = 1

sudo bash -c "echo \# Disable IPV6 >> /etc/sysctl.conf"
sudo bash -c "echo net.ipv6.conf.all.disable_ipv6 = 1 >> /etc/sysctl.conf"



● Raspberry Piの WiFi接続の設定をコマンドラインで行なう方法

wpa_passphrase SSID PASSWORD > tmp.conf
sed -i -e "s/.*#psk.*/ key_mgmt=WPA-PSK/g" tmp.conf
cat tmp.conf

sudo bash -c "sudo cat tmp.conf >> /etc/wpa_supplicant/wpa_supplicant.conf"
sudo cat /etc/wpa_supplicant/wpa_supplicant.conf

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

sudo ifdown wlan0
sudo ifup wlan0

 sudo ifup wlan0でエラーが出る場合は素直に再起動する。

# proto=WPA2
# key_mgmt=WPA-PSK



 Bluetoothキーボードを接続
$ sudo hcitool dev
Devices:
hci0 B8:27:EB:xx:xx:xx

$ bluetoothctl
[NEW] Controller B8:27:EB:xx:xx:xx raspberrypi [default]

[bluetooth]# help
Available commands:
  list                       List available controllers
  show [ctrl]                Controller information
  select <ctrl>              Select default controller
  devices                    List available devices
  paired-devices             List paired devices
  power <on/off>             Set controller power
  pairable <on/off>          Set controller pairable mode
  discoverable <on/off>      Set controller discoverable mode
  agent <on/off/capability>  Enable/disable agent with given capability
  default-agent              Set agent as the default one
  scan <on/off>              Scan for devices
  info <dev>                 Device information
  pair <dev>                 Pair with device
  trust <dev>                Trust device
  untrust <dev>              Untrust device
  block <dev>                Block device
  unblock <dev>              Unblock device
  remove <dev>               Remove device
  connect <dev>              Connect device
  disconnect <dev>           Disconnect device
  version                    Display version
  quit                       Quit program

[bluetooth]# scan on
Discovery started
[CHG] Controller B8:27:EB:xx:xx:xx Discovering: yes
[NEW] Device 24:C6:96:xx:xx:xx GALAXY Gear (C069)
[NEW] Device 98:91:20:xx:xx:xx 98-91-20-xx-xx-xx
[CHG] Device 98:91:20:xx:xx:xx LegacyPairing: no
[CHG] Device 98:91:20:xx:xx:xx Name: Bluetooth Keyboard
[CHG] Device 98:91:20:xx:xx:xx Alias: Bluetooth Keyboard
[CHG] Device 98:91:20:xx:xx:xx LegacyPairing: yes
[NEW] Device 00:18:A3:xx:xx:xx 00-18-A3-xx-xx-xx
[CHG] Device 98:91:20:xx:xx:xx RSSI: -61
[CHG] Device 00:18:A3:xx:xx:xx LegacyPairing: no
[CHG] Device 00:18:A3:xx:xx:xx Name: TK-FBP014E Series
[CHG] Device 00:18:A3:xx:xx:xx Alias: TK-FBP014E Series
[bluetooth]# pair 00:18:A3:xx:xx:xx

Attempting to pair with 00:18:A3:xx:xx:xx
[CHG] Device 00:18:A3:xx:xx:xx Connected: yes
[CHG] Device 00:18:A3:xx:xx:xx Connected: no
[CHG] Device 00:18:A3:xx:xx:xx Connected: yes
Failed to pair: org.bluez.Error.ConnectionAttemptFailed

[bluetooth]# connect 98:91:20:xx:xx:xx
Attempting to connect to 98:91:20:xx:xx:xx
[CHG] Device 98:91:20:xx:xx:xx Connected: yes
[CHG] Device 98:91:20:xx:xx:xx Modalias: usb:v05ACp0239d011B
[CHG] Device 98:91:20:xx:xx:xx UUIDs:
00001124-0000-1000-8000-00805f9b34fb
00001200-0000-1000-8000-00805f9b34fb
Connection successful

[bluetooth]# trust 98:91:20:xx:xx:xx
Changing 98:91:20:xx:xx:xx trust succeeded

[bluetooth]# scan off

[bluetooth]# exit
[DEL] Controller B8:27:EB:xx:xx:xx raspberrypi [default]

 dtoverlay=pi3-miniuart-btの方法でシリアル通信を有効にしている場合はオンボードの Bluetooth機能を使えなくなる。
$ sudo hcitool dev
Devices:
$ sudo hcitool scan
Device is not available: No such device

 下記の方法であればシリアル通信と Bluetooth機能を両立出来る。

[NEW] 2016/03/31
Raspberry Pi 3で Bluetoothを生かしつつシリアル通信を有効にする方法(コンソール通信でログイン可能)
Raspberry Pi 3で Bluetoothを生かしつつシリアル通信を有効にする方法(コンソール通信でログイン可能)

  ラズパイ3で Bluetoothと UART通信の両方を使える様にする設定方法のまとめ。


 ラズパイ3のネット接続を BTテザリングにする(RPIからスマホ回線に接続)

 ラズパイ3のネット接続を Bluetoothテザリング(ブルテザ)にしてスマホの携帯回線経由でネットに接続する。
 スマホをブルテザの親機としてラズパイから接続します。ブルテザは WiFiテザリングよりも電力の消費を抑えられます。

 ラズパイの Bluetoothを PAN(Personal Area Network)の PANU(Personal Area Network User)プロトコルにして接続します。
 スマホの親機は PAN-NAP(Network Access Point)プロトコルとなります。


[NEW] 2016/04/17
Raspberry Pi 3の Bluetoothで ブルテザで通信する方法(Bluetooth編)
Raspberry Pi 3の Bluetoothで ブルテザで通信する方法(Bluetooth編)

  ラズパイ3に内蔵の Bluetoothで Bluetooth Tetheringを使用して通信環境を設定する方法


 ラズパイ3を BTテザリングの親機にする(他の機器を RPIに接続)

※下記はまだ未完成で動きません。
 DHCPサーバや LAN回線側の IP固定、ブリッジ接続設定が必要な模様。

 ラズパイの Bluetoothを PAN-NAP(Network Access Point)プロトコルとして、ラズパイを BTテザリングの親機に設定します。

$ brctl
-bash: brctl: command not found

# udhcpdは busyboxベースの軽量 DHCPサーバ
$ sudo apt-get -y install bridge-utils udhcpd

$ brctl
Usage: brctl [commands]
commands:
        addbr           <bridge>                add bridge
        delbr           <bridge>                delete bridge
        addif           <bridge> <device>       add interface to bridge
        delif           <bridge> <device>       delete interface from bridge
        hairpin           {on|off}        turn hairpin on/off
        setageing       <bridge> <time>         set ageing time
        setbridgeprio   <bridge> <prio>         set bridge priority
        setfd           <bridge> <time>         set bridge forward delay
        sethello        <bridge> <time>         set hello time
        setmaxage       <bridge> <time>         set max message age
        setpathcost     <bridge> <port> <cost>  set path cost
        setportprio     <bridge> <port> <prio>  set port priority
        show            [ <bridge> ]            show a list of bridges
        showmacs        <bridge>                show a list of mac addrs
        showstp         <bridge>                show bridge stp info
        stp              {on|off}       turn stp on/off
$ nano bt-nap
#!/bin/bash

br=bnep

[[ -n "$(brctl show $br 2>&1 1>/dev/null)" ]] && {
        brctl addbr $br
        brctl setfd $br 0
        brctl stp $br off
        ip addr add 192.168.234.1/24 dev $br
        ip link set $br up
}

exec ./bt-pan --debug server $br
$ chmod +x bt-nap

$ sudo ./bt-nap


# udhcpdは busyboxベースの軽量 DHCPサーバ
$ sudo nano /etc/default/udhcpd
DHCPD_ENABLED="no"
↓
DHCPD_ENABLED="yes"
$ sudo nano /etc/udhcpd.conf
下記の 3箇所のセクションを適切に書き換える(下記はデフォルト)

# The start and end of the IP lease block
start           192.168.0.20    #default: 192.168.0.20
end             192.168.0.254   #default: 192.168.0.254

#Examles
opt     dns     192.168.10.2 192.168.10.10
option  subnet  255.255.255.0
opt     router  192.168.10.2
opt     wins    192.168.10.10
option  dns     129.219.13.81   # appened to above DNS servers for a total of 3
option  domain  local
option  lease   864000          # 10 days of seconds

# Static leases map
#static_lease 00:60:08:11:CE:4E 192.168.0.54
#static_lease 00:60:08:11:CE:3E 192.168.0.44

$ udhcpd -h
udhcpd: invalid option -- 'h'
BusyBox v1.22.1 (Raspbian 1:1.22.0-9+deb8u1) multi-call binary.

Usage: udhcpd [-fS] [-I ADDR] [CONFFILE]

DHCP server

        -f      Run in foreground
        -S      Log to syslog too
        -I ADDR Local address


Raspberry pi3の USB端子に E-Mobile GL09P モバイルWIFIを USBケーブルで接続する。

 USBケーブルで Ymobile GL09P Pocket WiFiを接続すると USB0デバイスを認識する。
 特に設定をしなくても、そのままの状態で GL09Pでネット通信出来ます。

Pocket WiFi GL09P
 うんこ回線のうんこポケットWiFi(安定してまともに使えない)
 ↑ラズパイ接続が悪いのではなく Ym*bile回線そのものが悪いと言う意味。

$ lsusb
Bus 001 Device 007: ID 19d2:1403 ZTE WCDMA Technologies MSM
Bus 001 Device 005: ID 0d8c:013c C-Media Electronics, Inc. CM108 Audio Controller
Bus 001 Device 004: ID 1908:2310 GEMBIRD
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

$ sudo iwconfig
wlan0 IEEE 802.11bgn ESSID:off/any
Mode:Managed Access Point: Not-Associated Tx-Power=31 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:on

lo no wireless extensions.

eth0 no wireless extensions.

usb0 no wireless extensions.
↑ usb0で GL09Pを認識している

$ ifconfig
eth0 Link encap:Ethernet HWaddr b8:27:xx:xx:xx:xx
inet addr:192.168.1.10 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1070 errors:0 dropped:0 overruns:0 frame:0
TX packets:923 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:103299 (100.8 KiB) TX bytes:126593 (123.6 KiB)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:136 errors:0 dropped:0 overruns:0 frame:0
TX packets:136 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:11472 (11.2 KiB) TX bytes:11472 (11.2 KiB)

↓ usb0で GL09Pを認識して、ネットワーク接続している
usb0 Link encap:Ethernet HWaddr 7a:e8:xx:xx:xx:xx
inet addr:192.168.128.20 Bcast:192.168.128.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2660 errors:0 dropped:0 overruns:0 frame:0
TX packets:1681 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2815960 (2.6 MiB) TX bytes:265448 (259.2 KiB)

wlan0 Link encap:Ethernet HWaddr b8:27:xx:xx:xx:xx
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:5102 errors:0 dropped:4561 overruns:0 frame:0
TX packets:64 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1074937 (1.0 MiB) TX bytes:12964 (12.6 KiB)



Raspberry Pi3 Jessieで FFmpegをセルフコンパイルする方法

 Raspberry Pi3 Jessieで FFmpegをセルフコンパイルしてインストールします。
FFmpeg - A complete, cross-platform solution to record, convert and stream audio and video.

 下記にまとめました。

[NEW] 2016/05/26
Raspberry Pi 3 Model Bで動画処理アプリ FFmpegをコンパイルする方法
Raspberry Pi 3 Model Bで動画処理アプリ FFmpegをコンパイルする方法

  ラズパイ3で FFmpegをセルフコンパイルしてインストールする方法

Raspberry Pi3 Jessieで libavをセルフコンパイルする方法

 Raspberry Pi3 Jessieで libavをセルフコンパイルしてインストールします。
libav Open source audio and video processing tools

 下記にまとめました。

[NEW] 2016/05/26
Raspberry Pi 3 Model Bで動画処理アプリ libavをコンパイルする方法
Raspberry Pi 3 Model Bで動画処理アプリ libavをコンパイルする方法

  ラズパイ3で libavをセルフコンパイルしてインストールする方法

 Raspberry Piを使って Postfix Mail serverを構築する方法

 一般的なプロバイダ接続ではポート 25が塞がれているので Gmailの SMTPを Postfixの中継サーバとして使用します。

 下記にまとめました。

[NEW] 2017/02/26
Raspberry Pi3に Postfixメールサーバーを Gmailの SMTPをリレーとして立てる方法
Raspberry Pi3に Postfixメールサーバーを Gmailの SMTPをリレーとして立てる方法

  Raspbian Jessieで Postfix Mail serverを Gmailの SMTPを中継サーバとして設定する方法

 Raspberry Piを使って Gitサーバーを構築する方法

・ Gitをそのまま Git serverとして使う方法
・ GitLabを使う方法
 が有ります。

 下記にまとめました。

[NEW] 2017/02/26
Raspberry Pi3を Gitサーバとして設定する方法、Git単体と GitLabを使用する方法
Raspberry Pi3を Gitサーバとして設定する方法、Git単体と GitLabを使用する方法

  ラズパイ3でローカルの Gitサーバを動かす方法。GitLabをインストールする方法

● ラズパイで USBメモリを使う方法、USBメモリを指定したディレクトリに永続的マウントする方法

USBメモリを確認
mkdir usbdrv
sudo blkid

USBメモリを永続的マウント
sudo nano /etc/fstab
/dev/sda1 /home/pi/usbdrv vfat uid=pi,gid=pi,umask=0022,sync,auto,nosuid,rw,nouser 0 0

sudo reboot

echo TEST > usbdrv/test.txt
ls usbdrv


 ラズパイの X-Windowsを無効化してメモリ使用量を減らす

 Raspbian Jessieで起動時に GUIの X-Windowsを起動しない様にする方法。
 ラズパイの X-Windowsを無効化してメモリ使用量を減らす。
 コンソールだけを使用する場合やサービスだけを動かす場合に有効です。

・方法1 raspi-config
sudo raspi-config
 で
3 Boot Options - Configure options for start-up
B1 Desktop / CLI - Choose whether to boot into a des

B1 Console - Text console, requiring user to login
 または
B2 Console - Autologin Text console, automatically logged in as 'pi' user
 を選択する。

・方法2 systemctl set-default
systemctl get-default
 で現在の設定を確認。

sudo systemctl set-default multi-user.target
 でコンソール使用に変更。次回起動から自動的に piユーザーでログインしてターミナル状態になります。
 更に、
systemctl list-units | grep lightdm
sudo systemctl disable lightdm
 で、LightDMを無効化します。DM = X Display Manager

sudo systemctl set-default graphical.target
 で元の状態に戻ります。次回起動から自動的に X-Windowの GUIが起動します。

$ sudo update-rc.d lightdm disable
 は変化が有りませんでした。

pi@raspberrypi:~ $ sudo systemctl set-default multi-user.target
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /lib/systemd/system/multi-user.target.

pi@raspberrypi:~ $ sudo systemctl set-default graphical.target
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /lib/systemd/system/graphical.target.

・自動ログインするユーザーを pi以外にしたい場合

/etc/systemd/system/autologin@.service

[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin 自動ログインするユーザー名 --noclear %I 38400 linux


 ラズパイの不要なアプリを削除してストレージの空き容量を増やす

 ラズパイの Raspbian OSから不要なパッケージを削除して軽量化します。

 インストールされているパッケージの一覧を表示
$ dpkg --get-selections
 または
$ dpkg -l

 下記パッケージの削除で
 ・ビフォア
Filesystem Size Used Avail Use% Mounted on
/dev/root 3.6G 3.3G 118M 97% /

 ・アフター
Filesystem Size Used Avail Use% Mounted on
/dev/root 3.6G 2.2G 1.3G 64% /

 Used 3.3GB -> 2.2GB = 約 1.1GBの空き容量が増えました。
 これなら 4GBの容量の SDカードでも戦える!(と思ったら、現在の Raspbian 8 Jessieの imgファイルは 4GBに焼けない。削除後に ddコマンドでダンプを取ってから焼くのはアリ?)

Mathematicawolfram-engine658MB数式処理システム
Minecraft Pi Editionminecraft-pi4362KBマインクラフト(ゲーム?)
Python Gamespython-pygame6993KBPython言語で書かれたゲーム
Python Gamespython3-pygame6007KBPython言語で書かれたゲーム
Sonic Pisonic-pi208MB音をプログラム
Scratchscratch94.4MB簡単プログラミング
Greenfoot GUIgreenfoot10.2MBインタラクティブな開発環境
BlueJbluej7168KB教育用途に開発された統合開発環境
Node-REDnodered6567KBIoTアプリを簡単に開発する開発環境
Debian Referencedebian-reference-en3440KBDebianリファレンス(英語)
Lib Raspberry Pi Documentlibraspberrypi-doc33.8MBLib Raspberry Pi Document

$ sudo apt-get autoremove --purge wolfram-engine
 After this operation, 658 MB disk space will be freed.

$ sudo apt-get autoremove --purge minecraft-pi
 After this operation, 4,362 kB disk space will be freed.

$ sudo apt-get autoremove --purge python-pygame
 After this operation, 6,993 kB disk space will be freed.

$ sudo apt-get autoremove --purge python3-pygame
 After this operation, 6,007 kB disk space will be freed.

$ sudo apt-get autoremove --purge sonic-pi
 After this operation, 208 MB disk space will be freed.

$ sudo apt-get autoremove --purge scratch
 After this operation, 94.4 MB disk space will be freed.

$ sudo apt-get autoremove --purge greenfoot
 After this operation, 10.2 MB disk space will be freed.

$ sudo apt-get autoremove --purge bluej
 After this operation, 7,168 KB disk space will be freed.

$ sudo apt-get autoremove --purge nodered
 After this operation, 6,567 KB disk space will be freed.

$ sudo apt-get autoremove --purge libraspberrypi-doc
 After this operation, 33.8 MB disk space will be freed.

 音が出なくなったら
$ sudo apt-get -y install libasound2 alsa-utils alsa-oss
$ sudo modprobe snd_bcm2835



Raspberry pi 3用 64bit OS

RASPBERRY PI 3用64BIT DOCKER ENGINEを含むイメージを公開しました - 株式会社 あっとBSD
 login: root
 Password:raspberry
 aarch64で動作する。

ラズパイ公式フォーラム Entering aarch64 execution state

Raspberry Pi 3で64bitベアメタル(bare metal)プログラミング - その1:何もしない無限ループプログラム
 bare metal(OSを使わない状態)で 64ビットで頑張っている人のブログ。



● Bare Metal Programming

GitHub - jeffreyantony/multipi

Raspberry Pi Bare Bones

Bare Metal Programming in C Pt1

Bare metal

Bare Metal resources

GitHub - msperl/rpi-registers

GitHub - dwelch67/raspberrypi

GitHub - ICTeam28/PiFox
PiFox - Bare metal 3D rail shooter



● MINIBIAN – RASPBERRY PI

MINIBIAN: MINIMAL RASPBIAN IMAGE FOR RASPBERRY PI
 MINIBIAN image for Raspberry Pi
 MINIBIAN is a MINImal RaspBIAN-based Linux image for Raspberry Pi

2016-03-12-jessie-minibian.img 832MB



● Raspberry Piに WordPressを入れてみるテスト

BUILD A LAMP WEB SERVER WITH WORDPRESS

 下記にまとめました。

[NEW] 2016/05/26
Raspberry Pi 3 Model Bで CMSフレームワーク WordPressをセットアップする方法
Raspberry Pi 3 Model Bで CMSフレームワーク WordPressをセットアップする方法

  ラズパイ3で WordPressをインストールする方法

● Raspberry Piに Qt5を入れてみるテスト

 Raspbian Jessieでは下記の手順で QT5をコンパイル/ ビルド出来ない?

Qt 5 Qt5 & Raspberry Pi

27 June 2015 Native Build of Qt5 on a Raspberry Pi
12 May 2016 Native Build of Qt 5.4.1 on a Raspberry Pi

sudo apt-get update
sudo apt-get -y upgrade
sudo apt-get -y dist-upgrade

sudo apt-get install libfontconfig1-dev libdbus-1-dev libfreetype6-dev libudev-dev libicu-dev libsqlite3-dev libxslt1-dev libssl-dev libasound2-dev libavcodec-dev libavformat-dev libswscale-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev gstreamer-tools gstreamer0.10-plugins-good gstreamer0.10-plugins-bad libraspberrypi-dev libpulse-dev libx11-dev libglib2.0-dev libcups2-dev freetds-dev libsqlite0-dev libpq-dev libiodbc2-dev libmysqlclient-dev firebird-dev libpng12-dev libjpeg62-dev libgst-dev libxext-dev libxcb1 libxcb1-dev libx11-xcb1 libx11-xcb-dev libxcb-keysyms1 libxcb-keysyms1-dev libxcb-image0 libxcb-image0-dev libxcb-shm0 libxcb-shm0-dev libxcb-icccm4 libxcb-icccm4-dev libxcb-sync0 libxcb-sync0-dev libxcb-render-util0 libxcb-render-util0-dev libxcb-xfixes0-dev libxrender-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-glx0-dev libxi-dev libdrm-dev

 をすると、下記の警告とエラーが出る。
---
Note, selecting 'libxcb-sync-dev' instead of 'libxcb-sync0-dev'
Package libjpeg62-dev is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
libjpeg9-dev libjpeg8-dev libjpeg62-turbo-dev

E: Package 'libjpeg62-dev' has no installation candidate
E: Unable to locate package libxcb-sync0

 Raspbian Jessieは下記の通り修正して再チャレンジする。
libjpeg62-dev -> libjpeg62-turbo-dev
libxcb-sync0 -> libxcb-sync1
libxcb-sync0-dev -> libxcb-sync-dev

sudo apt-get install libfontconfig1-dev libdbus-1-dev libfreetype6-dev libudev-dev libicu-dev libsqlite3-dev libxslt1-dev libssl-dev libasound2-dev libavcodec-dev libavformat-dev libswscale-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev gstreamer-tools gstreamer0.10-plugins-good gstreamer0.10-plugins-bad libraspberrypi-dev libpulse-dev libx11-dev libglib2.0-dev libcups2-dev freetds-dev libsqlite0-dev libpq-dev libiodbc2-dev libmysqlclient-dev firebird-dev libpng12-dev libjpeg62-turbo-dev libgst-dev libxext-dev libxcb1 libxcb1-dev libx11-xcb1 libx11-xcb-dev libxcb-keysyms1 libxcb-keysyms1-dev libxcb-image0 libxcb-image0-dev libxcb-shm0 libxcb-shm0-dev libxcb-icccm4 libxcb-icccm4-dev libxcb-sync1 libxcb-sync-dev libxcb-render-util0 libxcb-render-util0-dev libxcb-xfixes0-dev libxrender-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-glx0-dev libxi-dev libdrm-dev -y

cd
cd opt
git clone git://code.qt.io/qt/qt5.git
cd qt5
./init-repository

./init-repository -f

./init-repository --mirror git://git.qt-users.jp/

./init-repository --mirror git://github.com/qtproject

 途中、GitHubのダウンロードが 99%で止まってしまう??

Submodule path 'qtx11extras': checked out 'f27489d66cc6d8263130451c26c7e4ae40acc6b4'
Submodule path 'qtxmlpatterns': checked out 'fcb22201726669f52f98528d9a15f8cdbb126b48'
+ git submodule init
Submodule 'tests/manual/v4/test262' (git://code.qt.io/qt/qtdeclarative-testsuites.git) registered for path 'tests/manual/v4/test262'
+ git config --remove-section submodule.tests/manual/v4/test262
+ git submodule update --no-fetch
+ git submodule init src/3rdparty
Submodule 'src/3rdparty' (git://code.qt.io/qt/qtwebengine-chromium.git) registered for path 'src/3rdparty'
+ git ls-remote git://git.qt-users.jp/qt/qtwebengine-chromium.git test/if/mirror/exists
fatal: remote error: access denied or repository not exported: /qt/qtwebengine-chromium.git
mirror [git://git.qt-users.jp/qt/qtwebengine-chromium.git] is not accessible; git://code.qt.io/qt/qtwebengine-chromium.git will be used
+ git clone git://code.qt.io/qt/qtwebengine-chromium.git src/3rdparty
Cloning into 'src/3rdparty'...
remote: Counting objects: 341859, done.
remote: Compressing objects: 100% (238963/238963), done.
Receiving objects: 99% (338441/341859), 651.79 MiB | 1.47 MiB/s

git clone git://code.qt.io/qt/qtwebengine-chromium.git src/3rdparty exited with status 2 at ./init-repository line 194.
Qt::InitRepository::exe(Qt::InitRepository=HASH(0x40c3d0), "git", "clone", "git://code.qt.io/qt/qtwebengine-chromium.git", "src/3rdparty") called at ./init-repository line 485
Qt::InitRepository::git_clone_one_submodule(Qt::InitRepository=HASH(0x40c3d0), "src/3rdparty", "qt/qtwebengine-chromium.git", undef) called at ./init-repository line 391
Qt::InitRepository::git_clone_all_submodules(Qt::InitRepository=HASH(0x40c3d0), "qt/qtwebengine.git", 0, "all") called at ./init-repository line 418
Qt::InitRepository::git_clone_all_submodules(Qt::InitRepository=HASH(0x40c3d0), "qt/qt5", 0, "preview", "essential", "addon", "deprecated") called at ./init-repository line 594
Qt::InitRepository::run(Qt::InitRepository=HASH(0x40c3d0)) called at ./init-repository line 605


[Stack Overflow] Building Qt5.6 or Qt5.7 on Raspberry Pi3 or/and Pi zero


● Raspberry Piに Qt5を入れてみるテスト

 とりあえず Qt5を使いたい場合は、下記の要領で apt-getでサクッとインストールすれば良い。

$ sudo apt-get install qt5-default
$ sudo apt-get install qtcreator
$ which qtcreator
/usr/bin/qtcreator
$ qtcreator



● FDclone

FDclone なページ

# Ver.3.01b# (c)1995-2014 T.Shirai
sudo apt-get install fdclone

fd

Shift + eでコンフィグ画面になる

nano .fd2rc
# shell variables definition
BASICCUSTOM=0
FD_SORTTYPE=101
DISPLAYMODE=3
SORTTREE=0
WRITEFS=2
ADJTTY=1
FD_DEFCOLUMNS=2
SIZEINFO=1
ANSICOLOR=2
FD_ANSICOLOR=3
ANSIPALETTE=79624351776
TMPDIR=/home/pi
TMPUMASK=077
LANGUAGE=utf8
DEFKCODE=utf8
INPUTKCODE=utf8
PTYINKCODE=utf8
PTYOUTKCODE=utf8
FNAMEKCODE=utf8
URLKCODE=
MESSAGELANG=
SHELL=/bin/bash

# launcher definition
launch .zip     "unzip -lqq"    -f " %s %m-%d-%y %t %*f"
launch .Z       "zcat %C|"
launch .gz      "gzip -cd %C|"
launch .bz2     "bzip2 -cd %C|"
launch .deb     "ar p %C data.tar.gz|gzip -dc|tar tvf - "       -f "%a %u/%g %s %y-%m-%d %t %f"
launch .rpm     "rpm2cpio %C|cpio -tv"  -f "%a %x %u %g %s %m %d %y %f"

# archiver definition
arch .zip       "zip -q %C %TA" "unzip -q %C %TA"
arch .deb       "clear; echo ERROR; false"      "ar p %C data.tar.gz|gzip -dc|tar -xf - %TA"
arch .rpm       "clear; echo ERROR; false"      "rpm2cpio %C|cpio -id %TA"


●俺専用ラズパイ3初期設定
# ラズパイの時刻設定を JST(日本標準時間)にする
sudo mv /etc/localtime /etc/localtime.org
sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

# ラズパイの IPv6を無効化
sudo bash -c "echo \# Disable IPV6 >> /etc/sysctl.conf"
sudo bash -c "echo net.ipv6.conf.all.disable_ipv6 = 1 >> /etc/sysctl.conf"

# ===
# 初期設定 UARTボーレート安定化、GPIO-I2C有効化、ACT-LEDをハートビート動作
echo export HISTCONTROL=ignoreboth >> ~/.bashrc
sudo bash -c "echo core_freq=250 >> /boot/config.txt"
sudo bash -c "echo dtparam=act_led_trigger=heartbeat >> /boot/config.txt"
sudo bash -c "echo dtoverlay=i2c-gpio >> /boot/config.txt"
cat /boot/config.txt

# ===
# swapの廃止(apt-get removeしないと再起動時に swapが復活する)
sudo dphys-swapfile swapoff
sudo apt-get -y remove dphys-swap
free

# ===
# RAMディスクの作成 32MB
sudo bash -c "echo \# Make RAM Disk and Store tmp files. >> /etc/fstab"
sudo bash -c "echo tmpfs /tmp tmpfs defaults,size=32m,noatime,mode=1777 0 0 >> /etc/fstab"
sudo bash -c "echo tmpfs /var/tmp tmpfs defaults,size=32m,noatime,mode=1777 0 0 >> /etc/fstab"

# ===
# シャットダウンとリブートをキー入力短縮用に簡易コマンド化
cd
bash -c "echo sudo shutdown -h now > sd"
chmod +x sd
sudo mv sd /usr/local/bin/
bash -c "echo sudo reboot > rb"
chmod +x rb
sudo mv rb /usr/local/bin/

# ===
# Raspberry Piにファイル共有の Samba
# Sambaのインストールに sudo apt-get updateが必要
sudo apt-get update
sudo apt-get -y install samba
samba -V
# Samba Version 4.2.10-Debian
mkdir ~/samba_share
# sudo nano /etc/samba/smb.conf
sudo bash -c "echo [pi_samba_share] >> /etc/samba/smb.conf"
sudo bash -c "echo  comment=Samba Share >> /etc/samba/smb.conf"
sudo bash -c "echo  path=/home/pi/samba_share >> /etc/samba/smb.conf"
sudo bash -c "echo  browseable=Yes >> /etc/samba/smb.conf"
sudo bash -c "echo  writeable=Yes >> /etc/samba/smb.conf"
sudo bash -c "echo  only guest=No >> /etc/samba/smb.conf"
sudo bash -c "echo  create mask=0777 >> /etc/samba/smb.conf"
sudo bash -c "echo  directory mask=0777 >> /etc/samba/smb.conf"
sudo bash -c "echo  public=no >> /etc/samba/smb.conf"

# Sambaユーザーとしてユーザー名 piでパスワードを手入力で設定する
sudo smbpasswd -a pi


# ===
# Raspberry Piにリモート デスクトップ接続 Remote Desktop Protocolサーバ
sudo apt-get -y install xrdp

# 2016-09-23 Raspbian update, RealVNC server and viewer included
# RealVNCは使わないのでアンインストールする
# xrdp = 17.2MB
# http://www.neko.ne.jp/~freewing/raspberry_pi/raspberry_pi_3_xrdp_windows_remote_desktop/
# RealVNC server = 28.3MB
# RealVNC viewer = 5,8MB
sudo apt-get autoremove --purge realvnc-vnc-server
sudo apt-get autoremove --purge realvnc-vnc-viewer


# ===
# Raspberry Piにシャットダウン機能のインストール GPIO_LED=22 GPIO_BTN=27
# ===
# Raspberry Pi 3 Model Bの GPIOに LEDとスイッチを接続してシャットダウンボタンを実装する方法
# http://www.neko.ne.jp/~freewing/raspberry_pi/raspberry_pi_3_gpio_switch_shutdown_daemon/
cd
wget https://raw.githubusercontent.com/FREEWING-JP/RaspberryPi_Files/master/gpio_shutdown_daemon/install.sh
chmod +x install.sh
./install.sh

# ===
# 不要なパッケージを削除
# Filesystem      Size  Used Avail Use% Mounted on
# /dev/root       3.6G  3.3G  118M  97% /
rm -f -r ~/python_games/
bash -c "echo \#\!/bin/sh > uninstall.sh"
bash -c "echo df -h >> uninstall.sh"
bash -c "echo sudo apt-get -y --force-yes autoremove --purge wolfram-engine >> uninstall.sh"
bash -c "echo sudo apt-get -y --force-yes autoremove --purge minecraft-pi >> uninstall.sh"
bash -c "echo sudo apt-get -y --force-yes autoremove --purge python-pygame >> uninstall.sh"
bash -c "echo sudo apt-get -y --force-yes autoremove --purge python3-pygame >> uninstall.sh"
bash -c "echo sudo apt-get -y --force-yes autoremove --purge sonic-pi >> uninstall.sh"
bash -c "echo sudo apt-get -y --force-yes autoremove --purge scratch >> uninstall.sh"
bash -c "echo sudo apt-get -y --force-yes autoremove --purge greenfoot >> uninstall.sh"
bash -c "echo sudo apt-get -y --force-yes autoremove --purge bluej >> uninstall.sh"
bash -c "echo sudo apt-get -y --force-yes autoremove --purge nodered >> uninstall.sh"
bash -c "echo sudo apt-get -y --force-yes autoremove --purge libraspberrypi-doc >> uninstall.sh"
bash -c "echo echo \$\'\\\a\' >> uninstall.sh"
bash -c "echo df -h >> uninstall.sh"
chmod +x uninstall.sh
./uninstall.sh
sudo reboot
# Filesystem      Size  Used Avail Use% Mounted on
# /dev/root       3.6G  2.2G  1.3G  64% /

# ===
# ラズパイを最新の状態にする
bash -c "echo \#\!/bin/sh > update.sh"
bash -c "echo df -h >> update.sh"
bash -c "echo sudo apt-get update >> update.sh"
bash -c "echo sudo apt-get -y upgrade >> update.sh"
bash -c "echo sudo apt-get -y dist-upgrade >> update.sh"
bash -c "echo echo \$\'\\\a\' >> update.sh"
bash -c "echo df -h >> update.sh"
bash -c "echo \# sudo reboot >> update.sh"
bash -c "echo \# sudo shutdown -h now >> update.sh"
chmod +x update.sh
./update.sh
sudo reboot
# sudo shutdown -h now
# Filesystem      Size  Used Avail Use% Mounted on
# /dev/root       3.6G  2.3G  1.2G  67% /

# ===
# 音声出力 自動
amixer cset numid=3 0

# スピーカー音量の設定(-10239 ~ 400)
amixer sset PCM 400

# スピーカーのテスト
speaker-test -t sine -f 960 -l 1
aplay /usr/share/sounds/alsa/Front_Center.wav

# MP3、OGGプレイヤー
sudo apt-get -y install mplayer mpg321 vorbis-tools

# ===
# マイクの音量を確認する
amixer sget Mic -c 1
# マイクの音量を設定する
amixer sset Mic 16 -c 1
export ALSADEV="plughw:1,0"
echo $ALSADEV

# ===
# カメラや I2C、SPI、1-Wire等を有効にする
sudo raspi-config

# I2C制御のツールと Python用の I2C制御ライブラリをインストールする
sudo apt-get -y install python-smbus i2c-tools libi2c-dev

# GPIO制御 WiringPiのビルド
git clone git://git.drogon.net/wiringPi
cd wiringPi
./build
cd
rm -f -r wiringPi
gpio -v
# gpio version: 2.32

# ===
# 仮想キーボード
sudo apt-get -y install xvkbd

# デスクトップにショートカットを作成
bash -c "echo [Desktop Entry] > ~/Desktop/xvkbd.desktop"
bash -c "echo Encoding=UTF-8 >> ~/Desktop/xvkbd.desktop"
bash -c "echo Name=xvkbd >> ~/Desktop/xvkbd.desktop"
bash -c "echo Exec=/usr/bin/xvkbd -compact >> ~/Desktop/xvkbd.desktop"
bash -c "echo Icon=/usr/share/icons/gnome/32x32/devices/keyboard.png >> ~/Desktop/xvkbd.desktop"
bash -c "echo Type=Application >> ~/Desktop/xvkbd.desktop"
bash -c "echo Comment=Virtual, graphical keyboard for X Window System >> ~/Desktop/xvkbd.desktop"
bash -c "echo Terminal=false >> ~/Desktop/xvkbd.desktop"
bash -c "echo Categories=Utility; >> ~/Desktop/xvkbd.desktop"

# メニューにショートカットを作成
sudo cp ~/Desktop/xvkbd.desktop /usr/share/applications/xvkbd.desktop

# ===
# 5インチ HDMI接続 液晶ディスプレイ(感圧式タッチパネル搭載 XPT2046)
sudo bash -c "echo \# 5inch HDMI LCD with Touch Panel XPT2046 >> /boot/config.txt"
sudo bash -c "echo \# uncomment if hdmi display is not detected and composite is being output >> /boot/config.txt"
sudo bash -c "echo hdmi_force_hotplug=1 >> /boot/config.txt"
sudo bash -c "echo \# uncomment to force a specific HDMI mode (here we are forcing 800x480\!) >> /boot/config.txt"
sudo bash -c "echo hdmi_group=2 >> /boot/config.txt"
sudo bash -c "echo hdmi_mode=87 >> /boot/config.txt"
sudo bash -c "echo hdmi_cvt=800 480 60 6 0 0 0 >> /boot/config.txt"
sudo bash -c "echo \# Downscaling 1000x600 to 800x480 LCD screen >> /boot/config.txt"
sudo bash -c "echo framebuffer_width=1000 >> /boot/config.txt"
sudo bash -c "echo framebuffer_height=600 >> /boot/config.txt"
sudo bash -c "echo \# 5inch HDMI LCD with Touch Panel XPT2046(SPI,IRQ=GPIO25)>> /boot/config.txt"
sudo bash -c "echo dtparam=spi=on >> /boot/config.txt"
sudo bash -c "echo dtoverlay=ads7846,penirq=25,speed=10000,penirq_pull=2,xohms=150 >> /boot/config.txt"
cat /boot/config.txt

# タッチパネルキャリブレーションXPT2046(X Window System)
sudo mkdir /etc/X11/xorg.conf.d
sudo bash -c "echo Section \\\"InputClass\\\" > /etc/X11/xorg.conf.d/99-calibration.conf"
sudo bash -c "echo Identifier \\\"calibration\\\" >> /etc/X11/xorg.conf.d/99-calibration.conf"
sudo bash -c "echo MatchProduct \\\"ADS7846 Touchscreen\\\" >> /etc/X11/xorg.conf.d/99-calibration.conf"
sudo bash -c "echo Option \\\"Calibration\\\" \\\"141 3990 154 3971\\\" >> /etc/X11/xorg.conf.d/99-calibration.conf"
sudo bash -c "echo Option \\\"SwapAxes\\\" \\\"0\\\" >> /etc/X11/xorg.conf.d/99-calibration.conf"
sudo bash -c "echo EndSection >> /etc/X11/xorg.conf.d/99-calibration.conf"
cat /etc/X11/xorg.conf.d/99-calibration.conf
sudo shutdown -h now

# ===
# bridge-utilsは仮想ブリッジ
# udhcpdは busyboxベースの軽量 DHCPサーバ
sudo apt-get -y install bridge-utils udhcpd

# bt-panスクリプトファイルをダウンロードする
wget https://raw.githubusercontent.com/mk-fg/fgtk/master/bt-pan
chmod +x bt-pan


●ラズパイを USBメディアからブートする方法
PI 3 BOOTING PART I: USB MASS STORAGE BOOT BETA

●ラズパイをネットワークから PXEブートする方法
PI 3 BOOTING PART II: ETHERNET

raspberrypi/documentation

USB: USB boot description
Device boot: Booting as a mass storage device
Host boot: Booting as a USB host
Mass storage boot: Boot from Mass Storage Device (MSD)
Network boot: Boot from ethernet



Tags: [Raspberry Pi], [電子工作]

●関連するコンテンツ(この記事を読んだ人は、次の記事も読んでいます)

Raspberry Pi Zero Wを海外通販の Pimoroni等での購入方法、購入出来る通販ショップ一覧まとめ
Raspberry Pi Zero Wを海外通販の Pimoroni等での購入方法、購入出来る通販ショップ一覧まとめ

  ラズパイゼロW Pi Zero Wirelessモデルを海外通販で先行して購入し、サクッと入手する方法

Raspberry Pi3で安定して使える相性の無い microSDカードのまとめ
Raspberry Pi3で安定して使える相性の無い microSDカードのまとめ

  ラズパイ3で安定して使える microSDカードを購入する Teamと SanDiskは絶対に買わない

Raspberry Pi 3 Model Bに専用カメラモジュールを接続する方法
Raspberry Pi 3 Model Bに専用カメラモジュールを接続する方法

  ラズパイに専用カメラモジュールを接続して Raspbianで写真の静止画撮影や動画を録画する方法

Raspberry Pi 3公式フォーラムの FAQの内容の日本語訳
Raspberry Pi 3公式フォーラムの FAQの内容の日本語訳

  ラズパイ公式フォーラムの「The Raspberry Pi 3 Model B Q&A thread」の日本語訳

Raspberry Pi 3で GPIO端子の I2C機能を有効化する方法
Raspberry Pi 3で GPIO端子の I2C機能を有効化する方法

  ラズパイ3の GPIO端子の I2C機能を有効にして各種センサーを繋げる方法まとめ

大人気の CPUボード、Raspberry Pi 3 Model Bで作ってみよう
大人気の CPUボード、Raspberry Pi 3 Model Bで作ってみよう

  Raspberry Piの開発環境の構築やタッチパネル付き液晶ディスプレイや各種センサーの使い方まとめ


Raspberry Pi 3、シングルボードコンピュータ ラズパイ3 Raspberry Pi関連はこちらへまとめました
 下記以外にも多数のラズパイ関係の記事が有ります。
 (I2C制御、GPIO制御、1-Wire制御、シリアル通信、日本語音声合成、日本語音声認識、中国語音声合成、MeCab 形態素解析エンジン、赤外線リモコン制御、秋月 I2C液晶モジュール、KeDei 3.5インチ液晶、HDMI 5インチ液晶、NFCカードリーダ、コマンドライン操作方法等)
Raspberry Pi 3に HDMI接続の 800x480 5インチ TFT液晶を接続して使用する方法
Raspberry Pi 3 Jessieで LIRC機能を使って学習リモコン、赤外線リモコンを送受信する方法
Raspberry Pi 3の WiFiを広告ブロック機能付きの無線LANアクセスポイント化 hostapd + dnsmasq編
Raspberry Pi 3の Bluetoothで ブルテザで通信する方法(Bluetooth編)
Raspberry Pi 3で日本語音声を合成して喋らせる方法(Open JTalk編)
Raspberry Pi 3に USB Micを接続して日本語の音声認識をする方法(Julius編)
Raspberry Pi 3の GPIOに LEDとスイッチを接続して Lチカする方法
Raspberry Pi 3の GPIOに LEDとスイッチを接続してシャットダウンボタンを実装する方法
Raspberry Pi 3で GPIO端子の I2C機能を有効化する方法
Raspberry Pi 3の GPIOに I2C通信方式の気圧計 BMP280を接続する方法
Raspberry Pi 3に I2C通信方式の NFCリーダライタ PN532を接続して NFC FeliCaカードを読む方法
Raspberry Pi 3でネットワーク ライブカメラを構築する方法 Motion編
Raspberry Pi 3でネットワーク ライブカメラを構築する方法 MJPG-streamer編
Raspberry Pi 3 Model Bで動画処理アプリ FFmpegをコンパイルする方法
Raspberry Pi3の X-Window Systemに Windowsのリモートデスクトップから接続する方法
Raspberry Pi3に WebRTCの STUN/TRUNサーバと PeerJSサーバをインストールする方法


Espressif ESP8266 Arduino互換でスケッチが使える ESP-12Eモジュール基板
Espressif ESP8266 Arduino互換でスケッチが使える ESP-12Eモジュール基板

  Espressif ESP8266 ESP-12-E NodeMCU V1 ESP12 CP2102

BangGood通販はドローン以外にも面白い商品がまだまだ有った(電子工作編)
BangGood通販はドローン以外にも面白い商品がまだまだ有った(電子工作編)

  レーザー彫刻機、カラー液晶の DIYオシロ、Arduinoや Raspberry Pi用の小型カラー液晶



[HOME] | [BACK]
リンクフリー(連絡不要、ただしトップページ以外はweb構成の変更で移動する場合があります)
Copyright (c) 2016 FREE WING, Y.Sakamoto
Powered by 猫屋敷工房 & HTML Generator

http://www.neko.ne.jp/~freewing/raspberry_pi/raspberry_pi_3_command/