投稿者名:TOKIDA

このサイトは備忘録であるとともにIT界隈の人に情報をお返し出来たら良いなぁという物です。

Macbook Pro の水没修理

これまでPCを使い続けてきて初めて水没させてしましました。それも海外でMacbookを(T_T)

水没の経緯

  • バックパックのPC格納部分にMacbookを裸で入れる
  • その上からペットボトルを入れる(海外の500mlのペットボトルだったのですが上のキャップの部分が非常に小さいタイプだったのでそれが外れてしまったようです)
  • 気がつくまで10分位
  • 見事に浸水。経路的にはtype-cのコネクタからしっかりと内部に入った模様

初動

  • Macbook Proはディスプレイを開くとPower ONになるのでその段階で一回は通電
  • 画面にAppleマークが表示されてから起動せず
  • とりあえず本体を振って水を外に出す(結構水が出てきた・・)

なお、この状況は海外から帰国する時に発生したためもうどうしようもなくこのままとりあええずタオルでくるみ持って帰ることに。

故障修理までの流れ

結論から言えばMac修理さんで修理をしました。

  1. Apple での集配しての修理(ロジックボード交換)で 12万円(+税)
  2. Apple 公式のリセラー経由の修理(修理内容は同等+明細を忘れましたがなにか)で18万(+税)
  3. 非公式の修理(洗浄処理 4.5万 or ロジックボード交換 10万前後)

一連の流れ的にいえば今夏は Apple のサポートセンターに振り回されてなんか修理する気にならんかったというのが本音。とはいえ確実にこなすなら Apple での修理が一番だと思います。

  1. サポートセンターに水没を連絡したところ上記の2を紹介されました。「その段階で言って中を見てもらえるのでそこで部品があればその場で修理できます」的なことを言われたので予約して4日待ち。
  2. 持っていくと「水没」にかんしては中を見ることなく修理になる旨を伝えられしかも、Appleのほうが安いですと言われる
  3. 再度サポートに電話して状況法伝えるとやはり「2」と同様の回答、一体「1」は何だったのか。
  4. それでもと思い Mac修理.jp さんで修理を依頼

Mac修理.jpさん (http://mac-repair.jp/ )

  • http://mac-repair.jp/
  • 修理品を送付(これは有料)、その後見積りを知て頂きOKならそのまま修理
  • ものが到着してから4日後で戻ってきました。
  • 代金は銀行振込か代金引換での取引
  • 途中メールでやり取りをさせていただきましたが回答も早く安心できました。

今後数年間使っていく上ではAppleで修理したほうが安心だなという気は少ししていたのですがこの機種はキーボードが交換対象の機種なんですよね。
またMacbook proのtouchbarモデルは全て一体型なのでどこが壊れてもロジックボード交換になるので「Apple Care必須」の機種ですね。ここ半年で2回も修理しており辛いです。

さて、実は今回の件は海外で発生したので海外での物品保証対象になっています。私はセゾンアメックス(ゴールド)を持っていたのですがそのおかげて今回の修理費は全て補填されました。助かりました。

Ubuntu メモリ圧縮 zswap で少ないメモリを何とかする

いま使っているMacbook2,1は最大搭載量が2Gといういまだとかなり格安ノートでも備えている容量しか持っていません。
実際問題ブラウジングしてすこしプログラム書いてという程度であれば実際十分なのですがそれでもたまに固まります(スワップしている)

❯❯❯ free
              total        used        free      shared  buff/cache   available
Mem:        2028328     1045384      115460      174816      867484      890260
Swap:       2063356           0     2063356

という状況なので zswap を有効にしてみます。

zswap とは、仮想メモリ圧縮(英語版)を実現する Linux カーネルの機能で、スワップされたページを圧縮されたライトバックキャッシュ上に保持する。メモリページ(英語版)がスワップアウトされる際にスワップデバイス上に移動させるのではなく、システム RAM 上に動的に確保されるメモリプール(英語版)内に圧縮して保存する。実スワップデバイスへのライトバックは延期されるか完全に回避されるので、スワップが必要とされる Linux システム上の I/O を大きく低減させることができる。トレードオフとして、圧縮を実行するために CPU サイクルの消費は増加する – https://ja.wikipedia.org/wiki/Zswap

すでに今回のUbuntu18.04(32bit)ではカーネル上は利用可能になっています。

❯❯❯ cat /boot/config-`uname -r` | grep -i zswap
CONFIG_ZSWAP=y

設定としてカーネルモジュールの設定をします。

$ sudo sh -c "echo lz4 >> /etc/initramfs-tools/modules"
$ sudo sh -c "echo lz4_compress >> /etc/initramfs-tools/modules"
$ sudo /usr/sbin/update-initramfs -u

Grubの起動パラメータと、/etc/default/grunbに以下を追記しています。

GRUB_CMDLINE_LINUX_DEFAULT="text zswap.enabled=1 zswap.compressor=lz4"

これで再起動すれば利用可能になります。

❯❯❯ cat /sys/module/zswap/parameters/enabled
Y
❯❯❯ journalctl -k | grep -i zswap
 6月 21 07:24:10 child kernel: Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.17.2-041702-generic root=UUID=22564c24-a485-4cc2-9fd8-af65d431da9d ro text zswap.enabled=1 zswap.compressor=lz4
 6月 21 07:24:10 child kernel: zswap: loaded using pool lz4/zbud

入れたからと言って急にメモリが増えるわけでもないし挙動が早くなるわけではないですがメモリ不足で急激に落ちるというようなことはなくなったような気がします。おまじない程度で。

Macbook2,1 の温度が上がりすぎなので掃除した

明らかに異常なくらいにファンが回る。すぐ回る。起動した直後から回っている気がする。
ということで実際の温度を確認してみました。コマンドは sensors で確認できます。

 applesmc-isa-0300
Adapter: ISA adapter
Exhaust : 6192 RPM (min = 1800 RPM, max = 6200 RPM)
TB0T: +25.0°C
TC0D: +73.5°C
TC0P: +66.0°C
TM0P: +54.5°C
TN0P: +60.0°C
TN1P: +61.5°C
TTF0: +55.8°C
Th0H: +67.8°C
Th0S: +66.0°C
Th1H: +64.2°C

BAT0-virtual-0
Adapter: Virtual device
temp1: +25.2°C

coretemp-isa-0000
Adapter: ISA adapter
Core 0: +72.0°C (high = +100.0°C, crit = +100.0°C)
Core 1: +72.0°C (high = +100.0°C, crit = +100.0°C)

ファンが全力で動いていますね。CPUも結構活発に動くと一気に70度オーバーです。この状態だとちょっと膝の上ではやけど刷るくらいの温度に感じます。ということで分解して清掃してみました。

大体40個くらいビスをとると清掃できます。で、ここまで来てCPUのグリスがないことに気が付きました。新しくグリスを塗り替えたかった。とりあえず綿棒できれいにしてみます。

❯❯❯ sensors
applesmc-isa-0300
Adapter: ISA adapter
Exhaust  :   1798 RPM  (min = 1800 RPM, max = 6200 RPM)
TB0T:         +25.0°C  
TC0D:         +59.0°C  
TC0P:         +54.0°C  
TM0P:         +45.2°C  
TN0P:         +48.5°C  
TN1P:         +49.2°C  
TTF0:         +56.0°C  
Th0H:         +53.0°C  
Th0S:         +52.0°C  
Th1H:         +51.0°C  

BAT0-virtual-0
Adapter: Virtual device
temp1:        +25.2°C  

coretemp-isa-0000
Adapter: ISA adapter
Core 0:       +58.0°C  (high = +100.0°C, crit = +100.0°C)
Core 1:       +58.0°C  (high = +100.0°C, crit = +100.0°C)

で、再起動後の数値がこちら。
CPU動くとファンが回りますが止まらないほどではなくなりました。多少動いても回転が下がるようになりました。やはり掃除は大切ですね。今のMacbookはとてもバラす気になりませんが2006年式 Macbook はまだまだ普通のプラスドライバーで取り外せるしいい時代でしたね。

Ubuntu Macbook にて tachpad の感度を調整

使っていると tachpad の感度が良すぎて急にマウスが反応したりして利用しづらいところがありました。(振り返ってみればこれは右ボタンを2つ指タッチでエミュレートしていた機能が感度良さ過ぎて反応していた模様です)MacOSはこの辺の調整がよく出来ていて不便なく使えるのですが Linuxの場合には調整しておかないと不便です(設定できることが良いことですが)

  • 触れていないようで左手の親指の付け根が結構パットに触れていることがある。
  • これにより操作中でもたまにパッとメニューが出てくる。
  • キーの入力中にカーソルのフォーカスが突然外れる。
  • マウスを利用しているときにはタッチパッドは使わない。

状況からすると

  • 入力中の場合にタッチパッドを一時的に利用不可にする
  • タッチパッドの範囲を意図的に狭める
  • マウス接続中には基本的にはタッチパッドは不要

ということで対応ができそうだということがわかります。

タッチパッドの設定

今回の環境は Ubuntu18.04の場合です。それ以外のリビジョンの場合には適宜読み替えてください。この環境ではXorgの設定ファイルが存在していないため作成するところから始まります。

$ sudo mkdir -m 755 /etc/X11/xorg.conf.d
$ sudo cp /usr/share/X11/xorg.conf.d/70-synaptics.conf /etc/X11/xorg.conf.d/
$ sudo chmod 644 /etc/X11/xorg.conf.d/70-synaptics.conf
$ sudo vi /etc/X11/xorg.conf.d/70-synaptics.conf

設定をするまえに現在のタッチパッドの情報を取得しましょう。

❯❯❯ grep range /var/log/Xorg.0.log
[    42.980] (--) synaptics: appletouch: x-axis range 0 - 1215 (res 0)
[    42.980] (--) synaptics: appletouch: y-axis range 0 - 575 (res 0)
[    42.980] (--) synaptics: appletouch: pressure range 0 - 300
[    42.980] (--) synaptics: appletouch: invalid finger width range.  defaulting to 0 - 15

私の場合には上記の範囲がタッチパッドの有効範囲です。なので周り一周分を取り除く場合には以下の設定になります

        Option "AreaTopEdge"           "200" 
        Option "AreaLeftEdge"          "200"
        Option "AreaRightEdge"         "1000"

この設定を含めておくと変な動作はしなくなりました。また起動時にタッチパッドを入力中は無効にする設定を含めたスクリプトを起動しておくと便利です。これ以外にもUSBマウスが刺されているとタッチパッドを向こうにするなどのアイディアで便利に利用している人もググると見つけられたのでいい塩梅なところで設定していきたいと思います。

USBマウス接続時に無効化

こちらは usbデバイスが動作したときに動かすことができる udev のルールを利用して無効・有効を行います。

$ sudo vi /etc/udev/rules.d/01-touchpad.rules

内容としては以下の内容を記載します

SUBSYSTEM=="input", KERNEL=="mouse[0-9]", ACTION=="add", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="/home/hideaki/.Xauthority", RUN+="/usr/bin/synclient TouchpadOff=1"
SUBSYSTEM=="input", KERNEL=="mouse[0-9]", ACTION=="remove", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="/home/hideaki/.Xauthority", RUN+="/usr/bin/synclient TouchpadOff=0

まとめ

この設定をするとだいぶ利用しやすくなりました。特にマウス接続時には自動で無効されますのでストレスがなくなりました。

参考

この辺の設定の解説はこちらに詳しく説明がされています。

久しぶりにArchLinuxの資料を見たのですがきちんとまとまっていてよかったです。今度はUbuntuじゃなくてArc入れてみようかなと思った次第

Ubuntu18.04 on MacBook2.1 にてfbのエラーで起動しない

Grubから起動する際にどうもDisplay Driverの問題で起動できない状態が続いていました。1回失敗して次には成功するという謎のサイクルで動いていましたがようやく解決出来たのでメモしておきます。

症状

  • 起動時に「Switching to inteldrmfb from VESA VGA」で動かなくなる
  • 起動時にframebufferモードからintelfbに変更しようとして固まります。(リセットしか対処がありません)
  • その際はたいてい画面上の解像度が 800×600 っぽい状態になっています
  • リセットすると再度起動した際には動く場合が多いです

暫定的に起動させる

  • linux /boot/vmlinuz-4.15.0-22-generic root=UUID=22564c24-a485-4cc2-9fd8-af65d431da9d ro text nomodeset
  • Grubで起動するカーネルの選択で上記のように nomodeset を記載すると起動することが出来ます。ただしこの状態で起動するとXorgのディスプレイの設定が変更できず fbモードの1024×768固定サイズになってしまいます。
  • 一度nomodesetで起動するとなかなか再起動しても戻ることができなくなってしましました。

対処方法

grubの起動スクリプト内の記載されている以下の内容を消します。
スクリプトは /boot/grub/grub.cfg になります。

gfxmode $linux_gfx_mode

を削除します。

その他

  • grubの編集をするのは grub-customizer が便利(GUIで簡単)
  • この設定をすると 1280×800 でコンソールが利用可能になる
上部へスクロール