summaryrefslogtreecommitdiff
path: root/cs/boot-installer/arm.xml
blob: 171c326ba95cc7ed4bd53edc9bdbc0a129099f08 (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
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
<!-- $Id$ -->
<!-- original version: 69213 -->

  <sect2 arch="arm" id="boot-image-formats">
  <title>Formáty zaváděcích obrazů</title>
<para>

Systémy založené na architektuře ARM většinou používají dva formáty
zaváděcích obrazů:

<itemizedlist>
<listitem><para>

Standardní linuxové jádro ve formátu zImage (<quote>vmlinuz</quote>)
spolu se standardním linuxovým ramdiskem (<quote>initrd.gz</quote>).

</para></listitem>
<listitem><para>

Jádro ve formátu uImage (<quote>uImage</quote>) ve spojení
s odpovídajícím ramdiskem (<quote>uInitrd</quote>).

</para></listitem>
</itemizedlist>

</para><para>

Formáty uImage/uInitrd jsou speciálně navrženy pro firmware u-boot,
který se používá na mnoha ARMových systémech. Starší verze u-bootu
uměly zavádět pouze soubory ve formátu uImage/uInitrd, proto se
používají hlavně na starších systémech armel. Novější verze u-bootu
již umí kromě uImage/uInitrd zavádět také standardní linuxová jádra
a initrd, ale syntaxe se trošku liší.

</para><para>

Na systémech používajících multiplatformní jádro je kromě jádra
a initrd ještě zapotřebí soubor se stromem zařízení (device-tree blob,
<quote>dtb</quote>), který je specifický pro každý systém a obsahuje
popis toho konkrétního hardwaru.

</para>
  </sect2>

  <sect2 arch="arm" id="boot-tftp"><title>Zavedení z TFTP</title>

&boot-installer-intro-net.xml;

   <sect3 arch="arm" id="boot-tftp-uboot">
   <title>Zavedení z TFTP přes u-boot</title>
<para>

Zavedení ze sítě přes firmware u-boot se skládá ze tří kroků:
nastavení sítě, zavedení obrazů jádra, initrd a dtb do paměti
a konečně spuštění nahraného jádra.

</para><para>

Síť můžete nastavit buď automaticky pomocí DHCP:

<informalexample><screen>
<userinput>setenv autoload no</userinput>
<userinput>dhcp</userinput>
</screen></informalexample>

nebo ručně nastavením několika proměnných:

<informalexample><screen>
<userinput>setenv ipaddr <replaceable>ip_adresa_klienta</replaceable></userinput>
<userinput>setenv netmask <replaceable>maska</replaceable></userinput>
<userinput>setenv serverip <replaceable>ip_adresa_TFTF_serveru</replaceable></userinput>
<userinput>setenv dnsip <replaceable>ip_adresa_DNS_serveru</replaceable></userinput>
<userinput>setenv gatewayip <replaceable>ip_adresa_výchozí_brány</replaceable></userinput>
</screen></informalexample>

Budete-li chtít toto nastavení uložit trvale, použijte příkaz

<informalexample><screen>
<userinput>saveenv</userinput>
</screen></informalexample>

</para><para>

Nyní musíte nahrát obrazy jádra, initrd a dtb do paměti, což se
provádí příkazem <command>tftpboot</command>. jako parametr příkazu
musíte zadat adresu v paměti, na kterou se má obraz nahrát. Bohužel,
mapa paměti se liší systém od systému a proto zde nemůžeme vypsat
pevné adresy platné pro všechny.

</para><para>

Na některých systémech si u-boot předdefinovává proměnné prostředí
s vhodnými adresami. Jsou to proměnné
<literal>kernel_addr_r</literal>, <literal>ramdisk_addr_r</literal>
a <literal>fdt_addr_r</literal>. Zda jsou ve vašem případě nastaveny,
a připraveny k použití, si můžete ověřit příkazem

<informalexample><screen>
<userinput>printenv kernel_addr_r ramdisk_addr_r fdt_addr_r</userinput>
</screen></informalexample>

Nejsou-li definovány, budete si muset konkrétní hodnoty zjistit
v dokumentaci k vašemu systému a nastavit je ručně. Například na
systémech založených na SOC Allwinner SunXi (třeba Allwinner A10,
architektura <quote>sun4i</quote> nebo Allwinner A20, architektura
<quote>sun7i</quote>) můžete použít následující hodnoty:

<informalexample><screen>
<userinput>setenv kernel_addr_r 0x46000000</userinput>
<userinput>setenv fdt_addr_r 0x47000000</userinput>
<userinput>setenv ramdisk_addr_r 0x48000000</userinput>
</screen></informalexample>

</para><para>

Po nastavení adres můžete stáhnout obrazy z dříve definovaného TFTP
serveru a nahrát je do paměti příkazy:

<informalexample><screen>
<userinput>tftpboot ${kernel_addr_r} <replaceable>název_souboru_s_obrazem_jádra</replaceable></userinput>
<userinput>tftpboot ${fdt_addr_r} <replaceable>název_souboru_s_dtb</replaceable></userinput>
<userinput>tftpboot ${ramdisk_addr_r} <replaceable>název_souboru_s_obrazem_initrd</replaceable></userinput>
</screen></informalexample>

</para><para>

Nyní zbývá nastavit parametry jádra a spustit ho. U-boot předá jádru
parametry přes proměnnou prostředí <literal>bootargs</literal>, takže
do ní nastavte veškeré potřebné parametry jádra a instalačního
systému, jako je třeba konzole (<xref linkend="boot-console"/>) nebo
přednastavení (<xref linkend="installer-args"/> a <xref
linkend="appendix-preseed"/>). Například:

<informalexample><screen>
<userinput>setenv bootargs console=ttyS0,115200 rootwait panic=10</userinput>
</screen></informalexample>

Samotné spuštění jádra závisí na použitém formátu. Pro uImage/uInitrd
vypadá příkaz následovně:

<informalexample><screen>
<userinput>bootm ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}</userinput>
</screen></informalexample>

