Libretto20な日々
もらい物のノートPC Libretto20を日々いじくっている記録です。
この真似をして壊れてしまっても私は知りませんので悪しからず。
2000/12/15
基研の昼食会にて、二宮さん(基研の教授、世界的に著名な物理学者)が
「昔買ったLibrettoがあるが、今は使っていない。誰か使う人はいないか?」
と提案。早速、私が手を挙げてもらう事になる。
2001/1/29
二宮さんからLibretto20を受けとる。色んな人々に使ってもらっていたらしいが、外見の状態は結構良い。
HDは500MBが搭載されていた。
一緒にもらったのはACアダブタ、急速充電器、拡張アダプタとPC-Card接続のFDD。
FDD用のPC-Cardはまだ…。
HDの中のWindow95の状態はぼちぼち。
ただ、Winsock周辺がおかしくなっていて、ping localhost
が帰ってこない、というよりpacketが送り出せていない様だ。
よって、このままではモバイルマシンとしての使用は絶望的。
FreeBSDの導入を考えるも、FDDもしばらくは使えそうにないので、しばらく放置。
2001/2/2
FDD用のPC-Cardも二宮さんからもらう。
FreeBSD or Linux の導入が原理的に可能になる。
ただ、500MBしかないHDを増設(交換か?)したいとする欲求も増大。
2001/2/初旬
この辺から、
NiftyサイトのLibretto FAQで色々勉強。で、
- 増設可能なHD は E-IDE 2.5inch 8.45mm 厚
- BIOSで認識可能なのは 8.4GBまで
- 最も都合の良さそうなのは 東芝 MK8113MAT (8.1GB ATA-4 8.45mm厚)
が分かったが、MK8113MAT は色んなパーツ屋を探したが、見つからず。
それどころか、8.45mm厚のHDはもはや市場には存在しそうにない。
2001/2/17(土)
- 9.5m厚の2.5inch HD でも本体裏ぶたの簡単な加工で何とかなるらしい。
- 8.4GB以上のHDでも、8.4GB以上の領域はBIOSから認識されないだけで、それ以下の領域は正常に使える。
ただし、ハイバネーションはBIOSが認識するHD最後の末尾に対して行なわれるので、FDISKには注意が必要。
の情報をもとに IBM DJSA-210 (10GB ATA-5 UDMA66 9.5mm厚)
を購入。DOS/Vパラダイス京都店にて13980円ナリ。
ついでに、Libretto20単独でHD間のWindows95の引越しに失敗する事に備えて、
2.5inch-3.5inch変換コネクタ/マウンタも1200円で購入した。使わない事を祈る。
2001/2/18(日)
Windows95の保存作業:
- 「Windows95起動ディスク」の作成
/マイコンピューター/コントロールパネル/アプリケーションの追加と削除
を起動し、
[起動ディスク]/[ディスクの作成]
から作成する。
作ったディスクの中にはFORMAT.COMやFDISK.EXE が入っている。
詳しくはLibrettoFAQ: 4.2にのっている。
- SCSIのPCカードAdaptec APA-1460経由でMOを接続。
LibrettoFAQ: 7.8. Libretto20/30:楽々再セットアップについてにおおよそ従うが、母艦を用いない方法を取る。
ディレクトリ
C:\WINDOWS\OPTIONS\CABS\
C:\_backup\DRIVERS\DISK1\
C:\_backup\TOSUTILS\DISK1\
を構造ごとMOにコピーする。
ファイル
C:\WINDOWS\SYSTEM\OEMINFO.INI
C:\WINDOWS\SYSTEM\OEMLOGO.BMP
C:\TOSUTILS\HAJIMENI.CNT
C:\TOSUTILS\HAJIMENI.HLP
をMOの適当なディレクトリ(\tmp)にコピーする。
コピーはWindowsのエクスプローラを使用するのみ。
あと、
C:\WINDOWS\OPTIONS\CABS\MSBATCH.INF
の[Setup]セクションに
ProductType=1
の1行を追加。
これが無いとHDD内のファイルから再インストール出来ない。(というか、一度失敗している…。)
私は、バックアップも兼ねて全てのファイルをディレクトリごとMOコピーしたが、必ずしもその必要はない。
Librettoを解体。:
- 裏のネジ(6ヶ所)を外す。
- 裏蓋を開ける。爪がはずれにくいので少々苦労。手の爪でこじつつやんわりと開ける。
- HDを取り出す。HDには取っての金具がネジで取り付けられているが、これは取り外し、新しいHDに取り付ける。
- 新しいHDは標準品より1mm厚みがあるので、物理的に領域確保する。
裏蓋に接着してある黒色のプラスチック板を強引に取り外す。
ドライバーを接着面に差し込み、ゆっくり回転させると剥しやすかった。
- 新しいHDを装着。裏蓋を仮どめ。
すこし、裏蓋が膨らんでいるような気もするが、多分大丈夫だろう…。
HD領域の確保
- FD に「Windows95起動ディスク」を挿入し、電源投入。が、しかし…
動かん!!
でも、Ctl + Alt + Delを何回か押しているうちに何故か起動…。
さすがに、この時は冷や汗物だった…。
- FDISKで基本DOS領域を1023MB確保。大きさは好きずきでしょう。
拡張 DOS 領域は最大限確保する。
これでハイバネーション領域を避けた
最大限のパーティションの取り方が分かるはず。
- FD「Windows95起動ディスク」
で再起動の後
a:> format /S C:
でフォーマット&DOSシステム転送。
dos が HD から起動する事を確認。
FreeBSD 4.2 の導入:
そうこうしている間に、夜も明けてしまったようだ。そのまま作業を続行…。
2001/2/19(月)
FreeBSD上にXFree86の導入
- サーバーはSVGAを選択
# ln -s /usr/X11R6/bin/XF86_SVGA /usr/X11R6/bin/X
/etc/XF86Configはこんな感じ:
# XF86Config for TOSHIBA Libretto 20
Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
FontPath "/usr/X11R6/lib/X11/fonts/misc/"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/"
EndSection
Section "ServerFlags"
EndSection
Section "Keyboard"
Protocol "Standard"
XkbModel "jp106"
XkbLayout "jp"
XkbOptions "ctrl:swapcaps"
AutoRepeat 500 30
EndSection
Section "Pointer"
Protocol "SysMouse"
Device "/dev/sysmouse"
Emulate3Buttons
Emulate3Timeout 50
EndSection
Section "Monitor"
Identifier "Libretto LCD"
VendorName "SHARP"
ModelName "TFT LCD Display Pannel"
HorizSync 30-64
VertRefresh 50-100
Mode "640x480"
DotClock 25.2
HTimings 640 664 760 800
VTimings 480 491 493 525
EndMode
EndSection
Section "Device"
Identifier "CL-GD7548"
VendorName "Cirrus Logic"
BoardName "CL-GD7548 On Mother Board"
Chipset "clgd7548"
VideoRam 1024
Option "nolinear"
Option "fast_dram"
Option "fifo_aggressive"
Option "sw_cursor"
EndSection
Section "Screen"
Driver "SVGA"
Device "CL-GD7548"
Monitor "Libretto LCD"
Subsection "Display"
Depth 8
Modes "640x480"
ViewPort 0 0
# Virtual 1024 768
Virtual 640 480
EndSubsection
Subsection "Display"
Depth 16
Modes "640x480"
ViewPort 0 0
# Virtual 1024 768
Virtual 640 480
EndSubsection
EndSection
-
出処は東芝パソコンの部屋などなどです。上のXF86Configでは6万色(depth=16)も設定してあるけど、このままでは表示できません。
安富さんのパッチをカーネルに当てると16bpp色も表示できるようです。(が、まだやってません。)
始めは1024x768の仮想スクリーンを使っていたけど、Window Managerの仮想スクリーンの方が使い勝手が良いので、XFree86の仮想画面は使わない事にした。
- window managerにgnomeとenlightmentを選定し、導入。
でも、どう考えても16MBのメモリしか積んでいないLibretto20には重過ぎ!
sawfishも似たような物だった。
fvwm95にする。
- netscapeを導入。こっちもスワップしまくり…。ほんまにこのマシンは使いもんになるんやろか…。
2001/2/20(火)
Windows95の再導入:
先にWindowsでMOにコピーしたファイルをFreeBSD上でDOS領域に戻す。
Windows95の再インストールによって、HDのマスターブートレコードがWindows用に書き換えられてしまった。そのままではFreeBSDが使えないので、元に戻す:
- FreeBSD Boot Floppyから起動。
- インストーラ の/Custom/FDiskを選んでスライスエディタを起動。
- 何も操作をせず、Wを押し、怖い確認画面で確認してからQで抜ける。
- ブートマネージャー BootMgr を選択し抜けるとMBRに書き込み完了。
2001/2/21(水)
電源管理:
- ノートPCをモバイル用途に使おうとすると、ハイバネーションやバッテリー残量の確認は必須だろう。でも、apmが動かない。
- FreeBSD 4.2のGENERICカーネルはapmがdisableされているので、
そのままでは電源管理が出来ない。なんとなくGENERICを見るとapmの行があったので、設定されてるもんだとばかり思っていたら、disableになってた(^^;)\
- しばらくはbootの時にカーネルのパラメータをいじって急場をしのごう(?)と思ったんだが、boot: -c のやり方が変更されていてちょっと面食らった。
- ブート後、カウントダウンの時にEnter以外のキーを押す。
- プロンプトが出るので、
boot -c
としてリターンする。
- ここでようやくカーネルコンフィグレーションのプロンプトになるので
enable apm
exit
でampがenableなカーネルが起動する。apmもちゃんと値を返してきた。
- ついでなんでapmをenableにしたカーネルを再構築する。
でもLibretto20だと make depend だけに1時間、makeには一晩はかかっているはず。
全然コンパイルが終らないので、今日は帰って寝る。
PenIIクラスのCPUに馴れていたためか486DXの遅さには少々驚いた…。
たぶん、このマシンではmakeworkdはやら(れ)ないだろう。
下手すると1週間かかりかねん。
このマシンではカーネルは再構築せず、/kernel.config だけをいじるだけにした方が楽のようだ。あれ、/kernel.configってFreeBSD4.2でもあるのか?
2001/2/22(木)
小さな筐体に8.4GのHDを搭載し、アプリケーションを大量にインストール可能になったLibretto20ではあるが、いかんせんCPUが486DXにメモリ16MBなんで、人間相手のGUIなアプリケーションはちと荷が重過ぎる気がする。まあ、gnome+enlightment+netscapeを入れる方も入れる方なんだが…。
あと、これは弱点と言うよりは性質といった類のことで文句の言える筋合いの事ではないんだが、キーボードとディスプレーが小さくて肩が凝る…。
これらの事に鑑み、このマシンはサーバ用途と決定し、あり余るHDを有効利用する事とした。(ほんまに有効利用かなぁ…。)
まずは、FreeBSDのportsコレクションを探してみると、sambaが日本語化されたport ja-samba-2.0.7.j2.1 が見つかったのでこれをインストールする事にした。
非力なマシンにmakeさせるのは大変なので、pkg_addしたが、すんなり入った。
やはりsmb.confに日本語の説明コメントが付いているのは楽である。
2001/2/23(金)
不精者の私はrootでも平気でmuleをつかっている。
当然、rootのログインシェルもcshからtcshに替える事にした。
/etc/shellの最後の記述にしたがい、
chshで/bin/csh
から/usr/local/bin/tcsh
へと全てのユーザとrootのログインシェルを変更した。(もちろん標準エディタの設定はmuleである。)
ところが、いきなりログインできなくなってしまった…というよりログイン認証はするけども、シェルが存在しないと言われてすぐに追い出されてしまうのである。要は/usr/local/bin/tcsh
が存在しなかったのだ! なんで、存在しないshellが/etc/shellに載ってるんだ? tcshは/bin/tcsh
に移っていたのだった…。
結局、リセットしてsingle user modeで作業をするはめに…。
boot: カウントダウン で 何かキー入力
> boot -s シングルユーザモードへ
# fsck これをしないとマウントできない
# mount -a /etc/fstabに従い(noauto以外)全部マウント
# chsh vi で /bin/tcsh に変更
# exit マルチユーザーモードへ
久しぶりに、viと格闘した…。
2001/3/6(火)
ここしばらく忙しかったのでリブレットをさわっていなかったが、
久しぶりにハイバネ状態から復旧した。
コンセントを抜いておいたため、バッテリーの残量がゼロになっていたのには少々驚いた。
このリブレットのバッテリーには疲労が溜っているようだ…。
非力なリブレットのサーバー化計画と言う事で、
WWWサーバーをインストールすることにした。
せっかくなんで、SSLで暗号化対応なWWWサーバーにする。
初めは、SSL+OpenSSLなApacheの導入を図るも失敗。
どうやらFreeBSD4.2に初めから入っているOpenSSLとApacheの相性が悪いというより、
要求されるOpenSSLのバージョンがずれている…。
仕方がないので、Apache1.3+mod_sslの導入を図る。
自前でSSLの認証局(CA局)を上げて、自分で自分の認証を図りたいので、
packageからではなくportsからmakeを行う。
# cd /usr/ports/www/apache13-modssl
# make コンパイル
# make certificate TYPE=custom 自己認証
# make install
初めは、単なるmakeでコンパイルを行うが、その後に
make certificate TYPE=custom
で自分自身でのCA局の立ち上げと自分自身の認証を行う。
認証の手続きは初めにCA局に関する事を問答形式で聞いてくるのでそれに答え、
そのあとでCA局に認証されるべきサーバーの事を答える。
まあ、どっちにも同じ内容を答えるわけだが…。
この操作は、portのディレクトリ/usr/ports/www/apache13-modsslの
workディレクトリ以下のコンパイル済のバイナリを使うので、
make cleanした後では再コンパイルが必要になる。
make installのあとに再び認証したい場合には、
make certificate TYPE=customで認証した後に、
work/apache_1.3.14/conf/ssl.*に認証に関わる全てのファイル
ssl.crt/ca.crt CA局の公開鍵=証明書
ssl.key/ca.key CA局の秘密鍵
ssl.csr/ca.csr CA局の(上位CA局へ向けた)CA署名の要求 (自己署名では不要なファイル)
ssl.crt/server.crt CA局により署名されたサーバーの公開鍵=証明書
ssl.key/server.key サーバーの秘密鍵
ssl.csr/server.csr サーバーのCA署名の要求
がストアされるので、
それらを/usr/local/etc/apache/ssl.*にコピーする。
それらのファイル名はhttpd.confに合わせる必要があるが、
make certificate TYPE=customで生成されるファイル名はhttpd.confの記述に符合しているはず。
httpd.confの全体の記述(つまり、ポート80に関わる記述)の
DocumentRootの項目が通常のWWWサーバーの公開文書のルートになり、
<VirtualHost _default_:443> で囲まれた部分の記述(つまり、ポート443に関わる記述)のDocumentRootの項目が暗号化文書のルートとなる。
apacheの起動は(setuidするから)root権限でapachectl startsslで行う。
停止はapachectl stop。
マシン起動時に実行される/usr/local/etc/rc.d/apache.shは固定IPマシンで非SSLでapacheを起動する分には問題ないが、PCカードDHCPマシンやSSL動作を指せる場合には大分と問題ありそう…。
今回はmake certificate TYPE=customでCA局の立ち上げを行ったが、
一度opensslを使ってCA局を作ってみたい。
どうやら、CA.shとかCA.plなどを使うようだがpathも通っていないし、FreeBSD4.2に初期導入されているOpenSSLからのやり方が今一つ良くわからん…。と思ったら、/usr/src/crypto/openssl/apps/CA.plが有るではないか! 今度やってみよう。
あと、現時点での問題点は、暗号化をしないといけないようなWWW文書がない点…。
2001/3/12(月)
かねてよりの懸案であった(そうだったのか?)
OpenSSLによる認証局(CA局)の立ち上げと自己署名をする。
事前準備
FreeBSD4.2にはあらかじめOpenSSLが導入されているが、CA.plがすぐに使えるようにはなっていない。それを使えるように事前準備する。
とりあえず、自分のホームディレクトリ/home/nagataniの下にディレクトリsslを作ってそこを作業ディレクトリにする。
% mkdir ssl
% cd ssl
% copy /usr/src/crypto/openssl/apps/CA.pl .
さらにCA.plの先頭の1行を各システムのperlのbinary位置に合わせる。
FreeBSD4.2では#!/usr/local/bin/perlを#!/usr/bin/perlと編集する必要あり。
一応ヘルプが出る事を確認:
% ./CA.pl -help
usage: CA -newcert|-newreq|-newca|-sign|-verify
OpenSSLによる認証局(CA局)の立ち上げ
以下**** なんとか ****としてあるところには各々のパスワード/パスフレーズを決定して入力する。
% ./CA.pl -newca
CA certificate filename (or enter to create)
Making CA certificate ...
Using configuration from /etc/ssl/openssl.cnf
Generating a 1024 bit RSA private key
......................................++++++
...++++++
writing new private key to './demoCA/private/cakey.pem'
Enter PEM pass phrase:**** CA pass phrase ****
Verifying password - Enter PEM pass phrase:**** CA pass phrase ****
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:Kyoto Pref.
Locality Name (eg, city) []:Kyoto City
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Yukawa Institute for Theoretical Physics
Organizational Unit Name (eg, section) []:High Energy Physics
Common Name (eg, YOUR name) []:Yukinori NAGATANI
Email Address []:nagatani(@)yukawa.kyoto-u.ac.jp
この結果 ./demoCA/以下のディレクトリ構造が生成される
サーバー鍵対(公開鍵/秘密鍵)の作成
% openssl req -new -keyout server.key -out server.csr
Using configuration from /etc/ssl/openssl.cnf
Generating a 1024 bit RSA private key
.........++++++
..........++++++
writing new private key to 'server.key'
Enter PEM pass phrase:**** Server Pass Phrase ****
Verifying password - Enter PEM pass phrase:**** Server Pass Phrase ****
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:Kyoto Pref.
Locality Name (eg, city) []:Kyoto City
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Yukawa Institute for Theoretical Physics
Organizational Unit Name (eg, section) []:HEP
Common Name (eg, YOUR name) []:Y.Nagatani
Email Address []:nagatani(@)yukawa.kyoto-u.ac.jp
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:**** Challenge Password ****
An optional company name []:ButsuriYa
この結果
-rw-r--r-- 1 nagatani nagatani 846 Mar 7 18:41 server.csr
-rw-r--r-- 1 nagatani nagatani 963 Mar 7 18:41 server.key
が生成される
署名済みサーバー証明書の作成
サーバー公開鍵server.csrにCA局が署名をした署名済みサーバー公開鍵=サーバー証明書server.crtを作成する
% openssl ca -in server.csr -out server.crt
Using configuration from /etc/ssl/openssl.cnf
Enter PEM pass phrase:**** CA pass phrase ****
Check that the request matches the signature
Signature ok
The Subjects Distinguished Name is as follows
countryName :PRINTABLE:'JP'
stateOrProvinceName :PRINTABLE:'Kyoto Pref.'
localityName :PRINTABLE:'Kyoto City'
organizationName :PRINTABLE:'Yukawa Institute for Theoretical Physics'
organizationalUnitName:PRINTABLE:'HEP'
commonName :PRINTABLE:'Y.Nagatani'
emailAddress :IA5STRING:'nagatani(@)yukawa.kyoto-u.ac.jp'
Certificate is to be certified until Mar 7 09:41:52 2002 GMT (365 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
この結果server.crtが作成される。
-rw-r--r-- 1 nagatani nagatani 4106 Mar 7 18:42 server.crt
-rw-r--r-- 1 nagatani nagatani 846 Mar 7 18:41 server.csr
-rw-r--r-- 1 nagatani nagatani 963 Mar 7 18:41 server.key
DER形式のサーバ証明書の作成
% openssl x509 -inform pem -outform der < server.crt > server.der
まあ、これはやってもらやなくても、関係ないとは思うが…。
apache ディレクトリへ組み込みと実行
取りあえず、make certificate TYPE=customで作った古いファイルを保存しておく。
% cd /usr/local/etc/apache
% mkdir ssl_org
% mv ssl.crl ssl.crt ssl.csr ssl.key ssl.prm ssl_org
% mkdir ssl.crl ssl.crt ssl.csr ssl.key ssl.prm
作業ディレクトリからssl.crt、ssl.csr、ssl.keyを当該のディレクトリへコピーする。
% copy /home/nagatani/ssl/server.crt ssl.crt
% copy /home/nagatani/ssl/server.csr ssl.csr
% copy /home/nagatani/ssl/server.key ssl.key
あとはapachectl startsslでサーバーを起動してnetscape等でサーバー認証と暗号化をチェックして完了。
最終更新: 2001/3/6(火)
永谷幸則@京都大学 基礎物理学研究所