2017年7月30日日曜日

RPi_0027 exFATマウントdump

USBメモリに区画を作り、dumpバックアップについての説明する。

(1) exfatとdumpのインストール

WindowでもMacでも書き込めるexFATが使えるようにして、Raspbianのフルバックアップ用にdumpをインストールする。 FATについては、『FAT32、FAT16、NTFS、exFATとは何ですか。』 http://faq.buffalo.jp/app/answers/detail/a_id/1079 を参照。
# apt-get install exfat-fuse
( apt-get install exfat-utils ) #exfat-fuseで同時にインストールされる
# apt-get install dump  #restoreコマンドもインストールされる

(2) USBメモリの区画作成

USBメモリなら何でもよいと思われるが、ここではSanDisk SDDD2-016Gをラズパイに挿す。
% lsusb | head -1
Bus 001 Device 004: ID 0781:5590 SanDisk Corp. #USBメモリ認識

# 区画の状態を調べる
# コマンドとしては fdisk,cfdisk,sfdisk,parted,gpartedなどがある
# fdisk -l /dev/sda
Disk /dev/sda: 14.3 GiB, 15376000000 bytes, 30031250 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000

Device     Boot Start      End  Sectors  Size Id Type
/dev/sda1          32 30031249 30031218 14.3G  c W95 FAT32 (LBA)
Idはcなので、W95 FAT32 (LBA) のフォーマットであるが、これを、
Idが7の、HPFS/NTFS/exFAT の フォーマットに切り直す。さらに
領域の半分は、Type Id 83 の Linuxフォーマットにする。
セクタ数30031218の半分は、
echo "(30031250-2048) / 2" | bc
の15014601 である。
# フォーマットの切り直し
# fdisk /dev/sda
Device     Boot Start      End  Sectors  Size Id Type
/dev/sda1          32 30031249 30031218 14.3G  c W95 FAT32 (LBA)

Command (m for help): d 1
Selected partition 1
Partition 1 has been deleted.  # 区画1が削除された

Command (m for help): n  # 1つ目の新しい区画を作る
Partition type
Select (default p): p  #区画の種類はprimary
Partition number (1-4, default 1): 1
First sector (2048-30031249, default 2048):ENTERで2048
Last sector, +sectors or +size{K,M,G,T,P} (2048-30031249, default 30031249): +15014601
Created a new partition 1 of type 'Linux' and of size 7.2 GiB.
Command (m for help): n  # 2つ目の新しい区画を作る
Partition type
Select (default p): p  #区画の種類はprimary
Partition number (2-4, default 2):ENTERで2
First sector (15015936-30031249, default 15015936):ENTERで15015936
Last sector, +sectors or +size{K,M,G,T,P} (15015936-30031249, default 30031249):
ENTERで30031249になりお尻は (0-30031249)0オリジン開始。
Created a new partition 2 of type 'Linux' and of size 7.2 GiB.

Command (m for help): p  #できた区画をみる
Disk /dev/sda: 14.3 GiB, 15376000000 bytes, 30031250 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000

Device     Boot    Start      End  Sectors  Size Id Type
/dev/sda1           2048 15015935 15013888  7.2G 83 Linux
/dev/sda2       15015936 30031249 15015314  7.2G 83 Linux
#セクター数はheads/cylindersで丸められるので、ドンピシャな同じ区画サイズにならない
#セクター数15015314-15013888=1426のサイズ差となった

Command (m for help): t  #フォーマットタイプを変更
Partition number (1,2, default 2): 1  #対象の区画は1番目
Hex code (type L to list all codes): L  #Id番号のリスト

 0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris
 1  FAT12           27  Hidden NTFS Win 82  Linux swap / So c1  DRDOS/sec (FAT-
 2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     85  Linux extended  c7  Syrinx
 5  Extended        41  PPC PReP Boot   86  NTFS volume set da  Non-FS data
 6  FAT16           42  SFS             87  NTFS volume set db  CP/M / CTOS / .
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux plaintext de  Dell Utility
 8  AIX             4e  QNX4.x 2nd part 8e  Linux LVM       df  BootIt
 9  AIX bootable    4f  QNX4.x 3rd part 93  Amoeba          e1  DOS access
 a  OS/2 Boot Manag 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O
 b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor
 c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad hi eb  BeOS fs
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT
 f  W95 Ext’d (LBA) 54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC b
11  Hidden FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor
12  Compaq diagnost 5c  Priam Edisk     a9  NetBSD          f4  SpeedStor
14  Hidden FAT16 <3 61  SpeedStor       ab  Darwin boot     f2  DOS secondary
16  Hidden FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS
17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE
18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fd  Linux raid auto
1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid fe  LANstep
1c  Hidden W95 FAT3 75  PC/IX           be  Solaris boot    ff  BBT
1e  Hidden W95 FAT1 80  Old Minix
Hex code (type L to list all codes): 7  #7  HPFS/NTFS/exFAT を選択
Changed type of partition 'Linux' to 'HPFS/NTFS/exFAT'.
#あるいは、
Hex code (type L to list all codes): c  #c  W95 FAT32 (LBA) を選択
Changed type of partition 'Linux' to 'W95 FAT32 (LBA)'.

Command (m for help): p  #変更した区画をみる
Disk /dev/sda: 14.3 GiB, 15376000000 bytes, 30031250 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000

Device     Boot    Start      End  Sectors  Size Id Type
/dev/sda1           2048 15015935 15013888  7.2G  7 HPFS/NTFS/exFAT
/dev/sda2       15015936 30031249 15015314  7.2G 83 Linux

Command (m for help): w  #変更を書き込む
The partition table has been altered.
Calling ioctl() to re-read partition table.
Re-reading the partition table failed.: Device or resource busy

The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).

# リブートで反映されるとあるので
# reboot するか、USBメモリを抜いて、別なUSBポートに指し直す。
# partprobe がエラーにならなければOKだろう
# partprobe -s
/dev/sda: msdos partitions 1 2
/dev/mmcblk0: msdos partitions 1 2
区画ができたならば、つぎにフォーマットする
# mkfs.exfat -n exFAT_7G /dev/sda1
mkexfatfs 1.1.0
Creating... done.
Flushing... done.
File system created successfully.

もしくは、
# mkfs.vfat -v -F 32 -n FAT32_7G /dev/sda1
/dev/sda1 has 64 heads and 32 sectors per track,
(略)
Volume ID is 980b59c3, volume label FAT32_7G   .
必要ならオプション追加 -c:不良ブロックの検査を行う

# mkfs.ext4 -j -L ext4_7G /dev/sda2
mke2fs 1.43.3 (04-Sep-2016)
Creating filesystem with 1876914 4k blocks and 469568 inodes
Filesystem UUID: fb6e48ef-b51c-44d1-b817-71677adac421
Superblock backups stored on blocks:
 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
フォーマットのあとマウントする
# mkdir -p /dsk/sda1; mkdir /dsk/sda2  #マウントポイント
# mount -v /dev/sda1 /dsk/sda1
FUSE exfat 1.1.0
# mount -v /dev/sda2 /dsk/sda2
mount: /dev/sda2 mounted on /dsk/sda2.

Raspbianがデスクトップ版の場合は、オートマウントされるようだ。
/dev/sda1        7506944    3872   7503072   1% /media/pi/exFAT_7G
/dev/sda2        7324192   33004   6899424   1% /media/pi/ext4_7G
マウントポイントはラベル名が使用される。

# mount|grep dsk   #マウントの状態
/dev/sda2 on /dsk/sda2 type ext4 (rw,relatime,data=ordered)
/dev/sda1 on /dsk/sda1 type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other,blksize=4096)

# df -H|egrep 'Used|dsk'   #マウントの使用状況
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       7.5G   34M  7.1G   1% /dsk/sda2
/dev/sda1       7.7G  1.3M  7.7G   1% /dsk/sda1

# 取り外す前にはアンマウントする
# umount /dsk/sda1
# umount /dsk/sda2

(3) ext4区画のバックアップ

Raspbianのroot区画をフルバックアップする方法を示す。
以下の b_mmcblk0_local.sh スクリプトを/usr/local/bin/に置く。
</usr/local/bin/b_mmcblk0_local.sh>
#! /bin/bash
# $Id: b_mmcblk0_local.sh,v 1.1 2017-08-01 10:19:56+09 tsubota $
#
SEND_ADDR="MY_GMAIL@gmail.com"
FROM_ADDR="MY_GMAIL@gmail.com"

LogMailSend() {
    MDHM=`date '+%Y/%m/%d(%a) %H:%M:%S'`
    SUBJECT=$1
    MESS=$2
    logline=`echo $MDHM; echo $MESS`
    (echo "Mime-Version: 1.0"; echo "Content-Type: Text/Plain; charset=iso-2022-jp"; echo "Content-Transfer-Encoding: 7bit"; echo "Subject: $SUBJECT"; echo "To: ${SEND_ADDR}"; echo "From: ${FROM_ADDR}"; echo ""; echo "$DT" ; echo "from `hostname`"; echo "${MYCMD} Running LOG."; echo ${logline}|nkf -j) | /usr/sbin/exim4 -f ${FROM_ADDR} ${SEND_ADDR}
}
ExecMailSend() {
    MDHM=`date '+%Y/%m/%d(%a) %H:%M:%S'`
    SUBJECT=$1
    LISTFILE=$2
    LOGFILE="`pwd`/$LISTFILE"
    (echo "Mime-Version: 1.0"; echo "Content-Type: Text/Plain; charset=iso-2022-jp"; echo "Content-Transfer-Encoding: 7bit"; echo "Subject: $SUBJECT"; echo "To: ${SEND_ADDR}"; echo "From: ${FROM_ADDR}"; echo ""; echo "$DT" ; echo "from `hostname`"; echo "${MYCMD} Running LOG."; echo "LISTFILE=$LOGFILE"; nkf -j $LISTFILE) | /usr/sbin/exim4 -f ${FROM_ADDR} ${SEND_ADDR}
}

HDEV=mmcblk0p2
if [ `whoami` != "root" ]; then
    ERRMSG="User not root."
    echo $ERRMSG
    logger $ERRMSG
    exit 1
fi
MYCMD=$0
MYNM=`basename $0`
BODY=${MYNM%.sh}

RDIR=/dsk/sda2/Backup/rapi4/RootBz
if [ ! -d ${RDIR} ]; then
    ERRMSG="Not Mounted $RDIR."
    echo $ERRMSG
    LogMailSend "$MYNM FAIL1" "$ERRMSG"
    logger $ERRMSG
    exit 1
fi
cd $RDIR
if [ $? != 0 ]; then
    ERRMSG="CANNOT cd $RDIR."
    echo $ERRMSG
    logger $ERRMSG
    LogMailSend "$MYNM FAIL2" "$ERRMSG"
    exit 1
fi

YMD=`date "+%Y_%m%d"`
BDIR=${BODY}_${YMD}
if [ ! -d ${BDIR} ]; then
    mkdir -p ${BDIR}
    if [ $? != 0 ]; then
        ERRMSG="Cannot mkdir $BDIR."
 echo $ERRMSG
 logger $ERRMSG
        exit 1
    fi
fi

CLOG="${BDIR}/${HDEV}_${YMD}.log"
echo "START=`date`" | tee $CLOG
echo "----------------------------------------" | tee -a $CLOG
echo "% /sbin/fdisk -l /dev/mmcblk0" | tee -a $CLOG
/sbin/fdisk -l /dev/mmcblk0 | sed -n -e "/^Disk/,//p" | tee -a $CLOG
echo "----------------------------------------" | tee -a $CLOG
echo "% df" | tee -a $CLOG
df | tee -a $CLOG
echo "" | tee -a $CLOG
echo "" | tee -a $CLOG
echo "****************************************" | tee -a $CLOG
date | tee -a $CLOG
pwd | tee -a $CLOG
set -x
(/sbin/dump 0usf 99999 - /dev/${HDEV} | \
  bzip2 -c > ${BDIR}/${HDEV}_${YMD}.dump.bz2 ) 2>&1 | tee -a $CLOG
