Qbilinux 日記

Linux に関係することだけではなく,最近は一般的なコンピュータやガジェット関係についても記載してます.

arm ボード rock64 を購入してみたので軽く動作確認 (eMMC 編)

前回は rock64 の購入経緯とボード本体の動作確認の様子を書いたので,今回は eMMC の動作確認でも.

この辺りが知りたい方は以前の blog 記事を見てください.(かなり前の記事ですが...)

toshi-mtk.hatenablog.com

eMMC からのブートって面倒なのかなと思っていたけど,ドキュメントを軽く見た感じ,SD カードのイメージを eMMC に書き込んでブートローダの設定と root パーティションの設定を変更するだけでブートできるみたいですね....Slackware の場合はですけど.

https://wiki.pine64.org/index.php/ROCK64_Software_Release#Slackware

というわけで早速作業.

動作確認に使った microSD の /home 以下などにイメージファイルをコピー.

で,rock64 の電源を一回落として eMMC モジュールを取り付け.結構コネクタ固いな.

取りつけて再び microSD からブート.

ドキュメント通り

% dd if=slarm64-current-aarch64-base-rootfs-15Jun19-4.4.183-rock64-build-20190623.img of=/dev/mmcblk1 bs=10M

と実行.

ん?一瞬でこけたぞ.

それ以降,挙動がおかしくなりました.

再び microSD を作り直してチェックしたところ,デバイス名が上記ドキュメントとは異なっているみたい.

microSD が /dev/mmcblk1 で eMMC が /dev/mmcblk0 になっていました.ということで,上記コマンドでは microSD のイメージが壊れてしまったというわけ.ドキュメントを信じずに,コマンド実行前にデバイス確認しておけば良かったのね.
ということで,再実行.

% dd if=slarm64-current-aarch64-base-rootfs-15Jun19-4.4.183-rock64-build-20190623.img of=/dev/mmcblk0 bs=10M

その後,eMMC パーティションをマウントして,ブートローダーと fstab をドキュメント通り書き換え.

% mount /dev/mmcblk0p1 /media
% vi /media/boot/uEnv.txt
rootdev=/dev/mmcblk0p1
% sed -i 's:mmcblk1p1:mmcblk0p1:' /media/etc/fstab

上記コマンドは,全部,実際のデバイス状況に合わせて変更してあります.

で,microSD を取り外して再起動.

無事,eMMC からブートできました.ふう.

ブート時間は microSD も eMMC もあんまり変わらない感じ.

今日のところはここまでかな.

細かいベンチマークなどはまた後日...といいつついつになることやらですけど.:-)

ラズパイゼロ用のゲームボーイもどきケースを購入してみたので軽くレビューでも

以前,ラズパイ用の NES もどきのケースを購入して,軽くレビューを書きました.

toshi-mtk.hatenablog.com

で,今度はラズパイ用のゲームボーイもどきのケースを購入してみた話.

NES ケースと同じメーカーから出てる GPi CASE ってやつ.

retroflag.com

ちなみに amazon.com から購入してみました.国内の amazon.co.jp でも販売していますが,そんなに急ぐものでもなかったし,値段差も購入当時で2,000円くらいあったので,つい amazon.com で注文してしまいました.

とは言いつつ,注文してから10日くらいで到着.思ったよりも早かったね.

このケース,見た目はゲームボーイそっくりです.大きさは二回りくらい小さい感じかな?
ということで実物の箱はこんな感じ.

f:id:toshi-mtk:20191119210441j:plain

付属品はこれ.袋の中に本体が入っています.その他は必要なドライバとか電源用の USB ケーブルとかついてます.

f:id:toshi-mtk:20191119210454j:plain
本体はこんな感じ.

f:id:toshi-mtk:20191119210504j:plain

モニターは 2.8inch.重さはホームページ情報によると 183g らしい.表に十字キーと A/B/X/Y ボタン,セレクト/スタート.

f:id:toshi-mtk:20191119210205j:plain

裏に L/R ボタンがあります.あとはボリュームとか輝度調整とか,電源・ヘッドフォン端子とか.

f:id:toshi-mtk:20191119210215j:plain

電池ケースを開けるとこんな感じ.

カートリッジ部分にラズパイゼロを入れる形になります.

f:id:toshi-mtk:20191119210226j:plain

本体とのコネクタの中は...あんまり見えないね.

f:id:toshi-mtk:20191119210237j:plain

ラズパイゼロを使って組み立て.

f:id:toshi-mtk:20191119210248j:plain

構造上,ピンが半田付けしてあるラズパイゼロは使えません.ないものを使ってください.

電源用 USB 端子を基盤につなげて

f:id:toshi-mtk:20191119210312j:plain

f:id:toshi-mtk:20191119210322j:plain

f:id:toshi-mtk:20191119210343j:plain

カートリッジに収納.その後,ねじ止め.

ラズパイに直接つながった USB 端子とかは外部に出ていないみたいなので,キーボードなどの外付け機器をつなぐってことはできないです.ケース本体裏側に USB 端子があるらしいけど,ファームアップデート用って書いてるので...多分使えないんでしょうね.時間があるときにちょっと調べてみたいなとは思っています.

なので,周辺機器を使いたい場合には無線しか選択肢はありません.もしくは無線経由でリモートログインして使う感じかな.

詳細は上記ホームページとかマニュアル http://download.retroflag.com/manual/case/GPi_CASE_Manual.pdf を参考にしてください.

無理矢理カードリッジに穴を開ければラズパイの USB 端子を引っ張り出せる気もするけど,そこまでは試していません._o_

OS はいろんなディストリビューションが GPi CASE 自体をサポートしていたりします.

周辺機器をコントロールするためのプログラム等は GPi CASE のホームページで配布していますので,対応していないディストリビューションを使う場合には自分でインストール等行ってください.

で,今回使ったのは http://download.retroflag.com/ からリンクが張られている Recalbox 6.1 for GPi.

download.retroflag.com

名前の通り,このケース自体をサポートしているのでそのまま SD カードに直接書き込むだけ.で,起動.

問題なく動作しました.十字キーとか各種ボタン,スイッチももんだなく動作してるみたい.

ということで,お約束(?)のゲーム起動.DOOM ね.

f:id:toshi-mtk:20191119210405j:plain

動いたね.当然か.ゲームの動作速度は全然問題ない感じだな.

でも,本体が小さいので操作は難しいなぁ.

やっぱりカートリッジに穴を開けて USB 端子が使えるようにしてから,ジョイスティックとかつなげるようにした方が良いのかなぁ?でも,それってこのケースである必要ないなぁ.以前購入した NES ケース使えばいい話だし.

ということで,ネタ的にラズパイ用のゲームボーイもどきケースを購入した話でした.

 

レトロフラッグ RETROFLAG ゲームボーイ風ラズベリーパイケース GPi Case Raspberry Pi Zero Raspberry Pi Zero W 432219
 

Qbilinux 開発について(その43): 現在の状況

ぼちぼちと Plamo Linux 6.x のソース一式からブランチして,Qbilinux という linux ディストリビューションを作成.

いつまで続くのか.

いじってる Qbilinux のホームページは https://qbilinux.org/ に,ビルドスクリプトは https://github.com/qbilinux/qbilinux,バイナリは https://qbilinux.org/pub/ 以下にあります.

最近は qbilinux 関連の作業は放置気味.

kernel 5.4 がリリースされてからバージョンを締めようかなぁと思ってるんだけどね.

で,なーんとなく KDE 周りを最新バージョンにまで追従させました.framework とか plasma とか.github の方にはすでに push 済み.

これでほぼすべてのデスクトップ環境が最新に追従した形になったのかな?

あとはパッケージ一式を全部リコンパイル.

現在使っているバイナリって,qbilinux って名前に変更する前にコンパイルしたものも多数あるし,実際に現在のシステムで全部のパッケージがコンパイルできるのかなぁと気になったもので.

