VOGONS


First post, by Saleck

User metadata
Rank Newbie
Rank
Newbie

Hello again 😀
I'm a linux newbie but I'm working for a company to help them get their DOS Games on Steam. I've been trying to get DOSBox Daum working on the following Operating Systems:

Ubuntu 12.04 LTS
Ubuntu 12.10
Ubuntu 13.04
Kubuntu 13.04

Every single operating system I try it on results in failure, the program will simply not start no matter what I do.

Running dosbox in the terminal gives me the following error:

dosbox_linux/dosbox: error while loading shared libraries: libSDL_sound-1.0.so.1: cannot open shared object file: No such file or directory

Running the ldd command gives me the following information:

ldd ~/.local/Game/dosbox_linux/dosbox
linux-vdso.so.1 => (0x00007fffa45aa000)
libSDL_sound-1.0.so.1 => not found
libasound.so.2 => /usr/lib/x86_64-linux-gnu/libasound.so.2 (0x00007fd09f62f000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fd09f411000)
libSDL-1.2.so.0 => /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0 (0x00007fd09f178000)
libpng12.so.0 => /lib/x86_64-linux-gnu/libpng12.so.0 (0x00007fd09ef50000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fd09ed38000)
libSDL_net-1.2.so.0 => not found
libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007fd09ea03000)
libGL.so.1 => /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 (0x00007fd09e79c000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fd09e49c000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fd09e1a0000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fd09df89000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fd09dbca000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fd09d9c6000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fd09d7bd000)
/lib64/ld-linux-x86-64.so.2 (0x00007fd09f92f000)
libpulse-simple.so.0 => /usr/lib/x86_64-linux-gnu/libpulse-simple.so.0 (0x00007fd09d5b9000)
libpulse.so.0 => /usr/lib/x86_64-linux-gnu/libpulse.so.0 (0x00007fd09d371000)
libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007fd09d15f000)
libcaca.so.0 => /usr/lib/x86_64-linux-gnu/libcaca.so.0 (0x00007fd09ce94000)
libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007fd09cc76000)
libglapi.so.0 => /usr/lib/x86_64-linux-gnu/libglapi.so.0 (0x00007fd09ca50000)
libXdamage.so.1 => /usr/lib/x86_64-linux-gnu/libXdamage.so.1 (0x00007fd09c84d000)
libXfixes.so.3 => /usr/lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007fd09c647000)
libX11-xcb.so.1 => /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1 (0x00007fd09c444000)
libxcb-glx.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0 (0x00007fd09c22d000)
libXxf86vm.so.1 => /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1 (0x00007fd09c028000)
libdrm.so.2 => /usr/lib/x86_64-linux-gnu/libdrm.so.2 (0x00007fd09be1c000)
libpulsecommon-1.1.so => /usr/lib/x86_64-linux-gnu/libpulsecommon-1.1.so (0x00007fd09bbbe000)
libjson.so.0 => /usr/lib/x86_64-linux-gnu/libjson.so.0 (0x00007fd09b9b5000)
libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007fd09b771000)
libslang.so.2 => /lib/x86_64-linux-gnu/libslang.so.2 (0x00007fd09b400000)
libncursesw.so.5 => /lib/x86_64-linux-gnu/libncursesw.so.5 (0x00007fd09b1d2000)
libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007fd09afab000)
libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007fd09ada8000)
libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007fd09aba1000)
libwrap.so.0 => /lib/x86_64-linux-gnu/libwrap.so.0 (0x00007fd09a998000)
libsndfile.so.1 => /usr/lib/x86_64-linux-gnu/libsndfile.so.1 (0x00007fd09a730000)
libasyncns.so.0 => /usr/lib/x86_64-linux-gnu/libasyncns.so.0 (0x00007fd09a52a000)
libnsl.so.1 => /lib/x86_64-linux-gnu/libnsl.so.1 (0x00007fd09a30f000)
libFLAC.so.8 => /usr/lib/x86_64-linux-gnu/libFLAC.so.8 (0x00007fd09a0c5000)
libvorbisenc.so.2 => /usr/lib/x86_64-linux-gnu/libvorbisenc.so.2 (0x00007fd099bf6000)
libvorbis.so.0 => /usr/lib/x86_64-linux-gnu/libvorbis.so.0 (0x00007fd0999c9000)
libogg.so.0 => /usr/lib/x86_64-linux-gnu/libogg.so.0 (0x00007fd0997c2000)
libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007fd0995a6000)

If anyone can give me some information on how to fix this problem, then I would be very grateful.

Reply 1 of 20, by Jorpho

User metadata
Rank l33t++
Rank
l33t++

Looks like you need to install libsdl (or other related packages) via your package manager.
http://miltonkowalewski.blogspot.ca/2012/06/i … -in-ubuntu.html
https://bugs.launchpad.net/ubuntu/+source/dosbox/+bug/49505

