Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
MSCONVD(8)		    System Manager's Manual		    MSCONVD(8)

NAME
       msconvd -- mouse	protocol conversion daemon

SYNOPSIS
       msconvd	[-DPRcdfs]  [-I	 file] [-F rate] [-r resolution] [-S baudrate]
	       [-t mousetype] [-l level] -p port

       msconvd [-Pd] -p	port -i	info

DESCRIPTION
       The msconvd utility and the moused(8) driver work together  to  support
       legacy devices like COM,	ams(4) mices and X10 remotes as	well.  psm(4),
       ums(4)  and  some other devices are supported too but not recomended to
       use  with  msconvd  unless   kernel   is	  compiled   without   "option
       EVDEV_SUPPORT".	 The  msconvd  listens to the specified	port for mouse
       data, decodes and then passes it	via input event	device a.k.a evdev  to
       consumer	 aplications  like moused(8) or	libinput(1).  It does not dis-
       play the	mouse pointer on the screen or provide	cut  and  paste	 func-
       tions.	 The  msconv  daemon  converts	translation  movement,	button
       press/release events and	movement of the	roller or the wheel if	avail-
       able.

       If  the	msconvd	 receives  the signal SIGHUP, it will reopen the mouse
       port and	reinitialize itself.  Useful if	the mouse is attached/detached
       while the system	is suspended.

       If the msconvd receives the signal SIGUSR1, it will stop	passing	 mouse
       events.	 Sending  the  signal  SIGUSR1 again will resume passing mouse
       events.	Useful if your typing on a laptop is interrupted  by  acciden-
       tally touching the mouse	pad.

       The following options are available:

       -D      Lower  DTR  on  the  serial port.  This option is valid only if
	       mousesystems is selected	as the protocol	type.	The  DTR  line
	       may  need  to be	dropped	for a 3-button mouse to	operate	in the
	       mousesystems mode.

       -F rate
	       Set the report rate (reports/sec) of the	device if supported.

       -I file
	       Write the process id of the msconvd utility  in	the  specified
	       file.   Without	this  option, the process id will be stored in
	       /var/run/moused.pid.

       -P      Do not start the	Plug and Play COM device enumeration procedure
	       when identifying	the serial mouse.  If this option is given to-
	       gether with the -i option, the msconvd utility will not be able
	       to print	useful information for the serial mouse.

       -R      Lower RTS on the	serial port.  This option  is  valid  only  if
	       mousesystems  is	selected as the	protocol type by the -t	option
	       below.  It is often used	with the -D option  above.   Both  RTS
	       and  DTR	 lines	may need to be dropped for a 3-button mouse to
	       operate in the mousesystems mode.

       -S baudrate
	       Select the baudrate for the serial port (1200  to  9600).   Not
	       all serial mice support this option.

       -c      Some  mice  report middle button	down events as if the left and
	       right buttons are being pressed.	 This option handles this.

       -d      Enable debugging	messages.

       -f      Do not become a daemon and instead run as a foreground process.
	       Useful for testing and debugging.

       -i info
	       Print specified information and quit.  Available	pieces of  in-
	       formation are:

	       port	 Port	(device	  file)	 name,	i.e.  /dev/cuau0,  and
			 /dev/psm0.
	       if	 Interface type: serial, bus, inport or	ps/2.
	       type	 Protocol type.	 It is one of the types	 listed	 under
			 the  -t  option  below	or sysmouse if the driver sup-
			 ports the sysmouse data format	standard.
	       model	 Mouse model.  The msconvd utility may not  always  be
			 able to identify the model.
	       all	 All  of the above items.  Print port, interface, type
			 and model in this order in one	line.

	       If the msconvd utility cannot determine the requested  informa-
	       tion, it	prints "unknown" or "generic".

       -l level
	       Specifies  at which level msconvd should	operate	the mouse dri-
	       ver.  Refer to "Operation Levels" in psm(4) for	more  informa-
	       tion on this.

       -p port
	       Use port	to communicate with the	mouse.

       -r resolution
	       Set  the	 resolution  of	 the device; in	Dots Per Inch, or low,
	       medium-low, medium-high or high.	 This option may not  be  sup-
	       ported by all the device.

       -s      Select  a baudrate of 9600 for the serial line.	Not all	serial
	       mice support this option.

       -t type
	       Specify the protocol type of the	mouse attached	to  the	 port.
	       You  may	explicitly specify a type listed below,	or use auto to
	       let the msconvd utility	automatically  select  an  appropriate
	       protocol	for the	given mouse.  If you entirely omit this	option
	       in  the command line, -t	auto is	assumed.  Under	normal circum-
	       stances,	you need to use	this option only if the	msconvd	 util-
	       ity  is	not  able  to  detect  the protocol automatically (see
	       "Configuring Mouse Protocol Conversion Daemon").

	       Note that if a protocol type is specified with this option, the
	       -P option above is implied and Plug and Play COM	device enumer-
	       ation procedure will be disabled.

	       Also note that if your mouse is	attached  to  the  PS/2	 mouse
	       port,  you should always	choose auto or ps/2, regardless	of the
	       brand and model of the mouse.  Likewise,	if your	mouse  is  at-
	       tached  to the bus mouse	port, choose auto or busmouse.	Serial
	       mouse protocols will not	work with these	mice.

	       For the USB mouse, the protocol must be auto.  No other	proto-
	       col will	work with the USB mouse.

	       Valid types for this option are listed below.

	       For the serial mouse:
	       microsoft	Microsoft  serial mouse	protocol.  Most	2-but-
				ton serial mice	use this protocol.
	       intellimouse	Microsoft IntelliMouse protocol.  Genius  Net-
				Mouse, ASCII Mie Mouse,	Logitech MouseMan+ and
				FirstMouse+ use	this protocol too.  Other mice
				with  a	 roller/wheel  may  be compatible with
				this protocol.
	       mousesystems	MouseSystems 5-byte protocol.	3-button  mice
				may use	this protocol.
	       mmseries		MM Series mouse	protocol.
	       logitech		Logitech  mouse	 protocol.   Note that this is
				for  old   Logitech   models.	 mouseman   or
				intellimouse  should  be  specified  for newer
				models.
	       mouseman		Logitech MouseMan and TrackMan protocol.  Some
				3-button mice may be compatible	with this pro-
				tocol.	Note that  MouseMan+  and  FirstMouse+
				use  intellimouse  protocol  rather  than this
				one.
	       glidepoint	ALPS GlidePoint	protocol.
	       thinkingmouse	Kensington ThinkingMouse protocol.
	       mmhitab		Hitachi	tablet protocol.
	       x10mouseremote	X10 MouseRemote.
	       kidspad		Genius Kidspad and Easypad protocol.
	       versapad		Interlink VersaPad protocol.
	       gtco_digipad	GTCO Digipad protocol.

	       For the bus and InPort mouse:
	       busmouse		This is	the only protocol type	available  for
				the  bus and InPort mouse and should be	speci-
				fied for any bus mice and InPort mice, regard-
				less of	the brand.

	       For the PS/2 mouse:
	       ps/2		This is	the only protocol type	available  for
				the PS/2 mouse and should be specified for any
				PS/2 mice, regardless of the brand.

	       For the USB mouse, auto is the only protocol type available for
	       the USB mouse and should	be specified for any USB mice, regard-
	       less of the brand.

   Configuring Mouse Protocol Conversion Daemon
     The  first	 thing you need	to know	is the interface type of the mouse you
     are going to use.	It can be determined by	looking	at  the	 connector  of
     the  mouse.   The serial mouse has	a D-Sub	female 9- or 25-pin connector.
     The bus and InPort	mice have either a D-Sub male  9-pin  connector	 or  a
     round  DIN	 9-pin	connector.   The  PS/2 mouse is	equipped with a	small,
     round DIN 6-pin connector.	 Some mice come	with adapters with  which  the
     connector	can  be	 converted  to	another.   If  you  are	to use such an
     adapter, remember the connector at	the very end of	the mouse/adapter pair
     is	what matters.  The USB mouse has a flat	rectangular connector.

     The next thing to decide is a port	to use for the given  interface.   The
     PS/2  mouse  is  always  at /dev/psm0.  There may be more than one	serial
     port to which the serial mouse can	be attached.  Many people often	assign
     the first,	built-in serial	port /dev/cuau0	to the mouse.  You can	attach
     multiple USB mice to your system or to your USB hub.  They	are accessible
     as	/dev/ums0, /dev/ums1, and so on.

     You  may  want  to	create a symbolic link /dev/mouse pointing to the real
     port to which the mouse is	connected, so that you can easily  distinguish
     which is your "mouse" port	later.

     The  next	step  is to guess the appropriate protocol type	for the	mouse.
     The msconvd utility may be	able to	automatically determine	 the  protocol
     type.   Run  the msconvd utility with the -i option and see what it says.
     If	the command can	identify the protocol type, no	further	 investigation
     is	 necessary  on your part.  You may start the daemon without explicitly
     specifying	a protocol type	(see "EXAMPLES").

     The command may print sysmouse if the mouse driver	supports this protocol
     type.

     Note that the type	and model printed by the -i option do not  necessarily
     match  the	 product name of the pointing device in	question, but they may
     give the name of the device with which it is compatible.

     If	the -i option yields nothing, you need to specify a protocol  type  to
     the  msconvd utility by the -t option.  You have to make a	guess and try.
     There is rule of thumb:

     1.	  The bus and InPort mice always use busmouse protocol	regardless  of
	  the brand of the mouse.
     2.	  The  ps/2 protocol should always be specified	for the	PS/2 mouse re-
	  gardless of the brand	of the mouse.
     3.	  You must specify the auto protocol for the USB mouse.
     4.	  Most 2-button	serial mice support the	microsoft protocol.
     5.	  3-button serial mice may work	with the mousesystems protocol.	 If it
	  does not, it may work	with the microsoft protocol although the third
	  (middle) button will not function.  3-button serial  mice  may  also
	  work	with  the  mouseman  protocol under which the third button may
	  function as expected.
     6.	  3-button serial mice may have	a small	switch to choose between  "MS"
	  and  "PC",  or  "2" and "3".	"MS" or	"2" usually mean the microsoft
	  protocol.  "PC" or "3" will choose the mousesystems protocol.
     7.	  If the mouse has a roller or a wheel,	it may be compatible with  the
	  intellimouse protocol.

     To	test if	the selected protocol type is correct for the given mouse, en-
     sure the moused(8)	is running in auto port	mode,

	   moused -p auto

     start the msconvd in the foreground mode,

	   msconvd -f -p <selected_port> -t <selected_protocol>

     and  see  if  the	mouse pointer travels correctly	according to the mouse
     movement.	Then try cut & paste features by clicking the left, right  and
     middle buttons.  Type ^C to stop the command.

   Multiple Mice
     As	 many  instances  of the msconvd as the	number of mice attached	to the
     system may	be run simultaneously; one instance for	each mouse.   This  is
     useful  if	 the  user wants to use	the built-in PS/2 pointing device of a
     laptop computer while on the road,	but wants to use a serial  mouse  when
     s/he  attaches  the system	to the docking station in the office.  Run two
     msconvd and then the application program e.g.  moused(8) will always  see
     mouse data	from either mouse.  When the serial mouse is not attached, the
     corresponding msconvd will	not detect any movement	or button state	change
     and the application program will only see mouse data coming from the dae-
     mon for the PS/2 mouse.  In contrast when both mice are attached and both
     of	 them  are  moved  at  the  same time in this configuration, the mouse
     pointer will travel across	the screen just	as if movement of the mice  is
     combined all together.

