趣味の電子工作などの記録。時にLinuxへ行ったり、ガジェットに浮気したりするので、なかなかまとまらない。※サイト移転しました(tomono.eleho.net ⇒ tomono.tokyo)
RSS icon
  • NanoPi NEO2のNASキットを動かしてみました

    投稿日 2017年 11月 28日 5個のコメント

    秋月で NanoPi NEO/NEO2 用のNASキットが売っていたので、買ってみました。

    秋月の説明書きにはヒートシンクが同梱されているとは書いてない(写真には写っていますが・・・)ので、思わずヒートシンクも余計に買ってしまいましたが、これから買う方はキットにヒートシンクが同梱されているので気をつけて下さい。

    このNASキット以外に、

    • NanoPi-NEO2 (または NanoPi-NEO)
    • 2.5インチのHDDまたはSDD(まずは余り物の160GBをつけてみました)
    • CR2032コイン型リチウム電池
    • 起動用のMicroSDカード(手持ちの16GBを使いました)
    • 12VのACアダプタ(秋月で標準的なDCプラグがついているもの)

    の準備が必要です。

    組み立てにあたっては、

    • ハンダゴテ一式(NanoPi-NEO2の端子はハンダ付けが必要)
    • プラスドライバ(たぶん+1のもの)

    も必要です。

    とりあえず、端子をハンダ付けしました。ランド径が小さいので、ハンダ付けしにくいです。

    この状態で、別のNanoPi-NEO2 から持ってきた MicroSD カードを挿して Ubuntu-Core で起動して ssh でログイン、適当に /dev/sda1 を mount してやると、中身を見ることができましたので、動作は問題ないようです。

    ヒートシンクを付けてみました。

    この後、Official ROMのイメージを

    https://www.mediafire.com/folder/ah4i6w029912b/NanoPi-NEO2

    の下の Official ROMs から nanopi-neo2_debian-nas-jessie_4.11.2_20171103.img.zip をダウンロードして、これを展開、USBイメージライタでMicroSDに書き込んで電源投入します。

    ブラウザで、 http://friendlyelec.local/ にアクセスすると、

    として画面が出ました。

    ユーザー名: admin
    パスワード: openmediavault

    でログインすることができました。

    とりあえず、

    • Web管理者パスワードの設定
    • タイムゾーンの設定、NTPの有効化
    • ホスト名を NanoPi-NAS に変更
    • アップデートの確認&インストール
    • ディスクのワイプ、ファイルシステム作成
    • ユーザーの作成

    をしてみました。

    この後、プラグインを見てみると、「openmediavault-flashmemory」というのがあり、これを使うと MicroSD への書き込みを減らせるようです。・・・が、インストールを試みたところエラーになりました・・・。

    あと、デフォルトで root での ssh ログインが有効になっています

    $ ssh root@nanopi-nas.local (変更していない場合はfriendlyelec.local)
    root@nanopi-nas.local’s password: (デフォルトパスワードは fa )
    root@nanopi-nas:~# passwd
    Enter new UNIX password:
    Retype new UNIX password:
    passwd: password updated successfully
    root@nanopi-nas:~# passwd pi
    Enter new UNIX password:
    Retype new UNIX password:
    passwd: password updated successfully
    root@nanopi-nas:~# passwd fa
    Enter new UNIX password:
    Retype new UNIX password:
    passwd: password updated successfully
    root@nanopi-nas:~#

    として、ログインパスワードは変更しておく必要があります。(もしくは、SSHを無効化したほうがよいかも)

    ・・・と思ったのですが、/etc/ssh/sshd_config の AllowGroups の項目には root と ssh しかいないので、実際にログインできるのは root だけのようです。


  • NanoPi NEO2でタイムラプス撮影

    投稿日 2017年 11月 27日 コメントはありません

    部屋を掃除していたらELECOMのWebカメラが出てきました。LinuxMintのマシンに挿してみたところ uvc カメラとして認識するようでしたので、NanoPi NEO2に挿してみたらこちらも認識しました。

    なので、TimeLapse撮影ができないか、試してみました。
    ググると Ubuntu でTimeLapseをやっている方は結構いるようで、基本的にはそちらに倣ってやってみました。

    基本、NanoPi NEO2に合わせている以外はこちらのページのパクリです。

    1.カメラ画像の連続キャプチャ

    1枚単位での撮影には fswebcam を使うのが簡単なようです。

    でインストールできます。で、連続撮影する場合には、1枚キャプチャするシェルスクリプトを書いて、cron で所定の時間毎に1枚キャプチャ、というのが簡単なようなのですが、NanoPi-NEO2のUbuntu-coreではcronはユーザーに開放されてないっぽいです。crontab -eとしても編集できないですし、ググってもシェルスクリプト内でループしてsleepで時間待ちせよ、みたいなことが書いてあります。

    結局、以下のようなシェルスクリプトで連続撮影します。ファイル名は TimeLapse.sh として、ホームディレクトリの下に CaptureImage というディレクトリを作って、そこに置きました。

    作成したスクリプトに実行権限を付けてやります。

    で、実行すると、ザクザクと画像が溜まっていきます。

    2.キャプチャした静止画の引取の準備

    動画への変換はホスト側でやります。

    ホスト側で

    として、sshfsでnanopi側のホームディレクトリをローカルディレクトリにマウントして、これで引き取ります。
    (今考えれば、sshfsでマウントしなくても scp でも良かった・・・)

    3.画像の変換の準備

    ローカル側でffmpegで変換しますが、motionをインストールするほうが楽だという情報があったので、そうしました。

    4.画像の引取と変換

    以下の手順で画像の引取と変換を行います。

    これで TimeLapse ができましたが、静止画の保存サイズが大きいようです。
    1分間で3〜4MB出力しているようなので、1週間で40GBくらいになってしまいます。ちょっと要対策ですね。


  • NanoPi NEO2のデバッグシリアルに苦労した話

    投稿日 2017年 11月 8日 コメントはありません

    Gigabit Ethernet環境でtcpdumpをひたすら放置で動かしておきたくて、NanoPi NEO2に手を出してました。

    ファイルシステムのイメージファイルは違いますが、NanoPi NEOと同じ手順で環境構築できて、一度はシリアルコンソールが動いているUART0(デバッグシリアル)も動いていたのですが、しばらくシリアルコンソール無しで運用した後、再びシリアルコンソール経由で操作をしたくなった時に苦労しました。

    公式サイトにある端子説明がこちらで、実物を半田面から写真を取ったのが以下です。

    わかりますでしょうか??

    実は写真に写っているNanoPi-NEO2の実物のデバッグシリアルの端子表記は間違っているので、シルク印刷の端子表記を信用すると動かない、という罠に陥ります。本当は、写真の上から、GND、5V、TX、RXの順で逆順になっています。

    ・・・ということで、最初に動かした時は公式サイトの端子説明をみて配線したので無事動いたのですが、今日改めて動かそうとした時には基板のシルク印刷をみて動かそうとしたので、動かなかった、というオチでした。悩んだ数時間を返してくれ、という感じです。


  • Pine A64+ 2GBにarmbianをインストール

    投稿日 2017年 7月 26日 2個のコメント

    Pine A64+ であるが公式サイトのUbuntu Mateはアップデートを行っていくと /boot パーティションの容量不足でアップデートができなくなってしまいました。これを機会に、armbianを試してみました。(ちなみに、以前の記事では1GB版でしたが、その後、秋月で2GB版が出ていたので買ってしまいました・・・)

    1.イメージを書き込み

    Ubuntu Desktopをこちらから bit torrent 経由でダウンロードして、ファイル展開、Linux Mint のUSBイメージライタで16GBのMicroSDカードに書き込みます。

    2.起動

    HDMIで液晶モニタに接続、USBでキーボードとマウスを接続してMicroUSB経由で電源供給してしばらくすると、CLIのログイン画面が表示されます。ここで、ユーザー名:root、パスワード:1234でログインすると、rootのパスワード変更が求められますので、パスワード設定を行います。引き続き、一般ユーザーの作成が求められますので、ユーザー名とパスワードとその他のログイン情報(空欄のままで大丈夫)を設定していきます。設定が終わると、GUIが起動します。

    3.アップデートの適用

    DHCPサーバーのある環境なので、何もしなくてもネットワークに接続できるようになっています。termnialを開いて、

    でアップデートをすべて適用します。

    4.日本語サポートの追加

    左上の「Application」から「Setting」を選択、その下の「Language Support」を選択すると、「The language support is not installed competely」と表示されるので「Install」をクリックして不足部分のインストールを行います。この処理はかなり時間がかかります。途中、パスワード入力を求められるので、適宜入力してやります。
    インストール直後だとサポート言語はEnglishのみなので、下の方の「Install/Remove Languages…」をクリックして、Japaneseにチェックを入れて「Apply」をクリック。
    再起動してログオンし直すと、メニューなどが日本語化されます。

    5.時計表示の修正

    時計表示を右クリックしてプロパティを選択、タイムゾーンが空白になっているので、Japanに修正すると時刻表示が正しくなります。

    6.ArmbianのConfig

    デスクトップ上のConfigのアイコンをダブルクリックすると、uxtermが開いてその中でUbuntu16.04のconfiguration utilityが起動します。とりあえず必要な設定項目はないようですが、ここに設定があることを忘れないために備忘録としてメモしておきます。

    7.ToDo

    残っていること

    • 解像度が1280×720になっているので、1920×1080に変更したい。
    • 日本語入力の設定

  • 秋月のLPC11U35マイコンボードを動かしてみた

    投稿日 2017年 7月 10日 コメントはありません

    久しぶりに秋月へ行ったら、「USBメモリにファイルを書き込むのとほぼ同様の手軽さでプログラムを書き込むことができます」という触れ込みのマイコンボードが安く売っていたので、買ってみました。

    で、動かしてみるべく、Linuxマシン(環境はいつものLinux Mintです)へ接続すると、確かにマスストレージデバイスとして認識します。で、秋月のWebサイトにある動作確認用ファームウェアを書き込んで、リセットしてみても、再びマスストレージデバイスとして認識されて、LEDが点滅する気配がありません。

    mbedとしても動作する、というのでサンプルプログラムを作って同様に書き込んでみてもサッパリです。linuxではドラッグアンドドロップでの書き込みはうまく行かないのかと思って、コマンドラインで cp コマンドでコピーしてみてもダメです。

    で、ぐぐってみたら、どうやら linux ではそもそもファイル書き込みではうまくいかないようで、こちらの情報によると先頭の4ブロック(2キロバイト?)を削ってddで書き込むとうまく行くようです。

    ただ、デバイスファイルなんていろんな要因で変わってしまうので、毎回やるのは面倒ですし、事故のもとなので、pythonのスクリプト化しました。

    lsblkコマンドで見た時に、転送方法が usb で、モデルが’LPC1XXX IFLASH  ‘となっているデバイスファイルを探して、そのデバイスファイルをアンマウントして、ddコマンドで書き込むだけです。スクリプトファイル⇒mbedにlinuxから書き込むためのスクリプト

    ルート権限が必要なのは変わらないので、sudo 付きで python スクリプトを実行します。

    みたいな感じで使います。(途中の umount とか dd コマンドの行はこのスクリプトの処理内容を表示しているだけで、書き込みに必要な操作は最初の1行目だけです)

     


  • Pine64を買ってみた

    投稿日 2017年 5月 21日 コメントはありません

    秋月に Pine64 A+ 1GB が入っていたので、買ってみました。価格はRaspberry Pi 3よりも安い2,980円。といっても、Pine64 A+はBluetoohもWiFiもないのでちょっと価格差的には微妙かもしれない。一緒に長さ15cmのmicroUSBケーブルとHDMIケーブルを購入。

    早速、秋月のページにある公式サイトへのリンクからUbuntu Mateのイメージをダウンロードして、ddコマンドで適当な8GBのMicroUSBに書き込んでMicroUSBコネクタに挿入、HDMIケーブルでディスプレイに接続、マウスとキーボードを接続、イーサケーブルをルータに接続して、MicroUSBコネクタを挿して電源投入。・・・が、電源LEDは点くものの、うんともすんとも言わない。
    MicroUSBケーブルを1.5mの長いものから購入した15cmの短いものに変更したら起動した。結構電流を食うので電圧降下しているのかもしれない。

    起動すると、グラフィカルログイン画面になるので、ユーザー名: ubuntu 、パスワード: ubuntu でログインする。当然かもしれないけど、英語モードで起動。ターミナルを開いたりしてみたが結構軽快に動くようである・・・が、やっぱりストレージがMicroSDなのでストレージアクセスを伴うものはちょっともたつく。

    とりあえず、アップデートをかけてみる。

    を試してみるが、何かパッケージの不整合を起こしているみたいで、追加でコマンドが要る模様。指示に従って、以下の通り試してみた。

    でとりあえず一通りはアップデートができた模様。

    System ⇒ Preferences ⇒ Hardware ⇒ Keyboard ⇒ Layout で Add を押して、キーボードレイアウトで Country で Japan を選んで Add を押す。レイアウトの順位を Japanese を一番上にして Close を押したら、キーボードレイアウトが日本語になった。

    System ⇒ Preferences ⇒ Personal ⇒ Language Support を選択すると、The language support is not installed completely と出るので、Install を押す。パスワードが聞かれるので入力すると、language support をインストールし始めた。しばらく待つと、インストール完了。
    この状態だと英語のみなので、 Install/Remove Languages … を押して、Japaneseにチェックを入れてApplyを押すと、フォントやfcitx、libreofficeのモジュールなどをダウンロード&インストールし始めた。
    完了したら、Language for menus and windows のリストの一番下にある日本語を一番上にドラッグ&ドロップ、Keyboard input method system を fcitx に設定して、Apply System-Wide をクリック、再度パスワードを聞かれるので入力。
    次に Regional Formats タブを選んでこちらも日本語を選択して Apply System-Wide をクリック。完了したら Close を押して、一旦ログアウトしてログインし直すと、日本語化が完了している。

    これだけだと、日本語入力で漢字キーが使えなかった。キーボードの選択で言語別で日本語を選択しておく必要があったようで、設定を修正。右上のキーボードのアイコンを右クリックして「設定」を選択すると、キーボードが英語になっているので、「+」を押して日本語キーボードを追加、順番を一番上に持ってくる・・・が、日本語入力はできない。

    とりあえず、

    で手慣れた Synaptic をインストール。

    Synaptic パッケージマネージャから ibus-anthy をインストールして、システム⇒設定⇒ユーザ向け⇒言語サポートで、キーボード入力に使うシステムとして IBus を選択して再起動後、右上のキーボードアイコンから日本語−Anthyを選択したところ、日本語入力ができるようになった。

    とりあえず、使えるようになった。


  • WordPressでログインできなくなった!

    投稿日 2017年 2月 27日 コメントはありません

    WordPressでログイン認証のセキュリティ強化にCAPTCHAを入れようと、プラグインから「SI CAPTCHA Anti-Spam」をインストールしてみました。

    設定でログイン画面にキャプチャを入れて、ログアウトしてログインしなおしたらCAPTCHAが表示されていません(!)。

    しかも、ログインできない!!

    で、調べてみると、「SI CAPTCHA Anti-Spam」には、GDというライブラリが必要なので、

    としてインストールを試みるも、さくらのVPSにインストールしたPHPのバージョンが合わずphp-gdがインストールができません。

    で、四苦八苦した挙句の解決方法は、「プラグインディレクトリの名前を一時的に変更する」という方法でした。

    /home/(ユーザー名)/public_html/wordpress/wp-contents/plugins にカレントディレクトリを変更して、プラグインの名前の付いたディレクトリの名前を一時的に変更してやると、無事にログインできました。

    ログインしたら、ディレクトリの名前を元に戻して、プラグインを停止・削除しました。

    いや、焦りました・・(^^;


  • 普通にはadbで認識できないAndroid機を認識させる

    投稿日 2016年 9月 10日 コメントはありません

    通常のAndroid機は /etc/udev/rules-d/51-android.rules にベンダIDを追加してやるとadbで操作できるようになるのですが、coviaのFLEAZ F4s/F4s+は認識することができません。いろいろ試してみたところ、わかってきたことをメモしておきます。環境は LinuxMint18 MATE edition 64bit です。

    まずはUSBのデバイスIDを調べます。(必要なもの以外は結果から削除しています)

    BroadcomのチップのベンダIDそのままのようです。(これはF4sのもの。F4s+はデバイスIDはe681になるようです)
    とりあえず、/etc/udev/rules-d/51-android.rules にベンダIDを記載して再読み込みさせてみます。

    この状態で、USBを抜き差ししてから adb コマンドを叩いてみても、

    となって、デバイスが見つかりません。
    いろいろググると、~/.android/adb_usb.ini にベンダIDを書くとよい、というような記載をいくつか見つけたので試してみます。

    状況が変わりました。この状態で TCP/IP 接続でデバッグする設定にしてみます。

    パーミッションで蹴られてしまいました。ルート権限で試してみます。

    端末上にデバッグ接続可否のダイアログが出ていたので、許可してみます。

    となって無事にインストールできました。

    改めて /etc/udev/rules-d/51-android.rules を削除してやってみました。
    どうも、/etc/udev/rules-d/51-android.rules は必要ないようです。
    一般ユーザー権限では、

    となってパーミッションエラーになりますが、通常の Android機はルート権限で adb server を起動すると認識できるようです。

    さらに、今回の covia FLEAZ F4s/F4s+ のようになにもしないと認識しない機種でも、 ~/.android/adb_usb.ini にベンダIDを書いてやれば認識できるようです。

    ここで F4s+ を外して F4s を接続してみます。

    となり、無事に認識しました。


  • AndroidタブレットをLinuxのサブディスプレイにする

    投稿日 2016年 8月 9日 コメントはありません

    外出時にノートPCで作業していると、1366×768の画面ではどうしても狭く感じます。・・・で、ぐぐってみたところ、AndroidをLinuxのサブディスプレイにする方法がある模様。どうやらVNCを使うようなので、やってみました。

    環境は以下の通り。

    • サーバ側はLinutMint18 x64
    • クライアント側はNexus7(2012) + Android4.4.4

    です。

    作業にあたってはこちらのサイトを参考にさせていただきました。

    1.Linux側(サーバ側)

    Synapticでvnc4serverをインストールします。vnc4serverを使うのはSynapticにあるからです。

    インストールしたらVNCサーバを起動します。

    起動したら接続用のパスワードを設定します。パスワードは8文字までで、8文字を超える長さの場合には最初の8文字が使われるようです。

    2.クライアント側(Android側)

    クライアント側はGoogle PlayストアでVNC viewerをインストール。

    起動したら、接続先として「Linux側のIPアドレス:5901」、接続名を適当な名前を設定します。接続するとパスワードを聞かれるので、vncserverを起動する際に設定したパスワードを入力します。ポート番号の5901は5900に:1の1を足して5901となっています。

    3.x2vncのインストール

    Synapticでx2vncをインストールする。インストールしたら以下のようにして起動する。

    として起動します。この状態でマウスは行き来できるようになっています。
    が、ウインドウは行き来できません。ウインドウマネージャがいないような雰囲気です。しかし、サブディスプレイ側(Android側)ではコンソールウインドウが開いているので、そこでfirefoxを起動するとサブディスプレイ側にブラウザを開くことができました。とりあえずWebを参考にしながら何か作業したり、viやxedで設定ファイルを編集したりする分には十分です。

    ここで一旦終了させます。

    VNCのパスワードを変更します。

    4.まとめ

    インストールが完了したら、以下の手順で起動できます。

    画面サイズはNexus7(2012)の画面サイズです。Android側でフルスクリーンにしておけばちょうどよくなります。

    IMG_20160809

    サブディスプレイとして使っている様子はこんな感じです。USBケーブルは電源供給専用で、接続はモバイルルータ経由です。


  • miredoでIPv6を使ってみる

    投稿日 2016年 7月 24日 コメントはありません

    NATではないIPアドレスが欲しいのだけど、V4は無理・・・なので、トンネル越しのIPv6を試してみた。

    といっても、LinuxMint18では非常に簡単で、SynapticでToredoのLinux実装らしいmiredoをインストールすると、ifconfigでteredoというデバイスが増えてIPv6が使えるようだ。

    ・・・が、再起動するといなくなっている。

    $ sudo service miredo start

    とすると復活するのだが。

    調べてみると、起動中に “teredo-debian.remlab.net” というホスト名を解決できないために起きる既知の問題の模様。