xref: /dflybsd-src/share/man/man7/vkernel.7 (revision 09b03fff05aa45ae7f4747f23ca2f51afea62aec)
14af18995SSascha Wildner.\"
24af18995SSascha Wildner.\" Copyright (c) 2003, 2004, 2005, 2006, 2007
34af18995SSascha Wildner.\"	The DragonFly Project.  All rights reserved.
44af18995SSascha Wildner.\"
54af18995SSascha Wildner.\" Redistribution and use in source and binary forms, with or without
64af18995SSascha Wildner.\" modification, are permitted provided that the following conditions
74af18995SSascha Wildner.\" are met:
84af18995SSascha Wildner.\"
94af18995SSascha Wildner.\" 1. Redistributions of source code must retain the above copyright
104af18995SSascha Wildner.\"    notice, this list of conditions and the following disclaimer.
114af18995SSascha Wildner.\" 2. Redistributions in binary form must reproduce the above copyright
124af18995SSascha Wildner.\"    notice, this list of conditions and the following disclaimer in
134af18995SSascha Wildner.\"    the documentation and/or other materials provided with the
144af18995SSascha Wildner.\"    distribution.
154af18995SSascha Wildner.\" 3. Neither the name of The DragonFly Project nor the names of its
164af18995SSascha Wildner.\"    contributors may be used to endorse or promote products derived
174af18995SSascha Wildner.\"    from this software without specific, prior written permission.
184af18995SSascha Wildner.\"
194af18995SSascha Wildner.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
204af18995SSascha Wildner.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
214af18995SSascha Wildner.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
224af18995SSascha Wildner.\" FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
234af18995SSascha Wildner.\" COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
244af18995SSascha Wildner.\" INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING,
254af18995SSascha Wildner.\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
264af18995SSascha Wildner.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
274af18995SSascha Wildner.\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
284af18995SSascha Wildner.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
294af18995SSascha Wildner.\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
304af18995SSascha Wildner.\" SUCH DAMAGE.
314af18995SSascha Wildner.\"
32*09b03fffSSascha Wildner.\" $DragonFly: src/share/man/man7/vkernel.7,v 1.3 2007/01/17 08:44:32 swildner Exp $
334af18995SSascha Wildner.\"
34*09b03fffSSascha Wildner.Dd January 17, 2007
354af18995SSascha Wildner.Dt VKERNEL 7
364af18995SSascha Wildner.Os
374af18995SSascha Wildner.Sh NAME
384af18995SSascha Wildner.Nm vkernel
394af18995SSascha Wildner.Nd virtual kernel architecture
404af18995SSascha Wildner.Sh SYNOPSIS
41c8e7d028SSascha Wildner.Cd "machine vkernel"
42c8e7d028SSascha Wildner.Cd "device vkd"
43c8e7d028SSascha Wildner.Cd "device vke"
44c8e7d028SSascha Wildner.Pp
454af18995SSascha Wildner.Pa /usr/obj/usr/src/sys/VKERNEL/kernel.debug
46c8e7d028SSascha Wildner.Op Fl sv
47*09b03fffSSascha Wildner.Op Fl e Ar name Ns = Ns Li value : Ns Ar name Ns = Ns Li value : Ns ...
484af18995SSascha Wildner.\".Op Fl i Ar file
49*09b03fffSSascha Wildner.Op Fl I Ar interface Ns Op Ar :address1 Ns Oo Ar :address2 Oc Ns Oo Ar /netmask Oc
504af18995SSascha Wildner.Op Fl m Ar size
514af18995SSascha Wildner.Op Fl r Ar file
524af18995SSascha Wildner.Sh DESCRIPTION
534af18995SSascha WildnerThe
544af18995SSascha Wildner.Nm
554af18995SSascha Wildnerarchitecture allows for running
564af18995SSascha Wildner.Dx
574af18995SSascha Wildnerkernels in userland.
584af18995SSascha Wildner.Pp
594af18995SSascha WildnerThe following options are available:
604af18995SSascha Wildner.Bl -tag -width ".Fl m Ar size"
61*09b03fffSSascha Wildner.It Fl e Ar name Ns = Ns Li value : Ns Ar name Ns = Ns Li value : Ns ...
62*09b03fffSSascha WildnerSpecify an environment to be used by the kernel.
634af18995SSascha Wildner.\".It Fl i Ar file
644af18995SSascha Wildner.\"Specify a memory image
654af18995SSascha Wildner.\".Ar file
664af18995SSascha Wildner.\"to be used by the kernel.
67*09b03fffSSascha Wildner.It Fl I Ar interface Ns Op Ar :address1 Ns Oo Ar :address2 Oc Ns Oo Ar /netmask Oc
68*09b03fffSSascha WildnerCreate a virtual network device, with the first
69*09b03fffSSascha Wildner.Fl I
70*09b03fffSSascha Wildneroption defining
71*09b03fffSSascha Wildner.Dq Li vke0 ,
72*09b03fffSSascha Wildnerthe second one
73*09b03fffSSascha Wildner.Dq Li vke1 ,
74*09b03fffSSascha Wildnerand so on.
75*09b03fffSSascha Wildner.Pp
76*09b03fffSSascha WildnerThe
77*09b03fffSSascha Wildner.Ar interface
78*09b03fffSSascha Wildnerargument is the name of a
79*09b03fffSSascha Wildner.Xr tap 4
80*09b03fffSSascha Wildnerdevice node.
81*09b03fffSSascha WildnerThe
82*09b03fffSSascha Wildner.Pa /dev/
83*09b03fffSSascha Wildnerpath prefix does not have to be specified and will be automatically prepended.
84*09b03fffSSascha WildnerSpecifying
85*09b03fffSSascha Wildner.Cm auto
86*09b03fffSSascha Wildnerwill pick the first unused
87*09b03fffSSascha Wildner.Xr tap 4
88*09b03fffSSascha Wildnerdevice.
89*09b03fffSSascha Wildner.Pp
90*09b03fffSSascha WildnerThe
91*09b03fffSSascha Wildner.Ar address1
92*09b03fffSSascha Wildnerand
93*09b03fffSSascha Wildner.Ar address2
94*09b03fffSSascha Wildnerarguments are the IP addresses of the
95*09b03fffSSascha Wildner.Xr tap 4
96*09b03fffSSascha Wildnerand
97*09b03fffSSascha Wildner.Xr vke 4
98*09b03fffSSascha Wildnerinterfaces.
99*09b03fffSSascha WildnerOptionally,
100*09b03fffSSascha Wildner.Ar address1
101*09b03fffSSascha Wildnermay be of the form
102*09b03fffSSascha Wildner.Li bridge Ns Em X
103*09b03fffSSascha Wildnerin which case the
104*09b03fffSSascha Wildner.Xr tap 4
105*09b03fffSSascha Wildnerinterface is added to the specified
106*09b03fffSSascha Wildner.Xr bridge 4
107*09b03fffSSascha Wildnerinterface.
108*09b03fffSSascha Wildner.Pp
109*09b03fffSSascha WildnerThe
110*09b03fffSSascha Wildner.Ar netmask
111*09b03fffSSascha Wildnerargument applies to all interfaces for which an address is specified.
1124af18995SSascha Wildner.It Fl m Ar size
1134af18995SSascha WildnerSpecify the amount of memory to be used by the kernel in bytes,
1144af18995SSascha Wildner.Cm K
1154af18995SSascha Wildner(kilobytes),
1164af18995SSascha Wildner.Cm M
1174af18995SSascha Wildner(megabytes) or
1184af18995SSascha Wildner.Cm G
1194af18995SSascha Wildner(gigabytes).
120*09b03fffSSascha WildnerLowercase versions of
1214af18995SSascha Wildner.Cm K , M ,
1224af18995SSascha Wildnerand
1234af18995SSascha Wildner.Cm G
1244af18995SSascha Wildnerare allowed.
1254af18995SSascha Wildner.It Fl r Ar file
1264af18995SSascha WildnerSpecify the root image
1274af18995SSascha Wildner.Ar file
1284af18995SSascha Wildnerto be used by the kernel.
1294af18995SSascha WildnerSee
130c8e7d028SSascha Wildner.Sx EXAMPLES
1314af18995SSascha Wildnerfor further information on how to prepare a root image.
132c8e7d028SSascha Wildner.It Fl s
133c8e7d028SSascha WildnerBoot into single-user mode.
1344af18995SSascha Wildner.It Fl v
1354af18995SSascha WildnerTurn on verbose booting.
1364af18995SSascha Wildner.El
137c8e7d028SSascha Wildner.Sh EXAMPLES
1384af18995SSascha WildnerA couple of steps are necessary in order to prepare the system to build and
1394af18995SSascha Wildnerrun a virtual kernel.
1404af18995SSascha Wildner.Ss Setting up the filesystem
1414af18995SSascha WildnerThe
1424af18995SSascha Wildner.Nm
1434af18995SSascha Wildnerarchitecture needs a number of files which reside in
1444af18995SSascha Wildner.Pa /var/vkernel .
1454af18995SSascha WildnerSince these files tend to get rather big and the
1464af18995SSascha Wildner.Pa /var
1474af18995SSascha Wildnerpartition is usually of limited size, we recommend the directory to be
1484af18995SSascha Wildnercreated in the
1494af18995SSascha Wildner.Pa /home
1504af18995SSascha Wildnerpartition with a link to it in
1514af18995SSascha Wildner.Pa /var :
152c8e7d028SSascha Wildner.Bd -literal
1534af18995SSascha Wildnermkdir /home/var.vkernel
1544af18995SSascha Wildnerln -s /home/var.vkernel /var/vkernel
1554af18995SSascha Wildner.Ed
1564af18995SSascha Wildner.Pp
1574af18995SSascha WildnerNext, a filesystem image to be used by the virtual kernel has to be
158c8e7d028SSascha Wildnercreated and populated (assuming world has been built previously):
159c8e7d028SSascha Wildner.Bd -literal
1604af18995SSascha Wildnerdd if=/dev/zero of=/var/vkernel/rootimg.01 bs=1m count=2048
1614af18995SSascha Wildnervnconfig -c -s labels vn0 /var/vkernel/rootimg.01
1624af18995SSascha Wildnerdisklabel -r -w vn0 auto
163c8e7d028SSascha Wildnerdisklabel -e vn0	# edit the label to create a vn0a partition
1644af18995SSascha Wildnernewfs /dev/vn0a
1654af18995SSascha Wildnermount /dev/vn0a /mnt
166c8e7d028SSascha Wildnercd /usr/src
167c8e7d028SSascha Wildnermake installworld DESTDIR=/mnt
168c8e7d028SSascha Wildnercd etc
169c8e7d028SSascha Wildnermake distribution DESTDIR=/mnt
170c8e7d028SSascha Wildnerecho '/dev/vkd0 / ufs rw 1 1' >/mnt/etc/fstab
171c8e7d028SSascha Wildnerecho 'console "/usr/libexec/getty Pc" cons25 on secure' >/mnt/etc/ttys
1724af18995SSascha Wildnerumount /mnt
1734af18995SSascha Wildnervnconfig -u vn0
1744af18995SSascha Wildner.Ed
1754af18995SSascha Wildner.Ss Compiling the virtual kernel
1764af18995SSascha WildnerIn order to compile a virtual kernel use the
1774af18995SSascha Wildner.Li VKERNEL
1784af18995SSascha Wildnerkernel configuration file residing in
1794af18995SSascha Wildner.Pa /usr/src/sys/config
1804af18995SSascha Wildner(or a configuration file derived thereof):
181c8e7d028SSascha Wildner.Bd -literal
1824af18995SSascha Wildnercd /usr/src
183*09b03fffSSascha Wildnermake -DNO_MODULES buildkernel KERNCONF=VKERNEL
1844af18995SSascha Wildner.Ed
1854af18995SSascha Wildner.Ss Enabling virtual kernel operation
1864af18995SSascha WildnerA special
1874af18995SSascha Wildner.Xr sysctl 8 ,
1884af18995SSascha Wildner.Va vm.vkernel_enable ,
1894af18995SSascha Wildnermust be set to enable
1904af18995SSascha Wildner.Nm
1914af18995SSascha Wildneroperation:
192c8e7d028SSascha Wildner.Bd -literal
1934af18995SSascha Wildnersysctl vm.vkernel_enable=1
1944af18995SSascha Wildner.Ed
195*09b03fffSSascha Wildner.Ss Configuring the network on the host system
196*09b03fffSSascha WildnerIn order to access a network interface of the host system from the
197*09b03fffSSascha Wildner.Nm ,
198*09b03fffSSascha Wildneryou must add the interface to a
199*09b03fffSSascha Wildner.Xr bridge 4
200*09b03fffSSascha Wildnerdevice which will then be passed to the
201*09b03fffSSascha Wildner.Fl I
202*09b03fffSSascha Wildneroption:
203*09b03fffSSascha Wildner.Bd -literal
204*09b03fffSSascha Wildnerkldload if_bridge.ko
205*09b03fffSSascha Wildnerkldload if_tap.ko
206*09b03fffSSascha Wildnerifconfig bridge0 create
207*09b03fffSSascha Wildnerifconfig bridge0 addm re0	# assuming re0 is the host's interface
208*09b03fffSSascha Wildnerifconfig bridge0 up
209*09b03fffSSascha Wildner.Ed
2104af18995SSascha Wildner.Ss Running the kernel
2114af18995SSascha WildnerFinally, the virtual kernel can be run:
212c8e7d028SSascha Wildner.Bd -literal
2134af18995SSascha Wildnercd /usr/obj/usr/src/sys/VKERNEL
214*09b03fffSSascha Wildner\&./kernel.debug -m 64m -r /var/vkernel/rootimg.01 -I auto:bridge0
2154af18995SSascha Wildner.Ed
216c8e7d028SSascha Wildner.Pp
217c8e7d028SSascha WildnerThe
218c8e7d028SSascha Wildner.Xr reboot 8
219c8e7d028SSascha Wildnercommand can be used to stop a virtual kernel.
2204af18995SSascha Wildner.Sh SEE ALSO
221*09b03fffSSascha Wildner.Xr bridge 4 ,
222*09b03fffSSascha Wildner.Xr tap 4 ,
223c8e7d028SSascha Wildner.Xr vn 4 ,
224c8e7d028SSascha Wildner.Xr build 7 ,
225c8e7d028SSascha Wildner.Xr disklabel 8 ,
226*09b03fffSSascha Wildner.Xr ifconfig 8 ,
227c8e7d028SSascha Wildner.Xr vnconfig 8
2284af18995SSascha Wildner.Sh HISTORY
2294af18995SSascha WildnerVirtual kernels were introduced in
2304af18995SSascha Wildner.Dx 1.7 .
2314af18995SSascha Wildner.Sh AUTHORS
2324af18995SSascha Wildner.An -nosplit
2334af18995SSascha Wildner.An Matt Dillon
2344af18995SSascha Wildnerthought up and implemented the
2354af18995SSascha Wildner.Nm
2364af18995SSascha Wildnerarchitecture.
2374af18995SSascha WildnerThis manual page was written by
2384af18995SSascha Wildner.An Sascha Wildner .
239