date | tee -a $CLOG
ls -l ${BDIR} | tee -a $CLOG
ls -lh ${BDIR} | tee -a $CLOG
md5sum ${BDIR}/${HDEV}_${YMD}.dump.bz2  | tee -a $CLOG
set +x
echo "****************************************" | tee -a $CLOG
echo "END=`date`" | tee -a $CLOG
ExecMailSend "$MYNM FINISH." "$CLOG"
exit 0

# end of b_mmcblk0_local.sh
b_mmcblk0_local.shに実行許可を与える。
たとえば、月初めに実行したいのならば、crontabに設定するとよい。
# chmod 755 /usr/local/bin/b_mmcblk0_local.sh
# vi /etc/crontab
4 2 1 * * root /usr/local/bin/b_mmcblk0_local.sh
ついたちの2時4分に起動する例。
rootで実行するよりは、/etc/groupの"disk:x:6:"の行にユーザを加えて、 ユーザモードでバックアップするのが、よりよいだろう。
復元は、
展開するディレクトリにcdしたあと、
# bzip2 -dc ABC.bz2 | restore rf - #フルリストア
# bzip2 -dc ABC.bz2 | restore ivf - #会話部分リストア
でできるだろう。

《2017.8.25追記》
restoreで、なんどやってもillegal hardware instruction restore rvf -
になってしまう。未解決。dumpファイルから復元できない。
《2017.9.6追記》
mkfs.ext4 のオプションで -L のラベルを付けなければ illegal hardware instruction にならず正常にrestoreできている。

代替えというか別な方法として、raspbianデスクトップ画面から
Raspiアイコン>Accessories>SD Card Copier
を使うことにする。
/dev/mmcblk0のp1とp2の区画をまるごと外部メディアに
バックアップしてくれる。
出力側は、自動で区画切りをしてくれて、cp -axコマンドでコピーする。
出力をUSBメモリでなく、microSDにすると起動メディアにもなる。
SD Card Copierは便利で、コピーも速い。

デスクトップSD Card Copierがないときは、
https://github.com/billw2/rpi-clone
A shell script to clone a running Raspberry Pi SD card to a USB mounted SD card.

# ./rpi-clone -h

usage: rpi-clone sdN {-v|--verbose} {-f|--force-initialize} {-s|--src-disk sdS} {-c|--cross-filesystems} {-x}
-v - list all files as they are copied.
-f - force initialize the destination partitions
-s sdS - specify sdS is the booted source disk to clone from.
Use this if the boot source auto detect from /etc/mtab fails.
Use with caution, be sure sdS is really the booted disk.
-c - cross filesystem boundaries (include mounted drives)
-x - use set -x for very verbose bash shell script debugging
...
Version 1.7.1
にて、コマンドラインから同様にバックアップできそう。


2017年7月27日木曜日

RPi_0026 TeraTerm自動ログイン

TeraTermのマクロ機能でttlマクロのアイコンをクリックすることで、一気にラズパイにsshログインする方法を示す。

(1) avahi-daemonのインストール

Avahi(アバヒ) は hostname.local という名前を使ってローカルでホスト名を解決する機能でありこれををラズパイ側にインストールする。
# apt-get install avahi-daemon
# apt-get install avahi-utils  #おまけ avahi-resolve使いたいとき
avahiが起動していることの確認
# ps ax|grep avahi|grep -v grep
  368 ?        Ss     2:01 avahi-daemon: running [rapiz.local]
  380 ?        S      0:00 avahi-daemon: chroot helper

(2) Bonjourのインストール

Bonjour印刷サービスをWindows10側にインストールする。
ダウンロード - Bonjour Print Services (Windows) - Apple Support
https://support.apple.com/kb/DL999?viewlocale=ja_JP
からダウンロードして、
Downloads/BonjourPSSetup.exe をクリックして、
「ようこそ Bonjour印刷サービス」の画面に従ってインストールを完了させる。
但しAppleのiTunesをすでにインストールしている場合やWindows10であれば、Bonjour機能はインストールされている可能性があり、先にpingしてみよう。
C:\Users>ping rapiz.local
ping 要求ではホスト rapiz.local が見つかりませんでした。ホスト名を確認してもう一度実行してください。
### pingが通らないか、
C:\Users>ping rapiz.local
rapiz.local [192.168.1.80]に ping を送信しています 32 バイトのデータ:
192.168.1.80 からの応答: バイト数 =32 時間 =12ms TTL=64
192.168.1.80 からの応答: バイト数 =32 時間 =11ms TTL=64
192.168.1.80 からの応答: バイト数 =32 時間 =10ms TTL=64
### pingが通ればBonjourはインストールされているだろう。

(3) ttlマクロファイルの編集

ttlマクロファイルの雛形が、
c:/Program Files (x86)/teraterm/ssh2login.ttlにあるので、これをデスクトップにコピーして、例えばssh2rapiz.ttl にリネームする。
c:/Users/Default/Desktop/ssh2rapiz.ttl を以下のように変更修正する。
*** c:/Program Files (x86)/teraterm/ssh2login.ttl
--- c:/Users/Default/Desktop/ssh2rapiz.ttl
@@ -6,19 +6,19 @@
 ; Update: 2004/12/4
 ; Author: Yutaka Hirata
 
-username = 'nike'
-hostname = '192.168.1.3'
+username = 'pi'
+hostname = 'rapiz.local'
+passwdfile = 'c:¥Program Files (x86)¥teraterm¥passwd_pi.dat'
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-msg = 'Enter password for user '
-strconcat msg username
-passwordbox msg 'Get password'
+getpassword passwdfile username userpasswd
 
 msg = hostname
 strconcat msg ':22 /ssh /auth=password /user='
 strconcat msg username
 strconcat msg ' /passwd='
+strconcat msg userpasswd
 strconcat msg inputstr
 
 connect msg
もし、ssh2rapiz.ttl が以下のような[M]マークアイコンになっていなければ、

teraterm-4.95.exeを再インストールして、

チェック項目の.ttlファイルをttermpro.exeに関連付ける

piユーザのパスワードは passwdfile = 'c:¥Program Files (x86)¥teraterm¥passwd_pi.dat' に保存される。このファイルが無ければパスワード入力されファイル作成され、ファイルがあればパスワードが読み出してデコードされて自動ログインのパスワードとして使用される。
bash-4.1$ cat "/cygdrive/c/Program Files (x86)/teraterm/passwd_pi.dat"
[Password]
pi=XXXXYYYYZZZZAAAABB  #エンコードされた文字列
たぶんHackingすればデコードできるんだろう。平文よりはヨシとする。

