osa2's memo

自分の記憶のために・・・。

ThinkPad T540pでWindows10(1903)にイケました!

一度無理に更新かけて失敗、その後待てどもアプデは当てられずにいたのですが・・・システムアップデートとUEFI BIOSのアップデート後に、1903に行けました!

こちらがシステムアップデートのページ(これは割と広範な機種で使用可能。ページを読んでくださいねー)。

support.lenovo.comで、こちらがLenovoBIOSアップデートページ(他の機種も検索すれば出てきます)。

pcsupport.lenovo.com調べてみたら、買って以来アップデートを当てた記憶がなく、かなり下のバージョンで。BIOSまで注入したら、Windowsさんが「早くいれてー♡」と1903のインストールをお許しになられました。

1903にイケる機種一覧に、T540pはなかったのですが、BIOSアップデートは9月の配布物で、それで対応ができたのかな?と。←推測です。

あ、ここの皆さまには釈迦に説法ですが、サイトのSSL証明書の確認と、ダウンロードしたブツのハッシュは確認してくださいね♪もちろん、アップデートのインストールは自己責任にてお願いします。

==END==

 

7PayでオープンID(OAuth)だった私(汗

7Payで、件の大騒動でOAuthが閉じられているのにうっかりログアウトしてしまい(T_T )

以下、なんとか7Pay再度使えるところまで復活できたのでその方法。同じうっかりさんのために。

  1. オムニ7アプリをインストール
  2. オムニ7アプリにOAuthでログイン(なんと、できてしまう)
  3. メニュー(右下) > 会員サービス(左上)でマイページの表示
  4. 会員情報の確認・登録・変更のログイン情報をタップ
  5. OAuthの人は会員IDが未設定と思うので、まずIDを設定
  6. すると「続けてパスワードを設定しますか?」と出るのでもちろん設定に進む
  7. パスワードを設定して完了となる
  8. 再ログインは反映に数分かかるのか、すぐにはできなかったが2回目にはできた
  9. これでOAuthじゃない認証で入れるので、7PayにID/パスワードでログインする
  10. 残高を確認し、安心する♡

※1 あくまでもオープンIDだったのでログインできずに残高使えなくなった善良なる人々への助け舟の意味でブログ掲載しています。

※2 オムニ7でもしかしたら、というのは私の考えですが、OAuthからID/パスワード認証への移行はオムニ7のお問い合わせ内、AIチャットが教えてくれます。OAuthで使っている(GoogleとかFacebookとかの)アカウントを消すと、オムニ7に入れなくなるので、ID/パスワードを設定してね、という意図のようです。

※3 2019.7.17追記。上記方法は7/14〜15にできた方法で、現在対策強化も進んでいるようですのでもうオムニ7アプリでもオープンIDでは入れないかもしれません。その点はあしからずご了承くださいませ。

== END ==

 

Galaxy S2のPMOSインストール (1)

Samsung Galaxy S2 (i9100 / SC-02C) へのPMOS(postmarketOS)のインストールまとめ。

最初はOSのインストールからXfce4の起動まで。以下が参考にしている本家本元ページ。

Samsung Galaxy SII (samsung-i9100) - postmarketOS

警告:本記事で使用している端末、SDカードのデータは完全にクリアされます。バックアップを取るなど、十分な対策の後にトライしてください。またこの手順では文鎮化はないとは思いますが、あくまでも自己責任でトライしてください。

ちなみにGalaxy S2(以下S2)はPMOSの中ではかなり安定して稼働し、何とか操作もできる稀有な機種。ここではX11+Xfce4をインストールする。リソースを気にするなら、matchboxも悪くない選択です。

1. pmbootstrapのgit clone

ここは特に問題なし。ちなみにNexus5では、かつてはこのリンクに間違いがあった。

$ git clone https://gitlab.com/postmarketOS/pmbootstrap.git

以下、git cloneでできた、pmbootstrapディレクト直下での操作。

2. pmbootstarp init

ここで諸々初期設定する。

$ ./pmbootstrap.py init

本家のWikiでは.pyがないけど、aliasでも通してそうすれば良いのかも。

Q&A形式なので分からなければデフォルトでも構わないが、並列度とccacheのメモリ量は変更した方が良いかもしれない。

  • デフォルト:parallel 9, ccache 5GB
  • 私の場合 : parallel 4, ccache 50GB

途中でXfce4など選択する。あと、アプリも指定可能。ただ後からパッケージマネージャ(apk)でインストールもできるので、例の通り、vim程度でOK。initの結果は、~/.config下にpmbootstarp.cfgとして保存されている。リセットしたければこのファイルを消せばいいが、選択し直せばいいだけなので、あまり意味はない。

3. pmbootstarp install

ここはいろんな進め方があるけど、一番無難なのはSDカードを用意してそこにrootfsを焼きこんじゃうのがいい。他の方法は手間がかかるのと、容量不足など起きる可能性があり、その場合はpartedなどでのリパーティションが必要。コマンドとしては以下が結論。

$ ./pmbootstrap.py -t 1800 install --no-fde --sdcard /dev/sdx

まず後ろのsdxの部分は、母艦のPCにSDカードをUSBでのカードリーダーなどで接続し、lsblkするとxの部分がわかる(これは個々の環境により異なり、sdcだったりsdfだったりする)。もしデータが入っているならバックアップの上、sudo fdisk /dev/sdx(xの部分はさっき調べた値)でパーティションを削除する。ディストリでフォーマッタが提供されているならそれでもOK。もしsdx1のようにパーティションができた場合は念のためsudo umountしておく。

これでSDカードは準備OK。上のpmbootstrap installを打つ。ここでsudoして~/.local/var以下にchrootして主にrootfsを用意して、上のコマンドではSDカードにrootfsの展開まで行われる。

オプションの--no-fdeはディスクの暗号化(full disk encryption)をしない、という設定。これがないと暗号化がはじまり、起動時にパスコードの入力を要求されるので面倒なので--no-fdeとしている。

-t 1800はexpireationを1800秒、30分としている。これがないとデフォルトでは-t 300のため、5分でrootfsを焼ききれないとタイムアウト、出来上がったSDカードも使い物にならない。xfce4ならカードリーダーがUSB2.0でしたーとかない限り、-t 1800あれば十分である。

ここまでがERRORという表示なしに終わると、kernelとinitramfsを焼けという指示が書いてある。

4. pmbootstrap flasher flash_kernel

これでbootパーティションにkernelが、recoveryパーティションにinitramfsが焼き込まれる。

$ ./pmbootstrap.py flasher flash_kernel

ここはWikiの通りだが、前提としてWindowsならOdinに相当するheimdallが必要なのでパッケージマネージャ経由でもいいのでインストールしておく(debian系だと sudo apt install heimdall でOK)。heimdall はオプションを付けない限り、焼き終わると勝手にリブートするので、USBで端末をつなぐのはもちろんだが、S2本体はDownloadモードにしておくこと、その起動の際には3.で作成済みのSDカードをS2に装着しておく必要がある。手順としては、

  1. (USBの接続は後にする。ここでは未接続にしておく)
  2. S2の裏蓋を開けてバッテリーを取り出す
  3. SDカードを装着、バッテリーを元通りに装着する
  4. vol down + home + power同時押しをする
  5. Downloadモードに入る前の警告画面でvol upを押すとDownloading..と待機画面になる
  6. ここまで来たらUSBケーブルで母艦のPCとS2をUSBケーブルでつなぐ
  7. 上記flashコマンドを打ち込むと、heimdall経由でkernal, initramfsを焼きこんで勝手にリブートされる

黙っていれば、2,3分でXの画面が、そして程なくxfce4が立ち上がる。マウスポインタはドラッグで移動、タップでクリックとなる。

== END ==

 

 

 

 

 

 

RasPiを自力で鍛え上げてみることにした。

最近のスマホや部屋に置くやつを使えば簡単にできるのだろうけど、勉強なので、スクラッチから。

既に赤外線リモコン機器は、サンプリングさえできればある程度コントロールが効くので、どこまで賢くなれるかに重点を置いてみる。 

課題1:

エアコンを音声でコントロールし、その時の温度や湿度とセットで、主がどんな時にどんな風にエアコンを操作するのか学習させてみる。最終的にはもちろん、何も言わずとも常に快適なエアコン調整をできるように育てる!こっちはニューラルな感じでいけたらいいなぁ。

課題2:

温度・湿度・気圧センサーと体調をセットで学習させる(私の場合は頭痛だけでなく痛み、しかも普通の人とはややパターンが異なる)。当座の目標は「おまえ今、体調悪いやろ!」と言わせる。。ベイズとかを取り入れてみたい。

どちらもベランダ菜園のように、ちまちまゆっくりやるので夏が過ぎていても仕方がないとする(笑)最近まるで勉学に励む気力・体力がなくなり(汗)ゆるりと前進あるのみ!

== END ==

ようやくメール受信

世の中のPCはWindowsスマホAndroidと決まっている(macはPCではない。macである。同様にiPhoneスマホではない、iPhoneだ)。つまり、MicrosoftGoogleの独走、独占を皆で礼讃し続けた結果、独禁法も何のそので世界が征服されました。Apple貴族の方々だけが、高額な高級品を惜しげもなく買っては次、を繰り返して、maciPhone/iPadで抵抗戦線を張ってくれてる訳。他はみんなアングラとされて、テロ組織に利用されないように、ということで、潰される。ま、権力を握れば何とでもできますよね(笑)

 

でまぁ、もはや山中の洞穴に潜んで活動してるような弱小スマホOSがあるわけでpostmarketOSもその一つ。といってもスマホの上でLinuxが動くだけなのですが。当然、とてもじゃないけど、全機能綺麗に動くはずがなく、実用性ゼロ(ゼロじゃなかったら潰されますからね(笑))

それにちょいちょいアプリを乗っけて遊んでるだけ、です(笑)

いまはメールソフト作成中。まだIMAPの受信だけ。本文のデコードもできてないときもある。使い物になんかなりゃしないです。潰されますから♪写真はSamsung Galaxy S2(えーと、我が国ではSC-02Cというと、ああ、なんだあれか、と半分くらいの方々がお分かりになるかと)。pmOSがはいっている。UIはmatchbox。眠くなったので今日はここまで。

f:id:osa2:20180903235549j:image

WebKit2GTK+?で遊んでます

もはや仕事になんの興味もなくなったので、隠れ定年状態。老後のたしなみにと、WebKit2GTK+でブラウザなど作って遊んでます。

postmarketOSを入れた、Samsung Galaxy SII (SC-02C)で遊んでますが、中身はAlpine LinuxというふつーのLinux。apkというパッケージマネージャーもあり、大抵のものはバイナリが手に入ります。コンパイラや-devなパッケージもあるので、クロスコンパイルで四苦八苦することなく、Galaxy S2の中でビルドができるという(笑)

Firefoxはもちろんパッケージがあるのですが、WebKit系のブラウザはよく探してないけど(midoriとかなのかもですが)、まー老後の楽しみだし、とWebKit2GTK+なるものでC++で遊んでます。勉強嫌いなところに、なかなかこれというサンプルが落ちてなくて、でもまぁなんとかURL入れて[GO]押すと表示はされてます(あ、もちろんですが日本語フォント(Miguフォント)を入れてます)。

この写真は、WordPressのトップ画面です。見栄えの良いところまでスクロールしてます。NTT docomoのロゴが燦然と輝いてますね☆

f:id:osa2:20180722215802j:plain

WebKitWebViewって偉大すぎます。まず、ネットワーク関連のコード、一切書いてない。loadにURL指定してるだけ。httpsもちゃんとTLSでhandshakeしに行きます。何も指示してないのに。リンクはもちろん、指でなぞるとちゃんとスクロールもする。全部入りじゃないですか。(唖然)

 

長年、おさぼりであちこちのサンプルかじっただけなので、Makefileすらろくに書けず。pkg-configも知らず。少しこの作例や他の簡単なプログラムで、Linuxのビルドについて、お勉強しようと思います。いままでバカの1つ覚えで./configure -> make -> make installな人だったので。

 

他、今週末はSurface2 ProにLinux Mintを押し込んだりして、すっかりごきげんですよ♪(^-^)

 

さて、これからDAZNでF1です。

== END ==

自宅のリモコンのリメイク(1)

冬に作った部屋の照明&エアコンのリモコンを作りなおすことに。冬に作ったから暖房のデータしかサンプリングしてないのですよ(笑)

まぁせっかく作り直すので、アーキテクチャから見直しをかけて、将来のために、無駄に(今は)要らないツールも使っているのでなかなか肝心の冷房機能が実装できてないのですけど・・。

1. ハードウェアアーキテクチャの変更

これまではESP-WROOM-02(以下ESPrIR)という3cm✕4cmくらいのWiFi+IR(赤外線LED)のみで、リモコンを作っていた。WEBページで利用可能にしたが、何のことはない、80番ポートでソケット開いて、処理結果をHTMLで(HTMLで!)返していたのだった。

1つで家の中全体に赤外線を飛ばせるならこれでも不自由はない。が、小さな部屋と言えど、1つでは無理。2つは要る。他に赤外線でなくてもコントロールしたいものが増えるかもしれない。

なので司令塔として、部屋に転がっていたRaspberry Pi 2 B+(以下RPi)を使うことにして、WEBのレンダリングもRPiにやらせる。まずRPiがUIからのリクエストを受けて、各子機(今回はまだESPrIR1機のみ)にリクエストを投げる。親機と子機の間もHTTPだが、ここはJSONかCSONでやり取りすることにして、まぁ、RESTful風にする。

2. ソフトウェアの変更

WEBのUIレンダリングには(別の案件で使いたいと思っている)Vue.jsを使用した。RPiのWEBサーバーはNginxにしたが、単に好み。実際に子機との通信部分をCGIでやらせても良いのですが(笑)、せっかくなので、これも別案件で使いたいと思っていたPython、その軽量フレームワークのFlaskを使ってみることにした。

というわけで、UI(HTML,CSS,JS,Vue.js)、サーバー(Nginx+Python+Flask)という、、実はindex.html1枚とCGIで済むところに、無駄にふんだんに仕掛けを投入(笑)。ちなみに別案件はビジネス向けのWEBシステム(のプロトタイプ)で、MySQLという名のMariaDBとMroonga、MongoDB辺りを使うのと、Rや,Cともバインドがあるのではと思われるので、ららべるに後ろ髪引かれながらもPHPではなく、グルー言語の誉れ高いPython、なのでした。

3. しかし、この組み合わせは・・・(笑)

なんと、Flaskのテンプレートエンジン(Jinja2)でのサーバーサイドレンダリングと、Vue.jsでのHTMLへのデータインジェクションの「ノテーションが同じ」という軽いワナがあることが判り。やってみるもんですね。超ざっくり書くと、

<h1>{{ greeting }}</h1>

と書いて、これがVue.jsのため、と思っていても、Flask側でこのHTMLファイルをtemplatesフォルダに入れて、render_template(xxxx.html)とすると、greetingが定義されとらん! とTrace吐かれるのデス。

ま、SPAで行くならサーバーサイドレンダリングなどせずに、staticから諸々ファイルをまんま読み込んで、あとはAJAXでのリクエスト処理だけ Flaskにやらす、でいいや、というところで今日は終わり。

4. ちなみに

つまらないものですが、UIイメージだけ出来とります。ペタっ。

f:id:osa2:20180415232809j:plain

== END ==