2021年10月4日月曜日

Chromebookにwine6を入れてkindle for PC版を利用する

 Ryzenだけなのかは検証していないが、x86系のCPUを搭載しているChromebookだとplay storeのkindleアプリの挙動が良くない


LenovoのC13 Yogaだと次画面の読み込みがうまく行かず、一旦全ページに戻ってから再度ページ送りしないと表示されないなどの症状があり、まともに使えない


ということで、ChromebookのLinux環境(Crostini)上にwineを入れてWindows版のkindle for PC版を利用してみることにした


Chromebookへの wine6のインストールは以下

How to use and install Wine 6.0 on a Chromebook

また、日本語フォントのインストールは以下

Chromebook Crostini + Wine で Win32 レトロゲームを楽しむ

kindel for pcのインストールは以下

[日記] Ubuntu 20.04でWine v6を使いKindleを動かす


をそれぞれ参考にさせていただいた


■Wineインストール

バージョンはwine-6.0.1

$ sudo dpkg --add-architecture i386

$ wget -nc https://dl.winehq.org/wine-builds/winehq.key

$ sudo apt-key add winehq.key

$ echo "deb https://dl.winehq.org/wine-builds/debian/ buster main" | sudo tee /etc/apt/sources.list.d/wine.list

$ echo "deb https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/Debian_10 ./" | sudo tee /etc/apt/sources.list.d/winehq.list

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys DFA175A75104960E

$ sudo apt update

$ sudo apt install --install-recommends winehq-stable

$ winecfg

$ sudo apt install nemo

$ wine package.exe

$ ln -s  /home/<username>/.wine/drive_c/users/<username>/Desktop /home/<username>/wine

Windowsのバージョンは8.1に設定しておく

■日本語フォントのインストール

・winetricksインストール
$ wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
$ chmod +x winetricks
$ sudo mv winetricks /usr/bin/

・64bit版wineフォント設定
$ winetricks cjkfonts

・32bit版wineフォント設定
$ export WINEPREFIX=~/.wine32
$ export WINEARCH=win32
$ winetricks cjkfonts


■Kindle for PCのインストール

アマゾンの公式サイトからWindows用のkindle for PCをダウンロードする
ブログ執筆時点ではwine6であれば、ネット上でよく見る不審なサイトからダウンロードする旧バージョンでなく公式サイトのバージョンが利用できた
(ダウンロードしたバージョンは1.26.0)

kindle用のフォルダを作成してからインストールする
$ mkdir -p {WINEPREFIX:-$HOME/.wine}/drive_c/users/$USER/AppData/Local/Amazon/Kindle
$ wine /<ダウンロードしたパス>/KindleForPC-installer-<ダウンロードしたファイル名>.exe



問題なくインストールできれば、Linuxアプリ内に【kindle】 や【Files】のアイコンが追加されている
【Kindle】のアイコンを起動してもwine32bit版にパスが通っていないため、ファイルが見つからず起動できない

【Files】を起動して【wine】フォルダを開くと【kindle】があるので、こちらから起動してみる


wine32でコマンドを打ってもいいが、こちらの方が早い
パスを通すのが面倒だったのと、この操作で手間を感じないのでパスは通していない

起動して2要素認証を行ってログインすれば問題無く利用できる
KVM上に立てたWIndowsで利用する場合と違って、タブレットモードで縦画面にしてもちゃんと回転して使えるのは便利でいい
ただ、書籍一覧ページでのスクロールが、画面右のスクロールバーを使わないと駄目な点が少し残念かな



Kidnleを利用する前提でChromebookを購入したいのであれば、スペック気にせずarm系のマシンを選ぶ方がいい

色々と調べたところarm系を搭載したモデル であれば問題なく利用できるようだ
Linux環境で色々試したり、それなりのマシンスペックを求めたい場合はx86系のCPUを搭載したモデルになるが、Androidアプリはまともに動作しないものもある

