Skip to content
This repository has been archived by the owner on Mar 17, 2021. It is now read-only.

Windows: add Cygwin Toolchain, add VMWare Steps, Split up Different Methods #522

Merged
merged 7 commits into from
Jun 9, 2018
Merged

Windows: add Cygwin Toolchain, add VMWare Steps, Split up Different Methods #522

merged 7 commits into from
Jun 9, 2018

Conversation

MaEtUgR
Copy link
Member

@MaEtUgR MaEtUgR commented May 10, 2018

Adding the promised Cygwin toolchain with MSI installer I'm working on for quite some time now to the guide such that everyone can start using it and finds proper documentation.
See PX4/PX4-Autopilot#8357


The whole Windows instuctions section seemed quite outdated and cramped onto one page to me. I can imagine it's confusing to read like that. Linux instructions are already split up to multiple pages and more regularly updated.

I started a take on improving the Windows section, sorry that this the first commit got too big. I added review comments to clarify my changes in the this commit and allow for faster review. I'll not amend it but rather add smaller commits on top such that further review gets simpler.

FYI @hamishwillee @LorenzMeier

Copy link
Member Author

@MaEtUgR MaEtUgR left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comments for the first commit to clarify changes.

@@ -1,122 +1,56 @@
# Windows Installation Instructions

There are a number of ways you can set up a Windows development toolchain for PX4. These allow you to build for NuttX/Pixhawk and jMAVSim simulator targets.
There are a number of ways you can set up a Windows development toolchain for PX4. Depending on what option you choose these allow you to build for NuttX/Pixhawk and jMAVSim simulator targets.
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adopted some of these general introduction comments because they seem to be outdated/only apply to the old msys based toolchain.

