自宅ルーター(RT2600AC)のインターネット接続再設定
はじめに
自宅ルーターのインターネット接続のトラブルシューティングが必要となったので、その備忘録です。
環境
- プロバイダ/契約コース: BBexcite / BB.exciteコネクトIPoE接続プラン
- ルーター: RT2600AC/Synology
前提
今までIPoE(DSLite)接続できてましたが、再起動したら接続できなくなりました。
再起動前に特に設定は変えてないはずなのですが...
変更内容
ルーターにログインした状態で、
- ネットワークセンター のアイコンをダブルクリック
- インターネット --> 接続のタブを開く
- AFTRアドレスを
gw.transix.jp
-->2404:8e01::feed:100
(NTT西日本の場合) と変更 - 画面右下の
適用
を押下
参考サイト
- RT2600AC+DSLite接続設定: internet watch記事
- AFTRアドレスの設定1: Synology RT2600acでIPv6+DS-Liteの設定
- AFTRアドレスの設定2: Synology ルーター RT2600ac 設定めも
その他
- BBexciteサイトから、BB.exciteコネクト IPoE接続プランはDS-Lite(transix)を利用することがわかる。
- SynologyサイトにはAFTRアドレスの設定は
gw.transix.jp
とする、とだけ書いてあるが、それだけだとAFTRアドレスの解決に失敗しました
というメッセージが出て、依然インターネット接続できない状態となる。
postgreSQL サーバーのインストールとセットアップ
はじめに
postgreSQLサーバーのインストールとセットアップについて、実際にやったこととその記録です。
環境
- マシン: GalliumOS3.1 / bash on Acer Chromebook 14(CB3-431)
$ cat /etc/os-release NAME="GalliumOS" VERSION="3.1 (Bismuth)" ID=galliumos ID_LIKE="ubuntu debian" PRETTY_NAME="GalliumOS 3.1" VERSION_ID="3.1" : VERSION_CODENAME=bismuth UBUNTU_CODENAME=bionic
インストール
バイナリ or ソースコードビルドのどちらかを実行します。
バイナリから
PostgreSQL情報ポータルサイトに従い、Synapticパッケージマネージャを利用しました。
以下の7つのパッケージをインストールするようです。少しバージョンが古いようですね。
libpq5
postgresql
postgresql-10
postgresql-client-10
postgresql-client-common
postgresql-common
sysstat
Synapticがなくても、これらをapt install
すれば同じ状態になると思います。
アンインストールは上記のパッケージのうち、postgresql
から始まるもの5つを$ sudo apt remove --purge postgresql...
として順番に削除していき、PCを再起動してからsudo userdel postgres
を実行します。アンインストール参考サイト
< その他インストール参考サイト>
- Ubuntu documentation / PostgreSQL
ソースコードからビルド
PostgreSQL文書の方法に基づいて、ver13.3をインストールします。
$ cd ~/Downloads $ echo -n "0b54a8a68dbfaf5dcddd89eb3922740143df50fbea02fefda8de743d8af99516 postgresql-13.3.tar.gz" | sha256sum -c # OKがでればダウンロードデータは正しいデータである
ダウンロードしたデータを展開します。
$ mv ~/Downloads/postgresql-13.3.tar.gz ~/ $ cd ~ $ tar zxvf postgresql-13.3.tar.gz
以下のコマンドを実行してインストールします。
$ cd ~/postgresql-13.3 # 構成 # オプション設定は任意です # デフォルトのインストール位置は `/usr/local/pgsql`です $ ./configure --with-openssl # 構築 $ make # "All of PostgreSQL successfully made. Ready to install." # が表示されれば成功 # 私は15分間くらいかかりました # リグレッションテスト $ make check # install $ sudo make install $ sudo make install-docs
セットアップ
ここからはセットアップです。
以下はソースコードからのビルド後のセットアップです。
# postgresユーザー作成 # グループ名もpostgresです $ sudo groupadd postgres $ sudo useradd -g postgres -m postgres $ sudo passwd postgres # パスワードを決めて入力する # postgresユーザーのデフォルトシェルをbashに設定する $ sudo chsh -s /bin/bash postgres # 設定ディレクトリのオーナーの変更 $ sudo chown -R postgres:postgres /usr/local/pgsql # ログファイルの作成 $ sudo touch /var/log/postgresql.log $ sudo chown postgres:postgres /var/log/postgresql.log $ sudo chmod 644 /var/log/postgresql.log # ユーザーの変更 $ su - postgres # postgresユーザーのパスワードを入力する # これ以降のコマンドはpostgresユーザーで実行する必要があります # 環境変数設定 # 以下(5行)を~postgres/.bash_profile に追加 $ vi ~/.bash_profile export PGHOME=/usr/local/pgsql export PGDATA=$PGDATA/data` export PATH=$PATH:$HOME/bin:$PGHOME/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PGHOME/lib . ~/.bashrc # 環境変数設定の反映 $ . ~/.bash_profile # データベースクラスタの作成 # --no-locale オプションは日本語表示を正しく行うため $ mkdir -p $PGDATA $ initdb --no-locale # DBサーバーの起動 # $PGDATAを設定しておくことにより、Dオプションの設定が不要となる $ pg_ctl -l /var/log/postgresql.log start # データベースの新規作成 $ createdb test # データベース名の変更 $ psql -c "ALTER DATABASE old_name RENAME TO new_name" # データベースへのログイン $ psql test # DBサーバーの終了 $ pg_ctl stop # postgresユーザーを終了する $ exit
次回以降PC起動時の操作
非postgresユーザーであるとします。
# DBサーバー起動 $ su - postgres -c 'pg_ctl -l /var/log/postgresql.log start' # postgresユーザーのパスワードを入力 # DBサーバー停止 $ su - postgres -c 'pg_ctl stop' # postgresユーザーのパスワードを入力 # DBサーバー動作状態の確認 $ su - postgres -c 'pg_ctl status' # postgresユーザーのパスワードを入力
参考サイトなど
< セットアップ部の参考サイト>
上記2つのサイトにかかれているchkconfig
コマンドは現在(2021年8月)はもう使えないようなので(Ubuntu で chkconfig の代わりに update-rc.d を使う)、こちらのコメントに従って、su - postgres -c 'pg_ctl'
で制御することにします。postgres
ユーザーとしてDBサーバーの起動・停止を行う必要があるので、postgres
ユーザーのパスワードを入力する必要があります。
< 監視項目部の参考サイト >
その他
ソースビルド時のpostgres
のアンインストール
Makefile
があるディレクトリにて、sudo make uninstall
を行う。
# DBサーバーの停止 $ su - postgres -c 'pg_ctl stop' $ cd ~/postgresql-13.3 $ sudo make uninstall # データディレクトリを削除 $ sudo rm -rf /usr/local/pgsql # ログファイルの削除 $ sudo rm /var/log/postgresql.log # postgres ユーザーの削除 $ sudo userdel -r postgres
< 参考サイト >
つまづきポイント1
postgres
ユーザーのホームディレクトリを作成せずに、ユーザー作成してしまった。postgres
ユーザーのホームディレクトリは必要。~/.bash_profile
などを登録するため。
ユーザー作成後にホームディレクトリを作成する方法はmkhomedir_helper
関数を用いる。参考サイト
上記セットアップコマンドでは useradd
コマンドの-m
オプションにてホームディレクトリを作成するようにしている。
$ sudo mkhomedir_helper postgres
つまづきポイント2
postgres
ユーザーの元々のシェルがbash
になっていなかった。(元々/bin/sh
になってた)
なので、postgres
ユーザーになったときに、~/.bash_profile
に記載した環境変数の設定が自動で読み込まれず、DBサーバーが起動しなかった。
ユーザーのデフォルトシェルの変更はchsh
コマンドで可能。
新規ユーザー作成時のシェル設定は useradd -D
で確認・設定可能。
# 現在の設定状態を表示する $ sudo useradd -D # シェルの変更 $ sudo useradd -D -s /bin/bash
2022.03.06追記
ubuntu20.04上にてapt コマンドによるインストールを行うときは以下となる。
Ubuntu documentation / PostgreSQL
# apt コマンドによるインストール $ sudo apt install postgresql postgresql-contrib # start コマンド $ pg_ctlcluster 12 main start # stop コマンド $ pg_ctlcluster 12 main stop # もしくは # systemctl によるstart / stop / status $ sudo systemctl start postgresql@12-main $ sudo systemctl stop postgresql@12-main $ sudo systemctl status postgresql@12-main
systemctl status
のメッセージで、起動時のコマンドや設定ファイルがわかります。
- 起動コマンド: /usr/lib/postgresql/12/bin/postgres
- $PGDATA(Dオプションで指定): /var/lib/postgresql/12/main
- configファイル: /etc/postgresql/12/main/postgresql.conf
- logファイル: /var/log/postgresql/postgresql-12-main.log
- port: 5432
またsystemctl start
を実行して起動できた時点で、postgresのinitdb
コマンドで実行するデータベースクラスタの作成はすでに完了しているようです。
elixirのwebフレームワークであるphoenixのセットアップのmix ecto.setp
にて以下のエラーが発生する場合は、
postgresqlでのpostgresユーザーのパスワードをpostgresに設定します。
# エラー内容 $ mix ecto.setup 23:18:07.344 [error] GenServer #PID<0.290.0> terminating ** (Postgrex.Error) FATAL 28P01 (invalid_password) password authentication failed for user "postgres" (db_connection 2.4.2) lib/db_connection/connection.ex:100: DBConnection.Connection.connect/2 (connection 1.1.0) lib/connection.ex:622: Connection.enter_connect/5 (stdlib 3.17) proc_lib.erl:226: :proc_lib.init_p_do_apply/3 Last message: nil State: Postgrex.Protocol 23:18:07.352 [error] GenServer #PID<0.297.0> terminating ** (Postgrex.Error) FATAL 28P01 (invalid_password) password authentication failed for user "postgres" (db_connection 2.4.2) lib/db_connection/connection.ex:100: DBConnection.Connection.connect/2 (connection 1.1.0) lib/connection.ex:622: Connection.enter_connect/5 (stdlib 3.17) proc_lib.erl:226: :proc_lib.init_p_do_apply/3 Last message: nil State: Postgrex.Protocol ** (Mix) The database for Realworld.Repo couldn't be created: killed
$ sudo -u postgres psql postgres postgres=# \password postgres (パスワードを2回入力) postgres=# \q $ mix ecto.setup The database for *** has been created 00:00:00.000 [info] Migrantions already up $
以上です。
kerl/kiexを使ってelixirのインストール
備忘録です。 こちらのサイトの内容そのままです。 note.com
バージョン管理ツールは、以前asdfでうまくいかなかった記憶あり。
こちらを試したところ迷わず成功し、かつerlangのバージョン管理もあるので、便利かと思いました。
環境
- OS: GalliumOS3.1
- machine: Chromebook14 / CB3-431
kerl インストール
$ sudo apt install build-essential libncurses5-dev \ openssl libssl-dev git-core curl $ sudo apt install automake autoconf $ sudo curl \ https://raw.githubusercontent.com/kerl/kerl/master/kerl \ --output /usr/local/bin/kerl $ sudo chmod a+x /usr/local/bin/kerl # helpの表示 $ kerl # インストール可能なバージョンの表示 $ kerl list releases # インストール可能なバージョンの情報の更新 $ kerl update releases # ビルド # 私の環境では23:00ごろに始めて約45分間かかりました # いろいろmissingしていると言われますが、プロンプトが返るまでひたらすら待つ $ kerl build 24.0 24.0 # ビルド済のバージョンリストを表示 $ kerl list builds # 特定バージョンのインストール $ kerl install 24.0 ~/kerl/24.0 # インストール済のバージョンリストを表示 $ kerl list installations # ~/.bashrc に以下を追加 `source $HOME/kerl/24.0/activate` # 新しいターミナルを開けばerlangが使用可能。
kiexインストール
$ curl -sSL \ https://raw.githubusercontent.com/taylor/kiex/master/install \ | bash -s # 以下を~/.bashrc に追加 `test -s "$HOME/.kiex/scripts/kiex" && source "$HOME/.kiex/scripts/kiex" ` # helpの表示 $ kiex # インストール可能なバージョンの表示 $ kiex list known # elixir のインストール $ kiex install 1.12.2 # 選択するelixirバージョンの指定 $ kiex use 1.12.2 # 以下を~/.bashrc に追加 `source $HOME/.kiex/elixirs/elixir-1.12.2.env`
コマンドまとめ
erlang / kerl
# helpの表示 $ kerl # インストール可能なバージョンの表示 $ kerl list releases # ビルド $ kerl build 24.0 24.0 # ビルド済のバージョンリストを表示 $ kerl list builds # 特定バージョンのインストール(ビルドしたバージョンのみインストール可能) $ kerl install 24.0 ~/kerl/24.0 # インストール済のバージョンリストを表示 $ kerl list installations # バージョンのアクティベート $ source ~/kerl/24.0/activate # バージョンのディアクティベート $ source ~/kerl/24.0/deactivate # REPL実行 $ erl
elixir / kiex
# helpの表示 $ kiex # インストール可能なバージョンの表示 $ kiex list known # elixir のインストール $ kiex install 1.12.2 # インストール済のバージョンの表示 # kiex list # 選択するelixirバージョンの指定 $ kiex use 1.12.2 # REPL実行 $ iex
voltaでnode.jsをインストール
備忘録です。
このサイトの内容そのままです。アレンジなし。
環境
- OS: GalliumOS3.1
- machine: Chromebook 14 / CB3-431
volta インストール
$ curl https://get.volta.sh | bash
node インストール
$ volta install node@14.17.3
最後に
- voltaについてわかったら更新します。
M5stickC + ENV HAT で温湿度+気圧センサ
はじめに
M5stickC とENV HATで気温と気圧を簡単に表示したいなと思いました。
ENV HAT = DHT12 + BMP280 + BMM150
内容
M5StickCで小型環境センサ端末を作るのサイト記事の前半部分そのままですが、 1点だけ変更点あり。
// 17行目 - Wire.begin(); // I2C初期化 + Wire.begin(0, 26); // I2C初期化
元記事のままだとBMP280の初期化で失敗し、M5stickCの画面に"BMP init fail"が連続して表示されましたが、上記のように変更するとうまく表示されました。
恐らく元記事がGROVE接続のセンサを用いているのに対し、当方はHATを用いているためかと思います。
lang-shipさんの記事を参考にさせてもらいました。
データ更新は10秒おきです。
注意点
M5stickC + ENV HATの組み合わせでは気温は高めに出るようなので(lang-shipさんの記事参照。M5stickC本体もそこそこ発熱します。)、延長ケーブルを使ってHATをM5stickC本体から少し離すようにしました。HATはgroveボードよりも比較的値段が安い傾向があるので、HATが準備されている機能ならHATで実現する方がいいかもしれません。
personal tips
personal tips links
NoCode
- adalo ... あんどうさん記事
- integromat ... qiita記事
Elixir on docker
start docker container
コンテナIDを調べる。
$ sudo docker container ls -a
"-a": 起動中・停止中も含めてすべてのコンテナを表示する
$ sudo docker container start {container ID} -a -i
"-a": 標準出力/標準エラーを開く
"-i": コンテナの標準入力を開く
micropython
- 始め方
- その次
- http POST request
- git hub
- はだメモ ESP32
- はだメモ micropython
- はだメモ ESP32 + micropython
- qiita記事: web server with ESP32 & micropython
- qiita記事: ESP32 + micropython + webhook
elixir
- hex docs
- 大原さん記事:最速で知る! ElixirプログラミングとErlang/OTPの始め方【第二言語としてのElixir】
- elixir school
- elixir/phoenix summary
- Nerves講義ノート
raspberrypi GPIO
M5stack
windows
windowsの上部が画面外に出てしまって、windowの移動・最大化・最小化のいずれもできない場合の対処
- windowsの中にフォーカスを持っていく。
- [alt] + [space] を押す。
- [m] を押す。
- 矢印キーのいずれかを押す。
- windowがマウスの矢印にくっついてくるので、それでwindowを移動する。