キーボード修理

イメージ
前回 調子が悪くなったと書きましたが、部品が手配できて時間が取れたので直しました。 茶軸のスイッチを購入 Cherryの茶軸は 10個で1,399- ということで購入。 本当は1個で充分なんだけど、仕方なく残りは予備部品として保管。 作業手順 キーボードの裏側ネジを3箇所外します。 左右と中央の丸シールの下。 左右はパッドを貼っているので、少しめくって外します。 (あとで綺麗に戻るので心配なしです) ケーブルが出ている方は、スッと外れ、手前(下側)は、内部に爪が有るので、ピックやカード、マイナスドライバなどで少し隙間を開けるようにして広げれば外れます。 自分は親指の爪で空きました。 今回は「E」が調子悪いので、該当のピン2箇所をハンダ吸いで綺麗に取り除いて、裏側から引き抜いて完了。 基板にしっかりとどのキーかがプリントされているので分かりやすいですねぇ 入手した新品の茶軸を差し込んでハンダ付けします。 この時点で動作確認が可能になるので、直したキーとその周辺が正しく入力できるのをチェック。 問題なく、無事に動作しました。 最後にカバーを取り付けて完了! 残ったのは9個の茶軸…。 今回の費用 Cherryの茶軸10個セット :1,399- キーキャップ引き抜き工具 : 475-  ちなみに10個セットには、簡易引き抜きがついてきますが、ちゃんとしたもののほうが楽に作業できます。(昔買ったのに、どこかに行ってしまったので再購入)  ということで、1900円ほどで完治しました。  手間賃考えると買ったほうが安いかも(笑)

Linuxでthin client

LTSPで苦戦した

LTSP(the Linux Terminal Server Project)というのがあって、要はWindowsのターミナルサーバーと同等なものをLinuxだけで構成するというもの。

この設定は、通常LinuxサーバにNIC2枚刺しで、片側をWAN、もう一方をLANに接続。
LAN側はDHCPサーバとして機能して、さらにネットワークブートサービスを提供するように設定するのが一般的なやり方。

この構成であれば、結構すんなり行くらしい。

でも、普通のLAN構成だと、ルータがDHCPを提供している事が多い。このDHCPを止めてLinuxをDHCPサーバとして設定するというのも、無駄な気がするし、既存のネットワークに接続して、運用という場合にリスクが高くなるので、嫌だな…と思い、別の方法を模索していた。

最終的には上手く行ったのだけれど、約1週間ほど苦戦したのでまとめておこうと思う。

既存のLANに設置する方法

いろいろと調べてみると、proxyDHCPを設置すれば、何とか行けるらしい。

最初にやった方法
pxe-pdhcpというproxyDHCPがあって、これを実行してテストする。
ソースのみの配布なので、公式サイトを参考にビルドする。

ただし、コメントにあるように配布されているソースに一部不具合があるので、修正が必要。(トータル2行の修正)
これでもwarningが1つ出ていたけれど、一応ビルドは成功する。(このソース自体古く、新しいものは出ていないので、少々心配。枯れているなら良いのだけれど…)

ところが、何度設定を見なおして、起動を繰り返しても、うまくbootできない。

様々なオプションを試し、再起動をしても上手くいかず、諦めかけていた。

異なる方法を見つけた
次に、pxe-pdhcpとは別のproxyがあることが判明。実はよく知っているdnsmasqがその機能を実装しているらしい。

これなら、使ったことがあるし、設定も経験がある。

ubuntu forumに記事を見つけたので、その通りにテストする。
親切にも、設定の手順とスクリプトなどもまとめられている。

ところが、この方法だけでは上手くブートしない。

そこで、いろいろとerror logを確認すると、途中までbootプロセスは動いていて、最後のところでbusyboxに落ちていることがわかった。

i386: Client drops into BusyBox」の記事を見て、ヒントを得た。
手動でnbd-serverを再起動してやることで、上手く起動するようになった。

手順まとめ

後で、自分も参考にするために、一連の手順をまとめておこうと思う。
$ sudo apt-get install ltsp-server dnsmasq
※ 一般的には、ltsp-server-standaloneを入れろという記事が多いが、それはDHCPサーバも機能させる場合
$ sudo ltsp-build-client --arch i386
これで、配布用のカーネルイメージを作成する。(--arch i386はintel CPU サーバなら省略可能)
$ (cat <<EOF
ipappend 3
EOF
) | sudo tee -a /var/lib/tftpboot/ltsp/i386/pxelinux.cfg/default
要は、defaultの最後にipappend 3を追加するだけ。エディタで編集してもOK

/etc/dnsmasq.d/ltsp.confをエディタ等で作成する。
#
# Dnsmasq running as a proxy DHCP and TFTP server
#
# See: http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html
#
#
# TFTP
#
enable-tftp
tftp-root=/var/lib/tftpboot
#
# DHCP
#
# DHCP proxy on this network
dhcp-range=192.168.0.0,proxy
# Tell PXE clients not to use multicast discovery
# See section 3.2.3.1 in http://tools.ietf.org/html/draft-henry-remote-boot-protocol-00
dhcp-option=vendor:PXEClient,6,2b
# Better support for old or broken DHCP clients
dhcp-no-override
# Enable this for better debugging
#log-dhcp
#
# PXE
#
# Note the file paths are relative to our "tftp-root" and that ".0" will be appended
pxe-prompt="Press F8 for boot menu", 3
pxe-service=x86PC, "Boot from network", /ltsp/i386/pxelinux
pxe-service=x86PC, "Boot from local hard disk"
dhcp-rangeのみ、自分のネットワークに合わせて変更する必要がある。
dnsmasqの設定ファイルを適用するために、サービスを再起動する。
$ sudo service dnsmasq restart
なぜか、これだけでは、再起動が上手くいかなかった。(環境のせいかなぁ)
そこで、このコマンドの代わりに、以下を利用。
$ sudo service dnsmasq stop
$ sudo lsof -i:53
$ sudo kill -9 (上記のプロセス番号)
これで、確実にdnsmasqを殺してから、起動する。
$ sudo service dnsmasq start
さらに、この後次のコマンドが必須だった。(これを見つけるのに苦労した!!)
$ sudo service nbd-server restart 
これで完了。

あとは、クライアントをPXE-Bootさせれば、サーバからイメージを取り込んで起動してくれる。

思ったより、早く起動するし、動作は快適。
これで古いマシンであっても、サクサク動くし、インストール作業も不要になるので、期待大!!

もう少し、ノウハウを集めるためにテストしようと思う。

この方法だと、今まで使用しているUbuntuをLTSPサーバとして利用できるので、環境構築が楽だし、ネットワークの設定を変更しなくて良いのが素敵。

ふ〜、1週間苦戦したのも甲斐があるってもんだ〜。

今思うと、PXE-pdhcpを使っても、最後のnbd-serverを再起動すれば動いたかもしれない…。でも、まぁいいか。


コメント

このブログの人気の投稿

WPS Officeで日本語入力ができない

VirtualBoxでUSBから起動

Virtualboxとnvidiaドライバ