東芝ノートパソコンR734Kのキーボードを交換してみました

ノートパソコンR734Kの「A」キーと「Shift」キーが反応しなくなってしまったので、キーボードを新しいものに交換しました。数ヶ月前ですが、忘れないうちにメモを残します。

キーボードの取り外し

インターネットで購入したキーボードの裏にフラットケーブルがついていたので、ノートパソコン本体のキーボードを剥いで外し、そこにあるだろう端子につなげれば作業が終わると思って、まずキーボードを剥いでみました。

こういうことをやる専用のヘラが売っているらしいですが、たまたま腕時計の裏蓋を外すヘラがあったので、それを流用しました。 ヘラをキーボードの端に差し込んで、本体のプラスティックを傷つけないように注意しながら、バリバリと少しずつ剥いでゆきます。 結構きつい両面テープでキーボードを留めてあるので時間をかけてゆっくりやるのが肝要です。 キーボードがひん曲がっても、かまわずバリッと剥がします。

剥いでみたら予想が外れました。
フラットケーブルをつなげる端子はそこには見当たらず、 剥いだキーボードのフラットケーブルが中程から本体の中に入り込んでいました。 とうやら、マザーボード上の端子につながっているらしいので、 ノートを分解しないと作業ができないようです。面倒なことになりました。
(結論から言いますと、マザーボードの端子に繋げるために、全部分解してマザーボードも外す必要があるのです)

裏カバーの取り外し

まずバッテリーを外します(ロックを2カ所ずらして外します)
次にメモリースロットの蓋を外します。この蓋の下にも裏カバーを留めるビスが5個もありました。これも外します。
ノートの裏のビスをすべて外して裏カバーを取ります。ビスは全部で17カ所ありました。

マザーボードの取り外し

裏カバーを開けてみたところ、どれがキーボードの端子かは分かりますが、キーボードとつなげるためには、マザーボードも外さないと無理なようです。なぜこんな仕様になっているのか疑問ですが、仕方ないです。外すことにします。これは、次のページを参照しました。
http://dynabook.biz/reduce_pc/14358/
これだけ詳しく説明していただいてありがたい限りです。どうして最初からこのページを見なかったのか、本当にうかつでした。このページが見られなくなってしまうとまずいので、大雑把にメモしておきます。

ハードディスクがついている場合は、ハードディスクを外す必要がありますが、SSD仕様だったため、これは外さずに横にどかすだけで作業を続けることができました。ちょっとラッキー。

まずコネクターが見える全部のフラットケーブルをマザーボードから外します。フラットケーブル端子の差込口は大雑把に2種類あって、一つは黒い細長い棒をマイナスドライバーかピンセットで上にパチッと外すタイプで、もう一つは横の耳を手前にすっと引っ張り外すタイプです。この横耳の取り扱いが難しくて、外すのはそれほどでもないですが端子をはめ直すのが結構難しいです。キーボードの端子はこちらの方式だったのでちょっと苦戦しました。

・USB基盤の端子を外すとWifiカードが見えるのでこれも外します
・マザーボードの取り付けねじを外します
・マザーボードの陰(下)、Wifiスロットの下あたりについている電池コネクターとLANコネクターも外します。
・電源コネクターをヤットコペンチなどで持ち上げて外します(箸やピンセットでも大丈夫だと思います)。
・そうすると、マザーボードを裏返すことが出来ます。マザーボードの裏に見えるフラットケーブルを外すと、ようやくマザーボードが外れます。

キーボードの取り付け

ようやくここまでたどり着きました。あともう少しです。

先ほど外したキーボードを取り除き、本体に残っているキーボードを留めていた両面テープのかすをきれいにします
本体に、両面テープを貼ります。細いテープの方が作業しやすいので、出来るだけ細いテープを用意した方が良いです。全面に貼ると剥がすのがたいへんなので、適当に貼ります(しっかりキーボードがつけば良いです)。
キーボードの裏のフラットケーブルを本体の中程に差し入れてからキーボードを貼り付けます(あらかじめマザーボードのコネクターに届くかどうか確認します)。
端子をマザーボードのコネクターにしっかり装着してから、分解したときの逆の順番にマザーボードを取付けます。

