summaryrefslogtreecommitdiffstats
path: root/docs/grub/index.html
blob: e37d7d7ec576dc6e1d198c5cbce67852a54dcc58 (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
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">

	<style type="text/css">
		@import url('../css/main.css');
	</style>

	<title>GRUB payload</title>
</head>

<body>

	<div class="section">
		<h1 id="pagetop">GRUB payload</h1>
			<p>
				This section relates to the GRUB payload used in libreboot.
			</p>
			<p>
				Or <a href="../index.html">Back to main index</a>.
			</p>
			<ul>
				<li><a href="#grub_font">Setting font in GRUB</a></li>
				<li><a href="#grub_keyboard">GRUB keyboard layouts</a>
					<ul>
						<li><a href="#grub_custom_keyboard">Custom keyboard layout in GRUB</a></li>
						<li><a href="#grub_ukdvorak_keyboard">UK Dvorak keyboard layout in GRUB</a></li>
					</ul>
				</li>
			</ul>
	</div>

	<div class="section">

		<h1 id="grub_font">Setting font in GRUB (for reference)</h1>

			<p>You don't need to do this unless you would like to change the default font yourself.
			(this is just for reference. It has already been done for you)</p>

			<p>The old font used was Unifont, and this had some missing characters: for instance, the border showed ??? characters instead of lines.</p>

			<p>I tried DeJavu Sans Mono from this website:
			<a href="http://dejavu-fonts.org/wiki/Download">dejavu-fonts.org</a></p>

			<p>Specifically, the version that I chose was the latest at the time of writing (Saturday 21 June 2014):
			<a href="http://sourceforge.net/projects/dejavu/files/dejavu/2.34/dejavu-fonts-ttf-2.34.tar.bz2">this one</a></p>

			<p>This is a free font that is also contained in GNU/Linux distributions like Trisquel or Parabola.</p>

			<p><b>$ cd libreboot_src/grub</b><br/>
			compile grub ('build' script has the info on how to do this)<br/>
			come back out into libreboot_src/resources/grub:<br/>
			<b>$ cd ../libreboot_src/resources/grub/font</b></p>

			<p>I took Dejavu Sans Mono from dejavu (included in this version of libreboot) and did:<br/>
			<b>$ ../../../grub/grub-mkfont -o dejavusansmono.pf2 dejavu-fonts-ttf-2.34/ttf/DejaVuSansMono.ttf</b></p>

			<p>I then added the instructions to 'gen.sh' script in grub-assemble to include resources/grub/dejavusansmono.pf2
			in all of the ROM images, at the root of the GRUB memdisk.<br/>
			I then added that instructions to the grub.cfg files (to load the font):<br/>
			<b>loadfont (memdisk)/dejavusansmono.pf2</b></p>

			<p><a href="#pagetop">Back to top of page</a></p>
		
		</div>
		
	<div class="section">

		<h1 id="grub_keyboard">GRUB keyboard layouts (for reference)</h1>

			<div class="subsection">
				
				<h2 id="grub_custom_keyboard">Custom keyboard layout in GRUB (for reference)</h2>

					<p>
						Keymaps are stored in resources/utilities/grub-assemble/keymap/.
					</p>

					<p>
						Example (French Azerty):<br/>
						<b>$ ckbcomp fr &gt; frazerty</b><br/><br/>
						Go in grub directory:<br/>
						<b>cat frazerty | ./grub/grub-mklayout -o frazerty.gkb</b>
					</p>

					<p>
						You must make sure that the files are named keymap and keymap.gkb (where 'keymap' can be whatever you want).
					</p>

					<p>
						Then from the above example, you would put <b>frazerty</b> in <b>resources/utilities/grub-assemble/keymap/original/</b> and
						the <b>frazerty.gkb</b> file goes under <b>resources/utilities/grub-assemble/keymap/</b>
					</p>

					<p>
						The scripts <b>build</b> and <b>buildrom-withgrub</b> will automatically see this, and automatically build
						ROM images with your custom layout (given the name) and include them under bin. Example: <b>libreboot_frazerty.rom</b>.
					</p>

					<p><a href="#pagetop">Back to top of page</a></p>
					
			</div>
			
			<div class="subsection">

				<h2 id="grub_ukdvorak_keyboard">UK Dvorak keyboard layout in GRUB (for reference)</h2>

					<p>
						ukdvorak had to be created manually, based on usdvorak. diff them (under resources/utilities/grub-assemble/keymap/original)
						to see how ukdvorak file was created
					</p>

					<p><b>$ cat ukdvorak | ./grub/grub-mklayout -o ukdvorak.gkb</b></p>

					<p><a href="#pagetop">Back to top of page</a></p>
					
			</div>
			
	</div>

	<div class="section">

		<p>
			Copyright &copy; 2014 Francis Rowe &lt;info@gluglug.org.uk&gt;<br/>
			This document is released under the Creative Commons Attribution-ShareAlike 4.0 International Public License and all future versions.
			A copy of the license can be found at <a href="../license.txt">../license.txt</a>.
		</p>

		<p>
			This document is distributed in the hope that it will be useful,
			but WITHOUT ANY WARRANTY; without even the implied warranty of
			MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See <a href="../license.txt">../license.txt</a> for more information.
		</p>
		
	</div>

</body>
</html>