M
.github
Add an experimental GitHub Actions workflow
js
Initial commit
slirp
Use res_getservers instead of reading resolv.conf
.gitignore
Build a static library for iOS
aes.c
Initial commit
aes.h
Initial commit
block_net.c
Initial commit
build_filelist.c
Fix building build_filelist
Changelog
Initial commit
compress.c
Add compressed initramfs support
compress.h
Add compressed initramfs support
cutils.c
Initial commit
cutils.h
Optimize ctz32
elf.c
Add initrd support
elf.h
Add include guards in elf.h
fbuf.h
Initial commit
fs_disk.c
fix: address chmod sync in 9p fs
fs_net.c
feat: p9 blockdevice fixes (du -csh, etc)
fs_utils.c
Initial commit
fs_utils.h
Initial commit
fs_wget.c
Initial commit
fs_wget.h
Initial commit
fs.c
allow to use with container2wasm
fs.h
fix: address chmod sync in 9p fs
ide.c
Initial commit
ide.h
Initial commit
iomem.c
Initial commit
iomem.h
Initial commit
jsemu.c
Initial commit
json.c
Initial commit
json.h
Initial commit
list.h
Initial commit
machine.c
Add initrd support
machine.h
feat: multi-console support
Makefile
really disable compressed initramfs
Makefile.js
Fix Emscripten build
MIT-LICENSE.txt
Initial commit
netinit.sh
Initial commit
pci.c
Initial commit
pci.h
Initial commit
pckbd.c
Initial commit
ps2.c
Initial commit
ps2.h
Initial commit
README.md
Add a link to GitHub Actions
riscv_cpu_fp_template.h
Initial commit
riscv_cpu_priv.h
Initial commit
riscv_cpu_template.h
fix: support fence.tso
riscv_cpu.c
allow to use with container2wasm
riscv_cpu.h
Initial commit
riscv_machine.c
feat: multi-console support
sdl.c
Fix build with SDL <2.0.6
sha256.c
Initial commit
sha256.h
Initial commit
simplefb.c
Initial commit
softfp_template_icvt.h
Initial commit
softfp_template.h
Initial commit
softfp.c
Initial commit
softfp.h
Initial commit
splitimg.c
Initial commit
temu.c
fix: address chmod sync in 9p fs
VERSION
Initial commit
vga.c
Initial commit
virtio.c
feat: p9 blockdevice fixes (du -csh, etc)
virtio.h
allow to use with container2wasm
vmmouse.c
Initial commit
wasi.c
allow to use with container2wasm
wasi.h
allow to use with container2wasm
x86_cpu.c
Initial commit
x86_cpu.h
Initial commit
x86_machine.c
feat: multi-console support

TinyEMU

This is a modified version of Fabrice Bellard's TinyEMU.

Features

  • 32/64/128-bit RISC-V emulation.
  • VirtIO console, network, block device, input and 9P filesystem.
  • Framebuffer emulation through SDL.
  • Remote HTTP block device and filesystem.
  • Small code, easy to modify, no external dependencies.

Changes from Fabrice Bellard's 2019-02-10 release:

  • macOS and iOS support.
  • Support for loading ELF images.
  • Support for loading initrd images or compressed initramfs archives.
  • Framebuffer support through SDL 2 instead of 1.2.

Usage

Use the VM images available from Fabrice Bellard's jslinux (no need to download them):

$ temu https://bellard.org/jslinux/buildroot-riscv64.cfg

Welcome to JS/Linux (riscv64)

Use 'vflogin username' to connect to your account.
You can create a new account at https://vfsync.org/signup .
Use 'export_file filename' to export a file to your computer.
Imported files are written to the home directory.

[root@localhost ~]# uname -a
Linux localhost 4.15.0-00049-ga3b1e7a-dirty #11 Thu Nov 8 20:30:26 CET 2018 riscv64 GNU/Linux
[root@localhost ~]#

Use C-a x to exit the emulator.

You can also use TinyEMU with local configuration and disks. You can find more information in Fabrice Bellard's documentation for TinyEMU.

Installing

The easiest way to install TinyEMU is through Homebrew. There is a formula for TinyEMU in my Homebrew tap.

If you're compiling from source, you'll need:

Make sure to disable CONFIG_INT128 for 32-bit hosts.

Credits

TinyEMU was created by Fabrice Bellard. This port is maintained by Fernando Tarlá Cardoso Lemos.

License

Unless otherwise specified in individual files, TinyEMU is available under the MIT license.

The SLIRP library has its own license (two-clause BSD license).