AlibabaCloud (2) add swap

アリババクラウドのECSは、初期状態はSwap がないため、一時メモリが足りない時、タスク起動できない、MySQL機能しなくなるなど現象が発生。
そのため、手動でアリババクラウドのECSにSwap領域の追加する。

Swapファイルを作る

[root@mars chen]# dd if=/dev/zero of=/var/swap bs=1M count=2048
2048+0 レコード入力
2048+0 レコード出力
2147483648 バイト (2.1 GB) コピーされました、 19.2259 秒、 112 MB/秒

Swapファイルをスワップ空間を設定

[root@mars chen]# mkswap /var/swap
スワップ空間バージョン1を設定します、サイズ = 2097148 KiB
ラベルはありません, UUID=8205e9d6-f575-43ef-b737-313917a75cee
[root@mars chen]# chmod 0600 /var/swap

swap起動

[root@mars chen]# swapon  /var/swap

結果確認

[root@mars chen]# free -m
              total        used        free      shared  buff/cache   available
Mem:            991         793          68           2         129          53
Swap:          2047           0        2047

再起動でも有効に

[root@mars chen]# echo “/swap/swap swap swap defaults 0 0” >> /etc/fstab
[root@mars chen]#

欠陥:性能低下

実際に数日動かしてみると。性能著しく低下とわかった。

瞬間の高負荷で、マシン全体はしばらく反応なくなる。これじゃ使うものにならない。Swapを停止する。

[root@mars chen]# swapoff  /var/swap

アリババクラウドで、Swapファイルをスワップ空間にする方法はだめでした。

Ubuntu で Dropbox

Dropboxをインストールすれば、WindowsやmacOSなどとファイルをやり取りするのが簡単になる。また、出先でスマートフォンなどから同期したファイルを見ることもできる。

経緯

UbuntuでArduino IDEを試すため、最新版Ubuntu 18.04 LTSへアップグレードした。Arduino IDEの動作も確認した。

今度MacbookまたはWindows版で開発したArduinoプログラムの同期方法を考えた。

Macbook同士はiCloud便利だが、Windows環境でも動くのは、DropboxとGoogle Driveになる。

Ubuntuでは、Google Driveは不安定と言う記事が多数見受けるので、Dropboxにチョイス。

GUI で入れてみる

Ubuntuデスクトップのメニューから、「ソフトウェア」というアプリケーションがあり、そこからDropboxを検索し、インストールができた。

CUI で入れる

手持ちの3台は「ソフトウェア」というアプリケーションからDropboxを見つけ、インストールができた。もう一台はどうしても見つからない、どういうことだね?

Ubuntuのレポジトリで、「nautilus-dropbox」パッケージが提供されてる。

以下のリンクをクリックしてインストールできる。

 

以下のコマンドでインストールすることもできる。

ると、以下のダイアログが表示され、「OK」をクリックすると、Dropboxデーモンプログラムがダウンロード、インストールされる。

デーモンプログラムのインストールが完了すると、ブラウザが開られて、既にアカウントを持っているなら、メールアドレスとパスワードを入力し、Ubuntuをリンクできる。ただし、リンクすると同期済みのファイルがUbuntuにもコピーされるので、ファイルシステムの空き容量が十分にあることを確認してから実行する。

アカウントを持っていないなら、「アカウントを作成」をクリックして登録してから、Ubuntuをリンクできる。

参考

  1. https://www.imuza.com/entry/2018/02/22/212055
  2. https://linuxfan.info/dropbox-on-ubuntu

Ubuntu upgrade

経緯

今までArduino IDEのMacbookまたはWindows版を利用している。ESP8266/WeMosに限って、よくクラッシュする。

同じシリアルCH340を使う、安価のUno、Nanoは普通に使えるので、シリアルドライバーではなく、WeMos、ESP8266に関する何か異変があると思う。

頻繁にクラッシュするから仕事進まないと困る。Ubuntuで安定するかを試すことに。

しかし、手持ちのいくつUbuntuは一年くらい放置して、コンパイルできない問題発生。最新版Ubuntu 18.04 LTSへアップグレードを試み。

結論からいうと、問題が残りがあるもので、アップグレードは成功。

16.04 LTSから18.04 LTS

こちらは、順調にUbuntu 18.04 LTSにアップできた。

今回の件で、安定した環境を求めるなら、Ubuntu LTSが自分に向いてると思った。

17.04から18.04 LTS