2021年9月21日火曜日

M5 Stick Cと心拍センサで血中酸素濃度計を動かしてみる(VS Code)

 前回の記事でVS Code 上でM5 Stick Cを使えるようにしたので、一緒に購入した【 心拍センサー 】を使って血中酸素濃度計を動かして見る


参考にしたのは以下のサイト

というか公開されているソースをそのまま利用させていただいた


・雑技工房:パルスオキシメータ

https://www.zatsugi.com/index.php/2020/05/02/m5stickc-spo2/

・Qiita:M5StickCを用いた血中酸素飽和度の測定

https://qiita.com/mktshhr/items/8aa029cc19278d9f9d12



まずは前回作成したプロジェクトにMAX30100libライブラリを入れる


後は/src配下にソースコードを配置するだけ

Arduino IDE用なので拡張子を【.cpp】に書き換えてビルドすればそのまま動いた



病院のパルスオキシメーターで測るよりも1%程低い数値な気がするが、目安程度には使えるかな

何度か測って極端に低いようであれば異常と判断する程度には利用できると思う


このM5 Stickのシリーズは簡単に繋げられるモジュールもたくさんあるので、他の物も気が向いたら動かして試してみたい


その前にソースをちゃんと理解する方が重要な気もする

2021年9月15日水曜日

ChromebookでM5StickCを使ってみる(VSCode / Pratform IO利用)

【 スイッチサイエンス 】でM5StickCを手に入れたのでChromebookで使ってみることにした


ざっと調べたところArduinoIDEのLinux版が利用できるが、コマンド打ってのインストールだったり、Linuxフォルダ直下に不要なフォルダを作る事を推奨してたりでイマイチ


MS社のVS Codeを使ってるのだから、Arduino系のボードもまとめて使える環境を整えてみた



まずはVS Code上でC言語が使えるように【拡張機能】から【C/C++】をインストール


次に【拡張機能】から【Pratform IO IDE】をインストール


すると左メニューの一番下にPIOのアイコンが表示され、タブに【PIO Home】が表示される

画面右辺りにある【New Project】から新しいプロジェクトを作成し以下入力

【Name】:任意のプロジェクト名

【Board】:M5Stick-C

【Framework】:Arduino(初期値)

Locationは保存先なので、変える必要がなければそのままで



次に同じ【PIO Home】タブの左メニューから【Libraries】を開いて【M5StickC】検索して見つけ、【Add to Project】を押してプロジェクト内にライブラリをインストールする



 後はM5StickCを繋いで、/src内にある【main.cpp】にコードを書けばいい

初期だと#include <Arduino.h>となっているので、<M5stickC.h>に書き換える必要がある

また、拡張子が【.ino】ではなく【.cpp】になっているので、ネット上で見つけたソースを流用する際は注意が必要


コードが完成したらVS Codeの左メニューの一番下にできたPIOのアイコンを開いて【Build】、【upload】を押すか、VS Codeの画面左下にある【→】で処理してもいい



これならVS Codeだけであれこれできるので便利でいいかな

一緒に注文した心拍センサを繋いでのテストもまたやろう

2021年9月8日水曜日

Ryzen搭載ChromebookでWindows10を動かす(QEMU-KVM) ※追記2021/09/15

 折角ハイスペックなChromebookを購入したので、色々と試してみたくてLinux環境にKVMを構築してWindows10を動かしてみる


参考にしたのは以下ブログ

【 Chromebook上でWindowsを動かしてみた(QEMU/KVM) 】 


利用するマシンはLenovo C13 Yoga Chromebook

CPUはRyzen 7 3700C 4コア8スレッド、メモリ16GBの最上位モデル

すでに直販サイトでは販売が終わっている模様


WIndows10のライセンスに関しては検証用に余らせているパッケージ版のWindows10 Proを利用した

動作検証のみで短期利用ならライセンスなしでも使えるが、長期利用の場合はライセンスは必須

当然海賊版は論外として、KVM上への構築となるとDSP版もライセンス違反となるため利用できない点は注意が必要


インストール用のWindows 10 ISOファイルは以下公式サイトから

【 Windows 10 のディスク イメージ (ISO ファイル) のダウンロード

また、virtioのドライバを利用するのでそちらのISOファイルもダウンロードしておく

Lastest版は認識しなかったのでStable版を利用した。(virtio-win-0.1.196.iso)

【 https://github.com/virtio-win/virtio-win-pkg-scripts/blob/master/README.md

どちらもダウンロードしたらLinuxフォルダへ移動もしくはコピーしておく


また、LinuxコンテナのCrostiniはディスク100GBで構築し、日本語化まで終わらせている状態



まずはいつものコマンド

$ sudo apt -y update && sudo apt -y upgrade


KVMに必要な諸々をインストール

$ sudo apt -y install qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils virtinst libvirt-daemon virt-manager



インストールされた【仮想マシンマネージャー】を起動してWindows10をインストールしていく

画面左上のアイコン【新しい仮想マシンの作成】を選択



【ローカルのインストールメディア(ISOイメージまたはCD-ROMドライブ)(L)】を選択して次へ


【参照】からダウンロードしたWindwos10の ISOファイルを選択して次へ



【Memory】は8192(8GB)、CPUは【8】を選択して次へ



ディスク容量を64GBに変更して次へ
必要であればもっと増やしてもいいかもしれないが、基本的にクラウドストレージを使うのと、このWindows環境上でファイルを扱わないので最低限で設定




【インストールの前に設定をカスタマイズする(U)】にチェックを入れて次へ


【仮想ネットワークが有効ではありません】とダイアログが出てくるので【はい】で次へ


詳細設定画面が開くので【CPU数】を選んで以下を設定して【適用】
【ホストCPUの設定をコピーする】 チェック有り
【CPUトポロジの手動設定(Y)】チェック有り
 ソケット数:1
 コア数:4
 スレッド数:2



【SATAディスク1】を選んで以下を設定して【適用】
ディスクパス:VirtIO



【NIC】を選んで以下を設定して【適用】
デバイスのモデル(L):virtio


【ハードウェアの追加】から以下デバイスを追加する
【カスタムストレージの選択または作成(S)】チェック有り
【管理】からダウンロードしたvirtioのISOファイルを選択
デバイスの種類:CD-ROMデバイス


問題なければ【インストールの開始】からWindowsのインストールをスタートする
デバイスの選択ではWin10用の物を選んで次へ



virtioのNIC用ドライバがインストールされていない状態なので、一旦ローカルアカウントでインストールを進める


問題なく起動したらCDドライブ(E) から【virtio-win-gt-x64】を実行してNIC用ドライバをインストールする
また、標準のグラフィックドライバでは動作が重たいので同じパス内にある【virtio-win-guest-tools】を実行してグラフィックドライバも適用する



これでひとまず問題なく動くようにはなったので、改めてMicrosoftアカウントでログインして、OSライセンスを実行した上で、 Windows Updateを実行

また、Chromebookを再起動した際にKVMの仮想ネットワークが自動起動しなかったので、以下をターミナルから以下を実行
$ sudo virsh net-autostart default



一応ベンチマークを動かした結果は以下の通り

・CrystalDiskMark

・GeekBench

・Chinebench R23


どれの値もかなり低め
CPU自体は定格クロック2.3GHz、ブーストクロック最大4.0GHzではあるがそれにしては値が低い
定格クロックの値は認識しているが、ブーストしていない模様

Minecraftを動かした時にも感じたが、RyzenだとLinuxコンテナのCrostini環境だとブーストしていないのか?
設定できるところが見つかればまた追記しようと思う


※追記
Lenovo社に問い合わせたところブーストクロックに関してはサポート外との回答
ChromeOS側の仕様と思われる