いくつか引っかかるものがあるね.引っかかったものを最新版にバージョンアップしようかなと思ったら,いろんなところでエラーに.小数点以下のパージョン変更なのにライブラリの過去互換性がなくなるのはどういった...以下自粛.

ということでそのあたりも修正して git push 済み.

x86_64 は全部コンパイル終了したので,現在は x86 環境のリコンパイル中.

終了したら current のパッケージを更新する予定です.

すべてのパッケージが更新されるので,注意してくださいね.

...って使ってる人はほとんどいないか.

ARM 関係は...相変わらずコンパイル時間がかかりすぎるのでちょっとどうしようかなと考え中.:-)

そんなところかな.

徐々にペースアップしたいなぁと

しばらく放置気味だったこの blog も徐々に更新をペースアップしたいなぁと思っています.

できれば昔のようにほぼ毎日更新するレベルまで戻したいなぁとは思っているけど,どこまでできるかな.

色々とレビューを書こうかなと思ってるガジェット類もたまってるので,徐々に時間を見ながら書いていこうかなと思います.はい.

Qbilinux 開発について(その42): 0.3 のセキュリティフィックス

ぼちぼちと Plamo Linux 6.x のソース一式からブランチして,Qbilinux という linux ディストリビューションを作成.

いつまで続くのか.

いじってる Qbilinux のホームページは https://qbilinux.org/ に,ビルドスクリプトは https://github.com/qbilinux/qbilinux,バイナリは https://qbilinux.org/pub/ 以下にあります.

最近は時間がとれなくて qbilinux 関連の作業は放置気味.

arm 用のバイナリ作成は行っているんですけど,x86/x86_64 用のインストーラー修正は完全放置してしまっています.

けど,いろいろとセキュリティフィックスも出てるみたいだからリリースしている 0.3 では対応しておかないとダメだなと思い,この週末に無理やり作業.

ふう.

調べてみたら8月くらいから放置していたみたいですね.

ということで,https://qbilinux.org/pub/qbilinux-0.3/ 以下の x86/x86_64 用のパッケージを更新しておきました.

arm 用は...current 用のパッケージ作成用にラズパイがフル稼働しているのでちょっといつになるかわかりません.ごめんなさい.

Plamo Linux と同様に get_pkginfo コマンドで自動更新できます.

ざっと目についたものを更新しましたが,更新したのは下記くらい.

  • libreoffice
  • kconfig
  • samba
  • php
  • nghttp2
  • httpd
  • dovecot
  • ibus
  • ffmpeg
  • faad2
  • pango
  • ghostscript
  • thunderbird
  • firefox
  • expat
  • wpa_supplicant
  • sudo
  • openssl10
  • openssl
  • kernelsrc
  • kernel_headers
  • kernel
  • e2fsprogs
  • qemu

忘れているものとかありましたら,ご免なさいです.

これも対応して欲しいと言った要望などあれば連絡頂ければ対応します.はい.

詳細は https://github.com/qbilinux/qbilinux/commits/Qbilinux-0.3 あたりを参照してください.

0.3 の方しか対応していないので,current の方も対応しておかないとなぁ.

linux kernel の次の lts は 5.4 ?

ふと kernel.org のホームページをみたら,linux kernel の次の lts は 5.4 みたいだね.

www.kernel.org

あ,lts って "longterm maintenance" のことね.長期間サポートされるバージョン.

いつごろりリースされるのかな?

これに合わせて自作の linux ディストリビューションもバージョン締めてリリースしようかな.

使っているプログラムで cakephp 3.x から cakephp 4.x への載せ変え作業をしてみた

php framework である cakephp 3.x を使ってシステム開発をしています.

4.0.0-beta3 もリリースされたし,だんだん cakephp 4.x のリリースが近づいてきたのかな?

ということで,様子を見るために cakephp3 で動かしている手元のプログラムを cakephp4 に載せてみました.

...

最初にざっと cakephp 4.0 の migration guide に目を通しておきます.

