source: chapter06/devices.xml@ aec73a3

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 aec73a3 was 54e422c1, checked in by Manuel Canales Esparcia <manuel@…>, 18 years ago

Indenting chapter 6, part 4

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

  • Property mode set to 100644
File size: 3.7 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-system-devices">
9 <?dbhtml filename="devices.html"?>
10
11 <title>Populating /dev</title>
12
13 <indexterm zone="ch-system-devices">
14 <primary sortas="e-/dev/">/dev/*</primary>
15 </indexterm>
16
17 <sect2>
18 <title>Creating Initial Device Nodes</title>
19
20 <para>When the kernel boots the system, it requires the presence of a few
21 device nodes, in particular the <filename class="devicefile">console</filename>
22 and <filename class="devicefile">null</filename> devices. The device nodes
23 will be created on the hard disk so that they are available before
24 <command>udev</command> has been started, and additionally when Linux is
25 started in single user mode (hence the restrictive permissions on
26 <filename class="devicefile">console</filename>). Create the devices by
27 running the following commands:</para>
28
29<screen><userinput>mknod -m 600 /dev/console c 5 1
30mknod -m 666 /dev/null c 1 3</userinput></screen>
31
32 </sect2>
33
34 <sect2>
35 <title>Mounting tmpfs and Populating /dev</title>
36
37 <para>The recommended method of populating the <filename
38 class="directory">/dev</filename> directory with devices is to mount a
39 virtual filesystem (such as <systemitem class="filesystem">tmpfs</systemitem>)
40 on the <filename class="directory">/dev</filename> directory, and allow the
41 devices to be created dynamically on that virtual filesystem as they are
42 detected or accessed. This is generally done during the boot process. Since
43 this new system has not been booted, it is necessary to do what the
44 LFS-Bootscripts package would otherwise do by mounting <filename
45 class="directory">/dev</filename>:</para>
46
47<screen><userinput>mount -nvt tmpfs none /dev</userinput></screen>
48
49 <para>The Udev package is what actually creates the devices in the <filename
50 class="directory">/dev</filename> directory. Since it will not be installed
51 until later on in the process, manually create the minimal set of device nodes
52 needed to complete the building of this system:</para>
53
54<screen><userinput>mknod -m 622 /dev/console c 5 1
55mknod -m 666 /dev/null c 1 3
56mknod -m 666 /dev/zero c 1 5
57mknod -m 666 /dev/ptmx c 5 2
58mknod -m 666 /dev/tty c 5 0
59mknod -m 444 /dev/random c 1 8
60mknod -m 444 /dev/urandom c 1 9
61chown -v root:tty /dev/{console,ptmx,tty}</userinput></screen>
62
63 <para>There are some symlinks and directories required by LFS that are
64 created during system startup by the LFS-Bootscripts package. Since this
65 is a chroot environment and not a booted environment, those symlinks and
66 directories need to be created here:</para>
67
68<screen><userinput>ln -sv /proc/self/fd /dev/fd
69ln -sv /proc/self/fd/0 /dev/stdin
70ln -sv /proc/self/fd/1 /dev/stdout
71ln -sv /proc/self/fd/2 /dev/stderr
72ln -sv /proc/kcore /dev/core
73mkdir -v /dev/pts
74mkdir -v /dev/shm</userinput></screen>
75
76 <para>Finally, mount the proper virtual (kernel) file systems on the
77 newly-created directories:</para>
78
79<screen><userinput>mount -vt devpts -o gid=4,mode=620 none /dev/pts
80mount -vt tmpfs none /dev/shm</userinput></screen>
81
82 <para>The <command>mount</command> commands executed above may result
83 in the following warning message:</para>
84
85<screen><computeroutput>can't open /etc/fstab: No such file or directory.</computeroutput></screen>
86
87 <para>This file&mdash;<filename>/etc/fstab</filename>&mdash;has not
88 been created yet but is also not required for the file systems to be
89 properly mounted. As such, the warning can be safely ignored.</para>
90
91 </sect2>
92
93</sect1>
Note: See TracBrowser for help on using the repository browser.