Questions re building Ardupilot on Windows 10 / WSL / Ubuntu / bash

Thanks to some very clear directions here on how to build Ardupilot in the new Windows 10 “native” Linux subsystem (“WSL”), I was able to install WSL, make, gcc, et al, clone the master locally, and build it with no apparent errors. I haven’t flown the resultant hex, but am fairly confident in the results, and saved the entire dialogue.

Now I want to clone a different branch off master, and build it. It’s night_ghost’s HAL port to the Revo Mini class of FCs. I can’t tell who authored the WSL how-to doc, but thank you. Is it possible someone could give me a few hints as to how to then compile an alternate branch of Ardupilot (just ArduPlane, actually), having successfully built the master? According to night_ghost, the following should work:

  1. download code from original Ardupilot (done)
  2. go to Arduplane folder (done)
  3. make px4-v2 (done, although via “./waf configure --board p4-v2”, and “./waf plane”)
  4. after successful build download my [night_ghost] sources and then move “.git” and “modules” folders from official to my sources.
  5. Go to Arduplane folder in my sources
  6. make revomini

I am having some problems with the above steps, and thought I’d post here in parallel with further trial-and-error. If anyone can guide me to a robust recipe for achieving this, I would be grateful. I am also planning on modifying the source locally and rebuilding, but one step at a time.

Background: former C developer decades ago, plenty familiar with source control, dependencies, make, unix, etc.

Thanks,
Kelly

PS: if “Dev” is the wrong topic, please guide where better to post this…

Hi !
How did you overcome the issue that
"sudo add-apt-repository ppa:terry.guo/gcc-arm-embedded
sudo apt-get update
sudo apt-get install gcc-arm-none-eabi=4.9.3.2015q3-1trusty1"
points to an invalid repo ?
Thanks

I am not sure without crawling extensively through the logs, which I can’t do today. A couple steps failed first few times, but ultimately succeeded, and I’m sorry I can’t provide detailed explanation of why they failed and why they eventually succeeded. It was my first time through, and I now have huge appreciation for the size and complexity of the build. Hoping to learn a lot more in the days ahead.

Kelly

I ran the Windows utility windirstat on the Ardupilot build directory under WSL/Ubuntu/bash, just to see the types of files, sizes by file types, directories, etc… sharing this in case anyone finds it informative.

Kelly

I ran into the same problems @Eosbandi. I found a website https://launchpad.net/gcc-arm-embedded/+announcement/13824
that provides an updated version of the gcc-arm-embedded but when ever I go to build px4-v2, it fails. If you find a way forward on this, please post what you did and I will do the same.

Thanks,
Bill

Hello, long time ago I built arduplane in windows bash, but how I can understand Your question is mostly about git system. So if You need another git repository. I assume that You already have ardupilot folder in home, so first make folder with any name:

mkdir test
cd test

now clone your desired git

git clone https://github.com/night-ghost/ardupilot.git

now you can follow default steps to configure this repo (I assume that you already have everything else for build, so probably only this 2 commands will be needed)

cd ardupilot
git submodule update --init --recursive

so now we have another repo with master branch, lets get all other branches

git fetch

and change branch to RevoMini

git checkout RevoMini

I wouldn’t call myself git specialist, but when I needed something like that, with google and stackoverflow I managed to do it.
Regards, Nikita

@bnsgeyer, will do.

@Nikita: thanks for your guidance. I will try those suggestions this morning, and report back here. A few questions from your post:

  • Where you “cd ardupilot” I assume that’s the ./ardupilot directory in the newly created night_ghost clone under the test directory, right? If not, please clarify.
  • Also, regarding “now you can follow default steps to configure this repo”, at the risk of sounding like a total git noob, are the default steps documented somewhere? Are you referencing the steps 8 and beyond described here in the Ardupilot docs for building under WSL?
  • Lastly, one thing I find slightly unclear from that page is which of the steps of cloning, installing, building, etc., need to be (or should be) done as root, versus as my usual user login (which has admin status under Windows).

Any insight on the above would be appreciated.

Kelly

I appear to have succeeded in building hex files for the night_ghost RevoMini branch off master. I’ve posted details and a few questions to night_ghost on his RCG thread. Need to pull away from this now and get on to other non-RC matters, but happy to post logs and describe later what it took on my Windows/WSL/Ubuntu/bash environment to achieve an apparently successful build. I say apparently until I’ve downloaded the FW to my test bench system, booted ArduPlane, interacted with Mission Planner, and eventually sent it aloft.

Kelly