(4) ttlマクロの実行

ssh2rapiz.ttlのクリックで、TeraTerm自動ログインできる。
ログイン後の画面で、rapiz.localでの、IPアドレスの正引きと逆引きをしているようす。
pi@rapiz:~ $ ifconfig wlan0|grep "inet addr:"
          inet addr:192.168.1.80  Bcast:192.168.1.255  Mask:255.255.255.0
pi@rapiz:~ $
pi@rapiz:~ $ ping -c 2 rapiz.local|head -3
PING rapiz.local (192.168.1.80) 56(84) bytes of data.
64 bytes from rapiz.gjs.or.jp (192.168.1.80): icmp_seq=1 ttl=64 time=0.178 ms
64 bytes from rapiz.gjs.or.jp (192.168.1.80): icmp_seq=2 ttl=64 time=0.178 ms
pi@rapiz:~ $
pi@rapiz:~ $  avahi-resolve -n rapiz.local
rapiz.local     192.168.1.80
pi@rapiz:~ $
pi@rapiz:~ $ avahi-resolve -a 192.168.1.80
192.168.1.80    rapiz.local
pi@rapiz:~ $
これで、ネットワークの場所を移動するたびに、FingでラズパイのIPアドレスを調べて、TeraTerm起動しIPアドレスや、ユーザパスワードを入力していた手間が省ける。アイコンのクリック一発でログインできて、とても便利になるはずだ。

<20180127_補足追加:TeraTermのsshログイン時にログを記録版>
; $Id: sshLOG_rapi4.ttl,v 1.00 2018/01/23 13:19:50 RDH_team $
; sample macro of Tera Term
;
; File: ssh2login.ttl
; Description: auto login with SSH2 protocol
; Environment: generic
; Update: 2004/12/4
; Author: Yutaka Hirata
;
; (参照したURL)
; 1.マクロサンプル - 自動ログイン(SSH版)Add Star (2012.12.30)
;   http://d.hatena.ne.jp/KuroNeko666/20121230/1356931071
; 2.TeraTermマクロ-MACROで設定する自動ログ取得 (2011/04/25)
;   http://www.j-oosk.com/teraterm/logging/254/

hostnam1 = 'rapi4'
hostnam2 = '.local'
hostname = hostnam1
strconcat hostname hostnam2
username = 'myname'
basedir = 'c:\Usr\TT_LOG\'
passwdfile = basedir
strconcat passwdfile 'passwd_rapi4_myname.dat'
;; ログ保存先指定 
LOGSPATH = basedir
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
getpassword passwdfile username userpasswd

msg = hostname
strconcat msg ':22 /ssh /auth=password /user='
strconcat msg username
strconcat msg ' /passwd='
strconcat msg userpasswd
strconcat msg inputstr

;; ⑤ログファイル名の設定
getdate LOG_NAME '_%Y%m%d_%H%M.txt'
FULLPATH = LOGSPATH 
strconcat FULLPATH hostnam1
strconcat FULLPATH LOG_NAME

;; ⑥接続 
connect msg

;; ⑦接続判定1(接続出来ない場合はメッセージを表示しマクロ終了) 
if result <> 2 then
  ERR_MESS = 'Cannot HOST '
  strconcat ERR_MESS hostname
  messagebox ERR_MESS 'Connection Error' 
  end 
endif

;; ⑧接続判定2(接続して3秒以内にプロンプトが表示されない場合もマクロ終了) 
timeout = 3 
wait '$ ' '% ' '# '
if result = 0 then 
  ERR_MESS = 'NoResponse HOST '
  strconcat ERR_MESS hostname
  messagebox ERR_MESS 'Connection Error' 
  end 
endif

;; ⑨ログ取得開始
logopen FULLPATH 0 1
if result then
  messagebox FULLPATH 'logopen Error' 
  end 
endif
logwrite 'Log start '
logwrite FULLPATH
logwrite #13#10
logwrite '*****************************************************'#13#10
;logclose
;; ⑩ホスト名表示 
;sendln 'hostname' 
;wait '$' '#'

;; ⑪マクロ終了 
;end


2017年6月28日水曜日

RPi_0025 logwatch

(1) logwatchのインストール

# apt-get install logwatch

(2) logwatchの設定

以下の1行の設定変更だけで、前日のログがレポートされるはずである。
# vi /etc/cron.daily/00logwatch
このファイルのこの行を、
/usr/sbin/logwatch --output mail

logwatchログを受け取るメールアドレスに変更する。
/usr/sbin/logwatch --mailto GMYNAME@gmail.com

(3) logwatchの手動動作テスト

通常は、以下のcrontabにあるように、毎朝の6:25に/etc/cron.daily/00logwatchが
起動する。
# grep daily /etc/crontab
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
もし、レポートが届かないときは、
# cp /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf/
# vi /etc/logwatch/conf/logwatch.conf
にて、次の箇所を変えてみる。
# diff /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf/logwatch.conf
70c70,71
< Range = yesterday
---
> #Range = yesterday
> Range = All
通常は、前日yesterdayのログでレポートされるのをAllとして、
/usr/sbin/logwatch --output stdout
にて、手動動作テストすると動作確認できる。


RPi_0024 exim4 Google設定

むかしの記事 obsA7-007 exim4でsmtp.google.comにとほぼ同じではあるが、
再度はじめからの設定をRaspberryPiで行う。

(1) まだインストールされていないことの確認

% dpkg -l exim4|grep exim4
un  exim4                        (no description available)

(2) exim4のインストール

# apt-get update
# apt-get install exim4

以下がインストールされた
Status  Name            Version             Architecture        Description
ii bsd-mailx            8.1.2-0.20141216cvs armhf  simple mail user agent
2a104,107
ii exim4                4.84.2-2+deb8u4     all    metapackage to ease Exim MTA (v4) installation
ii exim4-base           4.84.2-2+deb8u4     armhf  support files for all Exim MTA (v4) packages
ii exim4-config         4.84.2-2+deb8u4     all    configuration for the Exim MTA (v4)
ii exim4-daemon-light   4.84.2-2+deb8u4     armhf  lightweight Exim MTA (v4) daemon

