This is for you DIY Crossover junkies. I've been using Crossover for about six months now and before that PlayOnLinux and Wine. I'm not an expert just experienced. I recently re-installed Ubuntu and therefore had to install Crossover from scratch and had forgotten everything I did to get my misc programs/apps to run. Hopefully some of these tips can help others.
If you have just installed Crossover you've probably seen the red (orange?) underline missing file(s) below when installing programs under Tools->Manage Bottles
The easiest way to track down these missing files:
cxdiag --diag
http://www.codeweavers.com/support/wiki/diag
You'll need these libraries and you can use applications like aptitude and synaptic to get them installed.
Recently, I'm using Ubuntu 14.04 LTS BETA and Crossover 13.1. I have a unique situation where my graphics card is old and proprietary drivers don't work. Been working on trying to get Sketchup 2014 to run. It says opengl is not found. Games will not run either. Currently my display is using the "radeon" instead of "fglrx" driver (legacy drivers fail to install). According to:
http://www.codeweavers.com/support/wiki/Diag/OpenglNotWorking
http://www.codeweavers.com/support/wiki/Diag/MissingLibGL
my options are to use mesa?
http://en.wikipedia.org/wiki/Mesa_(computer_graphics)
I've installed about every i386 mesa / opengl / libxcb / dev / etc type library. Still hunting for solutions. Here are some of the things I've tried:
http://www.codeweavers.com/support/wiki/linux/linuxtutorial/unsupported_deps
http://www.codeweavers.com/support/wiki/mac/mactutorial/submittechsupportloghttp://www.codeweavers.com/support/wiki/linux/linuxtutorial/debug
- go to Tools->Manage Bottles.
- then click on your bottle and click the bottle tab.
- click Run Command.
- click and find the executable that will not run.
- now expand Debug Options.
- check create log file.
- in the other text box type: +loaddll
- click run.
- choose where to save the file.
Check out post #7:
http://www.codeweavers.com/support/forums/general/?t=27;forumcurPos=650;msg=112986
You'll see that you can also type into the other text box: +trace,+loaddll
Just because I was curious I checked everything and added both other's.
It resulted in a 1GB text file. Eak!
But I learned tons of behind the scenes stuff glancing through the log file.
I came across this error:
err:wgl:has_opengl Failed to load libGL: /usr/lib/i386-linux-gnu/libxcb-dri3.so.0: undefined symbol: xcb_send_fd
err:wgl:has_opengl OpenGL support is disabled.
So I Google'd it. Here are some of my findings:
https://bugs.launchpad.net/ubuntu/+source/libxcb/+bug/1265642
https://bugs.freedesktop.org/show_bug.cgi?id=73237
found where the library was in the log report mentioned above:
user@workstation:/usr/lib/i386-linux-gnu$ ls -la libxcb-dri3.*
-rw-r--r-- 1 root root 6290 Jan 15 02:34 libxcb-dri3.a
lrwxrwxrwx 1 root root 20 Jan 15 02:33 libxcb-dri3.so -> libxcb-dri3.so.0.0.0
lrwxrwxrwx 1 root root 20 Jan 15 02:33 libxcb-dri3.so.0 -> libxcb-dri3.so.0.0.0
-rw-r--r-- 1 root root 9616 Jan 15 02:34 libxcb-dri3.so.0.0.0
Then running the following command revealed:
user@workstation:/usr/lib/i386-linux-gnu$ nm -D libxcb-dri3.so.0.0.0 | grep xcb_send_fd
U xcb_send_fd
Good! But not good. I found, like the bugs stated, that the symbol isn't defined (correct verbiage?)
So you can run:
user@workstation:/usr/lib/i386-linux-gnu$ ldd libxcb-dri3.so.0.0.0
linux-gate.so.1 => (0xf7737000)
libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xf76e9000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf7539000)
libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xf7534000)
libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xf752d000)
/lib/ld-linux.so.2 (0xf7738000)
You can notice that line 3 says: libxcb.so.1
So you can run:
user@workstation:/usr/lib/i386-linux-gnu$ nm -D libxcb.so.1 | grep xcb_send_fd
00009340 T xcb_send_fd
According to the bug reports there may be or the program is using
an outdated xcb library or need to be pointed to the correct one?
Not sure where to go from here.
Any how problem not solved yet, and yes could use any tips or hints... BUT!
Conclusion: Here's a recap of some helpful info.
- Install as many Crossover required libraries as possible
- Use the Run command and Debug options
- Use the log files to hunt down missing libraries or show stoppers
- These commands are your friend: "nm -D" and "ldd"
- First get OpenGL apps working like: glxgears and glchess
(And yes glxgears works along with OpenGL Linux apps)
Hopefully, this will help or at least encourage others
to take some extra steps when programs don't work out of the box. -Jonathan