・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を基にした内容がそのままでは動かない可能性が有ります。)
 ※ 2017/08/16から Raspbian OSは Raspbian Jessieから Raspbian Stretchに変わりました。
 ※ 2019/06/20から Raspbian OSは Raspbian Stretchから Raspbian Busterに変わりました。
Download Raspbian for Raspberry Pi
ちなみに、歴代のバージョンと名称は
| Debian | コードネーム | 年月 | 備考 | (参考)Ubuntuでの該当名称 | 
| Debian 11 | Bullseye | 2021/08/14~ | 2021/11からラズパイにリリース | Focal Fossa 20.04 LTS ? | 
| Debian 10 | Buster | 2019/06/20~ | 2019/06からラズパイ4対応 | Bionic 18.04 LTS | 
| Debian 9 | Stretch | 2017/08/16~ | 2018/03からラズパイ3B+対応 | Xenial 16.04 LTS | 
| Debian 8 | Jessie | 2015~ | 2016/02からラズパイ3対応 | Trusty 14.04 LTS | 
| Debian 7 | Wheezy | 2013~2016 |  |  | 
| Debian 6.0 | Squeeze | 2011~2014 |  |  | 
| Debian GNU/Linux 5.0 | Lenny | 2009~2012 |  |  | 
● 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
 を削除する。
● How to Download old version of Raspbian OS image for Raspberry Pi
 ラズパイ OSの Raspbianの古いバージョンのイメージファイルの一覧。
 公式ホームページからは常に最新のイメージファイルしかダウンロードできません。
Download Raspbian for Raspberry Pi
 何らかの理由で古いバージョンが必要な場合は下記のリンクから直接古いバージョンの Raspbian OSのイメージファイルをダウンロードできます。
 下記にまとめました。
・2017/08/17
 
 
Raspberry Piの過去の古いバージョンの Raspbian OSのイメージファイルをダウンロードする方法
  How to Download old version of Raspbian OS image for Raspberry Pi
ラズパイと micro SDカードの相性
 結論:相性が出るカードは素直に諦めて安定して使えるカードに交換しましょう。
 Raspberry Pi3で安定して使える相性の無い microSDカードのまとめ
・2016/09/10
 
 
Raspberry Pi 3で安定して使える相性の無い最適な 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では HISTCONTROL=ignorebothは正しく動きません。
 2020年現在も正しく動きません。
 正しく動かすには、下記を実行します。
export HISTCONTROL=ignorespace:ignoredups:erasedups
pi@raspberrypi:~ $ uname -a
Linux raspberrypi 4.19.75-v7+ #1270 SMP Tue Sep 24 18:45:11 BST 2019 armv7l GNU/Linux
$ echo export HISTCONTROL=ignorespace:ignoredups:erasedups >> ~/.bashrc
| ignorespace | スペースで始まるコマンドを記録しない | 
| ignoredups | 重複する物を記録しない | 
| erasedups | 重複する古い物を全部消す | 
| ignoreboth | ignorespaceと ignoredupsを両方指定したのと同じ効果(動作しない) | 
 man bashで、HISTCONTROLの説明には ignorebothが書いて有るんだが、動かない。
A value of ignoreboth is shorthand for ignorespace and ignoredups.
man bash
  HISTCONTROL
    A colon-separated list of values controlling  how  commands  are
    saved  on  the history list.  If the list of values includes ig‐
    norespace, lines which begin with  a  space  character  are  not
    saved  in  the history list.  A value of ignoredups causes lines
    matching the previous history entry to not be saved.
    A value of ignoreboth is shorthand for ignorespace and ignoredups.
    A value of erasedups causes all previous lines matching the current line
    to  be  removed from the history list before that line is saved.
    Any value not in the above list is ignored.  If  HISTCONTROL  is
    unset,  or does not include a valid value, all lines read by the
    shell parser are saved on the history list, subject to the value
    of  HISTIGNORE.  The second and subsequent lines of a multi-line
    compound command are not tested, and are added  to  the  history
    regardless of the value of HISTCONTROL.
※ しっかし、折り返しで非常に醜い文章だな。
 bashコマンドラインであらかじめ設定した任意のコマンド(文字列)を履歴に記録しない。
 例) bashコマンドラインで exitコマンドを履歴に記録しない。
