source: chapter06/devices.xml@ c5538b3

Last change on this file since c5538b3 was a8f36125, checked in by Matthew Burgess <matthew@…>, 20 years ago
  • (all) Removed all references to the DocBook DTD
  • (docbook.rng) Added the DocBook "Gin" schema
  • (Makefile) Updated with new validation command
  • (prologue/*) Validation fixes

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

  • Property mode set to 100644
File size: 2.4 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 [
3 <!ENTITY % general-entities SYSTEM "../general.ent">
4 %general-entities;
5]>
6<sect1 id="ch-system-devices" xreflabel="devices">
7<title>Populating /dev</title>
8<?dbhtml filename="devices.html"?>
9
10<indexterm zone="ch-system-devices"><primary sortas="e-Devices">Devices</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:</para>
18
19<screen><userinput>mknod -m 600 /dev/console c 5 1
20mknod -m 666 /dev/null c 1 3</userinput></screen>
21</sect2>
22
23<sect2>
24<title>Mounting ramfs and populating /dev</title>
25
26<para>The ideal way to populate <filename class="directory">/dev</filename> is
27to mount a <systemitem class="filesystem">ramfs</systemitem> onto <filename class="directory">/dev </filename>
28like <systemitem class="filesystem">tmpfs</systemitem>, but it
29cannot be swapped) and create the devices on there during each bootup. Since we haven't
30booted the system, we have to do what the bootscripts would otherwise do for us, and
31populate <filename class="directory">/dev</filename> ourselves. Begin by mounting <filename class="directory">/dev</filename>:</para>
32
33<screen><userinput>mount -n -t ramfs none /dev</userinput></screen>
34
35<para>Since we do not have the Udev package installed yet, we'll create a
36minimal set of device nodes to use for building:</para>
37
38<screen><userinput>mknod -m 622 /dev/console c 5 1
39mknod -m 666 /dev/null c 1 3
40mknod -m 666 /dev/zero c 1 5
41mknod -m 666 /dev/ptmx c 5 2
42mknod -m 666 /dev/tty c 5 0
43mknod -m 444 /dev/random c 1 8
44mknod -m 444 /dev/urandom c 1 9
45chown root:tty /dev/{console,ptmx,tty}</userinput></screen>
46
47<para>There are some symlinks and directories required by LFS that are not created by
48Udev, so we create those ourselves here:</para>
49
50<screen><userinput>ln -s /proc/self/fd /dev/fd
51ln -s /proc/self/fd/0 /dev/stdin
52ln -s /proc/self/fd/1 /dev/stdout
53ln -s /proc/self/fd/2 /dev/stderr
54ln -s /proc/kcore /dev/core
55mkdir /dev/pts
56mkdir /dev/shm</userinput></screen>
57
58<para>Finally, mount the proper virtual (kernel) file systems on the directories we just
59created:</para>
60
61<screen><userinput>mount -t devpts -o gid=4,mode=620 none /dev/pts
62mount -t tmpfs none /dev/shm</userinput></screen>
63</sect2>
64
65
66</sect1>
Note: See TracBrowser for help on using the repository browser.