[raspberry-vi] Re: Image progress

  • From: Tom Moore <tommym2006@xxxxxxxxx>
  • To: raspberry-vi@xxxxxxxxxxxxx
  • Date: Sat, 5 Jan 2019 10:11:58 -0500 (EST)

Hi,
Great description of how the process works.
So if I've got this right what I might start with is the stock image of 
Arch on the Raspberry Pi and then run the scripts to set the system up for 
speech once all the bugs and everything are worked out?

Tom

On Sat, 5 Jan 2019, Michael A Ray wrote:

Tom,

It is possible to run my Ansible code on the Pi and do all the work on
itself.

One of the fundamental concepts of Ansible is the 'host'.  In fact
either individual hosts or groups of hosts.

And a host can either be the localhost, which is the loopback address of
the machine on which you are running, or a remote host, or a virtual
machine either running on your machine, or on a remote machine.

The whole purpose of Ansible is as a tool for configuring hosts.
Sometimes many at a time.

For example, I have written Ansible playbooks which spin up about ten
Digital Ocean 'droplets' (virtual machines) in some city somewhere, and
then do a load of configuration on them, possibly stuff like launching
Docker containers and the like. Maybe I'm just old, but it still seems
magic to me that I can write a chunk of Ansible, press a button and it
will spin up some virtual machines in a shed in Singapore :-)

But, it is a bit complex as a first look at Ansible.  It takes quite a
time to get your head around how the groups of hosts are set up in the
files in the playbooks.

The Ansible code is a work in progress, but I am getting very close to
being able to tag it at version 1.

There will be an Arch image and possibly a Raspbian image up on the Web
site this weekend.  Initially with console screen readers, then later
desktops.

If you take a look at:

https://github.com/cromarty/ansible-raspberry-pi.git

You might be able to understand.

For example, in this path:

./playbooks/console/

There will be a number of directories:

group_vars/
host_vars/
inventory/

