Termuxでカメラが2回目から撮影できない問題について

Termuxでtermux-camera-photoコマンドを使うとAndroid端末のカメラから撮影ができますが、1回目はうまくいき、2回目以降は空のjpgファイルができるという問題が私の端末(Zenfone 2)で発生しました。

で調べてみるとGithubに下記のようなissueがあり、解決法を書いてくれている人がいた。
https://github.com/termux/termux-api/issues/124#issuecomment-469881807

$ pkill com.termux.apiをたたいて、termux-apiを一回落とすといいようだ。

下記がたぶんうまくいくコマンド。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# terumux-apiが入っていなかったら
$ pkg install termux-api

# termux-api関係を叩く前にはこれを入れる
$ pkill com.termux.api

# ライトをオン
$ termux-torch on

# 背面カメラで撮った写真を./a.jpgとして保存
$ termux-camera-photo -c 0 a.jpg

# ビューアーで開く
$ termux-open --view a.jpg

撮れる写真は全体的にかなり暗い上に、ピントが合っているのかもよくわからないが、一応これでなんとか撮影ができる。

朝の散歩時のマスク問題について

朝の散歩をしていたら歩いてきた感じのいいおばあさんに「おはようございます!」とあいさつされたが、あちらがマスクをしていなかったのでそっけなく「おはようございます…」と返してしまった。

コロナ前であれば気持ちのいい朝の挨拶、みたいな感じになったのだろうが、やはりマスクが気になる。

それから道路工事をしているところを通ろうとしたところ、前の方から車が来たので、交通整理をしている誘導員のおじさん2人が笑顔で「少々お待ちください」と言ったので車を少し待ったのだが、そのおじさん2人もマスクをしているが、アゴにマスクを下していて口が露出している。

コロナ前であれば感じのいい交通整理のおじさんだなと思ったのだろうが、やはりマスクが気になる。

彼、彼女らの人格とかを攻撃・否定するつもりは無いが、やはりちょっと今は近づきたくないなと思ってしまう。

色々な事情があるとは思うのだけど、マスクは付けてほしいな〰

朝に散歩を始めてしまった問題について

在宅勤務(リモートワーク)を始めて4か月以上経った。

もう、会社に行くことが想像できない感じになっている。

在宅勤務を始めたころは外に出たくて堪らなかったが、最近は外に出たいという欲求自体が小さくなってきて大丈夫か?オレとなっていた。

で、朝の8時くらいに散歩をしてから仕事を始める、ということをやり始めた。

30分くらいの散歩だが、結構疲れる。

家の周りをグルーっと周るだけだが、結構疲れる。

で、気になったことがあるのだが、散歩で出会う犬の散歩をしている人たちのほとんどがマスクをしていない。

犬は飼い主のマスクに驚くのだろうか。

それとも嫌がるのか。

マスクをしていない人が歩いているのが気になるということを、気にしている自分、という状態がちょっと気になっている今日この頃である。

Raspberry Pi Zero W をヘッドレスでインストールしてSSH接続する

今回購入したRaspberry Pi Zero WH

Raspberry Pi Zero WHを購入した、正規の代理店だと2000円程度なのだが在庫が無いのでAmazonで出品している所から買った。

直接中国かイギリスから輸入してそのまま販売しているのからなのか、3500円ほどした。
結構高かった。

準備

  • Raspberry Pi 本体
    • 私はRaspberry Pi Zero WH を使用
    • Wi-Fiの使える機種であればどれでもOKのはず
  • micro SD カード
    • 32GBを使用
    • 8GBでもおそらく問題ない
  • PCとターミナル
    • Windowでcygwinを使用
    • MacやLinuxでもOK、Linuxの方が都合は良さそう
  • マイクロUSBケーブル
    • 給電できればOK
  • Wi-Fi環境
    • PCと同じWi-Fiネットワークでないと接続できないので、PCが接続しているルータのIDとパスワードを準備しておく

インストールするOS

  • Raspberry Pi OS (32-bit Lite Minimal image based on Debian Buster)
    • Version: May 2020
    • Release date: 2020-05-27
    • Kernel version: 4.19

インストール手順

