| 1 | <?xml version="1.0" encoding="UTF-8"?> |
1 | <?xml version="1.0" encoding="UTF-8"?> |
| 2 | <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/gentoo-freebsd.xml,v 1.10 2005/10/21 10:45:18 neysx Exp $ --> |
2 | <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/gentoo-freebsd.xml,v 1.24 2007/04/04 14:22:45 nightmorph Exp $ --> |
| 3 | <!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> |
3 | <!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> |
| 4 | |
4 | |
| 5 | <guide link="/doc/en/gentoo-freebsd.xml"> |
5 | <guide link="/doc/en/gentoo-freebsd.xml"> |
| 6 | <title>A short guide to Gentoo/FreeBSD</title> |
6 | <title>A short guide to Gentoo/FreeBSD</title> |
| 7 | |
7 | |
| … | |
… | |
| 15 | <mail link="angusyoung@gentoo.org">Otavio R. Piske</mail> |
15 | <mail link="angusyoung@gentoo.org">Otavio R. Piske</mail> |
| 16 | </author> |
16 | </author> |
| 17 | <author title="Author"> |
17 | <author title="Author"> |
| 18 | <mail link="ka0ttic@gentoo.org">Aaron Walker</mail> |
18 | <mail link="ka0ttic@gentoo.org">Aaron Walker</mail> |
| 19 | </author> |
19 | </author> |
|
|
20 | <author title="Author"> |
|
|
21 | <mail link="chriswhite@gentoo.org">Chris White</mail> |
|
|
22 | </author> |
|
|
23 | <author title="Contributor"> |
|
|
24 | <mail link="flameeyes@gentoo.org">Diego Pettenò</mail> |
|
|
25 | </author> |
|
|
26 | <author title="Editor"> |
|
|
27 | <mail link="nightmorph@gentoo.org">Joshua Saddler</mail> |
|
|
28 | </author> |
| 20 | |
29 | |
| 21 | <abstract> |
30 | <abstract> |
| 22 | This document gives some general information on FreeBSD, as well as |
31 | This document gives some general information on FreeBSD, as well as |
| 23 | installation instructions for Gentoo/FreeBSD. It also includes some reference |
32 | installation instructions for Gentoo/FreeBSD. It also includes some reference |
| 24 | for people interested in helping out with development. |
33 | for people interested in helping out with development. |
| … | |
… | |
| 26 | |
35 | |
| 27 | <!-- The content of this document is licensed under the CC-BY-SA license --> |
36 | <!-- The content of this document is licensed under the CC-BY-SA license --> |
| 28 | <!-- See http://creativecommons.org/licenses/by-sa/2.5 --> |
37 | <!-- See http://creativecommons.org/licenses/by-sa/2.5 --> |
| 29 | <license/> |
38 | <license/> |
| 30 | |
39 | |
| 31 | <version>1.8</version> |
40 | <version>2.7</version> |
| 32 | <date>2005-10-21</date> |
41 | <date>2007-01-02</date> |
| 33 | |
42 | |
| 34 | <chapter> |
43 | <chapter> |
| 35 | <title>Introduction to FreeBSD</title> |
44 | <title>Introduction to FreeBSD</title> |
| 36 | <section> |
45 | <section> |
| 37 | <title>What is FreeBSD?</title> |
46 | <title>What is FreeBSD?</title> |
| … | |
… | |
| 41 | <uri link="http://www.freebsd.org/">FreeBSD</uri> is a free (<uri |
50 | <uri link="http://www.freebsd.org/">FreeBSD</uri> is a free (<uri |
| 42 | link="http://www.freebsd.org/copyright/freebsd-license.html">license</uri>) |
51 | link="http://www.freebsd.org/copyright/freebsd-license.html">license</uri>) |
| 43 | Unix-like operating system. Back in 1993 when development of <uri |
52 | Unix-like operating system. Back in 1993 when development of <uri |
| 44 | link="http://www.386bsd.org/">386BSD</uri> stopped, two projects were born: |
53 | link="http://www.386bsd.org/">386BSD</uri> stopped, two projects were born: |
| 45 | <uri link="http://www.netbsd.org/">NetBSD</uri>, commonly known to run on a |
54 | <uri link="http://www.netbsd.org/">NetBSD</uri>, commonly known to run on a |
| 46 | huge number of architetures, and FreeBSD which focuses mainly on the x86 |
55 | huge number of architectures, and FreeBSD which supports the x86, amd64, ia64, |
| 47 | platform. FreeBSD is renowned for its stability, performance and security, thus |
56 | sparc64 and alpha platforms. FreeBSD is renowned for its stability, performance |
| 48 | being used from small to huge companies all over the world. FreeBSD's current |
57 | and security, thus being used from small to huge companies all over the world. |
| 49 | production release version is 5.4, which is also used as the foundation for the |
58 | </p> |
| 50 | Gentoo/FreeBSD project. |
59 | |
|
|
60 | <p> |
|
|
61 | FreeBSD's current production release is version 6.1, although the release of 6.2 |
|
|
62 | is very near at the time of writing (Release Candidate 2 was released recently). |
|
|
63 | Gentoo/FreeBSD development is ongoing on this latter version, while older |
|
|
64 | versions are discontinued and no longer supported. |
| 51 | </p> |
65 | </p> |
| 52 | |
66 | |
| 53 | </body> |
67 | </body> |
| 54 | </section> |
68 | </section> |
| 55 | <section> |
69 | <section> |
| 56 | <title>What is Gentoo/FreeBSD?</title> |
70 | <title>What is Gentoo/FreeBSD?</title> |
| 57 | <body> |
71 | <body> |
| 58 | |
72 | |
| 59 | <p> |
73 | <p> |
| 60 | Gentoo/FreeBSD is an effort to provide a fully-capable FreeBSD operating system |
74 | <uri link="/proj/en/gentoo-alt/bsd/fbsd/">Gentoo/FreeBSD</uri> is a subproject |
| 61 | with Gentoo's design sensibilities. The long-term goal of the Gentoo/BSD project |
75 | of the <uri link="/proj/en/gentoo-alt/">Gentoo/Alt project</uri>, with the |
| 62 | is to allow users to choose any combination of *BSD or Linux kernels, *BSD or |
76 | goal of providing a fully-capable FreeBSD operating system featuring design |
| 63 | GNU libc, and *BSD or GNU userland tools. |
77 | sensibilities taken from Gentoo Linux, such as the init system and the Portage |
|
|
78 | package management system. |
| 64 | </p> |
79 | </p> |
| 65 | |
80 | |
| 66 | </body> |
81 | </body> |
| 67 | </section> |
82 | </section> |
| 68 | <section> |
83 | <section> |
| … | |
… | |
| 120 | </chapter> |
135 | </chapter> |
| 121 | |
136 | |
| 122 | <chapter> |
137 | <chapter> |
| 123 | <title>Installing Gentoo/FreeBSD</title> |
138 | <title>Installing Gentoo/FreeBSD</title> |
| 124 | <section> |
139 | <section> |
| 125 | <title>Installation instructions</title> |
140 | <title>Booting the CD</title> |
| 126 | <body> |
141 | <body> |
| 127 | |
142 | |
| 128 | <p> |
143 | <p> |
| 129 | After this short introduction, it's about time to finally install |
144 | After this short introduction, it's about time to finally install |
| 130 | Gentoo/FreeBSD. Unfortunately, we currently lack our own installation media, so |
145 | Gentoo/FreeBSD. Unfortunately, we currently lack our own installation media, so |
| 131 | you have to choose between two alternative installation methods. The first |
146 | you have to choose between two alternative installation methods. The first |
| 132 | would be to use an existing FreeBSD installation to partition your hard drive |
147 | would be to use an existing FreeBSD installation to partition your hard drive |
| 133 | and use it as a base for installing Gentoo/FreeBSD. Alternatively, you can also |
148 | and use it as a base for installing Gentoo/FreeBSD. This guide will describe how |
| 134 | use the excellent <uri link="http://www.freesbie.org/">FreeSBIE LiveCD</uri> as |
149 | to use the <uri link="http://www.freesbie.org/">FreeSBIE LiveCD</uri> as |
| 135 | an installation medium for Gentoo/FreeBSD. |
150 | an installation medium for Gentoo/FreeBSD. |
| 136 | </p> |
151 | </p> |
| 137 | |
152 | |
| 138 | <p> |
153 | <note> |
| 139 | Before you can begin with the installation, you have to setup a hard disk for |
154 | If you are intending to use FreeSBIE for installing Gentoo/FreeBSD, please make |
| 140 | use with Gentoo/FreeBSD. This can either be done via <c>sysinstall</c> |
155 | sure to use a version based on FreeBSD 6.x, such as FreeSBIE 2.0 (or one of its |
| 141 | (available from a current FreeBSD installation as well as from within FreeSBIE) |
156 | release candidates). You can download it from <uri |
| 142 | or by manually using the commands <c>fdisk</c>, <c>disklabel</c> and |
157 | link="http://torrent.freesbie.org/">FreeSBIE's Bittorrent tracker</uri>. |
| 143 | <c>newfs</c>. If you have never set up a FreeBSD system before, |
158 | </note> |
| 144 | <c>sysinstall</c> may be the better option for you. If you face difficulties |
159 | |
| 145 | while partitioning or formatting your hard disks, have a look at the great |
|
|
| 146 | <uri link="http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/">FreeBSD |
|
|
| 147 | Handbook</uri> or hop onto <c>#gentoo-bsd</c> on the Freenode IRC server. |
|
|
| 148 | </p> |
160 | <p> |
| 149 | |
161 | First, boot the CD in order to begin the installation process. You'll be |
|
|
162 | presented with a login screen. The username is <c>freesbie</c>, and there is |
|
|
163 | no password. Next, run <c>sudo su</c> to become root, and optionally setup a |
|
|
164 | password. If you want to pass time during the installation process, you can run |
|
|
165 | <c>startx</c> to enter into an Xfce environment, suitable for web browsing, |
|
|
166 | AIM, and other things. Unlike Linux, FreeBSD bases the name of your interface |
|
|
167 | on the driver for the interface. For example, the Intel EtherExpress driver |
|
|
168 | (fxp) appears as fxp0 (driver fxp, first network card). To see what your |
|
|
169 | interface is, use <c>ifconfig</c>: |
| 150 | <p> |
170 | </p> |
| 151 | Once you're done setting up your disks, you have to create a mount point for |
171 | |
| 152 | your Gentoo/FreeBSD installation and mount all the necessary partitions. |
172 | <pre caption="Finding out the network interface name using ifconfig"> |
|
|
173 | # <i>ifconfig</i> |
|
|
174 | fxp0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 |
|
|
175 | options=8<VLAN_MTU> |
|
|
176 | inet6 fe80::2d0::b7ff:febc:4fe3%fxp0 prefixlen 64 scopeid 0x1 |
|
|
177 | inet 192.168.0.106 netmask 0xffffff00 broadcast 192.168.0.255 |
|
|
178 | ether 00:d0:b7:bc:4f:e3 |
|
|
179 | media: Ethernet autoselect (100baseTX <full-duplex>) |
|
|
180 | status: active |
|
|
181 | lo0: flags=8007<LOOPBACK,MULTICAST> mtu 16384 |
|
|
182 | </pre> |
|
|
183 | |
| 153 | </p> |
184 | <p> |
|
|
185 | If the original DHCP request during the CD bootup failed, you can use the |
|
|
186 | <c>dhclient</c> command to obtain an IP: |
|
|
187 | </p> |
| 154 | |
188 | |
| 155 | <pre caption="Creating a mount point and mounting partitions"> |
189 | <pre caption="Obtaining a DHCP address using dhclient"> |
|
|
190 | # <i>dhclient fxp0</i> |
|
|
191 | DHCPDISCOVER on fxp0 to 255.255.255.255 port 67 interval 9 |
|
|
192 | DHCPOFFER from 192.168.0.1 |
|
|
193 | DHCPREQUEST on fxp0 to 255.255.255.255 port 67 |
|
|
194 | DHCPACK from 192.168.0.1 |
|
|
195 | bound to 192.168.0.106 -- renewal in 302400 seconds |
|
|
196 | </pre> |
|
|
197 | |
|
|
198 | <note> |
|
|
199 | The output presented here will differ based on your network. |
|
|
200 | </note> |
|
|
201 | |
|
|
202 | <p> |
|
|
203 | Next, create the chroot for your installation: |
|
|
204 | </p> |
|
|
205 | |
|
|
206 | <pre caption="Making the chroot directory"> |
| 156 | # <i>mkdir /mnt/gentoo</i> |
207 | # <i>mkdir /mnt/gentoo</i> |
| 157 | <comment>(Replace X with the correct numbers for your hard disk.)</comment> |
|
|
| 158 | # <i>mount /dev/adXsXa /mnt/gentoo</i> |
|
|
| 159 | </pre> |
208 | </pre> |
| 160 | |
209 | |
|
|
210 | <note> |
|
|
211 | There is a bug in the <uri |
|
|
212 | link="http://dev.gentoo.org/~flameeyes/minimal-freesbie-drizzt.iso.bz2"> |
|
|
213 | minimal Freesbie CD</uri> that prevents the creation of the |
|
|
214 | <path>/mnt/gentoo</path> mount point. To avoid this, use <path>/mnt</path> |
|
|
215 | instead of <path>/mnt/gentoo</path> in the following sections. |
|
|
216 | </note> |
|
|
217 | |
|
|
218 | </body> |
|
|
219 | </section> |
|
|
220 | <section> |
|
|
221 | <title>Partitioning the Drive</title> |
|
|
222 | <body> |
|
|
223 | |
|
|
224 | <p> |
|
|
225 | Now that we have a mount point, it's time to partition the drive. This is done |
|
|
226 | with the <c>sysinstall</c> command: |
| 161 | <p> |
227 | </p> |
|
|
228 | |
|
|
229 | <pre caption="Running the sysinstall command to fdisk the drive"> |
|
|
230 | # <i>sysinstall diskPartitionEditor diskPartitionWrite</i> |
|
|
231 | </pre> |
|
|
232 | |
|
|
233 | <p> |
|
|
234 | We recommend that you use the default layout. Press enter at the dialog, then |
|
|
235 | press <b>a</b> followed by <b>q</b> to accept the default layout. The next |
|
|
236 | screen will present you with the option of a bootloader. For this option, |
|
|
237 | choose "None" as we'll be installing the bootloader later on. Next comes the |
|
|
238 | actual partition sizing and mount points. |
|
|
239 | </p> |
|
|
240 | |
|
|
241 | <p> |
|
|
242 | This next step also uses <c>sysinstall</c>, but with different arguments: |
|
|
243 | </p> |
|
|
244 | |
|
|
245 | <pre caption="Running sysinstall to setup partition sizing and mount points"> |
|
|
246 | # <i>sysinstall diskLabelEditor diskLabelCommit</i> |
|
|
247 | </pre> |
|
|
248 | |
|
|
249 | <p> |
|
|
250 | Here, we'll refrain from using the automatic layout, and create one giant root |
|
|
251 | partition, followed by a swap partition. Hit <b>c</b> to create a new |
|
|
252 | partition. A dialog prompts you to enter a size. Go ahead and do so, using |
|
|
253 | MB/GB for setting different sizes, or C for cylinders. For root, choose FS as |
|
|
254 | the partition type, and set the mount point as <path>/mnt/gentoo</path>. <e>If |
|
|
255 | you do not adjust the mount point, it will overwrite the FreeSBIE |
|
|
256 | environment!</e> As <path>/boot</path> is not a separate partition, you'll |
|
|
257 | need to disable soft-updates, or your system will not boot! To do so, use the |
|
|
258 | arrow keys to navigate to your newly created partition, then hit the <b>s</b> |
|
|
259 | key, until "Newfs" contains no <b>+S</b>. Now navigate the arrow keys until |
|
|
260 | the "Disk" line is highlighted, and hit <b>c</b> again to create a swap |
|
|
261 | partition. Generally, we recommend a swap space that is twice the size of your |
|
|
262 | RAM. Choose SWAP as the partition type, and don't worry about soft-updates, as |
|
|
263 | it does not apply to swap. Now we're finished, so hit <b>q</b> to finish the |
|
|
264 | process. |
|
|
265 | </p> |
|
|
266 | |
|
|
267 | <p> |
|
|
268 | When choosing a different mountpoint than <path>/</path> for your partition, |
|
|
269 | <c>sysinstall</c> will actually create a 'd' slice, which the bootloader won't |
|
|
270 | boot from. To fix this, run the following: |
|
|
271 | </p> |
|
|
272 | |
|
|
273 | <pre caption="Fixing the root partition letter"> |
|
|
274 | # <i>disklabel ad0s1 | sed 's/^ d:/ a:/g' | disklabel -w ad0s1</i> |
|
|
275 | </pre> |
|
|
276 | |
|
|
277 | <p> |
|
|
278 | This will finalize the partitioning process, and format the drive in UFS for |
|
|
279 | FreeBSD to utilize. This will also mount the drive for you at the mount point |
|
|
280 | specified earlier (<path>/mnt/gentoo</path>). You can verify this worked by |
|
|
281 | running <c>mount</c>: |
|
|
282 | </p> |
|
|
283 | |
|
|
284 | <pre caption="Verifying the new disk layout was mounted with mount"> |
|
|
285 | # <i>mount</i> |
|
|
286 | ... |
|
|
287 | /dev/ad0s1a on /mnt/gentoo (ufs, local) |
|
|
288 | </pre> |
|
|
289 | |
|
|
290 | <p> |
| 162 | Now that you have mounted the target partition, it is time to fetch and unpack |
291 | Now that you have mounted the target partition, it is time to start on the Gentoo |
| 163 | a stage3 tarball. |
292 | setup. |
|
|
293 | </p> |
|
|
294 | |
|
|
295 | </body> |
|
|
296 | </section> |
|
|
297 | <section> |
|
|
298 | <title>Gentoo Setup</title> |
|
|
299 | <body> |
|
|
300 | |
|
|
301 | <p> |
|
|
302 | First, we need to download a stage3 tarball and unpack it into the chroot. |
|
|
303 | Point your browser to |
|
|
304 | <uri>http://gentoo.osuosl.org/experimental/x86/freebsd/stages/</uri>, grab the |
|
|
305 | latest snapshot, and unpack it into the mountpoint: |
| 164 | </p> |
306 | </p> |
| 165 | |
307 | |
| 166 | <pre caption="Obtaining and unpacking a stage3 tarball"> |
308 | <pre caption="Obtaining and unpacking a stage3 tarball"> |
| 167 | # <i>cd /mnt/gentoo/</i> |
309 | # <i>cd /mnt/gentoo/</i> |
| 168 | <comment>(Any other Gentoo mirror which includes the experimental/ directory will also work.)</comment> |
310 | <comment>(Any other Gentoo mirror which includes the experimental/ directory will also work.)</comment> |
| 169 | # <i>wget http://gentoo.osuosl.org/experimental/x86/freebsd/stages/stage3-x86-fbsd-20051020.tar.bz2</i> |
311 | # <i>wget http://gentoo.osuosl.org/experimental/x86/freebsd/stages/stage3-x86-freebsd-6.2_rc2.tar.bz2</i> |
| 170 | # <i>tar -jxvpf stage3-x86-fbsd-20051020.tar.bz2</i> |
312 | # <i>tar -jxvpf stage3-x86-freebsd-6.2_rc2.tar.bz2</i> |
| 171 | <comment>(You can delete the tarball with the following command if you want to.)</comment> |
313 | <comment>(You can delete the tarball with the following command if you want to.)</comment> |
| 172 | # <i>rm stage3-x86-fbsd-20051020.tar.bz2</i> |
314 | # <i>rm stage3-x86-freebsd-6.2_rc2.tar.bz2</i> |
| 173 | </pre> |
|
|
| 174 | |
|
|
| 175 | <p> |
|
|
| 176 | Before chrooting into the newly-extracted stage, you first must obtain an up-to-date |
|
|
| 177 | copy of the Gentoo/FreeBSD overlay. The easiest way to achieve this is to to get our latest |
|
|
| 178 | snapshot which you than extract to <path>/mnt/gentoo/usr/local/portage</path> |
|
|
| 179 | </p> |
315 | </pre> |
| 180 | |
316 | |
| 181 | <pre caption="Getting the Gentoo/FreeBSD Portage overlay"> |
317 | <note> |
| 182 | # <i>cd /mnt/gentoo/usr/local/portage</i> |
318 | If you want you can use the transition overlay that contains semi-experimental |
| 183 | # <i>wget http://gentoo.osuosl.org/experimental/snapshots/portage-alt-overlay-latest.tar.bz2</i> |
319 | ebuilds with patches not yet in the main Portage tree, but does allow a wider |
| 184 | # <i>tar -xjf portage-alt-overlay-latest.tar.bz2</i> |
320 | range of supported packages, please refer to the <uri |
| 185 | </pre> |
321 | link="/proj/en/gentoo-alt/contribute/index.xml?part=1&chap=3">Gentoo/ALT |
| 186 | |
322 | overlay documentation</uri>. Please note that the overlay is not critical and |
| 187 | <p> |
323 | you can easily install and use Gentoo/FreeBSD without it. |
| 188 | Alternatively, you can also use Subversion to check out the current version of |
324 | </note> |
| 189 | the overlay. If you are interested in this possibility, please refer to the |
|
|
| 190 | <uri link="/proj/en/gentoo-alt/overlay.xml">Gentoo/ALT overlay |
|
|
| 191 | documentation</uri>. |
|
|
| 192 | </p> |
|
|
| 193 | |
325 | |
| 194 | <p> |
326 | <p> |
| 195 | In order for your install to work, you need to mount the <path>/dev</path> |
327 | In order for your install to work, you need to mount the <path>/dev</path> |
| 196 | filesystem from the currently running system into the Gentoo/FreeBSD mount |
328 | filesystem from the currently running system into the Gentoo/FreeBSD mount |
| 197 | point before proceeding with the chroot. |
329 | point before proceeding with the chroot. |
| … | |
… | |
| 199 | |
331 | |
| 200 | <pre caption="Mounting the /dev filesystem and chrooting"> |
332 | <pre caption="Mounting the /dev filesystem and chrooting"> |
| 201 | # <i>mount -t devfs none /mnt/gentoo/dev/</i> |
333 | # <i>mount -t devfs none /mnt/gentoo/dev/</i> |
| 202 | # <i>cp /etc/resolv.conf /mnt/gentoo/etc</i> |
334 | # <i>cp /etc/resolv.conf /mnt/gentoo/etc</i> |
| 203 | # <i>chroot /mnt/gentoo/ /bin/bash</i> |
335 | # <i>chroot /mnt/gentoo/ /bin/bash</i> |
| 204 | # <i>source /etc/profile</i> |
336 | # <i>env-update && source /etc/profile</i> |
| 205 | </pre> |
337 | </pre> |
| 206 | |
338 | |
| 207 | <p> |
339 | <p> |
| 208 | After you got hold of the Gentoo/FreeBSD overlay, it's time to link |
340 | After you obtain the Gentoo/FreeBSD overlay, it's time to link |
| 209 | <path>/etc/make.profile</path> to the correct profile and add get your |
341 | <path>/etc/make.profile</path> to the correct profile and get your |
| 210 | <path>/etc/make.conf</path> ready for Gentoo/FreeBSD. |
342 | <path>/etc/make.conf</path> ready for Gentoo/FreeBSD. |
| 211 | </p> |
343 | </p> |
| 212 | |
|
|
| 213 | <pre caption="Setting up the profile and editing /etc/make.conf"> |
|
|
| 214 | # <i>ln -sf /usr/local/portage/portage-alt-overlay/profiles/default-bsd/fbsd/5.4/x86/ /etc/make.profile</i> |
|
|
| 215 | <comment>(FreeBSD's standard editor is ee, which is used to edit /etc/make.conf)</comment> |
|
|
| 216 | # <i>ee /etc/make.conf</i> |
|
|
| 217 | <comment>(Please make sure you add at least the following entries:)</comment> |
|
|
| 218 | CHOST="i686-gentoo-freebsd5.4" |
|
|
| 219 | ACCEPT_KEYWORDS="~x86-fbsd ~x86" |
|
|
| 220 | FEATURES="-sandbox collision-protect" |
|
|
| 221 | PORTDIR_OVERLAY="/usr/local/portage/portage-alt-overlay" |
|
|
| 222 | </pre> |
|
|
| 223 | |
344 | |
| 224 | <p> |
345 | <p> |
| 225 | Now, you have to obtain a copy of the main Gentoo Portage tree, which depending |
346 | Now, you have to obtain a copy of the main Gentoo Portage tree, which depending |
| 226 | on your connection might take quite a while. |
347 | on your connection might take quite a while. |
| 227 | </p> |
348 | </p> |
| … | |
… | |
| 233 | # <i>wget http://gentoo.osuosl.org/snapshots/portage-latest.tar.bz2</i> |
354 | # <i>wget http://gentoo.osuosl.org/snapshots/portage-latest.tar.bz2</i> |
| 234 | # <i>tar -xjf portage-latest.tar.bz2 -C /usr/</i> |
355 | # <i>tar -xjf portage-latest.tar.bz2 -C /usr/</i> |
| 235 | # <i>emerge --metadata</i> |
356 | # <i>emerge --metadata</i> |
| 236 | </pre> |
357 | </pre> |
| 237 | |
358 | |
| 238 | <p> |
359 | <pre caption="Setting up the profile and editing /etc/make.conf"> |
| 239 | Congratulations, by the time you have reached this step you should have a |
360 | # <i>ln -sf /usr/portage/profiles/default-bsd/fbsd/6.2/x86/ /etc/make.profile</i> |
| 240 | running Gentoo/FreeBSD system! If you want, you can now rebuild the system's |
361 | # <i>nano /etc/make.conf</i> |
| 241 | core packages. |
362 | <comment>(Please make sure you add at least the following entries:)</comment> |
|
|
363 | CHOST="i486-gentoo-freebsd6.2" |
|
|
364 | FEATURES="collision-protect" |
|
|
365 | </pre> |
|
|
366 | |
|
|
367 | <note> |
|
|
368 | The <c>~x86-fbsd</c> keyword does not yet fully cover the same tree as |
|
|
369 | <c>~x86</c>, but please <e>do not</e> put <c>~x86</c> in ACCEPT_KEYWORDS. Rather |
|
|
370 | use <path>/etc/portage/package.keywords</path> to test packages, and report |
|
|
371 | working packages on <uri |
|
|
372 | link="http://bugs.gentoo.org/enter_bug.cgi?product=Gentoo%2FAlt">Bugzilla</uri>. |
|
|
373 | </note> |
|
|
374 | |
| 242 | </p> |
375 | <p> |
|
|
376 | If you want, you can now rebuild the system's core packages. |
|
|
377 | </p> |
| 243 | |
378 | |
| 244 | <pre caption="Rebuilding the FreeBSD core packages"> |
379 | <pre caption="Rebuilding the FreeBSD core packages (optional)"> |
| 245 | # <i>emerge -e system</i> |
380 | # <i>emerge -e system</i> |
| 246 | </pre> |
381 | </pre> |
| 247 | |
382 | |
|
|
383 | </body> |
|
|
384 | </section> |
|
|
385 | </chapter> |
|
|
386 | <chapter> |
|
|
387 | <title>Setting up for Booting</title> |
|
|
388 | <section> |
|
|
389 | <title>Kernel Installation</title> |
|
|
390 | <body> |
|
|
391 | |
|
|
392 | <p> |
|
|
393 | If you ran <c>emerge -e system</c>, the sources for the FreeBSD kernel were |
|
|
394 | installed to <path>/usr/src/sys</path>. If you skipped this step, you can get |
|
|
395 | them in the following way: |
|
|
396 | </p> |
|
|
397 | |
|
|
398 | <pre caption="Getting the FreeBSD kernel sources"> |
|
|
399 | # <i>emerge freebsd-sources</i> |
|
|
400 | </pre> |
|
|
401 | |
|
|
402 | <p> |
|
|
403 | Configuring and compiling a custom kernel is quite different from compiling |
|
|
404 | Linux, so if you are not familiar with the process we encourage you to have a |
|
|
405 | look at <uri |
|
|
406 | link="http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html"> |
|
|
407 | chapter 8</uri> of the FreeBSD handbook. For now, you can do an installation of |
|
|
408 | the GENERIC kernel, which works on most systems. To begin, enter the source |
|
|
409 | directory for the kernel: |
|
|
410 | </p> |
|
|
411 | |
| 248 | <impo> |
412 | <impo> |
| 249 | Please make absolutely sure you add your new Gentoo/FreeBSD installation to the |
413 | Please note that currently only the "Traditional" way of building the kernel is |
| 250 | configuration of your bootloader, otherwise you won't be able to boot your newly |
414 | supported on Gentoo/FreeBSD! |
| 251 | installed system! If you don't have another bootloader installed, you should use |
415 | </impo> |
| 252 | <c>boot0</c>, as it is currently the only one supported by FreeBSD. |
416 | |
|
|
417 | <pre caption="Entering the kernel source directory"> |
|
|
418 | # <i>cd /usr/src/sys/</i> |
|
|
419 | </pre> |
|
|
420 | |
|
|
421 | <p> |
|
|
422 | Looking over the layout, you'll see various architectures and subdirectories |
|
|
423 | for various parts of the kernel. To begin the installation, we head into the |
|
|
424 | <path>i386/conf/</path> directory: |
|
|
425 | </p> |
|
|
426 | |
|
|
427 | <pre caption="The kernel configuration directory"> |
|
|
428 | # <i>cd i386/conf/</i> |
|
|
429 | # <i>ls</i> |
|
|
430 | .cvsignore GENERIC Makefile PAE |
|
|
431 | DEFAULTS GENERIC.hints NOTES SMP |
|
|
432 | </pre> |
|
|
433 | |
|
|
434 | <p> |
|
|
435 | The main files to note are <path>GENERIC</path> and <path>GENERIC.hints</path>. |
|
|
436 | As it will be needed by the installation of the kernel, go ahead and copy |
|
|
437 | <path>GENERIC.hints</path> file to <path>/boot/device.hints</path>: |
|
|
438 | </p> |
|
|
439 | |
|
|
440 | <pre caption="Copying over the GENERIC.hints file"> |
|
|
441 | # <i>cp GENERIC.hints /boot/device.hints</i> |
|
|
442 | </pre> |
|
|
443 | |
|
|
444 | <p> |
|
|
445 | This file is used by the kernel drivers for basic configuration information |
|
|
446 | such as IRQ settings. Now it's time to configure the kernel. FreeBSD uses the |
|
|
447 | <c>config</c> command to do this. <c>config</c> uses the given file (in this |
|
|
448 | instance GENERIC) to copy over the required build files to a |
|
|
449 | <path>compile</path> directory in the parent directory. <path>GENERIC</path> is |
|
|
450 | similiar to the <path>.config</path> file for the Linux kernel. Run |
|
|
451 | <c>config</c> to produce the build directory: |
|
|
452 | </p> |
|
|
453 | |
|
|
454 | <pre caption="Configuring the kernel build"> |
|
|
455 | # <i>config GENERIC</i> |
|
|
456 | Kernel build directory is ../compile/GENERIC |
|
|
457 | Don't forget to ''make cleandepend; make depend'' |
|
|
458 | </pre> |
|
|
459 | |
|
|
460 | <p> |
|
|
461 | <c>config</c> has created a GENERIC build directory for us in the parent |
|
|
462 | directory. <c>cd</c> into it, then run the following to do a complete build: |
|
|
463 | </p> |
|
|
464 | |
|
|
465 | <pre caption="Building and installing the kernel"> |
|
|
466 | # <i>cd ../compile/GENERIC</i> |
|
|
467 | # <i>make cleandepend && make depend && make && make install</i> |
|
|
468 | </pre> |
|
|
469 | |
|
|
470 | <p> |
|
|
471 | This will give us a complete kernel to work with. Now we'll need to setup the |
|
|
472 | bootloader for the kernel to boot. The next chapter will discuss two methods of |
|
|
473 | setting up the bootloader: <c>boot0</c> and <c>grub</c>. |
|
|
474 | </p> |
|
|
475 | |
|
|
476 | </body> |
|
|
477 | </section> |
|
|
478 | <section> |
|
|
479 | <title>Setting up the bootloader (boot0)</title> |
|
|
480 | <body> |
|
|
481 | |
|
|
482 | <impo> |
|
|
483 | <c>boot0</c> is the FreeBSD bootloader. Previously, it was the only supported |
|
|
484 | bootloader until <c>grub</c> was introduced into ports with UFS slice support. |
|
|
485 | To install and configure <c>boot0</c>, run the following. Remember to replace |
|
|
486 | <c>adXsY</c> with the actual number and slice of your disk. |
| 253 | </impo> |
487 | </impo> |
| 254 | |
488 | |
| 255 | <pre caption="Installing and setting up boot0"> |
489 | <pre caption="Installing and setting up boot0"> |
| 256 | # <i>emerge boot0</i> |
490 | # <i>emerge boot0</i> |
| 257 | <comment>(Leave the chroot environment)</comment> |
491 | <comment>(Leave the chroot environment)</comment> |
| 258 | # <i>exit</i> |
492 | # <i>exit</i> |
| 259 | <comment>(Issued from outside the chroot)</comment> |
493 | <comment>(Issued from outside the chroot)</comment> |
| 260 | # <i>fdisk -b -B /mnt/gentoo/boot/boot0 /dev/adX</i> |
494 | # <i>fdisk -B -b /mnt/gentoo/boot/boot0 /dev/adX</i> |
| 261 | # <i>chroot /mnt/gentoo /bin/bash</i> |
495 | # <i>chroot /mnt/gentoo /bin/bash</i> |
| 262 | # <i>disklabel -B adXsY</i> |
496 | # <i>disklabel -B adXsY</i> |
| 263 | </pre> |
497 | </pre> |
| 264 | |
498 | |
| 265 | <p> |
499 | <p> |
| 266 | If you need additonal information on setting up <c>boot0</c>, please consult |
500 | If you need additional information on setting up <c>boot0</c>, please consult |
|
|
501 | <uri |
| 267 | <uri link="http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/boot.html"> |
502 | link="http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/boot.html">chapter |
| 268 | chapter 12</uri> of the FreeBSD handbook. |
503 | 12</uri> of the FreeBSD handbook. Now it's time to do some basic system |
| 269 | </p> |
504 | configuration and settings. |
| 270 | |
|
|
| 271 | <p> |
505 | </p> |
| 272 | When you did <c>emerge system</c>, the sources for the FreeBSD kernel got |
506 | |
| 273 | installed to <path>/usr/src/sys</path>. Configuring and compiling a custom |
|
|
| 274 | kernel is really different from compiling Linux, so if you are not familiar with |
|
|
| 275 | the process we encourage you to have a look at <uri |
|
|
| 276 | link="http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html"> |
|
|
| 277 | chapter 8</uri> of the FreeBSD handbook. |
|
|
| 278 | </p> |
507 | <p> |
| 279 | |
508 | The next section will look at using the alternative bootloader, <c>grub</c>. |
| 280 | <p> |
509 | </p> |
| 281 | Please note that currently only the "Traditional" way of building the kernel is |
510 | |
| 282 | supported on Gentoo/FreeBSD! Also note that <c>make install</c> will probably |
511 | </body> |
| 283 | ask you for a <path>/boot/device.hints</path> file. A default version can be |
512 | </section> |
| 284 | found in the <path>conf</path> subdirectory of the <c>GENERIC</c> configuration |
513 | <section> |
| 285 | and is called <path>GENERIC.hints</path> |
514 | <title>Setting up the bootloader (grub)</title> |
|
|
515 | <body> |
|
|
516 | |
| 286 | </p> |
517 | <p> |
|
|
518 | As of grub 0.97-r1, UFS slices are readable to <c>grub</c>. This lets us use |
|
|
519 | <c>grub</c> as a bootloader, the prefered method for those coming from a Linux |
|
|
520 | background. To begin, emerge <c>grub</c> and setup the label as bootable. |
|
|
521 | Remember to replace <c>adXsY</c> with the actual number and slice of your disk. |
|
|
522 | </p> |
|
|
523 | |
|
|
524 | <pre caption="Emerge grub"> |
|
|
525 | # <i>emerge grub</i> |
|
|
526 | # <i>disklabel -B adXsY</i> |
|
|
527 | </pre> |
|
|
528 | |
|
|
529 | <p> |
|
|
530 | Now run <c>grub</c> to bring up the command prompt, and set up the partition as |
|
|
531 | shown: |
|
|
532 | </p> |
|
|
533 | |
|
|
534 | <pre caption="Setting up grub"> |
|
|
535 | <comment>(This is done to prevent disk error 29)</comment> |
|
|
536 | # <i>sysctl kern.geom.debugflags=16</i> |
|
|
537 | # <i>grub</i> |
|
|
538 | <comment>(Example using ad0s1d)</comment> |
|
|
539 | grub> <i>root (hd0,0,d)</i> |
|
|
540 | Filesystem type is ufs2, partition type 0xa5 |
|
|
541 | |
|
|
542 | grub> <i>setup (hd0)</i> |
|
|
543 | Checking if "/boot/grub/stage1" exists... yes |
|
|
544 | Checking if "/boot/grub/stage2" exists... yes |
|
|
545 | Checking if "/boot/grub/ufs2_stage1_5" exists... yes |
|
|
546 | Running "embed /boot/grub/ufs2_stage1_5 (hd0)"... 14 sectors are embedded. |
|
|
547 | succeeded |
|
|
548 | Running "install /boot/grub/stage1 (hd0) (hd0)1+14 p (hd0,0,d)/boot/grub/stage |
|
|
549 | 2 /boot/grub/menu.lst"... succeeded |
|
|
550 | Done. |
|
|
551 | |
|
|
552 | grub> quit |
|
|
553 | </pre> |
|
|
554 | |
|
|
555 | <p> |
|
|
556 | When you first boot, you may not receive a grub menu. If so, run this at the |
|
|
557 | prompt: |
|
|
558 | </p> |
|
|
559 | |
|
|
560 | <pre caption="Booting the kernel with no menu"> |
|
|
561 | grub> <i>find /boot/grub/stage1</i> |
|
|
562 | <comment>(The output here is what you'll use in the next command)</comment> |
|
|
563 | (hd0,0,d) |
|
|
564 | |
|
|
565 | grub> <i>kernel (hd0,0,d)/boot/loader</i> |
|
|
566 | [FreeBSD-a.out, loadaddr=0x200000, text=0x1000, data=0x3a000, bss=0x0, entry=0x200000] |
|
|
567 | |
|
|
568 | grub> <i>boot</i> |
|
|
569 | </pre> |
|
|
570 | |
|
|
571 | <note> |
|
|
572 | For more information on configuring grub, please refer to the <uri |
|
|
573 | link="/doc/en/handbook/handbook-x86.xml?part=1&chap=10#doc_chap2">Gentoo |
|
|
574 | Linux Handbook</uri>. |
|
|
575 | </note> |
|
|
576 | |
|
|
577 | </body> |
|
|
578 | </section> |
|
|
579 | <section> |
|
|
580 | <title>System configuration</title> |
|
|
581 | <body> |
|
|
582 | |
|
|
583 | <p> |
|
|
584 | First, we are going to setup the filesystem mounting points in |
|
|
585 | <path>/etc/fstab</path>. |
|
|
586 | </p> |
|
|
587 | |
|
|
588 | <pre caption="Editing the filesystem in /etc/fstab"> |
|
|
589 | # <i>nano /etc/fstab</i> |
|
|
590 | <comment>(This is an example, replace X and Y with the correct numbers for your hard disk.)</comment> |
|
|
591 | #Device Mountpoint Fstype Options Dump Pass |
|
|
592 | /dev/adXsYb none swap sw 0 0 |
|
|
593 | /dev/adXsYa / ufs rw 1 1 |
|
|
594 | /dev/adXsYe /usr/home ufs rw 2 2 |
|
|
595 | /dev/adXsYd /tmp ufs rw 2 2 |
|
|
596 | /dev/acdX /cdrom cd9660 ro,noauto 0 0 |
|
|
597 | </pre> |
|
|
598 | |
|
|
599 | <p> |
|
|
600 | Now would also be a good time to set up your network connection before the final |
|
|
601 | reboot. You can find all the information necessary to configure your network in |
|
|
602 | the <uri link="/doc/en/handbook/handbook-x86.xml?part=4&chap=1">Gentoo |
|
|
603 | Handbook</uri>. To have your network interface activated at boot time, you have |
|
|
604 | to add it to the default runlevel: |
|
|
605 | </p> |
|
|
606 | |
|
|
607 | <pre caption="Adding your network adapter to the default runlevel"> |
|
|
608 | # <i>rc-update add net.fxp0 default</i> |
|
|
609 | </pre> |
|
|
610 | |
|
|
611 | <p> |
|
|
612 | Your system's hostname can be changed in <path>/etc/conf.d/hostname</path>. |
|
|
613 | </p> |
|
|
614 | |
|
|
615 | <pre caption="Setting up the machine's hostname"> |
|
|
616 | # <i>nano /etc/conf.d/hostname</i> |
|
|
617 | <comment>(Set the HOSTNAME variable to your hostname)</comment> |
|
|
618 | HOSTNAME="tux" |
|
|
619 | </pre> |
|
|
620 | |
|
|
621 | <p> |
|
|
622 | You should also configure your domain name, which is done in the |
|
|
623 | <path>/etc/conf.d/domainname</path> file: |
|
|
624 | </p> |
|
|
625 | |
|
|
626 | <pre caption="Setting the domainname"> |
|
|
627 | # <i>nano /etc/conf.d/domainname</i> |
|
|
628 | <comment>(Set the dns_domain variable to your domain name, and lo to your local |
|
|
629 | network interface)</comment> |
|
|
630 | dns_domain_lo="homenetwork" |
|
|
631 | </pre> |
|
|
632 | |
|
|
633 | <p> |
|
|
634 | If you have a NIS domain, you need to define it in the |
|
|
635 | <path>/etc/conf.d/domainname</path> file: |
|
|
636 | </p> |
|
|
637 | |
|
|
638 | <pre caption="Setting the NIS domainname"> |
|
|
639 | # <i>nano /etc/conf.d/domainname</i> |
|
|
640 | <comment>(Set the nis_domain variable to your NIS domain name, and lo to your local network interface)</comment> |
|
|
641 | nis_domain_lo="my-nisdomain" |
|
|
642 | </pre> |
|
|
643 | |
|
|
644 | <note> |
|
|
645 | For more information on domainnames and networking, please refer to the <uri |
|
|
646 | link="/doc/en/handbook/handbook-x86.xml?part=1&chap=8#doc_chap2">Gentoo |
|
|
647 | Linux Handbook</uri>, and please read the documentation in |
|
|
648 | <path>/etc/conf.d/net.example</path>. |
|
|
649 | </note> |
|
|
650 | |
|
|
651 | <p> |
|
|
652 | In case you need to use another keyboard layout for your language, you have to |
|
|
653 | set the correct value in <path>/etc/conf.d/syscons</path>. The following example |
|
|
654 | uses the Spanish layout, so you'll have to adjust it to your need if you want to |
|
|
655 | use another one. |
|
|
656 | </p> |
|
|
657 | |
|
|
658 | <pre caption="Changing your keyboard layout (Optional)"> |
|
|
659 | # <i>nano /etc/conf.d/syscons</i> |
|
|
660 | KEYMAP="spanish.iso.acc" |
|
|
661 | <comment>(Possible layouts can be found in /usr/share/syscons/keymaps).</comment> |
|
|
662 | </pre> |
|
|
663 | |
|
|
664 | <p> |
|
|
665 | Now would be a good time to set a password for the <c>root</c> user and to add |
|
|
666 | another user account for your day-to-day work. |
|
|
667 | </p> |
|
|
668 | |
|
|
669 | <pre caption="Changing the root password and adding a new user"> |
|
|
670 | # <i>passwd</i> |
|
|
671 | # <i>adduser</i> |
|
|
672 | Username: <i>fred</i> |
|
|
673 | Full Name: <i>Fred Smith</i> |
|
|
674 | <comment>(Accepting the default here, just hit Enter.)</comment> |
|
|
675 | Uid (Leave empty for default): |
|
|
676 | <comment>(OK to accept the default here as well; hit Enter.)</comment> |
|
|
677 | Login group [fred]: |
|
|
678 | <comment>(Enter your groups here, space separated. They must exist.)</comment> |
|
|
679 | Login group is fred. Invite fred into other groups? []: wheel portage |
|
|
680 | <comment>(OK to accept the default here, hit Enter)</comment> |
|
|
681 | Login class [default]: |
|
|
682 | <comment>(Somewhat of a personal preference. Make sure the shell exists in /etc/shells)</comment> |
|
|
683 | Shell (sh bash tcsh csh esh ksh zsh sash nologin) [sh] <i>bash</i> |
|
|
684 | <comment>(OK to accept the default here, hit Enter for all these)</comment> |
|
|
685 | User password-based authentication [yes] |
|
|
686 | Use an empty password (yes/no) [no]: |
|
|
687 | Use a random password? (yes/no) [no]: |
|
|
688 | Enter password: <i>password goes here</i> |
|
|
689 | Enter password again: <i>retype it</i> |
|
|
690 | <comment>(OK to accept the default here, hit Enter)</comment> |
|
|
691 | Lock out the account after creation? [no]: |
|
|
692 | Username : fred |
|
|
693 | Password : ***** |
|
|
694 | Full Name : Fred Smith |
|
|
695 | <comment>(This will vary)</comment> |
|
|
696 | Uid : 1002 |
|
|
697 | Class : |
|
|
698 | Groups : fred wheel portage |
|
|
699 | Home : /home/fred |
|
|
700 | Shell : /bin/bash |
|
|
701 | Locked : no |
|
|
702 | <comment>(Confirm the information is correct)</comment> |
|
|
703 | OK? (yes/no): <i>yes</i> |
|
|
704 | adduser: INFO: Sucessfully added (fred) to the user database |
|
|
705 | Add another user? (yes/no): <i>no</i> |
|
|
706 | Goodbye! |
|
|
707 | # |
|
|
708 | </pre> |
|
|
709 | |
|
|
710 | <p> |
|
|
711 | Congratulations, you have just finished your Gentoo/FreeBSD installation which |
|
|
712 | you can start exploring after the final reboot. Have fun! |
|
|
713 | </p> |
|
|
714 | |
|
|
715 | <pre caption="Rebooting the system"> |
|
|
716 | # <i>exit</i> |
|
|
717 | # <i>reboot</i> |
|
|
718 | </pre> |
| 287 | |
719 | |
| 288 | </body> |
720 | </body> |
| 289 | </section> |
721 | </section> |
| 290 | </chapter> |
722 | </chapter> |
| 291 | |
723 | |
| … | |
… | |
| 300 | spare time: |
732 | spare time: |
| 301 | </p> |
733 | </p> |
| 302 | |
734 | |
| 303 | <ul> |
735 | <ul> |
| 304 | <li> |
736 | <li> |
| 305 | We need GCC and binutils hackers who are able to port FreeBSD's patches to |
|
|
| 306 | the original versions of these tools provided by our main Portage tree. |
|
|
| 307 | </li> |
|
|
| 308 | <li> |
|
|
| 309 | Working on current ebuilds: this means working closely with ebuild maintainers |
737 | Working on current ebuilds: this means working closely with ebuild |
| 310 | in order to create patches or modify ebuilds in a way that can be accepted |
738 | maintainers in order to create patches or modify ebuilds in a way that can |
| 311 | into the main tree. |
739 | be accepted into the main tree. |
| 312 | </li> |
740 | </li> |
| 313 | <li> |
741 | <li> |
| 314 | Security: if you are into security, we need you! Although security |
742 | Security: if you are into security, we need you! Although security |
| 315 | advisories from the FreeBSD project are tracked and fixed, we can always |
743 | advisories from the FreeBSD project are tracked and fixed, we can always |
| 316 | use help in this area. |
744 | use help in this area. |
| … | |
… | |
| 326 | will be discovered, which helps us improving the quality of the port. If |
754 | will be discovered, which helps us improving the quality of the port. If |
| 327 | you are good at describing bugs or problems, we definitely want to hear |
755 | you are good at describing bugs or problems, we definitely want to hear |
| 328 | from you. |
756 | from you. |
| 329 | </li> |
757 | </li> |
| 330 | <li> |
758 | <li> |
| 331 | Other areas where we need help include: system ebuilds, baselayout, |
759 | Other areas where we need help include: system ebuilds, creation of |
| 332 | creation of installation CDs, documentation, kernel hacking. |
760 | installation CDs, documentation, kernel hacking. |
| 333 | </li> |
761 | </li> |
| 334 | </ul> |
762 | </ul> |
| 335 | |
763 | |
| 336 | </body> |
764 | </body> |
| 337 | </section> |
765 | </section> |
| 338 | <section> |
|
|
| 339 | <title>Building the system and dealing with issues</title> |
|
|
| 340 | <body> |
|
|
| 341 | |
766 | |
| 342 | <p> |
|
|
| 343 | Although Linux and FreeBSD both are Unix-like operating systems, there are some |
|
|
| 344 | important differences you have to know about if you want to contribute to our |
|
|
| 345 | development effort: |
|
|
| 346 | </p> |
|
|
| 347 | |
|
|
| 348 | <ul> |
|
|
| 349 | <li> |
|
|
| 350 | FreeBSD doesn't use the GNU autotools (autoconf, automake, autoheader). |
|
|
| 351 | Instead, it uses its own implementation of <c>make</c>, putting |
|
|
| 352 | configuration options in external files and some .mk files that are |
|
|
| 353 | included with each Makefile. Although a lot of work has been put into |
|
|
| 354 | those .mk files, it is not hard to find some installations failing due to |
|
|
| 355 | a missing <c>${INSTALL} -d</c> somewhere. The easy way to deal with |
|
|
| 356 | this kind of problem is to read the Makefile to find the accompanying .mk |
|
|
| 357 | file, then open that file and try to figure out which part failed (this is |
|
|
| 358 | not really hard once you figure out where in the installation process it |
|
|
| 359 | stopped). |
|
|
| 360 | </li> |
|
|
| 361 | <li> |
|
|
| 362 | Besides, due to the fact that FreeBSD is a complete operating system, you |
|
|
| 363 | won't find things like a FreeBSD kernel tarball for download on a web site. |
|
|
| 364 | The system is meant to be concise, thus whenever you start making an ebuild |
|
|
| 365 | for something that uses system sources, you are very likely to run into |
|
|
| 366 | problems when it tries to access non-existent files or directories. This |
|
|
| 367 | generally occurs when a Makefile points to <path>${.CURDIR}/../sys</path>, |
|
|
| 368 | or when a Makefile has a source dependency on another system package. There |
|
|
| 369 | is no default rule on dealing with such issues, but generally one of the |
|
|
| 370 | following procedures helps: |
|
|
| 371 | <ul> |
|
|
| 372 | <li> |
|
|
| 373 | If the ebuild is trying to access kernel sources, patch it to point to |
|
|
| 374 | <path>/usr/src/sys</path> |
|
|
| 375 | </li> |
|
|
| 376 | <li> |
|
|
| 377 | If it's trying to access some other source that is provided by the |
|
|
| 378 | system, it's easier to add it to <c>$SRC_URI</c> and unpack it to |
|
|
| 379 | <c>$WORKDIR</c> |
|
|
| 380 | </li> |
|
|
| 381 | </ul> |
|
|
| 382 | </li> |
|
|
| 383 | <li> |
|
|
| 384 | In order to maintain a concise buildsystem, we have several tarballs which |
|
|
| 385 | are grouped by their functionality. This means that system libraries can be |
|
|
| 386 | found in the freebsd-lib tarball, which contains the sources you would |
|
|
| 387 | usually find in /usr/src/lib. On the other hand, freebsd-usrsbin contains |
|
|
| 388 | <path>/usr/sbin/*</path> tools and consists of sources from |
|
|
| 389 | <path>/usr/src/usr.sbin</path>. |
|
|
| 390 | </li> |
|
|
| 391 | </ul> |
|
|
| 392 | |
|
|
| 393 | </body> |
|
|
| 394 | </section> |
|
|
| 395 | <section> |
767 | <section> |
| 396 | <title>Known issues</title> |
768 | <title>Known issues</title> |
| 397 | <body> |
769 | <body> |
| 398 | |
770 | |
| 399 | <p> |
771 | <p> |
| … | |
… | |
| 403 | |
775 | |
| 404 | <ul> |
776 | <ul> |
| 405 | <li> |
777 | <li> |
| 406 | Some init scripts depend on the clock service which we don't provide right |
778 | Some init scripts depend on the clock service which we don't provide right |
| 407 | now. You can just remove it from the dependencies of the script and report |
779 | now. You can just remove it from the dependencies of the script and report |
| 408 | that on our <uri link="http://bugs.gentoo.org/">bugzilla</uri>. Please |
780 | that on our <uri link="http://bugs.gentoo.org/">Bugzilla</uri>. Please |
| 409 | remember to use the "Gentoo BSD" product for your submission. |
781 | remember to use the "Gentoo/Alt" product for your submission. |
| 410 | </li> |
782 | </li> |
| 411 | <li>glib and gnome in general need a lot of fixes to be backported.</li> |
|
|
| 412 | </ul> |
783 | </ul> |
| 413 | |
784 | |
| 414 | </body> |
785 | </body> |
| 415 | </section> |
786 | </section> |
| 416 | </chapter> |
787 | </chapter> |