a pro nativní linuxový formát takto:

<informalexample><screen>
<userinput>bootz ${kernel_addr_r} ${ramdisk_addr_r}:${filesize} ${fdt_addr_r}</userinput>
</screen></informalexample>

</para><note><para>

Při zavádění standardních linuxových obrazů je důležité nahrát obraz
úvodního ramdisku až po jádru a dtb, jelikož u-boot automaticky uloží
do proměnné <literal>filesize</literal> velikost posledně nahraného
souboru. Aby příkaz <command>bootz</command> fungoval správně,
potřebuje znát velikost ramdisku, kterou mu předáte právě z proměnné
<literal>filesize</literal>. Jestliže zavádíte jádro sestavené pro
konkrétní platformu (tj. bez stromu zařízení), jednoduše vynechte
parametr <literal>${fdt_addr_r}</literal>.

</para></note>
   </sect3>
  </sect2>

<!-- # None of the arm systems supported in Jessie is able to boot from
     # CD/DVD -> commenting out the "Booting from CD-ROM section" for arm

  <sect2 arch="arm"><title>Zavedení z CD-ROM</title>

&boot-installer-intro-cd.xml;

  </sect2>
-->

<!--
  <sect2 arch="arm" id="boot-firmware">
  <title>Zavedení z firmwaru</title>

&boot-installer-intro-firmware.xml;

   <sect3 arch="arm" id="boot-firmware-ss4000e">
   <title>Zavedení SS4000-E</title>
<para>

Kvůli omezením ve firmwaru SS4000-E není v současnosti možné zavést
instalační systém bez použití sériového portu. Pro zavedení instalace
budete potřebovat sériový nullmodemový kabel, počítač se sériovým
portem <footnote id="arm-s4ke-port"><para>

Měl by fungovat i převodník sériového portu na USB.

</para></footnote> a plochý kabel se samčím konektorem DB9 na jednom
konci a s 10 pinovou IDC hlavičkou o rozteči 0.1 palce na
druhém<footnote id="arm-s4k-rib"><para>

Tento kabel se často nachází ve starších desktopových počítačích se
zabudovanými 9 pinovými sériovými porty.