A. SDカードへラズパイOSをコピー @PC

  1. PCにSDカードを入れる
  2. https://www.raspberrypi.org/downloads/ から Raspberry Pi ImagerをダウンロードしPCにインストールし起動する
  3. RASPBERRY PI OS LITE(32bit)を選択
  4. SDカードを選択(ストレージの選択に注意)
  5. WRITE
  6. 完了したらSDカードを抜いてからもう一度挿す
  7. SDカード内にファイルがちゃんと入ってるか確認

B. SSHの有効化 @PC

  1. ターミナルをたち上げて下記で空のsshファイルを作成する
    1
    $ touch <SDカードへのパス>/ssh

C. Wi-Fiの設定 @PC

  1. PCが接続しているWi-FiルータのIDとパスワードを準備
    • #zero w はA(5Ghzには対応していないはずなので注意)
  2. Wi-Fi設定ファイルの作成
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    $ vim <SDカードへのパス>/wpa_supplicant.conf

    # wpa_supplicant.confの内容
    # 例下記のルータ、パスワードの場合
    # ルーターID: XXX-ROUTER-001
    # パスワード/パスフレーズ: xxxxxxx

    ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
    update_config=1
    country=JP

    network={
    ssid="XXX-ROUTER-001"
    psk=xxxxxxx
    }
    パスワード/パスフレーズを暗号化したい場合は
    https://raspida.com/wpa_passphrase
    を使用して暗号化できるがあまり意味ない気がする。

D. IP アドレスの固定化 @PC

この方法は私の環境ではできなかったので、参考までに。
ログイン後に固定化できるのであまり焦る必要は無し。

1
2
3
4
5
6
7
8
9
10
11
12
13
1. IPアドレスの確認
# 使われているIPを調べ、重ならないIPを適当に決める
$ arp -a

2. 固定化用ファイルの作成
$ vim <SDカードへのパス>/dhcpcd.conf

# dhcpcd.confの内容
# IP 192.168.1.123で固定する場合の例
interface wlan0
static ip_address=192.168.1.123/24
static routers=192.168.1.0
static domain_name_servers=192.168.1.0

E. ラズパイ起動

  1. SDカードをPCから抜いて、それをラズパイに入れる
  2. ラズパイにUSBケーブルをつなぐ、USBケーブルは給電用の方(PWRって書いてある)に挿す
  3. マイクロUSBケーブルのもう片方をPCのUSB差し込み口などに入れる、これで電源が入る
  4. ラズパイの緑色のランプが点滅したりする、落ち着くまで1分くらい?待つ

F. IP探索 @PC

bonjourが入っていてめんどくさいことをしたくない方は$ ssh pi@raspberrypi.localで入れます。
そしてHまで飛んでください。
お疲れさまでした。

私はbonjourを入れるのが嫌だったので自力でIPを探索する方法を取りました。

  1. ラズパイ探索用シェルスクリプトsearch_rasp.shをダウンロードしてきて実行する
  2. 見つかると Found! Raspberry pi IP is ... と出て、IPが表示されます。見つかったらGに行きます。
  3. うまく行かない場合はbonjour入れるかpingを叩いて見つけます。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    # ターミナルAで監視
    # これを表示しておくと見つけた時に気づきやすい
    $ ip monitor

    # PCのWi-FiネットワークのIPが192.168.1.xxだった場合
    # ターミナルBで
    $ ping 192.168.1.1
    #~ 略 ~
    $ ping 192.168.1.255

    # 255回たたくうちにMACアドレスの先頭が"b8:27:eb"か"dc:a6:32"のものが出てくるはず。
    # それがラズパイです。

    # 下記のコマンドで一応ホントに合っているか確認
    $ arp -a
    ($ ip neigh)

G. 公開鍵の設定をしてSSH接続 @PC

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 1. 公開鍵と秘密鍵を作成
$ ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_aiueo

# 2. ラズパイに公開鍵をコピー(下記はラズパイのIPが192.168.1.123の場合)
$ ssh-copy-id -i ~/.ssh/id_aiueo.pub pi@192.168.1.123
# パスワードを聞かれるので"raspberry"

# 3. SSH接続の設定
$ vim ~/.ssh/config