$ echo export HISTIGNORE=exit >> ~/.bashrc
 lsコマンドも記録しない場合は export HISTIGNORE=ls:exit とする。
 hogehogeコマンドも記録しない場合は export HISTIGNORE=hogehoge: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"
・[UPDATE] 2023/09/05
 
 
Raspberry Pi 3をシャットダウンした時に電源が切れたかを簡単に確認する方法
  ラズパイをシャットダウン操作した時に電源が切れたかを簡単に確認する方法
 ラズパイの各種設定
$ sudo nano /boot/cmdline.txt
 テキストエディタで編集します。
 ラズパイの時刻設定を JST(日本標準時間)にする
$ sudo raspi-config
 5 Internationalisation Options -> I2 Change Timezone -> Asia -> Tokyo
 を順に選択する。
 コマンドラインでタイムゾーンを設定する場合は sudo raspi-config nonintで設定が可能
sudo raspi-config nonint do_change_timezone Asia/Tokyo
# Current default time zone: '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
$ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 8.0 (jessie)
Release:        8.0
Codename:       jessie
$ 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の温度を制限する方法。Overheat protection
 高負荷の時に CPU温度が上がりますが、その最大の温度を設定する事で CPUの動作速度を落として制限します。
/boot/config.txt
 に
temp_limit=70
 とか書くと temp_limitの温度の 70度(単位は摂氏温度)以上になった時に CPUの動作速度を落とす(デフォルトにする)様になります。(他のブログ等では「設定値から -5度」とか書いてありますが不明)
 This sets the clocks and voltages to default when the SoC reaches this value in Celsius.
 "reaches this value"
config.txt - Overclocking options
 全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.11A | 0% | アイドル状態 | 
| 1コア | 0.14A | 25% | openssl speed -multi 1 | 
| 2コア | 0.19A | 50% | openssl speed -multi 2 | 
| 3コア | 0.23A | 75% | openssl speed -multi 3 | 
| 4コア | 0.26A | 100% | 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
● Raspberry Piの Raspbian OSの sudoコマンドでパスワードを要求する様にする
 Raspberry Piの Raspbian OSは sudoコマンドを実行する時にパスワードを要求しません。なので、セキュリティ面でパスワード要求を有効にしたい場合は下記の様に設定を変更します。
# 010_pi-nopasswdファイルを編集する
sudo nano /etc/sudoers.d/010_pi-nopasswd
pi ALL=(ALL) NOPASSWD: ALL
 を
pi ALL=(ALL) PASSWD: ALL
 に書き換える。
 再起動は不要で設定は即時に反映する。
pi@raspberrypi:~ $ sudo echo
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.
[sudo] password for pi:
● NVIDIA Jetson Nanoの Ubuntu 18.04の sudoコマンドでパスワードの入力状態を永久に保持する方法
 Jetson Nanoの Ubuntu 18.04は sudoコマンドを実行する時にセキュリティ面でパスワードを要求します。
 そして、そのパスワード入力は 5分間は有効で、別の sudoコマンドを実行する場合でも再入力の必要が有りません。
 その「5分間」の sudoコマンドのパスワードのタイムアウトの時間を変更したり、永久に保持する方法を説明します。
# sudo visudoコマンドを実行する
sudo visudo
 最初の方に有る
Defaults        env_reset
 の行を、
Defaults        env_reset, timestamp_timeout=-1
 で永久に保持する(タイムアウトしないので最初の 1回だけパスワード入力すれば良い)
Defaults        env_reset, timestamp_timeout=0
 で sudoパスワードを毎回入力
Defaults        env_reset, timestamp_timeout=30
 で 30分間有効(タイムアウト時間は 30分)
Defaults        env_reset, timestamp_timeout=60
 で 60分間有効(タイムアウト時間は 60分)
●ラズパイで GeeXLabを動かす
 ラズパイで GeeXLabを動かす。
 下記にまとめました。
・2016/09/25
 
 
Raspberry Pi 3で GeeXLabを動かす方法
  ラズパイで GeeXLabをインストールして GeeXLabの OpenGL 3Dライブラリのデモを動かす
・ラズパイで GeeXLabを動かす GeeXLab demo

