-
-
Notifications
You must be signed in to change notification settings - Fork 46
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Explore possibility to create ReactOS-based template for Qubes #2809
Comments
ReactOS corresponding issue https://jira.reactos.org/browse/CORE-13358 |
I created a ReactOS HVM in QubesOS. The VM worked out of the box. I tested several applications and functionalities to evaluate potential use cases. Software developed for Windows XP and before works. However, there is no guarantee that software will work. The QubesOS community should work with the ReactOS community to evaluate which use cases and scenarios would be important to support. Skype, Adobe Reader and MS Office support are some of the use cases I had in mind, but maybe there are more. It would be helpful to create a simple survey on the mailing list or something like that to figure out what the community wants. One issue which I run into was that I had to use the VirtualBox image and convert the Tested:
Note: The author's computer does not have Intel VT-d Feel free to look at my notes if you want to reproduce my setup or you want to have more information. |
I posted in the ReactOS forum to promote the idea of QubesOS + ReactOS a little in the ReactOS community: https://www.reactos.org/forum/viewtopic.php?f=2&t=16480 |
Thanks! Just a few comments:
|
Also, some apps I personally consider useful (and which have essentially no Linux alternatives, so one is destined to use Windows to get their functionality):
|
- USB Pass-through: does now work (author's computer don't have Intel
VT-d)
Do you mean USB passthrough, or PCI passthrough of USB controller? USB passthrough would be surprising to work without any further modification of guest OS and it is unrelated to VT-d. PCI passthrough should theoretically work to the same degree as the USB controller works with ReactOS on bare metal.
|
I've tried ReactOS in HVM. Installation was pretty fast, oldschool and without serious issues. It also boots very quickly. The usage itself was like… Well, what's ReactOS advantage over Wine?
First, I have tried to install Firefox. The repository contains pretty outdated versions (I haven't checked if there is any verification of signatures, just tried it and believed everything will be OK). OK, let's install some old version, Firefox updater will make it up-to-date. Yes, updater works pretty automatically, but updated Firefox doesn't. So, I can browse the Internet just with some browser without recent security updates.
I've tried installing DeeControl, and I got probably slightly further than with Wine. But a short while later, I got a BSOD. Never mind, let's try it again. ReactOS hasn't written some changes (DeeControl wasn't even downloaded), but let's try it again. The result is, sadly, the same.
I also had various minor issues, most prominently desynced mouse cursors. (Workaround: hit the edges of virtual screen, cursors get synces.) I also had some graphic artifacts and one boot-time freeze.
Well, I see there must have been huge amount of work done, but frankly, I don't see much practical benefits. Wine is subjectively more stable and Qubes integration is for free. ReactOS in QubesOS might have some niche (maybe for applications that need USB and few other apps), but my experience hasn't been much encouraging. When needing some Windows app, I'd probably try Wine before ReactOS, even if ReactOS integration to Qubes was already done.
|
FWIW, last time I tried Wine (IIRC in Debian 8 AppVM) I was disappointed by the very slow GUI. Admittedly I tested this on a GUI intensive software (the previously mentioned SkyDemon), but the very same software ran much faster on native Windows 7-based AppVM. |
Have you tried this on Fedora? Debian 8 have _very_ old version...
…--
Best Regards,
Marek Marczykowski-Górecki
Invisible Things Lab
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
|
IIRC, there was a specific reason I decided to try on Debian, but I don't remember now what that was... I should try this at some point on Fedora, maybe on 25th this time ;) |
@v6ak what is DeeControl? Could you provide a link to the software. |
@v6ak What method/medium did you use to install ReactOS? |
For me the top reasons to support ReactOS are:
|
You can find more information about tested APPs on current ReactOS release: https://www.reactos.org/wiki/Tests_for_0.4.5 |
Here are more testing results:
Games:
|
In addition I tested the Xen PV Driver: https://www.xenproject.org/developers/teams/windows-pv-drivers.html
However, I don't know how to test if the device driver are working. |
@Jeeppler I've installed ReactOS from BootCD. I've missed Advanced downloads at https://www.reactos.org/download . Well, now I read it did not work for you. DeeControl is controlling software for be3D 3D printers: https://www.ysoft.com/cs/support-and-download |
BTW, the qemu download also contains an image (ReactOS.vmdk). I've converted both VirtualBox and QEMU images and it does not look like there are much differences. The VHD is larger, has more users, additional Internel Explorer and some probably rather formal differences (different time in log files etc.). Maybe in ReactOS/system32/config, there can be some important difference, but a brief look via vbindiff does not suggest any real difference. Screenshot of directory diff (with excluded differences in Documents and Settings): So, there might be no reason to try the QEMU image. |
Hi Joanna :) edit: and by the way you can download daily Builds, => head page, right-sided, more down, clicking on "Daily Builds" => "Download here!" this link it is for you interesting, because they are the daily Builds iso into 7Zip's (you can also write into the Revision textbox "75000 - 75070" with this become you all iso's from 75000 up to 75070 to see.. best regards |
Cross referencing: https://jira.reactos.org/browse/CORE-13358 |
I'm Colin, developer at the ReactOS Project, and I have discussed a possible ReactOS and Qubes collaboration with @marmarek and @woju at FOSDEM in February. I was told that a basic ReactOS AppVM in Qubes only needs standard drivers and they wanted to try out such an installation as the first step. Don't know about its outcome though, so maybe you could comment here. Apart from that, possible ideas for a collaboration include:
These tasks should be of mutual interest to both projects. Furthermore, Qubes and ReactOS also fit well together from the organizational standpoint: ReactOS is backed by the German non-profit organization ReactOS Deutschland e.V. while Qubes has the Invisible Things Lab company behind it. ReactOS Deutschland e.V. is getting a lot of donations from individual people, however - as a non-profit - the only way for it to fund development is granting scholarships (up to ~1000 EUR/month) to students or hiring IT freelancers who invoice us. Hiring developers directly has never been an option for us, but this should be different for Invisible Things Lab. Finally, @vicmarcal of the ReactOS Project also explored possible collaborations with your project earlier. |
Thanks for writing @ColinFinck !
There are a little more technical details about the problem here: https://groups.google.com/d/msgid/qubes-users/20180318152707.GH8712%40mail-itl As of today, Windows support is pretty low on ITL's priority list, so it's unlikely we'll commit significant resources to it. But we're more than happy to help coordinating this work, review code, test things. There are also multiple people in Qubes community interested in this work, maybe someone is able to help here. |
Hi! Victor here. Aside the potential income stream from QubesOS customers willing to be running Windows software, there is a nice opportunity of several Horizon2020 R&D grant opportunities from the EU. These grants could be used to fund the R&D and integration needed for this project. These grants need 3 parties from different countries. The amount that can be requested are up to 3M$, covering 70% of the amount requested. (100% in case all the parties are non-profit ones). QubesOS+ReactOS would be 2, a 3rd one could be one of these potential final companies/customers as part of the pilot phase. This way we could leverage QubesOS plus ReactOS investment in this project. |
the Eu support is a good thing, good to hear/know ! :)) |
@XVilka ReactOS released a couple new releases since I last tested it. I have not done any tests with newer versions of ReactOS on Qubes OS 4+. Do you have anything in particular you want to achieve? For example, run a specific software? |
In my specific case, I'd like to run the old office 2003 on qubes, for
example
…On Fri, Jul 12, 2019 at 10:58 AM Jeppler ***@***.***> wrote:
@XVilka <https://github.com/XVilka> ReactOS released a couple new
releases since I last tested it. I have not done any tests with newer
versions of ReactOS on Qubes OS 4+.
Do you have anything in particular you want to achieve? For example, run a
specific software?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#2809?email_source=notifications&email_token=AAE4D27T5LHT3CXGIF7FUMDP7BIUPA5CNFSM4DLJJR5KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODZZKAAY#issuecomment-510828547>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAE4D253O54MK53C6BGHN3LP7BIUPANCNFSM4DLJJR5A>
.
|
@marmarek @Jeeppler @XVilka @vicmarcal @marmarek : How can we setup a bounty for that so that people just preauth money until a dev provides proof of work? This kind of system is more then needed. Is there another issue opened on that subject? Please tag other people that have worked on this so that the status of this issue is clear. |
Currently, you would set that up yourself, as others have done for #4318.
As far as I know, there is no open issue for a system that is officially sanctioned by the Qubes OS Project (as opposed to the kind of community-run bounty you see on #4318). You are welcome to open such an issue. However, it should acknowledge our policy against donations being tied to feature requests. |
FYI I just created a |
You can add donate cryptocurrency donation daemon that operates without any fee to be able to attach a bounty to this issue without any third-party platform. Another option would be run OpenCollective + GitHub Sponsors. |
@mfc @XVilka : really interesting concept! But just like for #4318, the problem lies the other way around IMHO.
Or am I wrong? |
I'll give some details soon on my current work on integrating ReactOS in Qubes 4.1 but in the mean time, here what I've just sent to @marmarek: |
@fepitre wow, looks good. Can we test it?
|
I'm currently debugging a post-install issue on one laptop with Qubes but I don't have this problem in the setup you can see: KVM -> QubesOS (as VM) -> Reactos as HVM. So I would say you can try by picking a very new WIP R4.1 with dom0 fc32 on openqa.qubes-os.org and try to install the today nightly build of ReactOS. But I would recommend to try on the previous R4.1 with dom0 fc31. It should produce the same result as version for Xen, libvirt and stubdom are the same.
As it's not on my assigned tasks for Qubes, I'm doing this on my free time and I want to go as far as I can on your topic questions. Mostly this is a new and very interesting challenge for me :) |
openqa 4.1 iso from 2-3 days ago is available now, worth trying, @fepitre ? |
We are currently merging and finishing all the dom0-root thin pool split with @marmarek so it's certainly no the latest iteration of merged components but you can give it a try if this is for trying only ReactOS :). Any post-install log of serial console of ReactOS are welcomed. For this, you need to add a serial console to the ReactOS HVM. For example, if you create a HVM called
to be added to the file (to be created with parent folders): |
I just succeeded to install it on my laptop as HVM. The trick was first to setup ROS without network then skipping the detection tool. Shutdown and attach network. Now it remains to understand what is messing. Some talk has been made on chat.reactos.org |
I use the "init" hack to load xvda as a hda - I dont use it (much) but am told ReactOS is solid as a rock. |
Tell us more about the "init" hack? |
You can customise the init in Since the init is a shell script, it's possible to apply these changes to specific qubes, rather than across the board. For example, any qube whose name begins with 'react' will have /dev/xvda on ide bus. The file isn't protected on dom0 updates, so I use a shell script to automate the process. |
I was pointed to the hacks to be implemented directly in future TemplateVM |
If changing disk to IDE is enough to make it fully work, it should be possible to modify it at the libvirt config level, without the need to hack stubdomain. Note we use SCSI disks, because IDE does not support |
An image mount for the |
Someone proposed a TemplateVM? What is missing? |
Someone to do the work of testing, bringup, and maintenance, then getting it approved into the community repos... |
I quickly trialed this on an up-to-date R4.1 on current-testing and kernel-latest (5.8.16-1), Xen 4.14.0-6. My observations:
|
Please retry your experiments with a fresh nightly version. There were a lot of updates! |
|
I gave the latest nightly a quick try under R4.1, unfortunately did not get it to boot after installation. I did not debug but I suspect it has issues installing on the MBR. Boot sector looked somewhat empty after install, used 99% CPU at boot. |
See my message one year ago: https://reactos.org/archives/public/ros-dev/2020-May/019132.html Brief IRC discussion with ReactOS people looks like to be at driver detection. Notably Xen platform. I've never continue this quest because I don't have time. I wish you good luck with some of ReactOS IRC people ;) |
I'd like to hear if this goes anywhere. It seems the ability to create a Windows qube is a phantom, sometimes there and sometimes not, so it would be nice to have an alternative. |
Inspired by this thread: https://twitter.com/reactos/status/863673534710788096
Idea is to distribute ReactOS-based template for Windows AppVMs for Qubes. Specifically a template optimized to run specific MS Windows applications, such as MS Office.
In Qubes 4.1 or 4.2, i.e. when we will have GUI domain, we could even consider using RactOS as an alternate GUI domain, to provide some users with familiar Windows look and feel.
Potential benefits:
Seamless integration for Windows-based AppVMs done right. We have faced lots of troubles when implementing proper seamless mode for MS Windows-based AppVMs. On Linux-based (X-based) AppVMs, we can easily get addresses of all the windows composition buffers and send their PFNs to our GUI daemon, which provides a very nice, native look and feel. However this task seems undoable on MS Windows because of undocumented win32k internals. AFAIK no body else, i.e. no other VMM vendor, has implemented proper seamless mode for Windows VMs. Most (all?) attempts revolve around cutting rectangles from one framebuffer, which has many disadvantages: 1) non-zerocopy, so slower, 2) visible artifacts when one moves overlapping windows, 3) occasional difficulty in determining windows structuring.
ReactOS is GPL and BSD licensed according to the project wiki [1]. This is a great benefit in itself in a few ares: transparency (think: backdoors), easy of tinkering (think: better integration with Qubes), ability to distribute freely, no need for users to worry about licenses (yet still would need to have licenses e.g. for MS Office).
[1] http://www.reactos.org/wiki/ReactOS
Steps to proceed:
Likely stages of creating ReactOS-based template:
Many of these tasks could likely be directly copied from our MS Windows Qubes Tools:
https://github.com/QubesOS/qubes-core-agent-windows
https://github.com/QubesOS/qubes-windows-utils
https://github.com/QubesOS/qubes-vmm-xen-windows-pvdrivers
https://github.com/QubesOS/qubes-builder-windows
https://github.com/QubesOS/qubes-gui-agent-windows (with not-so-great seamless mode)
The text was updated successfully, but these errors were encountered: