本文を読み飛ばす

Tablet2: モバイル(8台目)

  • 2016/1/29 購入、入手は...
  • 2年ぶりにTabletを新調した。
  • specとお値段のバランスがよかったので購入決定
  • Androidの運用は、XWindowsが重くて耐えられなかった。

  • X SDLはなかなかよかったが、やはりJava-SDLだと重かった...

  • TortoiseHGが常用できてればもう少しよかったかもしれない...

  • Androidのキーボード運用は、IMEが耐えられなかった。

  • 候補がでてくる度に画面が動いたり...

  • VMWareを使ってLinuxを運用する

  • 電池がなくなったので、追加購入してみた 到着に1ヶ月ぐらい待って、入れ替えしてみたが起動せず...
  • 電池交換するときに電源ボタン破損。タクトスイッチに変更してみる (もうぼろぼろ...)

:CPU: Atom Z8300 CherryTrail :Mem: 4GB :Storage: 64GB eMMC :Keyboard: なし、BT-Microsoft wedge :Weight: ???g :Monitor: 9.7" (2048x1536) :Battery: ????mAh :I/F 1: SD slot :I/F 2: MicroUSB x1

作業1. eMMCフォーマット変更、Linux installまで

追記1 何を勘違いしていたのか、購入したのは Dual bootのタブレットではなくWindowsタブレットだった。

追記2 Linuxはインストールできたものの、 BroadcomのWifi/BTアダプタを動かすの予想以上に 難しそうだったので、Linuxを常用するのは断念した

  • (pending中) LinuxとのDual bootを目指す
  • WindowsのPartitionを縮小してLinux領域とする
  • キーボードがなくてもbootが切り替わるようにする
  • (new) 仮想環境でLinuxを動かす

.. container:: strike

* 運用はTripleBootを目指す

  * Windows Partitionはめんどくさいのでいじらない...方針

* Androidを一旦削除して、Linux 8GxAndroid 8Gぐらいに分ける

  * storage partitionを共有できれば、Linuxは5Gもあれば十分か....
  * 今回はeMMCの寿命...より、スピード重視でeMMC運用する。
  * SDも含めるにはどうする? => Androidのstorage減らそうか
  * Windows10Gでいいから減らせれば...

* TripleBootはBIOSで記憶してくれるのか、楽しみ。

  * Androidはどうせoffにしないからそっちを3rd扱いにできないかな...
1. Partition変更
  • WindowsのEase usというツールを使って Windowsのパーティションを縮小する

  • WindowsはeMMC 59GBのうち57GBぐらいあったので、 最低限の32GBに変更した

.. container:: strike

  • web調査より、Windowsから変更する
  • 16partitionある....17個目作れるのかな... => EFI/GPTならできるらしい

2. Linux install

EFI関係で難しいという話があったが Ubuntu 15.10であれば特に問題なくインストールできた。

怖かったのでMBR(EFIではなんていうんだろ)には grubをインストールせず、 Linuxのパーティションにgrubをインストールした。

ただ、先にも書いたように BroadcomのSDIO Wifi/BTを動かすのは 今のところちょっと難しそうだったので、 Windowsで運用することにした。

以下、手順

  1. Lubuntu 15.10のisoをダウンロード
  2. 景品でもらったUSBディスクを押し入れから持ってくる
  3. いったん、fdisk、mkfs.msdosでディスククリア
  4. UNetbootinで、isoを書き込み...
  5. いろんなサイトで情報があったので、UEFIのイメージを準備

  6. bootia32.efi を /EFI/BOOT に配置

  7. と を / に配置

  8. ここまでの作業は、親PCでやっておく。

  9. secureブートを無効に...しようと思ったけど最初から無効になってた。なんで...
  10. タブレットの電源を切る
  11. USB機器一式をタブレットに装着してタブレット起動

  12. USBハブ

  13. USBディスク
  14. USBキーボード (無線のキーボード・マウスセット)

  15. DelかESCかF12を押して、USBから起動

  16. めでたくLubuntuインストーラが起動、あとは普通にインストール

