揮発性のメモ2

知識をメモ書きしておく

Linuxで、利用可能なファイルシステムの一覧を取得する

/proc/filesystems を見ることでマウントできるファイルシステムがわかる。
nodevはブロックデバイスを使わないもの、要は仮想ファイルシステムという意味

$ cat /proc/filesystems
nodev   sysfs
nodev   rootfs
nodev   ramfs
nodev   bdev
nodev   proc
nodev   cpuset
nodev   cgroup
nodev   tmpfs
nodev   devtmpfs
nodev   debugfs
nodev   sockfs
nodev   pipefs
nodev   rpc_pipefs
nodev   devpts
        ext3
        ext2
        ext4
        vfat
nodev   nfs
nodev   nfs4
nodev   autofs
nodev   overlay
nodev   mqueue
nodev   ubifs

scpしたときにエラーが出る

新しめのサーバから yoctoで作ったようなショボい環境(opensshじゃなくてdropbearとか)へ scpコマンドでファイル転送すると、だいたいエラーになる

ssh-rsa で通信する

ssh-rsaを使ってくださいというエラーが出るとき

$ scp a.out root@192.168.101.80:/tmp/
Unable to negotiate with 192.168.101.80 port 22: no matching host key type found. Their offer: ssh-rsa
scp: Connection closed

新しめのサーバではssh-rsaは使わないようになっている。
ssh_configまたはscpのオプションでssh-rsaを追加する

# /etc/ssh/ssh_config.d/rsaenable.conf
HostKeyAlgorithms=+ssh-rsa
$ scp -O -oHostKeyAlgorithms=+ssh-rsa a.out root@192.168.101.80:/tmp/

SCPプロトコルを使う

sftp-serverが無いというエラーが出るとき

$ scp a.out root@192.168.101.80:/tmp/
sh: /usr/libexec/sftp-server: not found
scp: Connection closed

SFTPプロトコルではなくSCPプロトコルを使うように-Oオプションをつける

$ scp -O a.out root@192.168.101.80:/tmp/

Debianでbullseyeからbookwormにアップグレードする

www.debian.org
dist-upgrade とかではなくなったっぽい


手順目次

とりあえずbullseyeで最新にする

apt update
apt upgrade -y
apt autoremove

souces.listを全部bookwormに書き換える

特にファイルの追加とかしていなかったので、次のように横着をした

sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list

最小アップグレード

apt upgrade --without-new-pkgs

完全アップグレード

apt full-upgrade

とりあえずこれでOK
rebootは必要ないらしいけど、そうはいっても普通はする

ラズパイでGPIOを使う

Raspberry Pi 4 Model B で勉強中

$ cat /etc/rpi-issue
Raspberry Pi reference 2023-12-11

ラズパイのGPIOについて

  • ピン配置はラズパイ2,3,4,5で同一
  • 電圧は3.3V
  • 電流は1ピン当たり16mA、全体で50mA出力可能
    LEDをつけるなら制限抵抗はとりま100~200Ωくらいで
  • 入力は 0:LO, 1:HI (ONはGNDにつなぐので 0:LO)
  • 出力は 0:LO, 1:HI
  • ほとんどのピンはデフォルトで入力方向、プルアップ

https://www.raspberrypi.com/documentation/computers/raspberry-pi.htm
第1章 Raspberry Pi 4B ハードウェア仕様の調査 - ラズパイ実験室

GPIO操作

pinout

ピン配置を見るコマンド
https://pinout.xyz/

pinctrl

ピンのIN/OUT、プルアップ/プルダウンなどを制御するコマンド

pinctrl set 4 op     # GPIO4 を出力に変更(0:LO になる)
pinctrl set 4 op dh  # GPIO4 を出力に変更(1:HI になる)
pinctrl set 4 dh     # GPIO4 の出力を1:HIにする
pinctrl set 4 dl     # GPIO4 の出力を0:LOにする

pinctrl set 3 ip pu  # GPIO3 を入力(プルアップ)に変更
pinctrl get 3        # GPIO3 の状態取得
# 出力例
#  3: ip    pu | hi // SCL1/GPIO3 = input

pinctrl get 0-27     # GPIO0~27 の状態取得
pinctrl poll 3-4,6   # GPIO3~4 と 6 の出力/入力を監視
/sys/class/gpio/

ピンのIN/OUTなどを制御するファイル(sysfs)
(プルアップ制御の機能は無い)

cd /sys/class/gpio/

echo 4 > export             # GPIO4 の制御ファイルを作成
echo out > gpio4/direction  # GPIO4 を出力に変更(0:LO になる)
echo high > gpio4/direction # GPIO4 を出力に変更(1:HI になる)
echo 1 > gpio4/value        # GPIO4 を1:HIにする
echo 0 > gpio4/value        # GPIO4 を0:LOにする

echo 3 > export             # GPIO3 の制御ファイルを作成
echo in > gpio3/direction   # GPIO3 を入力に変更
cat gpio3/value             # GPIO3 の状態取得
# 出力例
# 1

廃止コマンド

raspi-gpio

(廃止予定)
ピンのIN/OUT、プルアップ/プルダウンなどを制御するコマンド
オプションはpinctrlとほぼ同じ。出力フォーマットが全然違う

gpio

(廃止)
ピンのIN/OUT、プルアップ/プルダウンなどを制御するコマンド
WiringPi のこと

Vimでの改行コードと文字コード自動判別の設定

今使っている ~/.vimrc の設定

" 内部文字コードの設定
set encoding=utf-8
" 新規ファイル
set fileencoding=utf-8
" 文字コード自動判別
set fileencodings=utf-8,cp932,euc-jp
" 改行コード自動判別
set fileformats=unix,dos,mac

" 全角罫線を2キャラ幅の文字と認識させる
set ambiwidth=double

" ~/.viminfoをつくらない
"set viminfofile=NONE

参考:
vimによる日本語文字コード自動判別と文字コード変換 [AFFRIT Portal]
Vimの文字コードの認識の仕組みと、文字化けを減らすための設定 #Vim - Qiita

grepで、出力をバッファリングさせない

grepで、出力を全部バッファからラインバッファに変更するオプションは --line-buffered
grepを多段に使う時とかに指定する

$ tail -F /var/log/hoge/hoge.log | grep --line-buffered "command=" | grep -v "TEST"

例:TESTじゃないコマンドでgrepするみたいな