source: chapter06/devices.xml@ 98a43ee

10.0 10.0-rc1 10.1 10.1-rc1 11.0 11.0-rc1 11.0-rc2 11.0-rc3 11.1 11.1-rc1 11.2 11.2-rc1 11.3 11.3-rc1 12.0 12.0-rc1 12.1 12.1-rc1 6.3 6.4 6.5 6.6 6.7 6.8 7.0 7.1 7.2 7.3 7.4 7.5 7.5-systemd 7.6 7.6-systemd 7.7 7.7-systemd 7.8 7.8-systemd 7.9 7.9-systemd 8.0 8.1 8.2 8.3 8.4 9.0 9.1 arm bdubbs/gcc13 ml-11.0 multilib renodr/libudev-from-systemd s6-init trunk xry111/arm64 xry111/arm64-12.0 xry111/clfs-ng xry111/lfs-next xry111/loongarch xry111/loongarch-12.0 xry111/loongarch-12.1 xry111/mips64el xry111/pip3 xry111/rust-wip-20221008 xry111/update-glibc
Last change on this file since 98a43ee was bc2136e, checked in by Archaic <archaic@…>, 19 years ago

Several minor grammatical fixes. Thanks to Randy and Steve.

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@6011 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689

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