Introduction to GPM
The GPM (General Purpose Mouse daemon) package contains a mouse server for the console and xterm. It not only provides cut and paste support generally, but its library component is used by various software such as Links to provide mouse support to the application. It is useful on desktops, especially if following (Beyond) Linux From Scratch instructions; it's often much easier (and less error prone) to cut and paste between two console windows than to type everything by hand!
Note
Development versions of BLFS may not build or run some packages properly if LFS or dependencies have been updated since the most recent stable versions of the books.
Package Information
Additional Downloads
GPM Dependencies
Optional
texlive-20230313 (for documentation)
Kernel Configuration
Enable the following option in the kernel configuration and recompile the kernel if necessary:
Device Drivers --->
Input device support --->
-*- Generic input layer (needed for keyboard, mouse, ...) [INPUT]
<*/M> Mouse interface [INPUT_MOUSEDEV]
Installation of GPM
Install GPM by running the following commands:
patch -Np1 -i ../gpm-1.20.7-consolidated-1.patch &&
./autogen.sh &&
./configure --prefix=/usr --sysconfdir=/etc ac_cv_path_emacs=no &&
make
If texlive-20230313 is installed, build the GPM manual as dvi, ps, and pdf formats:
make -C doc gpm.{dvi,ps} &&
dvipdfm doc/gpm.dvi -o doc/gpm.pdf
This package does not come with a test suite.
Now, as the root
user:
make install &&
install-info --dir-file=/usr/share/info/dir \
/usr/share/info/gpm.info &&
rm -fv /usr/lib/libgpm.a &&
ln -sfv libgpm.so.2.1.0 /usr/lib/libgpm.so &&
install -v -m644 conf/gpm-root.conf /etc &&
install -v -m755 -d /usr/share/doc/gpm-1.20.7/support &&
install -v -m644 doc/support/* \
/usr/share/doc/gpm-1.20.7/support &&
install -v -m644 doc/{FAQ,HACK_GPM,README*} \
/usr/share/doc/gpm-1.20.7
If texlive-20230313 is installed and you've built GPM manual as dvi, ps, and pdf formats, install them as the root
user:
install -vm644 doc/gpm.{dvi,ps,pdf} /usr/share/doc/gpm-1.20.7
Command Explanations
./autogen.sh: This command creates the missing configure script.
ac_cv_path_emacs=no
: This variable works around an issue causing the package fail to build with Emacs-29.2 installed. It also suppresses the installations of some “Emacs support files” shipped with GPM. These files are quite outdated and they should be superseded with Emacs-29.2 built-in GPM support. If you need to use Emacs-29.2 in Linux console with mouse support, you should install (or reinstall) Emacs-29.2 after GPM.
install-info ...: This package installs a .info
file, but does not update the system dir
file. This command makes the update.
ln -v -sfn libgpm.so.2.1.0 /usr/lib/libgpm.so: This command is used to create (or update) the .so
symlink to the library.
Configuring GPM
Config Files
/etc/gpm-root.conf
and ~/.gpm-root
: The default and individual user gpm-root configuration files.
/etc/sysconfig/mouse
: This file contains the name of your mouse device and the protocol it uses. To create this file, run the following as the root
user:
cat > /etc/sysconfig/mouse << "EOF"
# Begin /etc/sysconfig/mouse
MDEVICE="<yourdevice>
"
PROTOCOL="<yourprotocol>
"
GPMOPTS="<additional options>
"
# End /etc/sysconfig/mouse
EOF
Configuration Information
Examples of values to set MDEVICE
, PROTOCOL
, and GPMOPTS
to are:
MDEVICE="/dev/input/mice"
PROTOCOL="imps2"
GPMOPTS=""
A list of which protocol values are known can be found by running gpm -m [device]
-t -help. The MDEVICE
setting depends on which type of mouse you have. For example, /dev/ttyS0
for a serial mouse (on Windows this is COM1), /dev/input/mice
is often used for USB mice and /dev/psaux
for PS2 mice. GPMOPTS
is the 'catch all' for any additional options that are needed for your hardware.