/[gentoo]/xml/htdocs/doc/en/gentoo-freebsd.xml
Gentoo

Contents of /xml/htdocs/doc/en/gentoo-freebsd.xml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.34 - (hide annotations) (download) (as text)
Sun Aug 8 18:09:43 2010 UTC (4 years, 1 month ago) by nightmorph
Branch: MAIN
Changes since 1.33: +5 -5 lines
File MIME type: application/xml
fix broken link to fbsd core team page

1 cam 1.4 <?xml version="1.0" encoding="UTF-8"?>
2 neysx 1.1 <!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
3 nightmorph 1.34 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/gentoo-freebsd.xml,v 1.33 2009/04/22 20:14:37 nightmorph Exp $ -->
4 neysx 1.1
5 nightmorph 1.34 <guide>
6 neysx 1.1 <title>A short guide to Gentoo/FreeBSD</title>
7    
8     <author title="Author">
9     <mail link="ignacio.arquelatour@gmail.com">Ignacio Arque-Latour</mail>
10     </author>
11     <author title="Author">
12     <mail link="citizen428@gentoo.org">Michael Kohl</mail>
13     </author>
14     <author title="Author">
15 rane 1.8 <mail link="angusyoung@gentoo.org">Otavio R. Piske</mail>
16 neysx 1.1 </author>
17     <author title="Author">
18     <mail link="ka0ttic@gentoo.org">Aaron Walker</mail>
19     </author>
20 nightmorph 1.21 <author title="Author">
21     <mail link="chriswhite@gentoo.org">Chris White</mail>
22     </author>
23 nightmorph 1.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>
29 cam 1.26 <author title="Editor">
30     <mail link="cam@gentoo.org">Camille Huot</mail>
31     </author>
32 neysx 1.1
33     <abstract>
34     This document gives some general information on FreeBSD, as well as
35     installation instructions for Gentoo/FreeBSD. It also includes some reference
36     for people interested in helping out with development.
37     </abstract>
38    
39     <!-- The content of this document is licensed under the CC-BY-SA license -->
40     <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
41     <license/>
42    
43 nightmorph 1.34 <version>3</version>
44     <date>2010-08-08</date>
45 neysx 1.1
46     <chapter>
47     <title>Introduction to FreeBSD</title>
48     <section>
49     <title>What is FreeBSD?</title>
50     <body>
51    
52     <p>
53     <uri link="http://www.freebsd.org/">FreeBSD</uri> is a free (<uri
54     link="http://www.freebsd.org/copyright/freebsd-license.html">license</uri>)
55     Unix-like operating system. Back in 1993 when development of <uri
56     link="http://www.386bsd.org/">386BSD</uri> stopped, two projects were born:
57     <uri link="http://www.netbsd.org/">NetBSD</uri>, commonly known to run on a
58 nightmorph 1.19 huge number of architectures, and FreeBSD which supports the x86, amd64, ia64,
59 nightmorph 1.23 sparc64 and alpha platforms. FreeBSD is renowned for its stability, performance
60 nightmorph 1.19 and security, thus being used from small to huge companies all over the world.
61 nightmorph 1.23 </p>
62    
63     <p>
64 nightmorph 1.33 FreeBSD's current production release is version 7.1. Gentoo/FreeBSD is based on
65     version 6.2 and older versions of Gentoo/FreeBSD are discontinued and no
66 cam 1.27 longer supported.
67 neysx 1.1 </p>
68    
69     </body>
70     </section>
71     <section>
72     <title>What is Gentoo/FreeBSD?</title>
73     <body>
74    
75     <p>
76 nightmorph 1.20 <uri link="/proj/en/gentoo-alt/bsd/fbsd/">Gentoo/FreeBSD</uri> is a subproject
77     of the <uri link="/proj/en/gentoo-alt/">Gentoo/Alt project</uri>, with the
78     goal of providing a fully-capable FreeBSD operating system featuring design
79     sensibilities taken from Gentoo Linux, such as the init system and the Portage
80     package management system.
81 neysx 1.1 </p>
82    
83     </body>
84     </section>
85     <section>
86     <title>FreeBSD and Linux</title>
87     <body>
88    
89     <p>
90     Users migrating from Linux to FreeBSD commonly consider the two operating
91     systems "almost the same". In fact, FreeBSD really shares a lot of similarities
92     with Linux distributions in general. Nevertheless, it has some key differences
93     that are worth noting:
94     </p>
95    
96     <ul>
97     <li>
98     Contrary to Linux, which actually only refers to the kernel, FreeBSD is a
99     complete operating system, consisting of a C library, userland tools and
100     much more. This development approach makes the overall system very
101 cam 1.4 consistent.
102 neysx 1.1 </li>
103     <li>
104     Contrary to the Linux kernel, FreeBSD development is not led by one person,
105     but instead managed by a small group of people called the <uri
106 nightmorph 1.34 link="http://www.freebsd.org/doc/en_US.ISO8859-1/articles/contributors/staff-committers.html">Core
107 neysx 1.1 Team</uri>.
108     </li>
109     </ul>
110    
111     <p>
112     Besides, FreeBSD also has some technical differences which set it apart
113     from Linux. Some of them are very important to know, even if you don't plan on
114     joining the Gentoo/FreeBSD development effort:
115     </p>
116    
117     <ul>
118     <li>
119 cam 1.4 To get run-time dynamic linking functions like <c>dlopen()</c>, programs do
120 neysx 1.1 not need to be linked against libdl like on GNU/Linux. Instead they are
121 cam 1.4 linked against libc.
122 neysx 1.1 </li>
123     <li>
124     FreeBSD doesn't have an official tool for kernel compilation, thus you'll
125 cam 1.4 have to resolve feature dependencies on your own.
126 neysx 1.1 </li>
127     <li>
128     FreeBSD uses UFS/UFS-2 as its filesystems and has no official support for
129     e.g. ReiserFS or XFS. However, there are projects for adding read-only
130 cam 1.4 support for these filesystems. Accessing ext2/ext3 partitions is already
131     possible, but you cannot install your system on them.
132 neysx 1.1 </li>
133     </ul>
134    
135     </body>
136     </section>
137     </chapter>
138    
139     <chapter>
140     <title>Installing Gentoo/FreeBSD</title>
141     <section>
142 nightmorph 1.21 <title>Booting the CD</title>
143 neysx 1.1 <body>
144    
145     <p>
146     After this short introduction, it's about time to finally install
147     Gentoo/FreeBSD. Unfortunately, we currently lack our own installation media, so
148     you have to choose between two alternative installation methods. The first
149     would be to use an existing FreeBSD installation to partition your hard drive
150 nightmorph 1.21 and use it as a base for installing Gentoo/FreeBSD. This guide will describe how
151     to use the <uri link="http://www.freesbie.org/">FreeSBIE LiveCD</uri> as
152 neysx 1.1 an installation medium for Gentoo/FreeBSD.
153     </p>
154    
155 neysx 1.15 <note>
156     If you are intending to use FreeSBIE for installing Gentoo/FreeBSD, please make
157 nightmorph 1.23 sure to use a version based on FreeBSD 6.x, such as FreeSBIE 2.0 (or one of its
158     release candidates). You can download it from <uri
159     link="http://torrent.freesbie.org/">FreeSBIE's Bittorrent tracker</uri>.
160 neysx 1.15 </note>
161    
162 nightmorph 1.21 <p>
163     First, boot the CD in order to begin the installation process. You'll be
164     presented with a login screen. The username is <c>freesbie</c>, and there is
165     no password. Next, run <c>sudo su</c> to become root, and optionally setup a
166     password. If you want to pass time during the installation process, you can run
167     <c>startx</c> to enter into an Xfce environment, suitable for web browsing,
168     AIM, and other things. Unlike Linux, FreeBSD bases the name of your interface
169     on the driver for the interface. For example, the Intel EtherExpress driver
170     (fxp) appears as fxp0 (driver fxp, first network card). To see what your
171     interface is, use <c>ifconfig</c>:
172     </p>
173    
174     <pre caption="Finding out the network interface name using ifconfig">
175     # <i>ifconfig</i>
176     fxp0: flags=8843&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST&gt; mtu 1500
177     options=8&lt;VLAN_MTU&gt;
178     inet6 fe80::2d0::b7ff:febc:4fe3%fxp0 prefixlen 64 scopeid 0x1
179     inet 192.168.0.106 netmask 0xffffff00 broadcast 192.168.0.255
180     ether 00:d0:b7:bc:4f:e3
181     media: Ethernet autoselect (100baseTX &lt;full-duplex&gt;)
182     status: active
183     lo0: flags=8007&lt;LOOPBACK,MULTICAST&gt; mtu 16384
184     </pre>
185    
186     <p>
187     If the original DHCP request during the CD bootup failed, you can use the
188     <c>dhclient</c> command to obtain an IP:
189     </p>
190    
191     <pre caption="Obtaining a DHCP address using dhclient">
192     # <i>dhclient fxp0</i>
193     DHCPDISCOVER on fxp0 to 255.255.255.255 port 67 interval 9
194     DHCPOFFER from 192.168.0.1
195     DHCPREQUEST on fxp0 to 255.255.255.255 port 67
196     DHCPACK from 192.168.0.1
197     bound to 192.168.0.106 -- renewal in 302400 seconds
198     </pre>
199    
200     <note>
201     The output presented here will differ based on your network.
202     </note>
203    
204     </body>
205     </section>
206     <section>
207     <title>Partitioning the Drive</title>
208     <body>
209    
210 neysx 1.1 <p>
211 nightmorph 1.21 Now that we have a mount point, it's time to partition the drive. This is done
212     with the <c>sysinstall</c> command:
213 neysx 1.15 </p>
214    
215 nightmorph 1.21 <pre caption="Running the sysinstall command to fdisk the drive">
216     # <i>sysinstall diskPartitionEditor diskPartitionWrite</i>
217 neysx 1.15 </pre>
218    
219     <p>
220 nightmorph 1.21 We recommend that you use the default layout. Press enter at the dialog, then
221     press <b>a</b> followed by <b>q</b> to accept the default layout. The next
222     screen will present you with the option of a bootloader. For this option,
223     choose "None" as we'll be installing the bootloader later on. Next comes the
224     actual partition sizing and mount points.
225 neysx 1.1 </p>
226    
227     <p>
228 nightmorph 1.21 This next step also uses <c>sysinstall</c>, but with different arguments:
229 neysx 1.1 </p>
230    
231 nightmorph 1.21 <pre caption="Running sysinstall to setup partition sizing and mount points">
232     # <i>sysinstall diskLabelEditor diskLabelCommit</i>
233 neysx 1.1 </pre>
234    
235     <p>
236 nightmorph 1.21 Here, we'll refrain from using the automatic layout, and create one giant root
237     partition, followed by a swap partition. Hit <b>c</b> to create a new
238     partition. A dialog prompts you to enter a size. Go ahead and do so, using
239     MB/GB for setting different sizes, or C for cylinders. For root, choose FS as
240 cam 1.26 the partition type, and set the mount point as <path>/mnt/</path>. <e>If
241 nightmorph 1.21 you do not adjust the mount point, it will overwrite the FreeSBIE
242 nightmorph 1.22 environment!</e> As <path>/boot</path> is not a separate partition, you'll
243 nightmorph 1.21 need to disable soft-updates, or your system will not boot! To do so, use the
244     arrow keys to navigate to your newly created partition, then hit the <b>s</b>
245     key, until "Newfs" contains no <b>+S</b>. Now navigate the arrow keys until
246     the "Disk" line is highlighted, and hit <b>c</b> again to create a swap
247     partition. Generally, we recommend a swap space that is twice the size of your
248     RAM. Choose SWAP as the partition type, and don't worry about soft-updates, as
249     it does not apply to swap. Now we're finished, so hit <b>q</b> to finish the
250     process.
251     </p>
252    
253     <p>
254 nightmorph 1.23 When choosing a different mountpoint than <path>/</path> for your partition,
255     <c>sysinstall</c> will actually create a 'd' slice, which the bootloader won't
256     boot from. To fix this, run the following:
257     </p>
258    
259 cam 1.31 <note>
260     Please, make sure ad0s1 is unmounted before running the following command,
261     otherwise it will not work.
262     </note>
263    
264 nightmorph 1.23 <pre caption="Fixing the root partition letter">
265 cam 1.29 # <i>disklabel ad0s1 | sed 's/^ d:/ a:/' | disklabel -R ad0s1 /dev/stdin</i>
266 nightmorph 1.23 </pre>
267    
268     <p>
269 nightmorph 1.21 This will finalize the partitioning process, and format the drive in UFS for
270     FreeBSD to utilize. This will also mount the drive for you at the mount point
271 cam 1.26 specified earlier (<path>/mnt/</path>). You can verify this worked by
272 nightmorph 1.21 running <c>mount</c>:
273 neysx 1.15 </p>
274    
275 nightmorph 1.21 <pre caption="Verifying the new disk layout was mounted with mount">
276     # <i>mount</i>
277     ...
278 cam 1.26 /dev/ad0s1a on /mnt (ufs, local)
279 neysx 1.15 </pre>
280    
281     <p>
282 swift 1.30 Now that you have mounted the target partition, it is time to start on the
283     Gentoo setup.
284 nightmorph 1.21 </p>
285    
286     </body>
287     </section>
288     <section>
289     <title>Gentoo Setup</title>
290     <body>
291    
292     <p>
293     First, we need to download a stage3 tarball and unpack it into the chroot.
294     Point your browser to
295 neysx 1.32 <uri>http://distfiles.gentoo.org/experimental/x86/freebsd/stages/</uri>, grab the
296 nightmorph 1.21 latest snapshot, and unpack it into the mountpoint:
297 neysx 1.1 </p>
298    
299     <pre caption="Obtaining and unpacking a stage3 tarball">
300 cam 1.26 # <i>cd /mnt/</i>
301 neysx 1.1 <comment>(Any other Gentoo mirror which includes the experimental/ directory will also work.)</comment>
302 neysx 1.32 # <i>wget http://distfiles.gentoo.org/experimental/x86/freebsd/stages/stage3-x86-freebsd-6.2-r1.tar.bz2</i>
303 cam 1.31 # <i>tar -jxvpf stage3-x86-freebsd-6.2-r1.tar.bz2</i>
304 neysx 1.1 <comment>(You can delete the tarball with the following command if you want to.)</comment>
305 cam 1.31 # <i>rm stage3-x86-freebsd-6.2-r1.tar.bz2</i>
306 rane 1.3 </pre>
307    
308 nightmorph 1.23 <note>
309     If you want you can use the transition overlay that contains semi-experimental
310     ebuilds with patches not yet in the main Portage tree, but does allow a wider
311     range of supported packages, please refer to the <uri
312 nightmorph 1.21 link="/proj/en/gentoo-alt/contribute/index.xml?part=1&amp;chap=3">Gentoo/ALT
313 nightmorph 1.23 overlay documentation</uri>. Please note that the overlay is not critical and
314     you can easily install and use Gentoo/FreeBSD without it.
315     </note>
316 jkt 1.7
317     <p>
318 neysx 1.1 In order for your install to work, you need to mount the <path>/dev</path>
319     filesystem from the currently running system into the Gentoo/FreeBSD mount
320     point before proceeding with the chroot.
321     </p>
322    
323     <pre caption="Mounting the /dev filesystem and chrooting">
324 cam 1.26 # <i>mount -t devfs none /mnt/dev/</i>
325     # <i>cp /etc/resolv.conf /mnt/etc/</i>
326     # <i>chroot /mnt/ /bin/bash</i>
327 nightmorph 1.21 # <i>env-update &amp;&amp; source /etc/profile</i>
328 neysx 1.1 </pre>
329    
330     <p>
331 nightmorph 1.24 After you obtain the Gentoo/FreeBSD overlay, it's time to link
332     <path>/etc/make.profile</path> to the correct profile and get your
333 neysx 1.1 <path>/etc/make.conf</path> ready for Gentoo/FreeBSD.
334     </p>
335    
336 rane 1.17 <p>
337     Now, you have to obtain a copy of the main Gentoo Portage tree, which depending
338     on your connection might take quite a while.
339     </p>
340    
341     <pre caption="Obtaining the Portage tree">
342     # <i>emerge --sync</i>
343     <comment>(It's also possible to retrieve the Portage tree in another way:)</comment>
344     # <i>cd /</i>
345 neysx 1.32 # <i>wget http://distfiles.gentoo.org/snapshots/portage-latest.tar.bz2</i>
346 rane 1.17 # <i>tar -xjf portage-latest.tar.bz2 -C /usr/</i>
347     # <i>emerge --metadata</i>
348     </pre>
349    
350 neysx 1.1 <pre caption="Setting up the profile and editing /etc/make.conf">
351 nightmorph 1.23 # <i>ln -sf /usr/portage/profiles/default-bsd/fbsd/6.2/x86/ /etc/make.profile</i>
352 nightmorph 1.21 # <i>nano /etc/make.conf</i>
353 neysx 1.1 <comment>(Please make sure you add at least the following entries:)</comment>
354 cam 1.29 CHOST="i686-gentoo-freebsd6.2"
355 nightmorph 1.23 FEATURES="collision-protect"
356 neysx 1.1 </pre>
357    
358 neysx 1.15 <note>
359 nightmorph 1.23 The <c>~x86-fbsd</c> keyword does not yet fully cover the same tree as
360     <c>~x86</c>, but please <e>do not</e> put <c>~x86</c> in ACCEPT_KEYWORDS. Rather
361     use <path>/etc/portage/package.keywords</path> to test packages, and report
362     working packages on <uri
363     link="http://bugs.gentoo.org/enter_bug.cgi?product=Gentoo%2FAlt">Bugzilla</uri>.
364 neysx 1.15 </note>
365    
366 neysx 1.1 <p>
367 jkt 1.11 If you want, you can now rebuild the system's core packages.
368 neysx 1.1 </p>
369    
370 nightmorph 1.20 <pre caption="Rebuilding the FreeBSD core packages (optional)">
371 neysx 1.1 # <i>emerge -e system</i>
372     </pre>
373    
374 nightmorph 1.21 </body>
375     </section>
376     </chapter>
377     <chapter>
378     <title>Setting up for Booting</title>
379     <section>
380 cam 1.26 <title>Set your time zone</title>
381     <body>
382    
383     <p>
384     First make sure your date and time is set correctly using <c>date
385     yyyymmddHHMM</c>. Use UTC time.
386     </p>
387    
388     <pre caption="Set the date and UTC time">
389     <comment>(Check the clock)</comment>
390     # <i>date</i>
391     Mon Mar 6 00:14:13 UTC 2006
392    
393     <comment>(Set the current date and time if required)</comment>
394     # <i>date 200603060016</i> <comment>(Format is yyyymmddHHMM)</comment>
395     Mon Mar 6 00:16:00 UTC 2006
396     </pre>
397    
398     <p>
399     Next, set your time zone information by using the correct listing in
400     <path>/usr/share/zoneinfo</path>.
401     </p>
402    
403     <pre caption="Setting your timezone">
404     # <i>ls /usr/share/zoneinfo</i>
405     <comment>(Using Brussels as an example)</comment>
406     # <i>cp /usr/share/zoneinfo/Europe/Brussels /etc/localtime</i>
407    
408     # <i>date</i>
409     Wed Mar 8 00:46:05 CET 2006
410     </pre>
411    
412     <p>
413     Edit <path>/etc/conf.d/clock</path> to define the time zone you used
414     previously.
415     </p>
416    
417     <pre caption="Edit /etc/conf.d/clock">
418     # <i>nano -w /etc/conf.d/clock</i>
419     TIMEZONE="Europe/Brussels"
420     </pre>
421    
422     </body>
423     </section>
424     <section>
425 nightmorph 1.21 <title>Kernel Installation</title>
426     <body>
427    
428 jkt 1.11 <p>
429 nightmorph 1.21 If you ran <c>emerge -e system</c>, the sources for the FreeBSD kernel were
430 cam 1.12 installed to <path>/usr/src/sys</path>. If you skipped this step, you can get
431 jkt 1.11 them in the following way:
432     </p>
433    
434 nightmorph 1.20 <pre caption="Getting the FreeBSD kernel sources">
435 jkt 1.11 # <i>emerge freebsd-sources</i>
436     </pre>
437    
438     <p>
439 nightmorph 1.21 Configuring and compiling a custom kernel is quite different from compiling
440 cam 1.12 Linux, so if you are not familiar with the process we encourage you to have a
441     look at <uri
442     link="http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html">
443 nightmorph 1.21 chapter 8</uri> of the FreeBSD handbook. For now, you can do an installation of
444     the GENERIC kernel, which works on most systems. To begin, enter the source
445     directory for the kernel:
446     </p>
447    
448     <impo>
449     Please note that currently only the "Traditional" way of building the kernel is
450     supported on Gentoo/FreeBSD!
451     </impo>
452    
453     <pre caption="Entering the kernel source directory">
454     # <i>cd /usr/src/sys/</i>
455     </pre>
456    
457     <p>
458     Looking over the layout, you'll see various architectures and subdirectories
459     for various parts of the kernel. To begin the installation, we head into the
460     <path>i386/conf/</path> directory:
461     </p>
462    
463     <pre caption="The kernel configuration directory">
464     # <i>cd i386/conf/</i>
465     # <i>ls</i>
466     .cvsignore GENERIC Makefile PAE
467     DEFAULTS GENERIC.hints NOTES SMP
468     </pre>
469    
470     <p>
471     The main files to note are <path>GENERIC</path> and <path>GENERIC.hints</path>.
472     As it will be needed by the installation of the kernel, go ahead and copy
473     <path>GENERIC.hints</path> file to <path>/boot/device.hints</path>:
474     </p>
475    
476     <pre caption="Copying over the GENERIC.hints file">
477     # <i>cp GENERIC.hints /boot/device.hints</i>
478     </pre>
479    
480     <p>
481     This file is used by the kernel drivers for basic configuration information
482     such as IRQ settings. Now it's time to configure the kernel. FreeBSD uses the
483     <c>config</c> command to do this. <c>config</c> uses the given file (in this
484     instance GENERIC) to copy over the required build files to a
485     <path>compile</path> directory in the parent directory. <path>GENERIC</path> is
486     similiar to the <path>.config</path> file for the Linux kernel. Run
487     <c>config</c> to produce the build directory:
488     </p>
489    
490     <pre caption="Configuring the kernel build">
491     # <i>config GENERIC</i>
492     Kernel build directory is ../compile/GENERIC
493     Don't forget to ''make cleandepend; make depend''
494     </pre>
495    
496     <p>
497     <c>config</c> has created a GENERIC build directory for us in the parent
498     directory. <c>cd</c> into it, then run the following to do a complete build:
499 jkt 1.11 </p>
500    
501 nightmorph 1.21 <pre caption="Building and installing the kernel">
502     # <i>cd ../compile/GENERIC</i>
503     # <i>make cleandepend &amp;&amp; make depend &amp;&amp; make &amp;&amp; make install</i>
504     </pre>
505    
506 jkt 1.11 <p>
507 nightmorph 1.21 This will give us a complete kernel to work with. Now we'll need to setup the
508     bootloader for the kernel to boot. The next chapter will discuss two methods of
509 nightmorph 1.23 setting up the bootloader: <c>boot0</c> and <c>grub</c>.
510     </p>
511    
512     </body>
513     </section>
514     <section>
515     <title>Setting up the bootloader (boot0)</title>
516     <body>
517    
518     <impo>
519     <c>boot0</c> is the FreeBSD bootloader. Previously, it was the only supported
520     bootloader until <c>grub</c> was introduced into ports with UFS slice support.
521     To install and configure <c>boot0</c>, run the following. Remember to replace
522     <c>adXsY</c> with the actual number and slice of your disk.
523     </impo>
524    
525     <pre caption="Installing and setting up boot0">
526     # <i>emerge boot0</i>
527     <comment>(Leave the chroot environment)</comment>
528     # <i>exit</i>
529     <comment>(Issued from outside the chroot)</comment>
530 cam 1.26 # <i>fdisk -B -b /mnt/boot/boot0 /dev/adX</i>
531     # <i>chroot /mnt/ /bin/bash</i>
532 nightmorph 1.23 # <i>disklabel -B adXsY</i>
533     </pre>
534    
535     <p>
536     If you need additional information on setting up <c>boot0</c>, please consult
537     <uri
538     link="http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/boot.html">chapter
539     12</uri> of the FreeBSD handbook. Now it's time to do some basic system
540     configuration and settings.
541     </p>
542    
543     <p>
544     The next section will look at using the alternative bootloader, <c>grub</c>.
545 nightmorph 1.21 </p>
546    
547     </body>
548     </section>
549     <section>
550     <title>Setting up the bootloader (grub)</title>
551     <body>
552    
553     <p>
554     As of grub 0.97-r1, UFS slices are readable to <c>grub</c>. This lets us use
555     <c>grub</c> as a bootloader, the prefered method for those coming from a Linux
556     background. To begin, emerge <c>grub</c> and setup the label as bootable.
557     Remember to replace <c>adXsY</c> with the actual number and slice of your disk.
558     </p>
559    
560     <pre caption="Emerge grub">
561     # <i>emerge grub</i>
562     # <i>disklabel -B adXsY</i>
563     </pre>
564    
565     <p>
566     Now run <c>grub</c> to bring up the command prompt, and set up the partition as
567     shown:
568     </p>
569    
570     <pre caption="Setting up grub">
571     <comment>(This is done to prevent disk error 29)</comment>
572     # <i>sysctl kern.geom.debugflags=16</i>
573     # <i>grub</i>
574     <comment>(Example using ad0s1d)</comment>
575     grub&gt; <i>root (hd0,0,d)</i>
576     Filesystem type is ufs2, partition type 0xa5
577    
578     grub&gt; <i>setup (hd0)</i>
579     Checking if "/boot/grub/stage1" exists... yes
580     Checking if "/boot/grub/stage2" exists... yes
581     Checking if "/boot/grub/ufs2_stage1_5" exists... yes
582     Running "embed /boot/grub/ufs2_stage1_5 (hd0)"... 14 sectors are embedded.
583     succeeded
584     Running "install /boot/grub/stage1 (hd0) (hd0)1+14 p (hd0,0,d)/boot/grub/stage
585     2 /boot/grub/menu.lst"... succeeded
586     Done.
587    
588     grub&gt; quit
589     </pre>
590    
591     <p>
592 cam 1.26 To make the loader find the kernel on a specific slice (the default is 'a'),
593     add a <c>vfs.root.mountfrom</c> line to the <path>/boot/loader.conf</path>
594     file:
595     </p>
596    
597     <pre caption="Tell the loader where to look for the kernel">
598     # <i>echo 'vfs.root.mountfrom="ufs:ad0s1d"' >> /boot/loader.conf</i>
599     </pre>
600    
601     <p>
602 nightmorph 1.21 When you first boot, you may not receive a grub menu. If so, run this at the
603     prompt:
604     </p>
605    
606     <pre caption="Booting the kernel with no menu">
607     grub&gt; <i>find /boot/grub/stage1</i>
608     <comment>(The output here is what you'll use in the next command)</comment>
609     (hd0,0,d)
610    
611     grub&gt; <i>kernel (hd0,0,d)/boot/loader</i>
612     [FreeBSD-a.out, loadaddr=0x200000, text=0x1000, data=0x3a000, bss=0x0, entry=0x200000]
613    
614     grub&gt; <i>boot</i>
615     </pre>
616    
617 nightmorph 1.23 <note>
618     For more information on configuring grub, please refer to the <uri
619     link="/doc/en/handbook/handbook-x86.xml?part=1&amp;chap=10#doc_chap2">Gentoo
620     Linux Handbook</uri>.
621     </note>
622 jkt 1.11
623 cam 1.26 <warn>
624     Grub doesn't follow UFS symlinks so be sure to delete the
625     <path>/boot/grub/menu.lst</path> symlink and to use <path>menu.lst</path> to
626     setup Grub (<path>grub.conf</path> isn't used).
627     </warn>
628    
629 nightmorph 1.21 </body>
630     </section>
631     <section>
632     <title>System configuration</title>
633     <body>
634    
635 jkt 1.11 <p>
636 nightmorph 1.21 First, we are going to setup the filesystem mounting points in
637     <path>/etc/fstab</path>.
638 jkt 1.11 </p>
639    
640     <pre caption="Editing the filesystem in /etc/fstab">
641 nightmorph 1.21 # <i>nano /etc/fstab</i>
642 jkt 1.11 <comment>(This is an example, replace X and Y with the correct numbers for your hard disk.)</comment>
643     #Device Mountpoint Fstype Options Dump Pass
644     /dev/adXsYb none swap sw 0 0
645     /dev/adXsYa / ufs rw 1 1
646     /dev/adXsYe /usr/home ufs rw 2 2
647     /dev/adXsYd /tmp ufs rw 2 2
648     /dev/acdX /cdrom cd9660 ro,noauto 0 0
649     </pre>
650    
651     <p>
652     Now would also be a good time to set up your network connection before the final
653 nightmorph 1.21 reboot. You can find all the information necessary to configure your network in
654     the <uri link="/doc/en/handbook/handbook-x86.xml?part=4&amp;chap=1">Gentoo
655     Handbook</uri>. To have your network interface activated at boot time, you have
656     to add it to the default runlevel:
657 vanquirius 1.13 </p>
658    
659     <pre caption="Adding your network adapter to the default runlevel">
660 nightmorph 1.21 # <i>rc-update add net.fxp0 default</i>
661 vanquirius 1.13 </pre>
662    
663     <p>
664 rane 1.18 Your system's hostname can be changed in <path>/etc/conf.d/hostname</path>.
665 jkt 1.11 </p>
666    
667     <pre caption="Setting up the machine's hostname">
668 nightmorph 1.21 # <i>nano /etc/conf.d/hostname</i>
669 rane 1.17 <comment>(Set the HOSTNAME variable to your hostname)</comment>
670     HOSTNAME="tux"
671     </pre>
672    
673     <p>
674     You should also configure your domain name, which is done in the
675     <path>/etc/conf.d/domainname</path> file:
676     </p>
677    
678     <pre caption="Setting the domainname">
679 nightmorph 1.21 # <i>nano /etc/conf.d/domainname</i>
680 nightmorph 1.23 <comment>(Set the dns_domain variable to your domain name, and lo to your local
681     network interface)</comment>
682     dns_domain_lo="homenetwork"
683 rane 1.17 </pre>
684    
685     <p>
686     If you have a NIS domain, you need to define it in the
687     <path>/etc/conf.d/domainname</path> file:
688     </p>
689    
690     <pre caption="Setting the NIS domainname">
691 nightmorph 1.21 # <i>nano /etc/conf.d/domainname</i>
692 nightmorph 1.23 <comment>(Set the nis_domain variable to your NIS domain name, and lo to your local network interface)</comment>
693     nis_domain_lo="my-nisdomain"
694 jkt 1.11 </pre>
695    
696 nightmorph 1.23 <note>
697     For more information on domainnames and networking, please refer to the <uri
698     link="/doc/en/handbook/handbook-x86.xml?part=1&amp;chap=8#doc_chap2">Gentoo
699     Linux Handbook</uri>, and please read the documentation in
700     <path>/etc/conf.d/net.example</path>.
701     </note>
702    
703 jkt 1.11 <p>
704 cam 1.12 In case you need to use another keyboard layout for your language, you have to
705     set the correct value in <path>/etc/conf.d/syscons</path>. The following example
706     uses the Spanish layout, so you'll have to adjust it to your need if you want to
707     use another one.
708 jkt 1.11 </p>
709    
710     <pre caption="Changing your keyboard layout (Optional)">
711 nightmorph 1.21 # <i>nano /etc/conf.d/syscons</i>
712 jkt 1.11 KEYMAP="spanish.iso.acc"
713     <comment>(Possible layouts can be found in /usr/share/syscons/keymaps).</comment>
714     </pre>
715    
716 fox2mike 1.2 <p>
717 cam 1.12 Now would be a good time to set a password for the <c>root</c> user and to add
718 jkt 1.11 another user account for your day-to-day work.
719 fox2mike 1.2 </p>
720    
721 jkt 1.11 <pre caption="Changing the root password and adding a new user">
722     # <i>passwd</i>
723     # <i>adduser</i>
724 nightmorph 1.21 Username: <i>fred</i>
725     Full Name: <i>Fred Smith</i>
726     <comment>(Accepting the default here, just hit Enter.)</comment>
727     Uid (Leave empty for default):
728     <comment>(OK to accept the default here as well; hit Enter.)</comment>
729     Login group [fred]:
730     <comment>(Enter your groups here, space separated. They must exist.)</comment>
731     Login group is fred. Invite fred into other groups? []: wheel portage
732     <comment>(OK to accept the default here, hit Enter)</comment>
733     Login class [default]:
734     <comment>(Somewhat of a personal preference. Make sure the shell exists in /etc/shells)</comment>
735     Shell (sh bash tcsh csh esh ksh zsh sash nologin) [sh] <i>bash</i>
736     <comment>(OK to accept the default here, hit Enter for all these)</comment>
737     User password-based authentication [yes]
738     Use an empty password (yes/no) [no]:
739     Use a random password? (yes/no) [no]:
740     Enter password: <i>password goes here</i>
741     Enter password again: <i>retype it</i>
742     <comment>(OK to accept the default here, hit Enter)</comment>
743     Lock out the account after creation? [no]:
744     Username : fred
745     Password : *****
746     Full Name : Fred Smith
747     <comment>(This will vary)</comment>
748     Uid : 1002
749     Class :
750     Groups : fred wheel portage
751     Home : /home/fred
752     Shell : /bin/bash
753     Locked : no
754     <comment>(Confirm the information is correct)</comment>
755     OK? (yes/no): <i>yes</i>
756     adduser: INFO: Sucessfully added (fred) to the user database
757     Add another user? (yes/no): <i>no</i>
758     Goodbye!
759     #
760 jkt 1.11 </pre>
761    
762 fox2mike 1.2 <p>
763 cam 1.12 Congratulations, you have just finished your Gentoo/FreeBSD installation which
764     you can start exploring after the final reboot. Have fun!
765 fox2mike 1.2 </p>
766    
767 jkt 1.11 <pre caption="Rebooting the system">
768     # <i>exit</i>
769     # <i>reboot</i>
770     </pre>
771    
772 neysx 1.1 </body>
773     </section>
774     </chapter>
775    
776     <chapter>
777     <title>Developing for Gentoo/FreeBSD</title>
778     <section>
779 cam 1.4 <title>How to help</title>
780 neysx 1.1 <body>
781    
782     <p>
783     There are many things you could help with, depending on your skill level and
784     spare time:
785     </p>
786    
787     <ul>
788     <li>
789 cam 1.12 Working on current ebuilds: this means working closely with ebuild
790     maintainers in order to create patches or modify ebuilds in a way that can
791     be accepted into the main tree.
792 neysx 1.1 </li>
793     <li>
794     Security: if you are into security, we need you! Although security
795     advisories from the FreeBSD project are tracked and fixed, we can always
796 cam 1.4 use help in this area.
797 neysx 1.1 </li>
798     <li>
799     Contacts: we need people who can get in touch with FreeBSD developers to
800     maintain contacts between us and the original project to exchange patches
801     and discuss various problems and their solutions. Note that this should
802 cam 1.4 never involve any kind of spamming of mailing lists or IRC channels.
803 neysx 1.1 </li>
804     <li>
805     Testing: the more people are actively using Gentoo/FreeBSD, the more bugs
806     will be discovered, which helps us improving the quality of the port. If
807     you are good at describing bugs or problems, we definitely want to hear
808 cam 1.4 from you.
809 neysx 1.1 </li>
810     <li>
811 nightmorph 1.23 Other areas where we need help include: system ebuilds, creation of
812     installation CDs, documentation, kernel hacking.
813 neysx 1.1 </li>
814     </ul>
815    
816     </body>
817     </section>
818    
819     <section>
820     <title>Known issues</title>
821     <body>
822    
823     <p>
824     At the moment, there are still quite a lot of known issues. Here are the ones
825     really worth noting:
826     </p>
827    
828     <ul>
829     <li>
830     Some init scripts depend on the clock service which we don't provide right
831     now. You can just remove it from the dependencies of the script and report
832 nightmorph 1.23 that on our <uri link="http://bugs.gentoo.org/">Bugzilla</uri>. Please
833     remember to use the "Gentoo/Alt" product for your submission.
834 neysx 1.15 </li>
835 neysx 1.1 </ul>
836    
837     </body>
838     </section>
839     </chapter>
840    
841     <chapter>
842     <title>Contact</title>
843     <section>
844     <body>
845    
846     <p>
847 cam 1.4 A list of Gentoo/FreeBSD developers can be found at the <uri
848 neysx 1.1 link="/proj/en/gentoo-alt/bsd/fbsd/">project page</uri>. Other ways to contact
849     Gentoo/FreeBSD developers include our IRC Channel <c>#gentoo-bsd</c> on
850 jkt 1.6 Freenode, as well as the <uri link="/main/en/lists.xml">gentoo-bsd mailing
851     list</uri>.
852 neysx 1.1 </p>
853    
854     </body>
855     </section>
856     </chapter>
857     </guide>

  ViewVC Help
Powered by ViewVC 1.1.20