FILES
       /dev/input/event%d  input event device
       /dev/psm%d	   PS/2	mouse driver
       /dev/cuau%d	   serial port
       /dev/ttyv%d	   virtual consoles
       /dev/ums%d	   USB mouse driver
       /var/run/msconvd.pid
			   process id of the currently running msconvd utility
       /var/run/MouseRemote
			   UNIX-domain	 stream	 socket	 for  X10  MouseRemote
			   events

EXAMPLES
	     msconvd -p	/dev/cuau0 -i type

       Let the msconvd utility determine the protocol type of the mouse	at the
       serial port /dev/cuau0.	If successful,	the  command  will  print  the
       type, otherwise it will say "unknown".

	     msconvd -p	/dev/cuau0

       If  the	msconvd	 utility  is able to identify the protocol type	of the
       mouse at	the specified port automatically, you  can  start  the	daemon
       without the -t option.

	     msconvd -p	/dev/mouse -t microsoft

       Start  the  mouse  daemon  on the serial	port /dev/mouse.  The protocol
       type microsoft is explicitly specified by the -t	option.

       If you add

	     ALL ALL = NOPASSWD: /usr/bin/killall -USR1	msconvd

       to your /usr/local/etc/sudoers file, and	bind

	     killall -USR1 msconvd

       to a key	in your	window manager,	you can	suspend	mouse events  on  your
       laptop if you keep brushing over	the mouse pad while typing.

