OS2 World Community Forum

WebSite Information => Article Discussions => Topic started by: Martin Iturbide on April 16, 2021, 06:37:49 pm

Title: Run IBM OS/2 on Android using Limbo PC Emulator
Post by: Martin Iturbide on April 16, 2021, 06:37:49 pm
Hi

I just noticed on social networks this YouTube Video.
- Run IBM OS/2 on Android using Limbo PC Emulator (https://www.youtube.com/watch?v=7qE4JpPF3uM)

The author doesn't not seems experienced with OS/2, but it is interesting that he experimented doing this.

Limbo PC Emulator is based in QEMU.

Regards
Title: Re: Run IBM OS/2 on Android using Limbo PC Emulator
Post by: ivan on April 17, 2021, 03:45:00 am
Hi Martin,

Interesting I might try something like that on one of my tablets.

Another point, it would be nice if we managed to get an updated version of QEMU that runs on OS/2 - the old version doesn't like my new hardware.
Title: Re: Run IBM OS/2 on Android using Limbo PC Emulator
Post by: Dave Yeo on April 17, 2021, 05:37:28 am
I just took a quick look at the latest QEMU, it would take work getting it to compile. For example, the configure script is hand written by Fabrice Bellard, so probably not too different from FFmpeg's configure but definitely no OS/2 support currently.
Perhaps if I get bored, I'll see if I can get it to compile, but right off, running configure dies with "ERROR: main directory cannot contain spaces nor colons" so it doesn't like that our sh's PWD returns the drive letter along with the current directory.
Guess the first step would be to find the patches that were used for the last port.
Title: Re: Run IBM OS/2 on Android using Limbo PC Emulator
Post by: Olafur Gunnlaugsson on April 17, 2021, 08:01:47 am
https://www.youtube.com/watch?v=8EwXMd72CY8

Older similar video
Title: Re: Run IBM OS/2 on Android using Limbo PC Emulator
Post by: ivan on April 17, 2021, 11:46:11 am
Hi Dave,

It would be good if you did manage to port QEMU I could then stop having several computers running at once ;)

There are the zip files for the version that used to work for me on https://ecsoft2.org/qemu (https://ecsoft2.org/qemu)  it has a patches dir but since it is from 2009 I don't know if they would be of any use with the present version.
Title: Re: Run IBM OS/2 on Android using Limbo PC Emulator
Post by: Mentore on April 17, 2021, 07:39:16 pm
I just took a quick look at the latest QEMU, it would take work getting it to compile. For example, the configure script is hand written by Fabrice Bellard, so probably not too different from FFmpeg's configure but definitely no OS/2 support currently.
Perhaps if I get bored, I'll see if I can get it to compile, but right off, running configure dies with "ERROR: main directory cannot contain spaces nor colons" so it doesn't like that our sh's PWD returns the drive letter along with the current directory.
Guess the first step would be to find the patches that were used for the last port.

A newer QEMU would be really interesting IMHO. Also this PC emulator could be interesting to test and work on ArcaOS NLS, which I'm working on but HORRIBLY slowly due to work and many other issues (personal life). I'll give it a try.

Mentore
Title: Re: Run IBM OS/2 on Android using Limbo PC Emulator
Post by: Paul Smedley on April 18, 2021, 12:09:41 am
@Dave - porting Qemu might be interesting - any old patches would definitely help. I'm pretty busy right now but sing out if you want me to take a look...
Title: Re: Run IBM OS/2 on Android using Limbo PC Emulator
Post by: Dave Yeo on April 18, 2021, 12:51:35 am
It looks like the patches are a good start, and some of them I would never have come up with. Even the original 0.11.0 port was missing a lot of functionality, audio (SDL), network, physical device such as CD, USB, Kernel mode driver, etc.
I'll try building the 0.11.0 first I guess.
@Ivan, what problems were you having?
Title: Re: Run IBM OS/2 on Android using Limbo PC Emulator
Post by: Bernhard Pöttinger on April 18, 2021, 08:59:45 am
having an actual qemu would be very nice. I have managed to run OS/2 4/3/2.1, FreeDOS and Windows 95 on our old qemu. networking does not work; with "user" - networking I get IP addresses but I cannot connect to any service; I think something is broken in the network emulation.