これでようやく終わりました。ほぼ1日かかりました。次にやる機会があればこのメモを見ながら数時間で終わると思います。

Perl

Perlは最強のスクリプト言語だと思う。インタープリタなのに速いし、何より正規表現(パターン認識)が扱いやすくて優れている。テキスト処理は右に出るものは無いだろう。utf8文字が一般的になり、日本語文字(encode)の扱いが面倒になってしまったのが残念だが、それでもPerlの性能は他を圧倒していると思う。

初めてPerlに出会ったのは1999年、PerlでCGIを書けば動的ホームページを作ることが出来る、というのを雑誌で読んで、試しにウインドウ版をダウンロードしてWin95マシンにインストールした。うかつにも、FreeBSDにPerlが付属しているのを知らなかったのだ。Perlの勉強を始めて数ヶ月経ってから、実はFreeBSDには最初からPerlが付属していて、多くの人がそれでスクリプトを書いていることを知った。それまで必要ならBシェルスクリプトで間に合わせていたが、Perlで書いてみたら、はるかに楽で機能的なものが書ける。今まで何をやっていたのか、ずいぶん時間を無駄にしてしまった。

最初はバージョン4の勉強を始めたが、半年ほど過ぎ、2000年になってからバージョン5の機能を使うようになった。バージョン5はオブジェクト指向風にプログラミングができる。私は「実用 Perlプログラミング」という本を買ってきて勉強した(当時定価4500円)。この本はPerl教本の中で一番優れた本だと今でも思う。Perlを始めている人にはぜひ手に取って欲しい本だ。この本と「CGI&Perlポケットリファレンス」(これも優れもの)は今でもすぐ机の脇に置いてあって、必要なときに見ている。

この頃は、仕事が忙しくなかなか勉強が進まなかったが、1年後にホームページの商品ページと買い物かごをPerlのcgiで書いて載せた。いつしか何とかオブジェクト指向風に書けるようにもなった。

オブジェクト指向と言ってもPerlの場合は厳格なルールが少なく、自由きままだ。普通のスクリプト風に書いても何の問題もないし、オブジェクト指向風に書こうと思えば書ける、といったものだ。このルーズさが堪らなく良い。そのおかげでぐちゃぐちゃになって、後で苦労することも多い。それで今は、とにかくできるだけきれいなオブジェクト指向風に書くことにしている。

しかし、Perlの独特な略語には少々疑問を感じる。そのおかげで最初の取っつきにずいぶん苦労した。人の書いたものを見て勉強しようと思っても略語が多くてなかなか進まない。例えば「while (<>)」。何のことか分かるのにずいぶん時間を取られた覚えがある。キーボードを打つのが楽なので、今では私も略語を多用しているが、本当は略語はない方が良いと思うこともある。ただ、略して書けることがメリットになることも多い。この辺のところは、今後の記事にしたいと思っている。

Windows10小型PCの容量不足解消

昨日(11月7日)、あることがきっかけでWindows10を最新のver1703にアップデートすることになった。Cドライブの容量が2GBしか残っていないので無理かと思っていたが、何とかアップデートができた。今後の参考になりそうなので、記録しておく。

このページの目次:

  1. Cドライブが容量不足だ
  2. 容量不足解消の切り札、ジャンクションリンク
  3. フォルダーをDドライブに移動
  4. アクセス権で手間取ったフォルダーの削除
  5. ジャンクションリンクとシンボリックリンクの作成
  6. いよいよWindows10を最新ver1703にアップデート
  7. アップデート後の問題点と反省点

Cドライブが容量不足だ

