2020年12月5日土曜日

子供用パソコンを修理してみた

 子供用パソコンのマウスがクリックできなくなったと修理依頼が来ました。

マウスは動くけどクリックが出来ないそうです。

まぁどうせマイクロスイッチの不良かなぁと思ったのですが、マウスをバラしてテスターを当てるとマイクロスイッチは動作している様子。という事は配線がどっかで断線しているな。

あちこちグニュグニュ動かしてみると、本体の付け根を曲げるとクリックに反応が。

げ、これ本体バラさんといけんじゃん・・・

 


 さて分解・・する前にキーボードが無茶苦茶汚い!!

なんか飴か何かをこぼしたのかネチョネチョするし。

下半分はネジを外せば簡単にバラせるのでまずはキーボードを洗う!!


 よく見るとキー配列ちゃんとQWERTYなんですね。


バラバラ~~

しかし子供向けに頑丈に作っているのかとにかくネジが多い。電動工具が欲しくなる・・

 よく見ると電池の所に逆接続防止のダイオードが入っていました。


 にしても作りが雑だなぁ。内部があちこちバリだらけだったり謎の汚れがあったり塗装ムラがあったり。

キーボード部分はICが載っておらず、マトリクス信号をそのままマザーボードへつないでいるようです。

DCジャックは補強してあり評価できる点なのですが、コネクタ使わず基板に直半田っすか。

 被膜が剥きすぎててショートしそうだし。絶縁はセロテープっすか(汗

 

キーボードは全部外して袋に入れて、洗剤入れてシェイク。後は水を切って一つずつティッシュや綿棒で落ちなかった手垢などを落とす・・


 手触りが全然違う!!

 なお、特に各キーにユニークな突起がついててそこしか嵌らない。なんていう作業上の工夫はなく、しかも裏側から嵌めるので地味に難儀しました。

 では本体をバラしていきます。まずは画面のヒンジを止めている隠しネジを・・って外れない。
無理やりこじると外れたけど接着剤で止めているようです。


 っでこの二か所のネジを外したらパソコンみたいに爪でパキパキ外れる・・訳もなく。

全面に貼られているシールを剥がさないといけません。

これが大変でして、再利用しないといけないからドライヤーで温めつつ端からゆっくり剥がすも大きいので必然的に何カ所かを指でつまんで外すことに。

つまんだところは糊の付きが悪くなるし、結構しっかりついていて中々剥がれないし。

 何とか引っぺがすと11個のネジが・・・Orz


ネジ多すぎだろ・・

 


 無駄にデカいわりに液晶が無茶苦茶小さいのですが、マザーボードはこんだけです。

1ChipのカスタムLSIが液晶制御、キーボードマトリクス処理、マウスにサウンドとDRAM制御と恐るべき集積度です。

ROMが見当たらないのですが、隣にあるEEPROMっぽいのに入っているのかな?
あとはBTLなアンプとDCDC制御ICが載っているくらいです。5V単電源で動作します。

この基板むっちゃ薄いんですよ。裏側はJTAGなのかファーム書き込みかデバック用っぽい端子がありました。
っで相変わらずコネクタ使わず直半田付けですか。

別に薄くも無いんだしコネクタ使ったほうが組み立て工数もかからない気がするのですが、コストなんですかね。

 マウス部分のコネクタは5線と7線があるようです。

繋がっていないところはCX、SYとあるので、もしかしたらボールマウス用の配線かも知れませんね。


マウス側もバラしてみます。子供向けパソコンとはいえちゃんと光学式マウスです。

昔は光学式マウスは高かったんじゃよ・・・

これも目立った部品はなく、もはや光学センサー部分1Chipで完結しています。

使っている配線に糸が入っていますね。一応引っ張りで断線しにくくする考慮はされているようです。


さて、問題の配線ですが、5芯であることは分かります。ですがこういう通信用ケーブルは一般に入手が困難です。かといって切れている付け根部分を切断して半田付けするとそこが脆くなってしまいます。

しかし、身近に5芯のケーブルがあるじゃないですか。



はい。100均で買ってきましたUSB通信ケーブル。

本当は太さ的にUSB延長ケーブルが欲しかったのですがどうやらもう販売されていないらしく。

USBケーブルは電源の+-に通信用D+D-、外装シールドの5芯のはずです。

シールド線に信号を流すのはいささかどうかと思いますが、そんなシビアな信号流すわけじゃないし。

 


 はい。ブチっと切断しました。

ってシールドされてないじゃん!!!

まぁ今回の用途では逆によかったけどこんな線でUSB-Cの高速通信流せるの??

 とりあえずサクッとはんだ付け。

引っ張られてもいいようにしっかり止める。


 っが元のより数ミリ細いので力いっぱい引っ張られると多分切れるなこれ・・

マウス側はコネクタがついていたのですが、一般家庭にコネクタ圧着工具なんてある訳もなく。

仕方ないので元の奴を流用します。

線が細すぎて熱収縮チューブがブカブカですが、カプトンで巻いときゃいいでしょ

(もはやビニテの扱い)



 最後に動作確認。


 無事動作したようです。

シールはズレてしまいましたがまぁ問題ないでしょう。

2020年5月19日火曜日

古い時計を直してみた

友人より実家で稼働している古い時計が壊れて動かなくなったと連絡があり、久々に修理してみました。

たいそう立派な木枠に収められた古いSEIKOの時計です。
年代物なのでプラスティックの劣化は想定しないといけませんね。電動ドライバーなんて厳禁です。
ゆっくり加減を見ながら少しづつ木枠から外します。
その後、留め具が折れないよう慎重に裏のギアボックスカバーを外します。
おお~案の定アルカリ電池の液もれですね。白い結晶が詰まっています。
今までいろいろ修理してきましたが、この結晶の多さはダントツです!
どうやったらここまで貯まるんだ??もしかして電池入れっぱなしで縦にでも置いたか??

この時代の時計はコイルで磁界を発生させ、中にある磁石のコマを回る方式が主流でした。(原理はこちら
この頃の時計は幼少期に一度、田舎の時計を勝手に分解して再起不能にした経験から構造が分かっています(汗
30年くらい前の記憶によれば、この縦に刺さっている基板は金属板(電極)に刺さっているだけなのでスポッと抜けるはず!
結晶で固着していましたが、綿棒に洗浄液をしみこませたもので電極に固まっている結晶を除去しながらどうにか分離。

たしかこの時代のものは電極も外れたはず・・・
っとプラスティックの劣化に気を付けながら外します。
案の定裏側にも結晶がびっしり!!
しかし幸いステンレス製だったので錆びていないです。
流石当時のものはお金がかかっています。今ならメッキが剥げたり錆びてボロボロになっているでしょうね。

漏れた電解液があちこちにしみこんで結晶化しているので歯車も外します。
ただし、中心にある歯車は針につながっていて、これを外すと表側を外さないといけないとか針の位置決めをしないといけないとか色々面倒なのでそのままにしておきます。
ちなみに当時はバラした歯車が戻せなかった記憶・・・

取り外した基板をチェックします。
良いですねぇ~
基板全体が金メッキされていて錆びていません!
今なら銅パターンなんで腐食して断線しまくってますね。
もしかして当時は電池の液もれも多かったので(乾電池の液漏れ保証が付いたのはわりと最近だった記憶)、考慮済みだったのかもしれませんね。
いずれにせよ昭和初期のものって作りが丁寧なものが多い気はします。
心臓部の駆動コイルは断線していないようです。
接点部分がくすんでいたので、アルコールで拭いておきます。

取り外した歯車や電極も掃除します。
ステンレス版もこの通り奇麗に。

中も掃除したら、サクサク組み立てていきます。
しかしマイナスネジが時代を物語っていますね。
ついでに他もきれいに掃除しておきましょう。大事にしてもらいなよ・・・
余談ですが、昔の時計には用途不明な秒針を止める謎のスイッチがついていました。
この接点をONにすると時計が止まります。

時計を駆動する磁石のコマです。
時計のカチコチ音はこいつが回ることで歯車が回り、秒針が動きます。

歯車を組み立てていきます。同じ過ちを繰り返さぬよう、事前に写真を撮影しておきます。便利になったもんです。


さて、動作試験です。電池を入れて、どうかな??



無事修理完了です。
時計の電池はマンガン!!
これ空も大事にしてもらいなよ。

2020年3月14日土曜日

Raspberry Pi model B+ で家庭内ActiveDirectoryDomainControlerを作る。

気が付いたら1年くらい放置していましたね・・・

今回は大抵の家に転がっている(?)古いラズパイをつかっていわゆる自宅ADを作ってみました。
ラズパイ model B+となると、メモリは512MBだし、ラズパイ3みたいにDockerが動くわけでもない。Etherも100Mbpsだしシングルコアだしで今となってはずいぶん微妙なものになってしまいました。
ちょうど自宅サーバをリプレイスするにあたり、MicroSoft社から無償配布されているHyper-V Server2019を検証するにあたり、非ADな所詮Workstation環境ではFW突破から初手の初期設定がかなり厳しく、それでもなおリモート管理がつながらないというMS仕草に疲れた本質的でない作業が大変だったので、ADを組むことにしました。

一昔前私がSambaを使っていたころ(Ver1.0~2.0)設定は難解だわやれケルベロスだwinbindだとかなりの修行が必要でしたが、今やSamba4は自力でADのプライマリドメインコントローラになれます。インストールも設定も随分簡単になりましたので、これで行けそうな気がします。

  • 対象:Raspberry Pi model B+
  • OS: Raspbian Buster Lite
  1. まずは公式サイトよりイメージをダウンロードし、SDカードに書き込みます。今では各OSごとにSDカードに書き込むツールを公式が配布していますので、それを使っても構いません。
  2. 次に、ラズパイ起動時に自動的にSSH接続できるようにしたいので小細工します。書き込んだSDカードを抜き差しすると、FAT32で初期化された領域が見えます。そこにsshという名前の空のファイルを作成します。するとラズパイ起動時に自動的にSSH接続できるようになります。
  3. 書き込んだSDカードをラズパイにさして起動させます。無事起動しましたら、とりあえず主要なソフトとアップデートのインストールを行い再起動します。
    $ sudo apt-get update sudo apt-get -y upgrade
    $ sudo apt-get dist-upgrade
    $ sudo apt-get install vim git sudo reboot
  4. 再起動後、再度SSHで接続し、TimeZoneやロケールの設定をします。
    $ sudo timedatectl set-timezone Asia/Tokyo
    $ sudo dpkg-reconfigure -f noninteractive tzdata
    $ sudo perl -pe 's/^# (ja_JP.UTF-8 UTF-8)/$1/g' -i /etc/locale.gen
    $ sudo locale-gen sudo update-locale LANG=ja_JP.UTF-8
    $ sudo dpkg-reconfigure -f noninteractive locales
  5. 次にIPアドレスを固定にします。まず設定ファイルを開きます。
    $ sudo vim /etc/dhcpcd.conf
  6. 設定ファイルの中に Example static IP configuration という箇所がコメントされているので、こんな感じでコメントアウトしてIPアドレスを設定します。
    # Example static IP configuration:
    interface eth0
    static ip_address=192.168.0.11/24 #固定したいIPアドレス、サブネット
    #static ip6_address=fd51:42f8:caae:d92e::ff/64
    static routers=192.168.0.1 #デフォルトゲートウエイIP
    static domain_name_servers=192.168.0.1 8.8.8.8 # DNSのIPアドレス
  7. ホスト名を設定します。ここでは、dc.example.comとします。(昔ながらの~.localってのは今はダメらしい)
    $ sudo raspi-config nonint do_hostname dc.example.com
    $ sudo vim /etc/hosts

    192.168.0.11 dc.example.com #追加
    127.0.0.1 dc.example.com #追加
  8. 次にあまり使わないIPv6を無効化します。
    $ sudo bash -c "echo net.ipv6.conf.all.disable_ipv6 = 1 >> /etc/sysctl.conf"
  9. ここでいったん再起動して、設定した固定IPで繋がる事、外部へ出れることを確認しておきます。
  10. Samba4をビルドするのに必要なパッケージ群をインストールします。
    $ sudo apt-get -y install acl attr autoconf bison build-essential \ debhelper dnsutils docbook-xml docbook-xsl flex gdb krb5-user \ libacl1-dev libaio-dev libattr1-dev libblkid-dev libbsd-dev \ libcap-dev libcups2-dev libgnutls28-dev libjson-perl wget \ libldap2-dev libncurses5-dev libpam0g-dev libparse-yapp-perl \ libpopt-dev libreadline-dev perl perl-modules pkg-config \ python-all-dev python-dev python-dnspython python-crypto \ xsltproc zlib1g-dev libjansson-dev python3-distutils git \ libpython3-dev liblmdb-dev pkg-config libgnutls28-dev python3-dns python3-dnspython \ libarchive-dev libacl1-dev libldap2-dev libpam0g-dev libgpgme11-dev
  11. Samba4のソースコードをダウンロードします。(最新版はここから探してください)
    $ sudo mkdir /usr/local/src/samba wget https://download.samba.org/pub/samba/stable/samba-4.12.0.tar.gz
    $ sudo tar xvzfp samba-4.12.0.tar.gz -C /usr/local/src/samba
    $ rm samba-4.12.0.tar.gz
  12. コンパイルして、インストールします。なお、ラズパイmodel B+でやると、コンパイルが終わるまでオーバークロックしない場合軽く半日は掛かりました。configureでも30分くらいかかったかな?
    $ cd /usr/local/src/samba/samba-4.12.0
    $ sudo ./configure --with-utmp --with-ads
    $ sudo make && make install
  13. インストールが無事終わったら、ドメインコントローラを構築します。といっても今じゃウイザードがあります。
    $ sudo /usr/local/samba/bin/samba-tool domain provision --use-rfc2307 --interactive --function-level=2008_R2
    詳しい説明は公式ドキュメントを見ていただければと思います。 といっても注意点はDNS backendはデフォルトのSAMBA_INTERNALを選択する。function-levelは(今のところ)2008_R2まで。DNS forwarder IP addressはADのドメイン以外の名前解決できるDNSサーバを指定する。Administratorのパスワードは大文字小文字数字を入れた8文字以上じゃないとダメくらいです。
  14. 設定が出来ましたら、自動生成されたケルベロス認証設定ファイルをコピーします。
    $ sudo cp /usr/local/samba/private/krb5.conf /etc
  15. 公式サイトを参考に、スタートアップスクリプトを作成し登録します。
    $ sudo vi /etc/systemd/system/samba-ad-dc.service
  16. 有効化し再起動時に自動起動するようにします。
    $ sudo systemctl daemon-reload
    $ sudo systemctl enable samba-ad-dc
  17. 再起動する前に、正しく起動するかを確認しておきましょう。
    $ sudo systemctl start samba-ad-dc
    $ sudo systemctl status samba-ad-dc
    これで表示がグリーンでActive: active (runnning)になっていればOKです。
  18. あとはADに所属させたいPCのDNSをラズパイADのIPアドレスに設定して、通常通りADに参加すればOKです。参加の際RPCサーバが起動していないとエラーが出ますが、特に問題なく使えています。ただし、windows10の職場又は学校にアクセスするからAD参加すると最後でエラーになりますので、従来通りシステムのプロパティからADに参加させましょう。
ユーザの追加などはいろんな管理ツールがあるので割愛します。自分が試したところ、ユーザとコンピュータの登録は出来るのですが、グループポリシーの適用とかが上手くいかないようです。あくまで家庭内で数人ユーザ登録する分には使えると思います。 あとラズパイのスペック的にログインに数秒待たされます。