Author Topic: QEMU mipsel-linux emulator with virtual framebuffer device (aka Dingux emulator)  (Read 6713 times)

uli (OP)

  • Posts: 14


This is a screenshot of the MIPS/Linux binary of PSX4ALL for Dingoo running on my regular Linux box at work. :)

QEMU userspace emulation allows you to run Linux binaries for various architectures on your regular Linux PC. I used it to develop PSX4ALL back then (augmented with virtual terminal and framebuffer IOCTL translation, which has since made it upstream). It helped a lot, but it was rather inconvenient. It used the actual framebuffer device and terminal on my development box, so you had to switch to the FB console every time you wanted to test something, had to deal with the differing screen geometry, and worst of all, lost control of the machine when the application crashed while the keyboard was in raw mode. In that case you had absolutely no chance short of a reboot to regain control of your computer.

So I figured it would be nice to have the framebuffer virtualized and shown in a neat little window on your desktop, without messing with the real-life framebuffer device or the keyboard driver. So I cooked this up in a couple of hours as my contribution to Hackweek V (https://features.opensuse.org/hackweek). I'll be on vacation from Wednesday, and it won't be completed until then, but I wanted to post a picture at least.

(Here are the answers to two questions that are bound to be asked: No, this won't work on any operating system except Linux, and no, it cannot run the native firmware. It does not emulate any hardware, it merely emulates a subset of the MIPS ISA that is used in userspace and translates Linux system calls and IOCTLs between different processor architectures.)

santino

  • Guest
Could be very useful for developing for dingux or skinning. Great work!

SiENcE

  • Posts: 653
    • Crank Gaming (Dingux Apps)
Nice. I appreciate your work on Dingux basics. Currently i use SDL and crosscompilations for testing. But with qEmu it'd be closer to the real hardware.
« Last Edit: June 08, 2010, 01:14:24 pm by SiENcE »

Poligrafowicz

  • Posts: 213
Sorry for necroing this old thread.

I'm trying to use this version of qemu. When I try to use it like this :
qemu-mipsel -L /opt/mipsel-linux-uclibc hello

I get following errors :
hello: '/lib/libgcc_s.so.1' is not an ELF executable for MIPS
hello: '/lib/libgcc_s.so.1' is not an ELF executable for MIPS
hello: can't load library 'libgcc_s.so.1'

I tested hello program on my Dingoo and it worked, so the libraries should be fine, yet qemu says those are not for MIPS.

Poligrafowicz

  • Posts: 213
I solved the problem (thx to Zear's tip), by copying files from:
/opt/mipsel-linux-uclibc/lib
and
/opt/mipsel-linux-uclibc/usr/mipsel-linux-uclibc/lib
into
/usr/gnemul/qemu-mipsel/lib

Most likely those files can be in any other folder, but this way I don't have to tell qemu where to search for them every time I use it.

Edit: I still have no idea how to activate the framebuffer.
« Last Edit: January 16, 2011, 10:51:32 pm by Poligrafowicz »