僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
pkgsrcからmake installしてみた。長いなと思ってたら案の定、tclやら何やらを まとめて突っ込んでいた。
webから閲覧するcgiスクリプトをぐぐりながら書いてみて仰天。
山程sshログイン(の失敗)が出てきた。
"re","reg","rege","regex","regexp" が "正規表現"にマッチする。うーむ。
時間が狂いかけていた。ntpdが動いてなかった。
/etc/rc.d/rc.Mには書いてたのに何でだ。
Webにいきなり繋がらなくなった。
$ host hoge ...しばらく待ってから回答。
まず、ルータをチェック。
ログ情報 (現在の時刻:2005/12/04 11:54:32) 2005/12/04 11:54:08 ADSL回線通信中へ移行 2005/12/04 11:53:31 ADSL回線トレーニング中へ移行 2005/12/04 11:53:25 ADSL回線切断
こないだの再起動は11月末なんだけど。
プロバイダもNTT西も、まだ何もなし。
ルータのある部屋は誰もいない。
Inspironにmake install。install時に
表示された案内に従い、/usr/sbin/pppoe-setup
実行。適当に入力して、/usr/sbin/pppoe-start
で簡単に繋がってしまった。
(繋げる前にPlamoがデフォルトで立ち上げるサービスをkillしまくる。当然)
既成のLANとの接続も残しておきたかった
ので、eth2(PCMCIA)を経由してNetに繋がっている。
デフォルトゲートウェイまでは自動ではゆかず、
一旦route del default gw $IPしてからroute add(ry。
しかし、それにしても、pppoeって、こんなの もできるんだったのか。そうですか。
$ /sbin/ifconfig ppp0 ppp0 Link encap:Point-to-Point Protocol inet addr:61.XXX.XXX.XXX P-t-P:211.XXX.XXX.XXX Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1454 Metric:1 RX packets:1203 errors:0 dropped:0 overruns:0 frame:0 TX packets:1204 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 RX bytes:104653 (102.2 Kb) TX bytes:104329 (101.8 Kb) $ netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 211.XXX.XXX.XXX 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 0.0.0.0 211.XXX.XXX.XXX 0.0.0.0 UG 0 0 0 ppp0
traceroute -n する。
某巨大掲示板まで11Hops!(自宅のルータは13)。こりゃ近いや。
遅い(約314ms、自宅が約114ms)けど。
今度はpppoeからRFC3056に挑戦してみる。
以下、
でぶあんの引き写し+α。
まずppp0に割り当てられたグローバルなv4アドレスを16進に。
$ printf "%02x%02x:%02x%02x" XXX XXX XXX XXX && echo "" XXXX:XXXX
プレフィックスは"2002:"、サフィックスに適当なホストアドレス"::1"で、
$ echo "2002:XXXX:XXXX::1"
それをsit0に設定...する前におまじない。
sit0をいじる権限は
kernel-2.6.19ではCONFIG_IPV6_PRIVACYをyにしても、
デフォルトでは有効にならなかった。よって、
# echo 2 > /proc/sys/net/ipv6/conf/all/use_tempaddr
する。
さてトンネリングデバイスに設定。
# ip link set sit0 up # ip addr add 2002:XXXX:XXXX::1 dev sit0
最後に
パブリックゲートウェイを借りる。こっちも6to4.ipv6.microsoft.com。
この場合に限りM$まんせい。
$ host 6to4.ipv6.microsoft.com 6to4.ipv6.microsoft.com has address MMM.MMM.MMM.MMM 6to4.ipv6.microsoft.com has IPv6 address 2002:VVVV:VVVV:VVVV:VVVV:VVVV:VVVV:VVVV # ip route add 2002::/3 via ::MMM.MMM.MMM.MMM
で、接続確認。まずw3m。デフォルトでも逝けたが、念のため。
$ w3m -6 -dump_source http://www.kame.net >6.txt $ w3m -4 -dump_source http://www.kame.net >4.txt $ diff 6.txt 4.txt 21,22c21,23 < <img src="/img/kame-anime-small.gif" alt="Dancing kame" /><br /> < Dancing kame by <a href="http://www.momonga.org/">atelier momonga</a> --- > <img src="/img/kame-noanime-small.gif" alt="Non-dancing kame" /><br /> > Use IPv6 HTTP and you will watch > <a href="/kame-mosaic.html">the dancing kame</a> (ry
DeerPark-1.5.0.7で、カメが泳ぐのも確認できた。
↑まで書いていたら、ACアダプタを繋ぎ忘れていたInspironが突然消灯してしまった。
もう一度やり直して、ここまで。
v6ルータはできなかった。まだまだだとorzな実感。
OUTSIDE:$ nmap $PPPOE_IP | grep filtered | wc -l 234
自分が内側からDROPさせるよう設定したのは6000/tcpだけ
なんだけど、残りはIPSのルータが撥ねているみたい。
ちなみに25/tcpは開いていた。
眠いが、寝たくない、まだ。
scim-rubyのDebianパッケージ。こないだ既に突っ込んだので食指いまいちだけど、そのうち。
iMacのDebianにapt-fileを入れた。update でローカルにデータベースを構築して、 そっから検索する、らしい。
Ping6を探して、 ringサーバから頂戴したGNU inetutils-1.5 をmake。
pingはrootにsetuidしているもの(ユーザ、グループともrootで4755:-rwsr-xr-x)
だなんて、知ってたかどうかも思い出せない。
# ping ::1 -c 3 ping: unknown host ::1 # ./ping6 ::1 -c 3 PING ::1 (::1): 56 data bytes 64 bytes from localhost: icmp_seq=0 ttl=64 time=0.094 ms 64 bytes from localhost: icmp_seq=1 ttl=64 time=0.078 ms 64 bytes from localhost: icmp_seq=2 ttl=64 time=0.078 ms --- ::1 ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max/stddev = 0.078/0.083/0.094/0.000 ms
もちろんfe80:に始まるリンクローカルアドレスも同様。
もうすこし
PPCのEtchでつつく。
man を見て、~/.smb/fusesmb.conf をいじってみた。
表記法はsmb.confと似ている。
[/SERVER_FIRST] username = FIRST_USER password = MAGIC_WORD [/SERVER_SECOND] username = ANOTHER_USER password = NEW_PASSWORD
共有の中身があっさり見えるようになった。
smb.confをヒントにして、[global]セクションに
charsetなど(dos,unix,display)を書いたりもした
(念のため~/.smb/fusesmb.cacheを消す)が、
2003サーバの日本語ファイル名がShift_JISなのは、
やっぱり変らない。
current(しか、置いてなかった)を頂戴してビルドしてみる。
$ make gcc -O2 -Wall -c -o conf.o conf.c In file included from iw_if.h:22, from conf.c:31: /usr/include/linux/wireless.h:650: error: 文法エラー が \ "__s32" の前にあります /usr/include/linux/wireless.h:652: error: 文法エラー が \ "disabled" の前にあります ; 以下、122行略 make: *** [conf.o] エラー 1
あれこれ開いたり閉じたり。
/var/log/packages$ grep wireless.h * kernel_headers:usr/include/linux/wireless.h tcpip:usr/include/wireless.h wireless_tools:usr/include/wireless.h
どれかが上書きされている可能性を考えて、tcpipパッケージのwireless.hと差し替えてみる。
$ make gcc -O2 -Wall -c -o conf.o conf.c conf.c: In function `read_cf': conf.c:414: error: label at end of compound statement conf.c: In function `write_cf': conf.c:485: error: label at end of compound statement make: *** [conf.o] エラー 1
てきとーにぐぐって、いー加減に対処。エラーの出た箇所の直前に";"だけ の行を入れてみた。すると、
$ make (ry wavemon.c: In function `main': wavemon.c:173: 警告: 関数 `exit' の暗黙の宣言 wavemon.c:173: error: 関数 `exit' への引数が少なすぎます make: *** [wavemon.o] エラー 1
exit();がひっかかるのだろうか。
ぐぐると、ヘッダとかで明示していることも
あるようだけど。適当に1とか入れると、一応make が通った。
make install すると、ソースツリーからバイナリと
man がなくなっていた。*.oは残っていたけど。
ただwavemonとやっただけではすぐ、"fatal error: could not get range information" とか吐いて死ぬ。適当につついて、~/.wavemonrcを編集する。
~$ cat .wavemonrc interface = ath0 startup_screen = histogram
ヒストグラムは表示できなかったが、F3キーにてaplist表示はできた。
F9キーにて動画っぽいクレジット。
wavemon - status monitor for wireless network devices version 0.4.0b (2002/12/21) programmed by jan morgenstern <jan@jm-music.de> distributed under the terms of GNU general public license >=v2 wavemon uses the wireless extensions API programmed by jean tourrilhes <jt@hpl.hp.com> http://www.jm-music.de/projects.html please contact me of you have any bug reports or suggestions!
結局、これだけ。
ツッコミを受けて、もう少し。
/usr/pkgsrc/mk/tools/tools.Linux.mk に列挙されている
コマンドを test -f にかけてみる。
tcsh,mail,identは、LFS6.4に含まれていない。
chgrp は /bin の下を前提としているが、/usr/bin の
下になっていた(LFSのドキュメントではcpやchmod同様に
移動させているので、何かミスっていたみたい)。
find と chgrp を /bin の下に移動させてから openssh を再度 bmake install すると、あっさり通った。やれやれ。
ramfs を試す。
# mount -t ramfs /dev/mem $MOUNTPOINT であっさりできた。
書き込んだファイルはumount すると消える。
でも、ここに際限なくファイルをコピーしていると、
カーネルが死んでしまう。たとえ一般ユーザであっても。
マウントオプションによっては、もう少し強くなれるかもしれないが。
$ smbtree Passwd: ($SMBPASSWD) $WORKGROUP \\$COMPUTER_1 \\$COMPUTER_1\C$ Default share \\$COMPUTER_1\ADMIN$ Remote Admin \\$COMPUTER_1\D \\$COMPUTER_1\IPC$ Remote IPC \\$COMPUTER_1\$USER \\$COMPUTER_2 cli_start_connection: failed to connect to $COMPUTER_2\ <20> (0.0.0.0). Error NT_STATUS_BAD_NETWORK_NAME \\$SMB_SERVER $smb server \\$SMB_SERVER\[$PUB1] $COMMENT \\$SMB_SERVER\[$PUB2] \\$SMB_SERVER\IPC$ IPC Service ($smb server)
USB-HDD でLFSをいじっているうちに出るようになった。
冗談じゃない。使用率80%とはいえ、まだ5GB以上は空いているのに。
NotePCのPlamoに切り替えてmount しても、同様。すぐに
書込み操作ができなくなってしまう。
勿論本体のHDDには異常は見られない。
HDDをケースから出してみたが、特に過熱している様子もない。
e2fsck にいくつかオプションをつけてチェックしてみたが、
効果なし。何度も引き抜いたりしたが同様。
結局 mkfs しなおさないと直らなかった。
再々建を目論んだが、また"No space(ry"。
今度はLFS6.3のホスト・システムが100%になっていたことが原因だった。ソースも結構膨大なものだ。
カーネルソースやkde、xorgなどを消すと、少し空いてきた。
Smalltalk には初めから入ってるらしい。
$ gst GNU Smalltalk ready st> a := 1. 1 st> b := [ a := a + 1]. a BlockClosure st> 10 timesRepeat: [(b value) factorial printNl]. 2 6 24 120 720 5040 40320 362880 3628800 39916800 10
Squeak でも、
a := 1. b := [ a := a + 1]. 10 timesRepeat: [Transcript show: (b value) factorial ; cr].
でTranscript に階乗がずらりと。
写真を順繰りに表示するテスト。
まず、「ファイルリスト」から、Squeakの外に保存している写真を
何枚か読み込む。
「本」という"複数ページつづり"なオブジェクトを出して、ページを追加
(初期状態では"+"マークは表示されていない)しながら、写真をページに入れる。
勝手にめくれるようにする手段があまり思いつかず、さしあたり別のオブジェクト
がぶつかるたびに「本」の「次のページへ」が実行されるようにする。
スクリプト1 self turn: 20. (self overlapsAny: 本) "" false ifTrue: [本 nextPage]
オブジェクトを「隠す」設定にしても、「ぶつかる」ことは変りなかった。
少し大きめなスクリーンショット。
「スケッチ」の描画について。何も描いていないところには、「消しゴム」を かけておいたほうがいいかもしれない。
なんとか gst でfizzbuzz できた。
前のよりも(一応)すっきりしてる、はず。
fbarray := Array new: 100 1 to: 100 do: [: x | ( x \\ 3) == 0 ifTrue: [ fbarray at: x put: 'fizz' ]]. 1 to: 100 do: [: y | ( y \\ 5) == 0 ifTrue: [ fbarray at: y put: 'buzz' ]]. 1 to: 100 do: [: z | ( z \\ 15) == 0 ifTrue: [ fbarray at: z put: 'fizzbuzz' ]]. 1 to: 100 do: [: i | (fbarray at: i) isNil ifTrue: [ Transcript show: i printString; cr. ] ifFalse: [Transcript show: (fbarray at: i); cr. ]]
ループは一度で済ませたいものだ。これは後でまた考えよう。
表示だけ、縮小しておくこととする。
$ identify 20131204_02.png 20131204_02.png PNG 360x206 360x206+0+0 8-bit DirectClass \ 79.5KB 0.000u 0:00.000
Raspberry Pi で5時間以上かかった。
$ identify 20131204_02.png 20131204_02.png PNG 360x206 360x206+0+0 8-bit DirectClass \ 79.5KB 0.000u 0:00.000
少なくとも、この画像処理が不向きな写真も多い、といえそうだ。
これも同じ。
$ identify 20131204_03.png 20131204_04.png PNG 128x128 128x128+0+0 8-bit DirectClass \ 10.7KB 0.000u 0:00.000
$ identify 20131204_04.png 20131204_04.png PNG 360x355 360x355+0+0 8-bit DirectClass \ 43.9KB 0.000u 0:00.000
そろそろコピペにも飽きてきた。
絵のコピペに飽きて、計算のコピペ。
以前やった環境など覚えてないので、今回はちゃんと。
まずUbuntu-12.04 on Macmini。
rubyは1.9.1
python3(.2.3)はpython(2.7.3)より少し遅い程度だった。
$ grep "model name" /proc/cpuinfo
model name : Intel(R) Core(TM)2 Duo CPU P8600 @ 2.40GHz
model name : Intel(R) Core(TM)2 Duo CPU P8600 @ 2.40GHz
$ time ruby -e "puts 2**640000" > /dev/null
real 0m0.647s
user 0m0.624s
sys 0m0.020s
$ time python -c "print 2**640000" > /dev/null
real 0m1.514s
user 0m1.504s
sys 0m0.008s
$ time echo 2^640000 | bc > /dev/null
real 0m3.227s
user 0m3.220s
sys 0m0.000s
次いで、手元のNote。
ruby は 1.9.3p194。
なんかPython(2.5.6c1)とPython3(.2.3)が大違いだった。
$ uname -a Linux cf-y4 3.2.0-4-686-pae #1 SMP Debian 3.2.51-1 i686 GNU/Linux $ grep "^model name" /proc/cpuinfo model name : Intel(R) Pentium(R) M processor 1.60GHz
$ time ruby -e "puts 2**640000" > /dev/null
real 0m3.051s
user 0m3.024s
sys 0m0.024s
$ time python -c "print 2**640000" > /dev/null
real 0m31.346s
user 0m30.718s
sys 0m0.012s
$ time python3 -c "print(2**640000)" > /dev/null
real 0m7.318s
user 0m6.752s
sys 0m0.048s
$ time echo 2^640000 | bc > /dev/null
real 0m6.174s
user 0m6.116s
sys 0m0.000s
それにRaspbian。
ruby は 1.9.3p194。python は 2.7.3 と 3.2.3 で大差なかった。
$ uname -a Linux raspberrypi 3.6.11+ #538 PREEMPT Fri Aug 30 20:42:08 \ BST 2013 armv6l GNU/Linux
$ time ruby -e "puts 2**640000" > /dev/null
real 0m13.911s
user 0m12.950s
sys 0m0.090s
$ time python -c "print 2**640000" > /dev/null
real 0m43.382s
user 0m40.730s
sys 0m0.130s
$ time echo 2^640000 | bc > /dev/null
real 0m23.707s
user 0m22.350s
sys 0m0.060s
結論。ruby1.9xはbc1.06より速い。こともある。
一行でできなかった。
Mail$ for DIR in `find . -maxdepth 1 -type d`; \ do echo -n $DIR: ; \ find $DIR -type f -name '[0-9]*' |wc -l; \ done > mail.txt \ Mail$ $ awk -F: '{print $2 $1}' mail.txt | sort -n | tail -n10 3709./k-of2014 3798./mixi 6884./janog 7128./plamo 11243./osc 11719./lilo 12512./vine 14338./test 79929./nif 213681.
昔の捨てていないメールがかなりあるということか。
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。