source: chapter06/devices.xml@ 7a90c00

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.1 6.1.1 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 7a90c00 was 6135b95, checked in by Jeremy Utley <jeremy@…>, 20 years ago

Experimental - don't build udev in chapter 5, instead create a minimal device enviornment at the beginning of chapter 6, and run udevstart after udev is installed in chapter 6.

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@4295 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 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
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 600 /dev/console c 5 1
39mknod -m 600 /dev/null c 1 3
40mknod -m 600 /dev/zero c 1 5
41mknod -m 600 /dev/ptmx c 5 2</userinput></screen>
42
43<para>There are some symlinks and directories required by LFS that are not created by
44Udev, so we create those ourselves here:</para>
45
46<screen><userinput>ln -s /proc/self/fd /dev/fd
47ln -s /proc/self/fd/0 /dev/stdin
48ln -s /proc/self/fd/1 /dev/stdout
49ln -s /proc/self/fd/2 /dev/stderr
50ln -s /proc/kcore /dev/core
51mkdir /dev/pts
52mkdir /dev/shm</userinput></screen>
53
54<para>Finally, mount the proper virtual (kernel) file systems on the directories we just
55created:</para>
56
57<screen><userinput>mount -t devpts -o gid=4,mode=620 none /dev/pts
58mount -t tmpfs none /dev/shm</userinput></screen>
59</sect2>
60
61
62</sect1>
Note: See TracBrowser for help on using the repository browser.