x64 Code won't launch XOrg
Opened this issue · 1 comments
The x32 code will launch XOrg with the IceWM desktop, but the Windows x64 build just hangs.
So far I discover that XOrg's input_lock/input_unlock functions will call pthread_mutex_lock/pthread_mutex_unlock. When it calls unlock it is not finding the correct thread id, which causes the mutex to fail to unlock. This happens around the 3rd or 4th time it is called.
This is the pthread_mutex_unlock line that fails
if (mutex->__data.__owner != THREAD_GETMEM (THREAD_SELF, tid)) return EPERM;
This is the asm instruction that gets the thread id. In this case the current thread is 0xD, and this put 0xF into Eax.
D0769E15 Mov Eax, DWORD PTR [GS:68]
You can try use your old Framebuffer code (/dev/fb), or get information from this repo: https://github.com/kpocza/LoWe/blob/master/src/LoWeAgent/DeviceHandlers/DeviceHandlerFrameBuffer.cpp
It's was made for WSL1 before XServer method is revealed, but it may still useful to you.