summaryrefslogtreecommitdiffstats
path: root/wiki/src/blueprint/UEFI/32-bit.mdwn
blob: 8b1b4ca7c1a7086e42c7f2426441b122509a993d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
[[!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