ブログのサイドバーを編集しようとして、編集画面を開いたら、このedgeは最新ではないので、アップデートしろと注意されてしまった。何しろ、このマシンはちゃっちい安物だ。Cドライブ(SSD)が28GBしかない。それではさすがにどうしようもないので、拡張スロットに110GBのSSD、USBに1テラハードディスクをさして使っている。Cドライブは容量が2GBしか残っておらず、ブラウザを乗り換えたくてもインストールできない。仕方なくedgeを使っているという有様だったが、ほかのウェブページでも頻繁に、最新ブラウザを使うように文句を言われていた。なので、何とかしなくちゃと思ってはいた。しかし、どいつもこいつも何故こちらの都合も聞かずに勝手にCドライブにインストールされてしまう仕様なのか、本当に不便だ。
調べると、最新バージョンは、edgeだけアップデートというわけにはいかず、win10そのものをアップデートする必要があると分かった。それで、マイクロソフトのページでチェックしたら、容量不足でアップデートできません最低でも8GB必要ですと、言われてしまった。とりあえず、主だったアプリ(オフィスなど)を一旦アンインストールしてアップデートしようかと思ったが、まず、もっと楽で良い方法がないか探してみることにした。

容量不足の切り札、ジャンクションリンク

UNIX系OSならなじみのシンボリックリンクだが、ウィンドウズにも似たものがあると、始めて知った。米国のMSフォーラムに、こんな記述があった。

>MKLINK /J “C:\Program Files\Microsoft Office 15” “O:\Program Files\Microsoft Office 15”
>MKLINK /J “C:\Program Files (x86)\Microsoft Office” “O:\Program Files (x86)\Microsoft Office”

This created junction points for each directory on the C drive that Office installs to, and point them to the O drive. So the OS thinks its going to C drive for those folders, but in reality its going to the O drive.

これは使えそうだ。要するに、Cドライブにインストールしているアプリを、フォルダーごとそっくりDドライブに移動して、ジャンクションリンクなるものを作成したら、OSはそのアプリをCドライブにあるものと見なしてくれるということだ。ジャンクションリンクを作るには、コマンドプロンプトで「mklink /j」すれば良い。これなら、Cドライブの容量不足を解消できそうだ。
早々我マシンで容量を食っているアプリをDドライブに移動することにする。office365とadobe acrobat readerとatokとInternet ExplorerをDドライブに移動してジャンクションリンクを張ろう。これで8GB以上空くはずだ。ひょっとしたらc:\Program Files をまるごと、移してしまうことが出来るかもしれないが、何か心配なので、とりあえずこの方針で行く。

フォルダーをDドライブに移動

まず自分に管理者(Administrators)権限があるかどうかを確認する。さもないといろいろ面倒なことになる可能性がある。設定で確認すると、大丈夫だ、管理者と書いてある。ファイルエクスプローラーでいきなり移動するのは途中で電源がブチッといったときなど少々心配なので、とりあえず、

  1. フォルダーをDドライブにコピー
  2. Cドライブのフォルダーを削除
  3. ジャンクションリンクを作成

の手順をとることにする。では早速始めよう。まずOffice365だ。ファイルエクスプローラーで、C:\Program Files\Microsoft Office を D:\Program Files\Microsoft Office にコピー。少し時間がかかるはずなので、コーヒーブレイク。ところが戻ってきたら、エラーが出ている。
「AppvlsvStream32.dll ファイルが見つかりません!」だと。そのファイルの詳細を見ると、種類のところに symlink と記載がある。シンボリックリンクなのでこの場所には実態が無い、だから別の場所には移せないということか。検索すると、全部で21カ所シンボリックリンクがあった。仕方ない、面倒だが、これは一旦削除して、Dドライブに移動後、同じシンボリックリンクを作成することにする。とりあえず、この21カ所を除いてコピーは終わった。

アクセス権で手間取ったフォルダーの削除