SEE ALSO
       moused(8), kill(1), xset(1), psm(4), screen(4), sysmouse(4), uart(4)

STANDARDS
       The  msconvd  utility  partially	 supports  "Plug and Play External COM
       Device Specification" in	order to support PnP  serial  mice.   However,
       due  to various degrees of conformance to the specification by existing
       serial mice, it does not	strictly follow	the version 1.0	of  the	 stan-
       dard.  Even with	this less strict approach, it may not always determine
       an appropriate protocol type for	the given serial mouse.

HISTORY
       The  msconvd  utility first appeared in FreeBSD 15.0.  It is a cropped-
       down version of FreeBSD	14.0  moused(8)	 utility  originated  back  in
       FreeBSD 2.2.

AUTHORS
       The  msconvd  utility  is  based	 on moused(8) written by Michael Smith
       <msmith@FreeBSD.org>.  This manual page	is  extracted  from  moused(8)
       page written by Mike Pritchard <mpp@FreeBSD.org>.  The command and man-
       ual    page    have    since    been   updated	by   Kazutaka	Yokota
       <yokota@FreeBSD.org>.

CAVEATS
       Many pad	devices	behave as if the first (left) button were  pressed  if
       the  user "taps"	the surface of the pad.	 In contrast, some ALPS	Glide-
       Point and Interlink VersaPad models treat the tapping action as	fourth
       button  events.	 Use the option	"-m 1=4" of moused(8) for these	models
       to obtain the same effect as the	other pad devices.

FreeBSD	15.0			 May 18, 2025			    MSCONVD(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=msconvd&sektion=8&manpath=FreeBSD+15.0-RELEASE+and+Ports>

home | help