個人別ブログ

at_kazutaka.bito さんのブログ

  • at_kazutaka.bito

    例として、 Howto : Armadillo-440でQt! 第3回 で作成されたMainWindowにラベルを貼りつけて「こんにちは」を表示する方法を示す。

    QtCreatorで、
    1.「編集」を選択して、「mainwindow.cpp」をダブルクリックする。
    ->mainwindow.cppのソースの編集画面に変わる。

    2.mainwindow.cppのインクルードファイルに

    #include <QLabel>
    #include <QTextCodec>
    

    を追加。

    MainWindow::MainWindowに下記のように /***** Display Japanese: begin ****//***** Display Japanese: end ****/ で囲んだ範囲を追加。

  • at_kazutaka.bito

    Armadillo上で、テキストファイルの改行コードがLFのものをLF+CRにする方法を試してみた。

    例えば、改行コードがLFのテキストファイル"test0.txt"を、改行コードがLF+CRのテキストファイル"test1.txt"にするには 下記のようなコマンドになる。

    [armadillo ~]# awk '{sub(/$/, "\r"); print}' test0.txt > test1.txt
    

    trコマンドやsedコマンドでも可能かもしれないが、当方はうまい方法が見つからなかった。 nkfコマンドとiconvコマンドは標準イメージでは有効になっていなかった。

  • at_kazutaka.bito

    Armadillo-440でlighttpd+php5-cgiの組み合わせで、phpinfoが見れるまでを確認した。

    以下に手順を示す。
    (ATDE上で、ビルド済みの環境(atmark-dist/romfs)が存在するものとする。)

    1.php5-cgiのdebianパッケージを下記からダウンロードする

    • http://archive.debian.org/debian-archive/debian/pool/main/p/php5/php5-cgi_5.2.6.dfsg.1-1+lenny16_armel.deb

    2.パッケージを展開する(以下、tempディレクトリに展開したものとする)

    [atde ~]$ dpkg -x php5-cgi_5.2.6.dfsg.1-1+lenny16_armel.deb temp
    

    3.上記2で展開してできたphp5-cgiをromfsに置く

  • at_kazutaka.bito

    WikiPediaのXlibの項目の例にあるプログラムをArmadillo-440開発セットで実行して、LCDに表示してみた。

    1.ATDEで上記プログラムのファイル(下記例では、test_xlib.cとする)を作成し、下記のようにコンパイルする。
    [atde ~]$ arm-linux-gnueabi-gcc test_xlib.c -o test_xlib -lX11
    上記のようにコンパイルすると実行ファイル(本例では、test_xlib)ができる。
    
    2.上記1の実行ファイルをArmadilloに転送する。
    
    3.Armadillo上で実行ファイルに実行権限をつけて、実行する。
    [armadillo ~]# chmod +x test_xlib
    [armadillo ~]# DISPLAY=:0 ./test_xlib
    

    補足)Armadillo-440の標準のイメージファイルを使う場合はfunctesterというXwindowシステムを使うアプリが自動起動しているので、

  • at_kazutaka.bito

    通常、Armadillo上でユーザを追加しても、電源をOFFにすると追加したユーザは消えてしまうので、 次の起動時に追加したユーザでログインできない。 電源をOFFにしても、次の起動時に追加したユーザでログインができるように、追加したユーザを保存する方法を試してみた。

  • at_kazutaka.bito

    Armadillo-810カメラモデル開発セットで、カメラの画像をH.264エンコードして、MPEG2-TS形式のコンテナにしてみた。 gstreamerのmpegtsmuxというエレメントを使った。 コマンド例は下記の通り。 (画像データの保存先として、/mntにSDカード等、外部メモリマウントしているとする)

    gst-launch-1.0 -e v4l2src device="/dev/video1" \
    ! video/x-raw,format=NV12,width=640,height=480,framerate=30/1 \
    ! acmh264enc ! queue \
    ! mpegtsmux ! filesink location=/mnt/out.ts
    

  • at_kazutaka.bito

    ATDE上で簡易にテキストファイルをビットマップファイルに変換する方法を考えてみた。

    1. テキストファイルをUTF-8で保存

    補足)
    UTF-8かどうかは、geditエディタを使用している場合、

    • ファイル->別名で保存

    を開いて、エンコーディング(H)の項目で確認できる。 UTF-8になっていない場合は、UTF-8を選択する。

    2. convertでUTF-8ファイルをビットマップに変換

    下記にスクリプト例(text2bmp.sh)を記載する。
    このスクリプトでは

    • UTF-8のテキストファイル:utf-8.txt

    について、

    • 背景:黒
    • 文字色:オレンジ
    • フォント:ゴシック
    • 文字サイズ:120

    • ビットマップファイル:text.bmp

    が生成される。

    text2bmp.sh

  • at_kazutaka.bito

    QMLで等幅フォントを使いたくなった。
    make menuconfig を実行してユーザーランドコンフィグレーションで、TakaoGothicフォントを追加。

    Userland Configuration
      Fonts --->
        [*] TakaoGothic // デフォルトは空白なので、*を付ける。
    

    QMLのコードでは、Textの中で font.family: "TakaoGothic" のように指定する。

    Armadillo-840製品マニュアル 14.5. QMLのhello_qmlの場合は、
    <font.familyの追加箇所を抜粋>

  • at_kazutaka.bito

    Armadillo-440にArmadillo 実践開発ガイド第2部 4. Armadillo 上にDebian GNU/Linux を 構築するを参考にDebian環境を構築する際、rootユーザのパスワードを設定しておく必要がある。 (デフォルトはパスワード設定されてない。)

    パスワードを設定してないと、一般ユーザでリモートログインした後、suコマンドを実行してもパスワードではじかれてしまう。

  • at_kazutaka.bito

    Armadilloに電源を入れて、ログイン入力画面で、

    • ユーザ名:root
    • パスワード:root

    でログインしようとしたとき、

    armadillo440-0 login: root
    Password:                       
    Login incorrect
    armadillo440-0 login: armadillo440-0 login
    

    のようにログインできない場合は、シリアル通信ソフトの改行コードの設定が CR+LFになっている可能性がある。

    PCのシリアル通信ソフトの改行コードの設定を

    • 受信:CR
    • 送信:CR

    にすると、ログインできる。

    TeraTermだと、メニューの

    • 設定->端末

    の中に改行コードの設定項目がある。

  • at_kazutaka.bito

    Howto : Armadillo-440でQt! 第2回のATDE4を使っていると画面ロックまでの時間が短いのが気になる。

    下記の方法で、ATDEの画面ロックの間隔を延ばした。

    ATDEが立ち上がった状態で、左上の「赤い渦巻模様」の右にあるメニューの システム->設定->スクリーンセーバー で、スクリーンセーバーの設定画面を開く。

    設定画面内で、

    • アイドル状態になるまでの時間 の項目で、デフォルトでは5分になっている。 この時間を延ばす。

    ちなみに、

    • アイドル状態になったらスクリーンセーバーを起動する
    • スクリーンセーバーを起動したら画面をロックする

    のチェックの有無で、アイドル状態、スクリーンセーバー、画面ロックの連動を選択することが可能。

  • at_kazutaka.bito

    GPIOの出力電流の設定は、Armadillo-400シリーズハードウェアマニュアル
    6.2.1入出力インタフェースの電気的仕様-「Armadillo-460」 http://manual.atmark-techno.com/armadillo-4x0/armadillo-400_series_hardware_manual_ja-1.10.0/ch06.html#sec-6-2-1 より、

    i.MX257のSoftware Pad Control Register(SW_PAD_CTL)とDrive Voltage
     Select Group Control Register(SW_PAD_CTL_GRP_DVS)で、出力電流(Std,
    High, Max)、スルーレート(Slow, Fast)、プルアップ/プルダウンを変更することができます。
    

    と記載されています。

    実際にCON9の2ピンとCON9の14ピンの電流をmaxに設定変更してみました。

    注意点としては、上記のとおり、SW_PAD_CTLで設定できるものと、 SW_PAD_CTL_GRPで設定できるものがありますので、電流設定のパラメータ(DSE)が あるレジスタを選択する必要がある点です。

  • at_kazutaka.bito

    Armadillo-810でUSBモニタ(DisplayLink対応)に表示させることに挑戦。

    手順は Armadillo 実践開発ガイド第3 部 2.8. USB 接続モニタ
    http://manual.atmark-techno.com/armadillo-guide/armadillo-guide-3_ja-2.1.2/ch02.html#sec_using_usb_display
    とほとんど同じ。

    違う所は、2か所。

    その1
    armelの部分は、armhfに読み替える。

    その2
    図2.89 libdlo をビルドするために必要なパッケージのインストール

  • at_kazutaka.bito

    TeraTermを使っているとときどき文字ずれが起きる。
    毎回TeraTermを再起動していたが、ネットを探してみると下記の方法を見つけた。

    TeraTermのメニューで、コントロール -> ポートのリセット
    または、
    Alt+O -> Alt+P (Altは押しっぱなし)
    で文字ずれが回復する。

  • at_kazutaka.bito

    Howto : Armadillo-440でQt! 第2回 より入手できるユーザーランド atmark-dist-qt-20121105.tar.gz内の、Qt用のプロダクトディレクトリ atmark-dist-qt-20121105/vendors/AtmarkTechno/Armadillo-440.Qt を現在の最新版のユーザーランド(atmark-dist-20140415)にコピーしてビルドしたところ

    • make menuconfig時にコンフィグのデフォルト設定されてない部分を聞かれる
    • make時にdepmod.plのディレクトリがないというエラーがでる

    という現象が発生しました。

  • at_kazutaka.bito

    Armadillo-200シリーズの開発環境ATDE2からnetflashで書き込もうと思ったら、ATDE2は/var/wwwがなかった。

    そこで、ATDE2にWebサーバー(lighttpd)をインストールする

    [ATDE ~]$ sudo apt-get update
    [ATDE ~]$ sudo apt-get upgrade
    [ATDE ~]$ sudo apt-get install lighttpd
    

    と、/var/wwwができた。

    あとは、/var/wwwにイメージファイルを置いて、netflashコマンド

    [armadillo ~]# netflash -k -n -u -r /dev/flash/[リージョン] http://[ATDEのIPアドレス]/[イメージファイル]
    

    でATDE2からArmadilloに書き込み可能。

  • at_kazutaka.bito

    ATDE3の共有フォルダのディレクトリの文字色は、緑地に青字で見づらい。 属性によって緑字になっているので、根本的には属性を変えればいいと思うが、 今回は文字色を変更してみた。

    ホームディレクトリで、 dircolors -p > ~/.dir_colors で、.dir_colorsを作成。

    .dir_colorsをエディタで開いて、 OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky の箇所を OTHER_WRITABLE 34;43 # dir that is other-writable (o+w) and not sticky に変更。

    eval dircolors ~/.dir_colors -b で設定を反映。

    ATDE3の共有フォルダのディレクトリの文字色が、黄色地に青字になった。

  • at_kazutaka.bito

    PWMを有効にしようとして、

    [armadillo ~]# echo 700000 > /sys/class/mxc_pwm/(PWM_NAME)/duty_ns
    [armadillo ~]# echo 1 > /sys/class/mxc_pwm/(PWM_NAME)/enable
    

    で、enableが1(有効)に設定。

    念のため、catでenableを確認すると、

    [armadillo ~]# cat /sys/class/mxc_pwm/(PWM_NAME)/enable
    0
    

    で、enableが0(無効)のままだった。

    どうやら、/sys/class/mxc_pwm/(PWM_NAME)/period_ns のデフォルトが 0 だったため、
    0 < duty_ns < period_ns
    のルールに引っかかって、enableが1(有効)に設定できなかったらしい。

    後から考えると、当たり前のことでした。

  • at_kazutaka.bito

    Armadillo-440とArmadillo-840のLCD表示と同じ画面をPCのWebブラウザで見る方法を考えてみました。 フレームバッファをJPEGファイルにして、mjpg_streamerで見ることにしました。

    添付 lcd2jpeg_a440.zip, lcd2jpeg_a840.zip の srcディレクトリ フレームバッファをJPEGファイル化するソース lcd2jpegを実行すると/var/tmp/for_lcd2jpeg/jpeg_file/lcd.jpg にJPEGファイルが生成されます。
    sample_exeディレクトリ lcd2jpegとmjpg_streamerの実行を組み合わせたサンプルスクリプトstart_lcd2mjpgを実行して、PCのWebブラウザで、URLを[ArmadilloのIPアドレス]:8080とすると LCD表示と同じ画面が見れます。

    補足)