https://book.cakephp.org/4.0/en/appendices/4-0-migration-guide.html

3.8 で廃止するよって warinig が出ていてた method, properties, function などはすべて削除されるみたいだね.

あとはディレクトリ構成に変更があるのと,template の拡張子が .ctp から .php に変わった辺りが大きな変更点かな?

そのほかの細かい変更個所もありますが,とりあえずは後々調整する感じかな.

...

とりあえず,composer を使って cakephp 4.0.0-beta3 をインストール.

その後,cakephp 3.8.x で使っていた controller, model, template などのファイル一式をそれぞれ cakephp4 の方にコピー.

templates/{Element, Email, Layout} などはディレクトリ名が小文字に変更になっているのでちょっと注意が必要.

templates 以下のファイルは拡張子が変更になっているので一気に変更.

% find template -name "*.ctp" -exec rename .ctp .php {} \;

な感じかな?

あとは config/app.php の db 回りの設定を適当に修正してとりあえずデフォルトの Pages/display 画面を表示させてみました.

ふむふむ,問題なく表示できてるみたいだな.

次は cakephp 3.8.x から持ってきた方のファイルを表示させてみた...ら案の定,大量なエラー.

まぁ,わかってたことだけど.

migration guide を見ながらとりあえず Auth 回りを修正.

acl plugin まわりは無くなるみたいなので,とりあえずコメントアウトしてあとで修正する感じかな.Coockie 回りも修正は後回しかなということで,とりあえずコメントアウト.

で,予想外に修正が面倒だったのが,関数の戻値を書かないとエラーになってしまう件.php7 以降で関数の戻値宣言が導入されましたがそれが要因でエラーが多発します.

普通の関数などでは問題ないんだけど,Controller 中の

public function initialize()

や,Model/Table 中の

public function initialize(array $config)
public function validationDefault(Validator $validator)
public function buildRules(RulesChecker $rules)

なんかが軒並エラー.継承しているせいですね.

ということで

public function initialize(): void
public function initialize(array $config): void
public function validationDefault(Validator $validator): Validator
public function buildRules(RulesChecker $rules): RulesChecker

などに書き換える必要があります.

あとは適当に routes.php を書き換えて,まだ cakephp4 をサポートしていないであろう plugin を off.

その状態で cakephp 4.x ベースで画面表示ができるようになりました.所々,エラーになるところはあるけど,まぁ半分くらいの画面は動作.

その間,作業時間は2時間程度.

cakephp 2,x から 3.x に移行したときに比べれば雲泥の差で乗り換えはラクチンそうですね.

2.x から 3.x に移行したときには半年くらいかかったけど,3.x から 4.x へは1ヶ月くらいあれば余裕で載せ変えできそうな感じかな.

本格的に移行するのはおそらくまだ先だろうけど,4.x になってから削除されてしまう関数などを 3.x で運用している方でも徐々に修正しておいた方が良さそうですね.

あ,バージョン移行に関して plugin 関連は相変わらず悩ましい感じかなと思っています.

2.x から 3.x になったときに,3.x に移行されずにそのままメンテ放置されてしまった plugin をいくつか使っていたんですよね.で,いくつかは仕方なく自前で書き換えて使っていて,いくつかは plugin を使わない形に記述変更しました.同じようなことが 3.x から 4.x の移行時にもおこりそうかなと思っています.3.x にしたときにその危険性を避けるために,使う plguin を大幅に減らしはしたんですけど,それでもいくつかはまだ使っているんですよね.で,これらの plugin はまだ cakephp 4.x 系への対応がなされていない雰囲気.うーむ.

4.x への移行をきっかけに,外部 plugin は完全に使わない形にした方が良さそうかなぁと思っていたりもします.外部 plugin を使うと実装は楽なんだけどね....

と,とりあえず作業はそこまででストップ.

まぁ,今後は cakephp 4.x の様子をみつつ,移行時期などを含めて考えるって感じかなと思います.はい.

CakePHP 超入門