●ラズパイ専用カメラを有効にする
●ラズパイ専用カメラで静止画を撮影
 下記にまとめました。
・2016/05/14
 
 
Raspberry Pi 3 Model Bに専用カメラモジュール RaspiCamを接続する方法
  ラズパイに専用カメラモジュールを接続して 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用の音声合成 - 株式会社アクエスト
・2016/04/10
 
 
Raspberry Pi 3で日本語音声を合成して喋らせる方法(AquesTalk編)
  ラズパイ3で 音声合成アプリ AquesTalk Piを使用してお手軽に日本語文章を喋らせる方法
 Open JTalk 日本語音声合成
 日本語音声合成 Open JTalkのラズパイ3対応のコンパイルと動作確認の手順
Open JTalk
・2016/04/10
 
 
Raspberry Pi 3で日本語音声を合成して喋らせる方法(OpenJTalk編)
  ラズパイ3で 音声合成システム Open JTalkをコンパイルして、お手軽に日本語の文章を喋らせる方法
 汎用大語彙連続音声認識エンジン Julius
 音声認識エンジン Juliusのラズパイ3対応のコンパイルと動作確認の手順
汎用大語彙連続音声認識エンジン Julius - OSDN
・2016/04/10
 
 
Raspberry Pi 3に USB Micを接続して日本語の音声認識をする方法(Julius編)
  ラズパイ3で汎用大語彙連続音声認識エンジン Juliusをコンパイルして使用する方法
 GPIO制御
 GPIOの入出力の設定や制御方法、WiringPiのビルド方法は下記の記事にまとめました
・2016/04/02
 
 
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
 下記にまとめました。
・2016/03/26
 
 
Raspberry Pi 3で GPIO端子の I2C機能を有効化する方法
  ラズパイ3の GPIO端子の I2C機能を有効にして各種センサーを繋げる方法まとめ
 赤外線リモコンの受信と送信(学習リモコン、ラズパイでリモコン機器を制御)
IRSEND irsend - basic LIRC program to send infra-red commands
 GPIO17 出力 リモコン送信(負論理)
 GPIO18 入力 リモコン受信
 下記にまとめました。
・2017/09/04
 
 
Raspberry Pi Raspbian Jessie 2017-07最終版で LIRCを使って学習リモコン、赤外線リモコンを送受信する方法
  ラズパイ3 Jessieで赤外線受信センサと IR LEDで赤外線リモコン信号を送受信して家電等の外部機器を制御する方法
・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通信線
 下記にまとめました。
・2016/04/17
 
 
Raspberry Pi 3の GPIOに 1-Wire通信方式の温度センサー DS18B20を接続する方法
  ラズパイ3で 1-Wire接続の温度センサー DS18B20を使用する方法
・Raspberry Pi3の GPIO端子の 1-Wire機能を有効化して DS18B20の温度センサーを動かしてみるテスト

 V.KEL VK16E、シリアル接続の GPSモジュールの使用方法
 下記にまとめました。
・2016/09/25
 
 
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モジュル

 ラズパイ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
 ダウンスケーリングして擬似的に解像度を高くする方法や、タッチパネルのキャリブレーション方法(校正方法)など、下記にまとめました。
・2016/04/17
 
 
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の ttyコンソール端末数を少なくする
/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機能を両立できる。
・2016/03/31
 
 
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)プロトコルとなります。
・2016/04/17
 
 
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.
 下記にまとめました。
・2016/05/26
 
 
Raspberry Pi 3 Model Bで動画処理アプリ FFmpegをコンパイルする方法
  ラズパイ3で動画音声変換処理プログラム FFmpegをセルフコンパイルしてインストールする方法
 Raspberry Pi3 Jessieで libavをセルフコンパイルする方法
 Raspberry Pi3 Jessieで libavをセルフコンパイルしてインストールします。
libav Open source audio and video processing tools
 下記にまとめました。
・2016/05/26
 
 
Raspberry Pi 3 Model Bで動画処理アプリ libavをコンパイルする方法
  ラズパイ3で libavをセルフコンパイルしてインストールする方法
 Raspberry Piを使って Postfix Mail serverを構築する方法
 一般的なプロバイダ接続ではポート 25が塞がれているので Gmailの SMTPを Postfixの中継サーバとして使用します。
 下記にまとめました。
