趣味の電子工作などの記録。時にLinuxへ行ったり、ガジェットに浮気したりするので、なかなかまとまらない。
RSS icon
  • Pine A64+ 2GBにarmbianをインストール

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

    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を開いて、

    $ sudo apt-get update
    $ sudo apt-get install

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

    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 スクリプトを実行します。

    $ sudo python ./write_mbed.py firmware.bin 
    mbed device is /dev/sdc
    umount /dev/sdc
    dd if=firmware.bin of=/dev/sdc seek=4
    16+1 レコード入力
    16+1 レコード出力
    8456 bytes (8.5 kB, 8.3 KiB) copied, 0.387457 s, 21.8 kB/s

    みたいな感じで使います。(途中の 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なのでストレージアクセスを伴うものはちょっともたつく。

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

    $ sudo apt-get update
    $ sudo apt-get upgrade

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

    $ sudo dpkg --configure -a
    $ sudo apt-get install -f
    $ sudo apt-get upgrade

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

    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 を押して、一旦ログアウトしてログインし直すと、日本語化が完了している。

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

    とりあえず、

    $ sudo apt-get install synaptic

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

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

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


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

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

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

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

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

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

    $ sudo yum -y install gd php-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を調べます。(必要なもの以外は結果から削除しています)

    $ lsusb
    Bus 001 Device 016: ID 0a5c:e688 Broadcom Corp.

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

    $ cat /etc/udev/rules.d/51-android.rules 
    SUBSYSTEM=="usb", ATTR{idVendor}=="05ac", MODE="0666", GROUP="plugdev"
    $ sudo udevadm control -R

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

    $ adb devices
    List of devices attached

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

    $ cat .android/adb_usb.ini 
    0x0a5c
    
    $ sudo service udev restart
    $ adb kill-server
    $ adb devices
    * daemon not running. starting it now on port 5037 *
    * daemon started successfully *
    List of devices attached 
    ???????????? no permissions

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

    $ adb tcpip 5555
    error: insufficient permissions for device

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

    $ sudo adb kill-server
    $ sudo adb start-server
    * daemon not running. starting it now on port 5037 *
    * daemon started successfully *
    $ adb devices
    List of devices attached 
    F4Sxxxxxxxxx unauthorized
    
    $ sudo adb tcpip 5555
    error: device unauthorized. Please check the confirmation dialog on your device.

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

    $ adb tcpip 5555
    restarting in TCP mode port: 5555
    $ adb install xxxxxxx.apk
    2460 KB/s (261419 bytes in 0.103s)
     pkg: /data/local/tmp/xxxxxxx.apk
    Success

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

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

    $ adb devices
    * daemon not running. starting it now on port 5037 *
    * daemon started successfully *
    List of devices attached 
    ???????????? no permissions

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

    $ sudo adb kill-server
    $ sudo adb start-server
    * daemon not running. starting it now on port 5037 *
    * daemon started successfully *
    $ sudo adb tcpip 5555
    restarting in TCP mode port: 5555

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

    $ echo "0x0a5c" > ~/.android/adb_usb.ini
    $ cat ~/.android/adb_usb.ini 
    0x0a5c
    B ~ $ adb devices
    List of devices attached
    
    $ sudo adb kill-server
    $ sudo adb start-server
    * daemon not running. starting it now on port 5037 *
    * daemon started successfully *
    $ adb devices
    List of devices attached 
    F4Pxxxxxxxxx device
    
    $ sudo adb tcpip 5555
    restarting in TCP mode port: 5555

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

    $ adb devices
    List of devices attached 
    F4Sxxxxxxxxx device
    
    $ sudo adb tcpip 5555
    restarting in TCP mode port: 5555

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


  • 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サーバを起動します。

    $ vncserver :1
    You will require a password to access your desktops.
    Password: ********
    Verify: ********

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

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

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

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

    3.x2vncのインストール

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

    $ x2vnc -shared -west localhost:1
    x2vnc: VNC server supports protocol version 3.8 (viewer 3.3)
    Password: ********
    
    x2vnc: VNC authentication succeeded
    x2vnc: Desktop name "(ホスト名):1 (ユーザー名)"
    x2vnc: Connected to VNC server, using protocol version 3.3
    x2vnc: VNC server default format:
    screen[0] pos=1003
    Xinerama detected, x2vnc will use screen 1.
    x2vnc: pointer multiplier: 0.930491

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

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

    $ killall x2vnc
    $ vncserver -kill :1

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

    $ vncpasswd
    Password: ********
    Verify: ********

    4.まとめ

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

    $ vncserver :1 -depth 15 -geometry 1280x800 -alwaysshared
    $ x2vnc -shared -west localhost:1

    画面サイズは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” というホスト名を解決できないために起きる既知の問題の模様。


  • Raspberry Pi 3をセットアップ

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

    しばらく前に買ったけど動かしてなかったRaspberry Pi 3をセットアップしてみました。

    1.ハマったポイント

    Raspbianを使ってみたのだけど、32GBのMicroSDだと起動途中にパニックを起こす。2枚のMicroSDで同じ結果。結局、8GBのMicroSDだと問題なさそう。

     

    2.設定した箇所

     

    1)初期設定

    起動すると自動的にグラフィカルログインした状態になるので、コンソールを開いて

    $ sudo raspi-config

    でコンフィギュレーション設定する。Expand FilesystemでファイルシステムをMicroSDカードいっぱいまで拡大、Change User Passwordでパスワード設定、Internationalization Optionsでロケールの設定、タイムゾーンの設定、WiFiの国設定を実施して終了する。再起動すると、ファイルシステム拡大が実行される。

    デスクトップ環境のMenu→Preference→Raspberry Pi ConfigurationのLocalizetionで日本語キーボードを設定。

    パスワードの設定が終われば、リモートログインできる。ネットワークにつないであれば、mDNSとsshデーモンが動いているので、リモートから

    $ ssh pi@raspberrypi.local

    とやると、sshでログインできる。(パスワード変更していない場合、初期パスワードはraspberry)

    2)画面サイズ

    画面サイズがVGAくらいのサイズをFullHDに拡大表示しかされなかったので、HDMIを強制的に表示させることにする。/boot/config.txtを修正。

    hdmi_group=1
    hdmi_mode=16

    さらに、オーバースキャン表示を想定しているため、画面周囲が黒枠になって実質的なデスクトップが狭い。液晶モニタでは関係ないので、オーバースキャン対応を禁止する。同じファイルのdisable_overscanのコメントを外す。

    disable_overscan=1

    これでFullHDにピクセルバイピクセルで等倍表示されるようになった。

    3)日本語化

    $ sudo apt-get install fonts-vlgothic ttf-kochi-gothic xfonts-intl-japanese xfonts-intl-japanese-big xfonts-kaname

    で日本語フォントをインストール。インストール後、デスクトップ環境のMenu→Preference→Raspberry Pi ConfigurationのLocalizetionでLocaleをLanguageをja、CountryをJP、Character SetをUTF-8に設定。OKを押していくと再起動を要求されるので再起動すると日本語になっている。

    次の項のアップデート後、

    $ sudo apt-get install ibus-anthy

    として日本語入力をインストールする。再起動後、右上の「US」を左クリックして「日本語 – Anthy」にすると日本語入力ができる。

    4)その他

    $ sudo apt-get update
    $ sudo apt-get upgrade

    でアップデートをかけておくと基本的には完了。

    $ sudo install synaptic

    でsynapticパッケージマネージャをインストールして、Synapticから好きなソフトをインストールすればOK。
    WebブラウザはFirefoxベースのiceweaselとその日本語言語パックのiceweasel-l10n-jaをインストールしました。

    ブラウザとしては十分に動きます。Youtubeも720pのビデオも一応再生できるようになりました。さすがにコマ落ちが激しいのと、16bitカラーになっているのか、グラデーション部分にマッハバンドが出ますが。


  • Raspberry Pi 3が秋月・千石に登場

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

    すでに皆さんご存知のRaspberry Pi 3。無線(WiFi、BT)が載った関係で日本での発売が遅れていたようですが、秋月と千石に登場しました。

    Screenshot from 2016-03-27 11:44:50

    価格はどちらも税込み6200円。$35だと今のレートだと¥4,000くらい。秋月のRaspberry Pi 2の販売価格は¥5,600。Raspberry Pi 2より高いのは初物だからなのか、TELECの認証費用が割掛けされてるからなんでしょうかね。秋月の方はすでに在庫切れですが、千石の方は在庫切れではないようなのでポチッと注文してみました。いつ来るかな〜?

    Raspberry Pi 2よりも倍速いって書いてあったような気がするので、ブラウザが中心ならPC代替として結構使えるようになるかもしれませんね。


  • 64bit環境にMPLAB-Xをインストールする

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

    故あって、Ubuntu17.1 MATE 64bit環境に16bitPICをターゲットとしてMPLAB-Xをインストールしました。

    ダウンロードしたMPLAB-Xのtarファイルを展開すると、シェルアーカイブがでてくるので、これをスーパーユーザー権限で実行しても、

    ~$ sudo ./MPLABX-v3.20-linux-installer.sh
    64 Bit, check libraries
    Check for 32 Bit libraries
    These 32 bit libraries were not found and are needed for MPLAB X to run:
    libexpat.so
    libX11.so
    libXext.so

    となって、32bitライブラリをインストールするよう要求されます。・・・が、ここで表示されているものを素直にapt-getでインストールしようとしてもダメなのです。

    じゃあ、どうしたらいいのかについては、こちらに記載があります。

    ~$ sudo apt-get install libc6:i386 libx11-6:i386 libxext6:i386 libstdc++6:i386 libexpat1:i386
    パッケージリストを読み込んでいます... 完了
    依存関係ツリーを作成しています                
    状態情報を読み取っています... 完了
    以下の特別パッケージがインストールされます:
      gcc-4.8-base:i386 gcc-4.9-base:i386 libgcc1:i386 libxau6:i386 libxcb1:i386
      libxdmcp6:i386
    提案パッケージ:
      glibc-doc:i386 locales:i386
    以下のパッケージが新たにインストールされます:
      gcc-4.8-base:i386 gcc-4.9-base:i386 libc6:i386 libexpat1:i386 libgcc1:i386
      libstdc++6:i386 libx11-6:i386 libxau6:i386 libxcb1:i386 libxdmcp6:i386
      libxext6:i386
    アップグレード: 0 個、新規インストール: 11 個、削除: 0 個、保留: 12 個。
    5,061 kB のアーカイブを取得する必要があります。
    この操作後に追加で 13.7 MB のディスク容量が消費されます。
    続行しますか? [Y/n] 
    (以下略)

    ということで、パッケージ名の後ろに「:i386」をつける必要があったようです。わかってしまえばなんと言うことはないのですが、わからないと困りますよねぇ・・・。

    ここをパスできれば、あとは再びシェルアーカイブを実行するとインストール完了です。併せて、XC16もダウンロードしたシェルアーカイブを実行してやると途中でライセンスファイル生成のためにNICのMACアドレスの確認ダイアログが出ますが、そのまま次へ進めてしまえばインストール完了です。