僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
↓でとったFreeSBIEから起動させてみた。FreeBSD同様の起動メニューの 後に出てきた一発は、なかなかの押し出しだ。 そのまま放っておくと、フレームバッファ(?)でスクリーンセーバー が起動していた。 で、環境選択の画面は、tcshのconsoleがデフォルトなのが いかにもBSDらしい(気がした)。特にトラブルもなく1024x768で XFceのデスクトップに なった(スクリーンショットを見て気づいたが、画面の左端が切れて いて、モニタで表示できてなかった)。 DHCPでネットにもつながった。 デフォルトのユーザがrootつうのはなんだかなぁ。 適当にコマンドを叩いてみた。
#uname -a FreeBSD freesbie.livecd 5.3-RELEASE-p2 FreeBSD 5.3-RELEASE-p2 #5: \ Thu Dec 2 19:22:53 CET 2004 root@athlon.casadamico.net:\ /usr/obj/usr/src/sys/FREESBIE i386
Debian testing w3m Emacs21.4(with Mule-UCS) + sumibi + HappyHackingKeyboard2 で書いている。
DragonFly BSD も気になったが、今、手許の*BSD(の稼働状況)には、
特に不満はない。で、
FreeSBIEに目を付けた。FTPばかりではつまらないので、Bittorrentで
取ってみることにする。
まず、前の日記を読み直す。
Plamoが何かひっかかったが、追究する気になれず、
Debianを起動して、適当なテキストベースのクライアントを
apt-get install。
bittorradoのインストールはうまくいったが、実行するファイル名の
確認にひと苦労。$ btdownloadccurses FreeSBIE-1.1-i386.torrent
でダウンロードが始まった。
黒っぽい画面に灰色の文字で、こんな感じ。
---------------------------------------------------------- | file: FreeSBIE-1.1-i386 | | size: 625,009,389 (596.05 MiB) | | dest: /path/FreeSBIE-1.1-i386 | | progress: #############################_________________ | | status: finishing in 0:10:20 (63.8%) | | dl speed: 294.6 KB/s | | ul speed: 0.0 KB/s | | sharing: 0.000 (0.0 MB up / 380.5 MB down) | | seeds: 13 seen now, plus 0.632 distributed copies | | peers: 0 seen now, 0.0% done at 0.0 kB/s | | | ----------------------------------------------------------
不慣れな環境でぶちぶち書いているうちに "download succeeded!" と出た。 でも依然として、ハブとルータのLEDは点滅を続けている。
(ry | status: download succeeded! | | dl speed: --- | | ul speed: 34.0 KB/s | | sharing: 0.049 (29.3 MB up / 596.1 MB down) | | seeds: 15 seen recently, plus 0.464 distributed copie | | peers: 1 seen now, 46.4% done at 185.4 kB/s | | | ----------------------------------------------------------
今度はアップロードか。さていつまで貢献を続けるか?
耳鼻科から帰って見たら、ul speed: が"1.2 kB/s"当たりで低迷していた。
sharingは 0.1かそのくらいだったっけ。補筆してる時点ではもう
忘れた。
SIS900なんて、ステ?
Apr 11 18:53:15 debian -- MARK -- Apr 11 19:05:39 debian kernel: device eth0 entered promiscuous mode Apr 11 19:05:45 debian kernel: device eth0 left promiscuous mode Apr 11 19:06:26 debian kernel: device eth0 entered promiscuous mode Apr 11 19:06:36 debian kernel: device eth0 left promiscuous mode Apr 11 19:06:38 debian kernel: device eth0 entered promiscuous mode
が $ source file と同じ効能があったのか。本のおかげでタイプが減った。 しかし.って何だ?ええと、ええと。
$ echo $BASH_VERSION 3.00.0(1)-release $ help . .: . filename [arguments] Read and execute commands from FILENAME and return. The pathnames in $PATH are used to find the directory containing FILENAME. If any ARGUMENTS are supplied, they become the positional parameters when FILENAME is executed.
$ echo $BASH_VERSION 1.14.7(1) $ help . .: . filename Read and execute commands from FILENAME and return. The pathnames in $PATH are used to find the directory containing FILENAME.
と少し遊ぶ。
オプションは分りにくい。リモートログインするなら、 host ! $端末
は必須か。あと、-n をつけると、[|domain] が大きく減った。
<憶測>
どうやら tcpdump自身が名前解決をしなくなるので、その分パケットが
生成され...なくなる(当然キャプチャもしない)からか?
</憶測>
Webサーバの /usr/bin/telnet の実行属性を外して、他所から覗きにくい ところに隔離しておいた。
cronに音を鳴らさせる案。
当初目覚し時計を考えたけど、内蔵アンプと スピーカでは音が小さ過ぎる。
音楽では長いから、短い簡単な音声で、11時なら11回 30分なら1回鳴るようなシェルスクリプトでも書くか。 零時は12回としてdate から出した回数を...
眠いので妄想はここまで。
qemuについてきたlinux.img (l.imgと略)をcloopしてみた。
ブロックサイズ指定を512にしたり65536にしたり、--best をつけたり。
root@0[hda3]# ls -l l* -rwx------ 1 $USER $GROUP 10485760 2006-02-15 11:15 l.img -rw-r--r-- 1 $USER $GROUP 6392544 2006-04-11 10:40 l_512.cl.img -rw-r--r-- 1 $USER $GROUP 6387590 2006-04-11 10:43 l_512b.cl.img -rw-r--r-- 1 $USER $GROUP 4501071 2006-04-11 10:45 l_65536.cl.img -rw-r--r-- 1 $USER $GROUP 4500657 2006-04-11 10:45 l_65536b.cl.img
--best をつけると、処理時間は数倍以上になるようだった。
$ time create_compressed_fs l.img 512 >l_512.cl.img (ry real 0m5.255s user 0m2.728s sys 0m1.643s $ time create_compressed_fs --best l.img 512 >l_512b.cl.img (ry real 1m40.774s user 0m48.307s sys 0m49.227s $ time create_compressed_fs l.img 65536 >l_65536.cl.img (ry real 0m3.923s user 0m3.789s sys 0m0.107s $ time create_compressed_fs --best l.img 65536 >l_65536b.cl.img (ry real 0m40.964s user 0m29.930s sys 0m11.006s
実は、圧縮したファイルはどれも、未だにマウントできていない。
$ file l_512.cl.img l_512.cl.img: Bourne shell script text executable
間違って何かを上書きしたかと一瞬ひやり。
$ head l.512.cl.img #!/bin/sh #V2.0 Format modprobe cloop file=$0 && mount -r -t iso9660 /dev/cloop $1 exit $? (ry ; 以下バイナリコードの文字化け続く
ヒント?
# mkdir -p /mnt/new # modprobe cloop file=l_512.cl.img && \ mount -r -t iso9660 /dev/cloop /mnt/new # mount | grep new /UNIONFS/dev/cloop on /mnt/new type iso9660 (ro)
--best もおっけー。
快哉。
後記。自分の勘違いだった。cloopはisoイメージを
圧縮できるに過ぎない。マウントされたものはKNOPPIXだった。
8年前(2000/9/9の日付あり)に貰った 本の埃を払ってチュートリアルを眺めつつ 試行錯誤。
; リビジョン1.3で上書きする # cvs -Q update -p -r 1.3 samba/smb.conf > samba/smb.conf # cvs commit -m "Return Revision 1.3" samba/smb.conf
user@Ubuntu:~$ fd プログラム 'fd' はまだインストールされていません。 \ 次のように入力することでインストールできます: sudo apt-get install fdclone -bash: fd: command not found user@Ubuntu:~$ hogehogehoge -bash: hogehogehoge: command not found
LFS-SVN ではビルドがうまくいかないようだ。
$ make ARCH=um (ry make[1]: `arch/um/sys-i386/user-offsets.s' is up to date. CHK arch/um/include/shared/user_constants.h CHK include/linux/version.h CHK include/linux/utsrelease.h SYMLINK include/asm -> include/asm-um CALL scripts/checksyscalls.sh CHK include/linux/compile.h GEN .version CHK include/linux/compile.h UPD include/linux/compile.h CC init/version.o LD init/built-in.o LD .tmp_vmlinux1 /usr/bin/ld:arch/um/kernel/vmlinux.lds:1: ignoring invalid \ character `#' in expression /usr/bin/ld:arch/um/kernel/vmlinux.lds:1: syntax error collect2: ld returned 1 exit status KSYM .tmp_kallsyms1.S nm: '.tmp_vmlinux1': No such file No valid symbol. make: *** [.tmp_kallsyms1.S] Error 1
UMLのページにあったkernel-2.6.27でも、やはりうまくいかない。
Plamo-4.22や同4.6は問題なくできるのだけど。
>>> array {'color': 'pink', 'suger': 'sweet', 'drink': 'juice', 'zoo': 'monkey'} >>> print array.keys() ['color', 'suger', 'drink', 'zoo'] >>> print [key for key in array.keys()] ['color', 'suger', 'drink', 'zoo'] >>> print [key + " " + key for key in array.keys()] ['color color', 'suger suger', 'drink drink', 'zoo zoo']
gosh> (define (compare num1 num2) (cond ((> num1 num2) (list num1 "is larger than" num2)) ((< num1 num2) (list num1 "is smaller than" num2)) (else (list num1 "and" num2 "is equal")))) compare gosh> (compare 3 4) (3 "is smaller than" 4) gosh> (compare 3 1) (3 "is larger than" 1) gosh> (compare 3 3) (3 "and" 3 "is equal")
某所で見た、[n0, n1, n2 ...] を、 n0*0 + n1*1 + n2*2 ... のようにする問題。
>>> def listplus(list): ... y = z = 0 ... for x in list: ... z = z + x * y ... y += 1 ... return z ... >>> listplus([1,2,3,4]) 20
(define listplus (lambda (list) (cond ((null? list) 0) (#t (+ (* 2 (car list)) (listplus (cdr list))))))) (listplus '(1 2 3 4)) 20
やっぱり再帰による繰り返しは、
ちょっと難しい。
python で再帰を書いてみようかとも考えたが、
次回思いついたときにする。
本の、
前よりも優れている筈の方法。例によって
RaspberryPI。
GPIOは
P5のGPIO28、29、30。
一度がむしゃらに組み立てて失敗。極性を間違えていたようだ。
今度は
基板の絵を見ながら組み立てて、どうやら成功したらしい。
どれか一つを点灯させるためには、GPIOの一つをINに、一つを
OUTのLOWに、残りをHIGHにする。
ports = [28,29,30] GPIO.setup(ports[0], GPIO.IN) GPIO.setup(ports[2], GPIO.OUT) GPIO.setup(ports[1], GPIO.OUT) GPIO.output(ports[1],GPIO.HIGH)
といった調子で、6つのうち1つを点灯させることができた。
二つならINだかHIGHだかを変えればよいが、
それ以上は速く切り替えて、どちらも点いているように
見せる必要がありそうだ。
GPIOひとつにLEDひとつと比べると、プログラムは
だいぶ複雑になりそう。
まだ多いとは言えないが、4本のGPIOなら12個のLEDが使える
はず。
もっともそれなら、7セグメントLEDで試したいものだ。
でも、7セグメントは片方がコモンになってるから、
そのままでは無理か。
時々図書館で数学ノートがわりにしていたが、秋以降ずっと
放置。
リリースのアナウンスを受けてアップデート。
データのバックアップをとっておいたが、消されずに済んだ。
前より線が若干細くなった感じ。
ページスクロールに、まだ「コツ」が要るようだった。
まだ使う暇がない。
RaspberryPIに付けるには少々大きく(USBから
約27mmもはみ出す)、また電力食い
(公称160mA)に見える。ヨドバシで2000円弱。
装着すると、やはりかなり目立つ。
例によって、ただ挿して通電するだけで何の変哲もなく動作。
やはりLinux(Raspbian)は楽だ。
アナログ電流計で、付けていないとき(TypeBで360mA前後)
付けてsshログインした時(同じく530mA前後)との違いを確認。
やはりそれくらいは消費しているようだ。
ちょっと涼しい今日は、さほど熱くならないようだけど、 8月の昼、ひなたでどうなるかは、そのうちに。
全景写真は電流計がよく写るようストロボを焚いたので、 LEDの光ってる様子が見えなくなった。
fizzbuzzが4倍になった。
IchigoJamのベンチマークをやってみた。
まずVIDEO 0/1で画面表示を切り/切らず、
tick() を実行ループの前後に入れてストップウォッチ代わりにする。
ループ回数は適当に500回。その間はLEDをつけっぱなしにする。
END の前で画面表示を戻す。
画面表示 ON では 1138(18.97秒)、OFFにすると 281(4.68秒)になった。
ちなみに、AVケーブルを抜いても、スピードは変わらない。
LED点灯のコマンドを消しても、ベンチマークの値は変化しなかった。というか 再起動しても全然変わらない。
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。