best regards
Bernhard
Title: Re: Run IBM OS/2 on Android using Limbo PC Emulator
Post by: Ibrahim Hakeem on April 18, 2021, 09:10:21 am
Agreeing to the sentiment shared here. QEMU is much less clunky as opposed to VirtualBox, if we could have a build with working audio (and maybe even networking), it would unlock a whole world of potential for many of us who run ArcaOS as a daily driver on one or more of our main machines.
Title: Re: Run IBM OS/2 on Android using Limbo PC Emulator
Post by: Dave Yeo on April 18, 2021, 09:47:57 am
Quickly looking, it seems the networking consisted of stubs so it would compile and seem to work without working.
kLIBC has improved a lot since this port and the porter was obviously used to EMX so may have missed things. Ideally things just work.
I'm having problems just displaying the gitlab page, probably going to have to clone the git tree on Linux, it looks big.
Title: Re: Run IBM OS/2 on Android using Limbo PC Emulator
Post by: ivan on April 18, 2021, 06:53:28 pm
Hi Dave,

For me moving over to multi core processors with built in graphics resulted in a total system lockup, big reset button time.  After the fifth lockup I resurrected one of my old comps and it ran on there with no problems as it had before.

Sorry I can't be more helpful.
Title: Re: Run IBM OS/2 on Android using Limbo PC Emulator
Post by: Ibrahim Hakeem on April 26, 2021, 08:58:13 am
Sorry to bump the thread, I just wanted to find out if there have been any potential updates on this front?
Title: Re: Run IBM OS/2 on Android using Limbo PC Emulator
Post by: Dave Yeo on April 26, 2021, 04:13:04 pm
Not really, the build requirements don't currently exist on our platform, namely Ninja, which works sorta like make.
It's also 1.4 GB's of source.
Title: Re: Run IBM OS/2 on Android using Limbo PC Emulator
Post by: Ibrahim Hakeem on April 26, 2021, 09:38:09 pm
Not really, the build requirements don't currently exist on our platform, namely Ninja, which works sorta like make.
It's also 1.4 GB's of source.

Ah shucks, it did seem too good to be easily possible honestly. Thanks for looking into it anyway, perhaps we'll get a new native x86 emulator in the future... 'til then it's back to Virtualbox  :P
Title: Re: Run IBM OS/2 on Android using Limbo PC Emulator
Post by: Nicolas Wells on May 06, 2021, 10:17:40 pm
I have some experience in building Qemu from qemu.org on Linux for x86 and ARM-Linux as well as for Windows via Msys2. You can also build qemu in termux on android.

It does take a fair amount of space and requirements however the executables and program with documentation is typically less than 300-500MB.

Most of the older source versions are still available via qemu.org and its is sufficient to build with older source if needed. Ie if you dont want to build ninja first.

The current version is 5.x and most Linux distros still only include 2.4.x. So there is no reason to stick to a specific version if its causing build requirement headaches.

Qemu typically needs a kernel level hypervisor or accelerator to make full use of the hosts CPU capabilities.

IE Qemu KVM for X86 Linux and Qemu-WHPX for using windows hypervisor. Qemu can use the arm kvm modules in linux for arm guests.

I highly recommend building to a temp/ram drive, as that will save you an hour of time at least. I am just a fan of qemu and just recently bought ArcaOS for myself.
Title: Re: Run IBM OS/2 on Android using Limbo PC Emulator
Post by: Martin Iturbide on May 06, 2021, 10:25:15 pm
I am just a fan of qemu and just recently bought ArcaOS for myself.

Welcome to the OS2World forum !! Welcome to the OS/2 Community !!!
I get very happy to get new people around  ;D

Regards
Title: Re: Run IBM OS/2 on Android using Limbo PC Emulator
Post by: Ibrahim Hakeem on May 07, 2021, 03:42:39 am
I have some experience in building Qemu from qemu.org on Linux for x86 and ARM-Linux as well as for Windows via Msys2. You can also build qemu in termux on android.

It does take a fair amount of space and requirements however the executables and program with documentation is typically less than 300-500MB.

Most of the older source versions are still available via qemu.org and its is sufficient to build with older source if needed. Ie if you dont want to build ninja first.

The current version is 5.x and most Linux distros still only include 2.4.x. So there is no reason to stick to a specific version if its causing build requirement headaches.

Qemu typically needs a kernel level hypervisor or accelerator to make full use of the hosts CPU capabilities.


