These notes contain information about different aspects of using virtual machines with screen readers.
If you want to install Windows in VMware workstation, you can use Easy Install. Create a new VM, point it at the Windows .iso image and it should prompt you for a name, password, etc. Note that the ISO created from the media creation tool won't work with this method, but one directly from Microsoft will.
For Windows 10, you can get one by switching your user agent to something that isn't Windows.
If you use the easy install method, vmWare Tools should already be there. You can then copy files to your host clipboard and paste them on the guest.
Boot the VM and grab input. Press escape. If you press it multiple times, it cancels the menu.
By default, there isn't much time to press escape, and pressing it too soon also won't work. Adding something like bios.bootDelay = "5000"
to the .vmx file can help with this, at the expense of increasing boot times.
OCr should show enough to know if you're in the menu, and you can guess from there.
If you don't have speech and don't know the IP of your machine, and it uses DHCP (most do by default),
and you're not using a bridged network,
look in C:\ProgramData\VMware\vmnetdhcp.leases
. You should find it there.
If you're using a bridged network, your router should have it.
Notes on installing various Linux distributions accessibly.
I want a serial console, because it makes recovery easier than having to try to use OCR if something breaks.
If you want a serial console, remove the printer, and add a serial port to the VM.
Use named pipe, path \\.\pipe\serial
, this end is the server, The other end is an application.
You can only have one powered on machine with the same serial pipe name, so change it if you want that.
I use putty to connect to the serial port.
By default, putty is set to connect to SSH. To connect to the serial port, change the radio button to Serial.
Put the path to the pipe, example \\.\pipe\serial
in the Serial line field.
To paste into putty, either right click in the window, or hit shift+insert. If using NVDA, hold down shift and double tap insert.
Alternatively, set Ctrl + Shift + {C,V}
to System clipboard under Window, Selection in the tree.
Another useful option in putty is under Window, Behavior in the tree, System menu appears on ALT-Space. Without this, you have to use NVDA's object navigation to activate it.
SSH: vmWare has a menu option in the VM menu, SSH, Connect to SSH.
You can use this to connect to the machine without having to find the IP address.
If it doesn't work, find the IP address with ip -br addr
and connect manually. The ssh client built into Windows 10 works.
Installing open-vm-tools and enabling it with e.g. systemctl enable vmtoolsd should make this work again.
If you want to paste into cmd under Windows, go to the system menu, Options tab, and check Use Ctrl+Shift+C/V as Copy/Paste
.
Without that, you have to right click somewhere in the window.
Version tested: 2024.01.01
Boot the VM. Wait 5 seconds or so for the menu to appear, grab input and hit down then enter. Instructions taken from This page on the wiki. The bootloader also comes up on the serial port by default. If you want to install that way, you'll have to edit the kernel command line to add the serial console in.
It should then start talking after a minute or so of booting, and you're put into a command prompt with Speakup.
The volume is super low, so run amixer set Master 100%
to fix it.
If you want to SSH in, sshd is running, but there's no root password. Set one with passwd
, then ssh in as root.
Follow the installation guide. If you want to use archinstall, it will work, but the cursor doesn't track, so look for the > at the beginning of the line.
I did a minimal install. After it was done, I had to install openssh and enable the service.
It's set to not allow root to log in with a password by default.
I told it not to install an audio server, assuming it would use alsa.
After reboot, espeakup was running, but I had no sound.
To fix that, turn the volume up with amixer set Master 100%
and amixer set PCM 100%
. This saves across reboots.
Add yourself to the audio group with gpaswd -a username audio
.
At this point, you should have Archlinux working over ssh, and with Speakup running in the console.
If you want the serial console, edit /etc/default/grub
and add GRUB_TERMINAL="console serial"
to the end.
If you want kernel output to also go there, add console=ttyS0,115200
to GRUB_CMDLINE_LINUX
. That will also give you a login prompt on the serial port, without having to enable getty manually.
To regenerate grub.cfg, run grub-mkconfig -o /boot/grub/grub.cfg
.
Version tested: 12.4
Boot the ISO. At the beep, press s and enter. Speakup will start talking. The installer starts off with a list of languages longer than the screen, and this can't be scrolled. Press enter for English, or listen for the one you want and select it. The voice changes to match.
Install as usual. If you want an SSH server, you can select it on the software selection screen. By default, you'll get Mate, with Speakup and Orca coming up when the machine does, using PulseAudio. open-vm-tools was installed by default. Once Orca is running, switching to the console to use speakup no longer works; quitting orca with Alt+Super+s will fix that, as long as there isn't any other audio playing. It has something to do with espeakup running as root and PulseAudio running under your user account.
If you want the serial console, edit /etc/default/grub
and add GRUB_TERMINAL="console serial"
to the end.
If you want kernel output to also go there, add console=ttyS0,115200
to GRUB_CMDLINE_LINUX
. That will also give you a login prompt on the serial port, without having to enable getty manually.
Then run update-grub.
Version tested: 3.19.1
Download the Virtual edition, there's a heading for it on the download page.
There's no built-in accessibility in it, but the serial console will just work with no special configuration needed.
After installation, rebooting will show a login prompt on the serial port. Edit /etc/update-extlinux.conf and set serial_port=0
to have the bootloader show up there, and add console=ttyS0,115200 to default_kernel_opts
.
Run update-extlinux to regenerate /boot/extlinux.conf
.
To get open-vm-tools (Note: currently doesn't seem to let vmWare see the VM's IP address):
Edit /etc/apk/repositories
and uncomment community. Run apk update
and apk add open-vm-tools
.
To enable it, run rc-update add open-vm-tools
.