CAMERA機材

wordpressのデータの移行を行いながら、以前に書いた記事に目を通していたら、初めて買った一眼カメラはD40だったなあと。
D40買ったのが今から10年前だったりします。
5年ほど前から全くカメラを触らなくなってしまったけれど、興味が無くなったわけでは無く、機材の重さがネックとなり、持ち歩かなくなってしまった。
新製品が出るたびに、いいなぁーほしいなぁーと、食指を動かされるわけですけれど、なかなか追加購入するには至っていません。

機材は、防湿庫に入れてはいるんだけど、触ってないから日に日に劣化していきそうだ。

raspi:環境設定

前回、SDカードにRaspbianOSのインストールを行ったので、OSを起動して自分の環境に合わせて設定していく。

SDカードをRasPiにセットし、Networkケーブル、HDMIケーブル、USBKeyboardを接続し、USB Powerで給電開始する。今回は、2018-06-27-raspbian-stretch-lite.imgをインストールしたため、CUI環境のみで利用するつもりだ。しかしいざ起動してみると、2018-06-27-raspbian-stretch.imgをインストールしていたようで、この通りX-Windowが起動してきた。
2018-06-27-raspbian-stretch.imgをインストールしたのであれば、マウスも必要になる。

電源投入後、Partitionのリサイズが自動的に行われる。

初期ユーザー
Login:pi@raspberry

OSのバージョンを確認しておく

$ uname -a
Linux raspberrypi 4.14.50-v7+ #1122 SMP Tue Jun 19 12:26:26 BST 2018 armv7l GNU/Linux
$ cat /etc/debian_version 
9.4

debian 9.4(stretch)だ。

rootのパスワードを設定しておく

piユーザーは嫌なので、新規にUserを作成

Default [pi]ユーザーのGroupを確認

$ groups pi

pi : pi adm dialout cdrom sudo audio video plugdev games users input netdev spi i2c gpio

sudo useradd --groups adm,dialout,cdrom,sudo,audio,video,plugdev,games,users,input,netdev,spi,i2c,gpio -m [user_name]

作成したuserのパスワードを設定

sudo passwd [user_name]

新しい UNIX パスワードを入力してください:
新しい UNIX パスワードを再入力してください:
passwd: パスワードは正しく更新されました

pi ユーザーを削除するので、その前に、作成したUserIDでlogin出来るか確認しておく。

piユーザーのロック

$ sudo passwd --lock pi

passwd: パスワード期限切れ情報を変更しました

新規作成したUserのshellが未設定なので、/etc/passwdに/bin/bashを追加

なにやら自動的に、apt-get update&apt-get upgradeがかかったようだ。
しばらく時間がかかりそう15分くらい???

$ sudo passwd
Enter new UNIX password:
Retype new UNIX password:

続いてネットワークをstaticに変更する。このRaspbianOSでは、以前の作法と変わっているようで、 IP ADDRESS は、このように設定した。

$ ip a s | grep glo
inet 192.168.0.136/24 brd 192.168.0.255 scope global enxb827ebf734ad

/etc/dhcpcd.conf
#interface eth0
interface enxb827ebf734ad
static ip_address=192.168.0.232/24
static routers=192.168.0.254
static domain_name_servers=192.168.0.254 8.8.8.8

言われるがままに、再起動する。

再起動後、sshdの起動設定を行う。再起動前にやっておけよ。

sshdの起動

$ sudo raspi-config
5 Interfacing Options
P2 SSH
P3 VNC
P4 SPI
P5 I2C

これで、sshdで作業が出来る環境が整いました。

piユーザーは嫌なので、直接/etc/passwd , /etc/group を編集し、別のユーザー名に変更
以下の作業は行わない方が良いかもしれない。後々問題が出てくるかもしれない。

$vi /etc/password

$vi /etc/group

$mv pi kaz

$root@ras2:/home# chown -R kaz:kaz kaz

$sudo passwd kaz

ssh鍵登録

macosで作成した鍵をraspiに登録する。

scp .ssh/id_rsa.pub ras:/home/username/.ssh/authorized_keys

macからsshでpassphrase無しでlogin出来る事を確認する。

raspi:/boot/config.txt-Miscellaneous

CONFIG.TXTのその他のオプション

avoid_warnings

警告シンボルは、これはお勧めされていないものの、このオプションを使用して無効にすることができます。

avoid_warnings=1警告オーバーレイを無効にします。 avoid_warnings=2警告オーバーレイを無効にしますが、さらに低電圧が存在する場合でもターボモードを許可します。

logging_level

Videocoreのログレベルを設定します。この値は、Videocore固有のビットマスクです。

arm_control

ボード固有の制御ビットを設定します。注:このオプションは、arm_64bitコマンドを使用して64ビットのブート制御ビット(arm_control = 0x200)を設定することを推奨して非難されています。

arm_64bit

これを設定すると、カーネルローディングシステムは64ビットカーネルを想定します。

include

指定されたファイルの内容をconfig.txtに挿入できます。

例:

--- start /boot/extraconfig.txt ---
arm_64bit=1
---  end  /boot/extraconfig.txt ---

config.txtに記載
[code]
--- start /boot/config.txt ---
include extraconfig.txt
---  end  /boot/config.txt ---

raspi:/boot/config.txt-Conditional Filters

CONFIG.TXTの条件付きフィルタ