# ~/.ssh/configに下記を追加
Host rasp
HostName <ip>
User pi
IdentityFile ~/.ssh/id_aiueo
Port 22

# 4. SSH接続
$ ssh rasp

# 5. WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! が出たら
$ ssh-keygen -R <ip>

H. ラズパイでの設定 @Raspcerry Pi

もうラズパイに入れたので自由にいろいろやってください。
固定IP化をしておくといろいろ楽になると思います。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 1. Vimのインストール
$ sudo apt install vim

# 2. IPの固定化
$ vim /etc/dhcpcd.conf`
#ip 192.168.1.123 の例
#下記を追加して保存する
interface wlan0
static ip_address=192.168.1.123/24
static routers=192.168.1.0
static domain_name_servers=192.168.1.0

# 3. 再起動
$ sudo reboot

# 4. 再度SSH接続

# 5. パスワード接続禁止
$ sudo vim etc/ssh/sshd_config`
# 下記をnoにする
PasswordAuthentication no

# 6. ラズパイのアップデート
#下記のコマンドをたたく
$ sudo apt update
$ sudo apt upgrade
$ sudo apt dist-upgrade
$ sudo apt autoremove

# 7. ラズパイのシャットダウン
$ sudo shutdown -h now

I. 完了

こんな感じでラズパイOSをインストールしてSSH接続できます。一番めんどくさいところはSSH接続するところだと思います、bonjourを使えば楽みたいですがbonjourを入れなくてはならないので私は自力でやる方法を選びました。
bonjourが入ってればかなりするっとSSH接続までできると思います。

あと公開鍵認証でSSH接続する部分もめんどくさい人はすっ飛ばしてください。
$ ssh pi@<あなたのラズパイIP>を叩いてからパスワードで入ってください。

下記のサイトを参考にさせてもらいました、というか下記の方が詳しいのでそっちを見てください。

参考サイト:
https://memo.appri.me/iot/rpi0-headless-setup#Raspbian_%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB
https://qiita.com/ljourm/items/ee01c2b3d48c9958b9b3

家から出ないのが普通になってしまった問題

今日、20日ぶりくらいに家を出て散歩をした。

世の中は動いていた。

30分ほどの散歩だったが、体がぐったりと疲れおなかが減った。

在宅勤務が始まった当初は外に出られないのにストレスが溜まったが、もうあまりストレスも溜まらなくなった。

コロナ前だったらかなり物足りない散歩だったが、今では結構な運動になってしまった。

普通に電車に乗って会社に行くみたいなのを早くしたい気持ちが強くなっているのだが、同時に体はこの生活になれてしまっている。

サイトのお問い合わせフォームを無くした

前回の投稿でお問い合わせフォームが使えなくなったと書いた。

その後も少しだけfirebaseとfunctionsについて調べたが、そもそもお問い合わせ自体ほとんど来ないのでフォームを廃止することにした。

アドレスを直接書いて、ここから問い合わせてね、と書くとちょっと怖いのでcanvasに描画する形にした。

しばらくはシンプルな問い合わせページで運用しますです。

サイトのお問い合わせフォームが使えないのではないか問題について

サイトに問い合わせページを1年ほど前に作って以来いまだに問い合わせが来ていないので、ページ自体いらないのではないかと考えて、まずはフォームが動いているのか試してみたところメールが送れなかった。

firebase funcitions からnodemailerを使いGmail経由でメールを送信しているのですが、テストメールを送った直後にGmailのアカウントから「ログインをブロックしました」との通知がやってきた。

おそらくnodemailerからのログインをそう判断したようなのだが、詳細がよくわからない。

firebase consoleに行って見ると今functionsで動かしているNode.jsのversion 8は使えないよ!としか理解できない表示も出ている。

以下、考えられる原因。

  • A. Gmailアカウントが何らかのタイミングでnodemailerをブロックした
  • B. firebase functionsでNode.js version 8が動かなくなった(現在このサイトはNode.js ver8を使っている)
  • C. 他

ただ、Bだとすると全面的にfunctionsでNode.jsが動いていないはずでfirebaseのコンソールにはエラーなどは出ていない、ように見える。

さらにNode.js version 8 で firebase deploy をするとこう出る。

