2010/10/17

転職、一月半を新しい職場で過ごしてみて

ブログでは書いていませんでしたが、実は先月の1日に転職しました。

前の会社の経営状況が芳しくなくてどんどん収入が厳しくなってるってのも当然ありますが、それ以上に業務範囲をどんどん狭められることによって技術、人間関係(後輩が入ってこないので指導することもない。。)の両方で閉塞感を強く感じるようになったってのが一番の理由ですね。

そんなモヤモヤを抱えてたところ、今まで担当してた製品と比較的近い物を作ってるメーカー系企業から中採試験の話をもらいました。さすがに4年ちょっと過ごした会社なので、お世話になった先輩方や気の合う同期とかもいるわけで、そういう人達から離れて全然知らない人達の中に飛び込むのは抵抗を覚えましたが、それでも閉塞感を何とかしたいと思い試験を受け、運良く内定を貰うことができ、今に至っています。

しかし閉塞感を打破したくて転職したのはいいですが、いきなり全く経験のないハード設計に関わらされたり、他社の人も交えた会議に引っ張り出されたのにはさすがに参りました・・・。特に前職では他社の人と打合せしたことなど数えるほどしかなく、会議に呼ばれてから名刺交換とかのマナーとかを焦って復習するハメに。。いい悪いは別として、今までほんとに製品開発プロセスの一部しか知らなかったと痛感したひと月半です。

今までの経験から想像していた職場とあまりに違ったので、最近まで気持ちの方がついていかずかなりの不安に苛まれていましたが、最近ようやく少し落ち着いてきたように思っています。まだまだへこむ日々は続くと思いますが、頑張って少しでも早く自分の立ち位置を確立していきたいと思います。

2010/08/03

BlackBerry Bold 9700を購入

ここ数カ月、全くネタがなかったので本当に久しぶりの更新です。。

1年くらい前から携帯を買い替えようと思っていて、docomoユーザの私は海外でXperiaが発表されたときに、この端末なら買ってもいいと思い楽しみにしていました。。

・・・が、日本発売までに半年くらい待たされて完全に購買意欲が萎えてしまい、完全に買い替えのタイミングを見失ってしまっていたのですが、ひと月ほど前にふとBlackBerry Bold 9700のレビュー記事を目にし、なんとなく惹かれた勢いで予約までして買ってしまいましたw

最近のスマートフォンはタッチパネルが当たり前のようになっていますが、PCに慣れてる私にとっては、トラックパッドとQWERTY配列のキーボードはなかなか使い易くてよいです。
あと、BlackBerry Internet ServiceでGmailとかの受信も即座に通知してくれるのも非常に便利です。

スマートフォンを使うのはこれが初めてなので、これからアプリをいろいろ試しながら楽しんでいきたいと思います。

2010/04/20

ARM用Linuxカーネルのクロスコンパイル環境構築

今日は、ARM用Linuxカーネルのクロスコンパイル環境をGentoo Linux上に構築してみようと思います。

以前ARM用アプリケーションバイナリを作成しQEMUでエミュレーション実行する手順を書きましたが、このときは日本語で見つかった情報でちゃちゃっとすませちゃった感があるので、今回は本家のドキュメントを参照しながらちゃんと進めていこうと思います。。

1. crossdevのインストール
Gentoo Linux上にクロスコンパイル環境を構築するのを支援してくれるツール、crossdevをインストールします。
# emerge crossdev 


2. ARMクロスコンパイラのインストール
crossdevを使用して、ARMクロスコンパイラをインストールします。
まず/usr/local/portageというディレクトリを作り、/etc/make.confに以下の行を追記します。
PORTDIR_OVERLAY="/usr/local/portage" 

そしてcrossdevを次のように実行します。
# crossdev --ex-gdb --stable --target arm-unknown-linux-gnu 

これでクロスコンパイラのインストールは完了です。


3. Linuxカーネルのクロスコンパイル
今回はカーネルモジュールのインストールについては考慮しません。また、カーネルソースは一般ユーザのホームディレクトリ下に展開するものとします。


まず、展開したソースの直下にクロスコンパイル用の以下のような内容のシェルスクリプトを作り、xkmakeという名前で保存します。
#!/bin/sh                                                        
exec make ARCH="arm" CROSS_COMPILE="arm-unknown-linux-gnu-" "$@" 


xkmakeに実行権限を与えます。
% chmod u+x xkmake 


あとはxkmakeを使って、x86と同じように下記のようにカーネルをコンパイルすることができます。
% ./xkmake menuconfig 
% ./xkmake            