今度はCドライブのOfficeの削除だ。管理者なので、ファイルエクスプローラーで簡単に削除できると思っていたが、いざ始めると「アクセス権限が無い」と注意されてしまった。ファイルを右クリックしてプロパティのセキュリティ項目を見ると、ファイルオーナーが Trusted Installer になっていて、何と administrators にも書き込み権限がない。編集ボタンを押してフルコントロールにチェックすれば良いはずだが、グレー表示でそれも出来ない。そうするとオーナーを users または administrators に変更してから、権限をフルコントロールにするという方法をとるのだろう。この手順がかなり面倒なので、箇条書きにしてまとめておく。

  1. 管理者として作業する
  2. file explorer で削除したいファイル・フォルダーを右クリックする
  3. プロパティをクリックする
  4. セキュリティタグをクリックする
  5. 詳細設定ボタンを押す
  6. 所有者変更をクリックする
  7. 所有者を「users」に変更して、OKする
    (選択するオブジェクト欄に「users」と記入してOKする)
  8. 編集ボタンを押して、usersを選択する
  9. アクセス許可:users で「フルコントロール」をチェックする
  10. OKする

これは時間がかかった。Linuxだったらシェルでパパッとできるのに、と恨めしい。ひょっとしたら、こちらの勉強不足で、Windowsでもコマンドプロンプトで簡単にできる方法があるのかもしれない。とにもかくにも、この方法で最下層から上層まで順にフォルダーの権限を変更しながら、削除を完了した。

ジャンクションリンクとシンボリックリンクの作成

ようやくここまで来た。あと少しだ。
ジャンクションリンクを作るのは、簡単だ。コマンドプロンプトを管理者権限で立ち上げて、

> mklink /j “C:\Program Files\Microsoft Office” “D:\Program Files\Microsoft Office”
> mklink /j “C:\Program Files\Microsoft Office 15” “D:\Program Files\Microsoft Office 15”

とすれば良い。次は、コピーできなかったシンボリックリンクファイルの作成だ。これも一つ一つの作業は簡単だが、多数あるので、間違わないように細心の注意が必要。どのフォルダーに何のシンボリックリンクがあったのかは、しっかり記録しておくこと。私のOffice365の場合は、次の6ファイルのシンボリックリンクが21カ所あった。

AppvlsvStream32.dll
AppvlsvSubsystems32.dll
C2R32.dll
AppvlsvStream64.dll
AppvlsvSubsystems64.dll
C2R64.dll

シンボリックリンクの個々の作成は、コマンドプロンプトでこうする。

>mklink “c:\Program Files\Microsoft Office\root\VFS\ProgramFilesX86\Microsoft Office\Office16\AppvlsvSubsystems32.dll” “c:\Program Files\Common Files\Microsoft Shared\ClickToRun\AppvlsvSubsystems32.dll”

今度は、/j オプションは不要だ(単に mklink “・・・” だ)。これを21回繰り返して、やっとOfficeが終わった。

いよいよWindows10を最新ver1703にアップデート

上述の作業をatokとadobe acrobat readerとinternet explorerで繰り返し(Officeほど大変ではない)、ようやくCドライブに8.5GBの空きが生まれた。マイクロソフトのページで「今すぐアップデート」を押すと、今度は文句を言われず、アップデートが始まった。とりあえずうれしい。が、まだまだ油断は出来ない。夕食後、無事アップデートが終わっていたので、立ち上げてみた。

すると、Dドライブに移動した、OfficeとAcrobat Readerとatokが動かない。ちょっと慌てたが、おそらくジャンクションリンクが認識できないのだろうと思い、ジャンクションリンクを一旦削除して作成し直してみた。コマンドプロンプトを管理者権限で動かして

> mklink /j “C:\Program Files\Microsoft Office” “D:\Program Files\Microsoft Office”
> mklink /j “C:\Program Files\Microsoft Office 15” “D:\Program Files\Microsoft Office 15”
> mklink /j “C:\Program Files\JustSystems” “D:\Program Files\JustSystems”
> mklink /j “C:\Program Files(x86)\Adobe” “D:\Program Files(x86)\Adobe”

