[maemo-developers] [maemo-developers] Scratchbox is not an emulator
From: Eero Tamminen eero.tamminen at movial.fiDate: Wed Aug 30 11:20:02 EEST 2006
- Previous message: [maemo-developers] Re: [fbreader] ZBedic integration
- Next message: [maemo-developers] Scratchbox is not an emulator
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi, On "Re: [maemo-developers] RE: Nokia 770 sources..." Christian Pernegger wrote: > The chroot + rootstrap approch itself would be nice enough if the > environment were exactly the same as a 770, that is including > applications. Hm. Applications are not "a development environment" unless they are providing services that your own application needs...? > The scratchbox environment has no audio output, no battery indicator, > no "simulated" connectivity, Although Scratchbox allows running software, it's not a target device emulator. It's a cross-configuration and cross-building environment/tool and emulates only stuff necessary for doing cross-compilation, cross- configuration and cross-building so that it appears as native to the package being built. For emulating the device hardware dependent features, there are two partly overlapping alternatives: - Use a HW emulator on which you can run the software built with Sbox. - Qemu is far away from being able to emulate the whole ARM device (currently it emulates just most of the user-space stuff and calls the host kernel for rest), and AFAIK there are no better Open Source alternatives for ARM emulation - Use an x86 emulator into which you can boot the enviroment - UML would be nice candinate for this, I think it now supports running having rootfs on a normal directory so that you don't need to create a disk image first - This requires that all the necessary ARM HW software APIs are available (see below) also for x86 - With HW emulators the display emulation is a bit of a problem, and often need to use X over network. Maintaining separate X server (with the same features as on the device) that runs on an emulated x86 (i.e. different HW) would be quite a bit of effort. Xephyr X server is much nicer as it doesn't require HW support, it works on top of desktop X server (Note: Xnest is not an X server, it's a proxy that takes its features from the underlying X server) - Provide dummy versions of the necessary ARM HW software APIs for audio, battery, connectivity (BT, WLAN...), mmc etc. Of the audio stuff, ESD (used by SDL) should AFAIK work in the x86 development. I think the battery & mmc APIs are D-BUS based so emulating them with e.g. dbus-send "should" be possible. > ... it isn't much better than saying "compile using these header files > and cross-compile by changing your makefile in this way". As a person who was involved in making Scratchbox... I see that you haven't tried to: 1. cross-configure Autotools (autoconf, automake etc) using Linux desktop software, nor tried to 2. cross-build Debian packages 1) Is something that only OpenEmbedded provides in addition to Sbox and even with OE, you need to create a specific recipe for the package build to succeed (I think). For problems with SW using Autotools, see: http://www.scratchbox.org/documentation/general/tutorials/explained.html 2) Is something that nothing else besides Scratchbox has managed to do. Everybody else is building Debian packages natively, possibly by using distcc that utilizes cross-compilers for compiling the source. However everything related to Debian scripts, configure etc, is run natively (i.e. slowly if at all) by everybody who's not using Sbox. > I'll admit the last time I played with handheld development was on a > Palm emulator, which felt much more complete - maemo is like flying > blind. Personally I would also like to see all the platform APIs to be available on x86 as debugging problems is so much easier on x86. There are much better debugging tools available for x86 and using them doesn't require re-compiling all the SW you're debugging... - Eero
- Previous message: [maemo-developers] Re: [fbreader] ZBedic integration
- Next message: [maemo-developers] Scratchbox is not an emulator
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]