CakePHP 超入門

 
初めてのPHP

初めてのPHP

 
 

 

Qbilinux 開発について(その41): kernel 5.3 に更新した話と VirtualBox の kernel 5.3 対応

ぼちぼちと Plamo Linux 6.x のソース一式からブランチして,Qbilinux という linux ディストリビューションを作成.

いつまで続くのか.

いじってる Qbilinux のホームページは https://qbilinux.org/ に,ビルドスクリプトは https://github.com/qbilinux/qbilinux,バイナリは https://qbilinux.org/pub/ 以下にあります.

少し放置している間に kernel 5.3 がリリースされてしまいました.

ということで,作成したいたツリーも kernel 5.3 に入れ替え.

このあたりの気軽さは自分で弄っているディストリビューションならではだね.

使っている cjktty パッチに reject が出たのでちょっとだけ修正.問題なく utf8 で日本語コンソールが動作することを確認.この辺りが正しく動作してないとインストーラーで日本語表示できなくなってしまうからな.

kernel 5.3 対応の cjktty パッチが欲しい方は https://github.com/qbilinux/qbilinux/blob/master/qbilinux/00_base/kernel/ 以下の cjktty-kernel-5.3.patch, cjktty-kernel-font-JP.patch あたりをどうぞ.

で,インストーラー一式も作り直して.ついでに再び手元で iso ファイルを作成.

すこし動作確認してみるかなと思って,メインの開発環境マシンをこの iso ファイルを使って新規インストールしてみました.

EFI を使っていないマシン環境ですが,普通にインストール完了.ネットワーク回りがなんか正しく設定されていなかったけど,このあたりはこの開発環境依存かも知れないのでちょっとあとで調べてみるかって感じ.

再インストールしたので,開発に使っている VirtualBox なんかも再インストールしたんだけど,案の定うまく動作しないね.vboxconfig 実行時にエラーになってしまいます.

ということで検索.https://www.virtualbox.org/pipermail/vbox-dev/2019-July/015297.html のあたりにパッチが投稿されていますね.

virtualbox を普通にインストールしたあとで,/opt/VirtualBox 以下にインストールされている該当ファイルを探して,上記のパッチを適用してから vboxconfig を再び実行すれば問題なく設定できました.ということで対応完了.ふう.

そんな感じで環境入れ直し.

この状況で動作確認しつつ,問題のあるところを修正していく予定です.インストーラーの方もきちんとした EFI 環境対応しないとな.

さっさとリリースにしたいなとは思っていますが,なかなか作業時間がとれない状態....

Qbilinux 開発について(その40): iso イメージ作成してみました

ぼちぼちと Plamo Linux 6.x のソース一式からブランチして,qbilinux という linux ディストリビューションを作成.

いつまで続くのか.

いじってる qbilinux のホームページは https://qbilinux.org/ に,ビルドスクリプトは https://github.com/qbilinux/qbilinux,バイナリは https://qbilinux.org/pub/ 以下にあります.

インストーラーをどうやって作ってたたかなあと試行錯誤.

すっかり忘れてる.

やっぱりドキュメント書いておかないとだめだね.

ということで 0.3 のインストーラーそのままでパッケージだけ更新した形ですけど,iso ファイルを作成してみました.

0.4 alpha1 というステータスかな.

https://qbilinux.org/pub/isos-current/qbilinux-0.4a1_x86_64_20190910_dvd.iso
https://qbilinux.org/pub/isos-current/qbilinux-0.4a1_x86_64_20190910_dvd.iso.sha256
https://qbilinux.org/pub/isos-current/qbilinux-0.4a1_x86_20190910_dvd.iso
https://qbilinux.org/pub/isos-current/qbilinux-0.4a1_x86_20190910_dvd.iso.sha256

nvme な SSD に新規インストールした際に,ブートローダーが正しく動作しないので手作業で修正する必要があるなど不具合はありますが,まぁ参考まで.

VirtualBox で新規インストールできるくらいは動作確認してあります.

