Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F140546889
D8788.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
7 KB
Referenced Files
None
Subscribers
None
D8788.diff
View Options
Index: en_US.ISO8859-1/books/handbook/disks/chapter.xml
===================================================================
--- en_US.ISO8859-1/books/handbook/disks/chapter.xml
+++ en_US.ISO8859-1/books/handbook/disks/chapter.xml
@@ -580,6 +580,134 @@
any block device, including optical drives or
<acronym>iSCSI</acronym> <acronym>LUN</acronym>s.</para>
</sect2>
+
+ <sect2>
+ <title><acronym>USB</acronym> Mass Storage Target</title>
+
+ <note>
+ <para>The &man.cfumass.4; driver is a <acronym>USB</acronym>
+ device mode driver that first became available in
+ &os; 12.0-CURRENT.</para>
+ </note>
+
+ <para>When running on <acronym>USB</acronym>
+ <acronym>OTG</acronym>-compliant hardware like that built into
+ many embedded boards, the &os; <acronym>USB</acronym> stack
+ can run in <emphasis>device mode</emphasis>. Device mode
+ makes it possible for the computer to present itself as
+ different kinds of <acronym>USB</acronym> device classes,
+ including serial ports, network adapters, and mass storage. A
+ <acronym>USB</acronym> host like a laptop or desktop computer
+ is able to access them just like physical
+ <acronym>USB</acronym> devices.</para>
+
+ <para>The &man.usb.template.4; kernel module allows the
+ <acronym>USB</acronym> stack to switch between host-side and
+ device-side automatically, depending on what is connected to
+ the <acronym>USB</acronym> port. Connecting a
+ <acronym>USB</acronym> device like a memory stick to the
+ <acronym>USB</acronym> <acronym>OTG</acronym> port causes &os;
+ to switch to host mode. Connecting a <acronym>USB</acronym>
+ host like a computer causes &os; to switch to device
+ mode.</para>
+
+ <para>What &os; presents to the <acronym>USB</acronym> host
+ depends on the <varname>hw.usb.template</varname> sysctl. See
+ &man.usb.template.4; for the list of available values. Note
+ that for the host to notice the configuration change, it must
+ be either physically disconnected and reconnected, or forced
+ to rescan the <acronym>USB</acronym> bus in a system-specific
+ way. When &os; is running on the host, &man.usbconfig.8;
+ <command>reset</command> can be used. This also must be done
+ after loading <filename>usb_template.ko</filename> if the
+ <acronym>USB</acronym> host was already connected to the
+ <acronym>USB</acronym> <acronym>OTG</acronym> socket.</para>
+
+ <para>The <varname>hw.usb.template</varname> sysctl
+ is set to 0 by default, making &os; work as a
+ <acronym>USB</acronym> Mass Storage target. Both
+ &man.usb.template.4; and &man.cfumass.4; kernel modules must
+ be loaded. &man.cfumass.4; interfaces to the CTL subsystem,
+ the same one that is used for <acronym>iSCSI</acronym> or
+ Fibre Channel targets. On the host side,
+ <acronym>USB</acronym> Mass Storage initiators can only access
+ a single <acronym>LUN</acronym>,
+ <acronym>LUN</acronym> 0.</para>
+
+ <para><acronym>USB</acronym> Mass Storage does not require the
+ &man.ctld.8; daemon to be running, although it can be used if
+ desired. This is different from <acronym>iSCSI</acronym>.
+ Thus, there are two ways to configure the target:
+ &man.ctladm.8;, or &man.ctld.8;. Both require the
+ <filename>cfumass.ko</filename> kernel module to be loaded.
+ The module can be loaded manually:</para>
+
+ <screen>&prompt.root; <userinput>kldload cfumass</userinput></screen>
+
+ <para>If <filename>cfumass.ko</filename> has not been built into
+ the kernel, <filename>/boot/loader.conf</filename> can be set
+ to load the module at boot:</para>
+
+ <programlisting>cfumass_load="YES"</programlisting>
+
+ <para>A <acronym>LUN</acronym> can be created without the
+ &man.ctld.8; daemon:</para>
+
+ <screen>&prompt.root; <userinput>ctladm create -b block -o file=/data/target0</userinput></screen>
+
+ <para>This presents the contents of the image file
+ <filename>/data/target0</filename> as a <acronym>LUN</acronym>
+ to the <acronym>USB</acronym> host. The file must exist
+ before executing the command. To configure the
+ <acronym>LUN</acronym> at system startup, add the command to
+ <filename>/etc/rc.local</filename>.</para>
+
+ <para>&man.ctld.8; can also be used to manage
+ <acronym>LUN</acronym>s. Create
+ <filename>/etc/ctl.conf</filename>, add a line to
+ <filename>/etc/rc.conf</filename> to make sure &man.ctld.8; is
+ automatically started at boot, and then start the
+ daemon.</para>
+
+ <para>This is an example of a simple
+ <filename>/etc/ctl.conf</filename> configuration file. Refer
+ to &man.ctl.conf.5; for a more complete description of the
+ options.</para>
+
+ <programlisting>target naa.50015178f369f092 {
+ lun 0 {
+ path /data/target0
+ size 4G
+ }
+}</programlisting>
+
+ <para>The example creates a single target with a single
+ <acronym>LUN</acronym>. The
+ <literal>naa.50015178f369f092</literal> is a device identifier
+ composed of 32 random hexadecimal digits. The
+ <literal>path</literal> line defines the full path to a file
+ or zvol backing the <acronym>LUN</acronym>. That file must
+ exist before starting &man.ctld.8;. The second line is
+ optional and specifies the size of the
+ <acronym>LUN</acronym>.</para>
+
+ <para>To make sure the &man.ctld.8; daemon is started at
+ boot, add this line to
+ <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>ctld_enable="YES"</programlisting>
+
+ <para>To start &man.ctld.8; now, run this command:</para>
+
+ <screen>&prompt.root; <userinput>service ctld start</userinput></screen>
+
+ <para>As the &man.ctld.8; daemon is started, it reads
+ <filename>/etc/ctl.conf</filename>. If this file is edited
+ after the daemon starts, reload the changes so they take
+ effect immediately:</para>
+
+ <screen>&prompt.root; <userinput>service ctld reload</userinput></screen>
+ </sect2>
</sect1>
<sect1 xml:id="creating-cds">
Index: share/xml/man-refs.ent
===================================================================
--- share/xml/man-refs.ent
+++ share/xml/man-refs.ent
@@ -7060,6 +7060,7 @@
<!ENTITY man.central.4 "<citerefentry xmlns='http://docbook.org/ns/docbook'><refentrytitle>central</refentrytitle><manvolnum>4</manvolnum></citerefentry>">
<!ENTITY man.cfi.4 "<citerefentry xmlns='http://docbook.org/ns/docbook'><refentrytitle>cfi</refentrytitle><manvolnum>4</manvolnum></citerefentry>">
<!ENTITY man.cfid.4 "<citerefentry xmlns='http://docbook.org/ns/docbook'><refentrytitle>cfid</refentrytitle><manvolnum>4</manvolnum></citerefentry>">
+<!ENTITY man.cfumass.4 "<citerefentry xmlns='http://docbook.org/ns/docbook'><refentrytitle>cfumass</refentrytitle><manvolnum>4</manvolnum></citerefentry>">
<!ENTITY man.ch.4 "<citerefentry xmlns='http://docbook.org/ns/docbook'><refentrytitle>ch</refentrytitle><manvolnum>4</manvolnum></citerefentry>">
<!ENTITY man.ciss.4 "<citerefentry xmlns='http://docbook.org/ns/docbook'><refentrytitle>ciss</refentrytitle><manvolnum>4</manvolnum></citerefentry>">
<!ENTITY man.clkbrd.4 "<citerefentry xmlns='http://docbook.org/ns/docbook'><refentrytitle>clkbrd</refentrytitle><manvolnum>4</manvolnum></citerefentry>">
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Dec 26, 3:11 AM (13 h, 35 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
27273244
Default Alt Text
D8788.diff (7 KB)
Attached To
Mode
D8788: Document USB Mass Storage CTL frontend.
Attached
Detach File
Event Timeline
Log In to Comment