</para></footnote>.

</para><para>

Pro zavedení SS4000-E připojte sériový port SS4000-E pomocí
nullmodemového a plochého kabelu a stroj restartujte. Pro komunikaci
se zařízením potřebujete aplikaci schopnou používat sériový
terminál. Na &debian;u je vhodnou volbou program
<command>cu</command> ze stejnojmenného balíku. Předpokládejme, že
používáte sériový port <filename>/dev/ttyS0</filename>; pak můžete
použít příkaz:

</para>

<informalexample><screen>
<userinput>cu -lttyS0 -s115200</userinput>
</screen></informalexample>

<para>

Na systémech Windows můžete zkusit použít program
<classname>hyperterminal</classname>. Použijte rychlost 115200 baudů,
délku slova 8 bitů, žádné stop bity a jeden paritní bit.

</para><para>

Při zavádění počítače uvidíte mimo jiné následující výstup:

</para>

<informalexample><screen>
No network interfaces found

EM-7210 ver.T04 2005-12-12 (For ver.AA)
== Executing boot script in 1.000 seconds - enter ^C to abort
</screen></informalexample>

<para>

V tento okamžik přerušte zavaděč stiskem
<keycombo><keycap>Control</keycap>
<keycap>C</keycap></keycombo><footnote id="arm-s4ke-sec"><para>

Na přerušení máte pouze jednu sekundu; pokud toto krátké okno
nestihnete, jednoduše stroj vypněte, zapněte a zkuste to znovu.

</para></footnote>, což zobrazí výzvu RedBootu. Zadejte následující
příkazy:

<informalexample><screen>
<userinput>load -v -r -b 0x01800000 -m ymodem ramdisk.gz</userinput>
<userinput>load -v -r -b 0x01008000 -m ymodem zImage</userinput>
<userinput>exec -c "console=ttyS0,115200 rw root=/dev/ram mem=256M@0xa0000000" -r 0x01800000</userinput>
</screen></informalexample>

</para><para>

Po každém příkazu <command>load</command> očekává systém přenos
souboru protokolem YMODEM. Používáte-li <command>cu</command>,
ujistěte se, že máte nainstalovaný balík <classname>lrzsz</classname>
a stiskněte &enterkey; následovaný escape sekvencí
<quote>~&lt;</quote> pro spuštění externího programu. Následně zadejte
příkaz <command>sb initrd.gz</command> resp.
<command>sb vmlinuz</command>.

</para><para>

Alternativně je možné místo použití protokolu YMODEM nahrát jádro a
ramdisk přes HTTP, což je dokonce rychlejší, ale vyžaduje funkční HTTP
server. V takovém případě nejprve přepněte zavaděč do režimu RAM:

<informalexample><screen>
<userinput>fis load rammode</userinput>
<userinput>g</userinput>
</screen></informalexample>

</para><para>

Tím se stroj jakoby restartuje, ale ve skutečnosti nahraje redboot do
RAM a restartuje odtamtud. Přeskočíte-li tento krok, systém se v tom
následujícím zasekne u příkazu ip_address.

</para><para>

Zavádění opět budete muset přerušit kombinací
<keycombo><keycap>Control</keycap> <keycap>C</keycap></keycombo>
a na výzvu zadat:

<informalexample><screen>
<userinput>ip_address -l <replaceable>192.168.2.249</replaceable> -h <replaceable>192.168.2.4</replaceable></userinput>
<userinput>load -v -r -b 0x01800000 -m http /initrd.gz</userinput>
<userinput>load -v -r -b 0x01008000 -m http /zImage</userinput>
<userinput>exec -c "console=ttyS0,115200 rw root=/dev/ram mem=256M@0xa0000000" -r 0x01800000</userinput>
</screen></informalexample>

kde <replaceable>192.168.2.249</replaceable> je IP adresa
instalovaného stroje a <replaceable>192.168.2.4</replaceable> je IP
adresa HTTP serveru, ze kterého se stáhnou příslušné soubory.

</para><para>

Instalace nyní bude pokračovat jako obvykle.

</para>
   </sect3>
  </sect2>
-->