各ソフトのバージョンは kernel 5.2.13, glibc 2.30, gcc 9.2.0, llvm 8.0.1 な感じ.詳細は https://qbilinux.org/pub/qbilinux-current/ 以下を参考にしてください.

手元の Let's note NX2 で 32bit 版の方は常用しているのでそれほど大きな問題はないかなぁとは思っています.

そんな感じです.

GUI な git クライアントで gitk をちょっと見直し

定期的に書くこの話題.

GUI な git クライアントを気が向いたときに物色してます.Linux / Windows / Mac すべてのプラットフォームで動作するものが希望.

商用のものですが GitKraken とか SmartGit のライセンス購入して使っています.

www.gitkraken.com

www.syntevo.com

GitKraken は独自の UI だけど,割と画面が見易い感じなので使用.

SmartGit は長年使っていて使い慣れているってことで使っているけど,ちょっと動作が重たいのがイマイチなところ.ライセンス料が高いのもちょっとマイナス.

で,久しぶりに gitk を弄ってみたり.

gitk って git に標準ではいっている gui コマンドです.tk で動作しているコマンドね.
Linux では当然動作しますが,Windows でも git for windows に同梱されています.

gitforwindows.org

数ヵ月くらいガッツリと使ってみましたが,感想から言うとこれで十分かも知れないかなと感じています.はい.

コマンドラインと併用すれは全然不自由なく使える感じ.

履歴を見たり,commit するのは gitk からで,細かい作業をするときはコマンドラインを使うって感じで使い分けていますが,これが割と快適.

gitk の動作自体がシンプルなので軽いってのも好感触.

大量なリポジトリを読み込んだときとかの動作が SmaretGit なんかに比べると全然軽く感じる.

あとは,余計なコマンド類を勝手に発行されないところも良いかもね.SmartGit なんかもそうなんだけど,特定の操作をすると,裏ではいろんな git コマンドが走っていたりするので使い慣れないとちょっと怖いってところがあるから.

...そんな感じで,gitk をちょっと見直しましたね.

ということで,手元で使っている SmartGit のライセンスを更新するのはやめようかなと思っていたり.

もうすぐ手元の SmartGit のライセンスが切れるんだよね.

GitKraken の方はライセンス料金が安いし,ちょっと前にライセンス更新したばかりなのでまだ1年弱は様子見ながら使う感じかなと.

あ,一応,両方とも無料ライセンスプランはありますので,無料で使うことも可能です.

無料プランだと色々と制限があるので私自身はライセンス購入して使っています.

まぁ,気軽に使ってみて,気に入って,かつ,無料プランでは機能が足りない場合に有料ライセンス契約すれば良いかなと思います.

個人によって使いやすい/使いにくいポイントは違うかなと思いますし,リポジトリ本体をどこにおいてあるかによっても使い勝手が変わりますからね.ローカルドライブなのか,ネットワーク先なのか,github などのサービスサイト上なのか,単なるネットワークドライブ上なのかとか.どういった認証方法でアクセスしないとダメなのかとか.

その他の git クライアントとしては,visual studio code とか eclipse / PHPstorm なんかについていたり plugin で追加できる git 環境も使ってみたりするけど,これらもちょっと重いし,何となく使いにくく感じるんだよな.慣れの問題かな?

azure.microsoft.com

www.eclipse.org

www.jetbrains.com

特定プラットフォームだけで動作するものって言うことで Sourcetree とか TortoiseGit なんかもありますが,やっぱり色んな環境で使えた方が便利かなと.私自身,開発環境をコロコロと変えることが多いんで.^^;

www.sourcetreeapp.com

tortoisegit.org

繰り返しになりますが,そんな感じで gitk をちょっと見直したなぁって話でした.

 

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

 
実用Git

実用Git

  • 作者: Jon Loeliger,吉藤英明(監訳),本間雅洋,渡邉健太郎,浜本階生
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2010/02/19
  • メディア: 大型本
  • 購入: 7人 クリック: 287回
  • この商品を含むブログ (45件) を見る