Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1815360
  • 博文数量: 473
  • 博客积分: 13997
  • 博客等级: 上将
  • 技术积分: 5953
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-22 11:52
文章分类

全部博文(473)

文章存档

2014年(8)

2013年(38)

2012年(95)

2011年(181)

2010年(151)

分类: LINUX

2012-02-10 12:53:37

Motivation

Windows apps are mostly compiled for x86 and they won't run on ARM with bare Wine, so this is not our motivation. The main goal of porting Wine to ARM is to be able to compile it and run winelib-apps. There are also other possible goals, but they need some more brainstorming:

  • use the finished port as a base for something like a WineCE, which might be able to run PocketPC/WinCE/WinMob apps. Actual Problem is that all CE apps come along without relocation table, so they should be loaded at their baseaddress or we have to do some relocation magic.

  • run the assembler parts of x86 in qemu and call function in Wine compiled for ARM, which might speed up some things (darwine tried that before, but they stopped because the byteswapping (big endian <-> little endian) was too much work, but ARM is mostly little endian, so we have a chance if everything works fine with packed structures. I already gathered some information how darwine tried to do it)

Todo
  • (./) libs/port/interlocked.c: get multiarch ready

  • (./) libs/wine/port.c: add assembler parts

  • (./) add assembler parts in winebuild

  • (./) find the problem with wineboot

  • (./) rebase the patches to current git

  • (./) make some tools and dlls ARM ready (step by step, mostly easy so will do it when its time has come)

  • (./) turn the debugger stuff in windbg and dbghelp.dll from stubs to implementation for ARM (mostly done)

  • add the disassembler, work in progress

Status
  • First patch was September 18. 2009, final patchset sent September 18. 2010 and they got in Wine-1.3.4
  • It works really well.
  • Already ported Putty to ARM.
  • On ARM-Ubuntu it most likely will not run because of compiler problems, so crosscompile (see below)
  • Wine on ARM already get's packaged:

Crosscompiling
  • Crosscompiling Wine for ARM is possible, but might not always work
  • Better compile directly on the target device if possible, otherwise use

News Issues

Since Wine-1.3.4 there are much news around, which partially have issues:

Wine supports WinCE

thats wrong. You cannot run WinCE Apps with Wine, even if i got some success locally with much modifications it is still not in git and might never get in.

the WineARM-Team

There is no WineARM-Team, I () worked on it alone, but special thanks goes to Colin Fowler for making the interlocked stuff multi-arch ready and to for writing me some "distcc with qemu" scripts, which speed up my compiling.

What means "Winelib now supports the ARM platform"?

You can port a Windows App to ARM using Winelib if you got the source of the App. You cannot run "normal" Windows Apps on ARM yet.

x86 per qemu

If you want to try running x86 apps on ARM then the old qemu manual had that hint:

  • Ensure that you have a working QEMU with the x86 glibc distribution (see previous section). In order to verify it, you must be able to do:
    • qemu-i386 /usr/local/qemu-i386/bin/ls-i386
  • Download the binary x86 Wine install (`qemu-XXX-i386-wine.tar.gz' on the QEMU web page).
  • Configure Wine on your account. Look at the provided script `/usr/local/qemu-i386/@/bin/wine-conf.sh'. Your previous ${HOME}/.wine directory is saved to ${HOME}/.wine.org.
  • Then you can try the example `putty.exe':
    • qemu-i386 /usr/local/qemu-i386/wine/bin/wine /usr/local/qemu-i386/wine/c/Program\ Files/putty.exe

qemu-XXX-i386-wine.tar.gz seems not to be available anymore and actually there is a bug in qemu, so it can't work ().

See also

in Wine

Example use of for running x86 code:

Much earlier, there was some experience using Qemu to run the WINE x86 binary under Zaurus's ARM Debian:

Qemu Backend success story: and

Mixed topic, including ARM discussions:

Some x86-to-ARM translation strategies were also discussed:

Replacing X11 backend driver with SDL (mostly for Android):
阅读(1322) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~