1
The Node.js 8 runtime is deprecated and will be decommissioned on 2021-03-15. For more information, see: https://firebase.google.com/support/faq#functions-runtime

2021年の3月まではなんとか使えそうだ。

うーん原因がよくわからない。

送信フォームを廃止しちゃおうか。

在宅勤務に体が慣れちゃった問題について

在宅勤務はまだまだ続く。

暖かくなったら自転車で会社まで行ってやろうと思っていたが、体力が落ちたのもあり自転車で行く気持ちは小さくなった。

今は暑いだろうし。

朝ご飯を食べてから朝9時半くらいから仕事を始めて、仕事の合間に昼飯と夕飯を食べる。

大体終わるのは7時半くらい。

それから風呂に入って、Amazon Prime Videoでガンダムを観て寝る。

という生活を送っている。

以前より仕事時間が増えたが、自分の時間も増えて充実している。

在宅勤務中は音楽を聴いていたが、私は音楽を聴くとあまり集中できないことがわかったのでradikoでラジオを聴くようになった。

大体TBSラジオを聴いている。

たぶん問題ないとは思うのだが会社での勤務中は音楽はなんとかいけても、ラジオはまずいなと思っていたが在宅だとあまり気にする必要がない。

コロナが終わっても通勤して仕事する形には戻れない体になってきたような気がする。

うーむ。

単位がいまだに取れない問題について

大学の単位が取れずにほぼ留年が決定したのではないか?という状態になった。

単位に必要な出席日数を計算しようとしたが、今年単位が取れないことが判明するのが怖くて計算できない。

なんで水泳の授業があるのだ、水泳の授業は出席しなくても単位を出す特例を適用してほしい。

単位が取れないのがほぼ確定なのでわざわざ授業に出席する必要もないのではないか、目が覚めた。

単位が取れないという夢をいまだに見る、それも大学と高校と中学が一緒くたになったような夢。

私の頭よもういい加減に覚えてほしい、10年以上前に大学は卒業しましたと。

Nexus 5にAndroid Pieを入れる

赤いNexus 5 非常にかっこいい

数年前にNexus 5をヤフオクで売り飛ばしたが、忘れられずにジャンク品を買ってしまった。

一昨年(2018年)の12月に秋葉原のスマホジャンク屋を覗いていたら外観の状態がかなりいい赤のNexus 5(ストレージ:16GB)が4000円ほどで売られていた。

動かなくてもいいやと思って買ってみたが、問題なく動いた。
ちょっとバッテリーの持ちが悪い気がするがそれはしょうがない。

以前Nexus 5を持っていた時には知識力が不足していて、カスタムロムを入れようにも入れられなかったが、この Nexus 5にはカスタムロムを入れてみることにした。

で、今回はAndroid 9(Pie)を入れる方法を紹介いたしますです。

しつこく赤いNexus 5 とてもいい

事前に用意するもの

  • Nexus 5 本体
  • PC(WindowsでもMacでも、Linuxでも)
  • USBケーブル(Nexus 5に挿せるデータ通信のできるもの)
  • TWRP(リカバリ)
    • Download Links の AmericaかEuropaのリンク先から最新版をダウンロードする
    • 現状の最新版の3.3.1.0でいいはず
  • Android 9のカスタムロム
    • XDAへのリンクです
    • 一つ目の投稿のLatest Downloads: => Pie:Folder をクリックでダウンロードページに行けるはず
  • gapps(Google Playを入れるため)
    • ARM, 9.0, pico を選択してダウンロードする
  • System領域の拡張用ツール
    • ストレージが32GBのモデルの場合は必要がないと思います
    • XDAへのリンクです
    • 一つ目の投稿のRepartitioning package: hh_clamor_repartition.zip をダウンロード
    • もしかして、Recovery: twrp-3.3.1-1_UA-hh.img も必要になる可能性あり
  • 上記でダウンロードしたものをPCのどこかのディレクトリにまとめておく(本記事ではこのディレクトリを nantyaradir として表します)
    • windowsなら C:\Users\xxx\Desktop\dir など

ロムのインストールをする場合、以前のデータは保持されません。
また、Nexus 5がお亡くなりになる可能性もあるので自己責任でお願いします。
あと、SIMカードが繋がるのかテストしていませんのあしからず。

