趣味の電子工作などの記録。時に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に変更したい。
    • 日本語入力の設定

  • 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カラーになっているのか、グラデーション部分にマッハバンドが出ますが。


  • Raspbianにmoserialをインストール

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

    なんだかんだで忙しくて、気づけば11月末から更新してないですね。

    それはそうと、忘れないようにメモです。

    Linux環境でシリアル通信をするものに対するテスト・デバッグではmoserialが便利だと思っているのですが、ポータブルな環境で扱おうと思ってRaspberry Pi2で動かすべく、Raspbianにインストールしてみました。

    RaspbianのSynapticで検索してもmoserialは出てこないので、ソースからコンパイルするしかなさそうです。

    まず、環境整備として、Synapticで

    • gnome-common
    • libglib2.0-dev
    • yelp-tools
    • libgtk-3-dev
    • valac

    (とその依存ファイル)をインストールします。順に、

    • gnome-autogen.shがない
    • glib-gettext >= 2.2.0が要る
    • yelp.m4がない
    • ‘gtk+-3.0’パッケージがない
    • valacコマンドがない

    の対策になります。パッケージをインストールしたら、

    $ git clone git://git.gnome.org/moserial
    $ cd moserial
    $ ./autogen.sh --prefix=/usr
    $ make
    $ sudo make install
    $ moserial

    でgitでソースコードを引っ張ってきて、コンパイル、インストール、実行になります。(実際には引っかかりながら必要なパッケージをインストールしていったのですが)

    Raspbian環境ではUARTはUSBに接続したいわゆるUSBシリアルしかでてこないようです。(ハードウェアピンにはなかったっけ?)

    もしmoserialをインストールする方がいて、その参考になれば、ということで残しておきます。


  • esp8266用の環境を構築する

    投稿日 2015年 4月 8日 1つのコメント

    ESP8266がもうすぐ使えるかもしれない、ということで、早速ビルド環境を構築してみることにしました。

    https://github.com/pfalcon/esp-open-sdk

    にある esp-open-sdk を使えるようにすることがターゲットになります。

    1.Debianのインストール

    まあ、Debianは普通にDebian7.8をVMware上でインストールします。
    (2回目のインストールはUbuntu14.04LTS上にインストールしました。)

    2.ツール類のインストール

    環境構築に必要なパッケージ類をインストールします。

    $ sudo apt-get install make autoconf automake libtool gcc g++ gperf  flex bison texinfo gawk ncurses-dev libexpat-dev python sed git
    
    

    3.環境構築

    以下の手順で環境構築します。

    $ git clone https://github.com/pfalcon/esp-open-sdk
    $ cd esp-open-sdk
    $ make STANDALONE=n
    
    

    ・・・・とすると、勝手にいろんなものを引っ張ってきてコンパイルしてくれます。マルチコアだからといって、make で -j 2 とか付けたりするとうまく行きません。

    4.パスの修正

    ホームディレクトリの .profile に以下の内容を追記して、xtensa用のgccをパスに追加します。

    # add esp8266 tools to PATH
    PATH="$HOME/esp-open-sdk/xtensa-lx106-elf/bin:$PATH"
    
    

    一旦ログオフしてログオンしなおしてから、正しくパスが通っているか確認します。

    ~$ xtensa-lx106-elf-gcc -v 
    Using built-in specs. COLLECT_GCC=xtensa-lx106-elf-gcc COLLECT_LTO_WRAPPER=/home/xxx/esp-open-sdk/xtensa-lx106-elf/libexec/gcc/xtensa-lx106-elf/4.8.2/lto-wrapper Target: xtensa-lx106-elf Configured with: /home/xxx/esp-open-sdk/crosstool-NG/.build/src/gcc-4.8.2/configure --build=i686-build_pc-linux-gnu --host=i686-build_pc-linux-gnu --target=xtensa-lx106-elf --prefix=/home/xxx/esp-open-sdk/xtensa-lx106-elf --with-local-prefix=/home/xxx/esp-open-sdk/xtensa-lx106-elf/xtensa-lx106-elf/sysroot --disable-libmudflap --with-sysroot=/home/xxx/esp-open-sdk/xtensa-lx106-elf/xtensa-lx106-elf/sysroot --with-newlib --enable-threads=no --disable-shared --with-pkgversion='crosstool-NG 1.20.0' --disable-__cxa_atexit --with-gmp=/home/xxx/esp-open-sdk/crosstool-NG/.build/xtensa-lx106-elf/buildtools --with-mpfr=/home/xxx/esp-open-sdk/crosstool-NG/.build/xtensa-lx106-elf/buildtools --with-mpc=/home/xxx/esp-open-sdk/crosstool-NG/.build/xtensa-lx106-elf/buildtools --with-isl=/home/xxx/esp-open-sdk/crosstool-NG/.build/xtensa-lx106-elf/buildtools --with-cloog=/home/xxx/esp-open-sdk/crosstool-NG/.build/xtensa-lx106-elf/buildtools --with-libelf=/home/xxx/esp-open-sdk/crosstool-NG/.build/xtensa-lx106-elf/buildtools --enable-lto --enable-target-optspace --disable-libgomp --disable-libmudflap --disable-nls --disable-multilib --enable-languages=c,c++ Thread model: single gcc version 4.8.2 (crosstool-NG 1.20.0) 
    ~$

    5.アップデートの適用

    以下の手順で環境のアップデートを適用します。

    $ cd ~/esp-open-sdk
    $ make clean
    rm -rf esp_iot_sdk_v0.9.5
    rm -f sdk
    rm -f .sdk_patch_0.9.5
    make -C crosstool-NG clean MAKELEVEL=0
    make: ディレクトリ `/home/xxx/esp-open-sdk/crosstool-NG' に入ります
     RM 'ct-ng'
     RM 'scripts/crosstool-NG.sh'
     RM 'scripts/saveSample.sh'
     RM 'scripts/showTuple.sh'
     RM 'paths'
     RM 'config/configure.in'
     RM 'kconfig'
     RM 'docs/ct-ng.1'
     RM 'docs/ct-ng.1.gz'
    make: ディレクトリ `/home/xxx/esp-open-sdk/crosstool-NG' から出ます
    rm -rf /home/xxx/esp-open-sdk/xtensa-lx106-elf
    $ git pull
    Already up-to-date.
    $ git submodule update --init --recursive
    Submodule 'crosstool-NG' () registered for path 'crosstool-NG'
    Submodule 'esptool' () registered for path 'esptool'
    Submodule 'lx106-hal' () registered for path 'lx106-hal'
    $ make STANDALONE=n
    
    

    ※クロスコンパイラを再構築するので、時間がかかります。

    6.exampleのコンパイル

    以下の手順でコンパイルを試みているが、まだうまく行かない。

    $ cd ~/esp-open-sdk/sdk
    $ mv example/IoT_Demo .
    $ cd IoT_Demo
    $ make COMPILE=gcc
    
    

    コンパイルする対象ディレクトリは sdk 直下に必要な模様。

    SDKのMakefileは複雑すぎる(たしかにそんな感じ)ので、書きなおしたほうがいいという話も・・・


  • Linuxが走る小さなボードAriettaG25

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

    HACK A DAYの記事で見かけたのですが、ARM9 400MHzとDDR2-SDRAM 128/256MBが載った小さな小さなボードです。
    公式ページをみると、53mm×25mmとのこと。Raspberry Piの4分の1か3分の1くらい。

    WiFiモジュールのための端子があって、WiFiモジュールを重ねて載せられるようです。ソフトウェアはEmDebian Wheezy 7.6が走るようですので、性能はともかくとして、Debian環境でできることは概ね容易に移植可能なのでしょう。

    この手のボード(というか汎用SoC)だと兼用端子で悩むことになりますが、設定ファイルを生成するためのWebページが用意されています。これは便利そうです。

    価格は128MB版が20ユーロ、256MB版が30ユーロ、WiFiモジュールが7ユーロ。値段も手頃なのですが、Made In Italyなので送料が気になるところです。


  • 無料VPSサービスを試してみた!

    投稿日 2013年 12月 12日 コメントはありません

    host1free + Debian7.0 編

    いろいろググっていたら、無料のVPSサービスがあるらしい、ということがわかったので試してみました。
    試してみたのは host1free というサービスです。登録方法については「host1free」でググると、日本から試した方が結構いるようで、先達の知恵を借りられます。

    ユーザー登録時にOSを選択できますが、自分はDebian7.0 64bitを選択しました。登録すると直ちに確認のメールが飛んできて、それでユーザー確認が済むと2時間くらいして「使えるようになったよ」というメールが飛んできていました。(欲張って複数登録すると、「有料サービス使え」ってアカウント剥奪されるらしいので、試す人は気をつけて!)

    でコントロールパネルにログインしてみてみると、DISK 10GB、RAM 128MB、SWAP 256MB というスペックで、コントロールパネルによればすでに動作している模様でしたので、

    $ ssh root@IPアドレス

    でアクセスしてみると、無事にログインできました。とりあえず、

    # apt-get update
    # apt-get upgrade

    として、OSのアップグレードをおこないましたが、update の時点でアクセスできないサーバがありました・・・・とりあえず、放っておいてupgradeしました。後日再トライしてみます。

    sshdはすでに動いているようなので、/etc/ssh/sshd_configを修正して ssh でログインする際のポート番号を変更します。(なんと、デフォルトでは vi が入ってないことがここで判明・・・)

    # cd /etc/ssh/
    # nano sshd_config

    初めの方にある「Port 22」の行を適当なポートに変更します。変更後、

    # /etc/init.d/ssh reload
    [ ok ] Reloading OpenBSD Secure Shell server's configuration: sshd.

    として、再読み込みさせて、別のシェルから

    $ ssh -p ポート番号 root@IPアドレス

    としてログインできることを確認します。
    確認できたら、

    # apt-get install ufw
    # ufw default deny
    # ufw allow ポート番号
    # ufw enable

    として、変更したsshのポート番号以外を塞ぎます。SSHでアクセスができなくなるかもしれない、という警告が出ますが、そのまま実行したら・・・・固まっちゃいました・・・。
    そういえば、ifconfigの結果が怪しかったのだった・・・。

    # ifconfig
    lo Link encap:Local Loopback 
     inet addr:127.0.0.1 Mask:255.0.0.0
     inet6 addr: ::1/128 Scope:Host
     UP LOOPBACK RUNNING MTU:16436 Metric:1
     RX packets:0 errors:0 dropped:0 overruns:0 frame:0
     TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
     collisions:0 txqueuelen:0 
     RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
    venet0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 
     inet addr:127.0.0.2 P-t-P:127.0.0.2 Bcast:0.0.0.0 Mask:255.255.255.255
     UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1
     RX packets:20311 errors:0 dropped:0 overruns:0 frame:0
     TX packets:11796 errors:0 dropped:0 overruns:0 carrier:0
     collisions:0 txqueuelen:0 
     RX bytes:26771927 (25.5 MiB) TX bytes:827575 (808.1 KiB)
    venet0:0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 
     inet addr:x.xxx.xxx.xxx P-t-P:x.xxx.xxx.xxx Bcast:x.xxx.xxx.xxx Mask:255.255.255.255
     UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1

    どこかにPPTPで接続してる感じなのを忘れてた・・・。さくらのVPSとはこの辺が違いますね。

    ・・・貝になってしまったサーバはどうしようもなさそうなので、サーバコンソールの「rebuild」から新しいrootのパスワードを入れ直して再インストールすることにしました・・・。

    ・・・といっても、5分くらいで再インストール完了。

    ・・・で、再トライするも、何のポートを開ければ回避できるのかがわかりません。かといって、いくらなんでも ファイアウォールなしでは気持ち悪いので、CentOS6 に変えてみることにしました。


  • RasPiに緊急地震速報を報告させてみました

    投稿日 2013年 10月 30日 5個のコメント

    連続稼働に向けてラックに吊り下げたRaspberryPiですが、こいつに緊急地震速報を報告させてみました。

    Pythonのスクリプトとして作ったのですが、処理としては以下のような感じです。表示および音声合成は別スクリプト&別スレッドにすることで、表示処理と音声読上げを同時に起動し、遅れをなるべく少なくするようにしています。

    1.RaspberryPiでEEWBOTを監視し、地震速報を取得する

    Twitterのアカウントでeewbotというbotアカウントを運営している方がいて、実験的に高度利用者向けの緊急地震速報をcsvで配信されています。
    こちらのtweetをストリーミングAPIで受けとります。

    2.受信した内容をデコードします。

    デコードと言っても、都合のいいように表示用と読上げ用のテキストを生成するだけです。

    3.USB接続のLCDに表示させます

    生成したテキストをUSB接続のLCDに表示させます。

    4.スピーカに音声出力します

    RaspberryPiに接続したスピーカに合成音声で出力します。音声合成にはAquesTalk Piを使っています。いわゆる「ゆっくり声」で読み上げます。(笑)
    (注:AquestTalk Piは商用利用では有償なので、真似する人はご注意を)

    いまのところ、RaspberryPiのスピーカ端子にダイソーの100円スピーカ(ケーブルなし)を挿しているので、音量が小さくて静かな状況でないと聞き取れません。なるべくシンプルかつ小さくアンプを仕込む方法を考えています。

    5.動かしてみて

    遠めの地震だと地震速報の読上げ&表示後に揺れがきます。比較的近くだと揺れが先か同時くらいですが。音声だけだと読み取れなくても同じ内容がLCDをみれば表示されているので、読上げ完了を待たなくても内容がわかりますし、聞き取れなくてもやはり内容はわかりますので、結構便利です。

    ちなみに、日本気象協会の地震情報(tenkijp_jishin)もフォローしていて、その内容もそのまま表示&読上げをしています。こちらは緊急地震速報が落ち着いてしばらくしてからTweetされます。

    6.メモ

    以降は自分用のメモです。

    動かすの使った追加パッケージは以下のとおり。

    $ sudo apt-get install python-gd
    $ sudo apt-get install ttf-kochi-gothic-naga10 ttf-kochi-mincho-naga10
    $ sudo pip install pyserial

    「TweetToVoiceLCD.py」を走らせれば動作開始。


  • LFSに挑戦5(カーネルのインストール以降)

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

    引き続いて8.3章のカーネルのインストール以降の作業です。

    続きを読む »


  • LFSに挑戦4(ブートスクリプトの設定)

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

    続いてブートスクリプトの設定です。

    前回、最後にpartimageでバックアップをとるために umount しましたので、それを改めて mount するところからです。

    続きを読む »


  • LFSに挑戦3(LFSシステムの構築)

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

    第6章「基本的なソフトウェアのインストール」に進みます。
    ここまでの作業のバックアップはパーティションイメージとtarで取得済みです。

    ここからの作業は5章の最後に書いてある通り、rootで行います。特に問題や気づいた点がない限りはHTML版のLFS BOOKからコピペで進めていきます。

    続きを読む »