> **Tip** Before starting to develop on Windows, consider installing a dual-boot environment with [Ubuntu](http://ubuntu.com).


## Native Toolchain
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I split up/copied all the existing instructions for the different options/methods without changing them to separate pages and hence new files. Only renaming the title of the method.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the way you have done this split is excellent.


[Cygwin Toolchain Download & Instructions](../setup/dev_env_windows_msys.md)

**\+**
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added a short advantage/disadvantage list for all the methods with the idea in mind to keep the general windows page short and give useful information that helps to decide where to read on the details.

Any help completing them appreciated. I'm biased for my particular daily PX4 usage and tested quite a lot but not everything e.g. bash on windows.

@@ -0,0 +1,93 @@
# Bash on Windows Toolchain

Windows users can alternatively install a *slightly modified* Ubuntu Linux PX4 development environment within [Bash on Windows](https://github.com/Microsoft/BashOnWindows), and use it to:
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

unchanged, just copied over

@@ -0,0 +1,56 @@
# Windows Cygwin Toolchain

## Ready to use MSI Installer Download
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

New instructions for the Cygwin toolchain work in progress.

@@ -0,0 +1,11 @@
# Windows Msys Toolchain

## Instructions
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

unchanged, just copied over


## Instructions

There are multiple ways to setup a VM which is capable of executing the PX4 environment on your system. This guide walks you through a VMWare setup which showed usable performance for basic usage not including ROS usage and high resolution heavy graphics applications.
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

New step by step guide for VMWare Player (which has to my knowledge best performance and is free).
Still rough, more details and screenshots to come...

@LorenzMeier
Copy link
Member

On a high level, this looks good to go. Please finish it to the point where you feel its usable and remove the WIP flag.

```
export PATH=$HOME/gcc-arm-none-eabi-5_4-2017q2/bin:\$PATH
```
> **Tip** To work on an unrestriced linux environment you can install [Ubuntu](http://ubuntu.com) in a dual-boot setup next to your existing Windows installation and choose the operating system on every bootup.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This changes the nature of the tip from a recommendation to an observation - which I am not sure is a good thing. Unrestricted is miss-spelled. How about:

> **Tip** We recommend using [Ubuntu](http://ubuntu.com) for development. Consider setting up a dual-boot setup next to your existing Windows installation.

```
> **Tip** To work on an unrestriced linux environment you can install [Ubuntu](http://ubuntu.com) in a dual-boot setup next to your existing Windows installation and choose the operating system on every bootup.

## Cygwin based Toolchain
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

to Cygwin-based or Cygwin Based (we use first letter capitalisation on all words in headings except the short connecting ones)


<span></span>
> **Tip** Before starting to develop on Windows, consider installing a dual-boot environment with [Ubuntu](http://ubuntu.com).
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like the individual pro/con lists, but I wonder if it might also be worth having an overview of all of them in a table. Headings/fields like Gazebo, Jmavsim, NuttX, Native, Memory/Resources etc? Just an idea.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds super useful, it could even be colored red, green, yellow... I'll have a look at how to do that.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Try avoid using colour. It is very rarely necessary or done well. The key to great doc is minimal use of highlighting and smart use of structure/headings :-)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok, thanks for the hint, I can learn a lot from you. I'll kill the "coloring project" and make a non-highlighted table.


**\-**
- Does not support all features of the PX4 environment
- Known issues see link to issue tracking on the instructions page
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I quite like tables as they are more compact.

Pros Cons
Supports NuttX and JMAVSim builds Does not support all build options
Fast and simple setup via MSI installer Known issues see link to issue tracking on the instructions page
No virtual machine and additional operating system overhead
Native Windows binary execution
Portable (folder could be on a pen drive)

As discussed above, it might be better to have just one list of "supported", so more like

Feature Cygwin Bash VM
NuttX builds Yes
JMavSim builds Yes
Gazebo Builds
upload supported Yes
Portable Yes
Virtual Machine
Native builds
...

Just throwing the option out there.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think your suggestion with one table will make it a lot more readable. Let me add it.


**\+**
+ Fast and simple setup via MSI installer
+ Supports all basic functionality (see instructions)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will need to be a link to instructions, what defines "basic functionality" OR even better (e.g. NuttX, JMAVSim)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I omitted this statement, table now shows what it supports.


**\-**
- Does not support all features of the PX4 environment
- Known issues see link to issue tracking on the instructions page
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will need to be a link

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not very useful statement, every option has its issues which can be added to the instructions...

MaEtUgR added 5 commits June 4, 2018 18:33
The whole Windows instuctions section seemed quite outdated and cramped
onto one page to me. I can imagine it's confusing to read like that and
while linux instructions are already split up to multiple pages and
regularly updated.

I started a take on improving the Windows section, sorry that this the
first commit got that big.
@MaEtUgR
Copy link
Member Author

MaEtUgR commented Jun 8, 2018

@hamishwillee What do you think of the Windows page with the table now? I realized that it's possible to get a raw markdown preview when opening the file after the commit: https://github.com/MaEtUgR/Devguide/blob/pr-revise-windows-add-cygwin/en/setup/dev_env_windows.md

I continue with the Cygwin instructions now.

btw I think the inclusion of the same page on all options with {% include "_addition_dev_tools.txt" %} and hence generating virtually duplicate information on the guide page is not a good idea. I would rather make it a page and have a link to it where it's useful.

@MaEtUgR MaEtUgR changed the title [WIP] Windows: add Cygwin Toolchain, add VMWare Steps, Split up Different Methods Windows: add Cygwin Toolchain, add VMWare Steps, Split up Different Methods Jun 8, 2018
@MaEtUgR
Copy link
Member Author

MaEtUgR commented Jun 8, 2018

Sooo, finally. I hope this is now a reviewable state. I would say it contains all the necessary information now and could apart from possible errors be published.

@LorenzMeier
Copy link
Member

Awesome, thanks!

@LorenzMeier LorenzMeier merged commit 6c39327 into PX4:master Jun 9, 2018
@MaEtUgR MaEtUgR deleted the pr-revise-windows-add-cygwin branch June 11, 2018 09:03
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants