yumetodoの旅とプログラミングとかの記録

旅や登山の記録やプログラミング関連の話とかフリーソフト紹介とか

第1次ノートPCモニター修理

はじめに

yumetodo.hateblo.jp

先日ノートPCのモニターが壊れた話をしたが、その修理の話をしよう。

PC修理を謳う何社かに見積もりを依頼した。その結果を記すことにする。

ただし、修理価格は修理素材の価格が大きく変動するため載せることは無意味である。というか大体どこも同じくらいの価格になる。

今回は液晶パネル交換だった。 14インチHD+ノングレアのもので、各社とも5万円以下には収まっていたとだけ書いておく。この記事を参考に修理を依頼しようと考える人はとりあえず見積もりを依頼することをおすすめする。

送信した見積もり依頼の文面

修理依頼

依頼概要

ノートPCの液晶画面修理

依頼者情報

氏名

住所

東京都(以下略)

連絡先

メール連絡を希望。電話の場合で留守電になった場合は留守電に入れてください。折り返します。

E-Mail

TEL(mobile)

TEL(home)

メーカー

MSI

機種

GE40 2OL-266JP

PSN: GE40 2OL-266JP-BB54208G1T0S7P S/N: GE40 2OL-266JPK1309000006

OS

Windows 10 x64

グラフィックカード

液晶モニター

14'‘HD+ 1600x900 (Non-Glare Type)

故障内容

モニターに縦と横にカラフルな線が全面に入り、表示内容を視認不能(図1)。

図1:
https://img.pawoo.net/media_attachments/files/001/450/231/original/0c7ab039d938e889.jpg img1

突然こうなったので、ダメージが蓄積していたか、本体とモニターをつなぐヒンジ付近の先の接触不良の疑い。

外部モニターにHDMI端子を利用して接続したところ正常に動作しているため、ソフトウェア的な問題やグラフィックボードの問題とは考えにくい。

OSが起動している状態でマウスやキー操作を行い画面遷移させると故障したモニターの縦と横に入るカラフルな線の色と位置が変化する(図2)。

図2:
https://img.pawoo.net/media_attachments/files/001/493/288/original/da7c56ff90079146.jpeg img2

確認事項

  1. 修理費用。上限いくらか。費用の明細も。
  2. キャンセル費用はいくらか
  3. 到着後おおよその修理日数は何日か
  4. 修理後のサポートは(修理に起因する動作不良の対応など)どうなっているか、期間は
  5. データが消去されることは無いか
  6. 修理時OSが起動可能な状態である必要はあるか(データバックアップが面倒なのでできればダミーのSSDを取り付けて送りたい)
  7. 持ち込みの場合の持っていくことが可能な日時

距離的に直接持ち込める会社については7.も質問した。

見積り依頼文章の主眼

見積もりを依頼した時点で液晶パネル交換か信号線交換だろうなと踏んでいた。なのでそういう回答を相手ができるだけの情報を提供したつもりだ。したがってそれに気が付かず、GPUとかドライバーとか言ってくる業者は問答無用で切り捨てだ。技術力がない。

今回の場合データが消えるような修理内容ではないので、それを示唆するような返答があったらそれも切り捨て対象だ。

一方でOSが起動できない状態だとろくに動作確認作業ができないはずで、この辺をどう返答するかも見極めポイントとした。

回答

見積り依頼を投げたのが、2017/06/24の14:00くらいだ。土曜日だから返答が来るのは月曜日かなと思ったら各社とも回答が速かった。びっくり。

回答が来た順に並べる。

パソコン修理本舗(静岡)

http://lcd99-honpo.com/qa_shipping.html

チェック項目 回答
送信フォームの暗号化 TLS 1.2, ECDHE_RSA with P-256, AES_128_GCM
返答メールの暗号化 なし
返答メール受信時刻 2017/06/24 14:35:00
修理内容 液晶パネル交換
保証期間 6ヶ月
修理期間 7-14日
持ち込み -
キャンセル費用 0円
データ消去の可能性 言及なし
起動可能なOSは必要か 言及なし

30分以内回答を謳うだけあってえげつない回答速度である。

データについて何も言ってきてないあたり十分に内容を読んでいないのではという思いがある。

パソコン修理 PC Fixs(新宿)

http://www.pc-fixs.com/

チェック項目 回答
送信フォームの暗号化 なし
返答メールの暗号化 標準的な暗号化(TLS
返答メール受信時刻 2017年6月24日 14:58
修理内容 液晶ケーブル、液晶パネル、マザーボード
保証期間 3ヶ月
修理期間 3-14日
持ち込み 予約不要
キャンセル費用 0円
データ消去の可能性 なし
起動可能なOSは必要か あったほうがよい

マザーボードが可能性に上がっていた。うーん、関係ねーと思うぞ。

あと修理価格、修理期間ともに幅が大きすぎてなんとも言えん返答。

メールの返答自体は丁寧だったんだけど。

パソコン修理のレノープ by 株式会社ズノウ(世田谷)

http://www.renov.jp/

チェック項目 回答
送信フォームの暗号化 TLS 1.0,ECDHE_RSA with P-256,AES_128_CBC with HMAC-SHA1
返答メールの暗号化 標準的な暗号化(TLS
返答メール受信時刻 2017年6月24日 14:58
修理内容 修理不能
保証期間 -
修理期間 -
持ち込み -
キャンセル費用 -
データ消去の可能性 -
起動可能なOSは必要か -

結論から言ってこの会社はダメだ。頭にきて思わず次のメールを投げかえしてしまった。

こちらから提供した情報を一体どう解釈したら「マザーボードやグラフィック系統の故障の可能性」となるのか皆目見当がつきません。HDMI出力が生きているのにマザーボードもグラフィックボードも死んでいるわけがないじゃないですか。 また外部モニターを使い正常に起動できていると書いたにもかかわらず、データ救出の案内という頓珍漢な返答に驚きを隠せません。ダミーのSSDをつけてもいいかという質問からデータ救出くらいできる技術力は持っていると読み取れたと思うのですが。

「パソコン修理」を謳っているにもかかわらず、Yahoo!知恵袋の回答者の知識すらはるかに下回るであろうお粗末な技術力には一切信用することができず、私のPCをお預けする気にはなれませんでした。

(中略)

今後も「パソコン修理」を謳うのであればもう少し知識を身につけたほうがいいのではないかと心配になりました。

御社の発展と技術力向上を切にお祈り申し上げます。

技術力が皆無の素人と言わざるをない。

液晶修理屋(大阪)

http://pc-shuuri.com/

チェック項目 回答
送信フォームの暗号化 なし
返答メールの暗号化 標準的な暗号化(TLS
返答メール受信時刻 2017年6月24日 16:15
修理内容 液晶パネル交換
保証期間 180日
修理期間 3日以上
持ち込み -
キャンセル費用 なし
データ消去の可能性 なしと判断できる内容
起動可能なOSは必要か あったほうがよい

返答メールに

他社より上記価格が高い場合は、お気軽にご相談ください。

の一文が。よほどパーツ仕入れ力に自信があるのだろうか。

非常に細かく丁寧なメールだった。

パソコン修理ズバット東京(板橋)

http://www.pc-zubat.com/

チェック項目 回答
送信フォームの暗号化 なし
返答メールの暗号化 標準的な暗号化(TLS
返答メール受信時刻 2017年6月24日 17:20
修理内容 接続ケーブル断線/液晶パネル不良
保証期間 180日
修理期間 2営業日/即日~翌営業日
持ち込み 要予約
キャンセル費用 なし
データ消去の可能性 なし
起動可能なOSは必要か どちらでも

すごくしっかりこちらの問い合わせ文を読んでくれているんだなというのが伝わるメールだった。結論から言うとここに修理をお願いしたのだが、実際に持ち込んだときに、画像からノートPCの利用状況まで推察してた(圧迫痕がある)と言われたのでエゲツねぇ。強い。

パソコン修理のパソピア by 有限会社エヌシステム(香川)

http://pc-pier.com/index.html

チェック項目 回答
送信フォームの暗号化 なし
返答メールの暗号化 標準的な暗号化(TLS
返答メール受信時刻 2017年6月26日 9:38
修理内容 液晶パネル不良
保証期間 3ヶ月
修理期間 7日~2週間
持ち込み -
キャンセル費用 0円
データ消去の可能性 なし
起動可能なOSは必要か 可能な限り起動可能な状態で

技術力が伺えるメールだった。ただし文面がとっても読みにくい。ついでに返答メールのフォントサイズがぐちゃぐちゃで辛い。

パソコン修理ドットコム by インバースネット 株式会社(秋葉原他)

https://www.inversenet.co.jp/repair/

チェック項目 回答
送信フォームの暗号化 TLS 1.2,ECDHE_RSA with P-256,AES_128_GCM
返答メールの暗号化 なし
返答メール受信時刻 2017年6月26日 12:47
修理内容 液晶パネルユニット
保証期間 3ヶ月
修理期間 1週間
持ち込み 予約不要
キャンセル費用 5,400円
データ消去の可能性 なし
起動可能なOSは必要か OSなしでの表示テストを行い、確認

店頭での直接修理対応は行っておりません。すべて当社の修理センター(栃木県)への転送後、作業着手させていただきます。

とのことだった。

お問い合わせフォームがむっちゃセキュリティを重視しているような作りなのにメールが暗号化されていなくて拍子抜けだった。
情報セキュリティの国際規格、ISMSを認証取得とか言う割にはなんだかなぁ。

なおお断りのメールを出したら

インバースネットパソコン修理サービス担当でございます。 ご返信いただきましてありがとうございます。

ズバット様は直接修理対応可能な実店舗様をお持ちでございますので、
その部分の安心感&スピードにつきましては、当社ではかないません。 ご容赦のほどお願い申し上げます。

また機会がございましたら是非お問い合わせくださいませ。

という返信が。別に修理のクオリティが低いとかそういうことはなさそうなので、納期と費用次第ではありだと思う。

パソコン修理ズバット東京に決定した

まあ「パソコン修理のレノープ by 株式会社ズノウ」はありえないとして、なにを基準に選ぶかだが、

  • やっぱり自分で持ち込めるほうがいい、宅配便は面倒だし、輸送事故が怖い。
  • 納期の速さを優先。さっさと直したかった

という点からパソコン修理ズバット東京に決定した。

電話して予約を取って持ち込んだ。

Googleストリートビューだとわかりにくいが、お店は住宅地の中にある。半地下の駐車場の奥に入口があって、店内は割と狭い。

PCを預けて、翌日お金を持って受け取りに行った。

実はこのノートPC、買って半年もせずにモニター部とキーボードの間のヒンジのネジが飛んでガバガバになっていたのだが、かんたんに直せそうとのことでついでに直していただいた。感謝。

私「スムーズにモニターが開閉できる・・・だと!?」
*普通です

感想

修理見積もりってある程度こちらの個人情報を開示するわけで、問い合わせフォームとかメールとか、もうすこしセキュリティに気を使ってほしいと思う。今回見積もりを出した会社はこの点、どの会社も満足行かない結果になった。

第2次ノートPCモニター修理に続く

いや、この修理とは全く関係なくまたおなじノートPCの液晶を壊したので・・・。

修理が終わったら記事書きます。

Mastodon 1.5.0で入った糞仕様

https://pawoo.net/@ykzts/31905004pawoo.net

Mastodon 1.5.0から警告文付きのトゥートに添付された画像は全部閲覧注意になるように仕様変更された。

関連するIssue/Pull Requestは

github.com

github.com

github.com

github.com

github.com

だ。

どういうことが実験した。CW(Content Warning)マークを付けて、警告文と本文を書き、画像を同時に投稿する。結果がこちらだ。

まずpawoo.net。これは執筆時点ではまだ1.5.0になっていない。

in pawoo

次にmstdn.jp。これは執筆時点では1.5.0になっていた。

in mstdn

つまるところ、CWマークが付いたTooTは、NSFW(Not Safe For Work)マークを無視して強制的に画像もNSFWとして扱うようになる変更だ。明らかなbreaking changeだ。


この仕様入れたやつ全員に問いたい。 どう考えてもテキストが注意を要するかと画像が注意を要するかは全く完璧に別次元の問題だろ、なんで混ぜるんだ、アホか?

たかがすでに幾つかのインスタンスでそうなっているからって、こんなもんRejectされるべきだろ、ばっかじゃねーの?

挙句手動で画像が閲覧注意になるのを取り消す手段がねーときた。

一体どういう意図でこの糞変更を取り込んだんだ?

せめて、CWマークをつけるときにNSFWマークも付けるようにUIを変えるとかそういう程度にするべきだったんじゃねーのか?それでもありえね~が。

過去に遡ってこんな変更が遡及適応されるとか正気を疑う。


まあ私yumetodoはMastodonにはほぼ皆無と言っていいくらい貢献はしていないし、Issue/Pull Request見る範囲では私が理解できなかっただけでなんか決定的な理由があるのかもしれない(私の英語力はあてにならない)ので、そういうことなら指摘してほしい。喜んで飛び跳ねるので。


追記

まさかのtypos/NFSW/NSFW/

東京理科大学のLinux環境に最新のgitを自前ビルドして導入しようとしたが挫折した話

はじめに

まじでCentOS6、ひいてはRedHatに殺意を覚える内容となっている。大体2009年とかでバージョンが止まってるものが多すぎる。今2017年だぞ?8年前とかもはや旧石器時代だ。

以下のビルド手順はArch Linux RepositoryおよびArch User RepositoryのPKGBUILDに大いにお世話になっている。これなしでは挫折したであろうこと疑いない。

なぜgitのビルドが必要か

実は理科大は今年Linux環境がCentOS5からCentOS6になった。なんでCentOS7じゃないんだよという話は

yumetodo.hateblo.jp

でしたので割愛して、その影響で今年からgitが使えるようになった。人権がある、そう思っていた。

ところが

$ git --version
git version 1.7.1

となる。1.7.1だぁ?時代は2.xだぞ?

しかも困ったことがある。

https://help.github.com/articles/https-cloning-errors/

によれば

Check your Git version

There’s no minimum Git version necessary to interact with GitHub, but we’ve found version 1.7.10 to be a comfortable stable version that’s available on many platforms. You can always download the latest version on the Git website.

1.7.10以上が必要らしい。Git使うのにGithubにpushできないとか人権がない(fechはできる)。

まだgitがビルドできると思っていた頃の記録

下準備(大学のPCのWindows上)

どういうわけか~/.bashrcのwrite permissionが無いので大学のPCのWindows上で~/.bashrcの中身をコピーした改行コードがLFのテキストファイルを作成し、powershellとかコマンドプロンプト

copy a.sh .bashrc

とかする。するとwrite permissionとexecution permissionが手に入る。

ここまでやればあとはssh越しでもできる。

下準備
cd ~
mkdir -P local

それから~/.bashrc

export PATH=/home/232/2314090/local/bin:$PATH
export LD_LIBRARY_PATH='/home/232/2314090/local/lib:$LD_LIBRARY_PATH'
export PKG_CONFIG_PATH='/home/232/2314090/local/lib/pkgconfig:$PKG_CONFIG_PATH'

を追記して

source ~/.bashrc

しておく。

cmake

cmakeが2.8.12.2とか古すぎてやってられないので、公式から新しくbinaryを取ってくる。

cd /dev/shm
wget https://cmake.org/files/v3.9/cmake-3.9.0-rc3-Linux-x86_64.sh
chmod +x cmake-3.9.0-rc3-Linux-x86_64.sh
./cmake-3.9.0-rc3-Linux-x86_64.sh

くっそ長いライセンス同意文を慎重に読み飛ばして、Do you accept the license?y、ついでDo you want to include the subdirectoryn。そうしたら

source ~/.bashrc

する。これを忘れると

CMake Error: Could not find CMAKE_ROOT !!!
CMake has most likely not been installed correctly.
Modules directory not found in
/home/232/2314090/local/bin
セグメンテーション違反です (コアダンプ)

とか怒られる。

stackoverflow.com

zlib
cd /dev/shm
wget http://zlib.net/zlib-1.2.11.tar.gz
tar -xf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure --prefix=/home/232/2314090/local
make
make install

どういうわけかpkgconfigがぶっ壊れているので自力で書き換える。

vim ~/local/lib/pkgconfig/zlib.pc

などして

prefix=~/local

となっているのを

prefix=/home/232/2314090/local

にすればよい。

openssl
cd /dev/shm
wget https://www.openssl.org/source/openssl-1.1.0f.tar.gz
tar -xf openssl-1.1.0f.tar.gz
cd openssl-1.1.0f
./config --prefix=/home/232/2314090/local --with-zlib-include=/home/232/2314090/local/include/ --with-zlib-lib=/home/232/2314090/local/lib/ zlib
cd ~/local/ssl/certs
ln -s /etc/pki/tls/certs/ca-bundle.crt ca-bundle.crt
ln -s /etc/pki/tls/certs/ca-bundle.trust.crt ca-bundle.trust.crt
ln -s /etc/pki/tls/certs/localhost.crt localhost.crt

--with-zlib-includeを間違えて-with-zlib-includeにしていてエラーになり質問したりしてた。恥ずかしい。

pip(python)

~/.bashrc

export PYTHONPATH='/home/232/2314090/local/lib/python2.6/site-packages:$PYTHONPATH'

と追記し、

mkdir -p ~/local/lib/python2.6/site-packages
source ~/.bashrc
easy_install --prefix=$HOME/local pip

とする。get-pip.pyはインストール先を使えないので使わない。

libev
cd /dev/shm
git clone https://github.com/JiapengLi/libev.git --depth=1
cd libev
./configure --prefix=/home/232/2314090/local/
make
make install
libevent
cd /dev/shm
git clone --depth=1 -b release-2.1.8-stable https://github.com/libevent/libevent.git
./autogen.sh
./configure --prefix=/home/232/2314090/local --disable-libevent-regress --disable-samples
make
make install
jansson
cd /dev/shm
git clone https://github.com/akheron/jansson.git
cd jansson/
git checkout -b build v2.10
cmake -DCMAKE_INSTALL_PREFIX=/home/232/2314090/local -DJANSSON_BUILD_DOCS=false
make
make install

-DJANSSON_BUILD_DOCS=falseをしないとsphinxというpython製のドキュメント生成ツールを要求されます。pipは上述の通り入れられるがpipを使ったインストールがどうもできない。

pip install --install-option="--prefix=$HOME/local" sphinx
pip install sphinx --user

は試したけどだめだった。

libunistring
cd /dev/shm
wget https://ftp.gnu.org/gnu/libunistring/libunistring-0.9.7.tar.xz
tar -xf libunistring-0.9.7.tar.xz 
cd libunistring-0.9.7
./configure --prefix=/home/232/2314090/local 
make
make install
gettext
cd /dev/shm
wget http://ftp.gnu.org/pub/gnu/gettext/gettext-0.19.8.1.tar.gz
tar -xf gettext-0.19.8.1.tar.gz 
cd gettext-0.19.8.1
./configure --prefix=/home/232/2314090/local --libdir=/home/232/2314090/local/lib --libexecdir=/home/232/2314090/local/lib
make
make install

わりとビルドには時間がかかる。これの依存ライブラリのlibaclはCentOS6にくっついてくるものでよさそうだ。

autoconf

なんとxzをビルドするのにまさかのautoconfのビルドが必要だった。さもないと

error: Autoconf version 2.64 or higher is required

とか言われる。ちくせう。

cd /dev/shm
wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.xz
tar -xf autoconf-2.69.tar.xz 
cd autoconf-2.69
./configure --prefix=/home/232/2314090/local
make
make install
automake

なんとxzをビルドするのにまさかのautomakeのビルドも必要だった。さもないと

require Automake 1.12, but have 1.11.1

とか言われる。ちくせう。

cd /dev/shm
wget http://ftp.gnu.org/gnu/automake/automake-1.15.1.tar.xz
tar -xf automake-1.15.1.tar.xz 
cd automake-1.15.1
./configure --prefix=/home/232/2314090/local
make
make install
xz

なんかこいつのためにえらいいろいろビルドさせられた感ある。

git clone https://git.tukaani.org/xz.git
cd xz
git checkout -b build v5.2.3
./autogen.sh
./configure --prefix=/home/232/2314090/local --disable-rpath --enable-werror
make
make install
libicu(失敗)
cd /dev/shm
wget http://download.icu-project.org/files/icu4c/59.1/icu4c-59_1-Fedora25-x64.tgz
tar -xf icu4c-59_1-Fedora25-x64.tgz
cd icu/usr
rsync -a local/ ~/local

これはビルドが面倒そうなので公式配布のfedora向けのbinaryを拝借しようとしたらglibcのバージョンが合わずに失敗した。仕方ないからビルドしようとするじゃん?std::nullptr_tって何ですか?ってエラーが出るんですね、C++11に対応した環境じゃないとビルドできない。

C++11環境が必要になった

gcc

C++11がまともに使えないgccではclangをビルドできないので、gccgccをビルドする。

cd /dev/shm
wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-7.1.0/gcc-7.1.0.tar.bz2
tar -xf gcc-7.1.0.tar.bz2
cd gcc-7.1.0
mv ./contrib/download_prerequisites ./contrib/download_prerequisites_bk
sed -e "s/ftp/http/g" ./contrib/download_prerequisites_bk > ./contrib/download_prerequisites
chmod +x contrib/download_prerequisites
./contrib/download_prerequisites
cd /dev/shm
mkdir gcc_build
cd gcc_build/
../gcc-7.1.0/configure --prefix=$HOME/local --enable-languages=c,c++ --disable-multilib 2>&1 | tee ~/gcc710_configure.log
make -j2  2>&1 | tee ~/gcc710_build.log

なんと容量不足でコケる。libstdc++のリンク作業で詰む。

WebDAVをマウントして速度を犠牲に容量不足を解消しようとした

幸い理科大のネットワーク回線は比較的高速なので、WebDAVをマウントしてそこでgccビルドすればワンちゃんあると思った。 理科大生なら今年からBoxが無料で無制限に利用できるから容量の心配はいらない。

serverfault.com

によればwdfsってのを使えばrootがなくてもマウントできるぽい。

neon

WebDAV Client library。

wget http://www.webdav.org/neon/neon-0.30.2.tar.gz

tar -xf neon-0.30.2.tar.gz 
cd neon-0.30.2
./configure --prefix=$HOME/local --with-expat --enable-shared --disable-static --with-ssl=openssl --with-ca-bundle=/etc/pki/tls/certs/ca-bundle.crt
make
make install
fuse

mountしちゃう系ソフト。わりとインストールが面倒くさい。configure先生仕事してください。

wget https://github.com/libfuse/libfuse/releases/download/fuse-2.9.7/fuse-2.9.7.tar.gz
tar -xf fuse-2.9.7.tar.gz 
cd fuse-2.9.7
./configure --prefix=/usr --libdir=/usr/lib --enable-lib --enable-util --disable-example
make
mkdir dest
make DESTDIR=/dev/shm/fuse-2.9.7/dest install
cd dest/
mv etc/udev usr/lib/
mv sbin/mount.fuse usr/bin/
rsync -a usr/ ~/local

本当は/etcfuse.confもおかないといけないんだけど、permissionがないので致し方なし。

で、pkgconfigがぶっ壊れているので

vim ~/local/lib/pkgconfig/fuse.pc

などして

prefix=/usr
exec_prefix=${prefix}
libdir=/usr/lib
includedir=${prefix}/include

となっているのを

prefix=/home/232/2314090/local
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include

にすればよい。

wdfs

WebDAVをマウントするソフト。

wget http://noedler.de/projekte/wdfs/wdfs-1.4.2.tar.gz
tar -xf wdfs-1.4.2.tar.gz 
cd wdfs-1.4.2
LDFLAGS='-lpthread' ./configure --prefix=$HOME/local
wget https://raw.githubusercontent.com/jmesmon/overlay/master/net-fs/wdfs/files/wdfs-1.4.2-fix-Waddress.patch
wget https://raw.githubusercontent.com/jmesmon/overlay/master/net-fs/wdfs/files/wdfs-1.4.2-user-agent.patch
patch -p1 -t -N < wdfs-1.4.2-fix-Waddress.patch 
patch -p1 -t -N < wdfs-1.4.2-user-agent.patch 
make
make install

github.com

のパッチを利用させてもらった。

ビルドは通ったがいざ使おうとすると

$wdfs https://dav.box.com/dav $HOME/mnt/box
username: 2314090@ed.tus.ac.jp
password:
fusermount: mount failed: Operation not permitted

権限がないと言われる。詰んだ。あーもーだめだ(AMD)。