・2016/03/26
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 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"
・2016/04/02
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 入力 リモコン受信
下記にまとめました。
・[UPDATE] 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関連はこちらへまとめました
下記以外にも多数のラズパイ関係の記事が有ります。
(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/