Generally in situations such as this, you can go to http://packages.ubuntu.com/ , type in the name of a missing file in "Search the contents of packages" , and then use Apt to get the package you need.

Reply 3 of 20, by Saleck

User metadata
Rank Newbie
Rank
Newbie

OK I followed the instructions for installing SDL and nothing changed. libsdl_sound-1.0 could still not be found.

I tried installing libsdl-sound1.2 and that seemed to solve the problem 😀

But now DOSBox is asking for libfreetype.so.6.

I installed this - http://packages.ubuntu.com/raring/libfreetype6
which has broken my Package Catalouge and it currently can't fix itself.

Reply 4 of 20, by NY00123

User metadata
Rank Member
Rank
Member

Maybe such a command from a terminal can help with solving broken dependencies (to be prefixed with "sudo" as usual):

apt-get -f install

I don't know if it is the case, but if you downloaded a package from that website manually, it worths you download one for the correct architecture and version of the Ubuntu installation; Or even better just use apt or one of these GUIs for locating the desired package and then installing it.

Reply 5 of 20, by Jorpho

User metadata
Rank l33t++
Rank
l33t++
Saleck wrote:

I installed this - http://packages.ubuntu.com/raring/libfreetype6
which has broken my Package Catalouge and it currently can't fix itself.

Generally, you should always try to use apt-get to install packages first. Downloading a package from somewhere and installing it should be a last resort.

Reply 6 of 20, by Saleck

User metadata
Rank Newbie
Rank
Newbie

OK after much cursing of luck, I formatted and started again.
After installing libsdl-sound1.2, dosbox daum is now telling me:

error while loading shared libraries: libSDL_sound-1.0.so.1: wrong ELF class: ELFCLASS64

I'm running 64bit Ubuntu 12.04.2 right now so I don't know what the problem is. Is Dosbox Daum 64bit only? or have I installed the wrong libraries?

Reply 8 of 20, by Jorpho

User metadata
Rank l33t++
Rank
l33t++
Saleck wrote:

After installing libsdl-sound1.2

Did you use apt-get, or did you install the package you manually downloaded?

Reply 9 of 20, by Saleck

User metadata
Rank Newbie
Rank
Newbie

I used-apt get.

So a 32bit app won't run on a 64bit machine? that's... unheard of in Windows.

It seems to be becoming clear that, outside of Windows, this build is unsuitable for my intentions.

Reply 10 of 20, by NY00123

User metadata
Rank Member
Rank
Member

Just a minor note: I believe the reason lots of things got broken is that, well, lots of things depend on libfreetype6.

In fact, it was the case that a whole installation of some Linux distribution (or at least the GUI parts) could stop working as expected due to the way they used the freetype library. For more details one may check this: http://freetype.sourceforge.net/freetype2/fre … type-2.2.0.html

Note that it is, *probably*, not relevant to the specific case discussed here, although the similarities are apparent.

Reply 11 of 20, by NY00123

User metadata
Rank Member
Rank
Member
Saleck wrote:

So a 32bit app won't run on a 64bit machine? that's... unheard of in Windows.

Wrong. An application targeting the i386 (32-bit) architecture needs shared libraries targeting i386 (if any is used). Ditto for x86_64.

Beginning with Ubuntu 12.04 and based on similar work done for Debian, Multiarch-ready packages containing shared libraries have gradually been constructed. However, 12.04 contains just a few of these (relatively). 12.10 appears to have much more, even letting you install a 32-bit variant of DOSBox from the repositories without breaking 64-bit dependencies (although not actually tested by me), and 13.04 may have even more of these.

Last edited by NY00123 on 2013-06-21, 20:55. Edited 2 times in total.

Reply 12 of 20, by Dominus

User metadata
Rank DOSBox Moderator
Rank
DOSBox Moderator

So a 32bit app won't run on a 64bit machine? that's... unheard of in Windows.

Yes and no, just looked at Ykhwong's page and the build is 32bit and you can't just run a 32bit program in a 64bit environment if all the dependencies are only 64bit.

BUT when you look at the file from Ykhwong, there is a folder called LIBS with all the needed libs already present 😀
So, you might try to copy all those files to /usr/lib32
And then adjust the permissions as well 😀

Windows 3.1x guide for DOSBox
60 seconds guide to DOSBox
DOSBox SVN snapshot for macOS (10.4-11.x ppc/intel 32/64bit) notarized for gatekeeper

Reply 13 of 20, by NY00123

User metadata
Rank Member
Rank
Member
Dominus wrote:

BUT when you look at the file from Ykhwong, there is a folder called LIBS with all the needed libs already present 😀
So, you might try to copy all those files to /usr/lib32
And then adjust the permissions as well 😀