Chromebook自体を開発者モードにしてしまえば実現可能な気はするが、そこまで高負荷な処理はKVM上のWindowsでもCrositini上でもやるつもりはないので、一旦諦めることに

折角のRyzen 7 なので次のモデルを買う際には、この辺りも再度注意して情報を探す必要がありそうだ

2021年8月30日月曜日

ChromebookのLinux(Crostini)環境の日本語化

 以前アップしていた記事の内容だと齟齬があったので、再度内容を確認して投稿し直し


使用機種はLenovo C13 Yoga Chromebook us配列

Crostini は有効化済みの状態


・まずはいつもの

$ sudo apt -y update && sudo apt -y upgrade


・日本語フォントと日本語化パッケージのインストール

$ sudo apt install -y task-japanese fonts-noto-cjk


・ロケールの変更

$ sudo dpkg-reconfigure locales

【ja_JP.UTF-8 UTF-8を選択する】


・日本語IME Mozcのインストール

$ sudo apt -y install fcitx-mozc


・fcitxの環境変数設定
$ sudo vim /etc/systemd/user/cros-garcon.service.d/cros-garcon-override.conf

※以下追記

Environment="GTK_IM_MODULE=fcitx"
Environment="QT_IM_MODULE=fcitx"
Environment="XMODIFIERS=@im=fcitx"
Environment="GDK_BACKEND=x11"



fcitx自動起動の設定

$ sudo vim ~/.sommelierrc

※以下追記

/usr/bin/fcitx-autostart



ここで一旦Chromebookを再起動


・fcitxの設定

$ fcitx-configtool

すでにMozc が追加されていることを確認 


リアルタイム入力用に以下設定

【アドオン】タブの【Advanced】にチェック

一覧から【Fxitx XIM Fronted】を選択して【設定】ボタンを押してダイアログを開く

【XIMで On The Spot スタイルを使う(起動中は変更できません)】にチェックを入れて【OK(0)】を押して閉じる



Crostini側はこれで完了


次にChromebook側で【 Ctrl + Alt + t 】でcroshを起動

【 Ctrl + Shift + p 】でターミナルの設定画面を開く

真ん中辺りの【キーボードバインディング/ショートカット】に以下追加

{

"Ctrl-space":"PASS"

}




これで問題無くCrostini側でも日本語入力できる

2021年8月16日月曜日

ChomebookでのMinecraft Java Edition実行とマウスカーソル対策

 Lenovo製 Chromebook C13 Yogaでマイクラを実行した際、マウスカーソルがウィンドウ外に移動して視線移動がまともにできない事象があったので、情報を探して対策を実施した


参考にしたのは以下のブログ

【 How to Play Minecraft on a Chromebook 】


まずはTerminalを起動していつものアップデートを適用

$ sudo apt -y update && sudo apt -y upgrade



次にJavaのインストール

$ sudo apt -y install default-jdk


マイクラの.debファイルを公式サイトからダウンロード

【 https://www.minecraft.net/ja-jp/download 】


ダウンロードしたファイルを右クリックして【アプリケーションで開く】>【Linuxでのインストール】を実行すればマイクラのインストールは完了


だたし、このままではマウスカーソルの問題が残るのでchrome://flagsで以下の設定を有効化する

chrome://flags/#crostini-gpu-support

 →Linux環境のでGPU有効化

chrome://flags#scheduler-configuration

 →CPUのハイパースレッディング有効化

chrome://flags/#exo-pointer-lock

 →ポインタロックの有効化

chrome://flags/#enable-pointer-lock-options

 →Linuxアプリでのポインタロック要求の許可




この設定で問題なくマウスでの操作が可能になった

マシンスペックも相まって、動作自体に問題はない

一応、FPSを60、チャンク表示を10チャンクくらいに下げるとより快適に操作できるようになったかな

2021年8月8日日曜日