Windowsのパーティションを分割した領域にインストールした

:1: /boot (200MB) ext2 :2: / (残り25GB) XFS

...なんか1GB未使用領域ができたけど気にしない

XFSにしたのは、ext2よりはeMMC的によさそうだったので。

他にZFS、JFSが選べたけど...いまいち決定打にかけたので勘です。勘。

あと残念ながら、バッテリーのモニタができないみたいで、 電池を使い切るまで動いてしまう。

これは電池にやさしくない。だめだ運用にはまだ向かないようだ...

サスペンドもできないし...

あと、USBキーボードなどUSBを常時刺したままの運用というのは 持ち運びには向かない。コネクタが折れそう。

というわけで、以下の理由からLinuxでの運用は断念

  • 無線関係が動かない
  • バッテリー管理ができない/ サスペンドもできない
  • USBキーボードなど、USB機器が必要で

  • 使っている間は充電できない

  • 常に刺しておくと持ち運びに不適

.. container:: strike

  • cherry trail生かすには... => Ubuntu 15.04
  • 小さなuserland... => debian
  • installerの調査が必要
  • bootloaderは書き換え必要?

    • Windows, Android, Grubの3択になればBest

    • defaultのloaderの機能確認

    • Windows, Grubの2択になればOK

    • grub androidがloadできるか

3. Android install

Androidのタブレットじゃなかったので、pending

結局、ゲームぐらいしか使い道考えてなかったので気にしない。

.. container:: strike

  • Intelのバイナリでいける? => いけそう...
  • そんなに使う予定はない

7. Windows10のサービスを最適化

あんまり詰めても効果はないとわかっていても、 電池の持ちなど考えてサービスを停止してみる::

disable_services() { echo ========================= Windows Services =========================

echo Application Information required by UAC
echo Credential Manager required to store credentials -check User Accounts - Credential Manager
echo COM+ Event System required by Windows
echo Distributed Link Tracking Client required to open shortcuts and System apps
echo IP Helper -WinHTTP Web Proxy Auto-Discovery Service, required to login to Microsoft Account -Account, Cortana, Store
echo Network Location Awareness required by Windows Updates
echo One Drive required by Windows Mail
echo Windows Connection Manager required by WiFi and Data Usage
echo Windows Driver Foundation - User-mode Driver Framework required by some drivers like USB devices
echo Windows Firewall -Base Filtering Engine, required by Windows Store Apps -0x80073d0a and Windows Update -0x80240022


echo AMD External Events Utility
sc config "AMD External Events Utility" start= disabled

echo AMD FUEL Service
sc config "AMD FUEL Service" start= disabled

echo Application Layer Gateway Service
sc config ALG start= disabled

echo BitLocker Drive Encryption Service
sc config BDESVC start= disabled

echo CNG Key Isolation
sc config KeyIso start= disabled

echo Diagnostics Tracking Service
sc config DiagTrack start= disabled

echo Distributed Transaction Coordinator
sc config MSDTC start= disabled

echo dmwappushsvc
sc config dmwappushservice start= disabled

echo DNS Client -Required by the internet connection, unless you set up DNS servers manually in IPv4/6\'s properties
sc config Dnscache start= disabled

echo Encrypting File System -EFS
sc config EFS start= disabled

echo IKE and AuthIP IPsec Keying Modules
sc config IKEEXT start= disabled

echo IPsec Policy Agent
sc config PolicyAgent start= disabled

echo Offline Files
sc config CscService start= disabled

echo One Drive Service
sc config OneSyncSvc start= disabled

echo One Drive Service
reg add 'HKLM\System\CurrentControlSet\Services\OneSyncSvc_Session1' /v "Start" /t REG_DWORD /d 4 /f

# echo Print Spooler -Required by the printer
# sc config Spooler start= disabled

echo Program Compatibility Assistant Service
sc config PcaSvc start= disabled

echo Remote Desktop Services
sc config TermService start= disabled

echo Retail Demo
sc config RetailDemo start=disabled

echo Secure Socket Tunneling Protocol Service
sc config SstpSvc start= disabled

echo Security Center
sc config wscsvc start= disabled

echo Server
sc config LanmanServer start= disabled

echo Shell Hardware Detection
sc config ShellHWDetection start= disabled

echo Smart Card
sc config SCardSvr start= disabled

echo SSDP Discovery
sc config SSDPSRV start= disabled

# echo Superfetch
# sc config SysMain start= disabled

echo TCP/IP NetBIOS Helper -Required by some internet connections like aDSL
sc config lmhosts start= disabled

echo WebClient
sc config WebClient start= disabled

echo Windows Connect Now - Config Registrar -Required by WPS WiFi connection
sc config wcncsvc start= disabled

echo Windows Connection Manager -Required by WiFi Connection
sc config Wcmsvc start= disabled

echo Windows Error Reporting Service
sc config WerSvc start= disabled

echo Windows Font Cache Service
sc config FontCache start= disabled

echo Windows Remote Management -WS-Management
sc config WinRM start= disabled

echo WinHTTP Web Proxy Auto-Discovery Service
sc config WinHttpAutoProxySvc start= disabled

echo Windows Search
sc config WSearch start= disabled

# echo Wise Boot Assistant
# sc config WiseBootAssistant start= disabled

echo WMPNetworkSVC helps windows media player to share its library with network
sc config WMPNetworkSvc start= disabled

echo Workstation
sc config LanmanWorkstation start= disabled

}

disable_services

思わずbashで書いちゃったので、 msysからadministratorでスクリプトを起動させる方法を調べたみた

  • Powershellを使う方法
  • cygwinだとcygstartに "--runas" オプションがある (msysには特にそういうのはない)
  • runas.exeというのが標準である

というわけでrunas.exeをmsysから起動してみる

まずは下準備

  1. cmd.exeをadministrator権限で動かす
  2. administratorを有効にする。: net user administrator /active:yes
  3. adminのパスワードを設定。空だと動かない: net user administrator *

これだけ設定しておけば、msysからrunasが使える::

$ 'c:\Windows\System32\runas.exe' //savecred //noprofile \ //user:administrator \ "c:\path\to\msys64\usr\bin\bash.exe $USERPROFILE\etc\disable-services.sh > disable-services.log"

  • コマンドは引数1つにまとめないといけないのでご注意
  • //savecredを指定して、msysのターミナルではパスワードは聞かれないようにする

    これやらないと、標準入力などの関係でパスワードが入力できなかった

  • //noprofileはなしでもいいかもしれない

最後に再起動して終わり...

ちなみにあんまりやりすぎると WindowsUpdateが動かなくなったりWiFiが動かなくなったりしたので、ご注意

作業2. アプリなど使い始め

OS入れるところまでは進んだので、 アプリの設定なども進める

1. Linuxの性能確認

結局、仮想環境にしたので、確認してもいいけど後回し。

そういえば歴代PCの性能確認なんてやってたっけか。

.. container:: strike

:内蔵wlan: 無理 :suspend: 無理 :低消費電力モードできるか: ? ← wlan, BT, backlight off and sw-on :boot time: ? :eMMC: RD-?, WR-? (Androidで計測) :SD card: RD-?, WR-? (Androidで計測)

2. Linux install

:lxde: o :fcitx: o :anthy: o :lv: o :uxterm: - :roxterm: o :vim: o :mercurial: o :tortoisehg: o :gitk: ? :python: o :pyenv: ? :pyramid: ? :firefox: - :android-studio: o :android-ndk: o :vala: ? :stellaris env: ? :KiCAD: win :mindmap: ? :LibreOffice: x

3. mercurial関係

hggitをUbuntuにインストール

  • apt-get install mercurial-git
  • "hgext.git = "を追加して有効に

5. vim

Windows側 Linux側で書き物をする予定なので あんまり凝った設定はしない。

- VCSCommand

.. container:: strike

 NeoBundle...と思ったけどgitがいるので、
 VCSCommadを手動でインストールかな

Linux側 いつものフルセットを導入する