すると今度は、何事も無かったように、ちゃんと動いた。

アップデート後の問題と反省点

しかし、atokが不安定になっている。Edgeで漢字変換できない。調べると、Win10をアップデートしたら他社製FEPは再インストールするように書いてある。仕方ない。アンインストールしてインストールし直した。今度は普通に動く。atok以外に、アップデートで動かなくなったり、調子の悪くなったアプリが複数あった。再インストールするのはそれなりに面倒だ。こういうことがあるので、シリアルナンバーなどはちゃんと管理しておく必要があると痛感したのだった。
一方Internet Explorerは、勝手に新しくCドライブにインストールされてしまった。これは、OSの付録アプリだから有無を言わさず入れてしまう、いうことだろう。今回の反省点として、

  • atokは単にアンインスートルし、OSアップデート後に再インストールするべきだった
  • Internet Explorerは、単にフォルダーごと削除をすれば良かった(勝手にインストールされる)

ということ。とにかく無事にアップデートが完了した。

引っ越し

ワードプレスで最初の投稿

ブログを引っ越して来ようと思う。しかし、投稿した日付に余り意味の無い記事、例えば思い出話などは問題ないが、日付に意味があるものはどうすれば良いのか。自分以外の人間が見ることは想定していないので、SEOは気にしないが、日付が変わってしまうと困る記事もある。とりあえず、インポートしてから考えよう(どうやってインポートするのか分からないが)。

文章は、自分で読んでも不明なところは、書き直すようにする。カテゴリーは「パソコンとインターネット」「その他」の2種類で良いと思う。Tagは少し細かく付けてみたい。
ところで、HTMLの編集はどうするのか。やたら無駄に「br」などが使われていたら嫌だし、自分で、styleを決めたいこともある。CSSの追加が出来るとうれしいが。titleがh1なのかとか、今書いている部分は全部 p タグで囲まれているのかも知りたい。

本ブログの主題は「私のパソコン関係の出来事」、現在進行系および過去に起こったこと。副題はその周辺で起こったこと、例えば出張先で驚いたことなど、を書く気になったときに書く。

AssemblerとC

1990年頃だったと思うが、MS-DOSをバージョンアップしたら、Masmが付属しなくなってしまった。
それで別途アセンブラーを買った。当時これから言語は「C」の時代だなどと、どの雑誌にも書いてあったので、Cコンパイラーも買った。今から考えると、アセンブラーは無駄な買い物だった。Cの機能の中にInner Assemblyというものがある。アセンブラーが必要なのはほんのわずかな部分なので、専用のものは不要だったのだ。

Cは関数を書いて組み上げてゆく言語だ。
最初は面食らったが、簡単なものはなんとか書けるようになった。dBASE3で、まず構造をしっかり考える訓練が出来ていたのが良かったと思う。アセンブラーのように、メモリーのアドレスを意識する必要はないし、レジスタに値を移す前に、レジスタの値をスタックにプッシュ(一時保存)して、作業が終わったら、スタックから値をポップしてレジスターの値を前に戻しておくとか、お決まりの面倒なことはCに任せておけば良い。変数を宣言すると、適当なアドレスに適当な容量(バイト)を確保してくれる。関数も適当なアドレスに設置される。

ただ直接アドレスにアクセスした方が簡単なことがある。例えば、画面上の何番目のビットが1なのか0なのか知りたいとか、直接書き換えたいとか、そういうときはアセンブラーに限る。
Cの得意な人なら「ポインタを使えばいいでしょ」とか言いそうだけど、あのポインタというのが曲者で、必ずバグの元になってしまうのだ。その上一旦バグるとどこでバグったのかなかなか分からない。ちょっとしたミスを見つけるのに何時間もかかって頭がパニック状態になってしまう。そんなことが何度となくあった。