systemd 経由のexim4状態を確認
# systemctl status exim4
* exim4.service - LSB: exim Mail Transport Agent
   Loaded: loaded (/etc/init.d/exim4)
   Active: active (running) since Thu 2017-06-22 09:55:30 JST; 1h 3min ago
   CGroup: /system.slice/exim4.service
           `-26851 /usr/sbin/exim4 -bd -q30m

# /var/log/syslog もあわせて表示される
Jun 22 09:55:30 rapi3 exim4[26599]: Starting MTA: exim4.
Jun 22 09:55:30 rapi3 systemd[1]: Started LSB: exim Mail Transport Agent.

# tail /var/log/exim4/mainlog の表示
2017-06-22 09:55:30 exim 4.84_2 daemon started: pid=26851, -q30m, listening for SMTP on [127.0.0.1]:25 [::1]:25
2017-06-22 09:55:30 Start queue run: pid=26852
2017-06-22 09:55:30 End queue run: pid=26852

(3) exim4のGoogleサーバ設定

# cd /etc/exim4
初期状態の.orgとの差分。dc_other_hostnames=は変更せずとも、とりあえずそのままでも。
# diff update-exim4.conf.conf.org update-exim4.conf.conf
19,20c19,20
< dc_eximconfig_configtype='local'
< dc_other_hostnames='xxxx.yyy.zz'
---
> dc_eximconfig_configtype='smarthost'
> dc_other_hostnames='DC_OTHER_HOSTNAME'
26c26
< dc_smarthost=''
---
> dc_smarthost='smtp.gmail.com::587'

#ログインパスワード設定
# diff -u passwd.client.org passwd.client
--- passwd.client.org 2017-06-14 18:59:33.000000000 +0900
+++ passwd.client 2017-06-28 17:48:38.317534388 +0900
@@ -5,3 +5,4 @@
 #
 # Example:
 ### target.mail.server.example:login:password
+*.google.com:GMYNAME@gmail.com:GPASS

#設定の反映
# /usr/sbin/update-exim4.conf

#exim4の再起動
# /etc/init.d/exim4 restart
[ ok ] Restarting exim4 (via systemctl): exim4.service.
# パーミッションの確認
# ls -l /etc/exim4/passwd.client
-rw-r----- 1 root Debian-exim 658 Jun 22 16:24 /etc/exim4/passwd.client
# 読み書きはrootユーザと、読みはDebian-eximグループになっていることをチェック。
# もし違っていれば以下でパーミッションを設定する。
# chown root:Debian-exim /etc/exim4/passwd.client
# chmod 640 /etc/exim4/passwd.client

(4) 安全性の低いアプリ

以下の [安全性の低いアプリ] の設定をおこなう。

安全性の低いアプリからのアカウントへのアクセスを変更する
https://support.google.com/accounts/answer/6010255?hl=ja
・方法 2: 安全性の低いアプリからアカウントにアクセスできるように設定を変更します。この方法はアカウントのセキュリティを脆弱にするためおすすめしませんが、やむを得ない場合には次の手順で設定を変更できます。
 1.[アカウント情報] の [安全性の低いアプリ] に移動します。
 2.[安全性の低いアプリのアクセス] の横にある [有効にする] を選択します(G Suite ユーザー向け注意: この設定は、管理者が安全性の低いアプリからのアカウントへのアクセスをロックしている場合、表示されません)。


(5) 動作テストでメール送信をする。

% export DT="TEST_exim4 `date`"
% (echo "Subject: $DT"; echo "To: TO_TEST@TO_DOM_NAME"; echo "From: GMYNAME@gmail.com"; echo ""; echo "$DT" ; echo "from `hostname`") | /usr/sbin/exim4 -v -f GMYNAME@gmail.com TO_TEST@TO_DOM_NAME

LOG: MAIN
  <= GMYNAME@gmail.com U=MYUSER P=local S=342
delivering 1dQAvV-0000wx-TU1008]
R: smarthost for TO_TEST@TO_DOM_NAME
T: remote_smtp_smarthost for TO_TEST@TO_DOM_NAME
Transport port=25 replaced by host-specific port=587
Connecting to gmail-smtp-msa.l.google.com [2404:6800:4008:c07::6c]:587 ... connected
  SMTP<< 220 smtp.gmail.com ESMTP f87sm4356539pfe.35 - gsmtp
  SMTP>> EHLO DC_OTHER_HOSTNAME
  SMTP<< 250-smtp.gmail.com at your service, [2400:1111:2222:3333:4444:5555:6666:aaaa]
         250-SIZE 35882577
         250-8BITMIME
         250-STARTTLS
         250-ENHANCEDSTATUSCODES
         250-PIPELINING
         250-CHUNKING
         250 SMTPUTF8
  SMTP>> STARTTLS
  SMTP<< 220 2.0.0 Ready to start TLS
  SMTP>> EHLO DC_OTHER_HOSTNAME
  SMTP<< 250-smtp.gmail.com at your service, [2400:1111:2222:3333:4444:5555:6666:aaaa]
         250-SIZE 35882577
         250-8BITMIME
         250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH
         250-ENHANCEDSTATUSCODES
         250-PIPELINING
         250-CHUNKING
         250 SMTPUTF8
  SMTP>> AUTH PLAIN ****************************************
  SMTP<< 235 2.7.0 Accepted
  SMTP>> MAIL FROM: SIZE=1376 AUTH=MYUSER@DC_OTHER_HOSTNAME
  SMTP>> RCPT TO:
  SMTP>> DATA
  SMTP<< 250 2.1.0 OK f87sm4356539pfe.35 - gsmtp
  SMTP<< 250 2.1.5 OK f87sm4356539pfe.35 - gsmtp
  SMTP<< 354  Go ahead f87sm4356539pfe.35 - gsmtp
  SMTP>> writing message and terminating "."
  SMTP<< 250 2.0.0 OK 1498648474 f87sm4356539pfe.35 - gsmtp
  SMTP>> QUIT
LOG: MAIN
  => TO_TEST@TO_DOM_NAME R=smarthost T=remote_smtp_smarthost H=gmail-smtp-msa.l.google.com [2404:6800:4008:c07::6c] X=TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128 DN="C=US,ST=California,L=Mountain View,O=Google Inc,CN=smtp.gmail.com" A=plain C="250 2.0.0 OK 1498648474 f87sm4356539pfe.35 - gsmtp"
LOG: MAIN
  Completed
上記のようなログが表示されればメール送信成功で、/var/log/exim4/mainlogには以下のようなログが記録される。
# tail -f /var/log/exim4/mainlog
2017-06-28 10:52:08 Start queue run: pid=3487
2017-06-28 10:52:08 End queue run: pid=3487
2017-06-28 11:14:29 1dQAvV-0000wx-TU <= GMYNAME@gmail.comm U=myusername P=local S=342
2017-06-28 11:14:34 1dQAvV-0000wx-TU => TO_TEST@TO_DOM_NAME R=smarthost T=remote_smtp_smarthost H=gmail-smtp-msa.l.google.com [2404:6800:4008:c07::6c] X=TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128 DN="C=US,ST=California,L=Mountain View,O=Google Inc,CN=smtp.gmail.com" A=plain C="250 2.0.0 OK 1498648474 f87sm4356539pfe.35 - gsmtp"
もし、失敗しているようであれば、/var/spool/exim4/input に不成功なメッセージが残るので内容を見て削除する。

(6) 内部のメール転送のための設定

/etc/aliases
  root: MYUSER
  MYUSER: GMYNAME@gmail.com

/etc/email-addresses
  MYUSER: GMYNAME@gmail.com
/usr/bin/newaliasesは、/etc/aliasesを変更したときに、変更を有効にする。


2017年6月3日土曜日

RPi_0023 win10_PL2303_teraterm

RPi_0022 USBシリアル接続
(6)シリアルポート接続(windows編)
  別記事 RPi_0011 win10_PL2303_teraterm

の記事にあたり、以下はWindows10で操作した内容。

(1)ドライバのインストール
以下の、PL2303_64bit_Installer.exeにてCOMポートが認識された。

Family Software Newsletter #37 - (Updated 4/25/16)
Prolific USB To Serial Driver Fix!
Windows 32 and 64-bit Operating Systems - Prolific PL-2303 Driver Fix (VID_067B&PID_2303)
http://www.ifamilysoftware.com/news37.htmlから、


http://www.ifamilysoftware.com/Drivers/PL2303_64bit_Installer.exe
を取ってきて、PL2303のドライバをインストールする。


(2)TeraTermのインストール
https://ja.osdn.net/projects/ttssh2/releases
から
teraterm-4.95.exe か teraterm-4.95.zip を取ってくる。

設定>シリアルポート を見て、ポートCOM3 ボーレート115200 を確認する。
設定>設定の保存をする。


Win10のTeraTermからもラズパイの起動時コンソールメッセージを確認でき、ログインも可能だ。


2017年5月31日水曜日

RPi_0022 USBシリアル接続

正常に立ち上がらないとか、期待したプロセスが起動していないとかの調査には、ブートメッセージが見たい。HDMIの表示でもよいが画面が流れてしまう。シリアル接続端末さえあれば、起動時メッセージ表示や、コンソールログインがTVモニタがない場所でもお手軽に操作できる。シリアル接続でログ記録できたりも可能だ。

Amazonで、「商品名:Raspberry Pi ラズベリーパイ用の USB-TTLシリアルコンソールのUSB変換COMケーブルモジュールのケーブル」を購入した。

Amazonプライムの表示あるところから、2個購入。ひとつ385円。だったが、価格が低い商品が出品されています。新品の出品:¥181より、とさらに安いものもあった。
お届けが翌日になってて、そんなに早くこないよねと思いきや、ゆうパケットの翌日ワイドで翌日ちゃんと届いた。


Raspberry Pi3の差し込んだピン位置。外側13ピンラインの右から、2つ空けて、黒白緑の順にピンを挿した。(黒6pin:GND, 白8pin:TX, 緑10pin:RX)赤VCC[5V]は使わない。

(1)Raspberry Pi3の設定変更内容
root@rapi3:/boot# diff cmdline.txt.org cmdline.txt
1c1
< dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=cedef3be-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles
---
> dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=cedef3be-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
# cmdline.txt 1行目rootwaitの後ろを削除

root@rapi3:/boot# diff config.txt.org config.txt
56a57,60
>
> ## http://akkagi.info/20161004_web/ (参照Webページ)
> dtoverlay=pi3-miniuart-bt
>
# config.txt 最後の行にpi3-miniuart-btを追加

(2)現時点のrebootコンソールメッセージ例
# メッセージ全文は Rapi3_reboot_Message.txt を参照のこと。
# 2017-04-10-raspbian-jessie.zip版
root@rapi3:/boot# reboot
[  OK  ] Started Show Plymouth Reboot Screen.
[  OK  ] Removed slice user-1000.slice.
         Stopping Permit User Sessions...
         Stopping Login Service...
[  OK  ] Stopped Login Service.
[  OK  ] Stopped Permit User Sessions.
[  OK  ] Stopped target Network.
         Stopping dhcpcd on all interfaces...

#(たち下げ 省略)

[  OK  ] Stopped Create Static Device Nodes in /dev.
         Stopping Remount Root and Kernel File Systems...
[  OK  ] Stopped Remount Root and Kernel File Systems.
[  OK  ] Reached target Shutdown.
[  146.546572] watchdog watchdog0: watchdog did not stop!
[  146.842584] reboot: Restarting system

#(ここで再起動)

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 4.4.50-v7+ (dc4@dc4-XPS13-9333) (gcc version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611) ) #970 SMP Mon Feb 20 19:18:29 GMT 2017
[    0.000000] CPU: ARMv7 Processor [410fd034] revision 4 (ARMv7), cr=10c5383d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] Machine model: Raspberry Pi 3 Model B Rev 1.2
[    0.000000] cma: Reserved 8 MiB at 0x3a800000
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] [bcm2709_smp_init_cpus] enter (9520->f3003010)
[    0.000000] [bcm2709_smp_init_cpus] ncores=4
[    0.000000] PERCPU: Embedded 13 pages/cpu @b9f62000 s22592 r8192 d22464 u53248
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 239540
[    0.000000] Kernel command line: 8250.nr_uarts=1 bcm2708_fb.fbwidth=656 bcm2708_fb.fbheight=416 bcm2708_fb.fbswap=1 dma.dmachans=0x7f35 bcm2709.boardrev=0xa32082 bcm2709.serial=0xecc73d96 bcm2709.uart_clock=48000000 smsc95xx.macaddr=B8:27:EB:C7:3D:96 vc_mem.mem_base=0x3dc00000 vc_mem.mem_size=0x3f000000  dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=PARTUUID=cedef3be-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
[    0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Memory: 939064K/966656K available (6357K kernel code, 432K rwdata, 1716K rodata, 476K init, 764K bss, 19400K reserved, 8192K cma-reserved)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
[    0.000000]     vmalloc : 0xbb800000 - 0xff800000   (1088 MB)
[    0.000000]     lowmem  : 0x80000000 - 0xbb000000   ( 944 MB)
[    0.000000]     modules : 0x7f000000 - 0x80000000   (  16 MB)
[    0.000000]       .text : 0x80008000 - 0x807ea73c   (8074 kB)
[    0.000000]       .init : 0x807eb000 - 0x80862000   ( 476 kB)
[    0.000000]       .data : 0x80862000 - 0x808ce350   ( 433 kB)
[    0.000000]        .bss : 0x808d1000 - 0x809901ec   ( 765 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] Hierarchical RCU implementation.
[    0.000000]  Build-time adjustment of leaf fanout to 32.
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000000] Architected cp15 timer(s) running at 19.20MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x46d987e47, max_idle_ns: 440795202767 ns
[    0.000009] sched_clock: 56 bits at 19MHz, resolution 52ns, wraps every 4398046511078ns
[    0.000026] Switching to timer-based delay loop, resolution 52ns
[    0.000289] Console: colour dummy device 80x30
[    0.001351] console [tty1] enabled
[    0.001402] Calibrating delay loop (skipped), value calculated using timer frequency.. 38.40 BogoMIPS (lpj=192000)
[    0.001471] pid_max: default: 32768 minimum: 301
[    0.001804] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.001847] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.002805] Disabling cpuset control group subsystem
[    0.002865] Initializing cgroup subsys io
[    0.002917] Initializing cgroup subsys memory
[    0.002983] Initializing cgroup subsys devices
[    0.003026] Initializing cgroup subsys freezer
[    0.003070] Initializing cgroup subsys net_cls
[    0.003141] CPU: Testing write buffer coherency: ok
[    0.003227] ftrace: allocating 21246 entries in 63 pages
[    0.051843] CPU0: update cpu_capacity 1024
[    0.051910] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.051943] [bcm2709_smp_prepare_cpus] enter

#(たち上げ 省略その1)

[    2.154465] console [ttyAMA0] enabled
[    2.160720] of_cfs_init
[    2.165326] of_cfs_init: OK
[    2.182922] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    2.195358] VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
[    2.212661] devtmpfs: mounted
[    2.218599] Freeing unused kernel memory: 476K (807eb000 - 80862000)
[    2.501294] random: systemd: uninitialized urandom read (16 bytes read, 71 bits of entropy available)
[    2.519201] systemd[1]: systemd 215 running in system mode. (+PAM +AUDIT +SELINUX +IMA +SYSVINIT +LIBCRYPTSETUP +GCRYPT +ACL +XZ -SECCOMP -APPARMOR)
[    2.538021] systemd[1]: Detected architecture 'arm'.
[    2.664486] NET: Registered protocol family 10
[    2.673050] systemd[1]: Inserted module 'ipv6'
[    2.681886] systemd[1]: Set hostname to .
[    2.689294] random: systemd: uninitialized urandom read (16 bytes read, 71 bits of entropy available)
[    2.703853] systemd[1]: Initializing machine ID from random generator.
[    2.713430] systemd[1]: Installed transient /etc/machine-id file.
[    2.794797] uart-pl011 3f201000.uart: no DMA platform data

#(たち上げ 省略その2)

[    4.288162] systemd[1]: Starting Create Static Device Nodes in /dev...
[  OK  ] Started Load/Save Random Seed.
[  OK  ] Started Show Plymouth Boot Screen.
[  OK  ] Reached target Paths.
[  OK  ] Created slice system-systemd\x2drfkill.slice.
         Starting Load/Save RF Kill Switch Status of rfkill0...
[  OK  ] Started Load/Save RF Kill Switch Status of rfkill0.
[  OK  ] Created slice system-ifup.slice.
[    5.542455] systemd-fsck[210]: fsck.fat 3.0.27 (2014-11-12)
[    5.544082] systemd-fsck[210]: /dev/mmcblk0p1: 132 files, 41536/82644 clusters
[  OK  ] Started File System Check on /dev/disk/by-partuuid/cedef3be-01.
         Mounting /boot...
[  OK  ] Mounted /boot.
[  OK  ] Reached target Local File Systems.

#(たち上げ 省略その3)

[  OK  ] Started D-Bus System Message Bus.
[  OK  ] Started Avahi mDNS/DNS-SD Stack.
         Starting System Logging Service...
[  OK  ] Started Restore Sound Card State.
[  OK  ] Started dhcpcd on all interfaces.
[  OK  ] Started LSB: triggerhappy hotkey daemon.
[  OK  ] Started LSB: Autogenerate and use a swap file.
[FAILED] Failed to start LSB: Start VNC Server at boot time.
See 'systemctl status vncboot.service' for details.
[  OK  ] Reached target Network.
         Starting OpenBSD Secure Shell server...
[  OK  ] Started OpenBSD Secure Shell server.
         Starting /etc/rc.local Compatibility...
[  OK  ] Reached target Network is Online.
         Starting LSB: Start NTP daemon...
         Starting Permit User Sessions...
[  OK  ] Started Login Service.
[  OK  ] Started Permit User Sessions.
         Starting Light Display Manager...
[  OK  ] Started System Logging Service.
[  OK  ] Started /etc/rc.local Compatibility.
[  OK  ] Started LSB: Start NTP daemon.
         Starting Terminate Plymouth Boot Screen...
         Starting Hold until boot process finishes up...

Raspbian GNU/Linux 8 rapi3 ttyAMA0

rapi3 login: root
Password: 
Last login: Wed May 31 09:17:47 JST 2017 on ttyAMA0
Linux rapi3 4.4.50-v7+ #970 SMP Mon Feb 20 19:18:29 GMT 2017 armv7l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
root@rapi3:~# date
Wed 31 May 09:19:30 JST 2017
root@rapi3:~# 



(3)起動に問題があるときは、[FAILED]が赤文字で出て分かりやすい。


% ls -l /dev/tty.usbserial
crw-rw-rw-  1 root  wheel   37,  22  5 31 14:55 /dev/tty.usbserial

% system_profiler SPUSBDataType \
    | awk '
      /Product ID:/{p=$3}
      /Vendor ID:/{v=$3}
      /Manufacturer:/{sub(/.*: /,""); m=$0}
      /Location ID:/{sub(/.*: /,""); printf("%s:%s %s (%s)\n", v, p, $0, m);}
    ' | grep 2303
0x067b:0x2303 0x14100000 / 30 (Prolific Technology Inc.)
%

このMacについて>システムレポート
▼ USB 3.0バス
  USB-Serial Controller
USB-Serial Controller:
  製品ID:  0x2303
  製造元ID:  0x067b  (Prolific Technology, Inc.)
  バージョン:  3.00
  速度:  最高12 Mb/秒
  製造元:  Prolific Technology Inc.
  場所ID:  0x14100000 / 30
  利用可能な電流(mA):  500
  必要な電流(mA):  100
  高負荷時消費電流(mA):  0

(4)macOS Sierra でこのシリアルUSBケーブルが認識されると、macOSでは上記ように見える。

チップメーカURL
http://prolificusa.com/portfolio/pl2303hx-rev-d-usb-to-serial-bridge-controller/

(5)シリアルポートからのメッセージは以下のスクリプト usb_kermit_raspi.sh で自動で記録されるようにしている。ツールは伝統的な kermit を Homebrew からインストールして使っている。
% cat /usr/local/bin/usb_kermit_raspi.sh
#!/bin/sh
set -x
YMDHM=`date '+%Y%m%d_%H%M'`
cat /Users/myname/.kermrc_raspi |\
  sed -e s/append_raspi/append_raspi_${YMDHM}/ > \
  /Users/myname/.kermrc_raspi_YMD
kermit -y /Users/myname/.kermrc_raspi_YMD

% cat /Users/myname/.kermrc_raspi
set line /dev/tty.usbserial
set speed 115200
SET CARRIER-WATCH OFF
log session /Users/myname/Usr/RaspberryPi/ConsLog/append_raspi
connect

% ls -l /usr/local/bin/kermit
... Feb  3  2015 /usr/local/bin/kermit -> ../Cellar/c-kermit/9.0.302/bin/kermit

% head -7 /Users/myname/Usr/RaspberryPi/ConsLog/append_raspi_20170531_0917

Raspbian GNU/Linux 8 rapi3 ttyAMA0

rapi3 login: root
Password:
Last login: Wed May 31 09:16:10 JST 2017 on ttyAMA0
Linux rapi3 4.4.50-v7+ #970 SMP Mon Feb 20 19:18:29 GMT 2017 armv7l

シェルスクリプトの usb_kermit_raspi.sh は、ワークファイルが2つあって不細工である。ヒアドキュメント(heredoc)でスクリプト一つで書きたかったが、動いていれば、まあいいかと、なかなか書き直せない。


(6)シリアルポート接続(windows編)
  別記事 RPi_0023 win10_PL2303_teraterm

(7)PL2303 Mac OS X Driver Download
このWebページ、
http://www.prolific.com.tw/US/ShowProduct.aspx?p_id=229&pcid=41
を開いて、
PL2303 Mac OS X Driver Download  

Download File: PL2303_MacOSX_1.6.1_20160309.zip
 Mac OS X Universal Binary Driver v1.6.0 (PKG file format)
  For Mac OS Sierra (version 10.12)
  For Mac OS X El Capitan (version 10.11)
  For Mac OS X Yosemite (version 10.10)
  For Mac OS X Mavericks (version 10.9)
  For PL2303 H/HX/HXD/EA/RA/SA/TA/TB chip versions
  For Prolific USB VID_067B&PID_2303 Only
 Includes Driver Installation Manual
この PL2303_MacOSX_1_6_1_20160309.zip を展開してインストールでドライバはOKとなった。
% ls -l PL2303_MacOSX_1_6_1_20160309.zip
7135649 Mar  9  2016 PL2303_MacOSX_1_6_1_20160309.zip
% shasum PL2303_MacOSX_1_6_1_20160309.zip
52c3031ab1fda0b6fe58bc09c856cb6232aed782  PL2303_MacOSX_1_6_1_20160309.zip



2017年5月29日月曜日

RPi_0021 SSHクライアント

Windows版のsshクライアントはたくさんある。

ちら見でよさそうに見えたのは、
[windows ssh クライアント]でググって。

http://qiita.com/murachi1208/items/d6e4ce7ba75f1625fe51
Windowsターミナルソフト + Rlogin が最高すぎる!!

ダウンロードページ
http://nanno.dip.jp/softlib/man/rlogin/
RLoginは、Windows上で動作するターミナルソフトです。
RLogin (2.22.3) 2017/05/29

ここから rlogin_x64.zipをダウンロードして、すべて展開のあとRLogin.exeを走らせる。

起動時の初期画面

ここで、新規(N)を選ぶ

Server Edit Entry
エントリー/コメント、Server Address、User Name、Password、と
Terminal(T)は、kterm-colorとした。[OK]を押す。


さらに、表示(V) >オプション設定>スクリーン>
●フォントサイズから一行あたりの文字数を決定
初期値16(7.68) から 25(12.00)と文字を大きくした。


ファイル>サーバーに接続で、エントリーrapi3で、リモートログインできた。
※画面のコマンド lptest 80 12 は80カラム12 で表示フォントイメージの確認のため。