- NeoBundle
- VCSCommand
- Syntastic
- DirDiff

6. Windows10 + msys でsudoを作ってみる

トラブル3. SDXC認識しない → 文鎮に

OS入れるところまでは進んだので、 アプリの設定なども進める

...と思ったところで、eMMCの容量が足りなくなったら困るので SDXCを追加するように64GBのSDXCを購入した。

でもデフォルトのBIOSでは使えないみたいなので、 BIOSを更新してみる。(公式のサイトにTF cardの問題に対処したBIOSがあったので...)

人生初の文鎮を経験する。

日本の方で同じ文鎮を体験されて、 RasberryPiからEEPROMに書込みをしている人を見つけた。

RasPiかぁ...持ってないなぁ...

で、書込みに使ってるソフト(flashrom)を調べてみると いろいろな書込み機器に対応しているじゃありませんか。

しかも、私が使用経験あるFTDIもラインナップに入ってる。 これはわざわざRasPi買う必要もないしよさそうだ。

ただし、Ubuntu 14.04のflashromでは手持ちのUM232Hに対応していない模様。

  1. apt-get install libpci-dev libusb-dev libftdi-dev
  2. flashromのソースダウンロート。gitでやった気がする
  3. make
  4. FTDIをおもむろにUSBに装着 (ちょっとは結線しないとだめですが)
  5. コマンド入力 fashrom -d ftdi2232_spi:model=232h

これでflashromが使えるようになった。 (mode指定は2232と間違えなように...)

さて、次に本体を開ける。

