Skip to content

ラズパイでbox86を試す

   

ラズパイはARM系のCPUなので、INTEL系のCPU用にビルドされたバイナリはそのままでは動きません。

そこでエミュレーターを使ってみます。

今回使ってみたのは、 https://github.com/ptitSeb/box86 です。

ラズパイ4用のビルド方法が書いてあるので、その通りにして https://github.com/ptitSeb/box86/blob/master/COMPILE.md

途中、cmake がインストールされてないエラーが出たので、aptでインストールしています。

$ git clone https://github.com/ptitSeb/box86.git
$ cd box86/
$ mkdir build
$ cd build/
$ cmake .. -DRPI4=1
$ sudo apt-get install cmake -y
$ cmake .. -DRPI4=1
$ make
$ sudo make install

これで/usr/local/bin/box86にインストールされます。

動作確認は、goでクロスコンパイルしてi386用のバイナリを作ってみます。

$ sudo apt-get install golang vim -y
$ mkdir gohello
$ cd gohello/
$ vim main.go 
$ cat main.go 
package main

import "fmt"

func main() {
        fmt.Printf("Hello World.")
}
$ go run main.go 
Hello World.
$ GOOS=linux GOARCH=386 go build main.go 
$ file main
main: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, Go BuildID=EDrAt9-MHQE9T80DhygY/f6YeSHOLOx8X7d-HX9hD/-l5jnyNTlVPej-xQqgNa/FWh0zT5aaqTLXuK-Kv2V, not stripped
$ ./main 
-bash: ./main: バイナリファイルを実行できません: 実行形式エラ
$ box86 ./main
Dynarec for ARM, with extension: HALF FAST_MULT EDSP NEON VFPv4 IDIVA
Using default BOX86_LD_LIBRARY_PATH: ./:lib/:lib32/:x86/
Using default BOX86_PATH: ./:bin/
Counted 26 Env var
Looking for ./main
Warning, set_thread_area syscall unsupported yet
Unsupported Int 03h

ということで、まだサポートされていない機能があるようで動かせませんでした。 残念。