スマホの分解修理

一昨日、いつものように、寝る前に愛用の中華スマホの充電をスタンバイしようとしたら、USBケーブルがなかなか挿さらず、更にグイっとやったら、何か鈍い感覚が走り、充電できない状態となった。あと残り命75%。あぁ、やっちまった ... _| ̄|◯

私にとってスマホは体の一部とまではいかないが、大事な存在。命が尽きる前に対処せねばならない。

 

案1:修理屋に持っていく。

→ 調査したところ、USBサブ基板交換の場合、~15,000円。これは痛い。。。

案2:この機会に政治リスクの無い格安スマホを買う。

→ 格安スマホは、どれも政治リスクを抱えている。

案3:自分で修理する。

→ 破損した箇所はサブ基板となっており、交換可能、かつ、AmazonPrimeでお安く売っていることが判明した。お急ぎ手配したらすぐに届いたので本日さっそく作業にとりかかる。まぁ、失敗したら、通信系組込エンジニアには懐かしいブランド名のg7 plusあたりを速攻で買おう。

 

準備:

  1. 壊したスマホのサブ基板:1000〜1500円。AmazonPrimeでお急ぎ手配。
  2. スマホ専用工具:700〜1200円。手持ちのものでも問題無さそうだったが、買っておくことにした。 iPhone用でもOK。AmazonPrimeでお急ぎ手配。
  3. 使用済テレカ等:QUOカード、ポイントカード等でOK。バックパネルのノリの再接着防止で使う。2~3枚、または、1枚を1/3 x 3にしておく。
  4. ドライヤー:バックパネルのノリをはがす時に使う。
  5. 手袋:あっちっちになるので。基板に触れる時も手袋している方が良い。

格安中華スマホとはいえ、昔のスマホようにツメで開封できるような甘さは無い。なめてかかると失敗しそう。

 

結果:

途中、あぶないシーンが1つあったが、無事、修理できた。手順としては、

  1. 本体とバックパネルの間をドライヤーであたためながら、三角ピックかテレカを使って隙間を開ける。空けた隙間にはテレカをはさみ、再接着させないようにする。テレカは中に入り込み過ぎないように。
  2. 1の作業を続ける。1周したら、注意深くゆっくりと開ける。
  3. 本体下のネジ(黒6, 銀1)を外してから黒いカバーを取り外す。ここで初めて交換対象のサブ基板が見える。
  4. サブ基板のアンテナ線とリード線をピンセット等で外す
  5. 本体からサブ基板を外し、新品のサブ基板を挿入する。
  6. あとは上記と逆の作業。

  

参考にしたサイト:

ここここ
*Teardownサイトのサウンドに乗って余計な分解までしないように(笑

 

あぶなかったシーン:

アンテナ線を外す際に、基板側のコネクタを根こそぎフットパタンごとはがしてしまった。丁度このシーン。これはやばいと思ったが、今回はサブ基板は交換なので、アンテナ線側のコネクタ部さへ壊さなければ大丈夫。冷や汗ものだったが、無事リカバーできた。

 

感想:

Amazon最強! ただし、自己責任で。警告↓
https://www.amazon.co.jp/b/?node=5859744051

 

体に染み付いた古い習慣を一掃

どの分野においても、変化を受け入れ順応していくと、更なる新しい展開を楽しく受け入れられるようになる。

未だにifconfigとか、service samba restartとか、体に染み付いた時代遅れコマンドをつい使ってしまうが、Debian 10やCentOS 8の運用をきっかけに、今時の実装に慣れていきたいと思う。

以下、気付いたコマンド・デーモン。

古い実装 今時の実装 備考
ifconfig
(net-tools)
ip a, ip -s a, ip n, …  
route add -net default gw 192.168.0.1 nmcli c modify eth0 ipv4.gateway 192.168.0.1  
iptables nftables  
ntpd chronyd redhat解説
xorg wayland (GNOME, KDE) XFCExorg
cron systemd.timer man systemd.timer
rsyslog journalctl man journalctl
service, rcconf, chkconfig, ... systemctl  
eth0 enp0s3 命名規則等
AppArmor RedHat系ではSELinux

参考:Debian 10 (buster) リリースノート (64 ビット PC 用)

server-worldさんの備忘録ページで、Debian10や、間もなく出てくるであろうCentOS8に関する記事の設定を見ると良いと思う。

iptables/fireholでNAT/IPマスカレード/ポートフォワディングしている部分をnftablesに乗り換えるところは、いずれ整理したい。 

 

Debian10 でScreenlets

[再掲] Screenletsのようなガジェットは、セキュリティリスクが多分にあって全く推奨できず、標準パッケージはもはや存在しないが、閉塞的な開発PCや仮想マシンでの限定的な用途であれば問題無いであろう、たぶん。


やり方はここと同じノリだが、やはり一筋縄でななかった。
やった後で気付いたのだが、単に、stretchのリポジトリを指定してインストールすればよかった気もするが、試していない。

apt install python-cairo python-gtk2 libwnck22 libwnck-common python-gobject-2 python-tz python-dbus python-xdg gnome-icon-theme
apt install python-gconf  ## GNOMEを使う場合は必要みたい
wget http://ftp.debian.org/debian/pool/main/g/gnome-python-desktop/python-wnck_2.32.0+dfsg-3_amd64.deb
wget http://ftp.debian.org/debian/pool/main/g/gnome-python-desktop/python-rsvg_2.32.0+dfsg-3_amd64.deb
wget http://ftp.debian.org/debian/pool/main/b/beautifulsoup/python-beautifulsoup_3.2.1-1_all.deb
sudo dpkg -i *.deb

## 必要に応じて
sudo apt --fix-broken install

## 以下、UbuntuとDebianで、ScreenletsのPythonコンテンツの対応とフォルダ構成が
## わずかに異なる。過去の資産に合わせて対応すると良い。

## Ubuntu派:screenletsをlaunchpadから入手
wget https://launchpad.net/screenlets/trunk/0.1.7/+download/screenlets-0.1.7.tar.bz2
tar xaf screenlets-0.1.7.tar.bz2
cd screenlets-0.1.7/
sudo make install  ## エラー出るけど無視

## Debian派:screenletsを http://ftp.debian.org/debian/pool/main/s/screenlets/ から入手
wget http://ftp.debian.org/debian/pool/main/s/screenlets/screenlets_0.1.2-8.1.diff.gz
wget http://ftp.debian.org/debian/pool/main/s/screenlets/screenlets_0.1.2.orig.tar.gz
gunzip -d screenlets_0.1.2-8.1.diff.gz
tar xaf screenlets_0.1.2.orig.tar.gz
cd screenlets
patch -p1 < ../screenlets_0.1.2-8.1.diff 
sudo make install  ## エラー出るけど無視

## シンボリックリンクの処置
cd /usr/share/icons
ln -s hicolor/scalable/apps/screenlets-tray.svg 
ln -s hicolor/scalable/apps/screenlets.svg 
ln -s /usr/lib/python2.7/site-packages/screenlets /usr/lib/python2.7/dist-packages/screenlets

## Screenletsのコンテンツにこれまでのコレクションを適用する場合
scp -r <Screenletsが稼働しているPC>:/usr/share/screenlets /tmp
# root権限で
mv /tmp/screenlets /usr/share
chown -R root:root /usr/share/screenlets

## Screenletsの設定を引き継ぐ場合
## Ubuntu派はSが小文字:
cd $HOME/.config/screenlets
scp -r <Screenletsが稼働しているPC>:/home/<user>/.config/screenlets/* .
## Debian派はSが大文字:
cd $HOME/.config/Screenlets
scp -r <Screenletsが稼働しているPC>:/home/<user>/.config/Screenlets/* .


Screenletsウィジェットをマウスで移動できないときの処置:
GNOME環境ではこの処置が必要だが、Cinammon, MATE, XFCE環境では不要(やってもいい)。処置する場合、インストール前のソース __init__.py またはインストール後の/usr/lib/python2.7/site-packages/screenlets/__init__.py を、ここにある内容となるように編集する。
つまり、
 NG: self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DOCK)
 OK: self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_UTILITY)

ラズパイ・アラカルト

新ラズパイ

Raspberry Pi 4 がもうすぐ国内でも発売されるはず。CPUパワーアップだけでなく、これまでLANが基板内部でUSB経由だったところがCPU直結となる点が嬉しい。

シリーズはWiki先生が整理してくれている。

10/M追記:技適認許はいつも長いが、それについてエンジニアからの説明がここにある。

 

FPGAラズパイ

空想の世界では存在する。SF小説『オービタル・クラウド』。IT/IoT/サイバー/宇宙に関心のある方は、文庫上巻の末尾にある用語解説を見るだけで好奇心が湧いてくるはず。

来年FPGAラズパイが本当に出たら、予言的中! まぁ、それに近いモデルは既にあるが、ラズパイのような価格/流通量ではない。

 

アクリルラズパイ

かつて私の恋人だったPi3 Model B。2つ型落ちとなり、今はアクリルを身にまとうオブジェに。 

f:id:t0a9n9a4k:20190813203706j:plain

 ・・・真面目に使う場合はファンをまわしてはいけない。ヒートシンクにしよう。アクリルは基板に密接するので、型番が少しでも違うとNG。手配するときは型番をしっかりマッチさせよう。

 

エアロの合間にBodyjam

サウンドとムーブメントの絶妙なマッチング。爽快にはじけ飛ぶ展開。それらをゆったりとつなぐ気の流れはまるで太極拳。そうした流れを60分間楽しめる。うまく動ける必要はなく、楽しめればOK。Youtube等で様子を見ると、後ろの方は結構グダグダ、でも、みんな楽しんでいる。

内部構成:Warmup → Cardio1 → Interval
          → Cardio2 → Cooldown

新曲は1,4,7,10月。それ以外の月は先生の趣味でMix。Mixでは内部構成もMixされることが多い。

以下、私的メモ。まだ経験1年。随時更新。

No. MEMO ひざ注
70 面替え要素が若干あるけど、周囲の流れに乗れば、大丈夫。  
73 古いようで、古くない。ゆるいようで、ゆるくない。横キックポールチェンジをシャッフル的にキレ良く決めたい。  
74 5 more hours, just getting started. ♫ ・・・そう、あと5時間行けそうなノリ。
 
75 微かなエスニックの雰囲気と、独特のアーム・ステップが楽しい。  
80 Rihanna ♠ アームの動きがクール。  
81 経験した中では最強。270左エア+3ステップバック+ポールチェンジ+左ターンのしびれる展開。いつかリベンジ。
 ・・・    
84c1 ちょっと苦手な動きだけど、嫌いではない。一瞬の横キックポールチェンジは決めたい。  
84c2 バランスをとるところが好き。  
85c1 私のBodyjamデビューはここ。ややゆるめで助かった。  
85c2 キレよくリバースターンを決めよう。但し、力入りすぎないように。  
86c1 ♪ Rihanna ❤ 最初のターンはエアロではまず無い右軸足の左ターン。  
86c2 ラテンが多いから腹筋意識。途中、何故かCardio1の割込処理が入る。  
87c1 「Mr.コーエン」って誰?(笑)、ネーミングと妙にマッチする振り。  
87c2 リバースターンからはじけ飛ぶバレエ的展開。その後のノリもGood。
88c1 スリーシックスティ(360)右エアは、力まない方が決まる。着地はスキーやスノボと同様、足幅確保でひざ曲げて! 調子悪ければ棒ジャンプ。
88c2 リッキーマーティンの後は、右方向です。最後は気持ちよく大きく左ターン。  
89c1 いきなり左軸足の右旋回。ヒップホップは次の展開に入る1ステップ前のバリエーションを楽しもう。以外と奥が深い。  
89c2 バレエ的なスイープバック。ジャンプキックではじける後半。終わるとみんな無口。
90c1 右足に起点を持ちながらの2連続左旋回で軸がぶれてしまうのは、個人的な課題。  
90c1 はじけ飛び方がWest Side Story。ひざには意外とやさしい。  
ひざ注:ひざや足首に負担がかかるので、できれば下半身の筋トレとストレッチを先にしておきたい。調子が悪い時は躊躇せずオプションでスルー。
 
最後は心もクールダウン。最後の深呼吸に、先生と周囲の方々への感謝の気持ちを込めて、謙虚な精神状態に戻ろう。
 
 

Xfceデスクトップアイコン文字背景を透過にする

前回記載した通り、アップグレードを続けていると、古い実装が残り、新しいトレンドに出会う機会を喪失し、やがて損をすることになる。そこで、Debian10は新規に育てることとする。

Debian10のデスクトップ環境は、デフォルトのGnome以外にもいろいろ選べる。私は、軽量かつ機能十分のXfce4で育てる。インストール直後のXfce4デスクトップ画面はとても素っ気なく、モチベーションが全く上がらないので、透過設定やアンチエイリアス設定をしてビジュアルを整える。整え方がわかりにくければ、私の場合、永年ホビーマシンにしてきたUbuntu Studio(デフォルト Xfce4)の実装が参考になる。

Xfce4のビジュアルは、たいてい、「設定マネージャー」か右クリックで直感的に何とかできるが、毎回分かりにくいのが、デスクトップアイコン文字背景の透過設定である。これは、/usr/share/themes/ 以下にある「gtkrc」を編集すれば透過になるのだが、パッケージを入れて一気に解決できる。

sudo apt install greybird-gtk-theme
アプリケーション→設定マネージャー => 外観 => Greybird, Blackbird等

なお、とあるローカルサーバ用途へ展開するDebian10は、安定稼働に入れば、lightdm/Xfce4を起動させない対応をとる。サーバの位置付けによっては、当然、デスクトップ環境は根こそぎアンインストールする。一方で、開発環境向けにはいつものようにScreenletsを無理やり入れる。

Debian10で、さっそくトラップを踏む

めでたくDebian10がStableに昇格したので、アップグレードしたところ、さっそくトラップを踏みました。

安直アップグレード:

sudo sed -i 's/stretch/buster/g' /etc/apt/sources.list
sudo sed -i 's/stretch/buster/g' /etc/apt/sources.list.d/*.list
sudo apt update
sudo apt upgrade

 

トラップ:

uimの依存関係崩れでアップデートが中途半端に終わり、にっちもさっちもいかなくなりました。元の/etc/apt/sources.list次第なのですが、日本語環境でuim関連パッケージが入っているならば、アップグレード作業に入る前に、根こそぎ削除しておいた方が良さそうです。

 

私は、結局、元のsources.listに一旦戻し、apt updateしてから、dpkg -l | grep uim でひっかかるパッケージを全てapt purgeすることとなりました。

 

その後、sources.listをbusterに戻し、apt update; apt full-upgradeの後、apt install uim-anthyで解決。今のところ私の環境では、これ以外のトラブルは無さそうですが、まぁ、普通は、アップグレードはもう少し待つべきでしょう。。。

 

なお、この件は、既知の問題のようです。

https://www.reddit.com/r/linuxquestions/comments/80sfo3/cant_install_remove_or_update_packages_uimanthy/

 

・・・そもそも、アップグレードを続けていると、古い実装が残り、新しいトレンドについていけなくなります。今回も、nftablesとかwaylandとか、目玉がいろいろありあす。夏休みを目途に、新規で育てます。