実際には本体あけるところからやったんだけど 今からやる人は先にソフトと書込み機使えるようにしてから 本体いじった方がいいと思いますよ。

  1. 精密ドライバー(-)を隅に差し込む
  2. ちょっとづつ太いドライバーを差し込んでいく (ここまではギターのピックとかの方がいいみたい
  3. 使わなくなったクレジットカードを差し込む or プラスチックの物差しを差し込む
  4. 差し込めたら、横にスライドしていく。 スライドしていくと、爪がプチプチと外れていきます

ここからEEPROMにアクセスするにはさらに シールドを開ける必要があります。どうせ文鎮だしGoGo。

EEPROMさんが見つかったら、基板から外します。 私は半田吸い取り線を使って半田を除去したあと、 半田で足を一本づつ熱を加えながら曲げて基板から外しました。

本体の裏面も接着されていたようですが、 足をあっためている間にぽろっと外れました。

実は外したかったんじゃないですけどね。 ほんとは足だけ基板から外して線をつなげるだけのつもりでした。

さて、この時点で実はSDOの足がちょん切れて 絶望していましたが電線を針みたいに尖らせれて、手で押しながらなら コンタクトが取れることはわかってました。

この状態でIDの認識まではしたんですが さすがに書き込んでいる間、数分は持っているのは辛い

ダメもとで半田を折れた端子にもってみたら、 あら案外しっかり導通するじゃないですか。

alibabaから購入するとか何日かかるかわからないので ここはこの半田もりもり作戦で トライしてみることに。

最初に、電池のプラグは外しておく。 なんかあったら怖いし。

基板から外して空中配線した状態で BIOS書込みはOK。

今度は基板にEEPROMを戻す。

SDO以外は普通にはんだ付け。 ちょっとパターン剥げてるような不安にもかられたけど、 今更、心配してもなーということで淡々とこなす。

最後に問題のSDOだけど、 SOPの足って思ってるより長くて1~2mmはある。

これを半田だけでブリッジさせるのは、後々、剥離したりしそう。

電線を1mmぐらいカットして半田をべたべたつけておき、 基板のパターンとSDO端子の間に置く。

それから半田づけする。

SDO端子の方は、ついてるかどうかよくわからないが、 とりあえず半田を多めに流し込んでおいた。

といっても半田ごてに多めに付けたので 電線と端子を触ってるだけなんだけど。

さて、ここまで来たら電池のプラグを差し込んで起動...

と思ったら電池がなくなってたみたい。

数分、充電してからもう一度電源on...

ついにONDAの文字が写ったと思ったら 普通にWindowsのログイン画面に。

やったー復活したー。

(2016/03/12)

.. container:: strike

本体を開けたら次はEEPROMがどこにあるのか探す。 幸い、基盤の裏面にはなさそう。両面部品とかないもんね。

裏面にあったら液晶とかいろいろ外さないといけないとこだった。

パッと見、EEPROMは見当たらなかったので、 シールドの中にあると見て、シールドを外す。

シールドを止めている(かしめている)爪を精密ドライバーで 逆方向に曲げていく。別にかしめなくてもよさそうではあった。

全部の爪を曲げたら、シールドを御開帳...

CPUなどが入っている中にEEPROMさんを発見。 全体的にちっさい部品が多いのにこいつは単なるSOPだな...

電源がついてない(であろう)状態で電圧を確認する。1.8V。 ネットでもそう書いてあったので、ここは1.8Vで接続してみる。

FTDIに1.8Vのレベルシフタを付けたキットを使用する。

IDは読み出せるが、flashromのリストにはないみたい... 何度もやってみるがIDは変わらず。

そうこうするうちにEEPROMが基板から外れたw

さらに、SDIピンが折れたw かなり絶望。

仕方ないので、代わりの品がないかネットを検索。 GD25Q64という型番、Alibabaぐらいでしか入手できない。

代わりの品種はWinbondのW25Q64か...これならchiponeなどで入手できそう... でも、互換品にしても動く保証はなさそうだし...

そんな感じでDatasheet見てたら、 「3.3V品なんじゃないのこれ」 ということに気が付いた。

結局、1.8Vだと通信でいないことがわかって、 SOPを基盤から外した状態で書込みをすることになった。

電圧確認したんだけどなー。 動作時には3.3Vになるんかな。なにか秘密があるんだろうか...

(2016/03/12)

.. container:: strike

ということで、早速試してみることにした。

  1. 手持ちのnotepcで apt-get install flashrom
  2. FTDIをおもむろにUSBに装着 (ちょっとは結線しないとだめですが)
  3. コマンド入力 fashrom -d ftdi2232_spi:model=232h

あれ、認識しない。 どうもUbuntu 14.04のflashromでは手持ちのUM232Hに対応していない模様。

(2016/03/11)

.. container:: strike

人生初の文鎮を経験する。 「今までの起動しない」とかはBIOSレベルではなかった。 本当にまったく反応しない。

電源入れても、放電してから触っても、何も反応しない。

(2016/03/10)

.. container:: strike

でもデフォルトのBIOSでは使えないみたいなので、 BIOSを更新してみる。(公式のサイトにTF cardの問題に対処したBIOSがあったので...)

  • ダウンロードして
  • unrar で解凍して
  • .batはあったけど、Dドライブを仮定してたりして、動きそうにないのでパス
  • GUIアプリがあったので起動
  • .binを読み込んだ
  • デフォルトでboot領域への書き込みはなし...怖いからそれでいいか ←これダメ
  • 再起動 → 文鎮が出来上がり...

(2016/03/09)

.. container:: strike

  • カード差し込んで、
  • フォルダが作れて、
  • 名前を変更して...

と、名前を変更するところから一切認識しなくなった。

他のPCで確認するとNew Folderというフォルダができてたので、 まったく認識できてなかったわけではないみたい。

でも、二度とマウントできなくなったので どうしようか考え中。

トラブル5. Windowsが固まる

  1. タッチの座標がずれる => sleep後に発生
  2. 真っ黒な画面になる => swap切って、メモリが足りなくなると発生。

  3. 真っ黒な画面になる Ctrl+Alt+Delでログイン画面に戻れればセーフ

    それすらできないと、シャットダウンしかなさそう。

.. container:: strike

どういう状態なのかよくわからない。

Swapしてるのかなぁ...

と思ったので、Swap切ってみる。

VMWareもそんなに使わないので、1GBぐらいにするかな...

コメント

Comments powered by Disqus
宣伝: