STM32 Value Line DiscoveryをLinuxで開発する(1)

STM32 Value Line Discoveryは面白そうで、安いのですが、開発環境がWindows専用だったりするので、購入したものの放置していました。

しかし、なにげに HACK A DAY を見ていたら、Linux上にSTM32の開発環境を構築する記事がでていたので、追試してみました。OSはLinuxMint11の64bit環境です。

まず、tutrialに沿って環境構築を進めます。

0. gitのインストール

リポジトリはgitで管理されています。ダウンロードするためにgitを使うので、インストールします。

~$ sudo apt-get install git
~$ mkdir stm32-linux
~$ cd stm32-linux

1.summon-arm-toolchainをインストール

gitでリポジトリをクローンします。

~/stm32-linux $ git clone git://github.com/esden/summon-arm-toolchain.git
Cloning into summon-arm-toolchain...
remote: Counting objects: 312, done.
remote: Compressing objects: 100% (193/193), done.
remote: Total 312 (delta 145), reused 266 (delta 115)
Receiving objects: 100% (312/312), 61.76 KiB, done.
Resolving deltas: 100% (145/145), done.

インストーラスクリプトをカスタマイズします。

~/stm32-linux $ cd summon-arm-toolchain 
~/stm32-linux/summon-arm-toolchain $ gedit summon-arm-toolchain

以下の行のみ変更します。(コマンドラインオプションでも設定できるようです。)

SUDO=sudo
LIBSTM32_EN=1

その他の依存関係をクリアしておきます。

~/stm32-linux/summon-arm-toolchain $ sudo apt-get install flex bison libgmp3-dev libmpfr-dev libncurses5-dev libmpc-dev autoconf texinfo build-essential libftdi-dev

ツールチェーンを構築します。

~/stm32-linux/summon-arm-toolchain $ ./summon-arm-toolchain

として構築します。勝手にツールチェーンをダウンロードして、コンパイルしていってくれます。

かなり負荷がかかるようで、普段は静かなCPUファンがかなりの轟音を立てていました。

 

Android SDK in LinuxMint11(64bit)環境構築

調子に乗って、LinuxMint11の64bit環境でAndroid SDKをインストールしてみます。

1.ia32-libsのインストール

JDKのインストールの前に、http://developer.android.com/sdk/installing.html#troubleshooting に従って、ia32-libsをインストールします。

2.JDKのインストール

ソフトウェアの管理から、「sun-java6-jdk」をインストールします。

3.Eclipseのインストール

ソフトウェアの管理からインストールできるeclipseのバージョンは3.5.2-8ubuntu3でした。一方で、Android SDKがサポートするeclipseのバージョンは3.6以降なので、手作業でインストールします。

$ cd /usr/share
$ sudo tar xvzof ~/ダウンロード/eclipse-jee-indigo-SR1-linux-gtk-x86_64.tar.gz

ちなみに途中で誤って3.5.2をインストールしてしまったので、「$ sudo apt-get autoremove eclipse」でアンインストールして、上記アーカイブの展開からやり直しました。

また、ダウンロードしてくる eclipse は「Eclipse IDE for Java EE Developers, 210 MB」でないとダメでした。「Eclipse Classic 3.7.1, 173 MB」や「Eclipse IDE for Java Developers, 127 MB」ではADT-Pluginのインストールで「開発ツール」がエラーになってしまいます。

4.Pleiadesのインストール

http://mergedoc.sourceforge.jp/ から Pleiades 安定版 をダウンロードした後、

$ cd /usr/share/eclipse
$ sudo unzip ~/ダウンロード/pleiades_1.3.3.zip

として、展開します。展開後、/usr/share/eclipse/eclipse.ini の末尾に

-javaagent:/usr/share/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar

を追加します。(パスが違うので要注意)

5.Android SDKのインストール

home directry に android sdk を展開します。

$ tar xvfz android-sdk_r16-linux.tgz

SDK Tools のパスを .bashrc に追加します。

export PATH=${PATH}:/home/foobar/android-sdk-linux/tools:/home/foobar/android-sdk-linux/platform-tools:/usr/share/eclipse
(32bitの時と微妙に違うので注意!)

6.ADT Plug-in のインストール

Eclipseを

$ /usr/share/eclipse/eclipse &

として起動して、http://developer.android.com/sdk/eclipse-adt.html#installing に従って、ADTをインストール。途中で再起動したり、何度かライセンス確認等があるので注意。

★途中でSDKのアップデートがかかりました。なぜか、展開した場所と異なる場所にSDKがインストールされましたので、.bashrcを以下のように書き換えました。

export PATH=${PATH}:/home/foobar/android-sdks/tools:/home/foobar/android-sdks/platform-tools:/usr/share/eclipse

7.SDKコンポーネントの追加

http://developer.android.com/sdk/installing.html の Step 4に従って、SDKコンポーネントを追加します。

$ cd android-sdk-linux/tools
$ android

で Android SDK Manager が開く。しばらく待つと、Packageのリストが出てくるので、http://developer.android.com/sdk/installing.html#which に従って、パッケージを選択していく。

今回は「Tools/Android SDK Platform-tools」と「Android 2.3.3(API 10)」と「Android 2.2(API 9)」を追加した。(「Android 4.0.3(API 15)」は初めから選択されていた)

この辺は32bitの時と同じでした。

8.サンプルの起動

32bit環境の時と同様にhttp://android.keicode.com/basics/quick-start.php の「はじめてのAndroidプログラム」を参考に動かしたところ、無事にエミュレータでも動作しました。

Android SDKをインストールしてみた

Android SDKをインストールしてみます。

1.使用するLinux環境

http://developer.android.com/sdk/requirements.html に記載の環境を満たすように準備します。LinuxではUbuntu(8.04以降)でテストされている、と記載されていますが、Ubuntuではなく先にインストールしたLinuxMint12の32bit版を使ってみました。

ここに、http://developer.android.com/sdk/requirements.html に従って、システム要件を満たすようにインストールしていきます。

2.JDKのインストール

ソフトウェアの管理から、「sun-java6-jdk」をインストールします。

3.Eclipseのインストール

同じくソフトウェアの管理から、「eclipse」と「eclipse-jdt」をインストールします。今日の時点でインストールされたeclipseのバージョンは3.7.0-0ubuntu1でした。

4.Pleiadesのインストール

ソフトウェアの管理から、Eclipseを日本語化する「Pleiades」をインストールします。
インストール後、/etc/eclipse.ini (または /usr/lib/eclipse/eclipse.ini) の末尾に

-javaagent:/usr/lib/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar

を追加

5.Android SDKのインストール

home directry に android sdk を展開します。

$ tar xvfz android-sdk_r16-linux.tgz

SDK Tools のパスを .bashrc に追加します。

export PATH=${PATH}:/home/foobar/android-sdk-linux_86/tools

6.ADT Plug-in のインストール

Eclipseを起動して、http://developer.android.com/sdk/eclipse-adt.html#installing に従って、ADTをインストール。途中でライセンス確認があるので注意。

7.SDKコンポーネントの追加

http://developer.android.com/sdk/installing.html の Step 4に従って、SDKコンポーネントを追加します。

$ cd android-sdk-linux/tools
$ android

で Android SDK Manager が開く。しばらく待つと、Packageのリストが出てくるので、http://developer.android.com/sdk/installing.html#which に従って、パッケージを選択していく。

今回は「Tools/Android SDK Platform-tools」と「Android 2.3.3(API 10)」と「Android 2.2(API 9)」を追加した。(「Android 4.0.3(API 15)」は初めから選択されていた)

・・・が、eclipseでプロジェクト作成する際には表示されませんでした。そこで改めて「ウインドウ」→「Android SDK Manager」で再度設定したら現れるようになりました。

8.サンプルの起動

サンプルについては、http://android.keicode.com/basics/quick-start.php の「はじめてのAndroidプログラム」を参考に動かしたところ、無事にエミュレータでも動作しました。

<参考>

インストールの過程では以下のサイトを参考にさせていただきました。

BlueGriffonをインストールしてみた

HTMLファイルの編集が必要になり、HTMLエディタを調べました。

構文まで調べる元気はないのでWYSIWYGのものが基本になるわけで、ちょっと前ならKomposerを迷わず選択するところですが調べてみました。

すると、その後継(でいいのだろうか?)のBlueGriffonがHTML5などにも対応していて、良さげな感じなのでLinuxMint11の64bit環境にインストールしてみます。(こちらの説明を参考にしました→http://freesoft.tvbok.com/freesoft/web/html5_wysiwyg.html

  1. ダウンロードはZipファイルかシェルアーカイブのようなので、シェルアーカイブをダウンロードして、chmod a+x で実行属性をつけた後、起動します。
  2. インストール時の使用言語を問われますので、Englishを選びます(1.4の時点では日本語はない)。
  3. インストール先はホームディレクトリ配下になる用です。そのままインストール。
  4. インストールはあっという間に終了し、起動するか聞かれますので、起動してみます。
    すると、新しいバージョンのマニュアルがあるが、ダウンロードするか、と問われましたので、 ダウンロードをクリックしてみました。
    すると、マニュアルは5ユーロ+税金でのPDFファイルの販売のようです。つまり、ソフトウェアを使いこなそうと思ったら、5ユーロの寄付をしてね、みたいなものでしょう。マニュアルが日本語であれば、いいのですが、英語のようなので今回はキャンセルしました。

造り込みはしっかりしているようで、さすがKomposerの後継?です。表示も初めから日本語になっています。ただ、生成されるファイルが、.htmlではなく、.xhtmlになっています。これで目的にあった使い方ができるのかどうか、調べてみる必要がありそうです。

Mint12のインストールの続き

LinuxMint12をインストールしてみました・・・の続き。うまくいってませんが、とりあえず記録として残しておきます。

8.ウインドウマネージャの変更(でいいのか?)

鬱陶しいウインドウ貼り付き&全画面拡大現象を何とかするため、compiz設定マネージャがないのかと思ってしらべてみたら、そういうわけでもないようです。
で、一旦ログアウトして、ログインWindowというか、パスワード入力欄の右上の設定マーク(?)をクリックして、GNOME classicを選択してログインすると、より見慣れた形に近いウインドウになりました。
ウインドウの貼り付き現象もなくなっていました。

9.改めて Google Chrome をインストール

ウインドウマネージャを変更した後では、無事にChromeがインストールできました。

LinuxMint12をインストールしてみた

LinuxMint12をインストールしてみました。・・・が、うまくいってません。とりあえず記録として残しておきます。

1.DVDの準備

linuxmint.comからDVDのisoイメージをダウンロードしてきて、DVDに書き込みます。今回はGNOME 32bit版(Lisa)を使いました。

2.Mint12のインストール

メインマシンのSATAを禁止した上で、普通にUSB接続のDVDから起動して、USBのHDDにインストールしました。特にひっかかるところはありません。

3.アップデート

インストール後に再起動すると、追加パッケージのインストールのウインドウが表示されます。
さらに、アップデートマネージャがソフトウェアのアップデートを促してきますので、指示にしたがいます。

4.Chromeブラウザのインストール

Googleのページへ行って、Chromeブラウザをインストールしようとしますが、Mint11までと違ってインストールができません。普通に開くと書庫マネージャが開いてしまいますし、GDebiパッケージインストーラで開いても「ファイルが壊れているか、アクセス権がありません」表示でインストールができません。
しかたがないので、「ソフトウェアの管理」からChrominumブラウザをインストールしました。

5.言語設定の変更

「(アカウント名)→システム設定→言語サポート」を開くと、言語パッケージのダウンロードが始まります。終わったら、日本語サポートの設定にしました・・・が、この辺から雲行きが怪しく・・・。

6.日本語対応

UbuntuのJapaneseTeamの追加パッケージをインストールしました。手順は

http://www.ubuntulinux.jp/products/JA-localized

の「Ubuntu11.10の場合」に従いました。

7.日本語IMのインストール

ここまできても、日本語入力ができません。
なので、ソフトウェアの管理から「ibus-Anthy」をインストールしました・・・・が、まだ入力できません。

・・・・と思ったら、再起動後は入力できました。

 

VMware Player 4.0.1をLinuxMint11(x86_64)にインストール

実験環境用に、VMwareをセットアップすることにしました。

当初はVMware Serverの方をインストールしようと思ったのですが、LinuxMint11(Ubuntuでは11.04/Nattyに相当)に現在リリースされている2.0.2をインストールするのはなかなか難しそうです。

そこで、VMware Playerの方をインストールすることにしました。インストール自体は非常に簡単で、ダウンロードファイルはシェルスクリプトのようなので、

$ sudo sh VMware-Player-4.0.1-xxxxxx.x86_64

でインストーラが起動して、瞬時にインストールが完了します。

インストールが完了すると、メニューのシステムツールの中に「VMware Player」ができるので、それで起動可能。ライセンスに同意すると、すぐに動作しました。

で、早速、試しにDSL-N 01-RC4をライブCDの部屋からダウンロードして、仮想マシンを作成して試してみたところ、あっさり動きました。

LinuxMintでDVD再生する方法

最近、スタートレックのTNGのDVDBOXを買いました。昔からずっと欲しかったのですが、コンプリートするとあまりに金額が高くなることから諦めていました。(学生時代に深夜に毎週のように放送していましたし、社会人になってからもCSのスーパーチャンネルで概ね見ていたというのもあったのですが・・・)

しかし、ふとAmazonで見ると、昔に比べるとかなり安くなっていたのと、おそらく在庫処分で1~4シーズンが非常に安価に販売されていたので、つい買ってしまいました。

それを、最近は少しずつ見ています。

で、LinuxMintでDVD再生をする場合、ソフトウェアとしては標準でインストールされるVLCまたは動画プレイヤーでOKなようです。

その際に必要な条件として、使用するDVDドライブにリージョンコードがセットされている必要があるようです。これまではメインのPCで見ていたのですが、やはり4シーズン分でDVD28枚となると膨大な量なので、サブのPCで見たいと思ってドライブを追加したのですが、再生がうまく行かず、しかもエラーメッセージも何もでないので、ひたすら悩んでしまいました。で、いろいろ調べてみると、リージョンコードだった、というわけです。

で、リージョンコードの設定方法がわからずにこれまた悩みました。Windowsならばドライブ添付のCDがあればなんとかなるでしょうが、Linux専用機となるとどうしたものかと・・・。

で、調べた結果、Linux環境でセットする場合は、「regionset」コマンドを使えば設定できることがわかりました。

$ sudo apt-get install regionset
$ regionset

で設定するか英語で聞いてくるので、regionを設定します。(日本の場合は「2」)

これで無事に再生できるようになりました。

古いPCを処分しました

最近、雑用マシンのアップグレードをしたり、ノートPCベースの実験サーバが壊れてしまったり、玄箱PROをHPのMicroServerでリプレースしたりした(ファイル鯖の使命を終えた玄箱PROは、Debian squeeze をインストールして実験用でubootの書き換えに失敗した無印玄箱を置き換えました)ので、古いPCやパーツが溜まっていました。それを昨日処分しました。

ところで、自作PCの場合、結構処分方法に困ります。メーカー製PCの場合はパソコン3R推進協会などという天下りの香りのする仕組みがあったりするのですが、自作PCの場合や、プリンタなどの周辺機器の場合は4200円/台も取られてしまいます。

前回まとめて処分した時は、このスキームが発効する2003年より前でしたし、住んでいた場所の自治体の回収も分別が非常に細かい代わりに大きさなどの制約が少なかったので、ネジ一つまで徹底的に分解して「金属(アルミ、アルミ以外)」「プラスチック」「基板類、ガラス、ケーブル(燃えないゴミ)」「(梱包の)発泡スチロール」「段ボール」などに分別して処分しました。

今回は大きさの制約もきついので、どうするか考えていたのですが、ちょうど八潮の方に出向く機会があったので、以前GIGAZINEで紹介されていたパソコンファームを利用してみました。

場所は、

大きな地図で見る
なのですが、目の前の東西の道はすぐ近くにあるイトーヨーカドー(とその周囲にある大型店)や数km圏内のイオンレイクタウン、ららぽーと新三郷・コストコ・IKEAなどの影響だと思うのですが週末は非常に混み合う道路でいつも渋滞しています。直接持ち込まれる場合は時間に余裕を持った方がいいと思います。

持ち込んだ後の処理は非常に簡単で、(多分)アルバイトの受付のおねえさんが車のところまで来てくれて、処理をお願いするものを一緒に来た(多分)アルバイトのおにいさんに引き渡します。引き渡した後、A5版の簡単な書類に住所氏名を記入してサインするだけです。今回お願いしたデスクトップ2台、ノート1台だとわずか2分くらいでしょうか。ほとんどドライブスルーの感覚です。

建物その物は資源回収業なので推して知るべし(といっても、資源回収のイメージからすると十分に清潔感がある)ですが、最近の資源価格高騰の恩恵もあるでしょうが、決してカツカツでやっているのではなく十分に事業になっていることが伺えます。(同社は大阪、名古屋に事業拡張もしているようですし、類似の業者もでてきている)

うちにあるプリンタも調子が悪くなってきている(電源を入れて数分は使えるのだけど、数分で何かのアドレスかコードを表示して死んでしまう)ので、いずれまたお世話になることでしょう。

ちょっと不思議な現象(地震の前触れ?)

もう、2日も経ってしまった話ですが、1月2日の午後に車で外出した際に車の時計が大幅に狂っているのに気がつきました。狂っている量としては、20分ちょうどの遅れでした。ところが、帰宅するために再び車に乗った夜8時頃には時計は正しい時間に直っていました。

遅れた原因としては、車の時計は電波時計になっているので40kHzの電波のうちの2bitが化けたのではないかと思います。標準電波の出し方を参照すると、データ化け対策でパリティが付加されているのですが、所詮はパリティなので2bit化けると対処できません。

ところで、地震の前触れとして、リモコンが効かなくなるとか、時計が狂うとかそういう現象を耳にすることがあります。これらに共通するのは、いずれも30~40kHz付近の信号を扱うものだったりします。例えば、リモコンは一般的には40kHzで変調した赤外線の信号にデータを乗せて伝送しますが、リモコンの受信機側にその周波数帯の強い電磁波が照射されるとうまく信号が伝わらなくなることが容易に推定できます。同様に、時計も32.768kHzの水晶振動子を元に動作させますが、これも同じ周波数帯の強い電磁波に晒されると誤動作することが予想されます。(まして、時計の場合は電池で動かすことが多いせいか、水晶振動子を駆動する電力も小さく抑えられていることが多いのです)

で、今回の時計のずれはどうでしょうか。その前に車に乗ったのが、12月29日の午前中なので、1月1日午後の鳥島近海のM7.0の前兆として1月1日の地震の前から既に狂っていたとも考えられますし、そうではなく地震後の現象や、それとは関係のない事象の前兆とも考えられます。ただ、1月2日の帰宅時には直っていたことを考えると、1月1日の前兆としてその前から狂っていたとはちょっと考えにくいかもしれません。

あと、もう一つ危険な兆候があります。3/11の東日本大震災も、4/7の余震や4/11の福島県での地震も、うちの嫁が海外に遊びに行っている間に起きています。そして、今週末1/9からまた遊びに行ってしまいます。よくないことが起きなければいいのですが・・・。