・2017/02/26
 
 
Raspberry Pi3に Postfixメールサーバーを Gmailの SMTPをリレーとして立てる方法
  Raspbian Jessieで Postfix Mail serverを Gmailの SMTPを中継サーバとして設定する方法
 Raspberry Piを使って Gitサーバーを構築する方法
・ Gitをそのまま Git serverとして使う方法
・ GitLabを使う方法
 が有ります。
 下記にまとめました。
・2017/02/26
 
 
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
●ラズパイで自動的に piユーザーでログインする方法
systemctl get-default
 で現在の設定を確認。
sudo systemctl set-default multi-user.target
 でコンソール使用に変更。次回起動から自動的に piユーザーでログインしてターミナル状態になります。
 (電源を入れるだけで自動的に内部では piユーザーでログインしています。)
●ラズパイの X Window System(GUIデスクトップ)を無効化してメモリ使用量を減らす
 Raspbian Jessieで起動時に GUIの X Window Systemを起動しない様にする方法。
 ラズパイの X Window Systemを無効化してメモリ使用量を減らす。
 コンソールだけを使用する場合やサービスだけを動かす場合に有効です。
・方法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コマンドでダンプを取ってから焼くのはアリ?)
| Mathematica | wolfram-engine | 658MB | 数式処理システム | 
| Minecraft Pi Edition | minecraft-pi | 4362KB | マインクラフト(ゲーム?) | 
| Python Games | python-pygame | 6993KB | Python言語で書かれたゲーム | 
| Python Games | python3-pygame | 6007KB | Python言語で書かれたゲーム | 
| Sonic Pi | sonic-pi | 208MB | 音をプログラム | 
| Scratch | scratch | 94.4MB | 簡単プログラミング | 
| Greenfoot GUI | greenfoot | 10.2MB | インタラクティブな開発環境 | 
| BlueJ | bluej | 7168KB | 教育用途に開発された統合開発環境 | 
| Node-RED | nodered | 6567KB | IoTアプリを簡単に開発する開発環境 | 
| Debian Reference | debian-reference-en | 3440KB | Debianリファレンス(英語) | 
| Lib Raspberry Pi Document | libraspberrypi-doc | 33.8MB | Lib 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
 下記にまとめました。
・2016/05/26
 
 
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の WiFiの送信無線強度/ 送信電波強度を設定する
 sudo iwconfig wlan0 txpower nで Tx-Power 送信無線強度を設定します。
# 送信電力を 0dBmに設定する
$ sudo iwconfig wlan0 txpower 0
$ iwconfig wlan0
wlan0     IEEE 802.11bgn  ESSID:off/any
          Mode:Managed  Access Point: Not-Associated   Tx-Power=0 dBm
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:on
# 送信電力を 31dBmに設定する(0~31まで指定可能)
$ sudo iwconfig wlan0 txpower 31
$ iwconfig wlan0
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
          Power Management:on
# WiFi機能をオフにする
$ sudo iwconfig wlan0 txpower off
$ iwconfig wlan0
wlan0     IEEE 802.11bgn  ESSID:off/any
          Mode:Managed  Access Point: Not-Associated
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:on
# WiFi機能をオンにする
$ sudo iwconfig wlan0 txpower 31
Error for wireless request "Set Tx Power" (8B26) :
    SET failed on device wlan0 ; Input/output error.
$ sudo iwconfig wlan0 txpower on
●ラズパイ3の WiFiの省電力機能を無効にして WiFiの通信動作を安定化させる
 sudo iwconfig wlan0 power offで Power Managementの省電力機能を無効にします。
# Wi-Fiの省電力機能を無効にする
$ sudo iwconfig wlan0 power off
$ iwconfig wlan0
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
          Power Management:off
# Wi-Fiの省電力機能を有効にする
$ sudo iwconfig wlan0 power on
$ iwconfig wlan0
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
          Power Management:on
