久しぶりに diskless boot を試す。
( 久しぶりに ... というのは、たぶん 20年ぶり位。ほんと。)
PXEが一番一般的だというのは知っているので、その辺から調べる。
dhcpでブートファイル名を読み込んで、tftpでそれを取り込んで、ファイルシステムは NFSでマウントする ... ってまったく昔と変っていないね。少しは変化したのかと思っていたら拍子抜けだ。
名前こそ昔の bootp から dhcp に変っているけれど( もともと、dhcpは、bootp の拡張として考案されたわけだし )、他は受け渡せるパラメータが、たぶん増えているのだろう。
NFS越しの flock で、少し嵌ってしまったけれど、デーモンの起動順序の問題だということで、これも一応解決。
PXEで、リモートインストールできる( 特に Windows ね) という話が見つかったので、これは、周辺機器がほとんど備わっていないネットブックへのインストールには使えるかもしれない。
2010年3月15日月曜日
2010年3月12日金曜日
2010年3月8日月曜日
ルービックキューブ ( その3 )
今は解説本も出ているし、検索すればいろいろ出てくるはずなので、いまさらどうという話題ではないのだけれど。
家にも一つキューブがあって、大抵は一面だけが揃った状態で放置されているのが常なのだけれど、たまには正攻法で元に戻してみようか、ということでしばし戯れる。
正攻法で、というのは、ばらばらに分解して元に戻すというのはナシということ。
解き方自体は、昔流行った当時に一つ考案していたので、それを思いだすだけのことなのだが、細かいところをちょっと忘れてしまっていたので、じっくり思い出してみたということ。
最初のステップは、偶置換になるようにすること。
まあ一手動かせば奇置換は偶置換になるので、問題は現在の状態が偶なのか奇なのかを判定することに帰着するわけだ。
一番手っ取り早い判定法は、8つの頂点の位置(向きは問わない)を揃えること。
8つの頂点のうち、一面分にあたる4つの頂点を揃える(向きは問わない)のは造作もないことなので、この4つを揃えた時に、残りの4つの頂点がどうなっているかをチェックする。
一つだけ合っていて、残りの三つが巡回的にずれていれば偶置換なのでそれで良し。二つ合っていて、残りの二つが互換になっているようなら、これは奇置換なので、90度ずらして3つが巡回的にずれているようにする。
ここから後は、すべて偶置換の操作しか行わないので、最後まで偶置換の状態が保たれる。
具体的には、A B A'B' ( A' は Aの逆の操作) や、X'(偶置換)X の形の操作しか行わない。
( 数学的には、A B A'B' は A と B の交換子 [A,B]と呼ばれるもの。X'YX は Y の共役だ。)
8つの頂点を合わせるというのは、別の言い方をすれば、2×2×2のキューブの解き方と同じなので、これは試行錯誤していれば誰でも簡単にできるようになる。ここでは位置だけを問題にして向きは問わないのだから、ずっとやさしい。( まあ、すっかり忘れてしまっていたけれど。)
次のステップは、12の辺の位置を揃える(向きは問わない)こと。これは、上の交換子の記号を使うなら、[A,B][A,B]で、頂点の位置を変えずに、辺のうちの3つだけを巡回的に動かせるので、これと、その共役の操作を何度かやればできる。
その次は、12の辺の向きを揃える。これは、[A,B][A,B][C,B][C,B]で、頂点の位置や辺の位置を変えずに、二つの辺の向きだけを変えられるので、これを何度かやればできる。
最後に、8つの頂点の向きを揃える。これは、[A,B][A,B][A,B][C,B][C,B][C,B]で頂点の位置を変えず、辺の位置と向きを変えずに二つの頂点の向きだけを変えることができるので、これとその共役を何度か繰り返せば完成になる。
一面ずつ揃えるという一般的な解き方とはちょっと趣が違うので、途中の段階までは、揃っていっているという実感が(見ている人には特に)あまりないのが難点といえば難点。
( 結局、基本交換子 [A,B] が、頂点4個を二つずつ位置を交換して、辺3つを巡回させることから、それを組み合わせて頂点を動かさない変換や、辺の位置を動かさない変換を合成することに帰着させるという仕組み。)
とりあえず、親の威厳は何とか保ったかな。
---
[追記] 辺の向きを揃えるところは、[A,B][A,B][C,B][C,B] でなく、[A,B]X[C,B]X' でできたはず。これだと、前者が16手なのに対して 10手ですむ。少し余分な記憶力が必要になるけれど。
家にも一つキューブがあって、大抵は一面だけが揃った状態で放置されているのが常なのだけれど、たまには正攻法で元に戻してみようか、ということでしばし戯れる。
正攻法で、というのは、ばらばらに分解して元に戻すというのはナシということ。
解き方自体は、昔流行った当時に一つ考案していたので、それを思いだすだけのことなのだが、細かいところをちょっと忘れてしまっていたので、じっくり思い出してみたということ。
最初のステップは、偶置換になるようにすること。
まあ一手動かせば奇置換は偶置換になるので、問題は現在の状態が偶なのか奇なのかを判定することに帰着するわけだ。
一番手っ取り早い判定法は、8つの頂点の位置(向きは問わない)を揃えること。
8つの頂点のうち、一面分にあたる4つの頂点を揃える(向きは問わない)のは造作もないことなので、この4つを揃えた時に、残りの4つの頂点がどうなっているかをチェックする。
一つだけ合っていて、残りの三つが巡回的にずれていれば偶置換なのでそれで良し。二つ合っていて、残りの二つが互換になっているようなら、これは奇置換なので、90度ずらして3つが巡回的にずれているようにする。
ここから後は、すべて偶置換の操作しか行わないので、最後まで偶置換の状態が保たれる。
具体的には、A B A'B' ( A' は Aの逆の操作) や、X'(偶置換)X の形の操作しか行わない。
( 数学的には、A B A'B' は A と B の交換子 [A,B]と呼ばれるもの。X'YX は Y の共役だ。)
8つの頂点を合わせるというのは、別の言い方をすれば、2×2×2のキューブの解き方と同じなので、これは試行錯誤していれば誰でも簡単にできるようになる。ここでは位置だけを問題にして向きは問わないのだから、ずっとやさしい。( まあ、すっかり忘れてしまっていたけれど。)
次のステップは、12の辺の位置を揃える(向きは問わない)こと。これは、上の交換子の記号を使うなら、[A,B][A,B]で、頂点の位置を変えずに、辺のうちの3つだけを巡回的に動かせるので、これと、その共役の操作を何度かやればできる。
その次は、12の辺の向きを揃える。これは、[A,B][A,B][C,B][C,B]で、頂点の位置や辺の位置を変えずに、二つの辺の向きだけを変えられるので、これを何度かやればできる。
最後に、8つの頂点の向きを揃える。これは、[A,B][A,B][A,B][C,B][C,B][C,B]で頂点の位置を変えず、辺の位置と向きを変えずに二つの頂点の向きだけを変えることができるので、これとその共役を何度か繰り返せば完成になる。
一面ずつ揃えるという一般的な解き方とはちょっと趣が違うので、途中の段階までは、揃っていっているという実感が(見ている人には特に)あまりないのが難点といえば難点。
( 結局、基本交換子 [A,B] が、頂点4個を二つずつ位置を交換して、辺3つを巡回させることから、それを組み合わせて頂点を動かさない変換や、辺の位置を動かさない変換を合成することに帰着させるという仕組み。)
とりあえず、親の威厳は何とか保ったかな。
---
[追記] 辺の向きを揃えるところは、[A,B][A,B][C,B][C,B] でなく、[A,B]X[C,B]X' でできたはず。これだと、前者が16手なのに対して 10手ですむ。少し余分な記憶力が必要になるけれど。
2010年3月6日土曜日
gentoo linux ... ( その3 )
gentoo linux を引っ張りだしてきたのも、jffs2 ファイルシステムのイメージをマウントするのが目的だったわけなのだけれど、一応、作業メモ。
1. mtd 関連と、jffs2 関連のサポートを有効にして、kernel の再構築。
( どれか本当に必要なのかよくわからないが、mtd block デバイスあたりまでは必要らしい。)
2. mtd_utils を emerge。( これが、結構バージョンチェックがうるさいかも。)
3. jffs2dump でファイルの中身を確認。bigendian と little endian の違いでエラーがでるようなら、endian の変換。
4. /dev/mtdblock0 が、存在しないようなら、mknode b 31 0 。( ここで作成されるブロックデバイスの大きさは、kernelの再構築の際に何か指定する場所があったような気がする。
5. dd if=jffs2のファイルイメージ of=/dev/mtdblock0
6. mount -t jffs2 /dev/mtdblock0 マウントポイント
ただ、ファイルシステムイメージがクリーンでないもの(つまり、作成された後に、何か修正が加えられたもの)の場合には、修正された部分がうまく読み込めていないような気がする。
1. mtd 関連と、jffs2 関連のサポートを有効にして、kernel の再構築。
( どれか本当に必要なのかよくわからないが、mtd block デバイスあたりまでは必要らしい。)
2. mtd_utils を emerge。( これが、結構バージョンチェックがうるさいかも。)
3. jffs2dump でファイルの中身を確認。bigendian と little endian の違いでエラーがでるようなら、endian の変換。
4. /dev/mtdblock0 が、存在しないようなら、mknode b 31 0 。( ここで作成されるブロックデバイスの大きさは、kernelの再構築の際に何か指定する場所があったような気がする。
5. dd if=jffs2のファイルイメージ of=/dev/mtdblock0
6. mount -t jffs2 /dev/mtdblock0 マウントポイント
ただ、ファイルシステムイメージがクリーンでないもの(つまり、作成された後に、何か修正が加えられたもの)の場合には、修正された部分がうまく読み込めていないような気がする。
linksysの無線ルータ ( その2 )
買ったはいいけれど、ちょっと癖があるね、このルータ。
今日は遅いので、ここまで。
---
[追記] ときどき、妙に電波が弱くなることがあるのだよね。
受ける側の問題なのか、周囲の電波の干渉のせいなのかはよくわからないのだけれど。
直線で 5m位の距離なので、常に「強い」か「非常に強い」で接続していてもおかしくないのだけれど、ときどき「弱い」の状態になる。
まあ、それでも 36Mbit/sec程度はキープしているようから、よしとしよう。
今日は遅いので、ここまで。
---
[追記] ときどき、妙に電波が弱くなることがあるのだよね。
受ける側の問題なのか、周囲の電波の干渉のせいなのかはよくわからないのだけれど。
直線で 5m位の距離なので、常に「強い」か「非常に強い」で接続していてもおかしくないのだけれど、ときどき「弱い」の状態になる。
まあ、それでも 36Mbit/sec程度はキープしているようから、よしとしよう。
2010年3月5日金曜日
linksysの無線ルータ
linksysの無線ルータが780円で売られていたので思わずGET。
何年か前に3000円位で大量に売られていたモデル。そのときは仕様がよくわからなかったので手を出さなかったのだけれど、その時に調べた記憶をたよりに今回は入手しておいた。
ちょうど、RT200KIがらみで無線アクセスポイントの構成を再考しなくてはいけないこともあるし。
で、何はともあれメーカーのサイトを見にいったら、去年の2月に営業活動を終了していて、今残っているのはアフターケアのためだけになっている。まあ、それならこの値段もうなずける。
確か linuxを載せる hackの話題もあったなぁ と検索をかけてみると、こちらは、型番が微妙に違う別のルータだった。
何年か前に3000円位で大量に売られていたモデル。そのときは仕様がよくわからなかったので手を出さなかったのだけれど、その時に調べた記憶をたよりに今回は入手しておいた。
ちょうど、RT200KIがらみで無線アクセスポイントの構成を再考しなくてはいけないこともあるし。
で、何はともあれメーカーのサイトを見にいったら、去年の2月に営業活動を終了していて、今残っているのはアフターケアのためだけになっている。まあ、それならこの値段もうなずける。
確か linuxを載せる hackの話題もあったなぁ と検索をかけてみると、こちらは、型番が微妙に違う別のルータだった。
2010年3月1日月曜日
gentoo linux ... ( その2 )
ひさしぶりに、gentoo を弄ってみたら、EAPI がどうのこうのと文句を言われて、emerge ができなくなっている ;-(
検索してみると、2008年頃に、この辺の仕様が変ってきているみたいで、なんやら portage をアップグレードしないといけないらしい。BLOGの記事を遡ってみると、最後に gentooを使ったのが、2007年の事のようだから、その間に変化があったようだ。
さて、どうやったら スムースにアップグレードできるのだかよくわからない。 gentooのクリーンインストールは結構時間がかかるので ( ソースからコンパイルしないで、バイナリをうまく取り込めば多少速くできることはわかっているのだが、もう細かいやり方を忘れてしまった )あまりやりたくないのだが ...
まあ、たいしてカスタマイズしてあるわけではないので、(時間はともかく)手間は新規インストールが一番少なそうなのだが...
検索してみると、2008年頃に、この辺の仕様が変ってきているみたいで、なんやら portage をアップグレードしないといけないらしい。BLOGの記事を遡ってみると、最後に gentooを使ったのが、2007年の事のようだから、その間に変化があったようだ。
さて、どうやったら スムースにアップグレードできるのだかよくわからない。 gentooのクリーンインストールは結構時間がかかるので ( ソースからコンパイルしないで、バイナリをうまく取り込めば多少速くできることはわかっているのだが、もう細かいやり方を忘れてしまった )あまりやりたくないのだが ...
まあ、たいしてカスタマイズしてあるわけではないので、(時間はともかく)手間は新規インストールが一番少なそうなのだが...
登録:
投稿 (Atom)
