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
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
|
<!-- retain these comments for translator revision tracking -->
<!-- $Id$ -->
<sect1 id="hardware-supported">
<title>Supported Hardware</title>
<para>
&debian; does not impose hardware requirements beyond the requirements
of the Linux or kFreeBSD kernel and the GNU tool-sets. Therefore, any
architecture or platform to which the Linux or kFreeBSD kernel, libc,
<command>gcc</command>, etc. have been ported, and for which a &debian;
port exists, can run &debian;. Please refer to the Ports pages at
<ulink url="&url-ports;"></ulink> for
more details on &arch-title; architecture systems which have been
tested with &debian-gnu;.
</para><para>
Rather than attempting to describe all the different hardware
configurations which are supported for &arch-title;, this section
contains general information and pointers to where additional
information can be found.
</para>
<sect2><title>Supported Architectures</title>
<para>
&debian; GNU/Linux &release; supports ten major architectures and several
variations of each architecture known as <quote>flavors</quote>.
</para><para>
<informaltable>
<tgroup cols="4">
<thead>
<row>
<entry>Architecture</entry><entry>&debian; Designation</entry>
<entry>Subarchitecture</entry><entry>Flavor</entry>
</row>
</thead>
<tbody>
<row>
<entry>Intel x86-based</entry>
<entry>i386</entry>
<entry></entry>
<entry></entry>
</row>
<row>
<entry>AMD64 & Intel 64</entry>
<entry>amd64</entry>
<entry></entry>
<entry></entry>
</row>
<row>
<entry morerows="1">ARM</entry>
<entry morerows="1">armel</entry>
<entry>Marvell Kirkwood and Orion</entry>
<entry>marvell</entry>
</row><row>
<entry>Versatile</entry>
<entry>versatile</entry>
</row>
<row>
<entry morerows="1">ARM with hardware FPU</entry>
<entry morerows="1">armhf</entry>
<entry>multiplatform</entry>
<entry>armmp</entry>
</row><row>
<entry>multiplatform for LPAE-capable systems</entry>
<entry>armmp-lpae</entry>
</row>
<row>
<entry>64bit ARM</entry>
<entry>arm64</entry>
<entry></entry>
<entry></entry>
</row>
<row>
<entry morerows="2">MIPS (big endian)</entry>
<entry morerows="2">mips</entry>
<!--
<entry>SGI IP22 (Indy/Indigo 2)</entry>
<entry>r4k-ip22</entry>
</row><row>
<entry>SGI IP32 (O2)</entry>
<entry>r5k-ip32</entry>
</row><row>
-->
<entry>MIPS Malta (32 bit)</entry>
<entry>4kc-malta</entry>
</row><row>
<entry>MIPS Malta (64 bit)</entry>
<entry>5kc-malta</entry>
</row><row>
<entry>Cavium Octeon</entry>
<entry>octeon</entry>
</row>
<row>
<entry morerows="3">MIPS (little endian)</entry>
<entry morerows="3">mipsel</entry>
<entry>MIPS Malta (32 bit)</entry>
<entry>4kc-malta</entry>
</row><row>
<entry>MIPS Malta (64 bit)</entry>
<entry>5kc-malta</entry>
</row><row>
<entry>Cavium Octeon</entry>
<entry>octeon</entry>
</row><row>
<entry>Loongson 3</entry>
<entry>loongson-3</entry>
</row>
<row>
<entry morerows="0">IBM/Motorola PowerPC</entry>
<entry morerows="0">powerpc</entry>
<entry></entry>
<entry></entry>
<!--
<entry>PowerMac</entry>
<entry>pmac</entry>
</row><row>
<entry>PReP</entry>
<entry>prep</entry>
-->
</row>
<row>
<entry>Power Systems</entry>
<entry>ppc64el</entry>
<entry>IBM POWER8 or newer machines</entry>
<entry></entry>
</row>
<!--
<row>
<entry morerows="1">Sun SPARC</entry>
<entry morerows="1">sparc</entry>
<entry>sun4u</entry>
<entry morerows="1">sparc64</entry>
</row><row>
<entry>sun4v</entry>
</row>
-->
<!--
<row>
<entry>IBM S/390</entry>
<entry>s390</entry>
<entry>IPL from VM-reader and DASD</entry>
<entry>generic</entry>
</row>
-->
<row>
<entry>64bit IBM S/390</entry>
<entry>s390x</entry>
<entry>IPL from VM-reader and DASD</entry>
<entry>generic</entry>
</row>
</tbody></tgroup></informaltable>
</para>
<para>
This document covers installation for the <emphasis>&arch-title;</emphasis>
architecture using the <emphasis>&arch-kernel;</emphasis> kernel.
If you are looking
for information on any of the other &debian;-supported architectures
take a look at the
<ulink url="http://www.debian.org/ports/">&debian;-Ports</ulink> pages.
</para>
<para condition="new-arch">
This is the first official release of &debian-gnu; for the &arch-title;
architecture. We feel that it has proven itself sufficiently to be
released. However, because it has not had the exposure (and hence
testing by users) that some other architectures have had, you may
encounter a few bugs. Use our
<ulink url="&url-bts;">Bug Tracking System</ulink> to report any
problems; make sure to mention the fact that the bug is on the
&arch-title; platform using the <emphasis>&arch-kernel;</emphasis> kernel.
It can be necessary to use the
<ulink url="&url-list-subscribe;">debian-&arch-listname; mailing list</ulink>
as well.
</para>
</sect2>
<!-- supported cpu docs -->
&supported-amd64.xml;
&supported-arm.xml;
&supported-i386.xml;
&supported-mips.xml;
&supported-mips64el.xml;
&supported-mipsel.xml;
&supported-powerpc.xml;
&supported-s390.xml;
&supported-sparc.xml;
<sect2 arch="x86" id="laptops"><title>Laptops</title>
<para>
From a technical point of view, laptops are normal PCs, so all information
regarding PC systems applies to laptops as well. Installations
on laptops nowadays usually work out of the box, including things like
automatically suspending the system on closing the lid and laptop specfic
hardware buttons like those for disabling the wifi interfaces (<quote>airplane
mode</quote>). Nonetheless sometimes the hardware vendors use specialized or
proprietary hardware for some laptop-specific functions which
might not be supported. To see if your particular laptop works well
with GNU/Linux, see for example the
<ulink url="&url-x86-laptop;">Linux Laptop pages</ulink>.
</para>
</sect2>
<sect2 condition="defaults-smp">
<title>Multiple Processors</title>
<para>
Multiprocessor support — also called <quote>symmetric
multiprocessing</quote> or SMP — is available for this
architecture. Having multiple processors in a computer was originally
only an issue for high-end server systems but has become common in
recent years nearly everywhere with
the introduction of so called <quote>multi-core</quote> processors. These contain
two or more processor units, called <quote>cores</quote>, in one physical chip.
</para><para>
The standard &debian; &release; kernel image has been compiled with SMP support.
It is also usable on non-SMP systems without problems.
</para>
</sect2>
<sect2 condition="smp-alternatives">
<title>Multiple Processors</title>
<para>
Multiprocessor support — also called <quote>symmetric
multiprocessing</quote> or SMP — is available for this architecture.
The standard &debian; &release; kernel image has been compiled with
<firstterm>SMP-alternatives</firstterm> support. This means that the kernel
will detect the number of processors (or processor cores) and will
automatically deactivate SMP on uniprocessor systems.
</para><para>
Having multiple processors in a computer was originally
only an issue for high-end server systems but has become common in
recent years nearly everywhere with
the introduction of so called <quote>multi-core</quote> processors. These contain
two or more processor units, called <quote>cores</quote>, in one physical chip.
</para>
</sect2>
<sect2 condition="supports-smp">
<title>Multiple Processors</title>
<para>
Multiprocessor support — also called <quote>symmetric
multiprocessing</quote> or SMP — is available for this architecture.
However, the standard &debian; &release; kernel image does not support
SMP. This should not prevent installation, since the standard,
non-SMP kernel should boot on SMP systems; the kernel will simply use
only the first CPU.
</para><para>
In order to take advantage of multiple processors, you'll have to
replace the standard &debian; kernel.<phrase arch="linux-any"> You can find a discussion of how
to do this in <xref linkend="kernel-baking"/>. At this time
(kernel version &kernelversion;) the way you enable SMP is to select
<quote>&smp-config-option;</quote> in the <quote>&smp-config-section;</quote>
section of the kernel config.</phrase>
</para>
</sect2>
<sect2 condition="supports-smp-sometimes">
<title>Multiple Processors</title>
<para>
Multiprocessor support — also called <quote>symmetric
multiprocessing</quote> or SMP — is available for this architecture,
and is supported by a precompiled &debian; kernel image. Depending on your
install media, this SMP-capable kernel may or may not be installed by
default. This should not prevent installation, since the standard,
non-SMP kernel should boot on SMP systems; the kernel will simply use
the first CPU.
</para><para>
In order to take advantage of multiple processors, you should check to see
if a kernel package that supports SMP is installed, and if not, choose an
appropriate kernel package.
</para><para>
You can also build your own customized kernel to support SMP.<phrase arch="linux-any"> You can find
a discussion of how to do this in <xref linkend="kernel-baking"/>. At this
time (kernel version &kernelversion;) the way you enable SMP is to select
<quote>&smp-config-option;</quote> in the <quote>&smp-config-section;</quote>
section of the kernel config.</phrase>
</para>
</sect2>
<sect2 id="gfx" arch="not-s390"><title>Graphics Hardware Support</title>
<para>
&debian;'s support for graphical interfaces is determined by the
underlying support found in X.Org's X11 system, and the kernel. Basic
framebuffer graphics is provided by the kernel, whilst desktop
environments use X11. Whether advanced graphics card features such as
3D-hardware acceleration or hardware-accelerated video are available,
depends on the actual graphics hardware used in the system and in some
cases on the installation of additional <quote>firmware</quote> images
(see <xref linkend="hardware-firmware"/>).
</para>
<para arch="x86">
On modern PCs, having a graphical display usually works out of the
box. In very few cases there have been reports about hardware on
which installation of additional graphics card firmware was required
even for basic graphics support, but these have been rare exceptions.
For quite a lot of hardware, 3D acceleration also works well out of
the box, but there is still some hardware that needs binary blobs to
work well.
</para>
<para arch="arm">
Nearly all ARM machines have the graphics hardware built-in, rather
than being on a plug-in card. Some machines do have expansion slots
which will take graphics cards, but that is a rarity. Hardware
designed to be headless with no graphics at all is quite common.
Whilst basic framebuffer video provided by the kernel should work on
all devices that have graphics, fast 3D graphics invariably needs
binary drivers to work. The situation is changing quickly but at
the time of the &releasename; release free drivers for nouveau (Nvidia
Tegra K1 SoC) and freedreno (Qualcomm Snapdragon SoCs) are available in
the release. Other hardware needs non-free drivers from 3rd parties.
</para>
<para>
Details on supported graphics hardware and pointing devices can be found at
<ulink url="&url-xorg;"></ulink>. &debian; &release; ships
with X.Org version &x11ver;.
</para><para arch="mips">
<!-- FIXME: mention explicit graphics chips and not system names -->
The X.Org X Window System is only supported on the SGI Indy and the O2.
</para><para arch="sparc">
Most graphics options commonly found on Sparc-based machines are supported.
X.org graphics drivers are available for sunbw2, suncg14, suncg3, suncg6,
sunleo and suntcx framebuffers, Creator3D and Elite3D cards (sunffb driver),
PGX24/PGX64 ATI-based video cards (ati driver), and PermediaII-based cards
(glint driver). To use an Elite3D card with X.org you additionally need to
install the <classname>afbinit</classname> package, and read the documentation
included with it on how to activate the card.
</para><para arch="sparc">
It is not uncommon for a Sparc machine to have two graphics cards in a
default configuration. In such a case there is a possibility that the
Linux kernel will not direct its output to the card initially used by the
firmware. The lack of output on the graphical console may then be mistaken
for a hang (usually the last message seen on console is 'Booting Linux...').
One possible solution is to physically remove one of the video cards;
another option is to disable one of the cards using a kernel boot parameter.
Also, if graphical output is not required or desired, serial console may be
used as an alternative. On some systems use of serial console can be
activated automatically by disconnecting the keyboard before booting the
system.
</para>
</sect2>
&network-cards.xml;
&accessibility-hardware.xml;
&supported-peripherals.xml;
</sect1>
<sect1 arch="not-s390" id="hardware-firmware">
<title>Devices Requiring Firmware</title>
<para>
Besides the availability of a device driver, some hardware also requires
so-called <firstterm>firmware</firstterm> or <firstterm>microcode</firstterm>
to be loaded into the device before it can become operational. This is most
common for network interface cards (especially wireless NICs), but for example
some USB devices and even some hard disk controllers also require firmware.
With many graphics cards, basic functionality is available without
additional firmware, but the use of advanced features requires an
appropriate firmware file to be installed in the system.
</para><para>
On many older devices which require firmware to work, the firmware file was
permanently placed in an EEPROM/Flash chip on the device itself by the
manufacturer. Nowadays most new devices do not have the firmware embedded
this way anymore, so the firmware file must be uploaded into the device by
the host operating system every time the system boots.
</para><para>
In most cases firmware is non-free according to the criteria used by the
&debian-gnu; project and thus cannot be included in the main distribution
or in the installation system. If the device driver itself is included in
the distribution and if &debian-gnu; legally can distribute the firmware,
it will often be available as a separate package from the non-free section
of the archive.
</para><para>
However, this does not mean that such hardware cannot be used during an
installation. Starting with &debian-gnu; 5.0, &d-i; supports loading
firmware files or packages containing firmware from a removable medium,
such as a USB stick.
See <xref linkend="loading-firmware"/> for detailed information on how to
load firmware files or packages during the installation.
</para><para>
If the &d-i; prompts for a firmware file and you do not have this firmware
file available or do not want to install a non-free firmware file on your
system, you can try to proceed without loading the firmware. There are
several cases where a driver prompts for additional firmware because it may
be needed under certain circumstances, but the device does work without it
on most systems (this e.g. happens with certain network cards using the tg3
driver).
</para>
</sect1>
|