source: chroot/common/devices.xml@ cdadf8f

Last change on this file since cdadf8f was bf8c11f, checked in by Jim Gifford <clfs@…>, 19 years ago

r627@server (orig r625): jim | 2005-10-31 12:59:34 -0800
Import of Cross-LFS Book

  • Property mode set to 100644
File size: 3.3 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
3 "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6]>
7
8<sect1 id="ch-chroot-devices">
9 <?dbhtml filename="devices.html"?>
10
11 <title>Populating /dev</title>
12
13 <indexterm zone="ch-chroot-devices">
14 <primary sortas="e-/dev/*">/dev/*</primary>
15 </indexterm>
16
17 <sect2>
18 <title>Creating Initial Device Nodes</title>
19
20 <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
21 href="../../boot/common/devices.xml"
22 xpointer="xpointer(//*[@os='a'])"/>
23
24<screen><userinput>mknod -m 600 /dev/console c 5 1
25mknod -m 666 /dev/null c 1 3</userinput></screen>
26
27 </sect2>
28
29 <sect2>
30 <title>Mounting tmpfs and Populating /dev</title>
31
32 <para>The recommended method of populating the <filename
33 class="directory">/dev</filename> directory with devices is to
34 mount a virtual filesystem (such as <systemitem
35 class="filesystem">tmpfs</systemitem>) on the <filename
36 class="directory">/dev</filename> directory, and allow the devices
37 to be created dynamically on that virtual filesystem as they are
38 detected or accessed. This is generally done during the boot process.
39 Since this new system has not been booted, it is necessary to do what
40 the LFS-Bootscripts package would otherwise do by mounting <filename
41 class="directory">/dev</filename>:</para>
42
43<screen><userinput>mount -n -t tmpfs none /dev</userinput></screen>
44
45 <para>The Udev package is what actually creates the devices in the
46 <filename class="directory">/dev</filename> directory. Since it will
47 not be installed until later on in the process, manually create the
48 minimal set of device nodes needed to complete the building of this
49 system:</para>
50
51<screen><userinput>mknod -m 622 /dev/console c 5 1
52mknod -m 666 /dev/null c 1 3
53mknod -m 666 /dev/zero c 1 5
54mknod -m 666 /dev/ptmx c 5 2
55mknod -m 666 /dev/tty c 5 0
56mknod -m 444 /dev/random c 1 8
57mknod -m 444 /dev/urandom c 1 9
58chown root:tty /dev/{console,ptmx,tty}</userinput></screen>
59
60 <para>There are some symlinks and directories required by LFS that
61 are created during system startup by the LFS-Bootscripts package. Since
62 this is a chroot environment and not a booted environment, those symlinks
63 and directories need to be created here:</para>
64
65<screen><userinput>ln -s /proc/self/fd /dev/fd
66ln -s /proc/self/fd/0 /dev/stdin
67ln -s /proc/self/fd/1 /dev/stdout
68ln -s /proc/self/fd/2 /dev/stderr
69ln -s /proc/kcore /dev/core
70mkdir /dev/pts
71mkdir /dev/shm</userinput></screen>
72
73 <para>Finally, mount the proper virtual (kernel) file systems on the
74 newly-created directories:</para>
75
76<screen><userinput>mount -t devpts -o gid=4,mode=620 none /dev/pts
77mount -t tmpfs none /dev/shm</userinput></screen>
78
79 <para>The <command>mount</command> commands executed above may result
80 in the following warning message:</para>
81
82<screen><computeroutput>can't open /etc/fstab: No such file or directory.</computeroutput></screen>
83
84 <para>This file&mdash;<filename>/etc/fstab</filename>&mdash;has not
85 been created yet but is also not required for the file systems to be
86 properly mounted. As such, the warning can be safely ignored.</para>
87
88 </sect2>
89
90</sect1>
Note: See TracBrowser for help on using the repository browser.