Thank you kindly for your input Nicolas. I did a bit of Googling and this adds up. it would appear the Qemu project switched over to Ninja as recently as version 5.2 at Dec 2020. If I'm not mistaken, any earlier versions should be compileable for OS/2 with Cmake/Sphinx. Not to mention - if most Linux distros are still running version 2.4.x, there is probably good reason for it. It would probably be easier to compile an earlier version too for what it's worth.
Title: Re: Run IBM OS/2 on Android using Limbo PC Emulator
Post by: Dave Yeo on May 07, 2021, 04:04:40 am
I guess I should start by looking at ver 2.4.x (latest). I don't have the skills to write a kernel driver though, it would end being a port similar to what we have, hopefully without the SMP issues that Ivan reported.
The git repository is weird, with a whole bunch of submodules and I have no experience dealing with submodules so it seems that I can't simply check out the right tag. Git does make development easier, create a branch and commit changes.
Title: Re: Run IBM OS/2 on Android using Limbo PC Emulator
Post by: Ibrahim Hakeem on May 07, 2021, 04:21:37 am
I guess I should start by looking at ver 2.4.x (latest). I don't have the skills to write a kernel driver though, it would end being a port similar to what we have, hopefully without the SMP issues that Ivan reported.
The git repository is weird, with a whole bunch of submodules and I have no experience dealing with submodules so it seems that I can't simply check out the right tag. Git does make development easier, create a branch and commit changes.

Forgive my ignorance, I'm not too familiar with this end of stuff. Without a kernel driver will things like audio, networking, graphical emulation (specifically DX-style 3d rendering), etc be a possibility? Effectively - what would the limitations/expectations be?
Title: Re: Run IBM OS/2 on Android using Limbo PC Emulator
Post by: Nicolas Wells on May 07, 2021, 04:41:27 am
Qemu version 5.0.1 does not necessarily require ninja, However later versions do. You should be able to manually compile it or bootstrap Ninja if needed for something.

Most Linux distros add patches/backport to maintain features and security and avoid issues with VM's failing due to migration changes. You may want to try 4.20-5.01 if you want to build and avoid ninja.

The kernel driver mainly adds CPU pass through so that its using the hosts CPU capabilities. With HyperV/KVM pass through it can run most Linux Os's and playback youtube video decently if using OpenGL.

It can do some light gaming via OpenGL and Virgl, otherwise you would need to pass through hardware to a VM.  Then its 95+% of Baremetal performance..

I have never had to touch the source code, I just use GCC SDL or GTK then configure and make.. It has its own dependencies. The documentation has linux and windows listed as supported hosts.

Im actually trying to install it in a VM in Linux now because my spare desktop was getting an SMP error and needed TPM cleared on each boot.





Title: Re: Run IBM OS/2 on Android using Limbo PC Emulator
Post by: Dave Yeo on May 07, 2021, 06:29:48 am
Forgive my ignorance, I'm not too familiar with this end of stuff. Without a kernel driver will things like audio, networking, graphical emulation (specifically DX-style 3d rendering), etc be a possibility? Effectively - what would the limitations/expectations be?

Basically it would have the same usability as the previous port, with hopefully the addition of working audio.
Networking would require a TAP driver I believe, which we don't have. Graphical emulation is always going to be limited due to our limited graphics drivers. Speed will be limited without a kernel driver and even with a kernel driver, the OS/2 kernel is missing stuff to take advantage of VT.
There's always the Virtual Box port for some of this stuff. It has some of the same limitations due to lack of Operating System support. Development on the OS/2 kernel basically stopped at the beginning of the century and the last things added were things like fixes for fast CPU's, along with SSEx support and the BEGINLIBPATH/LIBPATHSTRICT stuff for Mozilla development, so different DLLs with the same name could be used.
It's a 1990's operating system dragged into the 21st century.
Title: Re: Run IBM OS/2 on Android using Limbo PC Emulator
Post by: Ibrahim Hakeem on May 07, 2021, 07:34:20 am
Honestly, having audio would be a massive win in of itself compared to the options we've currently got for any post Win3x emulation. I have a feeling that Qemu might also potentially be a bit faster compared to vBox.
Title: Re: Run IBM OS/2 on Android using Limbo PC Emulator
Post by: Nicolas Wells on May 07, 2021, 03:11:44 pm
From Linux Mint 20 using Qemu 5.1.94 with KVM I can install and Run my copy of ArcaOS 5.06.

Audio output, video playback, and internet works.

Essentially I can load up a VM give it 8GB of RAM and 4 dedicated cpu cores and emulate a VESA adapter that uses my hosts GPU for running the video from the OS. I can add more CPUs and RAM as desired.

This works with my monitors resolution seems snappy for input and restarts cleanly. Packages updates without any issues.

I made a 2.5GB ram drive with Tempfs and installed the OS to that.  This is an example config I used.

 ./qemu-system-x86_64 -L . -M q35 -vga virtio --accel kvm -m 8096 -cpu host -smp 4,sockets=1,cores=4,threads=1   -cdrom 'dev/sr0'  -boot menu=on  -device piix4-ide -drive file=/dev/ram0,id=disk1,format=raw,if=none -device ide-hd,drive=disk1  -device e1000,netdev=net0 -netdev user,id=net0   -audiodev pa,id=ad0,out.mixing-engine=on,out.buffer-length=512,timer-period=1000 -device AC97,addr=05,audiodev=ad0

I only have 2 days experience with ArcaOS... Please keep that in mind. There is undoubtedly room for improvement in that config.
Title: Re: Run IBM OS/2 on Android using Limbo PC Emulator
Post by: Tom on May 07, 2021, 06:39:53 pm
Not really, the build requirements don't currently exist on our platform, namely Ninja, which works sorta like make.
It's also 1.4 GB's of source.

While working on qtwebengine, dmik seems to have ported Ninja to OS/2:

https://github.com/bitwiseworks/qtwebengine-os2/issues/2
Title: Re: Run IBM OS/2 on Android using Limbo PC Emulator
Post by: Dave Yeo on May 08, 2021, 02:10:47 am
Not really, the build requirements don't currently exist on our platform, namely Ninja, which works sorta like make.
It's also 1.4 GB's of source.

While working on qtwebengine, dmik seems to have ported Ninja to OS/2:

https://github.com/bitwiseworks/qtwebengine-os2/issues/2

That's what I thought, but I couldn't find it and attempting to build QT5, configure didn't mind too much the lack of Ninja. It does look like it should be in the tree judging by the commit but I can't find it.
Title: Re: Run IBM OS/2 on Android using Limbo PC Emulator
Post by: Tom on May 08, 2021, 11:07:19 am
Not really, the build requirements don't currently exist on our platform, namely Ninja, which works sorta like make.
It's also 1.4 GB's of source.

While working on qtwebengine, dmik seems to have ported Ninja to OS/2:

https://github.com/bitwiseworks/qtwebengine-os2/issues/2

That's what I thought, but I couldn't find it and attempting to build QT5, configure didn't mind too much the lack of Ninja. It does look like it should be in the tree judging by the commit but I can't find it.

It seems to be in the tree for qtwebengine-chromium. Is this what you are looking for?

https://github.com/bitwiseworks/qtwebengine-chromium-os2/tree/master/ninja
Title: Re: Run IBM OS/2 on Android using Limbo PC Emulator
Post by: Dave Yeo on May 08, 2021, 06:46:30 pm
Yes, I found it.
I've been looking at the 5.1.0 code base, it is still huge and it would obviously take more time then I currently have available. I'll play with it a bit, get configure running and such but I doubt that I'll put that much effort into it. It was as much curiosity about building it as I don't have that much interest in it, especially considering the limits such as memory on our platform .
Title: Re: Run IBM OS/2 on Android using Limbo PC Emulator
Post by: Ibrahim Hakeem on May 09, 2021, 11:34:14 am
If anybody may be interested, I am willing to start a bounty for a well-rounded release of QEMU under the following conditions:
>Stable enough for everyday use
>Smooth Windows 95/98 emulation
>Audio, preferably SB16 compatible emulation
>Semi-decent video support (I.E, can run something like Flight Simulator 98 at low-mid settings with at least 30 to 40fps)
>A reliable GUI for configuring and launching VMs

Effectively, something that's going to be solid for low-mid range Win9x gaming.

I have a hunch this will most likely be 2.4.x or earlier. Once again like others have said, there's no need to build a newer version that's going to have more compilation related headaches - especially when modern Linux distros are still going off 2.4.x code without any complaint. I understand this will require more effort than a simple compile n' go situation especially with the desired specifications listed, but I believe there to be very viable use-case for a new and reasonably stable release of Qemu for our platform

The goal wouldn't be to replace Virtualbox, but to get up to speed for one ArcaOS's aims of being a good platform for DOS and early Windows emulation, especially in lieu of ArcaOS 5.1 hopefully being on the horizon. It would be really cool to have more usable and up-to-date software for 90's era x86 emulation. Plus I'm sure many of us still wish that this (https://i.imgur.com/e0Kpb8o.gif) wasn't a hoax  :P
Title: Re: Run IBM OS/2 on Android using Limbo PC Emulator
Post by: Martin Iturbide on May 09, 2021, 06:11:33 pm
Hi Ibrahim.
If anybody may be interested, I am willing to start a bounty for a well-rounded release of QEMU...

I support your bounty idea. In my experience I think it will be better to find the developer first, know how much he is asking for the service and then push to get the funds.

Regards
Title: Re: Run IBM OS/2 on Android using Limbo PC Emulator
Post by: Ibrahim Hakeem on May 09, 2021, 07:39:17 pm
Quote
I support your bounty idea. In my experience I think it will be better to find the developer first, know how much he is asking for the service and then push to get the funds.

Fantastic, I really hope we can get the ball rolling here  ;D
I'll go ahead and start a new thread as the topic of this one no longer seems relevant to the current discussion.