A. 下準備


  • adbとfastbootをPCにインストールする

    Qiita - ADBコマンド導入の方法を参考にしてadbとfastbootをいれてください。いきなりQittaの記事へのリンクですが、わりとまとまってます。

    adbコマンドの導入方法とありますが、fastbootも同時に入るはずです。わからなければもっとわかりやすい方法があるかもしれないのでググってみてください。

  • Nexus 5の開発者向けオプションをONに
    1. PCとNexus 5をUSBケーブルで繋げます。つなげるとたぶんPC側でドライバのインストールが始まります、インストール済みなら始まりません
    2. Android => Nexus 5の設定画面の下の方に「端末情報」というのがあるのでタップ
      • どこかに「ビルドナンバー」という表示があるので10回くらいタップ
      • 設定の下の方に開発者向けオプションが表示されます
      • 開発者向けオプションをONにして、さらに下の方にあるUSBデバッグをONにします
    3. PC => PCにつないでいるとAndroidの画面に、「このPCに接続を許可しますか?」みたいな表示が出るのでOK
    4. 3までできたら、USBケーブルからNexus 5を外します

B. TWRPのインストール


  • bootloader unlock

    1. Android => Nexus 5 の電源を切り、ボリュームダウンと電源ボタンを同時に長押しします
    2. USBケーブルでNexus 5とPCを繋げます
    3. PC => コマンドプロンプトかターミナルを開きます
      • fastboot devices と打つとNexus 5が表示されるのを確認する
      • fastboot oem unlockと打つ
    4. Android => Nexus 5 の画面にunlockしていいか表示が現れるのでボリュームボタンで選択して電源ボタンでOK
      • 再起動するので起動したらもう一度電源をOFFにしUSBケーブルからNexus 5を外す
  • TWRPを入れる

    1. Android => ボリュームダウンと電源ボタンを同時に長押しします
    2. USBケーブルでNexus 5とPCを繋げます
    3. PC => コマンドプロンプトかターミナルを開きます
      • cd nantyaradirと打ち、ダウンロードしたファイルのあるディレクトリまで移動します
      • fastboot devices と打つとNexus 5が表示されるのを確認する
      • fastboot flash recovery twrp-3.3.1-0-hammerhead.img
      • fastboot reboot recovery

C. 16GBモデルの場合

16GBモデルのNexus 5の場合は/system領域が1GBしかなくてロムのインストールができないのでsystem領域の拡張を行います。

  • /system領域の拡張
    1. Android => TWRPが起動しているのを確認
      • 起動していなかったら
        • ボリュームダウンと電源ボタンを同時に長押しします
        • USBケーブルでNexus 5とPCを繋げます
    2. PC => コマンドプロンプトかターミナルを開きます
      • cd nantyaradirと打ち、ダウンロードしたファイルのあるディレクトリまで移動します
      • adb push hh_clamor_repartition.zip /sdcard/と打ちます
    3. Android/TWRP => Installでhh_clamor_repartition.zipをインストール
      • Advanced => Terminal でmodifyと打てと表示されるので、そうする
      • Wipe > Format data
        • yes と打つ
      • Wipe => Advanced Wipe で全部選択でwipe
    4. 4でcache領域でエラーが出る場合は、何回かwipeを繰り返す

D. OSのインストール

  • インストール
    1. Android => TWRPが起動しているのを確認
      • 起動していなかったら
        • ボリュームダウンと電源ボタンを同時に長押しします
        • USBケーブルでNexus 5とPCを繋げます
    2. PC => コマンドプロンプトかターミナルを開きます
      • cd nantyaradirと打ち、ダウンロードしたファイルのあるディレクトリまで移動します。
    3. TWRP => adb sideload モードにする
    4. PC => adb sideload rom.zip
      • adb sideload gapps.zip
    5. TWRP => wipe dalvik/cache
    6. 再起動する

Nexus 5にAndroid9が入った

これで無事にAndroid9がインストールされるはずです。うまくいかない場合は色々ググってください。
気合と根性と情熱です。

Nexus 5の情報は結構多いので無名Androit端末よりは全然マシです。くじけないでください。

なんとかなります。