日報 2024.12.14

最終更新日

Comments: 2

先日組んだ兄貴のJONSBO N2マシン、Windows起動後に”回復”要求が出るようになってしまったのでPC持ってきてもらって調査開始。

その前に小6のガキも連れて来たようなので自宅VR DDRプレイさせる。思ったよりスジが良くておかしいなと思ったら「ビートバトル」なるスマホゲーやってたっぽい。なんやねんそれ。

絶対アカンやつやろシリーズ。

ちょっとサーベイするとビートバトルは正確にはダンレボのパクりゲーではなく”Friday Night Funkin'”というゲームのパクりゲーっぽい。

いやコレもどうやねん?って思ったけど座ってるねーちゃんがデフォルメエッチやから許したわ。

JONSBO N2マシン修理開始。原因はよくわからんのでてっとり早く買っといたキオクシアの新品SSDに交換、も、なぜかUEFIで20MBしか認識せず”PS3111″と表示される。

全くわからんのでサーベイしたらどうもチップセットの型番が表示されてて、つまり故障らしい。新品やぞ。

諦めて返品しようと思って最後にダメ元でCMOSクリアして再チャンレジしたら普通に認識した。完全に不明。ちょっと怖いけど交換して返品受付期間の間動作チェックして経過観察。

今のWindowsはオフラインだとインストール続行すら出来ない鬼畜仕様なのでコマンドプロンプト出して裏コマンドを入れないとダメ。バカたれが。Shift+F10でコマンドプロンプトが出るので oobe\BypassNRO.cmdというコマンドを入れて再起動するとオフラインで続行みたいなボタンが出る。アホか。

エリート飯。

電光表札ソフトウェア続き。

ラズパイZeroのC/C++開発環境の用意。あらすじ、リモートWin側でクロスコンパイルしたい。

Rasberrypi/toolsにクロスコンパイラがあるっぽいけど古くて非推奨です、例えばaptから取ってねと書いてる。

These toolchains are deprecated. They are outdated and easily available from other sources (e.g. direct from Ubuntu apt). e.g.

There is also an aarch64 version:

Note: if building for Pi0/1 using --with-arch=armv6 --with-float=hard --with-fpu=vfp is recommended (and matches the default flags of the toolchains included here).

今回はWindowホストでやるのでWindows用にビルドされたコンパイラ無いか調べる。
WSL使ってもいいけどシンプルにやってみる。

Arm公式にありそう。

Pi Zeroは32bit CPUなので AArch32 GNU/Linux target with hard float (arm-none-linux-gnueabihf)
arm-gnu-toolchain-14.2.rel1-mingw-w64-x86_64-arm-none-linux-gnueabihf.exe をインストール。

PATH環境変数に追加しておく。

適当に以下コマンドでコンパイルして出た “a.out” をラズパイに送って実行。

arm-none-linux-gnueabihf-g++ main.cpp

実行

`$ ./a.out

Segmentation fault

なるへそ、パイゼロはARMv6だからコンパイルオプション変えろ書いてたな。

? GCC経験が年齢に伴っていないのでサーベイ。

なるへそ、–with オプションはデフォルト設定のためのconfigureオプション。コンパイル時に設定を変える場合は -m オプション。

ちなみにコンパイラのデフォルトオプションは-vオプションで確認できる。
--with-arch=armv7-a で、ARMv7向けにコンパイルされる事が分かる。

実行。

よくわからんけど言われるがまま修正

コンパイルできない。

さっきのPi Zero向けのクロスコンパイル設定を真似して-march=armv6 だけにしてみる。

変わらず。

記事の方はよくみたら hard float版じゃないコンパイラ使ってる。

sudo apt install g++-arm-linux-gnueabi

gnueabi、Windows用にビルドされたやつがなさそうなので観念してWSLでインストールしてコンパイルしてみる。

GOマンボ。

$ arm-linux-gnueabi-gcc main.cpp -march=armv6

いけた。a.outをラズパイで実行してみる。

あかん。実行ファイルチェック。

最初にgnueabihfでコンパイルしたほうも調べてみる。

/lib/ld-linux-armhf.so.3 じゃないとダメっぽい。

こういう情報があったのでFPU確認してみる。

Featuresにvfpって入ってる。

Raspberry Pi Zero Wの古いリビジョンだったらFPU(VFP)が入ってないやつがあって、それだとarm-linux-gnueabi-gccでコンパイルするやつで動かせるって事…?

もしかしたらコンパイラを自分でビルドする必要があるのかも。
その前に古くて非推奨って書いてたラズパイ公式のtoolsで試してみるか。

ひとまずエリート飯。

AbemaTVで適当に流してた異世界チャンネルで「ソードアートオンライン アリシゼーション」を途中から、”キリトかなーやっぱ”しか知らない知識で結局最後まで観てしまった。

ツンデレアリスが途中で豚まん2個喰おうとしたところがピーク。キリトが勇次郎からアリスを寝取って終わりて事でOKでしょうか。勇次郎可愛そうすぎる。最初から観てへんからアレやけどキリトって嫁はんおらんかったか?2クール目があるらしくよくわからんとこで終わった。

おわい

シェアする