blob: 6925ca1548ad7a1aafc4a0da74475488bd9a70f2 [file] [log] [blame]
Eric Park608ce5a2019-08-07 21:27:46 +08001
2
3
4
5<!doctype html>
6<html lang="en" class="no-js">
7 <head>
8
9 <meta charset="utf-8">
10 <meta name="viewport" content="width=device-width,initial-scale=1">
11 <meta http-equiv="x-ua-compatible" content="ie=edge">
12
13
14
15
16 <meta name="lang:clipboard.copy" content="Copy to clipboard">
17
18 <meta name="lang:clipboard.copied" content="Copied to clipboard">
19
20 <meta name="lang:search.language" content="en">
21
22 <meta name="lang:search.pipeline.stopwords" content="True">
23
24 <meta name="lang:search.pipeline.trimmer" content="True">
25
26 <meta name="lang:search.result.none" content="No matching documents">
27
28 <meta name="lang:search.result.one" content="1 matching document">
29
30 <meta name="lang:search.result.other" content="# matching documents">
31
32 <meta name="lang:search.tokenizer" content="[\s\-]+">
33
34 <link rel="shortcut icon" href="../../assets/images/favicon.png">
Eric Park45174ca2019-10-21 01:38:33 +080035 <meta name="generator" content="mkdocs-1.0.4, mkdocs-material-4.4.3">
Eric Park608ce5a2019-08-07 21:27:46 +080036
37
38
39 <title>Troubleshooting - Team Bliss</title>
40
41
42
Eric Park45174ca2019-10-21 01:38:33 +080043 <link rel="stylesheet" href="../../assets/stylesheets/application.30686662.css">
Eric Park608ce5a2019-08-07 21:27:46 +080044
45
46
47
48 <script src="../../assets/javascripts/modernizr.74668098.js"></script>
49
50
51
52 <link href="https://fonts.gstatic.com" rel="preconnect" crossorigin>
53 <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,400i,700|Roboto+Mono&display=fallback">
54 <style>body,input{font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif}code,kbd,pre{font-family:"Roboto Mono","Courier New",Courier,monospace}</style>
55
56
57 <link rel="stylesheet" href="../../assets/fonts/material-icons.css">
58
59
60
61
62
63
64 </head>
65
66 <body dir="ltr">
67
68 <svg class="md-svg">
69 <defs>
70
71
72 </defs>
73 </svg>
74 <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
75 <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
76 <label class="md-overlay" data-md-component="overlay" for="__drawer"></label>
77
78 <a href="#troubleshooting" tabindex="1" class="md-skip">
79 Skip to content
80 </a>
81
82
83 <header class="md-header" data-md-component="header">
84 <nav class="md-header-nav md-grid">
85 <div class="md-flex">
86 <div class="md-flex__cell md-flex__cell--shrink">
87 <a href="../.." title="Team Bliss" class="md-header-nav__button md-logo">
88
89 <i class="md-icon"></i>
90
91 </a>
92 </div>
93 <div class="md-flex__cell md-flex__cell--shrink">
94 <label class="md-icon md-icon--menu md-header-nav__button" for="__drawer"></label>
95 </div>
96 <div class="md-flex__cell md-flex__cell--stretch">
97 <div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
98
99 <span class="md-header-nav__topic">
100 Team Bliss
101 </span>
102 <span class="md-header-nav__topic">
103
104 Troubleshooting
105
106 </span>
107
108 </div>
109 </div>
110 <div class="md-flex__cell md-flex__cell--shrink">
111
112 <label class="md-icon md-icon--search md-header-nav__button" for="__search"></label>
113
114<div class="md-search" data-md-component="search" role="dialog">
115 <label class="md-search__overlay" for="__search"></label>
116 <div class="md-search__inner" role="search">
117 <form class="md-search__form" name="search">
118 <input type="text" class="md-search__input" name="query" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="query" data-md-state="active">
119 <label class="md-icon md-search__icon" for="__search"></label>
120 <button type="reset" class="md-icon md-search__icon" data-md-component="reset" tabindex="-1">
121 &#xE5CD;
122 </button>
123 </form>
124 <div class="md-search__output">
125 <div class="md-search__scrollwrap" data-md-scrollfix>
126 <div class="md-search-result" data-md-component="result">
127 <div class="md-search-result__meta">
128 Type to start searching
129 </div>
130 <ol class="md-search-result__list"></ol>
131 </div>
132 </div>
133 </div>
134 </div>
135</div>
136
137 </div>
138
139 </div>
140 </nav>
141</header>
142
143 <div class="md-container">
144
145
146
147
Eric Park45174ca2019-10-21 01:38:33 +0800148 <main class="md-main" role="main">
Eric Park608ce5a2019-08-07 21:27:46 +0800149 <div class="md-main__inner md-grid" data-md-component="container">
150
151
152 <div class="md-sidebar md-sidebar--primary" data-md-component="navigation">
153 <div class="md-sidebar__scrollwrap">
154 <div class="md-sidebar__inner">
155 <nav class="md-nav md-nav--primary" data-md-level="0">
156 <label class="md-nav__title md-nav__title--site" for="__drawer">
157 <a href="../.." title="Team Bliss" class="md-nav__button md-logo">
158
159 <i class="md-icon"></i>
160
161 </a>
162 Team Bliss
163 </label>
164
165 <ul class="md-nav__list" data-md-scrollfix>
166
167
168
169
170
171
172 <li class="md-nav__item">
Eric Park5e3a1012019-08-12 13:17:03 +0800173 <a href="../.." title="Home" class="md-nav__link">
174 Home
Eric Park608ce5a2019-08-07 21:27:46 +0800175 </a>
176 </li>
177
178
179
180
181
182
183
184
185
186 <li class="md-nav__item md-nav__item--active md-nav__item--nested">
187
188 <input class="md-toggle md-nav__toggle" data-md-toggle="nav-2" type="checkbox" id="nav-2" checked>
189
190 <label class="md-nav__link" for="nav-2">
191 Bliss OS
192 </label>
193 <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
194 <label class="md-nav__title" for="nav-2">
195 Bliss OS
196 </label>
197 <ul class="md-nav__list" data-md-scrollfix>
198
199
200
201
202
203
204
205 <li class="md-nav__item">
206 <a href="../" title="Index" class="md-nav__link">
207 Index
208 </a>
209 </li>
210
211
212
213
214
215
216
217 <li class="md-nav__item">
Eric Park5e3a1012019-08-12 13:17:03 +0800218 <a href="../build-guide/" title="Build Guide" class="md-nav__link">
219 Build Guide
220 </a>
221 </li>
222
223
224
225
226
227
228
229 <li class="md-nav__item">
Eric Park608ce5a2019-08-07 21:27:46 +0800230 <a href="../extras/" title="Extras" class="md-nav__link">
231 Extras
232 </a>
233 </li>
234
235
236
237
238
239
240
241 <li class="md-nav__item">
Eric Parkd09b00e2020-02-15 11:07:48 +0900242 <a href="../installation-guide-misc/" title="Installation Guide (Misc)" class="md-nav__link">
243 Installation Guide (Misc)
244 </a>
245 </li>
246
247
248
249
250
251
252
253 <li class="md-nav__item">
254 <a href="../installation-guide-surface-devices/" title="Installation Guide (Surface devices)" class="md-nav__link">
255 Installation Guide (Surface devices)
256 </a>
257 </li>
258
259
260
261
262
263
264
265 <li class="md-nav__item">
Eric Park608ce5a2019-08-07 21:27:46 +0800266 <a href="../installation-guide/" title="Installation Guide" class="md-nav__link">
267 Installation Guide
268 </a>
269 </li>
270
271
272
273
274
275
276
277
278
279 <li class="md-nav__item md-nav__item--active">
280
281 <input class="md-toggle md-nav__toggle" data-md-toggle="toc" type="checkbox" id="__toc">
282
283
284
285
286 <label class="md-nav__link md-nav__link--active" for="__toc">
287 Troubleshooting
288 </label>
289
290 <a href="./" title="Troubleshooting" class="md-nav__link md-nav__link--active">
291 Troubleshooting
292 </a>
293
294
295<nav class="md-nav md-nav--secondary">
296
297
298
299
300
301 <label class="md-nav__title" for="__toc">Table of contents</label>
302 <ul class="md-nav__list" data-md-scrollfix>
303
304 <li class="md-nav__item">
Eric Park45174ca2019-10-21 01:38:33 +0800305 <a href="#32-bit-processors-only-intel-atom-and-similar" class="md-nav__link">
306 32-bit processors only (Intel Atom and similar)
307 </a>
308
309</li>
310
311 <li class="md-nav__item">
312 <a href="#grub2-kernel-parameters-and-options" class="md-nav__link">
Eric Park608ce5a2019-08-07 21:27:46 +0800313 grub2 kernel parameters and options
314 </a>
315
316</li>
317
318
319
320
321
322 </ul>
323
324</nav>
325
326 </li>
327
328
329 </ul>
330 </nav>
331 </li>
332
333
334
335
336
337
338
339 <li class="md-nav__item md-nav__item--nested">
340
341 <input class="md-toggle md-nav__toggle" data-md-toggle="nav-3" type="checkbox" id="nav-3">
342
343 <label class="md-nav__link" for="nav-3">
344 BlissRoms
345 </label>
346 <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
347 <label class="md-nav__title" for="nav-3">
348 BlissRoms
349 </label>
350 <ul class="md-nav__list" data-md-scrollfix>
351
352
353
354
355
356
357
358 <li class="md-nav__item">
359 <a href="../../BlissRoms/" title="Index" class="md-nav__link">
360 Index
361 </a>
362 </li>
363
364
365
366
367
368
369
370 <li class="md-nav__item">
371 <a href="../../BlissRoms/build-guide/" title="Build Guide" class="md-nav__link">
372 Build Guide
373 </a>
374 </li>
375
376
377
378
379
380
381
382 <li class="md-nav__item">
383 <a href="../../BlissRoms/build-tips/" title="Build Tips" class="md-nav__link">
384 Build Tips
385 </a>
386 </li>
387
388
389 </ul>
390 </nav>
391 </li>
392
393
394
395
396
397
398
399 <li class="md-nav__item md-nav__item--nested">
400
401 <input class="md-toggle md-nav__toggle" data-md-toggle="nav-4" type="checkbox" id="nav-4">
402
403 <label class="md-nav__link" for="nav-4">
404 Common
405 </label>
406 <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
407 <label class="md-nav__title" for="nav-4">
408 Common
409 </label>
410 <ul class="md-nav__list" data-md-scrollfix>
411
412
413
414
415
416
417
418 <li class="md-nav__item">
419 <a href="../../common/" title="Index" class="md-nav__link">
420 Index
421 </a>
422 </li>
423
424
425
426
427
428
429
430 <li class="md-nav__item">
431 <a href="../../common/git-started/" title="Git Started" class="md-nav__link">
432 Git Started
433 </a>
434 </li>
435
436
437
438
439
440
441
442 <li class="md-nav__item">
Eric Park8584eda2019-09-02 09:45:55 +0800443 <a href="../../common/maintaining-proper-authorship/" title="Maintaining proper authorship" class="md-nav__link">
444 Maintaining proper authorship
445 </a>
446 </li>
447
448
449
450
451
452
453
454 <li class="md-nav__item">
Eric Park608ce5a2019-08-07 21:27:46 +0800455 <a href="../../common/using-dippy-bird/" title="Using `dippy-bird`" class="md-nav__link">
456 Using `dippy-bird`
457 </a>
458 </li>
459
460
461 </ul>
462 </nav>
463 </li>
464
465
466
467
468
469
470
471 <li class="md-nav__item md-nav__item--nested">
472
473 <input class="md-toggle md-nav__toggle" data-md-toggle="nav-5" type="checkbox" id="nav-5">
474
475 <label class="md-nav__link" for="nav-5">
476 Infrastructure
477 </label>
478 <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
479 <label class="md-nav__title" for="nav-5">
480 Infrastructure
481 </label>
482 <ul class="md-nav__list" data-md-scrollfix>
483
484
485
486
487
488
489
490 <li class="md-nav__item">
491 <a href="../../infrastructure/" title="Index" class="md-nav__link">
492 Index
493 </a>
494 </li>
495
496
497 </ul>
498 </nav>
499 </li>
500
501
502 </ul>
503</nav>
504 </div>
505 </div>
506 </div>
507
508
509 <div class="md-sidebar md-sidebar--secondary" data-md-component="toc">
510 <div class="md-sidebar__scrollwrap">
511 <div class="md-sidebar__inner">
512
513<nav class="md-nav md-nav--secondary">
514
515
516
517
518
519 <label class="md-nav__title" for="__toc">Table of contents</label>
520 <ul class="md-nav__list" data-md-scrollfix>
521
522 <li class="md-nav__item">
Eric Park45174ca2019-10-21 01:38:33 +0800523 <a href="#32-bit-processors-only-intel-atom-and-similar" class="md-nav__link">
524 32-bit processors only (Intel Atom and similar)
525 </a>
526
527</li>
528
529 <li class="md-nav__item">
530 <a href="#grub2-kernel-parameters-and-options" class="md-nav__link">
Eric Park608ce5a2019-08-07 21:27:46 +0800531 grub2 kernel parameters and options
532 </a>
533
534</li>
535
536
537
538
539
540 </ul>
541
542</nav>
543 </div>
544 </div>
545 </div>
546
547
548 <div class="md-content">
549 <article class="md-content__inner md-typeset">
550
551
552
553 <h1 id="troubleshooting">Troubleshooting</h1>
Eric Park45174ca2019-10-21 01:38:33 +0800554<h2 id="32-bit-processors-only-intel-atom-and-similar">32-bit processors only (Intel Atom and similar)</h2>
555<ol>
Eric Parkfaec4202019-10-21 01:46:53 +0800556<li>Install <a href="https://www.android-x86.org/">Android-x86 32-bit OS from here</a> (doesn't matter which version, as long as it's 32-bit)</li>
Eric Park45174ca2019-10-21 01:38:33 +0800557<li>Update with Bliss OS 32-bit (current version is 11.9). After reboot you should be able to access the <code>grub</code> menu.</li>
558<li>In <code>grub</code> menu select "Debug mode"</li>
559<li>Run the following commands:
560 <pre><code>mount -o remount, rw /mnt
561cd /mnt/grub
Eric Parkfaec4202019-10-21 01:46:53 +0800562nano menu.lst</code></pre></li>
Eric Park4f3099f2019-10-21 08:56:15 +0800563<li>Add <code>nomodeset</code> before every <code>SCR=/bliss...</code> line. For example, your configuration should look something like this:
564 <pre><code>default=0
565timeout=6
566splashimage=/grub/android-x86.xpm.gz
567root (hd0,0)
568title Bliss-OS 11.7
569 kernel /bliss-x86-11.7/kernel quiet root=/dev/ram0 androidboot.selinux=permissive androidboot.hardware=android_x86 vmalloc=192M androidboot.hardware=android_x86_64 nomodeset SRC=/bliss-x86-11.7
570 initrd /bliss-x86-11.7/initrd.img
571title Bliss-OS 11.7 (Legacy modprobe mode)
572 kernel /bliss-x86-11.7/kernel root=/dev/ram0 androidboot.selinux=permissive androidboot.hardware=android_x86 vmalloc=192M androidboot.hardware=android_x86_64 AUTO_LOAD=old nomodeset SRC=/bliss-x86-11.7
573 initrd /bliss-x86-11.7/initrd.img
574title Bliss-OS 11.7 (Debug mode)
575 kernel /bliss-x86-11.7/kernel root=/dev/ram0 androidboot.selinux=permissive androidboot.hardware=android_x86 vmalloc=192M DEBUG=2 androidboot.hardware=android_x86_64 nomodeset SRC=/bliss-x86-11.7
576 initrd /bliss-x86-11.7/initrd.img
577title Bliss-OS 11.7 (Debug nomodeset)
578 kernel /bliss-x86-11.7/kernel nomodeset root=/dev/ram0 androidboot.selinux=permissive androidboot.hardware=android_x86 vmalloc=192M DEBUG=2 androidboot.hardware=android_x86_64 nomodeset SRC=/bliss-x86-11.7
579 initrd /bliss-x86-11.7/initrd.img
580title Bliss-OS 11.7 (Debug video=LVDS-1:d)
581 kernel /bliss-x86-11.7/kernel video=LVDS-1:d root=/dev/ram0 androidboot.selinux=permissive androidboot.hardware=android_x86 vmalloc=192M DEBUG=2 nomodeset SRC=/bliss-x86-11.7
582 initrd /bliss-x86-11.7/initrd.img</code></pre></li>
Eric Park45174ca2019-10-21 01:38:33 +0800583<li>Press Ctrl+O to save, and then Ctrl+X to close.</li>
584<li>Type <code>reboot -f</code></li>
585</ol>
586<p>You should be finished! If all goes well you will boot into Bliss OS on your 32-bit machine.</p>
Eric Park608ce5a2019-08-07 21:27:46 +0800587<h2 id="grub2-kernel-parameters-and-options"><code>grub2</code> kernel parameters and options</h2>
588<p><strong>You will want to pay attention here!</strong> With Bliss OS on the PC, we tend to use quite a few command line options to get things working right. We've gathered a few of them here to explain them a little bit.</p>
589<p><a href="https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt">A full list of available kernel parameters can be found here.</a></p>
590<p>Brief options overview:</p>
591<ul>
592<li><code>parameter</code>: Description</li>
593<li><code>root=</code>: Root filesystem.</li>
594<li><code>rootflags=</code>: Root filesystem mount options.</li>
595<li><code>initrd=</code>: Specify the location of the initial ramdisk.</li>
596<li><code>init=</code>: Run specified binary instead of <code>/sbin/init</code> (symlinked to <code>systemd</code> in Arch) as <code>init</code> process.</li>
597<li><code>init=/bin/sh</code>: Boot to shell.</li>
598<li><code>systemd.unit=</code>: Boot to a specified target.</li>
599<li><code>nomodeset</code>: Disable kernel mode setting (useful for fixing video driver panics) This will load mostly everything in software rendering/support mode. No hardware acceleration. Good for debugging. </li>
600<li><code>panic=</code>: Time before automatic reboot on kernel panic.</li>
601<li><code>debug</code>: Enable kernel debugging (events log level).</li>
602<li><code>mem=</code>: Force usage of a specific amount of memory to be used.</li>
603<li><code>maxcpus=</code>: Maximum number of processors that an SMP kernel will bring up during bootup.</li>
604<li><code>selinux=</code>: Disable or enable SELinux at boot time.</li>
605<li><code>netdev=</code>: Network devices parameters.</li>
606<li><code>video=&lt;videosetting&gt;</code>: Override framebuffer video defaults.</li>
607<li><code>sleep=1</code>: This will enable the system.prop value for <code>sleep.earlysuspend=1</code>, and on some machines, it enables the proper sleep state.</li>
608<li><code>acpi_sleep=s3_bios,s3_mode</code>: Sometimes needed for older machines to enter sleep mode properly</li>
609<li><code>SETUPWIZARD=0</code>: This command will skip SetupWizard on boot. (Only needs to be run once!)</li>
610<li><code>AUTO_LOAD=old</code>: This will load android-x86 variants using the old <code>modprobe</code> method to init devices. We sometimes use this to debug devices not starting. </li>
611<li><code>DEBUG=1 &amp; DEBUG=2</code>: These enable verbose console debugging, giving another command shell after loading kernel modules, but before Android <code>init</code></li>
612<li><code>vga=xxx &amp; video=</code>: These are the common video modes that you can boot into if it doesn't pick the best choice automagically. You can also use <code>video=</code> as resolution parameters: <code>video=LVDS-1:d video=1366x800</code>. <a href="https://groups.google.com/forum/#!msg/android-x86/jSF3RnADnqA/1sfYdGV_AQAJ">Learn more from our own Henri Koivuneva!</a></li>
613<li><code>HWACCELL=1</code>: This will disable graphics hardware acceleration, enabling rendering through Swiftshader. (Must use this if running headless)</li>
614<li><code>buildvariant=eng, user, userdebug</code>: This is the commandline parameter to run the current build as <code>eng</code>, <code>userdebug</code>, or <code>user</code> </li>
615<li><code>DPI=xxx</code>: This will manually set the DPI on init. Use this if things are too big/small for you.</li>
616<li><code>fbcon=variablename</code>: This is to configure framebuffer to use various options. Usually used to help fix video settings, etc. Even default rotation on some Atom tablets. Example: <code>video=efifb fbcon=rotate:1</code></li>
Eric Park5ae1c6c2019-08-21 11:08:22 -0700617<li><code>VULKAN=1</code>: Required for Vulkan-supported chipsets. This enables <code>hwcomposer</code> to work right with screenshots and other things.</li>
Eric Park608ce5a2019-08-07 21:27:46 +0800618</ul>
Eric Park30fb8392020-02-02 12:23:28 +0900619<div class="admonition warning">
620<p class="admonition-title">Warning</p>
621<p>The following options can only be used on Android 9/10 builds released after 2020-02-02.</p>
622</div>
623<ul>
624<li><code>HWC=xxx</code>: Define <code>DRM_HWComposer</code> - options include <code>drm</code>, <code>drm_minigbm</code>, and <code>intel</code>.</li>
625<li><code>GRALLOC=xxx</code>: Define <code>DRM_Gralloc</code> - options include <code>gbm</code>, <code>minigbm</code>, and <code>intel</code>.</li>
626</ul>
Eric Park608ce5a2019-08-07 21:27:46 +0800627<p>As an example, here are a few of the boot options used in testing:</p>
628<pre><code>menuentry 'Bliss-x86 Test-Oreo' --class bliss {
629 search --file --no-floppy --set=root /AndroidOS/android.boot
630 linux /AndroidOS/kernel root=/dev/ram0 SRC=/AndroidOS androidboot.selinux=permissive androidboot.hardware=android_x86_64 buildvariant=eng quiet sleep.earlysuspend=2 DATA=
631 initrd /AndroidOS/initrd.img
632}
633
634menuentry 'Bliss-x86 Test-Oreo AUTO_LOAD=old' --class bliss {
635 search --file --no-floppy --set=root /AndroidOS/android.boot
636 linux /AndroidOS/kernel root=/dev/ram0 SRC=/AndroidOS androidboot.selinux=permissive androidboot.hardware=android_x86_64 buildvariant=eng quiet DATA= AUTO_LOAD=old
637 initrd /AndroidOS/initrd.img
638}
639
640menuentry 'Bliss-x86 Test-Oreo - SETUP_WIZARD=0' --class bliss {
641 search --file --no-floppy --set=root /AndroidOS/android.boot
642 linux /AndroidOS/kernel root=/dev/ram0 SRC=/AndroidOS androidboot.selinux=permissive buildvariant=eng SETUPWIZARD=0 quiet DATA=
643 initrd /AndroidOS/initrd.img
644}
645
646menuentry 'Bliss-x86 Test-Oreo - debug=1' --class bliss {
647 search --file --no-floppy --set=root /AndroidOS/android.boot
648 linux /AndroidOS/kernel root=/dev/ram0 SRC=/AndroidOS androidboot.selinux=permissive androidboot.hardware=android_x86_64 buildvariant=eng SETUPWIZARD=0 quiet DATA= DEBUG=1
649 initrd /AndroidOS/initrd.img
650}
651
652menuentry 'Bliss-x86 Test-Oreo - debug=2' --class bliss {
653 search --file --no-floppy --set=root /AndroidOS/android.boot
654 linux /AndroidOS/kernel root=/dev/ram0 SRC=/AndroidOS androidboot.selinux=permissive androidboot.hardware=android_x86_64 buildvariant=eng SETUPWIZARD=0 quiet DATA= DEBUG=2
655 initrd /AndroidOS/initrd.img
656}
657</code></pre>
658
659
660
661
662
663
664
665
666
667 </article>
668 </div>
669 </div>
670 </main>
671
672
673<footer class="md-footer">
674
675 <div class="md-footer-nav">
676 <nav class="md-footer-nav__inner md-grid">
677
678 <a href="../installation-guide/" title="Installation Guide" class="md-flex md-footer-nav__link md-footer-nav__link--prev" rel="prev">
679 <div class="md-flex__cell md-flex__cell--shrink">
680 <i class="md-icon md-icon--arrow-back md-footer-nav__button"></i>
681 </div>
682 <div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title">
683 <span class="md-flex__ellipsis">
684 <span class="md-footer-nav__direction">
685 Previous
686 </span>
687 Installation Guide
688 </span>
689 </div>
690 </a>
691
692
693 <a href="../../BlissRoms/" title="Index" class="md-flex md-footer-nav__link md-footer-nav__link--next" rel="next">
694 <div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title">
695 <span class="md-flex__ellipsis">
696 <span class="md-footer-nav__direction">
697 Next
698 </span>
699 Index
700 </span>
701 </div>
702 <div class="md-flex__cell md-flex__cell--shrink">
703 <i class="md-icon md-icon--arrow-forward md-footer-nav__button"></i>
704 </div>
705 </a>
706
707 </nav>
708 </div>
709
710 <div class="md-footer-meta md-typeset">
711 <div class="md-footer-meta__inner md-grid">
712 <div class="md-footer-copyright">
713
714 powered by
715 <a href="https://www.mkdocs.org">MkDocs</a>
716 and
717 <a href="https://squidfunk.github.io/mkdocs-material/">
718 Material for MkDocs</a>
719 </div>
720
721 </div>
722 </div>
723</footer>
724
725 </div>
726
Eric Park45174ca2019-10-21 01:38:33 +0800727 <script src="../../assets/javascripts/application.ac79c3b0.js"></script>
Eric Park608ce5a2019-08-07 21:27:46 +0800728
729 <script>app.initialize({version:"1.0.4",url:{base:"../.."}})</script>
730
731
732 </body>
733</html>