🎮

U-Bootに入っているゲームで遊ぶ

2023/05/12に公開

U-Bootをいじっていたところ、何やらゲームが追加されていることに気づきました。
ここでは、遊ぶ方法について記載します。なお、特に焼きこむボードがなくても遊べる方法を記載しています。

U-Bootとは

主に組み込み機器で使われているブートローダです。PC LinuxでのGRUBに相当するソフトウェアで、Linux Kernel の起動を行ってくれます。

https://u-boot.readthedocs.io/en/latest/

Commit

下記のコミットでコマンドとして2048が追加されていました。[1]
https://github.com/u-boot/u-boot/commit/a554ee7edee8e10b38c6899ad8556daf58ca3afe

2023/05 時点での最新版は2023.04なのですが、そちらには含まれていないようです。
https://github.com/u-boot/u-boot/releases/tag/v2023.07-rc2 には含まれていそうなので、
こちらのタグを使ってソースからビルドする手順を書きます。

U-Bootのビルド

ホストはUbuntu 22.04になります。
今回はsandbox設定ファイルを使うことで、ホスト上で動く実行ファイルとしてU-Bootをビルドしてみます。

git clone https://github.com/u-boot/u-boot.git
cd u-boot
git checkout v2023.07-rc2
make sandbox_defconfig all

遊ぶ

カレントディレクトリに生成された u-boot を実行します。実行してしばらくすると入力待ちになるので、2048 と入力してみてください。

$ ./u-boot 


U-Boot 2023.07-rc2 (May 12 2023 - 18:14:57 +0900)

DRAM:  256 MiB
Core:  26 devices, 14 uclasses, devicetree: board
MMC:   
Loading Environment from nowhere... OK
Warning: device tree node '/config/environment' not found
In:    serial
Out:   serial
Err:   serial
Net:   No ethernet found.
Hit any key to stop autoboot:  0 
## Error: "distro_bootcmd" not defined
=> 2048

下記のような画面が立ち上がれば成功です。
カーソルキーを操作して、同じ数字を重ね続けるゲームになります。[2]

脚注
  1. GitHubのリポジトリはミラーで、下記が本家のようです。
    https://source.denx.de/u-boot/u-boot ↩︎

  2. https://ja.wikipedia.org/wiki/2048_(ゲーム) ↩︎

Discussion