こちらは、直接18.04 LTSにアップできないと言われて。新規インストールが勧められて・・・。

もう一つの方法は、一旦17.10へアップして、それから18.04 LTSへアップする方法。時間がかかりそうだが、必要な操作が少ない、パソコンが働くので、人間にとっては楽。結局この方法で進み、うまくできた。

apt-get update が404になる問題が発生、参考1で解決。

参考

  1. https://qiita.com/nyanchu/items/a8cfc5cf627d70d798bf — Ubuntu で apt-get update が404になる問題

 

 

 

Raspberry Pi (9) Waveshare 2.13inch e-Paper HAT

経緯

低消耗電力、停電でも表示する e-Paperが興味があり、そのRaspberry Pi HATを手に入れた。

ハードウェア

このRaspberry Pi Waveshare 2.13inch e-Paper HATは、Raspberry Pi 2/3/Zero対応する。

ソフトウェア

wiringpiのインストール

root@raspberrypizero004:/home/pi# pip3 search wiringpi
wiringpi (2.46.0) – A python interface to WiringPi 2.0 library which allows for easily
interfacing with the GPIO pins of the Raspberry Pi. Also supports i2c and
SPI.
wiringpi2 (2.32.3) – A python interface to WiringPi 2.0 library which allows for easily
interfacing with the GPIO pins of the Raspberry Pi. Also supports i2c
and SPI
root@raspberrypizero004:/home/pi# pip3 install wiringpi
root@raspberrypizero004:/home/pi# gpio -v
gpio version: 2.46
Copyright (c) 2012-2018 Gordon Henderson
This is free software with ABSOLUTELY NO WARRANTY.
For details type: gpio -warranty
動作確認する
Raspberry Pi Details:
Type: Pi Zero-W, Revision: 01, Memory: 512MB, Maker: Sony
* Device tree is enabled.
*–> Raspberry Pi Zero W Rev 1.1
* This Raspberry Pi supports user-level GPIO access.
root@raspberrypizero004:/home/pi#

Python関連のインストール

28 sudo apt-get install python-dev
29 sudo apt install python-rpi.gpio
30 sudo apt install python-smbus
31 sudo apt install python-serial
32 sudo apt install python-spidev
33 sudo apt install python-imaging
34 sudo raspi-config
35 sudo vi /etc/modules
下記の2行を追加する
i2c-bcm2708
i2c-dev

検証

demo codeのダウンロードと解凍
36 wget https://www.waveshare.com/w/upload/3/3f/2.13inch-e-paper-hat-b-code.7z
39 sudo apt install p7zip-full
62 mkdir 2.13inch-e-paper-hat-b-code
63 cd 2.13inch-e-paper-hat-b-code/
64 7z x ../2.13inch-e-paper-hat-b-code.7z
65 ls

pythonで試す

66 python raspberrypi/python/main.py
71 cd raspberrypi/
73 cd python/
75 python main.py

wiringpiで試す

76 cd ..
79 cd wiringpi/
81 make
85 ./epd

 

参考

  1. http://www.waveshare.net/wiki/2.13inch_e-Paper_HAT_(B)
  2. https://relativelayout.hatenablog.com/entry/2018/02/17/234348 — Waveshare 2.13inch e-Paper HAT (B)を買って3色電子ペーパーを楽しむ(環境構築編)

Raspberry Pi (6) USB to PC 2nd

USB を通して、 PCに接続する 2nd実験。

USBアダプターの購入

RaspberryのUSB Connector Expansion Boardが安く売っているので、導入することに。

「ラズパイzero w usb」の画像検索結果

接続実験

SB を通して、 PCに接続する 実験は、以前できたことで、ハードウェア繋ぐだけで動くはずだが、苦労した。

ラズパイZeroまたはZero WをUSBケーブル1本でPCやMacに接続する方法は、いつの間にうまくいかなくなった。

つまり、ssh pi@raspberrypi.local がうまく繋がらない。

Mac OSX でWeb開発環境を構築する

Mac OSX のローカル環境でApache, MySQL, PHP 環境が試したくなり、VMなどいろいろ便利なパッケージがありそうだが、一番基本な方法で揃いたい。

Apache

ApacheもMacOS X 内蔵されたので、そのまま利用
$ # Stop
$ sudo apachectl start
$ # Start
$ sudo apachectl start
Apacheの動作確認
sh-3.2# httpd -v
Server version: Apache/2.4.16 (Unix)
Server built:   Aug 22 2015 16:51:57
 ブラウザで下記のURLで動作確認。

http://localhost/

Web Rootは /Library/WebServer/Documents/ にある。

PHP

php有効にする

PHPもMacOS X 内蔵されたので、そのまま利用。
まず、httpd.conf に phpモジュール行のコメントを外す
# LoadModule php5_module libexec/apache2/libphp5.so
(最新版のMacOSは、php7_moduleになる)
$ sudo vi /private/etc/apache2/httpd.conf
それからApacheを再起動
$ sudo apachectl restart

なう、/privateは隠しフォルダのため、Finderで探して修正する場合、以下のキーを同時に押下し、隠しフォルダ・隠しファイルが表示するように。

上記のショートカットキーで表示・非表示を切り替えられる。

info.phpでphp動作確認

php動作確認を確認するため、下記のパスに、info.phpファイルを作成する。

cd /Library/WebServer/Documents

Filename: info.php

ブラウザで下記のURLで動作確認。
http://localhost/info.php

 

MySQL

MySQL のインストール方法は複数あり、ここではbrew でインストールと本家からダウンロード してインストール方法を紹介

brew でインストール

 

OSXにHomebrewをインストールする

ローカルの環境(Mac)に MySQL をインストール

$ brew install mysql
$ mysql.server start
Starting MySQL
. SUCCESS!

MySQLを起動する。もしmacOSが古い場合、下記のエラーが発生することがある。

mysql: macOS Sierra or newer is required.
Error: An unsatisfied requirement failed this build.
その場合、対応する古いMySQLバージョンをインストールする。
$ brew install mysql@5.6
$ /usr/local/opt/mysql@5.6/bin/mysql –version
/usr/local/opt/mysql@5.6/bin/mysql Ver 14.14 Distrib 5.6.42, for osx10.11 (x86_64) using EditLine wrapper
$ brew services start mysql@5.6
==> Successfully started mysql@5.6 (label: homebrew.mxcl.mysql@5.6)

本家からダウンロードしてインストール

MySQLはMacOS Xにないので、本家からダウンロード
ダウンロードしたファイルをインストールする。

MySQLの動作確認

MySQL AdminerはWebブラウザから使用するPHP製データベースクライアント。インストールは公式サイトからダウンロードして、FTPでPHPファイル置くだけですから手軽。
公式サイト https://www.adminer.org/
homebreawでMySQLインストールしたけど、繋がらない問題が発生、これはmysql.sockの場所の認識が違うため、シンポーリンクをつける。
sh-3.2# cd /var
sh-3.2# mkdir mysql
sh-3.2# chmod 755 mysql
sh-3.2# cd mysql/
sh-3.2# ln -s /tmp/mysql.sock mysql.sock

WordPressインストール

wp-cli install

$ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 4487k 100 4487k 0 0 956k 0 0:00:04 0:00:04 –:–:– 911k

$ chmod +x wp-cli.phar

$ mv wp-cli.phar /usr/local/bin/wp

$ wp –info
OS: Darwin 17.7.0 Darwin Kernel Version 17.7.0: Thu Jun 21 22:53:14 PDT 2018; root:xnu-4570.71.2~1/RELEASE_X86_64 x86_64
Shell: /bin/bash
PHP binary: /usr/bin/php
PHP version: 7.1.16
php.ini used:
WP-CLI root dir: phar://wp-cli.phar
WP-CLI vendor dir: phar://wp-cli.phar/vendor
WP_CLI phar path: /Users/chen
WP-CLI packages dir:
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 1.5.1

WordPressインストール

sh-3.2# cd /Library/WebServer/Documents
sh-3.2# wp core download –locale=ja –path=wordpress –allow-root
Creating directory ‘/Library/WebServer/Documents/wordpress/’.
Downloading WordPress 4.9.7 (ja)…
md5 hash verified: b4aea3d0f3353ff1bb5ccdb246732574
Success: WordPress downloaded.
sh-3.2#
設定ファイル生成

sh-3.2# wp core config –dbname=wp_test –dbuser=root –dbpass= –dbhost=localhost –allow-root –path=wordpress

Success: Generated ‘wp-config.php’ file.

データベース作成

sh-3.2# mysqladmin -u root create wp_test
sh-3.2#

WordPressセットアップ

http://localhost/wordpress/

 

参考資料

PIXEL (4) Japanese Input

Raspberry Pi 設定ツールで日本語化する

