2013年8月15日木曜日
Netbeans7.3でpythonの環境を整えてみる
良い機会なので勉強しようと開発環境整えてました。
EclipseとNetbeansどっちが良いのかなぁ?と色々ググってみると、
どうやらJAVAならNetbeansのほうがお手軽そう(?)なので、インストールしてみました。
できれば時々使ってるpythonもNetbeansで開発したいなぁなんて思いまして、
調べてみるとデフォルトではプラグインが入ってないとのこと。
というわけでpythonのプラグインを入れる方法を探してみました。
・・・と言っても実はとても簡単で、
[ツール]→[プラグイン]の[設定]タブを開いて、下のURLを追加することで、
[使用可能なプラグイン]タブに"python"がでてきます。
http://deadlock.netbeans.org/hudson/job/nbms-and-javadoc/lastStableBuild/artifact/nbbuild/nbms/updates.xml.gz
この方法は、
https://blogs.oracle.com/geertjan/entry/python_in_netbeans_ide_7
ここで紹介されていました。
# Thank you Geertjan san!
日本語で紹介している記事がググっても見当たらなかったので、
自分のブログにメモメモです。
探し方が悪いのかなぁ?(´・ω・`)
2013年7月9日火曜日
openSUSEでAruduino IDEを使うときの注意点
といってもやってる仕事内容はそんなに変わらずで、
ちょくちょく過去に自分で書いたメモを参考にしたりして作業してました。
毎度毎度そろそろ更新しよう・・・と思うのですがねぇ。
愚痴はさておき、openSUSEでAruduino IDEを使用する際に、
はまってしまった点があったのでメモ書きです。
結構前に興味本位で購入して、かるーく遊べると思って手を出したら、
USBシリアル経由でプログラムをダウンロードできなくてハマりました。
最初はIDEから「ツール」→「シリアルポート」を選ぼうとしたら灰色になっていて、
選択できない状態でした。
困ったなぁと思っててきとーにググってみると、"ttyACM0"じゃないと認識しないよ?
とか、Ubuntuの場合はttyUSB0でも接続できるパッチがあるよ?
なんて、いろんな情報が書いてありました。
色々やってみても全然状況は良くならなくて、おいおいどーいうこった不良品か?(笑)
なんて考え始めたので、初心に戻って単純に通信できるかを確認してみたところ・・・
なんてことない、デフォルト状態でuserでは/dev/ttyUSB0にアクセスする権限が無かった!
というオチでした。
ということで・・・・
usermod -Gでdialout uucp lockのグループを追加してあげた
ことで「ツール」→「シリアルポート」はちゃんと選択できるようになりました。
ttyUSB0のままでも大丈夫でしたよ!
過去の自分の記事に助けられたことが何度かあるので、
これからはもう少しマメに・・・・・。
2012年3月6日火曜日
Tracのwikiでチケットを表示する方法
そーいえば、コンポーネント毎に分けて表示するのってどうやるんだっけ?
久々すぎて忘れてしまったのでググったのはいいんですが、自分の昔のブログが出てきてしまったので、こっちにコピー・・・(´・ω・`)
wikiでチケットを表示する方法です。
表示だけなら覚えてるのですが、フィルタのかけ方など、
いっつも忘れてしまうので、よく使うものだけとりあえずメモ。
書式
[[TicketQuery( argument, ... )]]
引数は何個でも入る(区切りは「 , 」を使う)
フィルタ
例) status!=closed&owner=$USER
「 & 」でAND検索してフィルタすることもできる。
status 状態 (status=closed)
owner 担当 (owner=$USER)
cc 関係者 (cc=$USER)
component コンポーネント (component=その他)
分類分け表示
例) group=status
表示順の変更
例) order=priority
カラムに表示するものを指定
例) col=summary
2011年10月20日木曜日
UBIFSを使ってみた その3
続き。
UBIFSのImageを作成する方法です。
FilesystemのImage自体は、他のFilesystemと同じで、mkfsを使用します。
# mkfs.ubifs –r rootfs_dir –x none –m 2048 –e 129024\
–c 4096 –o rootfs.ubifs
これでrootfs_dirっていう名前のディレクトリの中身をrootfs.ubifsっていう名前のimageにします。
-mはminimum I/O unit sizeでFlashの書き込みサイズを入れる。
-eはlogical erase block sizeでFlashのブロックサイズ(消去)を入れる。
-cはmaximum logical erase block countでFlashのブロックの数を入れる。
ということで、↑の例は2Kずつアクセスできる512MBのNANDになります。
さて、FilesystemのImageを作った後に、このImageをUBI用に変換しなければいけないんです。
そのためにubinizeを使用します。
まずは、↓のようなconfigファイルを作って適当な名前(rootfs_ubi.cfg)で保存する。
-----------------------------------------------------------------
[rootfs-volume]
mode=ubi
image=rootfs.ubifs
vol_id=0
vol_size=128MB
vol_type=dynamic
vol_name=rootfs
vol_flags=autoresize
-----------------------------------------------------------------
その後、ubinizeを使ってUBI用に変換してあげる。
# ubinize –o rootfs.img –m 2048 –p 128KiB –s 512 rootfs_ubi.cfg
これで、rootfs.imgという名前のUBI用Imageが完成します。
完成したImageを書き込む為には、Target上でubiformatを使います。
# ubiformat /dev/mtd0 –f rootfs.img
これで、mtd0をUBIにしてrootfs.imgを書き込んだ状態になります。
# ubiattach /dev/ubi_ctrl –m 0
をすると、/dev/ubi0_0が既に出来てるはずです。
作ったubifsをrootfsとして起動したい場合、起動時のcommandに”ubi.mtd=0 root=ubi0:rootfs”を追加すると、mtd0をubi0としてattachして、mountしてくれます。
u-bootの場合は、環境変数bootcmdに追加すればOKです。
ざっと、こんな感じです。
きっと、未来の私が確認しにくることでしょう(`・ω・´)
2011年10月19日水曜日
UBIFS使ってみた その2
続き。
実際にUBIFSを使う方法です。
まずは環境。
kernelがUBIやUBIFSに対応していないとお話にならないので、kernelのmake menuconfigで内容の確認です。
↓ の2つが有効になってれば大丈夫だと思います。
---------------------------------------------------------
Device Drivers --->
Memory Technology Device (MTD) support --->
UBI – Unsorted block images --->
<*> Enable UBI
File systems --->
Miscellaneous filesystems --->
<*> UBIFS file system support
---------------------------------------------------------
それから、image作成したり、formatしたりと操作するために、mtd-utilsに内包されている、ubi-utilsが必要になります。
ソースをmtd-utilsのrepositoryからdownloadして、Host用とTarget用の二種類makeして作成してください。
出来上がったものをHostとTargetのPathが通ってるところにコピーしてください。
UBIの使い方。
UBIを介してMTDにアクセスする為には、ubiattachでubiのdeviceを作成 and MTDと関連付けをしてあげる必要があります。
例えば、/dev/mtd1に対してattachする場合は、
# ubiattach /dev/ubi_ctrl –m 1
を実行すると、/dev/ubi0が作成されます。
/dev/ubixのxは、defaultだとattach順になりますが、-d optionを使用すると任意の番号になります。
UBIはvolumeというpartitionみたいなものをdevice毎に持ってます。
/dev/ubi0の中に複数のファイルシステムを作り、管理することが可能です。
例えば”testfs”という名前のvolumeを作成するにはubimkvolを使って、
# ubimkvol /dev/ubi0 –N testfs –m
と実行すると、/dev/ubi0_0が作成されます。
mountする際は、/dev/ubi0_0を指定しても大丈夫ですが、volume名を指定してもmountできます。
# mount –t ubifs ubi0:testfs /mnt
こんな感じです。
volumeを消したい時はubirmvol、MTDとの関連付けを外したい時はubidetachを使用します。
ただUBIを使いたいだけだったらこれだけでも十分だとは思いますが、やっぱり組込で開発していると、予め作成したimageファイルを書き込むのが一般的だと思います。
imageの作成方法や書き込み方はUBIFSの作成の仕方と一緒に書こうと思っていますが、なんだか文章が長くなってしまったので、続きは後ほどその3に書きます。
・・・お昼休み終わっちゃってるし (;・∀・)
2011年10月18日火曜日
UBIFS使ってみた その1
約1年ぶりの更新です。
1年前に腰を壊して以来、ずーっと放置してました(-_-;)
おかげで、英英辞典のやつは3日坊主になってますね・・・。
ぼちぼちゆっくりと更新していきまする。
さて、表題のUBIFSの話。
UBIFSはUBI専用のファイルシステムで、
”UBIFS may be considered as the next generation of the JFFS2 file-system.”
多分JFFS2の次の世代(後継と読んだ方がいいのかな?)になると考えてるらしい、MTD (Memory Technology Device) 用のファイルシステムです。
ではUBIとは何か?というと、”Unsorted Block Images”の略で、MTDと各ファイルシステムの間に入って、データを順番にではなく色んな場所に分けて書き込み(ウェアレベリング)をしてくれるものです。
Flash Memoryって簡単に言うと、コンデンサの周りを絶縁体で固めて漏電しないようにした物の集合体みたいなもので、書き込みする時は電子を貫通させてるんですね。
何回も貫通させてると劣化して書きこめなくなっちゃうんです。
同じところばっかり書き換えしていると、部分的に劣化してしまったりします。
よくPCで使用されているFATやNTFS等は部分的に壊れて(bad block)読めなくなってしまうと、他の様々なファイルも読めなくなっちゃいます。
SSD等は中に入ってるコントローラがウェアレベリングしてくれてるので大丈夫なんですが、NANDをそのまま使う組込の世界では、ファイルシステムで吸収してあげないといけないのですね。
そこで生まれたのがJFFS2やYAFFS2といったウェアレベリング対応のファイルシステムで、UBIはその機能をMTDとファイルシステムの間に入れることで、どんなファイルシステムでも使えるようにしよう!としたもの・・・だと思います。
でもFTLじゃないよ!!”UBI is not a Flash Translation Layer” って公式の説明には書いてありましたw
↓ は公式サイトにあるDocumentから持ってきた図。
困った事に、簡単な説明を書いただけで随分と長めの文章になってしまったので、使い方等は明日書こうかなと思います。
備忘録になるので忘れずに!
意外と過去の自分の記事って自分に役立つなぁって開発中に思いました。
2010年9月2日木曜日
LONGMAN Basic 英英辞典 Exercise 3
LONGMAN Basic EINGLISH DICTIONARY の Exerciseその3です。
Exercise 3 -----------------------------------------
The word alphabet comes before the
word asleep in the dictionary.
alphabetという単語はasleepという単語より前に書いてあります。
These words both begin with the letter a, so
you must look at the second letters (l and s)
to see which one comes first.
これらの単語はどちらもaという文字から始まっているので、
どちらが前に並ぶかは、2番目の文字(l と s)を見る必要があります。
When the first two letters are the same
you look at the third letter.
When the first three letters are the same
you look at the fourth letter, and so on.
最初の2文字が同じ場合は、3番目の文字を見てください。
最初の3文字が同じ場合は、4番目の文字を見てください。
以降同様です。
Look at these words and put them in
alphabetical order:
これらの単語をアルファベティカルオーダーに並び変えましょう。
“these words”
think thirsty thermometer through thunder thumb
throw theory throat therefore thirteen
# answer
# theory therefore thermometer think thirsty thirteen
# throat through throw thumb thunder
----------------------------------------------------
“and so on” same “etc” です。
”etc”が文中に出てきても”and so on”と発音するのが一般的
・・・らしいです。
# ぐぐりました
“えとせとら”じゃーだめなのかー。
初めて知りました。
2010年8月31日火曜日
LONGMAN Basic 英英辞典 Exercise 2
LONGMAN Basic EINGLISH DICTIONARY の Exerciseその2です。
まだまだ、とっても簡単な内容です。
Exercise 2 -----------------------------------------
In a dictionary the words are in the same
order as the letters of the alphabet (this
is called alphabetical order), so that
words that start with a are at the
beginning of the dictionary and words
that start with z are at the end.
辞書内の単語はアルファベットと同じ順番に並んでいます。
(アルファベティカルオーダーと言います)
aから始まる単語が辞書の最初にあり、
zから始まる単語が辞書の最後にあります。
Look at these words and put them in
alphabetical order, beginning with letter
a and ending in letter m.
これらの単語をアルファベティカルオーダーに並び変えましょう。
最初はaで、最後はmです。
“these words”
chair flag lake elephant brush house inside
difference grandson kangaroo monument
journalist arrow
# answer
# arrow brush chair difference elephant flag
# grandson house inside journalist kangaroo
# lake monument
Now look at the main part of the dictionary
to see if you have the right answers.
さぁ、正解かどうかを辞書のメインパートを見て確認しましょう。
----------------------------------------------------
なんか日本語の方が難しい・・・(汗)
ってか誰か!
”main part”の日本語訳を教えてください!
うーん・・・主要部分とかそんなんかぁ??
メインパートの方が通じる気がしてしまいますw
2010年8月29日日曜日
LONGMAN Basic 英英辞典 Exercise 1
お久しぶりの更新です。
先日、英語の勉強の為にこの本を買いました。
せっかく買ったので、この辞書の最初の方に載っている、
Exercisesを翻訳していこうかなぁと思います。
# もし大人の事情で怒られたりしたら消去します
ちなみに、直訳をするつもりありません。
日本語にした時に、伝わりやすくしようと努力するので、
英文とは若干異なった文章になってると思います。
ニュアンスまで変わってたらごめんなさい。
まだまだ勉強中の身ゆえ、指摘or気付いた時に訂正します。
Exercise 1 -----------------------------------------
Look at the letters below and put them in the correct order:
下記の文字を正しい順番に並べなさい:
n t k a s l d i c o
(answer a c d i k l n o s t)
Now look at the alphabet above to see if you have the right answer.
さぁ、正解かどうかを上記のアルファベットを見て確認しましょう。
# Exercise 1 のすぐ上にAlphabetical order と題して
# a ~ z まで全て書いてあります
----------------------------------------------------
小学生でも分かるような超簡単な練習問題です。
とっても親切ね。
すごーく初歩的なところからだけど、おべんきょーの最初の一歩は、
「こんな幼稚なもの今更恥ずかしくて出来るわけないだろボケぇぇ!」
という感情を捨てることかなと思うです。
ってことで頑張るぞ。
・・・Exerciseは全部で30まであるなぁ。
2010年6月24日木曜日
container_of
LinuxのDevice Driverを眺めていると、ちょくちょく見かけるマクロです。
使う機会も割と多いため、覚えて損は無いです。
私も忘れないように一応メモを。
定義場所は”$(kernel_dir)/include/linux/kernel.h”
(kernelはlinux-2.6.34を参照)
#define container_of(ptr, type, member) ({ \
const typeof( ((type *)0)->member ) *__mptr = (ptr); \
(type *)( (char *)__mptr – offsetof(type,member) );})
Cast a member of a structure out to the containing structure.
てことで、memberを入れると、それを持ってる変数のaddressを返してくれるです。
具体的には、
struct test_structure {
struct sub_structure member;
};
struct test_structure parent;
struct sub_structure *child = &parent.member;
struct test_structure *test;
test = container_of(child, struct test_structure, member);
これでtestにはparentのアドレスが入るって動きです。
「”私(1)”は”○○構造体(2)”の”××っていうmember(3)”です!」と言えば、
親を探してくれるって感じで覚えてます。
# 数字は引数の順番
2010年6月14日月曜日
ticklessなkernel
ノートPCや組み込み用のkernelでよくよくお世話になる、
tickless(CONFIG_NOHZ)のお話です。
LinuxのKernelは、定期的なtimer割り込みによって、
schedulerの管理をしています。
その定期的なtimer割り込みの単位をtickっていう言い方をして、
tickを格納している変数がjiffiesです。
timer割り込みの間隔は、CONFIG_HZによって設定されていて、
100HZ, 250HZ, 1000HZから選べるようになっているはず。
(Targetによって違いがあるかも)
仮に100HZとなっていたら1秒間に100回、つまり10msに一回の
timer割り込みが入り、その度にtickがカウントされるという仕組み
になっています。
定期的に割り込み処理が入り、schedulerが呼ばれますから、
当然idleの時間は短くなってしまいます。
(何もしなくても、ね)
そうなると、消費電力を気にするモバイル機器にとっては、
邪魔者以外何物でもなくなります。
そこで登場したのがtickless。
tickless(CONFIG_NOHZ)では、timer割り込みは動作せず、
scheuleは他の割り込みから呼ばれることになります。
jiffiesも同じタイミングでカウントされる為、定期的なカウントアップはしませんが、
時間管理として使用できるようにきちんと補正しています。
そーすることで、定期的に起こる無駄な処理を省き、idle時間を長くすることで、
消費電力を抑えることができます。
っとまぁ、こんな感じのものです。
自分で選んで使用してる癖に、度忘れしてしまっていたので、
思い出しながら書いてみました。
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にはまっています。
私の周りでも小さなブームになっているので、
個人的な話題の為に使用中のキャラを晒しておきます。
こんな姿です。
耳長エルフの女性です。
最初は男性キャラを使用してたのですが、
色々あって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しました。
ドキドキしながら動作させてみると、サクっと動いちゃいました。
こーんな感じです。
上から、
1.fileの内容を確認
2.x86上で普通に実行
3.qemu上で実行
rootで実行してるのは、色を付けたかっただけです。
# あー・・・へいよーぐっつすっすはスルーしてください
# 先日みたニコニコ動画のとある動画の影響デス
これで、実機でも動くことを確認できたら、文句なしですね!
実はお仕事で使ってるのがARMなので、
隙を見てコッソリ動かしてみようかと思ってます。
ファイルシステムの方は・・・流石にコッソリFlashに焼くとかは無理だなぁ(汗)
今度やすーいボードを買うことも検討してみよう。
ところで、qemuのインストール方法ですが、
openSUSEならYaST2のSoftware Managementで、
”qemu”を検索して、出てきたのをインストールするだけです。
引っかかるのが一個だけなので何も悩む必要ないですね。
zypper install qemu でもきっと大丈夫だと思います。
# 私は試してません
他のディストロでも、apt-getやらyumやらで簡単にインストールできるはずです。
インストールするとqemu-XXXっていう実行ファイルがたくさん使えるようになるので、
アーキテクチャに合わせて使ってみてください。
2010年1月3日日曜日
buildrootを使ってみよう その1
buildrootというのは、様々なTargetの開発環境やルートファイルシステムを、
kernelのmenuconfigと同じTUIで作成できるTool(?)です。
ファイルの集合体って言った方がいいのかもしれないですね。
使用するライブラリがuClibcなので、組み込み向けです。
menuはこんな画面です。
試しにTargetとしてARMを選択してみると、
いっぱい出てきました。
こりゃ便利。
いちいち開発環境整えるだけでも大変ですからねぇ・・・。
Targetの選択と、Toolchainの選択と、Packageの選択をして、
makeをすれば簡単にできあがり!
の予定です。
実はmakeしながらブログ書いてます(汗)
kernelもそうですが、最初の一回目のbuildはすっごい時間かかるので、
動作確認はまた今度かな。
評価ボード等、実機で動かせるものは持っていないので、
QEMUを使ってみようと思ってます。
QEMUを使えば、クロスコンパイルして作成した実行ファイルを、
ホストコンピュータ上で実行できます(できるはずです)
ファイルシステムは無駄になっちゃうけど・・・・。
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ってのもむなしいですから。
仕上がりはこんな感じ。
さて、ずいぶんと寄り道しましたが、本題です。
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を使用してます。
2009年12月30日水曜日
Windows7でMTU等を変更
年末のお掃除中ですが、ちょこっとbreak time.
コーヒーのみつつ、サボってたブログの更新です。
MTU (Maximum Transmission Unit)は、通信ネットワークにおいて、
一回の転送で送信できるデータの最大値を示す値です。
っとIT用語辞典に書いてあります。
普通にネットサーフィンを楽しむ方々にとっては縁のない単語ですし、
Developerにとっても、覚えてるだけで気にはしないものだと思います。
一番MTUを気にするのはネットゲーマーでしょうね。
微調整しないとタイミングが狂ってしまう!
なんて方々は、自己責任の下で参考にしてみてください。
Comfortable PCをはじめ、PCのパフォーマンスを微調整できるToolがあります。
これらを使用すれば、簡単に設定できる・・・はずでした。
実はWindows7 Ultimate (64bit)で試してみたところ、
どのToolを使用しても変更内容が反映されない!
という罠にはまってしまいました。
# 変更はできるように見えますが、Toolを起動しなおすと元に戻ってるんです
そこで・・・・
レジストリエディタで直接変更してみました。
どうやら、これなら変更内容が反映されるようです。
管理者権限に昇格したToolで変更が反映されないのに、
レジストリエディタなら変更が反映される。
ちょっと不思議ですが・・・
UACの所為で、権限は管理者でも変数の内容がユーザのもので、
ちゃんと変更されてないとかそんな理由なのかなぁ?
ってことで、変更するべき場所は以下の通りです。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\Interfaces\{Interfaces-serial}\MTU
# {Interfaces-serial}はNICごとに違うので適切なものを選択
Ack延滞を変更する場合は、同じ場所の”TcpAckFrequency”の値を変更。
# 無い場合はDWORDで作成する (デフォルトでは存在しない)
RWINを変更する場合は、同じ場所の”TcpWindowSize”の値を変更。
ですが、Vista以降はRWINを自動調整するのでここの値は意味をもちませぬ。
TcpWindowSizeを有効にする場合は、cmd.exeを管理者権限で起動して、
netsh interface tcp set global autotuninglevel=disabled
って入力してください。
戻す場合は、
netsh interface tcp set global autotuninglevel=normal
です。
これらの調整により、通信のパフォーマンスを向上できるかと思いますが、
調整ミスにより、遅延やタイムアウトが頻発することもあります。
調整の際はいろいろと調べてみてくださいね。
ゲーム毎のMTUもどこかにのってるでしょう。
あーんど、あまりにServerに迷惑かけそうな設定も自重しましょう。
DoS攻撃みたいになっちゃったら大変。
# そんな頻繁に細かくアクセスしても速度落ちちゃいますし・・・
参考までに、
ModemのMTUは576。
ISDNのMTUは1000。
ADSLのMTUは1454。
EthernetのMTUは1500。
FTTH以降は、MTUよりRWINを調整するといいかも。
少しでも快適な環境を目指してみましょ。
2009年12月6日日曜日
openSUSE11.2にEclipse入れたのだけど・・・
openSUSE11.2をVGN-TZ90NS君にインストールしました。
ほんとはReleaseしたその日にDownloadしたので、
すぐさまブログに書こうと思っていたのに、すーっかり忘れてました。
milestone4で起こってたわけわからん不具合動作は、
Release版では治っているようで、今は快適です。
まだ得に特別なことはしてません。
色々遊んでて気になった点を見つけたらレポートしますね。
っということで、早速一つ目。
Pythonの開発環境を整えようと、EclipseをDownloadしてきました。
KDevelopでも良いのだけど、折角Eclipse少しずつ使い始めた分けだし・・・。
Downloadしたのは、 "Eclipse IDE for C/C++ Developers"
もちろんGalileoです。
まぁ、他のPC上でSetupした経験もありますので、すんなりと終わる!!
はずだったのですけどねぇ・・・。
Downloadして、展開して、機動もすんなり出来て、
"Install new software"で"http://pydev.org/updates"を追加して、
"Next"ボタンを押せば後は勝手に・・・・
ボタンを押せば・・・・
ボタン・・・
"Next"ボタンがクリック出来ない!!
orz
これはもーかなり焦りました。
だって、こんな簡単な手順で、間違いようが無いのに、
なんでかボタンがクリック出来ないんだもの。
散々悩んだ挙句に、なんとなくEnterを押したら、
次の画面に進んじゃいました!
( ゚д゚)ポカーン
どーやら、 "Install new software"の画面にある"Next"ボタンを
クリックすることが出来ないようなのです。
"Cancel"は出来るくせに。
とりあえず、キーボード操作をすれば、普通に動くのでスルーしてますが、
原因が何なのかは分かってません。
VMwareで動いてる、openSUSE11.1にも入れてみようかなぁ?
Eclipseが原因とはどうしても思えないです。
なんで、Pythonの開発環境を作ったかって?
前々から覚えたくて「みんなのPython」とか本も揃えたのに、
ぜーんぜん手を付けてなかったらとりあえず用意したのですw
別の目的もありますが、それは追々。