---
ARMターゲットのコンフィギュレーションはさっぱり分からないので、この環境を利用してぼちぼち調べてみようかと思います。。



2010/04/15

CGDB

以前GDBを使うときはEmacsと組み合わせて使っていたのですが、最近はVimを常用していることもあってviっぽい操作でソースも見ながらデバッグしたいなと思っていたところ、「実践 デバッギング技法」(オライリー刊)にCGDBというのがちょろっと紹介されていたのを思い出して調べてみました。

日本語の資料はほとんどないっぽいようなので、頑張って本家ページの英語ドキュメントを見ながら使い方を調べていこうと思います。。

まず、~/.cgdb/cgdbrcが設定ファイルなので、「4 CGDB configuration commands」を見て必要そうなのを記入しました。
ざっとこんな感じです。

 set cgdbmodekey=<C-K> 
 map r :run            
 map c :continue       
 map f :finish         
 map n :next           
 map s :step           
 map q :quit           

CGDBを起動すると上にソースコード、下にGDBインターフェイスが表示され、ソースコード枠にフォーカスしているときを "CGDBモード"、GDBインターフェイスにフォーカスしているときを "GDBモード" というようです。

で、CGDBモードに移るときのキーをcgdbmodekeyの値を変えることで設定できるようになっているので、1行目記述でCtrl-Kを割り当てています。(デフォルトはEscなんですが、ちょっと押すのがだるいので。。)

また、mapコマンドでCGDBモードのキー、imapコマンドでGDBモードのキーをコマンドに割り付けられるようになっているので、残りの記述でCGDBモードのときデバッグで多用するコマンドをキーに割り付けています。

とまあ、こんな風に.vimrcと似たような感じで設定をいじれるようになっており、準備はこれで完了です。w

あとはGDBを使うときと同じように、シェルから

 cgdb <実行ファイル> 

と打てばデバッグが開始できます。

開始直後はGDBモードなので、Ctrl-K (設定を変えてない場合はEsc) を押すとソースコード枠にフォーカスが移りCGDBモードになります。基本的にViっぽい操作で表示場所を移動することができ(kで上に移動とか)、スペースキーでブレークポイントをはることができます。
CGDBモードでできないことをやりたくなったら、iを押してGDBモードに戻ります。

このようにエディタにVimとか使ってて、かつGDBに慣れてる人にとってはなかなか快適なデバッガだと思いました。w



2010/04/09

Linuxカーネルの開発を追おうとしてみる

おもむろにLinuxカーネルの開発を追いかけてみようと思い立ちました。。w

以下は、2.6系ツリーをローカルにクローンする手順の覚書です。


  1. 現在Linuxはgitという分散型バージョン管理システムでバージョン管理されているので、まずgitをインストール。自分はGentooを使っているので、 emerge git
  2. クローンを作るディレクトリに移動し、次のコマンドを打つ。git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
これでカレントディレクトリの下にlinux-2.6ができます。
自宅で作ったものの管理は最近Mercurialを使っているのですが、Linuxカーネル開発を追っかけながらgitの使い方もちょこちょこ調べていこうと思います。。

2010/03/22

マイレージ、マイライフ

昨日、久しぶりに洋画を映画館で見ました。(ロード・オブ・ザ・リング以来かな。。)

テレビ番組での紹介を見ただけで特によく調べずに見に行くという、かなり思いつきな行動でしたがかなり楽しめました。w

不況、ネット社会、家族に縛られない人生といった現代社会の有様がとてもうまく描かれており、自分の生き方についていろいろと考えさせられましたね。。

2010/03/03

coltrane's sound

大学時代、友達に貸すためにサークル部屋の連絡箱に入れた後で行方不明になってしまったという、やや苦い記憶のあるJohn Coltraneの「coltrane's sound」のことを横浜に用事で出たときにふと思い出し、そのままHMVで再度購入しましたw

「The Night Has a Thousand Eyes」、「Body and Soul」など名曲が収録されたこの作品ですが、数年ぶりに聞いて改めてその素晴らしさに感動しました。。

2010/02/26

ARMソフトのエミュレーション環境構築

最近は組込みの仕事をしているとARMをターゲットとした開発をする機会が多いと
思いますが、家で勉強したくてもボード等を用意して環境が整えるのはなかなか
難しいですね。。

と言うわけで、私はこの前VirtualBoxにインストールしたGentoo Linux上にクロス
コンパイル & エミュレーション環境を作って勉強することにしましたw

以下、構築手順の覚書です。

1 CPUエミュレータ QEMUのインストール
シェルからemerge qemu、と打ってQEMUをインストールします。
安定版の0.9.1はgcc version 4ではコンパイルできず面倒なのでマスクをはずして
0.11.1をインストールしてしまいました。


2 クロスコンパイル環境の構築
まず、crossdevをインストールします。
emerge crossdev

次に/opt/crossdevというディレクトリを作成し、/etc/make.confに下記の行を
追記します。
PORTDIR_OVERLAY="/opt/crossdev"

最後に下記のコマンドを叩いてしばし待ちます・・・。
crossdev --ex-gdb -t arm-gentoo-linux-gnueabi

3 ARM用バイナリの作成
定番のHello, worldプログラムを用意し、下記のコマンドでコンパイルします。
arm-gentoo-linux-gnueabi-gcc -Wall -g test.c

4 デバッグしてみる
QEMUのユーザーモードエミュレーション機能を使って、プログラムを実行します。
qemu-arm -g 1234 -L /usr/arm-gentoo-linux-gnueabi a.out
このように-gオプションをつけるとGDBの接続を待つことができます。

次にGDBを起動します。
arm-gentoo-linux-gnueabi-gdb a.out

そしてGDB上から以下のように打ちます。
(gdb) target remote localhost:1234

これで無事接続できれば、GDBによるデバッグが可能になります。



2010/02/20

Gentoo Linux on VirtualBox作成日記 その3

前回から非常に期間があいてしまいましたが・・・。

今日はX Serverのインストールです。

基本的には本家のドキュメントに沿っていけばいけましたが、現在はHALの使用が推奨されているのでUSEフラグにhalpolicykitを追加するのを忘れないようにしないといけませんね。

またこちらのWikiに従い、/etc/make.confに下記の記述をしました。
INPUT_DEVICES="evdev virtualbox"
VIDEO_CARDS="virtualbox"
これでvirtualbox用のドライバが入ります。

emerge xorg-server
と打ち込んで数時間待てばインストール完了です。

設定等もドキュメントに従って進めれば特に詰まるところはなかったと思います。

twmとxtermを別途インストールして動作確認がすんだら、あとは好みのWindow Managerをインストールしてひとまず完了です。

私は現在awesomeを使用しています。
やや癖がありますが、慣れてしまえばluaでいろいろカスタマイズできるのでなかなか面白いです。w

気が向けば、、その辺の設定とかも書いてみようかと思います。

2010/02/16

END OF ETERNITY

最近はXBOX360のゲーム、END OF ETERNITYにどっぷりはまってしまって家でまともにPCをつけていない状態が続いており更新が滞っています。。。

勢いで買っただけだったんですがこんなに面白いとは予想外でした・・・w

2010/02/04

Gentoo Linux on VirtualBox作成日記 その2

前回に続いて、仮想マシンの実行環境設定から説明していきます。

5 仮想マシンの設定
仮想マシンの動作環境について詳細に設定します。新規アイコンの右にある設定アイコンをクリックしてください。

5.1 システム
・マザーボード
  複数のプロセッサを割り当てる場合は、拡張機能: IO APICを有効化にチェックを入れます。

・プロセッサ
  割り当てるプロセッサ数を指定します。

・アクセラレーション
  仮想化支援機能を使う場合はチェックを入れます。ハード的に対応されていない場合は、チェックを入れていても自動で無効になります。

5.2 ディスプレイ
・ビデオ
  せっかくOpenGLのアクセラレーションが使えるので、3Dアクセラレーションを有効化にチェックを入れます。ビデオメモリもホスト環境に支障をきたさない範囲で多めに割り当てましょう。私はMAX128MB割り当てました。。


5.3 ディスク
CD/DVDデバイスにインストールCDイメージを指定します。
右側のアイコンを指定すると仮想メディアマネージャが開きますので、先にダウンロードしたイメージファイルを追加、選択します。


以上で必要な設定は完了です。
あとは通常のインストールと同じですので、仮想マシンを起動した後、こちらのドキュメントに従ってインストールを実施します。


ただし、いくつか注意点があるので以下に書きます。

  • ドキュメントではハードディスクのシンボルが/dev/sdaとなっていますが、インストールCDのカーネルは/dev/hdaと認識しますので読み替えが必要です。
  • ホストPCの設定時刻がUTCとして設定されてしまいますので、dateコマンドで-9時間してください。
  • 4.2以降のgccはmarchオプションにnativeを与えると、自動で実装されているCPUを指定してくれるようなのでmake.confはそのように編集するのがよいでしょう。※distccを使う場合は注意が必要です。
  • マニュアルカーネルを使う場合は、こちらを参考にVirtualBox用の環境に設定します。特にネットワークドライバに注意してください。