●俺専用ラズパイ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"
# ===
# bashのコマンドラインヒストリの設定
# echo export HISTCONTROL=ignoreboth >> ~/.bashrc
# ラズパイの bashでは HISTCONTROL=ignorebothは正しく動きません。
# ラズパイの bashでは HISTCONTROL=ignorespace:ignoredups:erasedupsとします。
echo export HISTCONTROL=ignorespace:ignoredups:erasedups >> ~/.bashrc
# ===
# 初期設定 ACT-LEDをハートビート動作
sudo bash -c "echo dtparam=act_led_trigger=heartbeat >> /boot/config.txt"
# ===
# 初期設定 UARTボーレート安定化、GPIO-I2C有効化、ACT-LEDをハートビート動作
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], [電子工作]
●関連するコンテンツ(この記事を読んだ人は、次の記事も読んでいます)
 
 
FWinSdCardImager SDカード イメージ書き込みアプリ、ラズパイの Raspbian OS、Jetson Nanoの Ubuntuの書き込みに便利
  ラズパイや Jetson Nano等のワンボードマイコン等への OSイメージの書き込みが簡単にできる
 
 
FWinPiFinder ラズベリーパイ IPアドレス発見アプリ。ARPコマンドでラズパイの IPアドレスを探索発見する
  Raspberry Piや NVIDIA Jetson Nano等の IPアドレスを MACアドレスの OUI部分を使用して発見する
 
 
Raspberry Pi 3系のトラブルであるある第一位の電源トラブル、低電圧警報に関する情報のまとめ
  ラズパイ3B系での低電圧警報に関する情報まとめ、コマンドラインやログファイルから低電圧を検知する方法
 
 
Raspberry Piで CPUの脆弱性 Spectreと Meltdownの脆弱性をチェックする方法
  ラズパイで 2018年初頭に大騒ぎになったスペクターとメルトダウンの CPUの脆弱性をチェックする方法
 
 
Raspberry Pi Zero Wを海外通販の Pimoroni等での購入方法、購入できる通販ショップ一覧まとめ
  ラズパイゼロW ワイヤレスモデルを海外通販でサクッと簡単に個人輸入で入手。技適通過でも国内販売は常に品切れ
 
 
Raspberry Pi 3で安定して使える相性の無い最適な microSDカードの種類のまとめ
  ラズパイ3で安定して使える microSDカードを購入する Teamと SanDiskは絶対に買わない
 
 
Raspberry Pi 3 Model Bに専用カメラモジュール RaspiCamを接続する方法
  ラズパイに専用カメラモジュールを接続して Raspbianで写真の静止画撮影や動画を録画する方法
 
 
Raspberry Pi 3公式フォーラムの FAQの内容の日本語訳
  ラズパイ公式フォーラムの「The Raspberry Pi 3 Model B Q&A thread」の日本語訳
 
 
Raspberry Pi 3で GPIO端子の I2C機能を有効化する方法
  ラズパイ3の GPIO端子の I2C機能を有効にして各種センサーを繋げる方法まとめ
 
 
大人気の CPUボード、Raspberry Pi 3 Model Bで作ってみよう
  Raspberry Piの開発環境の構築やタッチパネル付き液晶ディスプレイや各種センサーの使い方まとめ
 Raspberry Pi関連はこちらへまとめました
Raspberry Pi関連はこちらへまとめました
 下記以外にも多数のラズパイ関係の記事が有ります。
 (I2C制御、GPIO制御、1-Wire制御、シリアル通信、日本語音声合成、日本語音声認識、中国語音声合成、MeCab 形態素解析エンジン、赤外線リモコン制御、秋月 I2C液晶モジュール、KeDei 3.5インチ液晶、HDMI 5インチ液晶、NFCカードリーダ、コマンドライン操作方法等)
 
 
Espressif ESP8266 Arduino互換でスケッチが使える ESP-12Eモジュール基板
  Espressif ESP8266 ESP-12-E NodeMCU V1 ESP12 CP2102
 
 
BangGood通販はドローン以外にも面白い商品がまだまだ有った(電子工作編)
  レーザー彫刻機、カラー液晶の DIYオシロ、Arduinoや Raspberry Pi用の小型カラー液晶
[HOME]
 |
[BACK]
リンクフリー(連絡不要、ただしトップページ以外は Web構成の変更で移動する場合があります)
Copyright (c)
2016-2017  FREE WING,Y.Sakamoto
Powered by 猫屋敷工房 & HTML Generator
http://www.neko.ne.jp/~freewing/raspberry_pi/raspberry_pi_3_command/