Rename blueprints: .mdwn → .md authored by intrigeri's avatar intrigeri
Rationale:

 - Right now:

   - These pages' Markdown will be rendered when browsing our
     repository in the GitLab web interface

   - The .md extension is more common nowadays: GitHub, GitLab, and various
     other major players have settled on it. Let's get used to it.

 - If we decide to migrate our blueprints to GitLab (#18079),
   this will be a necessary first step.
[[!tag archived]]
This is about [[!tails_ticket 8471]].
[[!toc levels=2]]
Test reports
============
This is for what we're shipping in Tails 1.5. Please include:
* exact Tails version
* exact installation method
* exact hardware brand and model
* what's happening
* what was happening with Tails 1.4.1
Misc. notes
===========
Regarding the success seen with `bootia32.efi`: why would a 32-bit
GRUB2 EFI boot loader automatically chainload to our syslinux?
Or is it that `bootia32.efi` is actually from another El Torito image,
that ships syslinux?
Debian's relevant code lives in the debian-cd, grub2 and
debian-installer Git repositories. Look for `bootia32.efi`.
Maybe also copy to `EFI/BOOT/boot.efi`: grub2's changelog says that
`grub-install` copies `bootia32.efi` to `boot.efi`, to better support
old Macs:
* doesn't work for me on a MacBook Air original 1.8 GHz A1237
Risk of regressions
-------------------
Here we discuss the risk of regressions, for hardware that previously
booted Tails just fine, if we shipped a 32-bit UEFI boot loader in our
hybrid ISO image.
XXX: I (intrigeri) am waiting for answers by an expert in this domain.
What we know so far:
* Early Intel Macs cannot boot from a DVD with more than one El Torito
boot record. But we're not considering supporting EFI boot off DVD
yet, so for now it's a non-issue. And when we'll have to consider
supporting this feature, chances are that most such machines are
dead anyway.
Test results and ideas
----------------------
### 32-bit GRUB2 EFI chainloading 32-bit syslinux EFI
* syslinux 32-bit EFI installed in `EFI/TAILS32`
* GRUB 32-bit EFI installed in `EFI/BOOT/bootia32.efi`
=> did not manage to chainload 32-bit syslinux EFI from GRUB.
On Tails/Jessie (GRUB 2.02~beta2-22), I get `error: unknown error.`
after typing `boot`. This likely comes from
`grub-core/loader/efi/chainloader.c`.
### 32-bit GRUB2 EFI reading the syslinux configuration at runtime
With current `feature/8471-32-bit-UEFI`, one can choose the *syslinux:
liveamd64.cfg* menu entry, that basically load syslinux'
`/efi/boot/liveamd64.cfg`, converting it to GRUB on the fly.
Then, add `nomodeset` if needed, and Tails boots.
Note that:
* Support for `{vesa,}menu.c32` was added in GRUB upstream, but didn't
make it into Debian yet as of 2.02~beta2-22.
so `feature/8471-32-bit-UEFI` installs a
2.02~beta2-22tails1~bpo70+1 package with that new code in it,
and indeed it successfully loads our syslinux configuration.
* We'll need to load the `cpuid` module to make our `ifcpu64`
directives work.
### 32-bit GRUB2 EFI with native configuration
If `syslinux_configfile` is not good enough, should not be too hard to
write/generate and maintain a GRUB2 configuration, either
automatically (e.g. with `grub-syslinux2cfg`) or by hand.
That's what `feature/8471-32-bit-UEFI` currently does, as a way to
quickly get things going.
<a id="hardware"></a>
Potential hardware
==================
Current selection
-----------------
* in the cheapest range: WinBook TW700
* with 2GB of RAM: Toshiba Encore 2
Boots GNU/Linux from USB
------------------------
All of the following tablets are based on the Intel Bay Trail platform
with 32-bit UEFI firmware and ship with Windows 8.1 except where
noted. LCD resolutions are generally 1,280x800 pixels, except
where noted.
They have all been reported to run GNU/Linux from USB with the right
boot code, but device drivers are sometimes a problem.
There are significant variations in specific firmware features among
these devices. For example, it's unclear if all of these models can
cold-boot from USB, or if some may need to start Windows and then use
the "boot from USB" feature. Most have Secure Boot enabled by default,
but this feature can usually be disabled.
* Acer Aspire Switch 10
- $300
- 2 GB RAM, 10", hybrid
* Asus T100
- $290
- 2 GB RAM, 10", hybrid
- hardware support on Linux was not entirely awful a year ago, but
requires proprietary firmware; not sure where things are at now
* Asus T100TA
- $300
- 2 GB RAM, 10", hybrid
- 1 USB + 1 micro USB
- does the T100's hardware support status apply here too?
* Dell Venue 8 Pro 3000
- $170
- 1 GB RAM, 8"
- cold-boot from USB: [seems
possible](https://www.happyassassin.net/2013/11/24/the-fedlet-revived-or-fedora-linux-on-a-dell-venue-8-pro-bay-trail/)
1. Requires a USB OTG converter (full-size USB female port on one end,
micro-USB male connector on the other end)
2. "press the power button and hold down the 'volume down' key
for a couple of seconds (this is how you get into the
firmware), go to the Boot tab, disable Secure Boot, and
promote the USB stick to #1 in the boot order"
* Dell Venue 8 Pro 5000
- $210
- 2 GB RAM, 8"
- cold-boot from USB: likely the same as the Dell Venue 8 Pro 3000
* Dell Venue 8 7000
- Ships with Android KitKat; Lollipop due later in 2015
- $400
- 2 GB RAM/16 GB flash
- Notable for high-res 8.4" 2,560x1,600 OLED display
- Also includes Intel RealSense multiple-camera subsystem
- No cold-boot nor warm-boot from USB, according to png.
Perhaps it's possible after [unlocking its
bootloader](http://unlock-bootloader.info/mp3-0/dell-venue-8-7000-6714.html)
* HP Stream 7
- $100
- 1 GB RAM/16 GB flash, 7"
- hardware support on Linux seems not entirely awful, but requires
a few out-of-tree drivers:
<https://ubuntuforums.org/showthread.php?t=2261294>
* HP Stream 8
- $150
- 1 GB RAM, 7"
- Includes 4G WWAN modem with limited free T-Mobile Internet service
- Believed to be generally similar to the HP Stream 7 otherwise
- Can cold-boot from USB:
1. Hold down Vol-, press Power for about a second, and release
Vol- when the boot options screen comes up.
2. That screen gives access to a Boot Device Options menu, BIOS
Setup, and other functions including an on-screen keyboard.
3. In the Boot Options Menu, one can select Boot from EFI File
and push the soft Enter key… and then, with a Tails boot
drive, it goes to a File Explorer screen to allow the user to
choose between booting from the Tails volume and the NO VOLUME
LABEL volume on the USB thumb drive. Sadly, there's no way to
press Enter! The Stream 8 has a capacitive Windows button on
the bezel, and that just isn’t active at this point.
There isn’t a timeout autoselect for the first (presumably
correct) option, either.
4. This should all work fine by plugging an OTG-Type A adapter
cable, a USB hub, a USB thumb drive, and a keyboard.
This should be good enough for development, but not for
actual users.
* Lenovo Miix 2
- $220
- 2 GB RAM
* Toshiba Encore 2
- many models with 1 GB RAM, 8"
- WT8-B264 with 2 GB RAM/32 GB flash, 8"
- 10" LCD models also available
- can cold-boot from USB: hold down the Vol+ button, then hold down
the Power button, until the boot selection menu appears.
Select the desired boot device and press the Windows key.
* Toshiba Encore 2 Write
- Includes Wacom Feel pen/touch digitizer; unusual among low-cost
x86 tablets, enables good handwriting recognition and artistic
drawing
- Otherwise apparently similar to Encore 2
- 8-inch version retails for $350
- 10.1-inch model priced at $400
* WinBook TW700:
- $60
- 1 GB RAM/16GB flash, 7"
- To cold-boot from USB:
1. Configure the UEFI BIOS to put "USB HD"
above the Windows Boot Manager or the internal eMMC storage.
2. Plug the USB device in the Type A port, not the Micro
USB OTG port.
3. Then the tablet will boot from USB without pushing any
buttons, and one can still use the OTG port to power the
tablet while running from Tails.
Needs more research
-------------------
* ASUS VivoTab 8
- $190
- Bay Trail, 2 GB RAM, 8"
- 32-bit UEFI?
Boots current Tails and thus uninteresting here
-----------------------------------------------
* HP Slate 500
* Samsung Series 7 Slate
* Microsoft Surface Pro