<HTML ><HEAD ><TITLE >The mknod command</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.63 "><LINK REL="HOME" TITLE="The Linux System Administrator's Guide" HREF="index.html"><LINK REL="UP" TITLE="Device Files" HREF="device-list.html"><LINK REL="PREVIOUS" TITLE="The MAKEDEV Script" HREF="x782.html"><LINK REL="NEXT" TITLE="Device List" HREF="x822.html"></HEAD ><BODY CLASS="SECT1" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >The Linux System Administrator's Guide: Version 0.7</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="x782.html" >Prev</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" >Chapter 5. Device Files</TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="x822.html" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A NAME="AEN797" >5.2. The <B CLASS="COMMAND" >mknod</B > command</A ></H1 ><P ><B CLASS="COMMAND" >MAKEDEV</B > is the preferred way of creating device files which are not present. However sometimes the <B CLASS="COMMAND" >MAKEDEV</B > script will not know about the device file you wish to create. This is where the <B CLASS="COMMAND" >mknod</B > command comes in. In order to use <B CLASS="COMMAND" >mknod</B > you need to know the major and minor node numbers for the device you wish to create. The <TT CLASS="FILENAME" >devices.txt</TT > file in the kernel source documentation is the canonical source of this information.</P ><P >To take an example, let us suppose that our version of the <B CLASS="COMMAND" >MAKEDEV</B > script does not know how to create the <TT CLASS="FILENAME" >/dev/ttyS0</TT > device file. We need to use <B CLASS="COMMAND" >mknod</B > to create it. We know from looking at the <TT CLASS="FILENAME" >devices.txt</TT > file that it should be a character device with major number 4 and minor number 64. So we now know all we need to create the file. <TABLE BORDER="1" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="SCREEN" > <TT CLASS="PROMPT" >#</TT > <TT CLASS="USERINPUT" ><B >mknod /dev/ttyS0 c 4 64</B ></TT > <TT CLASS="PROMPT" >#</TT > <TT CLASS="USERINPUT" ><B >chown root.dialout /dev/ttyS0</B ></TT > <TT CLASS="PROMPT" >#</TT > <TT CLASS="USERINPUT" ><B >chmod 0644 /dev/ttyS0</B ></TT > <TT CLASS="PROMPT" >#</TT > <TT CLASS="USERINPUT" ><B >ls -l /dev/ttyS0</B ></TT > <TT CLASS="COMPUTEROUTPUT" >crw-rw---- 1 root dialout 4, 64 Oct 23 18:23 /dev/ttyS0</TT > </PRE ></FONT ></TD ></TR ></TABLE > As you can see, many more steps are required to create the file. In this example you can see the process required however. It is unlikely in the extreme that the ttyS0 file would not be provided by the <B CLASS="COMMAND" >MAKEDEV</B > script, but it suffices to illustrate the point.</P ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="x782.html" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="x822.html" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >The <B CLASS="COMMAND" >MAKEDEV</B > Script</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="device-list.html" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Device List</TD ></TR ></TABLE ></DIV ></BODY ></HTML >