Why does wine need a kernel 3G/1G memory split to function?

3

When trying to run wine on stock Raspbian, you get a message like this:

Warning: Memory above 0x80000000 doesn't seem to be accessible. 
Wine requires a 3G/1G user/kernel memory split to work properly.

This is supposedly a kernel setting, which can be configured during compile time. But why does wine need this setting?

And how do other operating systems aside from Linux handle this? E.g. there is wine for OS X. Does it work the same way there?

Arne

Posted 2015-12-25T23:38:01.610

Reputation: 649

It would be better if you explain in your question that you are trying to run wine on exagear. Exagear is shipped with a special build of wine that supports 2g/2g memory split. You should use only this build of wine, not the one from apt-get. – Andrey Rogov – 2016-02-26T01:22:44.583

No, I actually tried running wine from apt-get. Never tried exagear. In the end I managed to run wine, after building my own 3G/1G kernel. But it was really horribly slow, so I stopped that experiment. But if was fun! – Arne – 2016-02-26T21:38:07.253

Answers

-1

Most likely you are running on a 2G/2G split linux kernel. that means 0x0 - 0x80000000 is reserved for userspace, and 0x8000000 to 0xFFFFFFFF is reserved for kernel space.

please use a 1G/3G split linux kernel. then you can access up to 3G from userspace up to 0xC0000000.

Jiangtao Zhang

Posted 2015-12-25T23:38:01.610

Reputation: 1

1That's not actually an answer to the question as asked. The question isn't "why doesn't wine work?", the question was "why does wine need a 3G/1G kernel?". It's a good question. Windows uses a 2G/2G split by default (configurable at boot time), and very few 32-bit Windows programs are designed to care about the memory between 0x80000000 and 0xC0000000. I wouldn't expect it to cause compatibility issues, so why the limitation? – CBHacking – 2016-04-29T00:14:03.563