It is in inventory/hosts that hosts are actually defined, and they are
then grouped in group_vars/*/vars.yml, one sub-directory of group_vars
for alarmpi hosts and one for raspbian hosts.

There is also an encrypted vault file in there, vault.yml, and you will
need to learn to set one of these up and then encrypt it with a password.

In host_vars/ there is one file for each host.

The way this all hangs together is around a 'hierarchy' of variables.

Top level downwards it is like this:

roles/defaults/main.yml
playbooks/group_vars/...
playbooks/host_vars/...
command line variables

Top level is trumped, or overridden by lower settings.

So if there is a variable in the roles/emacspeak/defaults/main.yml file,
it will, or can be, overridden for a group of hosts in
group_vars/<groupname>/vars.yml.

And if there is a variable in group_vars/<groupname>/vars.yml, it can be
overridden for a single host in that group in host_vars/hostname.yml.

So, it can all look very complex if you are not familiar with Ansible.

If you want to learn it, then I can recommend it, because it is a very
current skill.

You might do better waiting until I can finish off the code and write
some detailed documentation.

Oh and there is no reason whatsoever that this stuff should only run on
a Raspberry Pi.

If you have a laptop or a desktop machine which is running Arch or
Debian, you can connect to it over SSH and run some of the playbooks to
make it accessible.

In that way, if you have, for example a Windows machine running NVDA,
which is nice and accessible, and can connect to a amchine over SSH, you
can configure that machine to make it start to be accessible.

If I am honest I have to tell you I have spent most of 2018 learning
Ansible, and it has taken many hours of Googling, and hacking, and
Googling again, to get to where I am. That is not to say I don't think
anybody else can do it. If I can, I am pretty sure you can, but it is
pretty complex to look at to begin with.

I have done this mostly because I have neglected to put images n the
site regularly, because creating them is such a tedious task. But this
Ansible stuff should make it much easier.

Mike




On 05/01/2019 00:59, Tom Moore wrote:
Hi,
If I wanted to follow your progress with image creation what would I need
to have installed on the Raspberry Pi units before running the Ansible
scripts?

Tom

On Fri, 4 Jan 2019, Michael A Ray wrote:

Pranav,

It's espeakup that runs as a service, not espeak.

espeakup is the connector which connects speakup to espeak.

I think I may have solved the Fenrir installation problems on Raspbian
anyway.

I don't know of any bug in the speech-dispatcher package.

speech-dispatcher is started automatically by clients, in other words it
is not started by a systemd unit.

The only usual problem I encounter with speech-dispatcher, which I think
everybody gets, is when it is configured to use pulse.  When you log
into the GUI this causes the speakup and espeakup combination in the
console to go silent.

I usually configure speech-dispatcher for libao.

It is also unreliable using ALSA, as there is a deadlock bug in
sd_espeak which causes a kernel oops and sd_espeak to be unloaded.

There is also an issue between Raspbian and Arch with Emacspeak.  On
Arch I am able to compile emacspeak from source and so get the very
latest stable version.  But it will not compile from source on Raspbian.
I think this is due to some issue with Bookshare, which is *not* a free
service, which is likely to make Debian want to remove it.  And Raspbian
is based on Debian.

So the images that are coming will be version 49.0 of Emacspeak, and
Fenrir in the console for Arch.

And whatever version of emacspeak is in the repos for Raspbian, and
possibly also the Fenrir screen reader, because of the problems with
espeakup.

I have not used Fenrir very much yet, but it is growing on me very much.
And as it supports unicode in the console, which I believe speakup does
not, this should make it more usable in more languages.

Then after I have released console-only images, I will work on some with
GUIs installed.

It is my intention to make it necessary to start any GUI with xinit,
e.g. by typing 'startx' in the console.

This way a user can have multiple desktops installed and edit their
.xinitrc to switch which one they want.

My Ansible code currently supports:

* mate
* i3
* flwm

There is much to fix with the last two but mate works, but is quite
heavy on resources.

Mike

On 04/01/2019 16:48, Pranav Lal wrote:
Hi Michael,

As far as I remember, espeak does not run as a service. Speech dispatcher 
however does and there is indeed a bug in the raspbian package of speech 
dispatcher.

Pranav

===========================================================
The raspberry-vi mailing list
Archives: //www.freelists.org/archives/raspberry-vi
Administrative contact: <mike.ray@xxxxxxxxxxxxxx>
-----------------------------------------------------------
Raspberry Pi and the Raspberry Pi logo are trademarks of the Raspberry Pi 
Foundation.

This list is not affiliated to the Raspberry Pi Foundation and the views 
and attitudes expressed by the subscribers to this list do not reflect 
those of the Foundation.

Mike Ray, list creator, January 2013




--
Michael A. Ray
Analyst/Programmer
Witley, Surrey, South-east UK

"Perfection is achieved, not when there is nothing more to add, but when
there is nothing left to take away." -- A. de Saint-Exupery

https://cromarty.github.io/
http://eyesfreelinux.ninja/
http://www.raspberryvi.org/


===========================================================
The raspberry-vi mailing list
Archives: //www.freelists.org/archives/raspberry-vi
Administrative contact: <mike.ray@xxxxxxxxxxxxxx>
-----------------------------------------------------------
Raspberry Pi and the Raspberry Pi logo are trademarks of the Raspberry Pi 
Foundation.

This list is not affiliated to the Raspberry Pi Foundation and the views 
and attitudes expressed by the subscribers to this list do not reflect 
those of the Foundation.

Mike Ray, list creator, January 2013


===========================================================
The raspberry-vi mailing list
Archives: //www.freelists.org/archives/raspberry-vi
Administrative contact: <mike.ray@xxxxxxxxxxxxxx>
-----------------------------------------------------------
Raspberry Pi and the Raspberry Pi logo are trademarks of the Raspberry Pi 
Foundation.

This list is not affiliated to the Raspberry Pi Foundation and the views and 
attitudes expressed by the subscribers to this list do not reflect those of 
the Foundation.

Mike Ray, list creator, January 2013




-- 
Michael A. Ray
Analyst/Programmer
Witley, Surrey, South-east UK

"Perfection is achieved, not when there is nothing more to add, but when
there is nothing left to take away." -- A. de Saint-Exupery

https://cromarty.github.io/
http://eyesfreelinux.ninja/
http://www.raspberryvi.org/


===========================================================
The raspberry-vi mailing list
Archives: //www.freelists.org/archives/raspberry-vi
Administrative contact: <mike.ray@xxxxxxxxxxxxxx>
-----------------------------------------------------------
Raspberry Pi and the Raspberry Pi logo are trademarks of the Raspberry Pi 
Foundation.

This list is not affiliated to the Raspberry Pi Foundation and the views and 
attitudes expressed by the subscribers to this list do not reflect those of 
the Foundation.

Mike Ray, list creator, January 2013


=========================================================== 
The raspberry-vi mailing list 
Archives: //www.freelists.org/archives/raspberry-vi
Administrative contact: <mike.ray@xxxxxxxxxxxxxx>
-----------------------------------------------------------
Raspberry Pi and the Raspberry Pi logo are trademarks of the Raspberry Pi 
Foundation.

This list is not affiliated to the Raspberry Pi Foundation and the views and 
attitudes expressed by the subscribers to this list do not reflect those of the 
Foundation.

Mike Ray, list creator, January 2013

Other related posts: