OpenDroneMap / LiveODM

Live DVD/USB ISO with ODM, node-ODM and WebODM pre-installed.
Mozilla Public License 2.0
49 stars 11 forks source link

wslODM #6

Open Saijin-Naib opened 4 years ago

Saijin-Naib commented 4 years ago

I'd love to see LiveODM converted to work under WSL and available through the Store for purchase.

WSL makes running Linux programs surprisingly easy, and with an X Server installed, you can run GUI programs fairly well. 3D acceleration isn't possible yet, but should be with time.

WSL1 Extracted the filesystem.squashfs from the LiveODM ISO, re-tar'd it. Imported it into WSL1 What worked: The image, but docker does not run under WSL1 currently. I was able to launch firefox, update packages, and generally use the LiveODM rootfs successfully under WSL1.

Alpine WSL Installed all dependencies for WebODM per the GitHub documentation What worked: The image in general, but docker does not run under WSL1 currently. The WSL instance of Alpine+WebODM was incredibly much smaller than LiveODM.

WSL2 I have not attempted to insert the filesystem.squashfs from LiveODM into my WSL2 instance for testing yet.

Suggestions Rebase wslODM onto Alpine Linux

Personal next steps Attempt to get a LiveODM-like environment running in Alpine on hardware

pierotofy commented 4 years ago

Hey @Saijin-Naib it would be really cool to get ODM working on WSL. Note that LiveODM does not use docker, everything runs natively.

If you find a way to make it work on WSL, please upload your findings / scripts on a repository? We would love to merge that into the ODM organization.

Saijin-Naib commented 4 years ago

@pierotofy, I will do my best. To say I'm not a programmer is an understatement 🤣

I did not know that. That means something else was causing the LiveODM instance to fail. Would you be willing to help me try to debug what error messages I get?

Would you like me to try first using your LiveODM image directly under WSL1/2, and then try rebasing later (after success) under Alpine for a "slim" install version? At 3+gb installed, LiveODM carries a lot of packages that likely aren't necessary for usage under WSL but were included for the widest possible system support OOB.

How best to approach this to ensure you can replicate it?

Saijin-Naib commented 4 years ago

My current approach is this: Alpine WSL install Manually add each of the below to the Alpine WSL install

Try to "install" each natively, adjusting the scripts to reflect changes from Debian environment to Alpine environment (ie, apt/apt-get to apk, package naming conventions, #!/bin/bash to #!/bin/ash, etc).

My goal is to make the wslODM a one-stop shop to aggregate all of the *ODM projects together in as minimal/tight an image as possible. Currently, I'm sitting at 83mb of packages in 50 installed packages as I work through the dependencies for ODM, with surely more room to grow as I work through the list.

So far, not too many issues as most every needed package is covered and exists in the Alpine package repository, but I have hit a few that don't exist yet.

pierotofy commented 4 years ago

I unfortunately won't have much time to look over this, but I'd recommend to create a repository on GitHub and publish all relevant scripts / documentation procedures there.

Saijin-Naib commented 4 years ago

@pierotofy ,

Sorry for the delay. I've not forgotten, and I've been working on getting more familiar with *ODM by using LiveODM on my machine and breaking it repeatedly by trying to upgrade it, haha.

This script will be how I make a WSL/Alpine Linux image into a LiveODM-compatible. https://github.com/Saijin-Naib/ODM_Scripts/blob/master/webodm_upgrade_alpine.sh

Saijin-Naib commented 4 years ago

https://twitter.com/richturn_ms/status/1262767755633123331?s=20 image

Saijin-Naib commented 4 years ago

Update from talking with a WSL expert: Extracting an installed root filesystem or squashfs isn't likely to work, so easy conversion from the LiveODM installed on hardware or extracted from the ISO isn't likely