Instructions for building Mark II image

Hi!

I have received and built the Mark II Dev Kit, and everything is working fine using the downloaded Mark II OS image.

But now I need to try the additions we made to Mycroft to support the Basque language. Our additions have not been merged into the official Mycroft yet, so we need to download, mycroft-core, lingua-franca, skills, etc. from our own private GitLab repo, use certain branches, etc.

I do not know if it is possible or easy to do these needed changes by SSH-ing in the Mycroft running the downloaded image. In principle, I think it would be easier if there were some instructions to build the Mark II image from scratch with a bare Raspbian, something like the recipe in enclosure-picroft (https://github.com/MycroftAI/enclosure-picroft/blob/buster/image_recipe.md). This way I would be able to choose the sources and branches of the repos more easily.

Thanks in advance,

Igor

I found GitHub - MycroftAI/enclosure-mark2: This repository holds the files, documentation and scripts for building Mark 2 Pi device images. and enclosure-mark2/image_recipe.md at master · MycroftAI/enclosure-mark2 · GitHub . However, the repository seems to have had the last update in 2019, so I doubt these instructions are useful for the Mark II DevKit… Does anyone know about this? @gez-mycroft ?

Hi e-gor, it is a bit unclear to me what you are really after. Perhaps I can help you out, pointing you to the right direction.

What is it exactly, you are after?

Thanks, @j1nx !

We are developing Mycroft for the Basque language, we have already localized mycroft-core, lingua-franca, many skills, built our own skills, connected it to Basque ASR and TTS via plugins, tested it on PCS and Picrofts, made PRs to Mycroft repositories with our changes and additions… And now we would like to test it on the Mark II, we have a DevKit.

The thing is that our PRs have not been merged yet, so we need to install the repositories from our own GitLab, switch to our own branches, etc. Instead of making changes in the Mark II after installing it from the downloaded image, we would like to know the process of building a Mark II image, that way we would make the necessary changes in these steps to have the Basque Mycroft installed instead. This is what we did with Picroft, using the instructions in enclosure-picroft.

Hope you can help. Thanks again,

Igor Leturia

Hey Igor,

For the official Mark II images we use https://pantacor.com/

This is currently being built from the mark-ii/qa branch of mycroft-core as we’ve been experimenting with breaking changes and didn’t want to disrupt mainline mycroft until we know what the final changes will look like.

The packaging CI was originally setup by the Pantacor team but unfortunately is in a private gitlab repo at the moment. Because of how it’s setup we can’t easily make that Gitlab repo public, so we’re in the process of migrating it to our Github organization. Once it’s migrated, that can then be used to generate either a Pantacor based image, or a more traditional OS based on Debian.

So TLDR; the fastest route to a working prototype would be to burn an existing Mark II image and apply the changes directly. Otherwise I’d wait a week or two for us to migrate the CI build which includes all the assets required for the Mark II hardware.

OK, thanks for the info, it is clearer now. In fact, for the moment we are doing as you say, we are doing the changes on a Mark II image. But for the future, we think it would be better and cleaner if we could build a system localized to Basque from scratch, and we will try this way once you have it ready.

However, for building a Basque Mycroft based on a Mark II image, we are following the instructions in https://mycroft-ai.gitbook.io/docs/using-mycroft-ai/get-mycroft/mark-ii#mycroft-core-development and using the feature/mark-2 branch, not the mark-ii/qa branch you mention. What is the difference between both? It is wrong if we use the feature/mark-2 branch?

Thank you very much!

Ahhh, stupid me. Asking more information to help and then completely forget about it… :flushed:

@e-gor It looks like you are a bit in the same situation as we did. (we as in the developers of OpenVoiceOS).

As @gez-mycroft allready mentioned (the good thing of being late with my answer), Mycroft A.I as a company at the moment is fully focussed on getting the Mark-2 kit out to their backers. Therefor all development effort is towards their Mark2 / QA branch. Which also kind of mean the “development” branch is on hold for many months now. (looks like slowly some smaller PR’s are being looked at again)

We as a team / group of developers choose to soft fork the mycroft-core code into ovos-core where we could keep adding the things we would like and keep fixing things we saw without the need to wait for very long times for PR’s to get merged or even being looked at.

Our ovos-core cherry picks some good things of the Mark2/QA branches and includes a lot of fixes, features and changes, while we do keep backward compatibility with the development branch of mycroft-core.

If it works on the “normal” mycroft-core version, it will work on ovos-core.

The other way around depends on if you are using any additional features/functions of ovos-core.

If you would like to keep developing your Basque code against mycroft-core and adding GUI related pages, perhaps it is an option to rebase your PR’s to our ovos-core. We can then merge them or work with you to get them merged. Once merged you can start adding / working on you Basque GUI code.

If you choose not to use any of our changes, it allows you to continue your work and when the Mycroft dev team has decided what to to with the development branch you can re-rebase it back to mycroft-core.

If you like what we have added and/or fixed, you can keep developing your Basque work onto ovos-core. However till Mycroft as company has decided what to do with their own mark2 fork it remains unsure what and if this might flow back into mycroft-core. We will obviously try to keep backward compatibility to the development branch. If that will still be doable when mark2 codes flow back is unknown at this moment.

With our backward mycroft-core compatibility any Basque skills of plugins written for mycroft-core should work on ovos-core. So untill Mycroft decides what to do, you should be safe.

EDIT: I have just been made aware by @JarbasAl that we cherry-picked / ported the Basque support already many many moons ago for you.

Hi, @j1nx!

Thanks for all the info. I did not know OpenVoiceOS, and I think it is very interesting!

Regarding the integration of our basque changes into Mycroft’s repos, currently only the mycroft-core and lingua-franca PRs remain to be merged. But in our case, I must say that they were not merged for months because there was a conflict in the build and I was not aware of it because I was busy with other things… But now that I took some time to fix the issues, @krisgesling and the Mycroft AI team have looked into them, made some change requests, etc., and I think it won’t be long before they are merged.

Regarding the integration of our Basque changes into the Mark II, I was looking for a way to install some OS into it from scratch and then install and build all the Mycroft stuff into it step by step, so that in each step we could choose our own branches and repos (because the Basque changes were still unmerged). Instead, since I could not find info on this, we are now in the process of modifying a Mycroft Mark II image to make it work in Basque, and we hope to have it ready soon. However, I understand that instead of doing it as we are doing it now (applying a patch with the Basque changes to mycroft-core/dev into mycroft-core/feature/mark-2 ), we could simply replace mycroft-core with ovos-core and it would already work in Basque, right?

However, we are still interested in doing it the other way, and when we get into it, if we still cannot find a way to do it, OpenVoiceOS could be an option for us, specially knowing that the Basque changes are already there.

We will see how things get worked out, and we will most probably get in contact you.

Thanks again and regards!

1 Like

No problem what so ever. Let’s wait and see how things will progress for you. The most important thing in our oppinion is that we prevent a split where people have to choose one of the core’s out there.

That is why we always make sure we have backward compatibility with the development branch of mycroft-core.

It is also why we are a bit worried about what will happen with the Mark2 branch eventually, but many words have already been said about that topic, so we just need to trust the Mycroft A.I. guys for now and patiently wait for what they will do eventually. Am sure all will work out just fine.

Untill then, we have created our playground with the whole ovos-core software architecture which allows other projects (such as OpenVoiceOS, NeonGecko, Plasma Bigscreen, etc) to continue their development while we wait for the above to happen. This also gives the guys from the Mycroft team the peace of mind that we are not bothering them that much anymore till then.

And like I said, trust that when we will get there and when we get there, we will be very busy creating all the different PR’s that the Mycroft A.I. team is interested in. :muscle:

1 Like