英語のマニュアル読むのはしんどいですが、やはりできるだけ最新の情報を得るためにここは我慢してがんばりましょう。。

2010/02/02

Gentoo Linux on VirtualBox作成日記 その1

ここ数年はVMware Player等のフリーの仮想化ソフトが非常に充実してきていて、一昔前では敷居の高かったWindows以外のOSを比較的気軽に試せるようになってきました。

というわけで、これまでいくつか使ってきた仮想化ソフトの中でもかなり使い勝手の良かったVirtualBox上にGentoo LinuxをゲストOSとした仮想マシンの作成日記を今日から気合を入れて書いてみようと思います。ホストOSはWindows 7です。

1 VirtualBoxのインストール
ここからWindows版のVirtualBoxをダウンロードし、Windowsにインストールします。


2 仮想マシンの保存場所を変更
デフォルトではユーザーフォルダの下に巨大なディスクイメージも含めて作成してしまいますのですが、これはあまり好ましくありません。特にメディアファイル等の保存用にパーティションを用意しているなら、そちらを仮想マシンの保存場所とするのが良いでしょう。

[ファイル]→[環境設定]→[一般]でハードディスクと仮想マシンのデフォルトフォルダを選択できるので、任意の場所を設定します。
---
例:
デフォルト ハードディスク フォルダ D:\VirtualBox\HardDisks
デフォルト 仮想マシン フォルダ D:\VirtualBox\Machines


3 新規の仮想マシンを作成
VirtualBoxを起動し左上の新規アイコンをクリックすると作成ウィザードが立ち上がりますので、これに従って仮想マシンを作成します。

3.1 仮想マシンとOSタイプ
名前はお好みでつけてください。私はまんまGentoo Linuxとしました。。
OSタイプですが、オペレーティングシステムはLinux、バージョンはGentooを選択してください。

3.2 メモリ
仮想マシン用のメインメモリのサイズを設定します。
デスクトップ環境を構築するので、できれば512MBはほしいですね。私は1GB割り当てています。(2010/02/04修正 1GB割り当てるとパフォーマンスが落ちる?ようなので768MBにしました。)なお、サイズは仮想マシン停止中ならいつでも変更できるので、ここでそんなに悩む必要はありません。

3.3 仮想ハードディスク
ゲストOSをインストールするディスクイメージを作成します。新規のハードディスクの作成を選択し、仮想ディスク作成ウィザードを立ち上げてください。
イメージのタイプとして可変か固定かを選べますが、可変の場合は指定のサイズに拡張するまでは固定に比べてパフォーマンスが落ちるようなので(ヘルプの5.2に詳細あり)ディスクに余裕があれば固定で作る方がいいと思います。大きなファイルを保存するつもりがなければ、サイズは20~30GBくらいあれば十分でしょう。


4 Gentoo LinuxのインストールCDイメージをダウンロード
このページの中から近そうなサーバを選んでGentoo LinuxのインストールCDイメージをダウンロードします。6. Asia - Japanのサーバならどれでも特に問題ないと思います。release/x86/autobuilds/current-iso/ディレクトリの、install-x86-minimal-日付.isoをローカルに保存してください。
なおisoファイルをそのままCDとして扱えるので、CD-Rに焼いたりはしなくて大丈夫です。


以上で下準備完了です。
次回は、実行環境の詳細設定から説明していきます。

2010/01/25

トラックボール

私は、会社では専らマウスを使わずキーボードでなんでもこなそうとする

変わり者と思われており、事実マウスには全くお金をかけてきませんでした。
(キーボードにはかなりお金をかけています。。)

そうは言っても、さすがに全くマウスを使わないわけではないので少しお金を

かけてみようという気になったのですが、ただマウスを買うだけでは面白くない

のでトラックボールにしてみました。

比較的にマウスに近い使用感のを選んだため、特に問題なく使えています。

何よりマウスをうろちょろさせるスペースがいらなくなるのがいいですねw

2010/01/19

はじめまして

はじめまして、Blue-Zephyrというものです。

とある家電メーカーで組込み系プログラマを数年やっています。

主な趣味は音楽と、PC-UNIX(たいがいFreeBSD)いじりです。

音楽は昔は演奏してたこともありますが、最近は専ら鑑賞メインですね。。

これから気が向いたときに主に趣味の話題を投稿していこうと思うので、
よろしくお願いしますm(__)m