source: chapter06/devices.xml@ 835892c

Last change on this file since 835892c was 6a0e6f3, checked in by Matthew Burgess <matthew@…>, 20 years ago
  • Remove the spurious <info> tags that I thought were necessary but evidently aren't

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

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