ラズベリーパイメニューからPreferences → Raspberry Pi Configurationの順に選択します。
2017073001
LocalisationタブのSet Locale…ボタンを押します。
Language:にja (Japanese)を選択します。
Timezone:をJapanに設定します。
Keyboard:のSet Keyboard…を押して、CountryにJapan、Variantはご使用しているキーボードの種類を選択します。分からない場合はとりあえずJapaneseで大丈夫だと思います。
WiFi Country:のSet WiFi Country…を押してCountry:にJP Japanを設定します。
最後にRaspberry Pi ConfigurationのOKを押すと再起動するか尋ねられるのでYesボタンを押して再起動します。

コマンドで日本語化する

ターミナルを開いて言語とタイムゾーンを設定します。

[*] ja_JP.UTF-8 UTF-8 を選択

アジア / Tokyo を選択

日本語関連パッケージをインストールします。
いったんログアウトして、再度ログイン(ユーザー名 : pi、パスワード : raspberry)するとデスクトップは日本語になります。

日本語入力

ラズベリーパイで日本語入力を行うための方法はいくつかあります

  1. fcitx-mozc
  2. scim-anthy

fcitx-mozc

今回は、Google日本語入力のオープンソース版である「Mozc」を使った方法を試してみましょう。

  • 日本語入力:
    sudo apt-get install fcitx-mozc --install-recommends -y
    再起動後、CTRL+スペースで日本語入力できる。。ハズ..
  • ラズパイメニュー > 設定 > Fcitxの設定 で、入力メソッドのとこで一番上が、キーボード – 英語(UK) だったら、削除する(Mozcだけ)か、US配列キーの場合、”英語(US)”にする。
  • フォント:
    sudo apt-get install fonts-ipafont fonts-ipaexfont fonts-takao

scim-anthy

日本語が入力できるようにscim-anthyをインストールします

Raspberry Pi (7) OLED status

Raspberry Pi ZeroにOLED をつけて、statusを表示する。
Raspberry Pi Zeroは、ネットワークi/fがないため、入手して大分時間がたちまして、棚上げ状態が続く。
USB WiFiを追加し、さらにOLEDでipアドレスなどのstatusが表示できれば、使い道が増えると考えた。
試行錯誤の末、下記のものができた。

  1. オスのUSB追加で、PCに直挿入
    (2は共存できないため、不要!)
  2. USB WiFiでネットワークに接続
  3. シリアル接続ための端子を用意
  4. OLEDでstatusの表示
  5. BMP280で環境温度と気圧を収集

開発環境構築

まず、オスのUSB追加で、PCに直挿入できるように。

(参考: Raspberry Pi (8) USB to PC

PCに直挿入、sshで操作らくらくと調子がいいだけと、
しかしここで、MicroUSBにWiFiドングリをさして見たら、認識しない!共存できないと発見した。

仕方なくシリアル接続ための端子を追加した。

OLEDでstatusの表示

(TBD)

BMP280で環境温度と気圧を収集

(TBD)

Raspberry Pi (5) USB to PC

Raspberry Pi Zero はWiFiもない、LANもないから、使いづらい。

USBで直接PCに刺して使えるならいいと思い、やってみた。

ハードウェア

ついてに、OLEDも繋げて、何かメッセージ見るとき便利。

完成した様子。

ソフトウェア

SDカードにRaspbianを書きこむ

いつもの方法

bootボリューム内の一部ファイルの修正

編集するファイルは3つ。

config.txt

次のコマンドでファイルを開く。

最終行に次の内容を追加。

 

cmdline.txt

次のコマンドでファイルを開く。

rootwaitquietの間にmodules-load=dwc2,g_etherを挿入。

編集後の内容は次のとおり。

 

ssh

現行のRaspbianは,デフォルトでsshによるログインが無効になっていて,モニタやキーボードを接続してローカルからログインする必要。でも,ファイル/boot/sshが存在すると,初回起動時にsshが有効になる。

以上の作業が終わったらMacからSDカードをアンマウントし,Zeroに挿入。

早速Macに繋いて動作確認。

 

Macのターミナルを起動し,次のコマンドでZeroにログインする。初期パスワードは”raspberry”。

ログインできたら、あとはLinuxとして自由に利用できる。

ネットワークに繋ぐには、Pi対応USB WiFi  ドングルを利用する。

参考

  1. http://blue-black.ink/?p=3674

Digital Library for Private use