2010年5月21日金曜日

Debian系でnetwork interfaceの設定

 

なんだか、久々にブログ書いている気がする。

 

本日はちょこっとメモを。

Debian系ディストロでnetwork interfaceのIPアドレスを、Hotplug時に割り振る方法が分からなかったので、残しておきます。

 

やりたかったこと:
・とあるinterfaceに対してIPアドレスを静的に割り振る
・hotplug時に自動的に割り振るようにする

Debian系ディストロの場合、/etc/network/interfacesファイルに、
全network interfaceの設定が書いてあるです。

auto eth0
iface eth0 inet static
    address 192.168.0.1
    network 192.168.0.0
    netmask 255.255.255.0
    broadcast 192.168.0.255

って感じで書いてあるのだけど、このままだとhotplug対応してないみたいなんです。

それだと、usb ethernet gadgetなど後で接続するinterfaceは、
とーっても不便なので、ちょいと探してみました。

 

答え:

/etc/network/interfacesファイルを編集。

allow-hotplug $(device name) を追加でOK。
例) allow-hotplug etc0

 

ちなみに、OpenSUSEの場合は、
/etc/sysconfig/network/ifcfg-$(device name)ファイル
がInterfaceの数だけ存在して、STARTMODE=’hotplug’って
書いてあげることで同じことができるです。

全然違うと混乱しますよねぇ。

2010年4月15日木曜日

日本人の知らない日本語

 

日本語って難しいですよねぇ。
日本人のほとんどがそう思ってるはずです。

そんな難しい日本語を、海外の方々が勉強してるのだから、
ほんと偉いなぁって感心します。

そう、感心して心から応援したい・・・のだけど、
(*´艸`)ププっと笑ってしまう、そんな迷言や珍事を漫画化したのが、
この本。

日本人である我々でも、中々知り得ない単語や文章もあり、
面白いだけでなく勉強になる良本だと思います。

「頑張ってください」の敬語が「お疲れの出ませんように」というのは、
この本を読んで初めて知りました。

 

「あなたは侍ですか?忍者ですか?」なんていう変な質問があったりと、
日本人からすると笑える迷言がいろいろと出てきますが、
これ、私たちが外国語学ぶ場合でも同じなんでしょうね、きっとw

多少変な言葉が出ても笑って許せる自分を再認識して、
自分が外国語勉強する時には、もっと積極的に迷言をはこうと思いました。

 

うん、オススメです。

 

 

読んだ本は感想を書く!
と、決めたのに全然書いてなかったので、これからボチボチと。

2010年4月11日日曜日

Oblivionのキャラ

 

もはやべんきょーでもなんでもない。
あ・・・英語の勉強にはなる?w

最近(今更?)、Oblivionにはまっています。

私の周りでも小さなブームになっているので、
個人的な話題の為に使用中のキャラを晒しておきます。

 

こんな姿です。

limone

耳長エルフの女性です。

最初は男性キャラを使用してたのですが、
色々あってLoadすると固まる罠キャラになってしまいまして、
心機一転、女性キャラになりました。

みなと

oblivionって綺麗だよねぇ。
結構前に発売されたゲームなのに、すごいなぁ。

 

ちなみに、今は盗賊ギルドに入って、盗みまくりちうです。

2010年4月7日水曜日

likely()とunlikely()

 

時々とんだ勘違いすることがあるので、忘れないようにmemoです。

Linuxのsourceを眺めてると度々、
if (likely(skb != NULL)) とか、
if (unlikely(local_softirq_pending())) のように、
わざわざif文をlikely() or unlikely()で括ってるものを見かけます。

“un”が頭についてると、ひっくり返したくなる気持ちがこみ上げてきて、
どーしても混乱しちゃうのは私だけですかねぇ?

 

とりあえず・・・・
likely()は、答えが真の場合に高速動作するようにコンパイルしなさい!
unlikely()は、答えが偽の場合に高速動作するようにコンパイルしなさい!

っていう意味です。

それぞれの中身は、
#define likely __builtin_expect(!!(x), 1)
#define unlikely __builtin_expect(!!(x), 0)

__builtin_expect()は、GCCに対し分岐方向のヒントを与えるものです。
第一引数が第二引数の場合は、高速動作するようにしてね!ってね。
# 通常の道をどれにするかのヒントでしょうね(突き進む方向とジャンプする方向)

 

実際にsourceを読む際は、一切無視して構わないってことです。
なのに、時々勘違いしてしまう。

うーむ。

 

新しいノートPCをGetしたことだし、Blogもボチボチ再開しよう。
そんな風に思いながら早5日。

覚えたことを忘れない為に、Blogに書いていたはずなのに、
続かなきゃ意味ないですね(汗)

調べたものや、読んだ書籍など、ネタは溜まってきてるので、
これからちょこちょこと更新するようにします。
# 読んでくれてる方宛? いや未来の自分宛

2010年1月4日月曜日

buildrootを使ってみよう その2

 

buildrootを使ってみよう その1の続きです。

buildrootをmakeした結果、outputディレクトリの下に、
開発環境やファイルシステム等が生成されていました。

buildroot/output/staging/usr/bin –> gcc等
buildroot/output/staging/usr/lib –> libc.so等
buildroot/output/target –> ファイルシステム
buildroot/output/images –> イメージ化済のファイルシステム(ext2等)

buildroot-2009.11ではこんな感じです。
# versionによっては異なることもあるようです

今回はARM用にmakeしてみたので、
arm-linux-XXXっていうファイルがたくさんできました。

 

さて、肝心の動作確認です。
Target用の実行ファイルを作成し、qemuを使って実行してみます。

実行ファイルは、おなじみhello.cです。
makeは今回作成したarm-linux-gccです。
libraryも含めるように-staticを付けてmakeしました。

 

ドキドキしながら動作させてみると、サクっと動いちゃいました。

qemu-kekka

こーんな感じです。

上から、
1.fileの内容を確認
2.x86上で普通に実行
3.qemu上で実行

rootで実行してるのは、色を付けたかっただけです。

# あー・・・へいよーぐっつすっすはスルーしてください
# 先日みたニコニコ動画のとある動画の影響デス

 

これで、実機でも動くことを確認できたら、文句なしですね!

実はお仕事で使ってるのがARMなので、
隙を見てコッソリ動かしてみようかと思ってます。

ファイルシステムの方は・・・流石にコッソリFlashに焼くとかは無理だなぁ(汗)
今度やすーいボードを買うことも検討してみよう。

 

ところで、qemuのインストール方法ですが、
openSUSEならYaST2のSoftware Managementで、
”qemu”を検索して、出てきたのをインストールするだけです。

yast2-qemu

引っかかるのが一個だけなので何も悩む必要ないですね。

zypper install qemu でもきっと大丈夫だと思います。
# 私は試してません

他のディストロでも、apt-getやらyumやらで簡単にインストールできるはずです。

インストールするとqemu-XXXっていう実行ファイルがたくさん使えるようになるので、
アーキテクチャに合わせて使ってみてください。

2010年1月3日日曜日

buildrootを使ってみよう その1

 

buildrootというのは、様々なTargetの開発環境やルートファイルシステムを、
kernelのmenuconfigと同じTUIで作成できるTool(?)です。

ファイルの集合体って言った方がいいのかもしれないですね。
使用するライブラリがuClibcなので、組み込み向けです。

buildroot_top

menuはこんな画面です。

試しにTargetとしてARMを選択してみると、

buildroot_arm

いっぱい出てきました。

こりゃ便利。
いちいち開発環境整えるだけでも大変ですからねぇ・・・。

Targetの選択と、Toolchainの選択と、Packageの選択をして、
makeをすれば簡単にできあがり!

の予定です。

 

実はmakeしながらブログ書いてます(汗)
kernelもそうですが、最初の一回目のbuildはすっごい時間かかるので、
動作確認はまた今度かな。

評価ボード等、実機で動かせるものは持っていないので、
QEMUを使ってみようと思ってます。

QEMUを使えば、クロスコンパイルして作成した実行ファイルを、
ホストコンピュータ上で実行できます(できるはずです)

ファイルシステムは無駄になっちゃうけど・・・・。

 

 

buildrootを使ってみよう その2に続く。

2010年1月2日土曜日

openSUSEでVMwareの共有ディレクトリが使えない?

 

明けましておめでとうございます。

色々あって、うちのノートPCのOSがWindows7になっちゃいました。

デュアルブートも考えましたが、いちいち切り替えるのが面倒なことと、
なにより、Windows7の方が動作が軽い orz

もちろん、グラフィカルな部分を抑えまくることでLinuxの方が軽快になるのでしょうけど、
やっぱり長い時間使っていると見た目も気になるのです。

ということで、年明け早々にopenSUSEのVMimageを作ってました。

 

使用したToolはVMware Player 3.0.0です。
ゲストOSはopenSUSE 11.2で、今回はデスクトップ無しです。

・・・一応GNOMEの環境いれたのでstartxで起動しちゃいますが、
runlevelは3で起動するようにしてます。

開発やサーバ用途の場合、デスクトップなんてあんまし必要ないですしね。
X上で端末立ち上げてCUIってのもむなしいですから。

openSUSE login

仕上がりはこんな感じ。

 

さて、ずいぶんと寄り道しましたが、本題です。

VMwareには、ゲストOSとホストOSで共有するディレクトリを、
vmware-toolsを通して簡単に作成できます。

恐らくは、VMware使う人なら大概は使ってる機能だとおもいます。

普通は、「VM(V)」→「設定」で仮想マシン設定を開いて、
「オプション」タブの「共有フォルダ」を「有効化」することで、
なんの苦労もせずに使えるようになります。

んでもなぜか、openSUSEの場合は使えない・・・というより、
hgfsが無い!のです。

vmware-hgfsclientを見ても使えるようになってそうだし、
おっかしーなぁ?と思って手動でmountしたら出来ちゃいましたw

どーやら、vmware-toolsをインストール時に/etc/fstabの追記や、
/mnt/hgfsを作成してくれないようでして、自分で追記してあげれば、
問題なく使えるようになります。

 

ということで、修正内容。

1./mnt/hgfsをmkdirで作成
2./etc/fstabに.host:/ /mnt/hgfs vmhgfs defaults,ttl=5 0 0を追記

以上!

hgfsの部分は、fstabの内容とあってさえいれば、好きなものに変えてOKです。
今回は、デフォルトで作成されるはずのhgfsを使用してます。