True. Although one should better check that nothing essential is overwritten in /usr/lib32 first.

Even better, try something like this instead of copying the shared libraries:
LD_LIBRARY_PATH=LIBS ./dosbox

Finally, if it isn't working then you may wish to fetch the 32-bit shared libraries via packages from repositories, as suggested before, hoping they are all multiarch-ready. So you may have more luck on Ubuntu 12.10 and later.

Reply 14 of 20, by Jorpho

User metadata
Rank l33t++
Rank
l33t++
Saleck wrote:

It seems to be becoming clear that, outside of Windows, this build is unsuitable for my intentions.

If you plan to keep using Linux, you should expect to see a lot of problems of this nature ruining your day one way or another.

Reply 15 of 20, by Saleck

User metadata
Rank Newbie
Rank
Newbie
NY00123 wrote:

Even better, try something like this instead of copying the shared libraries:
LD_LIBRARY_PATH=LIBS ./dosbox

This sounds like the most ideal, solution 😀 The less copying of libraries on machines, the better for everyone. Where does this line of code go? in the Terminal? I tried in the Terminal and just get the ELF64 error again 🙁

Jorpho wrote:

If you plan to keep using Linux, you should expect to see a lot of problems of this nature ruining your day one way or another.

It's not really me I'm concerned about. I'm more concerned about the possibility of breaking other people's OSes if something goes wrong 😉

Reply 16 of 20, by NY00123

User metadata
Rank Member
Rank
Member
Saleck wrote:
NY00123 wrote:

Even better, try something like this instead of copying the shared libraries:
LD_LIBRARY_PATH=LIBS ./dosbox

This sounds like the most ideal, solution 😀 The less copying of libraries on machines, the better for everyone. Where do non-GNU/Linux platformes this line of code go? in the Terminal? I tried in the Terminal and just get the ELF64 error again 🙁

Yeah, that should be typed from the terminal. But first you need to change to the location of the DOSBox executable. In other words, type something like this:

cd /path/to/dosbox_ykhwong
LD_LIBRARY_PATH=LIBS ./dosbox

If there is still an error then it's better you post the exact error message as-is.

Oh and, whenever apt is used you should read what it is going to do before confirming, if any confirmation is required. Maybe it tries to remove packages you rather want to keep for some strange reason (e.g. due to some involved package not being multiarch-ready).

And again, your installation has broken probably since lots of things depend on freetype. To compare, I can tell you surely do *not* want to remove the C runtime library (probably applying to platforms differing from GNU/Linux as well).

Reply 17 of 20, by Saleck

User metadata
Rank Newbie
Rank
Newbie
NY00123 wrote:
Yeah, that should be typed from the terminal. But first you need to change to the location of the DOSBox executable. In other wo […]
Show full quote

Yeah, that should be typed from the terminal. But first you need to change to the location of the DOSBox executable. In other words, type something like this:

cd /path/to/dosbox_ykhwong
LD_LIBRARY_PATH=LIBS ./dosbox

If there is still an error then it's better you post the exact error message as-is.

Success! It runs really well on Ubuntu 12.04!
I immediately tried to test it on Kubuntu 13.04 however and the Konsole gave me the following error:

Segmentation fault (core dumped)

Doesn't sound too good. An initial search of this message tells me something about Invalid Memory 🙁 I'm not sure on where to go from here.
Also there seems to be no MIDI music playing for the game. I'm guessing the user would have to install MIDI software like Timidity and PMIDI in order to hear the game's music or follow some kind of tutorial like this > http://www.remastersys.com/forums/index.php?topic=2733.0

Nevertheless, its getting closer 😀 thanks all for your patience with me so far.

Reply 18 of 20, by Jorpho

User metadata
Rank l33t++
Rank
l33t++
Saleck wrote:
Doesn't sound too good. An initial search of this message tells me something about Invalid Memory :( I'm not sure on where to go […]
Show full quote
Segmentation fault (core dumped)

Doesn't sound too good. An initial search of this message tells me something about Invalid Memory 🙁 I'm not sure on where to go from here.

Segmentation faults can be caused by any number of things. Sometimes you can get an indication of what went wrong by starting the program in gdb and running a backtrace. See http://www.cs.cmu.edu/~gilpin/tutorial/ for a good example.

Reply 19 of 20, by gulikoza

User metadata
Rank Oldbie
Rank
Oldbie

This is the core of the issue. Linux is not Windows. A different version of the library or even a different compiler that was used to build the library, can cause the program to stop functioning. I've seen cases where a library update on the same system broke programs...

Things simply are not compatible in this way...if you want to make it work - recompile the source. The precompiled binary will only work on systems that are similar to the machine used to compile it.

http://www.si-gamer.net/gulikoza