ひでっぷの技術メモ

はてなダイアリーから移行しました

Armadillo

Armadillo-460でRXTXCommを使用する

Armadillo-460のSDカードにDebian lennyをのっけて動かしてます。 aptitude search rxtx ってやってみると p librxtx-java - Full Java CommAPI implementation って出てくるので「おお!Armadillo-460でRXTXCommが使えるぞ!」って大喜びしてさっそくapt-ge…

Armadillo-460のシリアルポートデバイスが・・・

Armadillo-460にはシリアルポート1〜シリアルポート4まで4つのシリアルポートがあります。 コネクタ出ししてあるのはシリアルポート1とシリアルポート4。 デバイスをlsで覗いてみると crw-rw-rw- 1 root root 207, 17 2012-02-10 10:45 /dev/ttymxc1 crw-rw-…

Armadillo-460でJavaを使う

Armadillo-9のCPUメーカー(シーラス社)がCPUから撤退するらしく、供給保証は2013年3月までとのこと。 で、後継機種としてArmadillo-460が発売されていたので購入しテストしてみました。 Armadillo-9の時はCFカードが使えましたが今回はSDカードになってま…

Armadillo-9で使用するCFをフォーマットするディストリビューターのバージョンに注意<span style="font-weight:bold;">2010-06-15追記

久々にArmadillo-9を使用する仕事が入ったのでCFをUbuntu10.04でfdisk、mk2fsしバックアップしてあったイメージをcp。 いつも通りにやったが起動せず。 以前fdiskでfdisk /deb/sdaとしなければいけないのを fdisk /dev/sda1とやっていて起動しなかったことが…

Runtime.exec()にてprocess.getInputStream().close()だけではだめ?

Javaで外部スレッドを起動する時はProcessの標準入力、標準出力とエラー出力のstreamをclose()してあげないと「Too many open files」というIOExceptionが出てしまう。 また、標準出力やエラー出力が多くてstreamのバッファ容量を超えるとProcessがデッドロ…

phoneMEでスレッドダンプを取得する

LinuxでJavaを動かしている場合、各スレッドのスレッドダンプを取得することができる。 Javaの親スレッドを pstree -p | grep java*1 で探し出して、 kill -3 プロセス番号 とするとJavaの標準出力に各スレッドのスレッドダンプが表示される。phoneMEではデ…

phoneMEのコンパイルオプションとCPU負荷

makeのオプションにCVM_DEBUG=trueをつけると詳細なデバッグ情報を見ることができる。 Exceptionの発生行数とか、もっと細かいところだとエラーが出たCVMのソースの行数までわかる。 GDBと組み合わせるとCVMのデバッグもできるみたいだ。 ただし、CPU負荷が…

phoneMEのバグ?

Armadillo-9+phoneMEを使用して定期的に複数スレッドでpingをうつプログラムをずっと動かしているとOSからsignal 11を受けてプログラムが止まってしまうという現象に悩まされている。 現象発生は不定期。どうもスレッド数が多くて複数スレッドで同時にping…

Armadillo-9で使用するphoneMEのコンパイル方法

phoneMEのコンパイル方法を書いておこうと思いながらずっとほったらかしていました。 phoneMEのコンパイルで検索してここにたどりついた方もいるようなので残しておきます。 ただし、Armadillo-9で使用するphoneMEのコンパイル方法です。 コンパイルにはATDE…

SableVM1.13のバグ?

どうもSableVM1.13のGCにはバグがあるようです。 public class ThreadTest { public ThreadTest() { super(); } public static void main(String args) { ThreadTest threadtest = new ThreadTest(); threadtest.start(); } public void start(){ int no = 0…

phoneME使用上の注意メモ

Armadillo-9+Javaで開発をしています。 最初はオープンソースのSableVM1.13を使用しようと思っていましたが、致命的なバグがあり使用を断念しました。 (バグについては後日落ち着いてから記事にしたいと思います。) SableVMの代わりに使用するのがphoneME…

Armadillo-9でメール送信の落とし穴

以前、Armadillo-9でメール送信について書きましたが今日試してみて気づいたことが。メール送信をするJavaプログラムを作成、起動して何げにTopコマンドを眺めていると・・・ メモリめっちゃ食ってる!Swapしまくり! どうやらオプションの-Dgnu.classpath.n…

Armadillo-9でメール送信

PCと一緒でJavaMailを使用するだけ。 mail.jarとactivation.jarを/usr/lib/sablevm/jre/lib/extにコピー。 ただし"iso-2022-jp"のエンコードを使用するためにjavaのオプションで java -Dgnu.classpath.nio.charset.provider.iconv -jar hogehoge.jar が必要。…

Armadillo-9で構築した環境のコピー

構築に苦労をしても一度構築してしまえばあとは簡単。 CFカードの中身をごっそりコピーしてとっておいて新しいCFカードにコピーするだけ。 コピーする時は所有者情報を残してコピーするために-pオプションをつけること。

Armadillo-9のカーネル再コンパイル方法

Armadillo-9で色々な機能を有効にする時にカーネルの再コンパイルが必要になります。 最初にカーネルの再コンパイルが必要になったのはpppを有効にする時でした。 最初は自分のLinuxマシンに環境を構築しようとしましたが構築がうまくいっているかもわからな…

Armadillo-9のロケール設定

Armadillo-9へJavaアプリケーションを移植している時に、日本語表示が出ないことに気づく。 調べてみるとロケール設定がきちんとされていないようだ。 そこでlocalesをインストール。 #apt-get install locales インストール終了後再設定。 #dpkg-reconfigur…

Armadillo-9にDebian(etch)をインストール

もともとArmadillo-9にてSwingアプリを動かしたいと思いX Windows Systemが入らなかったためetch→sargeにしたわけですが、 その後いろいろ検証した結果どうもSwingがうまく動かない。 前の日記にも書きましたがレイアウトによっては正常に表示されなかったり…

Armadillo-9のシリアルポートをJavaで制御

やっとArmadillo-9のシリアルポートをJavaで制御できるようになりました。最初はSunもしくはRXTXのcommunication APIを使用しようと思っていました。 当然のことながら(?)どちらもARM用はなかったのですがRXTXにソースコードがあり、gccでコンパイルすれ…

Armadillo-9でvncとSwingアプリその2

今回はArmadillo-9でvncServerを立ち上げ、開発PC(TurboLinux)のKDEについているリモートデスクトップ接続でリモート接続しました。 そんでもって前回作ったSwingアプリを起動。 こんな感じ。 まあ問題なし。 次はpanelのlayoutをflowlayoutからgridbaglayou…

Armadillo-9でSwingアプリを動かす

前回に続いて今回はX Window Systemを立ち上げてSwingアプリを動かしてみました。 Armadillo-9でのX Window Systemの立ち上げ方はArmadilloのサイトのHowtoにありますが、なんかうまくいかない。 xfonts-baseのインストールでディレクトリがないなんてエラー…

組み込みLinuxをさわる

組み込みLinuxが載ったCPUボードArmadillo-9を購入し試行錯誤中。 とはいっても内蔵フラッシュのLinuxではやりたいことができなさそうなので 4GのCFカードを買ってきてArmadillo-9の付属CDについていたDebianをインストール。 Linuxは今までTurboLinuxがメイ…