1枚のPiと1枚のモニターで1枚のSDカード(またはカードイメージ)を使用しconfig.txtている場合は、その特定の組み合わせに必要な設定を行い、そのように保ちます。

ただし、1つのPiが異なるモニター間で交換されている場合、またはSDカード(またはカードイメージ)が複数のPisの間で交換されている場合は、単一の設定ではもはや十分ではありません。条件付きフィルタを使用すると、特定の場合にのみ使用される設定ファイルの特定のセクションを定義することができ、config.txt別のハードウェアで読み込んだときに異なる構成を作成することができます。

[all]フィルタ

これが最も基本的なフィルタです。以前に設定したフィルタをすべてリセットし、その下にリストされている設定をすべてのハードウェアに適用することができます。

[all]

[all]フィルタを誤って組み合わせることを避けるために、フィルタ設定のグループの最後にフィルタを追加することをお勧めします(下記参照)。

[pi1]そして[pi2](など)フィルター

[pi1]フィルターの下の設定は、元の計算モジュールを含むPi 1(A、A +、B、B +)ハードウェアにのみ適用されます。[pi2]フィルタの下の設定はPi 2ハードウェアにのみ適用されます。この[pi3]フィルタは、Pi 3およびCompute Module 3のハードウェアに適用でき、[pi0]Pi ZeroおよびPi Zero W もカバーします。

[pi1]
[pi2]
[pi3]
[pi3+]
[pi0]
[pi0w]

これらはPi1とPi2が異なるカーネルを必要とするためkernel、異なる、initramfscmdline設定を定義するのに特に便利です。また、Pi 1とPi 2のデフォルト速度が異なるため、異なるオーバークロック設定を定義することもできます。たとえばinitramfs、それぞれ別々の画像を定義するには:

[pi1]
initramfs initrd.img-3.18.7+ followkernel
[pi2]
initramfs initrd.img-3.18.7-v7+ followkernel
[all]

[all]最後の設定はPi 2ハードウェアに限定されないように、最後にフィルターを使用してください。

ラズベリー・パイ・ゼロWは[pi0w] AND [pi0]の内容を見ることに注意することが重要です。同様に、ラズベリーPi3Bプラスは[pi3 +] AND [pi3]を見る。設定をPi ZeroまたはPi 3Bのみに適用する場合は、[pi0w]または[pi3 +]セクションの設定を元に戻す必要があります(順序は重要です)。

[none]フィルタ

[none]フィルタは、任意のハードウェアに適用されるの追従設定を防止します。あなたがしなければならないことは何もありませんが[none]、すべての行をコメントアウトしなくても、未使用の設定のグループをconfig.txtに保存すると便利な方法です。

[none]

[EDID=*]フィルタ

Piで1つのSDカードを使用中に複数のモニタを切り替える場合、空の設定ではそれぞれの解像度を自動的に選択するには不十分な場合は、モニタのEDID名に基づいて特定の設定を選択できます。

特定のモニタのEDID名を表示するには、次のコマンドを実行します。

tvservice -n

これは次のように表示されます:

device_name=VSC-TD2220

このモニタにのみ適用される設定を指定できます。

[EDID=VSC-TD2220]
hdmi_group=2
hdmi_mode=82
[all]

これにより、他のモニターに影響を与えることなく、指定されたモニターに対して1920×1080 DVTモードが強制されます。

これらの設定はブート時にのみ適用されるため、ブート時にモニタを接続し、Piが正しい名前を見つけるためにEDID情報を読み取ることができる必要があります。起動後に別のモニターをPiにホットプラグすると、異なる設定が選択されません。

シリアル番号フィルタ

場合によっては、SDカードを別のものに交換しても、特定のPiにのみ設定を適用する必要があります。例にはライセンスキーとオーバークロックの設定が含まれます(ただし、ライセンスキーはすでにSDカードの交換を別の方法でサポートしています)。上記のEDID識別が不可能であっても、Pis間でモニターを入れ替えない限り、これを使用して異なる表示設定を選択することもできます。たとえば、モニターが使用可能なEDID名を提供しない場合、またはコンポジット出力を使用している場合(EDIDが読み取れない場合)

Piのシリアル番号を表示するには、次のコマンドを実行します。

cat /proc/cpuinfo

シリアルは16桁の16進数値で下に表示されます。たとえば、次のように表示されているとします。

Serial          : 0000000012345678

この特定のPiにのみ適用される設定を定義することができます:

[0x12345678]
# settings here are applied only to the Pi with this serial
[all]
# settings here are applied to all hardware

GPIOフィルタ

また、GPIOの状態に応じてフィルタリングすることもできます。例えば

[gpio4=1]
# Settings here are applied if GPIO 4 is high

[gpio2=0]
# Settings here are applied if GPIO 2 is low

[all]
# settings here are applied to all hardware

条件付きフィルタの組み合わせ

同じタイプのフィルターはお互いに置き換わるため、両方を真にすることはできないため、[pi2]オーバーライドします[pi1]

異なるタイプのフィルタは、たとえば次のように順番に並べることによって組み合わせることができます。

# settings here are applied to all hardware
[EDID=VSC-TD2220]
# settings here are applied only if monitor VSC-TD2220 is connected
[pi2]
# settings here are applied only if monitor VSC-TD2220 is connected *and* on a Pi 2
[all]
# settings here are applied to all hardware

[all]フィルタを使用して、以前のすべてのフィルタをリセットし、意図せずに異なるフィルタタイプを組み合わせないようにします。