NanoPi R4SでOpenWrtを構築

 今まで使っていたXG Firewall Home EditionはAndroidのv6通信で相性が悪いようなので、改めて別途ルータを用意することに


無線APは別途あるし市販品を買っても仕方ないので今回はOpenWrtを構築することに


選んだ筐体はNanoPi R4S

microSDカードはトランセンドの高耐久350Vシリーズの128GB

電源コードは適当にスイッチ付きでACアダプタ分離型をそれぞれAmazonで購入




OSイメージは以下サイトにスナップショット版がアップされていた

friendlyarmの公式サイトだとFriendlyWrtだったので、OpenWrtのサイト上を漁って見つけた

https://openwrt.org/toh/hwdata/friendlyarm/friendlyarm_nanopi_r4s


画面下部の【Firmware OpenWrt snapshot Install URL:】に記載のURL【http://downloads.openwrt.org/snapshots/targets/rockchip/armv8/openwrt-rockchip-armv8-friendlyarm_nanopi-r4s-ext4-sysupgrade.img.gz】をダウンロードして、適当なソフトウェアでmicroSDカードへイメージファイルを書き込み


初期起動ではWANがDHCP、LANが192.168.1.1/24で起動する

自宅環境だとLANアドレスが競合するため、一旦WANを接続せずにPCを繋いでSSH接続

初期設定はユーザ名:root、PW:無し(空白)でログインできた




まずはLANインターフェースのIPアドレス変更
# vim /etc/config/network

config interface 'lan'の中にあるoption ipaddr の値を書き換える
ika concccc


再起動して、新しいアドレスにアクセスして変更されていることを確認

問題なければWANを接続してインターネットへの疎通を確認してから、以下のコマンドを実行してGUI設定ツールをインストールする


# opkg update

# opkg install luci

# opkg update

# opkg install luci-ssl

/etc/init.d/uhttpd restart


再起動を確認したらブラウザからlan側アドレスへアクセスする

ログイン情報はsshの際と一緒、PWを設定する様に促すメッセージが出てるので、後で変更しておく




【System】>【Software】を開いて【Update lists】をクリックしてインストール可能ツールの一覧を更新して、検索窓から基本の日本語ツール【luci-i18n-base-ja】を検索する





次にIPoE接続用にDS-Lite用のソフトウェアを同じようにインストールする




インストールが完了したら、一旦WAN側を抜いてIPoE接続用の設定を入れていく


【ネットワーク】>【インターフェース】から【WAN】を選んで、プロトコルをDHCPから【Dual-Stack Lite(RFC6333)】に変更して、【DS-Lite AFTRアドレス】に【2404:8e01::feed:100】を入力して保存、2404:8e01::feed:101でも可

東日本だとAFTRアドレスの値は2404:8e00::feed:100か2404:8e00::feed:101になる



次に【wan6】を選んで【DHCPサーバ】>【IPv6設定】を開き、以下の通り設定する

【Designated master】:チェックあり

【RA-Service】:リレーモード

【DHCPv6-サービス】:リレーモード

【NDP-Proxy】:リレーモード


次は【LAN】を選んで、【DHCPサーバ】>【IPv6設定】を開き、以下の通り設定する

【Designated master】:チェックなし

【RA-Service】:リレーモード

【DHCPv6-サービス】:リレーモード

【NDP-Proxy】:リレーモード



また、LAN側のIPアドレスをGUIで帰る場合、情報を変更してから【保存&適用】を実行して90秒以内に新しいIPアドレスでアクセスし直さないと、設定がロールバックされてしまう


ここまで設定すれば、あとはONUからNanoPi R4Sに直結して疎通確認をするだけ

設定が問題なかったのですんなり繋がった


ただ、NanoPi R4Sだとメモリ使用量も1%程度しかなかった



わかってはいたけどオーバースペックだったかな

これなら下位モデルのR2Sでも十分だったかもしれない