2017年10月24日火曜日

Chromebook 改め Galliumbook R11

アメリカ帰りの Chromebook R11 の障害が再発。
また、wifiが動作しなくなった..

Acer の WEBサイトに問い合わせたところ、技術サポートに電話しろと。
ぉいぉい、国際電話かよ。それに、もちろん英語..

瞬間、諦めましたわ。こりゃ自己解決しかないよな。

そもそも、wifiが使えなくなったときに、ハードっぽく無い障害だったので、チップ交換だけで帰って来たのが、ちょっと心配だった。
R11 は、ハードのリセットボタンが無いので、バッテリの通電を切るには底面のカバーを全て外さなければならないんだけど、WEBで調べてみると結構簡単そう。

で、早速解体。
バッテリのコネクタを外し、30秒ほど待ってから再度通電。
ChromeOSを立ち上げてみると、見事に復帰。やはりか。

でも、このまま使っても再発するのは間違いないよな。さて、どうしたものか..

ChromeOSの影響を受けずに、直接Linuxを使うには、やはりあれしかない。
そう、GalliumOSです。

ChromeOSのリカバリ媒体も準備できてるので、何かあっても、なんとかなるでしょ。

さようなら ChromeOS。こんにちは GalliumOS。

以下は、インストール手順です。
普段から Ubuntu 触ってるので、簡単簡単。

公式サイト
https://galliumos.org/

1.開発者モードに入る 
 
2.USB-Bootを有効にする。
https://wiki.galliumos.org/Installing/Preparing

 [Ctrl+Alt+T] to get a ChromeOS terminal "crosh"

crosh> shell
At the chronos@localhost / $ prompt, run the following:

$ sudo crossystem dev_boot_legacy=1

3.ファームウェアの更新
https://mrchromebox.tech/#fwscript

$ cd; curl -LO https://mrchromebox.tech/firmware-util.sh && sudo bash firmware-util.sh


4.インストール媒体の準備

5.GalliumOS インストール

6.日本語入力の設定

セットアップ用のシェルスクリプトを作成
u:$ setup.sh

こんな感じ。

File: setup.sh
-- ここから --
#!/bin/sh

apt update

## Input Method
apt -y install fonts-takao ibus-anthy

## Aplication
apt -y install python-dev python-pip \
software-center synaptic gparted thunar-archive-plugin \
transmission firefox geany nano

apt -y autoremove

# ubuntu-restricted-extras lame asunder audacity handbrake mpv
-- ここまで --

1)
$ sudo apt install

2) インプットメソッドの追加
Menu => Settings => IBus Preferences
 => Input Method => Japanese - Anthy を追加

 ※ English(US)は、そのまま残しておきます。これ大事。

3) 入力の切り替え
標準は「Super+Space」→ これを「ctrl +Space 」に。
ここはChromebookに合わせおきます。

Menu => Settings => IBus Preferences
 => General => Keyboard Shortcuts
 Next input method: <Super>space を ctrl + Space に変更。

4) Languege Support
Apply
Keyborad input method system: IBus

7.Bluetooth テザリンクを使う。
1) ペアリング
2) スマホ
 ・ペアリングしたデバイスの設定
  使用目的-> インターネット接続 を有効にする。
 ・Bluetoothテザリングを有効にする。
3) GalliumOS
 ・Network Manager -> スマホを選択

一応、これで使えました。

2017年10月20日金曜日

GAE/Py 開発サーバで too many directories エラー発生

日本語の情報が見つからなかったので、自分用のメモです。

開発中は、サーバがファイルの更新を監視しています。
これによって、サーバの再起動が不要になる、すぐれ機能です。

でも、ファイル数の上限は10000で、これを越えると、
There are too many directories in your application for changes in all of them to be monitored. You may have to restart the development server to see some changes to your files.
とエラーが出て、ファイルの更新を検知できなくなります。

/lib に Flaskとか、イロイロ入れてるので、10000越えてるのかなぁ??

ググってみると、こんな記事が見つかりました。
https://stackoverflow.com/questions/24551795/appengine-too-many-directory-to-be-monitored

どうやら、 watcher_common.py が怪しいみたい。

で、
def skip_ignored_dirs(dirpath, dirnames, skip_files_re=None):
に、
dirpath = '/lib'
を追加し、サーバを再起動すると見事に監視が始まりました。
これで解決!!

でも、SDKのアップデートがあると、再設定が必要なんだろうな...。(^^;;


-- 2017/12/26 追記 --

再発...

結論は、開発環境の場所が悪かったようです。

旧: /home/<USER>/Downloads/d/GCP
新: /home/<USER>/GCP

そもそも、何故 Downloads の下に置いてたかと言うと、このフォルダだけは、ChromeOS と Ubuntu の両方からアクセスできるから。
これが、なかなか便利なのです。

多分こんな使い方は、Chromebook に Ubuntu 入れてる場合しか無いと思う。
なので、ネット調べてもヒットしないんだよね。

これが分かるまで、とにかく何をやってもダメで、ほとんど詰んでました。

最初は、watcher_common.py をイジイジしてたけど、全くダメ。
あきらめて、Ubuntu を再インストールしたけど、これもダメ。
その他、SDKの再インストールとか、開発環境に置いてるプログラムファイルを消して app.yaml だけにしてみたりと..
イロイロなことを試してみましたが、どれもダメ。

ではと、ChromeOS から再インストール(リカバリ)してみて、やっと Downloads に入れてたのが原因だと気づきました。遅っ;;
分かってしまえば何てこと無いんだけど、久しぶりにハマりましたね。

でも、イロイロ調べてる内に、SDKのインストールに3種類の方法があるとか、新しい発見もあり、これはこれで良かったかも。

以下、Ubuntu のセットアップから、開発環境の整備までの手順(メモ)です。

[Add Package]
$ nano setup.sh
--
#!/bin/sh

apt update

## Input Method
apt -y install fonts-takao ibus-anthy

## Aplication
apt -y install python-dev python-pip \
software-center synaptic gparted thunar-archive-plugin \
transmission firefox geany curl git

apt -y autoremove
--
$ sudo sh setup.sh

[SDK] https://cloud.google.com/sdk/downloads?hl=ja#versioned
$ export CLOUD_SDK_REPO="cloud-sdk-$(lsb_release -c -s)"
$ echo "deb http://packages.cloud.google.com/apt $CLOUD_SDK_REPO main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
$ curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
$ sudo apt-get update && sudo apt-get install google-cloud-sdk google-cloud-sdk-app-engine-python
$ gcloud init

[Structure]
/home/<USER>/GCP
 -venv/
 -<APP>/
  -project/
   -lib/
   -app.yaml
   -main.py

[MkDir & Venv]
$ sudo pip install virtualenv pycodestyle
$ cd
$ mkdir -p GCP/<APP>/project/lib
$ cd ~/GCP
$ virtualenv --no-site-package venv
$ source ./venv/bin/activate
V pip install pillow
V cd project
V pip install -t lib flask flask-wtf markdown
V deactivate
$

[Run]
$ cd ~/GCP && source ./venv/bin/activate && cd <APP>/project
V dev_appserver.py app.yaml backend.yaml
  => http://localhost:8000
     http://localhost:8080/_ah/stats/
V deactivate
$ pycodestyle main.py > pycodestyle.txt

[Deploy]
$ gcloud app deploy --project <APP> -v <N> app.yaml backend.yaml queue.yaml cron.yaml