Desktop System Setup with Debian GNU/Linux 3.1 'Sarge'
Contents
- Introduction
- Notable changes to this document
- Glossary
- Debian GNU/Linux
- Getting Debian
- Hardware support
- Installation
- Basic commands
- Package Repositories, Updates & Upgrades
- Package management - finding, adding and removing programs
- Package configuration - Debconf
- Desktop Environment: GNOME
- Desktop Environment: XFCE
- X Windows: XFree86
- Minor Software
- Environment Configuration
- Spellcheckers and dictionaries
- Fonts / Typefaces
- Office suite - Word processor, spreadsheet, presentation, layout, PDF viewer
- Databases
- Web editing
- Internet applications
- Image viewing
- Image editing
- Security
- multi media players, including DVD
- Audio architectures
- Audio editing
- Compression / Archival
- Java Runtime Environment (JRE)
- Sound card
- Printing
- Scanning
- Digital Camera (with USB interface)
- Digital Video Camera (with IEEE1394 / FireWire / i.Link interface)
- Video editing
- CD writing - writing data files to CD
- DVD writing - writing data files to DVD
- Accessing CD and DVD media
- CD audio - Playing, digital audio extraction (ripping), copying and encoding
- Copying DVD Movies - DVD disc to hard disk to DVD disc
- ZIP drives and disks
- Working with Windows file systems
- Running Windows Programs
- Sharing files and printers with networked machines using Windows or Samba
- Accessing an LDAP server
- Accessing remote files from an NFS server
- Laptop Computers
- Connecting and synchronising PDA's in general
- Connecting and synchronising a PDA running Windows CE
- Window Manager
- ADSL modems
- Analog modems
- Dial-up Networking with an analog modem
- PCMCIA / PC Card / CardBus
- Bluetooth
- Wireless Networking (Wi-Fi / WiFi) - device setup
- Wireless Networking (Wi-Fi / WiFi) - auditing
- Linux Kernel updates
- Linux Kernel compilation
- Portable audio players
- OpenVPN client
- Reporting Issues
- Further Information
- Troubleshooting
- Trouble
- Appendix 1
Introduction
This document intends to provide enough information to get an effective desktop system ready to use using a 'Linux' distribution, providing a concise, point-by-point guide to configuring where it's necessary, with links to further reading if you want to know more.
This desktop system will use the Debian GNU/Linux distribution, version 3.1 'Sarge' with a Linux version 2.6 kernel, using a GNOME version 2.8 desktop environment.
We also provide a menu driven command-line program, called Twix, to help you install most of what is covered in this document and configure some of it. Twix can be downloaded for free from thegoldenear.org/toolbox/unices/twix/.
This document has related documents:
'Server Setup with Debian 3.1 'Sarge''.
A good introduction to Debian is the Debian article at Wikipedia.
This document needs your feedback. If you have any comments or suggestions please email them to inkwire [at] thegoldenear [dot] org and they can be considered.
Notable changes to this document
0.4.32 - 22 January 2009 - package repositories changed - the main Debian archive no longer includes Sarge packages and Sarge security updates, so ftp.uk.debian.org and security.debian.org have been replaced with archive.debian.org
0.4.31 - 26 April 2008 - flashplugin-nonfree removed from Debian Sarge as of version 3.1r8
0.4.27 - 25 November 2007
- Removed the small amount of XFCE-specific information including packages xpdf and xfmedia. I intended this guide to be as descriptive for XFCE as it is for GNOME but having not managed to spend much time with an XFCE desktop environment I haven't garnered that knowledge. I now think the best place for XFCE desktop information would be a separate guide. The packages for the XFCE desktop environment itself remain.
- Added unshield
0.4.26 - November 2007 - added msttcorefonts to wine
0.4.25 - 24 August 2007
- Added sarge-proposed-updates repository
- Added section on updates and upgrades
- Added aptitude-doc-<locale>
0.4.21 - 12 July 2007 - Changed volatile.debian.net to volatile.debian.org (volatile.debian.net will still work for the life of Debian 4.0 Etch).
0.4.17 - 24 June 2007 - Better described X video drivers; added video graphics utilities radeontool, rovclock, i810switch, matroxset, nvidia-settings, nvtv
0.4.10 - 29 April 2007 - Added regionset
0.4.8 - 24 April 2007 - Updated the debian-multimedia source address that has changed for Sarge
0.4.7 - 3 April 2007 - Added missing hp-ppd
0.4.6 - 8 March 2007 - Removed trailing '/' from 'ftp.uk.debian.org/debian' apt sources.list example
0.4.4 - 2 March 2007
- Added compression / archival section
- Added details of firmware for Intel centrino ipw2100 and ipw2200
- Added tcpdump to essential minor software
0.4.0 - 15 February 2007
- updated WiFi drivers section, should now describe all wireless drivers available in Debian; removed linux-wlan-ng and madwifi WiFi drivers as they're not available in 3.1/Sarge.
- added nmap and wipe to minor software section.
- changed Debian volatile updates from 'ftp.uk.debian.org/debian-volatile stable/volatile' to 'volatile.debian.net/debian-volatile sarge/volatile' because the former wouldn't work;
- changed Debian volatile-sloppy updates from 'ftp.uk.debian.org/debian-volatile stable/volatile-sloppy' to 'volatile.debian.net/debian-volatile sarge/volatile-sloppy' also because the former wouldn't work.
0.3.9 - 13 December 2006 - removed hplip-ppds as it doesn't exist in Sarge
0.3.3 - 24 November 2006
- added smbclient when installing cupsys so can find Windows shared printers
- added print drivers cjet and c2050
0.3.2 - 22 November 2006 - added printer device naming when using the HPLIP driver
0.3.0 - 20 November 2006 - refreshed printing section with the addition of Foomatic, ijsgutenprint, pnm2ppa, foo2zjs, printconf and various PPD files
Glossary
<something> - when something is in angle brackets you should replace this with something particular to your system; you do not use the angle brackets.
command - text in monospaced typeface indicates a command you issue at the command-line or
text you type yourself into a text editor.
$ - when a command-line command is preceded by a dollar it means you run this whilst
logged in as a regular user
# - when a command-line command is preceded by a dollar it means you run this whilst
logged in as super user / root
Debian GNU/Linux
Debian is a GNU operating system with a Linux kernel and collection of currently 8,000 software programs. The GNU operating system is a part of the family of Unix operating systems that date back to 1969, it is a version of Unix written from scratch by a large community of disparately located hackers and made available for free. (Debian is based on System V Unix rather than BSD Unix). This community is a social movement, motivated in part by the desire to provide the world with an operating system free of the restrictions the contemporary software industry imposes upon us.
Debian is one of a number of 'distributions' of GNU/Linux. A distribution is the operating system plus a number of software applications; there are many aspects differentiating distributions. We recommend Debian in particular for these reasons:
- it's available for more computer architectures than any other GNU/Linux distribution (Debian
4.0 supports 11, Debian 3.1 is available for 12, Debian 3.0 supports 11,
Gentoo: 8, Red Hat Enterprise Linux AS: 6 or 7, Slackware: 2, Fedora Core: 2, SUSE LINUX Professional 9.2: 1;
LFS may support more but it's not really a distribution we'd consider an option), which means:
- it doesn't discriminate against as many people as other GNU/Linux distributions
- you can run exactly the same distribution whether you're using a PC, Apple Mac or Sun workstation
- if you're offering it to people as a recommended operating system then you're able to offer the same distribution to as many people as possible, rather than different distributions for different people
- it's not a commercial distribution, so its longevity is more assured than with commercial distributions
- its package management is better than other GNU/Linux distributions, meaning it's easier to find, install, configure, remove and fix software
- it's suitable for using for both desktop and server systems
- it's developed more co-operatively than some other GNU/Linux distributions (e.g. Red Hat / Fedora)
- there are more people involved in its development than with many other GNU/Linux distributions (e.g. Red Hat, Mandrake, Slackware)
- the principles of freedom held by its constitution (the 'Debian Social Contract') are more strongly defined and upheld than those of many other GNU/Linux distributions
Debian is available in a number of different flavours, one of which you subscribe your system to:
- stable - the distribution itself is stable; most suitable where stability of the distribution matters more than having the most up-to-date software. 'Stable' is updated to a major new version every couple of years (i.e. version 3.0 'Woody', version 3.1 'Sarge') and between these major updates only fixes for security vulnerabilities and occasional broken software are made available for stable
- testing - when newly released software has been in 'unstable' for a period of time and when no release-critical bugs exist in it it's made available in 'testing'. This distribution is recommended for desktop systems
- unstable - AKA 'sid; newly released software. called 'unstable' because the software in this distribution is constantly changing
- experimental
Further Information
Debian Weekly News: www.debian.org/News/weekly/
Debian Planet: www.debianplanet.org/
Planet Debian (accumulation of Debian developers' blogs): planet.debian.org/, ianmurdock.com/
Debian bug tracking system: www.debian.org/Bugs/
Getting Debian
Downloading from the Internet
Download from www.debian.org/distrib/. There are various options of what to download, the most useful to choose from are
- 'full CD or DVD set' - the full distribution, on up to 14 CDs, or 2 DVDs. You won't need them all, you could download just CD disc 1 and get packages not on that via the Internet if you have a fast connection.
- 'Netinst CD image' - a 180MB or less subset of the full set. This is enough to get a (very) basic system installed with the small set of packages included.
- 'Businesscard CD image' - a 100MB subset of the full set. This is enough to get the base system installed, you can then download just those packages you want over the Internet
- i386 - for 32-bit PC-compatible computers (if you don't know then this is probably what you have)
- powerpc - for Power Macs
- the 64-bit PC (AMD64 and EM64T) version is not officially supported by Debian but is available as a fully supported unofficial port by the Debian AMD64 team. It can be downloaded from www.debian.org/devel/debian-installer/ports-status. The The Debian GNU/Linux AMD64 HOW-TO may be useful.
By Post
Debian 3.1 is available to order on CD/DVD from various vendors, a list of them is available at www.debian.org/CD/vendors/.
A Demonstration
If you want to check-out Debian before installing it, it's possible to download a so-called 'live CD' that you boot your computer with,
it runs the operating system straight from the CD without touching your existing operating system, allowing you to see exactly what it
would look like were it installed on your computer, but is gone when you turn the computer off and take the CD out.
An official Debian live disc isn't yet available, though it is being discussed, but an example of what Debian can look like is available using the
live CD from the Ubuntu distribution. Ubuntu is similar to Debian,
as it is dervied from it, but it isn't Debian. The Ubuntu live CD won't look exactly like the system this document describes, but it's
similar enough to be worth using as a sampler. Note that this isn't a recommendation to install Ubuntu, this document is all about
installing Debian.
Ubuntu can be ordered or downloaded from
www.ubuntulinux.org/download/.
Hardware support
Debian GNU/Linux device driver check page: kmuto.jp/debian/hcl/
- paste in the results of lspci -n and it will tell you what GNU/Linux drivers exist for the specified hardware.
Linux Hardware Compatibility HOWTO at en.tldp.org/HOWTO/Hardware-HOWTO.html
The recommended hardware you'll want to run this system on is roughly as follows:
| Scale | CPU | CPU speed | RAM / memory | Desktop environment |
|---|---|---|---|---|
| Low end | Intel Pentium II equivalent | 300MHz | 128MB | XFCE |
| Mid | AMD Duron equivalent | 700MHz | 128MB - 500MB | GNOME |
| High end | anything more | anything more | anything more | GNOME |
Installation
Note that any decision you make during installation that you would rather have made differerently,
can be changed once installation is finished, usually using the command
dpkg-reconfigure <package-name>.
Choose to install version 2.6 of the Linux kernel rather than the default of 2.4. When the installer first starts,
type 'linux26' at the 'boot:' prompt then press [Enter], rather than just pressing [Enter] on its own.
Your particular system may require some boot options to work around specific known problems, you can see a list of these by pressing some of the Function keys on the keyboard. Otherwise just press [Enter] to start the installer.
When asked during the installation if you want 'discover' to manage /media/cdrom0, choose 'no' otherwise gnome-volume-manager
won't be able to auto-mount discs for you when inserted and logged in as a normal user. (this may now be fixed).
If you're able to update your Debian system using the Internet, rather than from CD/DVD media, do so, but it's not essential. The best way to ensure this happens is to remove the disc after the initial stage of installation when the disc is ejected. Also, be sure to add a 'source' to download from during installation. If you're using CD/DVD media to install packages from then try to have at least discs 1 and 2 and choose to add them all to the sources list when prompted.
Partitioning scheme - You have the following options:
a. All files in one partition - will create a root partition (/) and a swap.
b. Desktop machine - will create a root partition, swap, and /home.
c. Multi-user workstation - will create partitions for /, /usr, /var, /tmp, /home and swap.
Choose the 'desktop system' scheme.
When choosing the keyboard layout, the default is 'us', there isn't a drop-down list of available options for different languages, for example you would choose 'gb' for UK English.
When you're presented with the menu saying 'Debian configuration' - 'Debian software selection' -
'you can choose to install one or more of the following predefined collections of software.'
don't be fooled into thinking 'desktop environment' sets up the ideal desktop environment for you - it doesn't - hence the need for this document.
Rather than choose the pre-defined functions, we're going to do this manually, which will be quicker and use less disk space, as Tasksel's 'Desktop environment'
installs more than you're likely to need.
Tasksel's 'desktop environment' installs GNOME (using the 'gnome-desktop-environment' package),
KDE and various applications. If you use GNOME rather than KDE as your desktop environment, which we believe provides a higher quality interface, it can be annoying to have the menus
populated with so many extra programs that you have to spend time installing and updating.
We propose not choosing anything at this menu for your desktop system and instead installing GNOME and various applications manually, which will be described
in this document.
A minimal mail system is installed by default. Through answering the various questions asked of you, configure this mail system with your SMTP server address and other information so that your system has the ability to send email, which is useful for various software to be able to use.
If connected to the Internet do an upgrade after installation, using either Synaptic from within GNOME to
update then install all available updates; or from the command-line aptitude update then
aptitude dist-upgrade.
Further Information
Debian GNU/Linux Installation Guide, Debian 3.1 'Sarge' version:
www.debian.org/releases/stable/installmanual.
This is also installable as the
debian-installer-manual package.
Debian GNU/Linux Installation Guide - Development version:
d-i.alioth.debian.org/manual/.
Basic commands
To use this document you'll need to be able to use these basic commands:
For typing at the command-line from within GNOME you can use the 'Terminal command line', depicted by a monitor with a blank screen but for the 'command-line prompt' on the 'panel'.
To install programs before you have the desktop environment and Synaptic Package Manager installed (which give you a more user friendly environment), login as root
and use aptitude update and [Enter] then when thats done use aptitude install <package name> <package name>
<package name>.
To add a user to a group, from GNOME:
Common functions that relate to specific group membership are available in
Applications → System Tools → Users & Groups → Users → pick user
<locale> Properties → User privileges.
More specifically groups administration is available from
Applications → System Tools → Users & Groups → Groups → pick group
<locale> Properties → Group Members → pick user → Add.
If you're logged in as the user for whom you're changing their group membership, you need to log out
and log back in again for it to take effect.
Become the super user by issuing the command su at the commnd-line.
The super user is the user called 'root', you'll be asked for the password for the root user which you set during installation.
When typing at the command-line you have a useful feature called 'command-line completion' available to you. As you type program names or direcoty and file paths,
you can press the [Tab] key to automatically complete such lines. If there is more than one option for a particular line you've so far typed in, command-line completion
will stop at the point the various options differ, pressing [Tab] again will show you the various options available.
If you're at the command-line, logged in as root, wanting to edit configuration files, a simple text editor you can use is nano.
Typing nano <path>/<filename> will load a file; Ctrl+W will search within a file for text;
Ctrl+X will quit, where upon you can choose to save or not.
When you've installed new software and are logged in and using GNOME, to get the shortcuts to appear in the menus without logging out and back in,
use the command update-menus at the command-line.
To reconfigure a package in the same way as was done when it was first installed: dpkg-reconfigure <package name>
Each package has Debian-specific documentation for it in /usr/share/doc/<package name>
To create a 'symbolic link' or 'symlink' (known as a 'shortcut' in Windows):
ln -s location-of-file-to-link-to location-of-symbolic-link
To restart X Windows, the graphical windowing system, use Ctrl+Alt+Backspace.
This is useful when applying changes to video settings in the X Windows configuration file.
To cancel a running command-line program use Ctrl+C.
To quit from a command-line program that is displaying text for you on the screen, such as a man page, use 'q'.
Package repositories, Updates & Upgrades
Package repositories
Debian's package management system, known as 'apt', keeps a list of sources, or repositories, it can retrieve packages from when you choose to install
them, in the file /etc/apt/sources.list.
Sources can be of the form
- CD/DVD media
- Internet server
You define which Debian flavour you're subscribed to
- stable, also referenced by its alias, Sarge
- testing
- unstable
- experimental
These different licencing groups are kept track of
- main
- contrib
- non-free - packages that don't comply with the Debian Free Software Guidelines. Packages can be non-free for any number and gravity of reasons, sometimes for reasons you might consider too slight to prevent you from installing what might be a worthwhile package. You can usually read the copyright file in /usr/share/doc/<package name> to read the restrictions for yourself. There is a non-free tracking system at nonfree.alioth.debian.org/.
There are different providors of Internet server sources
- Debian sources (these for the oldstable, Sarge, archive)
- for regular packages and very occasional updates to them in the form of new 'point
releases' throughout the stable release's supported life.
The point releases comprise packages with a very conservative number of important non-security
related functionality fixes as well as those previously updated through security updates.
Use:
deb http://archive.debian.org/debian sarge main contrib
(You can addnon-freeif you wish) - security updates - for non-intrusive updates to fix security issues in packages
- www.debian.org/security/ - use:
deb http://archive.debian.org/debian-security sarge/updates main contrib
Security updates are only provided for packages in main, not contrib and non-free. - sarge-proposed-updates - prior to being released into the stable archive the packages for the next point release with functionality fixes (not security updates) queue up in a repository you can subscribe to. Use something like this but substitute the domain and directory with that of your nearest Debian
mirror:
deb http://ftp.uk.debian.org/debian/ sarge-proposed-updates main contrib
(You can addnon-freeif you wish)
Each package's change log is in ftp.debian.org/debian/dists/sarge-proposed-updates/. - volatile - for updates to quickly outdated software such as spam filtering and virus scanning - http://volatile.debian.org/ - use something like:
deb http://volatile.debian.org/debian-volatile sarge/volatile main contrib
If you're running a stable system you may want to subscribe to or read the archives of the debian-volatile-announce mailing list or the debian-volatile mailing list. You can see the files that are included at volatile.debian.org/debian-volatile/dists/sarge/volatile/. See the list of mirrors and other protocols with which to access them. - volatile-sloppy - for function enhancements to software in the stable archive akin to that in volatile
(see lists.debian.org/debian-devel-announce/2005/05/msg00016.html
for a description) - use something like:
deb http://volatile.debian.org/debian-volatile sarge/volatile-sloppy main contrib
You can see the files that are included at volatile.debian.org/debian-volatile/dists/sarge/volatile-sloppy/. See the list of mirrors and other protocols with which to access them.
- for regular packages and very occasional updates to them in the form of new 'point
releases' throughout the stable release's supported life.
The point releases comprise packages with a very conservative number of important non-security
related functionality fixes as well as those previously updated through security updates.
Use:
- other peoples' sources - software not officially in Debian or backports of updated software for stable versions of Debian. For example:
- Christian Marillat's Debian multimedia repository - many useful multimedia packages aren't available in the main Debian (or most other distributions') archive because of copyright and licencing issues. However many of them are available from Christian Marillat's Debian multimedia repository which is available for Debian Sarge with:
- for i386 and Sparc architectures:
deb http://mirror.home-dn.net/debian-multimedia sarge main - for the amd64 architecture, both:
deb http://cyberspace.ucla.edu/marillat/ sarge main
deb http://mirror.home-dn.net/debian-multimedia sarge main
- for i386 and Sparc architectures:
- Debian Backports - backports.org/ - "You are running Debian stable, because you prefer the stable Debian tree. It runs great, there is just one problem: the software is a
little bit outdated compared to other distributions. That is where backports come in. Backports are recompiled packages from testing (mostly) and unstable
(in a few cases only, e.g. security updates), so they will run without new libraries (wherever it is possible) on a stable Debian distribution. I recommend
you to pick out single backports which fits your needs, and not to use all backports available
here.":
deb http://www.backports.org/debian sarge-backports main contrib
(You can addnon-freeif you wish and should instead choose a mirror)
aptitude -t sarge-backports install <package>(I don't know how that works with Synaptic) - Debian Unofficial - debian-unofficial.org/
- packages not available within the official Debian repository due to special licence terms or for political reasons:
deb http://ftp.debian-unofficial.org/debian sarge main contrib non-free restricted
(or choose a mirror) - apt-get.org - apt-get.org - "apt-get.org is intended as a place for people to share useful APT (Advanced Package Tool) sources for the Debian operating system."
- Christian Marillat's Debian multimedia repository - many useful multimedia packages aren't available in the main Debian (or most other distributions') archive because of copyright and licencing issues. However many of them are available from Christian Marillat's Debian multimedia repository which is available for Debian Sarge with:
Debian installs with a default that uses 'main', it doesn't include 'contrib' or 'non-free'.
To add new CDs to your sources list, other than during installation
- using the command-line:
apt-setuporapt-cdrom add. Using the latter, the disc will be automatically mounted, scanned and its details added to your sources list (if you have trouble you may need to useapt-cdrom add -d /media/cdrom) - using GNOME: from within Synaptic Package Manager, choose Edit → Add CD-ROM...
To add new Internet servers to your sources list, other than during installation
- using the command-line:
apt-setup. - using GNOME: from within Synaptic Package Manager, choose Settings → Repositories
Updates
3.1 Sarge
| Release | Date | Changes |
|---|---|---|
| 3.1r0 | 6 June 2005 | |
| 3.1r0a | 10 June 2005 | |
| 3.1r1 | 20 December 2006 | |
| 3.1r2 | 19 April 2006 | |
| 3.1r3 | 1 September 2006 | |
| 3.1r4 | 6 November 2006 | |
| 3.1r5 | 18 February 2007 | |
| 3.1r6 | 7 April 2007 | |
| 3.1r7 | 28 December 2007 | |
| 3.1r8 | 13 April 2008 |
There are two daily 'pulses' at 00:00 and 12:00 GMT upon which updated packages, if any, are made available.
Security updates are often made available, potentially even daily.
Very occasional other updates are made in the form of new 'point releases' of Debian stable. They comprise packages with a very conservative amount of miscellaneous bugfixes, removed packages, missing builds and security updates (those previously available thru security updates). These packages are introduced into the main stable archive when released. Similarly the downloadable ISO images available for installing Debian are updated, they have a 'r' designation.
The packages waiting to be made available in the next point release are held in a repository known as stable-proposed-updates but seemingly more readily available as sarge-proposed-updates. You can subscribe to this repository to get these packages as they enter the queue rather than waiting for the release date.
Upgrades
To upgrade to the next version of Debian, replace the code name / alias in sources.list from 'etch' to 'lenny'.
Skipping releases is not supported. To upgrade from Woody to Etch you must first upgrade to Sarge,
then to Etch.
Edit /etc/apt/sources.list and replace 'testing' or 'etch' or
'stable' or 'unstable' with 'sarge' then
'aptitude update && aptitude dist-upgrade'.
Package management - finding, adding and removing programs
Debian's software programs, or 'packages', are versions of popular software specifically re-packaged for Debian, and in particular for its package management system (called 'apt') which is used to easily add and remove them. You don't need to independently download, compile and configure software manually - Debian maintainers have done the work for you, making sure the software fits into your system cleanly - an example of doing things the 'Debian Way', a phrase that defines ways of doing things specific to Debian that are usually very efficient and elegant.
Package(s)
- synaptic - www.nongnu.org/synaptic/ - installed by default
- aptitude - installed by default
- aptitude-doc-<locale> (i.e. aptitude-doc-en) - English version of the aptitude user's manual in HTML format.
Configuration
Synaptic
- General → Marking Changes → Clicking on the status icon makes the most likely action
- General → System upgrade: Smart Upgrade
Usage
From the command-line
aptitude, using switches
aptitude update- refresh package listaptitude dist-upgrade- update everything to the current latest versionsaptitude install package-name- install a packageaptitude remove package-name- uninstall a packageaptitude purge package-name- uninstall a package and remove any associated configuration files
aptitude, used interactively
aptitude
From GNOME
Synaptic Package Manager
(Applications → System Tools → Synaptic Package Manager)
- Reload (from the toolbar) - refresh package list
- Status → Installed (upgradable) → Mark All Upgrades → Apply → Apply - update everything to the current latest versions
- Search (from the toolbar) → enter package-name → choose package → Apply → Apply - install a package
- Search (from the toolbar) → enter package-name → right-click on package → Mark for Removal → Apply - uninstall a package
Further information
Changes in Debian packages
- Package changelogs: changelogs.debian.net/. To view the changelog for the latest version of a particular source package, go to http://changelogs.debian.net/<package name>.
Package configuration - Debconf
Debconf is used as much as possible to configure packages for you (but not exclusively), asking
questions and editing configuration files respectively.
You are asked how to configure debconf upon installation of debconf itself, during Debian's
installtion. You can permanently reconfigure debconf at any time using
# dpkg-reconfigure debconf.
Either way you are asked the following:
"Packages that use debconf for configuration share a common look and feel. You can select the type of user interface they use.
- The dialog frontend is a full-screen, character based interface, while the readline frontend uses a more traditional plain text interface, and
both the gnome and kde frontends are modern X interfaces, fitting the respective desktops (but may be used in any X environment). The editor
frontend lets you configure things using your favorite text editor. The noninteractive frontend never asks you any questions.
What interface should be used for configuring packages?" - "Debconf prioritizes the questions it asks you. Pick the lowest priority of question you want to see:
- 'critical' only prompts you if the system might break. Pick it if you are a newbie, or in a hurry.
- 'high' is for rather important questions
- 'medium' is for normal questions
- 'low' is for control freaks who want to see everything"
To change these per-package installation use # dpkg-reconfigure -p<priority level> <package-name>.
Desktop Environment: GNOME
Packages(s)
Choosing to install a 'desktop environment' in the Debian installer (or 'Tasksel', as the particular program that is running at that point is known), installs both KDE and GNOME, which is a lot more than you actually need if you only want one desktop environment, 1 such as GNOME for a vaguely modern computer. For an older computer you're advised to use XFCE instead of GNOME. This document will instead describe the individual packages to install.
Install these for a basic desktop environment without major applications:
- gdm - GNOME Display Manager - handles logging in
- gnome - this installs a lot of extra applications (i.e. gnome-office, which includes abiword-gnome, dia-gnome, gimp, gnumeric, inkscape or sodipodi, planner and gnucash). If you need to save disk space you could instead install gnome-desktop-environment. Depending on the environment the system is to be used in you may want to remove gnome-games.
- menu - Provides update-menus functions for some applications
- x-window-system-core
Configuration
Per-machine configuration
- Applications <locale>
- System Tools → Login Screen Setup <locale>
- General → Greeter → Local - Graphical greeter
- Graphical greeter - Happy GNOME with Browser, or whichever is your preference
- Security → Secure actions menu - off - to get a menu option in the GDM login screen for any user to reboot or shutdown the system, rather than just the root user
(Or, in/etc/gdm/gdm.confsetsystemmenu=true; to allow you to shutdown and restart without entering root's password, setsecuresystemmenu=false.
- System Tools → Login Screen Setup <locale>
If you already have KDE installed and wish to remove it, remove packages kdelibs3 and kdelibs4
Per-user configuration
- Desktop Preferences <locale>
- Keyboard → Layouts <locale>
- Selected layouts - replace U.S. English with whichever is appropriate, if different (i.e. United Kingdom, which is called 'gb' during installation)
- Keyboard model: European keyboards are probably 'Generic 105-key (intl) PC' and US keyboards 'Generic 104-key PC'
- Theme - Glider - this fixes a bug with the default theme where by Mozilla Firefox menu entries appear as black text on a black background
- Screensaver → Display Modes → Mode - Blank Screen Only
- Desktop Background - ...
- Keyboard → Layouts <locale>
Further Information
FootNotes: www.gnomedesktop.org/
The GNOME Journal: www.gnomejournal.org
Jordi Mallach's blog: oskuro.net/blog/freesoftware
Ben Maurer's blog: codeblogs.ximian.com/blogs/benm/
Various channels on irc://irc.gnome.org/
Planet GNOME, an aggregate blog of GNOME developers: planet.gnome.org/
GNOME changelog
- platform - http://ftp.gnome.org/pub/gnome/platform/MAJOR_VERSION_NUMBER/EXACT_VERSION_NUMBER/NEWS i.e. ftp.gnome.org/pub/gnome/platform/2.12/2.12.3/NEWS
- desktop - http://ftp.gnome.org/pub/gnome/desktop/MAJOR_VERSION_NUMBER/EXACT_VERSION_NUMBER/NEWS i.e. ftp.gnome.org/pub/gnome/desktop/2.12/2.12.3/NEWS
- bindings - http://ftp.gnome.org/pub/gnome/bindings/MAJOR_VERSION_NUMBER/EXACT_VERSION_NUMBER/NEWS i.e. ftp.gnome.org/pub/gnome/bindings/2.12/2.12.3/NEWS
Bug reporting
GNOME's Bug Database: bugzilla.gnome.org/
Desktop Environment: XFCE
This is an alternative to GNOME which will run well on very old computers that are too small and slow for GNOME, such as a 233MHz CPU with 128MB RAM.
Packages(s)
- xfce4 - www.xfce.org
- xfce4-datetime-plugin
- xfce4-iconbox
- xfce4-minicmd-plugin
- xfce4-mixer
- xfce4-showdesktop-plugin
- xfce4-terminal
- xfprint4
- xfce4-appfinder
Configuration
XFCE's default toolbar comes with shortcuts for some specific applications, such as the Mozilla suite, which you may not have installed as you may use alternative programs, such as Mozilla Firefox, and so they only serv as an example and are thus worth spending some time changing and adding to with your most used programs.
X Windows: XFree86
'X Windows' creates the graphical windows on your screen.
Packages(s)
- x-window-system-core - XFree86 - www.xfree86.org/ - this is the xserver-xfree86 package plus other useful packages. All the available free video drivers are included, such as those for Intel ('i810'), Matrox ('mga') and ATI ('radeon').
- Utilities for ATI video
- radeontool - control ATI Radeon based laptops' backlight and external output functions. "WARNING: Radeontool code has not been completely audited and may contain bugs that could damage your hardware. Use at your own risk."
- rovclock - controls ATI Radeon frequency rates. Underclocking the Radeon chip saves power and can prevent the fan from running.
- Utilities for Intel video
- i810switch - www16.plala.or.jp/mano-a-mano/i810switch.html - Enables/disables video output to CRT/LCD on i810, i830, i845, i855 video hardware The i810switch command-line program enables/disables the output to the CRT display and LCD, depending on the i810 graphics controller hardware. Such hardware is found on some laptops. The i810rotate command-line script toggles the output between three states: LCD only, LCD + CRT, and CRT only.
- Utilities for Matrox video
- matroxset - switches output modes, including TV out. Can be used to map heads to outputs, change the output mode to monitor, TV, or digital flat panel, display information about horizontal and vertical blanking, and view or modify a number of card specific controls.
- Utilities for Nvidia video
- nvidia-settings - nvidia-settings configures the NVIDIA Linux graphics driver. It communicates with the NVIDIA X driver, querying and updating state as appropriate. Values such as brightness and gamma, XVideo attributes, temperature and OpenGL settings can be queried and configured. [contrib]
- nvtv - controls the TV encoder chips on NVidia cards, giving tv-out with a wide range of resolutions and sizes, including "overscan" modes. It even works with the free nv drivers.
Configuration
Video driver choice
- ATI
- 'r128' - supports video cards based on ATI Rage 128 chipsets.
See
info r128for a list of which chipsets in particular. - 'ati' - supports video cards based on other ATI chipsets.
See
info radeonfor a list of which chipsets in particular.
- 'r128' - supports video cards based on ATI Rage 128 chipsets.
See
- Intel - 'i810' - supports Intel 800 and possibly 900 series chipsets.
See
info i810for a list of which chipsets in particular. - Matrox - 'mga' - supports video cards based on Matrox chipsets.
See
info mgafor a list of which chipsets in particular. - Nvidia - 'nv' - supports video cards based on NVIDIA chipsets.
See
info nvfor a list of which chipsets in particular.
This driver doesn't offer 3D acceleration. - SiS - 'sis' - supports video cards based on SiS chipsets.
See
info sisfor a list of which chipsets in particular. - And others, the full list is at www.xfree86.org/4.0/Status.html
Restart X: Ctrl+Alt+Backspace
dpkg-reconfigure xserver-xfree86
If you're going to reconfigure X this way then install the following packages first:
- read-edid - detects VESA Plug'n'Play monitors, and video cards on the i386 architecture, as used by dpkg-reconfigure xserver-xfree86, for inclusion in the X configuration file.
- mdetect - auto-configures the mouse, as used by dpkg-reconfigure xserver-xfree86, for inclusion in the X configuration file.
dpkg-reconfigure xfree86-common
xf86config - text based question and answer configuration
xf86cfg - graphical configuration
Video Resolution
When X is being configured after installation, you'll be asked how detailed the questions should be.
You can choose 'expert'(?) mode and be asked all questions now, or choose a lesser mode and configure
the X configuration file by hand later, or re-run the X configuration program again, or, some of this is
configurable using GNOME tools, some not.
Either way, you should use the original documentation, or the web, to find the capabilities of your monitor (horizontal
frequency (in kHz), vertical frequency (in Hz), resolutions and possibly 'mode line'), mouse and video card
(you usually just need to choose the name of the driver that relates to all the manufacturer's monitors), otherwise
these aspects won't be operating to their best abilities.
To decrease the resolution temporarily you can cycle through any configured resolutions with Ctrl+Alt+[+|-] (the keypad + or - keys). The size of the desktop will stay constant (e.g. 1280x1024) but your window into it will be smaller (e.g. 1024x768). You can thus still access all of your desktop by moving the mouse to the edges of the screen, which will scroll the smaller window over the larger desktop.
Configuration file
/etc/X11/XF86Config-4
Sample configuration file: /usr/share/doc/xserver-xfree86/examples/xorg.conf.eg.gz (or, using dwww localhost.localdomain/cgi-bin/dwww?type=file&location=/usr/share/doc/xserver-xfree86/examples/xorg.conf.eg.gz)
Configuration information specific to each video chipset and other devices is provided in
- /usr/share/doc/xserver-xfree86/ in files called README.<device>
- info pages for specific video card drivers, i.e.
info i810info radeoninfo mga
Example important configuration sections
- mouse
Option "Device" "/dev/input/mice"Option "Protocol" "auto"
- Monitor
HorizSync 30-96- be sure to set this for the appropriate setting for your hardware, wrong settings can damage the monitor and/or video cardVertRefresh 50-160- be sure to set this for the appropriate setting for your hardware, wrong settings can damage the monitor and/or video cardOption "DPMS"- only use if your monitor supports DPMS
- Screen
DefaultDepth 24- use a lower depth if your monitor and/or video card doesn't support 24"Display"Depth 24- use a lower depth if your monitor and/or video card doesn't support 24Modes "1600x1200" "1280x1024" "1280x960" "1152x864" "800x600" "640x480"- use lower resolutions if your monitor and/or video card doesn't support all of these
Set the correct login screen typeface size
- Run
xdpyinfo - In the 'dimensions' line, there will be something like:
dimensions: 1280x768 pixels (266x161 millimeters)
resolution: 122x121 dots per inch - Using a ruler, measure the size of the visible screen of the monitor. If it matches the millimeters reported by xdpyinfo, then it is set up correctly and you need do no more.
- If it is not, edit the '
Monitor' section of the X configuration file, which should look something like:
Section "Monitor"
Identifier "Generic Monitor"
EndSection - Add a
DisplaySizesetting with the actual size of your viewable area, such as:
DisplaySize 372 277 - Restart X
Set the correct GNOME screen typeface size
You may however find this gives typefaces that are too small.
- Run
xdpyinfo | grep resolution - Note one of the two numbers (you should probably choose the higher of the two if they differ)
- Go to Applications → Desktop Preferences → Font → <locale> Details → Resolution - set it to the number you chose if different from the number already there
Troubleshooting
Log file: /var/log/XFree86.0.log
Further Information
The XFree86 Project, Inc: www.xfree86.org
Environment Configuration
Remove annoying console beeps
Within the command-line environment
For Bash / GNU Readline: echo 'set bell-style none' >> ~/.inputrc
For all programs, from the system console: setterm -blength 0
Within the X window system
For all programs:xset b off
Within GNOME
Desktop → Preferences → Sound → System Beep →
- Enable system beep - off
- Visual system beep - on
Minor Software
Package(s)
- tree
- less
- wipe - securely erase files
- pwgen - Automatic password generation. pwgen generates random, meaningless but pronounceable passwords. These passwords contain either only lowercase letters, or upper and lower case mixed, or digits thrown in. Uppercase letters and digits are placed in a way that eases remembering their position when memorizing only the word.
- lynx - lynx.browser.org - command-line web browser
- nmap - network port scanner - insecure.org/nmap/
- traceroute - ftp://ftp.ee.lbl.gov/
- tcpdump - www.tcpdump.org
Spellcheckers and dictionaries
Package(s)
- aspell - Aspell spellchecker (for Abiword/Evolution/Gaim)
- aspell-doc - Aspell spellchecker documentation
- aspell-<locale> (i.e. aspell-en) - Aspell spellchecker dictionary
- We presume Myspell spellchecker (for OpenOffice/Mozilla) is built in to those programs
- myspell-<locale> (i.e. myspell-en-gb) - Myspell spellchecker dictionary
Fonts / Typefaces
Package(s)
- ttf-bitstream-vera - The Bitstream Vera family of free TrueType fonts. They fully cover Western European languages (ISO-8859-1, ISO-8859-15) and Turkish (ISO-8859-9). They also include a selection of mathematical and other symbols and some limited support for Eastern European languages (parts of ISO-8859-2). Non-latin scripts are not supported. Includes Bitstream Vera Sans, Bitstream Vera Sans Mono, Bitstream Vera Serif.
- ttf-freefont - Freefont Serif, Sans and Mono Truetype fonts. A set of free high-quality TrueType fonts covering the UCS character set. These fonts are similar to the (in)famous Helvetica, Times and Courier fonts.
- msttcorefonts - installer for Microsoft TrueType core fonts, which it downloads from the Internet. Includes Andale Mono, Arial Black, Arial, Comic Sans MS, Courier New, Georgia, Impact, Times New Roman, Trebuchet, Verdana and Webdings. [contrib]
(xfonts-scalable, installed by default, at least includes Bitstream Charter)
Further reading
List of other Bitstream Vera derivatives: dejavu.sourceforge.net/wiki/index.php/Bitstream_Vera_derivatives
Unicode Font Guide For Free/Libre Open Source Operating Systems: unifont.org/fontguide/
Issue this command at the command-line to see all available TrueType fonts:
apt-cache search ttf-
Office suite - Word processor, spreadsheet, presentation, layout
Package(s)
- Office suite, either
- OpenOffice.org - openoffice.debian.net, openoffice.org/
- openoffice.org - word processor, spreadsheet, presentation
- openoffice.org-help-language (i.e. openoffice.org-help-en) - user help
- openoffice.org-hyphenation-<locale> (i.e. openoffice.org-hyphenation-en-gb)
- openoffice.org-l10n-language - localization of OpenOffice.org in specific languages - by default the openoffice.org package will install the openoffice-l10n-language for your default locale, choose this if you want additional languages. Contains user interface, templates and autotext features. (not all this is available for all possible languages). You can switch user interface language using the locales system.
- openoffice.org-thesaurus-<locale> (i.e. openoffice.org-thesaurus-en-us, there isn't one for en-gb))
- openoffice.org-gtk-gnome - Gtk UI Plugin and Gtk file picker
- openoffice.org-gnomevfs - GNOME VFS support
- openoffice.org-mimelnk - OpenOffice.org MIME bindings
- openoffice.org-evolution - allows OpenOffice.org to access Evolution 2 address books
- ? ooqstart-gnome - quick start applet for GNOME desktop
- If you're using Openoffice Calc for a spreadsheet you might want to remove gnumeric
- GNOME Office; the 'gnome-office' package, part of the 'gnome' package, includes the following and more
- abiword-gnome, abiword-plugins, abiword-plugins-gnome abiword-help - word processor
- gnumeric, gnumeric-doc - spreadsheet
- (also includes evolution - groupware client, including email)
- OpenOffice.org - openoffice.debian.net, openoffice.org/
- Scribus
- scribus - layout / desktop publisher
- scribus-template - additional templates for Scribus
- scribus-doc - english-language documentation for the internal help browser
- gpdf - web.inf.tu-dresden.de/~mk793652/gpdf/ - PDF viewer. A version of xpdf that is integrated with GNOME. A part of the gnome-desktop-environment package (Applications → Graphics → PDF Viewer)
Configuration
OpenOffice.org
To enable the GNOME file picker, with useful shortcuts to various places, rather than OpenOffice's default which lacks such usefulness: Tools → Options... → OpenOffice.org → General → Open/Save dialogs → Use OpenOffice.org dialogs - off
Further Information
About OpenOffice packages in Debian: openoffice.debian.net
Debian-OpenOffice IRC discussion channel: irc://irc.freenode.net#debian-oo
Database
This information is based on using a MySQL database.
Package(s)
- openoffice.org - OpenOffice will at as an interface to an existing back-end database, such as MySQL. See the OpenOffice section
- mysql-client - text based client for accessing a remote MySQL server. This package is mutually exclusive with mysql-server.
- mysql-server - "MySQL is a fast, stable and true multi-user, multi-threaded SQL database server. SQL (Structured Query Language) is the most popular database query language in the world. The main goals of MySQL are speed, robustness and ease of use.". This package is mutually exclusive with mysql-client. See the MySQL section in our Server Setup with Debian Sarge document.
- mysql-doc
- mysql-admin - "GUI tool for intuitive MySQL administration MySQL Administrator is a powerful visual administration console that enables you to easily administer your MySQL environment and gain significantly better visibility into how your databases are operating. MySQL Administrator integrates database management and maintenance into a single, seamless environment, with a clear interface."
- mysql-query-browser - "Official GUI tool to query MySQL database MySQL Query Browser is a visual database query tool with a syntax highlighing SQL editor."
- mdbtools - JET / MS Access database (MDB) tools
If you're using a remote database and want applications to be able to interface with it
- unixodbc - ODBC connector for connecting to a remote ODBC database. ODBC is the Open Database Connectivity abstraction layer which is understood by a variety of database tools that cannot talk to MySQL databases directly.
- libmyodbc - MySQL ODBC driver. Allows you to connect to MySQL database servers using ODBC. There are other ODBC drivers for other database engines, such as PostgreSQL.
- godbcconfig - GTK Based ODBC Configuration GUI
Usage
Connecting to a remote database - create a data source
Register data sources so that applications such as OpenOffice know of them.
Using the command-line
User data sources: ~/.odbc.ini
System data sources: /etc/odbc.ini
Using GNOME
To create a data source just for the particular user you're logged in as, run gODBCConfig as that user then choose a 'User DSN'.
To create a data source for all users of this system, run gODBCConfig whilst root then choose a 'System DSN'.
Choose Add → choose a driver → OK → Enter at least the following:
- DSN - data source name - a name you want to give it
- Server - the IP address or hostname of the server with the database
- Database - the name of the database on the server
mysql-client accessing a remote database
Use the MySQL client to work with MySQL in general: mysql -h <hostname> -u <username> -p
Then enter the password for that particular user when prompted to do so.
Access a particular database: mysql -h <hostname> -u <username> -p <your database name>
Then enter the password for that particular user with that particular database when prompted to do so.
Basic MySQL commands
mysql> SHOW databases; - show all databases you have access to
mysql> CREATE database <database>; - create a new database
mysql> USE <database>; - open a databaase so you can use it
mysql> DROP database <database>; - delete an existing database
mysql> CREATE TABLE <table> (<field> <type>); - create a table, with fields
mysql> SHOW tables; - show existing tables in the current database
mysql> DROP TABLE <table>; - delete a table
mysql> DESCRIBE <table>; - display structure information about an existing table
mysql> ALTER table <table> <alter specification>; - change the structure of an existing table
mysql> INSERT INTO <table> VALUES ('a','b','1999-03-30',NULL); - add data to a table
mysql> SELECT what_to_select [and optionally operate upon that, displaying the results] FROM which_table WHERE conditions_to_satisfy;
- display the contents of fields according to certain criteria
mysql> UPDATE <table> SET <field> = '<value>' WHERE <another field> = '<another value>';
- change the contents of existing fields
mysql> ALTER TABLE <table> DROP <row>; - delete rows
mysql> DELETE from <table> ...; - delete rows
Methods of automatically loading data into a MySQL database
mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet;(useLINES TERMINATED BY '\r\n';if it's coming from a Windows file)mysql < <batch filename>$ mysql -h host -u user -p < <batch filename>mysql> source <batch filename>;mysql> \. <batch filename>
Further Information
MySQL 3.23, 4.0, 4.1 Reference Manual: dev.mysql.com/doc/refman/4.1/en/
MySQL 5.0 Reference Manual: dev.mysql.com/doc/refman/5.0/en/
Web editing
Package(s)
- For a WYSIWYG web editor your options are probably limited to Mozilla Composer or OpenOffice Writer if you want packages that are available in Debian. Otherwise there are Debian packages available from the upstream web site for Nvu (www.nvu.com/) and similarly source files for KompoZer (kompozer.net/).
- bluefish - bluefish.openoffice.nl/ - web editor
- mozilla-firefox-dom-inspector - tool for inspecting the DOM of web pages in Mozilla Firefox. This is of great use to people who are doing web page development or Mozilla chrome development.
- mozilla-venkman - "Javascript debugger for Mozilla and Firefox. It can be used to debug either Javascript embedded in web pages, or even Mozilla's interface and extensions."
- mozilla-checky - Online validation and analysis services for Firefox and Mozilla.
The Checky plug-in is a simple Interface for web content and resource
developers to free and commercial online Validator and Checker services.
Checky adds a submenu to Firefox and Mozilla's context menu that allows you to run whatever page you're on through one of (currently) 24 different online validation and analysis services. Checky-Agent can be activated from the Checky menu or by simply pressing the SHIFT+F12 keys. So, for example, you could run your page against the W3C's markup and CSS validators, the Web Design Group's HTML Validator, and Watchfire's Bobby with a single keystroke and display the results in a new browser window or tab. - w3c-markup-validator - validator and link checker. Gives you the W3C's validators and link checker at localhost/w3c-markup-validator/checklink (or at the address of your chosen server if you install it to a central server
- tidy
- tidy-doc
- weblint-perl - A syntax and minimal style checker for HTML. This is a perl script which picks fluff off html pages
- php4-cli - command-line interpreter for the php4 scripting language. This package provides the /usr/bin/php4 command interpreter, useful for testing PHP scripts from a shell.
- libxml2-utils - XML utilities. This package provides xmllint, a tool for validating and reformatting XML documents, and xmlcatalog, a tool to parse and manipulate XML or SGML catalog files.
Internet applications
Package(s)
- Mozilla Firefox -
www.mozilla.org/en/products/firefox/
- web browser.
Recommended in place of epiphany-browser
(www.gnome.org/projects/epiphany/)
because Epiphany is so lacking in useful features.
If you don't want Epiphany and/or the Mozilla suite you can remove them, which will additionally
remove the metapackages gnome, gnome-core, gnome-desktop-environment and gnome-office but this is ok.
- mozilla-firefox-gnome-support
- mozilla-firefox-locale-<locale> - localisations for your spoken language (i.e. mozilla-firefox-locale-en-gb)
- latex-xft-fonts - Xft-compatible versions of some LaTeX fonts, for MathML documents;
- flashplugin-nonfree [Note: removed from Debian Sarge as of version 3.1r8, see bug 457291] - Macromedia Flash Player plugin installer. [contrib (Adobe Flash Player itself is non-free, see the Adobe Flash Player End User License Agreement for usage terms, or the Adobe Player Licensing page for redistribution terms)] [i386 / 32-bit only, no 64-bit version]
- Email client. Choose from these:
- Evolution - gnome.org/projects/evolution/ - groupware client (including email)
- evolution
- evolution-exchange - Microsoft Exchange 2000 and 2003 plug-in
- evolution-webcal - A GNOME URL handler for web-published ical calendar files, which integrates with Evolution. It allows you to subscribe to a published calendar simply by clicking on a webcal: URL.
- openoffice.org-evolution - allows OpenOffice.org to access Evolution 2 address books. Note: this depends upon OpenOffice so only install if you also want or already have OpenOffice
- Thunderbird - www.mozilla.com/thunderbird/
- Sylpheed Claws - claws.sylpheed.org/
- sylpheed-claws
- sylpheed-claws-doc
- sylpheed-claws-clamav
- sylpheed-claws-spamassassin
- Evolution - gnome.org/projects/evolution/ - groupware client (including email)
- xchat - www.xchat.org/ - IRC (Internet Relay Chat) client
- gaim - pidgin.im - instant messaging
- gftp-gtk - gftp.seul.org/ - FTP, FTPS, HTTP, HTTPS and SSH2 (AKA SCP) client
- gtk-gnutella - gtk-gnutella.sourceforge.net/en/?page=news - peer2peer client
- bittorrent and bittorrent-gui or bittornado and bittornado-gui - Bittorrent downloading utility
Configuration
gFTP
Per-user configuration
- FTP → Options... → General
- Overwrite by Default - on
- Do one transfer at a time - off
- Show hidden files - off
User bookmarks location: ~/.gftp/bookmarks
Further Information
Planet Mozilla: planet.mozilla.org/
Penguin.SWF - tracks development status and issues regarding the Linux version of Adobe's Flash Player: blogs.adobe.com/penguin.swf/
Image viewing
Package(s)
- gthumb - gthumb.sourceforge.net - an enhanced image viewer, browser, organiser, small-time editor, with features to connect with digital still cameras. A suitable replacement for GNOME's default Eye Of Gnome (www.gnome.org/projects/eog/) image viewer. Eye Of Gnome is smaller than gthumb but is less featureful to the extent of probably leaving you wanting more (it doesn't have the facility to print, or to efficiently browse through an image collection, for example); you may want to remove it but because it is part of the gnome-core package that would also remove GNOME itself.
Image editing
Package(s)
- The GIMP - The GNU Image Manipulation Program - a (raster) image editor, similar to Adobe Photoshop.
- gimp - gimp.org - The GIMP program itself
- gimp-helpbrowser - GIMP's integrated help
- gimp-help-language (i.e. gimp-help-en) - GIMP's integrated help language files
- gimp-data-extras - optional collection of brushes and patterns additional to the set already included with The GIMP (not "brushes, palettes, and gradients" as package description claims)
The following brushes are included: 50x50cone, 50x50square, 50x50squareBlur, 50x50squareBlur2, bigcircle, bigcircle2, bigcircle3, bigcircle4, bird, bullethole, cloth, flower, flower_large, gecko, grid, grid2, guitar, nova, point, punch, qbert2, qbert3Blur, reach, sphere29, sphere36, sphere47, sphere55, sphere79, star1, star2, star3, star4, star5, swirl, swirl2, text1, text2, text3, text4, tulip, wave
The following patterns are included: 3dweave, abstract_flowers, blackoil, blackwhitefloor, blob1, blob2, bluebar, bluecanyons, bluemars, bluemetal, bluespikes, brownie, bwcubes, canyons2, cashew, chains, chroma, circuit, clouds, clovers, coins, colorblob, colored_rock, colorwhirl, connestoga, contrawhirl, cow, crash1, crazytile, crystals, curvedledge, deepswirl, diffpat, dirt, disco, drymud, dunemaze, dunes, eggcarton, electric-blue-ribbons, etbf, floor_tile, funnyblobs, funnymess2, funnymess, fuzzy-colors, gold, goldcloth, granite2, green_curtains, green_eek, greyweave, greyweave2, grid, gridwhirltile, headache, ice2, icechex, inlay, krinkle, land1, land2, lathe, leaves3, leaves4, leaves6, lumps, meltedcolors, metallica, metalpaths, mhuerock, money, neurons, novaugh, oooh, oooh3, orange_eek, orangebrown, orangecheese, paint-explosion, pastel2, pebbles, pixeled1, pj, psycho1, purple-ribbons, purple, purple_glow, redishstuff, redmess, redrings, rust, sandytext, send1, silver, slice1, spectbar, startile, swirl, swirl2, torrents, tube, unsharpswirl, water3, waves, wax, weird2, whirledstuff, woodblind, worn_metal_chex
- gtkam-gimp - optional Gimp plug-in of gtkam. gtkam is a graphical application based on GTK+ for digital still cameras supported by gphoto
- gimp-dcraw - cybercom.net/~dcoffin/dcraw/; and/or(?) gimp-ufraw - ufraw.sourceforge.net/; and/or(?) gimp-svg - gimp.org - importer for raw camera images
- (other plug-ins might be mentioned in other sections specific to their areas of operation)
Further Information
Beginning GIMP: From Novice to Professional (a printed book): apress.com/book/bookDisplay.html?bID=10080
Security
Package(s)
- firestarter - www.fs-security.com/ - firewall. Features: easy to use graphical interface; suitable for use on desktops, servers and gateways; enables Internet connection sharing; allows you to define both inbound and outbound access policy; option to whitelist or blacklist traffic; sets up DHCP for a local network; real time firewall events view; view active network connections, including any traffic routed through the firewall; advanced Linux kernel tuning features.
Configuration
- Firestarter
- Preferences → Interface → System tray icon → Minimise to tray on window close - on
Multi media players, including DVD
Package(s)
- Choose one or more of the following:
- totem - www.hadess.net/totem.php3 - comes by default with GNOME; based on Xine
- VLC media player (VideoLAN Client) - can be useful if Totem won't play a particular DVD movie
- wxvlc - VLC is a multimedia player for all audio and video formats, this package includes VLC and the wxWindows frontend, providing for GNOME, KDE, etcetera.
- videolan-doc
- MPlayer - www.mplayerhq.hu - movie player that plays most
MPEG/VOB, AVI, Ogg/OGM, VIVO, ASF/WMA/WMV, QT/MOV/MP4, RealMedia, Matroska, NUT, NuppelVideo, FLI, YUV4MPEG, FILM, RoQ, PVA files,
supported by many native, XAnim, and Win32 DLL codecs. You can watch VideoCD, SVCD, DVD, 3ivx, DivX 3/4/5
and even WMV movies.
Because of legal difficulties MPlayer is not available in the official Debian repositories (see the The Debian and mplayer FAQ for details) but can instead be installed from the Debian Multimedia package repository.- mplayer - the main program [requires additional repository: Debian Multimedia]
- mplayer-doc - Documentation for MPlayer, in Chinese, English, French, German, Hungarian, Italian and Polish [requires additional repository: Debian Multimedia]
- w32codecs - Windows binary codecs. Video codecs for popular proprietary formats not natively supported by MPlayer, namely ATI VCR-2 video codec, Cinepak video codec, DivX ;-) video codec, ver. 3.11, DivX ;-) video codec, ver. 4.x, Indeo Video 3.2/4.1/5.0/4.1 quick/5.0 quick codecs, Intel 263 video codec, Microsoft MPEG-4 video codec, beta version 3.0.0.2700, Morgan Multimedia Motion JPEG video codec, QuickTime, RealAudio, RealVideo 8, RealVideo 9, Windows Media Video 9 and more. [requires additional repository: Debian Multimedia]
- The 'clearplayer' skin from Massimo Tisi for MPlayer provides a ClearLooks GNOME theme more in keeping with GNOME than the default MPlayer theme,
obviously especially if you'e using ClearLooks already. You need to do the following to use it:
- download the
.tar.bz2file manually from www.mplayerhq.hu/design7/dload.html#skins - unpack the downloaded file with Archive Manager
- To install for just the one user: create the directory
~/.mplayer/skins/defaultand copy the files there, not to a subdirectory - To install for all users of the machine: create the directory
/usr/local/share/mplayer/skins/defaultand copy the files there, not to a subdirectory
- download the
- libdvdcss2 - DVD decryption (part of the VideoLAN project). You need this to be able to play encrypted DVDs in any software [requires additional repository: Debian Multimedia]
- regionset - view and modify the region code of DVD drives
Configuration
- VLC
- you don't need to mount the DVD, VLC deals with it directly
- you need write permissions on the DVD device itself (i.e.
/dev/hdcor whichever it is on your system). The easiest way to do this is to make youself a member of the same group as this drive, thecdromgroup. (you need write permission for users since VLC does some ioctl to talk to the DVD that requires them) - if something is going wrong, use the environment variables DVDCSS_METHOD and DVDCSS_VERBOSE to understand what libdvdcss is trying to do; or read VLC's log messages (available
from within VLC); or start VLC from the console with
vlc -vvv
Audio architectures
Package(s)
- alsa-base - ALSA Advanced Linux Sound Architecture. Default with the 2.6 Linux kernel.
- alsa-utils - ALSA utilities
- alsa-oss - ALSA wrapper for OSS applications. Wraps applications written for OSS in a compatibility library, thus allowing them to work with ALSA. Required for Audacity.
- jackd - jackit.sourceforge.net/ - JACK Audio Connection Kit (server daemon (jackd) and example clients). Low-latency sound server. JACK allows the connection of multiple applications to an audio device, as well as allowing them to share audio between themselves.
- jack-tools - various JACK tools: plumbing, play, udp, ctl, scope, clock
- qjackctl - User interface for controlling the JACK sound server
- jackeq -routes and manipulates audio from/to multiple sources
Audio editing
Package(s)
multi-track audio editors
- audacity - audacity.sourceforge.net - multi-track audio editor. The Audacity 1.2 series which is part of Debian Sarge is somewhat stuck in the past, having an old GTK 1 interface and only working with OSS rather than ALSA; it requires the alsa-oss package to play and record with an ALSA-based system
- gnusound - multi-track audio editor, for GNOME. (We haven't tried this yet, but it seems a promising option). "It supports multiple tracks, multichannel output, and 8, 16, or 24/32 bit samples. It can read a number of audio formats, modify them, and saves them as WAV files. GNUsound supports a large number of high-quality audio effects, filters, and converters through the GLADSPA plugin architecture (band pass filter, frequency shifter, reverb, flanger, pitch scaler, pink noise, stereo to mono converter, and many others)."
single-track audio editors
- snd - single-track audio editor, appropriate for slow small computers. (We haven't tried this yet, but it seems a promising option).
- snd - www-ccrma.stanford.edu/software/snd/ - "Snd is a powerful sound file editor that can be customized and extended using the Scheme programming language. This package contains the basic infrastructure for the snd packages and the scheme files. You have to install a GUI package as well to actually use snd."
- snd-gtk - the files for the GTK+ user interface.
- snd-gtk-alsa - the files for the GTK+ user interface with ALSA output support.
- snd-doc
Sound effects
- ladspa-plugin
- www.ladspa.org - virtual package containing the following, which you need to install specifically:
- tap-plugins
- swh-plugins
- ladspa-sdk
- cmt
- caps
- blop
- ladspa-plugins
- www.ladspa.org - virtual package containing the following:
- mcp-plugins
Compression / Archival
These can be useful for many reasons, for example the anti-virus and spam co-ordinating program Amavis uses many of them if they're installed; as does GNOME's archive manager / file roller.
Package(s)
- arc - archive utility based on the MSDOS ARC program plus a few enhancements
- arj - archiver for .arj files. An open source version of the arj archiver. This version has been created with the intent to preserve maximum compatibility and retain the feature set of original ARJ archiver as provided by ARJ Software, Inc.
- bzip2 - www.bzip.org/ - bzip2 is a freely available, patent free, high-quality data compressor. It typically compresses files to within 10% to 15% of the best available techniques, whilst being around twice as fast at compression and six times faster at decompression. The archive file format of bzip2 (.bz2) is incompatible with that of its predecessor, bzip (.bz).
- cabextract - www.cabextract.org.uk - unpacks Microsoft cabinet (.cab) files. Microsoft cabinet files are used by Microsoft and others to distribute all kinds of data and software: core Web fonts, videos, operating system updates and video codecs, to give some examples. Microsoft cabinets are also used as the installation format for Windows CE software.
[Author: Stuart Caie] - cpio - GNU cpio is a tool for creating and extracting archives, or copying files from one place to another. It handles a number of cpio formats as well as reading and writing tar files.
- lha - the lzh archiver, popular on MS-DOS (and Windows?). [non-free - open source, has some restrictions and some vaguely worded terms; read the licence]
- lzop - www.lzop.org/ - lzop is a compressor similar to gzip. Its main advantages over gzip are much higher compression and decompression speed. lzop was designed with the following goals in mind: reliability, speed (both compression and decompression), reasonable drop-in compatibility with gzip, portability
- pax - Portable Archive Interchange. Pax is an archiving utility that reads and writes tar and cpio formats, both the traditional ones and the extended formats specified in IEEE 1003.1. Three user interfaces are supported: tar, cpio, and pax. The pax interface was designed by IEEE 1003.2 as a compromise in the chronic controversy over which of tar or cpio is best. This is the free OpenBSD's version written by Keith Muller.
- nomarch - unpacks .ARC and .ARK MS-DOS archives. This is a de-archiving only replacement for the arc archiver from SEA. It can handle pkarc archives, as well as others. This package is very useful for E-Mail virus scanner scripts for attachement unpacking.
- tnef - sourceforge.net/projects/tnef - TNEF is a program for unpacking MIME attachments of type "application/ms-tnef". This is a Microsoft only attachment. Due to the proliferation of Microsoft Outlook and Exchange mail servers, more and more mail is encapsulated into this format (often in the form of a winmail.dat file). The TNEF program allows one to unpack the attachments which were encapsulated into the TNEF attachment. Thus alleviating the need to use Microsoft Outlook to view the attachment.
- unrar - extracts files from .rar archives. If you want to create .rar archives, install package rar. Unrar can handle where as unrar-free cannot. [non-free - freeware, open source, restricts you to not using the source to create a rar archiver; read the licence] (alternatively there is unrar-free (https://gna.org/projects/unrar/) but it cannot handle version 3.0 of the rar format)
- unshield - www.synce.org/index.php/Unshield - extracts Microsoft-format CAB files from InstallShield installers. InstallShield installers comprise a .exe InstallShield installer for Microsoft Windows in which there are InstallShield cabinet files (usually named data1.cab, data1.hdr, data2.cab, data2.hdr, etc) and within them Microsoft cabinet files. The Microsoft and InstallShield cabinet files are of different formats. Unshield extracts the InstallShield cabinet files from the .exe InstallShield installer and then the Microsoft cabinet files from the InstallShield cabinet files. The Microsoft cabinet files can then either be loaded into a Windows CE device for installation or themselves unpacked using cabextract (a separate package). Unshield doesn't support encrypted files.
[Version: 0.4 | Author(s): David Eriksson | Licence: MIT] - zip - www.info-zip.org/Zip.html
- unzip - www.info-zip.org/UnZip.html
- zoo - manipulate zoo archives. This package exists for its historical value. If you are looking for a compression tool for serious use, check tar and gzip.
Java Runtime Environment (JRE)
Java is very non-free, so getting it to work in Debian involves some manual steps.
Package(s)
- java-package (you need to have
contribin your sources list for this)
Usage
- We're going to install Sun Java 2 Standard Edition (J2SE) Runtime Environment (JRE) which you get from java.sun.com/j2se/1.5.0/download.jsp with a web browser
- in the 'JRE <version number>' section, choose 'Download JRE <version number>'
- choose 'Accept License Agreement'
- in the 'Linux Platform - J2SE(TM) Runtime Environment <version number>' or 'Linux AMD64 Platform - J2SE(TM) Runtime Environment <version number>' section (whichever matches the architecture of your computer), choose 'Download JRE <version number>' choose 'Linux self-extracting file' or 'Linux AMD64 self-extracting file' and save it somewhere, such as in your home directory
- open a terminal to the command line
- create the Debian package (using
fakerootso as not to overwrite some configuration files):fakeroot make-jpkg jre-<version>-linux-<architecture>.bin(replacing parts of the filename with the exact text in your copy) - follow the various prompts and wait
- become root:
su - install the Debian package:
dpkg -i sun-j2re<version+update_architecture>.deb - Your web browser should now be automatically configured to use the JRE; you can test if the Java plug-in is working with this page: www.java.com/en/download/help/testvm.xml
- you can delete the now redundant
jre-<version>-linux-<architecture>.binandsun-j2re<version+update_architecture>.debif you want
Further Information
The Debian readme file: file:///usr/share/doc/java-package/README.Debian
Blackdown Java-Linux: www.blackdown.org/
Debian GNU/Linux Java FAQ: www.debian.org/doc/manuals/debian-java-faq/
irc.freenode.net#debian's dpkg bot on 'Java Virtual Machine': "a platform independent OO language. Server-side Java is extremely powerful due to the threads capabilities and the huge number of APIs available. On the other hand, Sun's Java licensing is extremely restrictive. Ask me about <java licensing> and <install java> and <sid mozilla java> (for starters). write once, run nowhere"
irc.freenode.net#debian's dpkg bot on 'install java': "First, read <java licensing>. Still here? If you're in sarge or sid, ask me about <java-package>. If you're in woody, grab java-package manually from packages.debian.org/java-package and then ask me about <java-package> for instructions on how to use it."
irc.freenode.net#debian's dpkg bot on 'java licensing': "read the faq at www.debian.org/doc/manuals/debian-java-faq/ch5.html#s-license-concerns"
irc.freenode.net#debian's dpkg bot on 'java-package': "i guess java-package is the new name for mpkg-j2se... err, I mean j2se-package... DAMN IT, CAN'T THEY PICK A NAME?! Anyway, it lets you build a .deb file from Sun's non-free upstream Java distributions. See "man make-jpkg". Cf. "make-kpkg" (from kernel-package). only in sarge and sid currently, but it's a -all package, so it's safe to use it in woody."
irc.freenode.net#debian's dpkg bot on 'sid mozilla java': "somebody said sid mozilla java was extra, extra, read all about it, sid mozilla java is mozilla 1.7 (in sid) is compiled with g++ 3.2. The ABI has changed, and old Java virtual machines will not work any more. Please see www.mozilla.org/releases/mozilla1.3/#compatible for details. jrfonseca.dyndns.org/debian/#java for packages that work as of 13 ..."
Sound card
Package(s)
- alsa-base - alsa-project.org/ - ALSA, the Advanced Linux Sound Architecture, is the driver
- alsa-utils - utilities for configuring and using ALSA: alsamixer, amidi, amixer, aplay, iecset, aconnect, aplaymidi, arecordmidi, aseqdump, aseqnet, speaker-test, asoundconf
- nas (the Network Audio System)?, arts (Analog Realtime Synthesizer)? esound (Enlightened Sound Daemon)? - sound server
- do we need all the packages described at xtronics.com/reference/Debian-sound.html?
- Replacing OSS with ALSA: this.
Configuration
- You need to be a member of the 'audio' group to make sounds
- Choose which sound card in your system to use by default with
alsaconfto setup particular sound cards for use - The sound device is
/dev/dsp; - Linux kernel 2.4 used OSS, kernel 2.6 uses ALSA - "OSS is deprecated which means you should only use it if the ALSA driver has problems with your sound card. And some of them do.". Debian installs ALSA by default
- By default the Master and PCM levels are muted
(in GNOME's Applications → Multimedia → Volume Control →
<sound card name>> [Alsa Mixer], check 'Master' volume
and 'Mute'), initially and on each restart.
You may be able to fix this by running
alsaconf - alsactl - advanced controls for ALSA soundcard driver - "alsactl is used to control advanced settings for the ALSA soundcard drivers. It supports multiple soundcards. If your card has features that you can't seem to control from a mixer application, you have come to the right place."
- configuration file:
/etc/modules.conf; in particular the#ALSAportion - www.debianplanet.com/node.php?id=694
Usage
From the command-line
- change various volumes:
alsamixer - configure advanced features of your sound card:
alsactl
From GNOME
- change various volumes: Applications → Multimedia → Volume Control
- configure advanced features of your sound card: Applications → Multimedia → GNOME ALSA Mixer
Troubleshooting
- check what sound card you have with
lspci | grep audio, then check you have a module running for it withlsmod | grep sndorlsmod | grep <sound-card-name> - check your sound card is supported using the ALSA Soundcard Matrix (www.alsa-project.org/alsa-doc/). There will be specific configuration advice for it there but your Debian system should have this configuration already
- "Prevent OSS drivers from loading - The discover1 pacakage tries to figure out what hardware you
have and load the modules for them. Very nice. Except that it loadsthe OSS sound modules. To prevent it from doing this, add the line:
skip i810_audioto the file/etc/discover.conf. Put the name of the OSS module for your sound card in place of i810_audio. (You can probably figure this out by perusing the output oflsmod.)" - http://www.linuxmafia.com/faq/Debian/alsa.html - "Prevent ALSA from thinking your card is a modem - Don't try this at first. If things aren't working the first time
through, this may be the source of your problem. The hotplug system may try to initialize the modem before the soundcard, and may conclude that
your ALSA soundcard is a modem. Figure out what the "modem" module for your soundcard is, and add that to the hotplug blacklist (in the file
/etc/hotplug/blacklist). In my case, I added the line "snd-intel8x0m" to the bottom of that file." - http://www.linuxmafia.com/faq/Debian/alsa.html
Further Information
'The Linux Audio Developers Mailing List' (and Linux Audio Users Mailing List), including various resources: www.linuxdj.com/audio/lad/index.php
Low-Latency HOWTO by Paul Winkler: www.djcj.org/LAU/guide/Low_latency-Mini-HOWTO.php3
More on low latency: jackit.sourceforge.net/docs/faq.php#a53
Printing
These instructions describe how to setup to print to a directly attached personal printer, or a remote printer, using CUPS
(the Common Unix Printing System). CUPS uses the Internet Printing Protocol (IPP), rather than LPR (an alternative printing
mechanism).
For sharing printers, using either a dedicated print server or to simply share your printer from your desktop computer,
see the printing section of our document 'Server Setup with Debian Sarge'.
Package(s)
When printing to a directly attached printer
- CUPS - Common UNIX Printing System
- cupsys - server
- cupsys-client - client
- smbclient - Samba client so can find Windows shared printers
- printer drivers
There are various providers of PPDs (printer description files) but for an individual printer some will be better than others. CUPS includes a few generic PPDs for non-PostScript printers (in /usr/share/cups/model) that work with some 400 printers (see samba.org/samba/docs/man/Samba-HOWTO-Collection/CUPS-printing.html#id2642170) If you instead use the alternative drivers described here you'll get better quality results and have support for more printers.- gimp-print
- cupsys-driver-gimpprint
or ijsgimpprint - universal printer driver for non-PostScript printers.
Check the list of supported models
or use the command
man gimpprint-models. - gimpprint-doc
- gimpprint-locales - for locales other than US English; needed when you want the programs in Gimp-Print to print their messages in other languages than US English
- cupsys-driver-gimpprint
or ijsgimpprint - universal printer driver for non-PostScript printers.
Check the list of supported models
or use the command
- hpijs
- HP Linux Printing and Imaging System - for printing on most JetDirect and USB attached HP SFP (single function peripheral)
InkJets and many LaserJets (not all, see the other HP packages for more).
Check the list of supported printers
Use with hplip. - hplip
- hplip - support for printing on most JetDirect and USB attached HP SFP (single function peripheral) InkJets and many LaserJets, and for scanning and photo-card access on most HP MFP (multi-funtcion peripheral) printers. (Mutually exclusive package to hpoj).
- hpoj - seems to be fairly universally not recommended - support for most parallel port attached "multi-function" (also known as "all-in-one") peripherals from Hewlett-Packard, including OfficeJet, LaserJet (not all, see the other HP packages for more), Printer/Scanner/Copier ("PSC"), and PhotoSmart printer products. (Mutually exclusive package to hplip). Check the list of supported printers
- pnm2ppa
- pnm2ppa - for HP Deskjet 7xx, 820 and 1000 PPA protocol GDI printers
- psutils - enables n-up printing support
- c2050 - Lexmark 2050 Color Jetprinter Linux Driver. Filter to convert a Postscript file to Lexmark 2050 format.
- cjet - Software PCL emulation for Canon CaPSL laser printers (Canon LBP-4U and Canon LBP-8A1)
- gimp-print
- Foomatic database for various print drivers
- foomatic-db-gimpprint - database for Gimp-Print printer drivers
- foomatic-db-hpijs - database for HPIJS driver
- foo2zjs - foo2zjs.rkkda.com - support for printing to ZjStream-based printers Minolta magicolor 2200/2300/2430 DL, Minolta Color PageWorks/Pro L and HP LaserJet 1000/1005/1018/1020/1022 (often erroneously referred to as 'winprinters' or 'GDI printers')
- Foomatic PPD files
- PPD files for non-PostScript printers
- foomatic-filters-ppds - these are those available individually from linuxprinting.org / http://www.linux-foundation.org/en/OpenPrinting
- PPD files for PostScript printers
- hp-ppd - PPD files for some Hewlett-Packard PostScript printers that aren't available
from linuxprinting.org / http://www.linux-foundation.org/en/OpenPrinting:
HP_Business_Inkjet_2250.ppd, HP_Business_Inkjet_2500C_Series.ppd,
HP_ColorLaserJet_5-5M.ppd, HP_Color_LaserJet.ppd, HP_Color_LaserJet_4500.ppd,
HP_Color_LaserJet_4550.ppd, HP_Color_LaserJet_8500.ppd, HP_Color_LaserJet_8550.ppd,
HP_DeskJet_350C.ppd, HP_DeskJet_600C_Photo_Series.ppd, HP_DeskJet_600C_Series.ppd,
HP_DeskJet_630C.ppd, HP_DeskJet_800C_Series.ppd, HP_DeskJet_900C_Series.ppd,
HP_DeskJet_990C.ppd, HP_LaserJet_1200.ppd, HP_LaserJet_2100_Series.ppd, HP_LaserJet_2200.ppd,
HP_LaserJet_3200M.ppd, HP_LaserJet_4.ppd, HP_LaserJet_4000_Series.ppd,
HP_LaserJet_4050_Series.ppd, HP_LaserJet_4100_Series.ppd, HP_LaserJet_4ML.ppd,
HP_LaserJet_4MP.ppd, HP_LaserJet_4Si.ppd, HP_LaserJet_4V.ppd, HP_LaserJet_4_Plus.ppd,
HP_LaserJet_5.ppd, HP_LaserJet_5000_Series.ppd, HP_LaserJet_5100_Series.ppd,
HP_LaserJet_5P.ppd, HP_LaserJet_5Si.ppd, HP_LaserJet_5Si_Mopier.ppd, HP_LaserJet_6P.ppd,
HP_LaserJet_8000_Series.ppd, HP_LaserJet_8100_Series.ppd, HP_LaserJet_8150_Series.ppd,
HP_LaserJet_9000_Series.ppd, HP_Mopier_240.ppd, HP_Mopier_320.ppd, hp_LaserJet_1300_series.ppd,
hp_LaserJet_2300.ppd, hp_LaserJet_4200_Series.ppd, hp_LaserJet_4300_Series.ppd,
hp_business_inkjet_2250.ppd, hp_business_inkjet_2300.ppd, hp_color_LaserJet_5500.ppd,
hp_color_laserjet.ppd, hp_color_laserjet_4500.ppd, hp_color_laserjet_4550.ppd,
hp_color_laserjet_5m.ppd, hp_color_laserjet_8500.ppd, hp_color_laserjet_8550.ppd,
hp_laserjet_1200.ppd, hp_laserjet_2100_series.ppd, hp_laserjet_2200.ppd,
hp_laserjet_3020_3030.ppd, hp_laserjet_3200.ppd, hp_laserjet_3380.ppd, hp_laserjet_4.ppd,
hp_laserjet_4000_series.ppd, hp_laserjet_4050_series.ppd, hp_laserjet_4100_series.ppd,
hp_laserjet_4_plus.ppd, hp_laserjet_4ml.ppd, hp_laserjet_4mp.ppd, hp_laserjet_4si.ppd,
hp_laserjet_4v.ppd, hp_laserjet_5mp.ppd, hp_laserjet_5si.ppd, hp_laserjet_5si_mopier.ppd,
hp_laserjet_6mp.ppd, hp_laserjet_8000_series.ppd, hp_laserjet_8100_series.ppd,
hp_laserjet_8150_series.ppd, hp_laserjet_9000_series.ppd, hp_laserjet_9055_9065_mfp.ppd,
hp_mopier_240.ppd and hp_mopier_320.ppd.
Note that in the next version of Debian many of these drivers have moved into the linuxprinting.org-ppds package.
- hp-ppd - PPD files for some Hewlett-Packard PostScript printers that aren't available
from linuxprinting.org / http://www.linux-foundation.org/en/OpenPrinting:
HP_Business_Inkjet_2250.ppd, HP_Business_Inkjet_2500C_Series.ppd,
HP_ColorLaserJet_5-5M.ppd, HP_Color_LaserJet.ppd, HP_Color_LaserJet_4500.ppd,
HP_Color_LaserJet_4550.ppd, HP_Color_LaserJet_8500.ppd, HP_Color_LaserJet_8550.ppd,
HP_DeskJet_350C.ppd, HP_DeskJet_600C_Photo_Series.ppd, HP_DeskJet_600C_Series.ppd,
HP_DeskJet_630C.ppd, HP_DeskJet_800C_Series.ppd, HP_DeskJet_900C_Series.ppd,
HP_DeskJet_990C.ppd, HP_LaserJet_1200.ppd, HP_LaserJet_2100_Series.ppd, HP_LaserJet_2200.ppd,
HP_LaserJet_3200M.ppd, HP_LaserJet_4.ppd, HP_LaserJet_4000_Series.ppd,
HP_LaserJet_4050_Series.ppd, HP_LaserJet_4100_Series.ppd, HP_LaserJet_4ML.ppd,
HP_LaserJet_4MP.ppd, HP_LaserJet_4Si.ppd, HP_LaserJet_4V.ppd, HP_LaserJet_4_Plus.ppd,
HP_LaserJet_5.ppd, HP_LaserJet_5000_Series.ppd, HP_LaserJet_5100_Series.ppd,
HP_LaserJet_5P.ppd, HP_LaserJet_5Si.ppd, HP_LaserJet_5Si_Mopier.ppd, HP_LaserJet_6P.ppd,
HP_LaserJet_8000_Series.ppd, HP_LaserJet_8100_Series.ppd, HP_LaserJet_8150_Series.ppd,
HP_LaserJet_9000_Series.ppd, HP_Mopier_240.ppd, HP_Mopier_320.ppd, hp_LaserJet_1300_series.ppd,
hp_LaserJet_2300.ppd, hp_LaserJet_4200_Series.ppd, hp_LaserJet_4300_Series.ppd,
hp_business_inkjet_2250.ppd, hp_business_inkjet_2300.ppd, hp_color_LaserJet_5500.ppd,
hp_color_laserjet.ppd, hp_color_laserjet_4500.ppd, hp_color_laserjet_4550.ppd,
hp_color_laserjet_5m.ppd, hp_color_laserjet_8500.ppd, hp_color_laserjet_8550.ppd,
hp_laserjet_1200.ppd, hp_laserjet_2100_series.ppd, hp_laserjet_2200.ppd,
hp_laserjet_3020_3030.ppd, hp_laserjet_3200.ppd, hp_laserjet_3380.ppd, hp_laserjet_4.ppd,
hp_laserjet_4000_series.ppd, hp_laserjet_4050_series.ppd, hp_laserjet_4100_series.ppd,
hp_laserjet_4_plus.ppd, hp_laserjet_4ml.ppd, hp_laserjet_4mp.ppd, hp_laserjet_4si.ppd,
hp_laserjet_4v.ppd, hp_laserjet_5mp.ppd, hp_laserjet_5si.ppd, hp_laserjet_5si_mopier.ppd,
hp_laserjet_6mp.ppd, hp_laserjet_8000_series.ppd, hp_laserjet_8100_series.ppd,
hp_laserjet_8150_series.ppd, hp_laserjet_9000_series.ppd, hp_laserjet_9055_9065_mfp.ppd,
hp_mopier_240.ppd and hp_mopier_320.ppd.
- PPD files for non-PostScript printers
- Foomatic -
www.linux-foundation.org/en/OpenPrinting/Database/Foomatic - improves/simplifies integration between print drivers and CUPS
- The Foomatic print filter system
- foomatic-db-engine - the programs - (also brings in foomatic-filters and foomatic-db (the database))
- netcat
- GNOME-based Foomatic interface
- foomatic-gui - an alternative to using the command-line tools included with foomatic-db-engine
- netcat
- nmap
- smbclient
- pconf-detect
- The Foomatic print filter system
- printconf - auto setup for parallel and USB port printers with CUPS
- Ink, nozzle and head utilities
- escputil - display the ink levels, clean the nozzles, and align the heads of Epson inkjet printers. From the Gimp-Print / Gutenprint project.
- mtink - display the ink levels, clean the nozzles, and align the heads of Epson inkjet printers - an alternative to escputil
- hplip - these features are also included in HPLIP for HP printers
When printing to either a directly attached or remote printer
- cupsys-client - Common UNIX Printing System - client programs
- cupsys-pt - Tool for viewing/managing print jobs under CUPS
- cupsys-bsd - BSD printing tools, including
lpr(Mozilla prints usinglpr); it allows OpenOffice to automatically find your printers - gs-esp - ghostscript.com/awki - (the ESP version of Ghostscript is better maintained and suited to CUPS than AFPL's versions gs-afpl and gs-gpl)
- psfontmgr - PostScript font manager (part of Defoma, Debian Font Manager) ['recommended']
- Recommended but not essential:
- a2ps - 'Anything to PostScript' converter and pretty-printer; converts files into PostScript for printing or viewing. It's at least a useful utility for a well layed-out printout.
- enscript - Converts ASCII text to Postscript, HTML, RTF or Pretty-Print. It's at least a useful utility for a well layed-out printout
Package installation options
cupsys-bsd asks "Do you want to set up the BSD lpd compatibility server?" - yes
When printing to a remote printer
Put the hostname or IP address of the print server in the ServerName section of the
configuration file /etc/cups/client.conf. The printer should then be available to most applications to print to.
Install the Printer Driver, when the printer is directly attached
You need a PostScript printer driver (and filter, if the printer isn't a PostScript printer) for each printer, even if the printer isn't a PostScript printer. Go to the http://www.linux-foundation.org/en/OpenPrinting Printer Database at linuxprinting.org/printer_list.cgi and look up your particular printer and note which driver (and accompanying filter) it recommends using.
Install the recommended PostScript printer driver package (see previously), or if you're using an actual PostScript printer you may be getting the driver from the printer vendor.
Restart CUPS: /etc/init.d/cupsys restart
(this example is for an Epson Stylus C84, you need to change the name of the files to suit your printer)
Create the print queue, when the printer is directly attached
using GNOME
Use Applications → Desktop Preferences → System Tools → Printing → New Printer.
(GNOME will know where to look for the printer drivers and deal with them in their gzipped format so you don't need to uncompress them manually.).
To remove the print queue, there isn't a GNOME option to become administrator and do so (it's dimmed), so you could either run, or create a launcher for,
gksu gnome-cups-manager; or use the CUPS web interface.
using the CUPS web interface
- go to localhost:631/admin/ if the printer is attached to the computer you're using, or http://IP-address-of-computer:631/admin/ if attached to a remote computer
- choose Add Printer then enter a Name and choose Continue
(CUPS will know where to look for the printer drivers and deal with them in their gzipped format so you don't need to uncompress them manually.) - choose Device:
- if this is a directly attached printer, attached to the USB port, choose something like:
USB Printer #1 (<name of printer>)→ Continue - if this is a directly attached printer, attached to the parallel port, choose something like: Parallel Port #1
(<name of printer>) → Continue
(Note that the parallel port will only appear if it is enabled in the BIOS; to see if Linux has recognised the parallel port usedmesg|grep lp) - if this is a directly attached printer, attached to the USB or parallel port,
and you're using the HPLIP driver
(see instructions),
choose something like:
hp:/usb/<printer name>, <serial number>→ Continue - if this is a remote printer, available via CUPS, choose:
Internet Printing Protocol (ipp) - if this is a remote printer, attached directly to the network using a JetDirect card,
whether or not you're using HPLIP the driver, choose
Appsocket/HP JetDirect
- if this is a directly attached printer, attached to the USB port, choose something like:
- choose Device URI (you're only asked this for remote printers)
- if the remote printer is made available via CUPS, choose:
ipp://<hostname>/printers/<printer name> - if the remote printer is attached to the network using a JetDirect card, choose
socket://hostname:9100 - if the remote printer is attached to the network using a JetDirect card
and you're using the HPLIP driver
(see instructions)
- search for the printer URI:
hp-makeuri <printer IP address> - choose this URI, it will be of the form
hp:/net/HP_<model name>_<model number>?ip=<IP address>
- search for the printer URI:
- if the remote printer is made available via CUPS, choose:
- choose Make: EPSON → Continue
- choose Model (those that appear relates to those you've installed drivers for;
choose the one labeled '(recommended)')
- i.e. EPSON Stylus C84 - CUPS + Gimp-Print v4.2.7 (<language>) (despite appearances, for this choice to work you have to have previously installed the Gimp-Print driver) → Continue
- i.e. HP LaserJet 5 Foomatic/hpijs (recommended) (en)
Using the command-line
- Unlike other methods, you need to uncompress the PPD (PostScript Printer Description) file for your printer so that CUPS can find it, either
leaving it in the same directory or you can copy it elsewhere
- Gimp-print drivers are located in
/usr/share/cups/model/gimp-print/4.2/, so you should uncompress it with the commandgzip -d /usr/share/cups/model/gimp-print/4.2/escp2-c84.ppd.gz; then copy it to the printer drivers directory with the commandcp /usr/share/cups/model/gutenprint/<version-number>/<spoken-language>/escp2-c84.ppd /usr/share/cups/model - foomatic-filters-ppds are located in
/usr/share/cups/model/foomatic-ppds/<printer manufacturer>
- Gimp-print drivers are located in
- Create the queue, enable it and accept jobs (this example is for an Epson Stylus C84):
lpadmin -p epson_c84 -v <device-name> -m escp2-c84.ppd -E
where<device-name>is specific to how your device is attached, for example- for a USB attached printer on the 1st USB port:
usb:/dev/usb/lp0 - for a directly attached printer, attached to the 1st parallel port:
parallel:/dev/lp0
(Note that the parallel port will only be available if it is enabled in the BIOS; to see if Linux has recognised the parallel port usedmesg|grep lp) - if the printer is directly attached, or attached to the network using a JetDirect card
and you're using the HPLIP driver
- search for the printer URI:
hp-makeuri <printer IP address> - choose this URI, it will be of the form
hp:/net/HP_<model name>_<model number>?ip=<IP address>orhp:/usb/<printer name>, <serial number>
- search for the printer URI:
- for a remote CUPS printer:
ipp://<hostname>/printers/<printer name> - for a remote Windows or Samba printer:
smb://<hostname>/<printer name>orsmb://<workgroup>/<hostname>/<printer name>(if WINS is unavailable, add-h <IP address>(but the Samba HOWTO says this won't work); if you need to provide credentials, prepend withsmb://username:password@but note that it's available in various places in the clear)) - for a remote HP JetDirect:
socket://<IP address>:9100
- for a USB attached printer on the 1st USB port:
- Set as the default printer:
lpadmin -d epson_c84
If you need to remove the print queue, use lpadmin -x <printer>.
Configure the printer driver
Using the CUPS web interface
Configure Printer...
Using the command-line
lpoptions - display or set printer options and defaults. Use it to lock down a set of sensible defaults.
To see the options available for your setup, use the 'docs' option like this:
lp -d <printer> -o docs /etc/hosts; or use lpoptions -p <printer> -l.
Usually, you can also use the media=..., sides=..., and duplex CUPS options, if there are InputSlot, MediaType,
and Duplex options for your driver.
Some applications require specific printer configuration
OpenOffice
If you have installed the cupsys-bsd package, OpenOffice will automatically detect your printer queues.
Otherwise you have to add the printer queues manually with the oopadmin tool.
GIMP
GIMP needs you to set the specific printer by replacing 'PostScript Level 2' with the specific printer.
Choose 'Setup printer...'; pick the printer from the list; (the command line already has
the right queue name (i.e. lp -s -dprinter -oraw)); choose 'Save Settings'.
Inkscape
Use the command lp -P <printer>.
(Bug: the man page wrongly recommends a lower case -p.)
Tools for working with printer queues and print jobs
Using GNOME
Should be self explanatory; however, if you try to delete a print job the print dialog hangs. There is no GNOME option to become administrator and perform such acts,
so you could either run, or create a launcher for, gksu gnome-cups-manager; or use the CUPS web interface. Perhaps there is a group that printer
operators should be a member of?
Using the CUPS web interface
Should be self explanatory.
Using the command-line
(use -h IP-address with each of these to specify the IP address of the print server if using a remote printer)
- Print a file to the default printer:
lp file - Print a file to a specific printer:
lp -d <printer name> file - Configure CUPS printers and classes:
lpadmin-p- specify printer name-v- sets the device-uri attribute of the printer queue, e.g.:usb:/dev/usb/lp0- a USB device in the first USB portsmb://hostname/printer-name- a remote Windows or Samba queue- (There is documentation saying you configure a remote CUPS printer with
-v ipp://IP-address/printers/printer-namebut you can instead use the simpler-h IP-address)
-P- specifies a PostScript Printer Description file to use with the printer-d- sets default printer (doesn't seem to work for remote printers)-L- describe the printer's physical location (in your own words)-D- describe the printer (in your own words)-x- remove a print queue
- Show all CUPS status information, including system default printer, device name(s), what printer(s) are doing:
lpstat -t(specify a printer with-p printer(s); if no printers are specified then all are listed) - Show a long listing of printers, classes, or jobs:
lpstat -l(specify a printer with-p printer(s); if no printers are specified then all are listed) - Show the status of the default print queue:
lpq - Show the status of a specific print queue:
lpq -P <printer name> - Accept jobs sent to a destination:
accept <destination(s)> - Reject jobs sent to a destination:
reject <destination(s)> - Start printers and classes:
cupsenable <destination(s)>(use in place ofenable, CUPS' version is a double-booking on the name) - Stop printers and classes:
cupsdisable <destination(s)> - Cancel all print jobs from the specified destination:
cancel -a <destination> - Cancel a print job with the specified job number from the specified queue:
cancel <queuename>-<jobnumber> - kill any processes still using the printer device, when the job has been removeed from the queue but some remains printing:
fuser -k device
Inkjet printer maintenance
With Epson Stylus printers
Using the command-line
- escputil
- Check ink levels:
escputil -r <raw device name> --ink-level
To do this requires communicationg in a bi-directional way with the printer, which requires the Linux kernel to be configured for bi-directional printing with the CONFIG_PARPORT_1284 configuration option, which Debian kernels have (back with the 2.2 series kernel this was called CONFIG_PRINTER_READBACK). Presumably it also requires the BIOS to have bi-directional parallel port usage enabled. - Print a nozzle test pattern:
escputil --nozzle-check
Dirty or clogged nozzles will show as gaps in the pattern. If you see any gaps, you should run a head cleaning pass or two. - Clean the print head:
escputil --clean-head
This can also be performed from the printer front panel. - Align the print head:
escputil -r <raw device name> --align-head
CAUTION: Misuse of this option may result in poor print quality and/or damage to the printer. - Retrieve printer status:
escputil -r <raw device name> --status
- Check ink levels:
- The following options might need to be used with escputil
-P, --printer-name=<printer>- specify printer name-r, --raw-device=device- specify the name of the device to write to directly rather than going through a printer queue, used when an option requires read/write access to the raw printer device. Raw device names look like /dev/usb/lp0 for a USB attached printer on the first USB port, /dev/lp0 for a parallel cable attached printer on the first parallel port. You can find the raw device name usinglpstat -v-u, --new- the printer is a new printer (Stylus Color 740 or newer).
Troubleshooting
show available devices or drivers: lpinfo
restart CUPS: /etc/init.d/cupsys restart
CUPS configuration file: /etc/cups/cupsd.conf
CUPS error log: /var/log/cups/error_log.
(Change 'LogLevel warn' to 'LogLevel debug'
in /etc/cups/cupsd.conf, then restart CUPS, for more verbose messages in the error log.)
Configuration for Printing to Windows Printers
Check you can connect to the Windows system: smbclient -L computer-name -N.
If WINS isn't available you need to additionally specify the IP address with -I IP-address.
Verify that your installation of CUPS has the SMB backend by looking for a particular symbolic link:
ls -l /usr/lib/cups/backend/smb.
If this symbolic link doesn't exist, create it: ln -s /usr/bin/smbspool /usr/lib/cups/backend/smb
Further Information
CUPS Software Administrators Manual: local-host:631/documentation.html or www.cups.org/sam.html
CUPS Software Users Manual: www.cups.org/sum.html
www.linux-foundation.org/en/OpenPrinting includes forums for specific printer makes
CUPS Software Users Manual, localhost:631/documentation.html
Setting Up CUPS under Debian GNU/Linux: mumford1.dyndns.org/~bs7452/linuxhelp/cups.html
HP Linux Printing Project: hpinkjet.sourceforge.net/
Debian and Windows Shared Printing mini-HOWTO: www.faqs.org/docs/Linux-mini/Debian-and-Windows-Shared-Printing.html (this is a good introduction)
www.linuxmafia.com/faq/Debian/printing-setup.html
gimp-print.sourceforge.net/p_Documentation.php3
Scanning
Package(s)
- sane - www.sane-project.org/ - driver software for dealing with a directly attached scanner.
- xsane - graphical scanning software for local or remote scanners.
- libsane-extras - www.fifi.org/doc/libsane/README.Debian - some backends that are not yet included into the official SANE distribution
Configuration for locally attached scanners
If the scanner uses a USB interface and is recognised by the system when you plug it in, it will likely just work without any further configuration.
Identify information about the scanner and the system
There are a number of different methods used by the system to access the scanner, depending on the interface it's attached to and possibly Linux kernel version
- a USB attached scanner
- with a 2.4 series Linux kernel - devfs
- with a 2.6 series Linux kernel - libusb (libusb.sourceforge.net/)
- a SCSI attached scanner - devfs
- we don't cover parallel port attached scanners
There are a number of different means of locating the scanner, depending on interface and means of accessing the scanner
- USB
- devfs - one of the following
/dev/usb/scanner0/dev/usbscanner0(don't think Debian uses this format)
- libusb (the numbers may be different for your scanner)
- if the backend knows your scanner, then it is referenced by the method used and its location:
libusb:002:003 - if the backend doesn't know your scanner then the actual vendor and product IDs of your actual scanner are used:
usb 0x04b8 0x0103
- if the backend knows your scanner, then it is referenced by the method used and its location:
- devfs - one of the following
- SCSI - one of the following generic SCSI devices (the number may be different for your scanner)
/dev/sg4/dev/sge- It is worth creating a symlink for SCSI (not USB) scanners at
/dev/scanner
We need to identify the means being used to access the scanner, its location, its backend and whether it knows this scanner. Use the following, possibly whilst root
sane-find-scanner -v
Example outputs:found USB scanner (vendor=0x04b8 [EPSON], product=0x0103 [Perfection610 ]) at libusb:002:003
This tells us 'libusb' is being used to access the scanner at address 002:003; and that the backend knows this scanner because it's able to translate the vendor ID '0x04b8' into the vendor name 'EPSON' and the product ID '0x0103' into the product name 'Perfection610'
scanimage -L
Example outputs:device 'epson:libusb:002:003' is a Epson Perfection610 flatbed scanner
This additionally tells us the backend is called 'epson'.
- If you have a USB scanner,
lsusbwill also give you a synopsis of attached USB devices, their BUS and IDs, that you might find useful
Test the scanner
scanimage -d backend-name:location --format tiff > image.tif.
For example:
scanimagescanimage -d hp:/dev/sg3 --format tiff > image.tifscanimage -d epson:libusb:002:003 --format tiff > image.tif
Backend configuration
The backend is specific to the scanner manufacturer and sometimes the model.
The means of accessing the scanner must be defined in the backed configuration file,
/etc/sane.d/backend-name.conf.
The backend for most Hewlett Packard scanners is called 'hp'
(www.kirchgessner.net/sanehpfaq.html);
The backend for most Epson scanners is called 'epson'
(www.freecolormanagement.com/sane/).
For USB scanners, where the system uses libusb and where the backend knows the scanner, using just 'usb' in the backend configuration file should be enough to use the scanner; this instructs the backed to scan for all Epson scanners it knows.
For USB scanners, where the system uses libusb, if the backend doesn't know your scanner, for example if it's
a newer model, you'll have to put the
vendor and product IDs, as reported by sane-find-scanner -v, into the backend configuration file.
(The documentation in the configuration file says to use the syntax
'usb <product ID> <device ID>'; sane-find-scanner uses the term
'vendor' to mean the same as the configuration file's 'product'
and 'product' to mean the same as the configuration file's 'device'.
The configuration file also leaves out the leading zeros (i.e. usb 0x04b8 0x0103)
displayed by sane-find-scanner, but you can use either method.
For USB scanners, where the system uses devfs, you use the scanner's filesystem location in the backend configuration file.
For SCSI scanners, one of the following methods
- the name of the generic SCSI device that the scanner is connected to, as described earlier.
The backend configuration file already includes
/dev/scannerso if you've created this symlink it should just work - it may be enough to just use the likes of
scsi BACKEND-NAME. The backend configuration file already includes this, so the scanner may just work. Examples:scsi EPSONscsi HP
Permissions
You need to be a member of the group scanner.
If the system uses libusb and the backend knows your scanner, permissions should be setup correctly for you automatically. (see www.khk.net/sane/libusb.html and possibly jmccoy.sdf-us.org/linux/config/scanner.php for background on this).
Note: need to add here how to setup permissions if the system uses libusb and the backend doesn't know the scanner (see www.khk.net/sane/libusb.html).
If the system uses devfs, set permissions in the configuration file
/etc/devfs/conf.d/scanner (/etc/devfs/perms on some non-Debian systems),
in the following manner (your scanner's location may differ to these examples):
- for SCSI scanners
REGISTER ^scsi/host0/bus0/target4/lun0/generic PERMISSIONS root.scanner 0660REGISTER ^sg3 PERMISSIONS root.scanner 0660
- for USB scanners
REGISTER ^usb/scanner([0-9]+)$ PERMISSIONS root.scanner 0660
"When using a SCSI scanner, ensure that the access permission for the generic SCSI device is set appropriately. We recommend to add a group "scanner" to /etc/group which contains all users that should have access to the scanner. The permission of the device should then be set to allow group read and write access. For example, if the scanner is at generic SCSI device /dev/sg0, then the following two commands would set the permission correctly:"
$ chgrp scanner /dev/sg0
$ chmod 660 /dev/sg0
"When your system uses the device filesystem (devfs), you have to edit /etc/devfs/perms. There you should search the line REGISTER ^sg[^/]* PERMISSIONS root.root 0600 and add a new line (eg. for changing permissions of sg4) REGISTER ^sg4 PERMISSIONS root.scanner 0660"
$ chgrp scanner /dev/usb/scanner0
$ chmod 660 /dev/usb/scanner0
Configuration for sharing a scanner
See the scanning section in our 'Server Setup with Debian Sarge' document.
Configuration for connecting to a remote scanner
- make sure
/etc/sane.d/dll.conf(Unix) contains the line 'net' and that the scanner backend you require is listed. It's safer to remove or comment out all other references from this file. - set the IP address of the server where the scanner is connected, using either:
- a config file:
/etc/sane.d/net.conf - Or at the command-line each time you run xsane:
xsane net:ip-address-of-scanner-server(orxsane net:ip-address-of-scanner-server:device?)
net:ip-address-of-scanner-server:hp:/dev/sg3but this didn't work) - a config file:
Usage
Using the command-line
scanimage -d backend-name:location --format tiff > image.tif.
For example:
scanimagescanimage -d hp:/dev/sg3 --format tiff > image.tifscanimage -d epson:libusb:002:003 --format tiff > image.tif
Using GNOME
Applications → Graphics → XSane Image scanning program
Troubleshooting
Log files
/var/log/daemon.log/var/log/syslog/var/log/debug
SANE_DEBUG_NET=3D255 scanimage -L
www.fifi.org/doc/libsane/README.Debian
Further Information
SANE Frequently Asked Questions: www.xs4all.nl/~ljm/SANE-faq.html
For a detailed description of each backend's configuration file, see the relevant backend manual page, called 'sane-<backend-name>' (e.g., sane-epson and sane-hp).
/usr/share/doc/sane-utils/README.debian - information on permissions
various documents in /usr/share/doc/xsane/html/ or /usr/share/doc/xsane-common/html/
man pages: sane-usb, sane-scsi
penguin-breeder.org/sane/saned/
SANE Search Engine Server: sane.informatik.uni-freiburg.de/
XSane newsletter and mailing list: www.xsane.org/xsane-mailinglist.html
Digital Camera (with USB interface)
You need to be a member of the group 'camera'.
Package(s)
- gtkam - use this to look at what's on the camera and transfer it off
- gtkam-gimp - GIMP plug-in of gtkam
- gphoto2 - the gphoto2 program itself (as opposed to libgphoto2) is a command-line program for operating and transferring files between computer and camera. It's useful to have when troubleshooting.
Usage
command-line
gphoto2 --auto-detectgphoto2 --capture-imagegphoto2 --get-all-filesgphoto2 --delete-files RANGEgphoto2 --delete-all-filesgphoto2 --upload-file FILENAME
Further Information
The Waikato Linux Users Group, Digital Camera Setup: www.wlug.org.nz/DigitalCameraSetup
gphoto2 supported cameras: www.gphoto.org/proj/libgphoto2/support.php
'Digital Camera Support for UNIX, Linux and BSD' by Hubert Figuière: www.teaser.fr/~hfiguiere/linux/digicam.html
'SB Digital Camera HOWTO' by Dave Kelly: www.faqs.org/docs/Linux-HOWTO/USB-Digital-Camera-HOWTO.html
Digital Video Camera (with IEEE1394 / FireWire / i.Link interface)
See also the 'video editing' section.
Package(s)
- kino - www.kinodv.org/ - DV capture and editing. "It features excellent integration with IEEE-1394 for capture, VTR control, and recording back to the camera. It captures video to disk in Raw DV and AVI format, in both type-1 DV and type-2 DV (separate audio stream) encodings. You can load multiple video clips, cut and paste portions of video/audio, and save it to an edit decision list... Also, Kino can export the composite movie in a number of formats: DV over IEEE 1394, Raw DV, DV AVI, still frames, WAV, MP3, Ogg Vorbis, MPEG-1, MPEG-2, and MPEG-4. Currently, Kino does not support other video file formats or encodings. It does not support multiple layers or tracks of video and audio. We plan to implement most of these features, but first we chose to focus on the basics of IEEE-1394, video, audio, and file input and output. We place a lot of emphasis on quality, stability, performance, and workflow.". [requires additional repository: Debian Multimedia]
- dvgrab - www.kinodv.org/ - "grab digital video data via IEEE1394 links. dvgrab receives audio and video data from a digital camcorder via an IEEE1394 (widely known as FireWire) link and stores them into one of several file formats. It features autosplit of long video sequences, and supports saving the data as raw frames, AVI type 1, AVI type 2, Quicktime DV, or a series of JPEG stills."
- coriander: www.tele.ucl.ac.be/PEOPLE/DOUXCHAMPS/ieee1394/coriander/. "Coriander is the Linux graphical user interface (GUI) for controlling a Digital Camera through the IEEE1394 bus (aka FireWire, or iLink). Coriander is full featured and besides changing the parameters of the camera it will also let you record video, send images to an FTP site, convert the video to a V4L stream,... A live display is of course provided too. Best of all, Coriander will work with any camera that is compatible with the IIDC specifications (also known as DCAM specs). This includes most 1394 webcams and a majority of industrial or scientific cameras too. However, any cameras in which you can insert a video tape (camcorders,...) will NOT work with coriander. These cameras record compressed DV video on the tape, while the IIDC specify uncompressed, on-the-fly video flows. If you wish to use a camcorder you should have a look at Kino.".
Further Information
IEEE 1394 for Linux: www.linux1394.org/
The IEEE1394 Digital Camera List: www.tele.ucl.ac.be/PEOPLE/DOUXCHAMPS/ieee1394/cameras/
Dan Dennedy's blog, Kino developer: www.dennedy.org/.
Video Editing
Package(s)
command-line
- transcode - www.transcoding.org - a suite of command line utilities for transcoding video and audio codecs, and for converting beween different container formats. [requires additional repository: Debian Multimedia]
GNOME
- avidemux - fixounet.free.fr/avidemux/ - non-linear video editing [requires additional repository: Debian Multimedia]
- Kino: kino.schirmacher.de/ - DV capture and non-linear editing
CD writing - writing data files to CD
Package(s)
- command-line packages
- cdrecord - part of the 'cdrtools' suite (cdrecord.berlios.de/old/private/cdrecord.html)
- mkisofs - part of the 'cdrtools' suite (cdrecord.berlios.de/old/private/cdrecord.html)
- cdrdao - cdrdao.sourceforge.net/
- cdrtools-doc - documentation for the cdrtools package-suite
- GUI packages
- GNOME incorporates CD and DVD writing features
- possibly xcdroast or k3b
Configuration
cdrdao at least, and possibly other software, appreciates a symbolic link called /dev/cdrecorder pointed to the CD/DVD device. Create it, as root, using this command:
ln -s /dev/hdc /dev/cdrecorder (replace hdc with the device name of your drive)
(Note: this symbolic link gets lost).
Usage
- command-line procedures
- Create an ISO
(to write multiple files, you first have to make an ISO image of the files you want to write)- This works for subsequent reading on Unix operating systems, but with Windows operating systems has '-'
translated and file and directory names in uppercase:
mkisofs -l -r -o filename.iso -V "volume-name" -A "summary" /directory/where/files/located - adding
-Jto the above will allow it to additionally work with Windows operating systems:
mkisofs -l -r -o filename.iso -J -V "volume-name" -A "summary" /directory/where/files/located - This will work with Unix operating systems and with Windows operating systems and particularly a lot of different
types of files will display as expected with Windows:
mkisofs -o filename.iso -J -D -L -l -r -no-iso-translate -allow-lowercase -allow-multidot -V "volume-name" -A "summary" /directory/where/files/located - These examples allow mkisofs to use the default character set for the system as defined by its locale.
If you want a different character set use the '
-input-charset' option.
- This works for subsequent reading on Unix operating systems, but with Windows operating systems has '-'
translated and file and directory names in uppercase:
- Find the device reference of your CD writer
(If you create a symbolic link from your device's device name to/dev/cdrecorderyou don't need to specify the device reference each time.)- Scan the bus and display the bus and target:
cdrdao scanbus(if this doesn't work, trycdrecord -scanbus). This will indicate the transport name, which is usually ATA for ATAPI (must be uppercase), or sg for SCSI. You can get a list of the different transport names and layers withcdrecord -dev=help. This will also indicate the device reference, for example 1,0,0.
When using cdrdao, you specify this information with, for example,--device ATA:1,0,0
When using cdrecord, you specify this information with, for example,dev=ATA:1,0,0
- Scan the bus and display the bus and target:
- Blank a rewritable CD
- Display help on blanking options:
cdrdao blank -h - Blank the disc, for example using any of the following:
cdrdao blank --device ATA:1,0,0 --blank-mode fullcdrdao blank --device ATA:1,0,0 --blank-mode minimalcdrecord dev=ATA:1,0,0 blank=fast
- Display help on blanking options:
- Write data files to CD (on an ATA CD writer)
cdrecord -v dev=ATA:1,0,0 files- If you write an ISO it will automatically be expanded
- (if you have more than 99 files you seem to hit the 99 track limit that can be written to CD, despite using '-dao' (which I don't understand). This can be worked around by first creating an ISO)
- Write audio files to CD:
cdrecord -v dev=ATA:1,0,0 -dao -useinfo(?) file.wav(by specifying .wav files, cdrecord defaults to using its '-audio' option)
- Create an ISO
- GNOME procedures
- for writing a .ISO file, you can right-click the file and choose to write it to disc
- for a range of files, paste them into Nautilus' CD writing location, which you can get to using any of the following
- using the File Browser, Nautilus, go to
burn:/// - from various places, by choosing 'Places' → 'CD Creator'
- using the File Browser, Nautilus, by choosing 'Go' → 'CD Creator'
- using the File Browser, Nautilus, go to
Further Information
CD-Writing HOWTO by Winfried Trümper: www.faqs.org/docs/Linux-HOWTO/CD-Writing-HOWTO.html
mkisofs manual page: fy.chalmers.se/~appro/linux/DVD+RW/mkisofs.8.html
Linux kernel 2.6.8.1 cdrecord problem: kerneltrap.org/node/3644
DVD writing - writing data files to DVD
Package(s)
- command-line packages
- dvd+rw-tools - fy.chalmers.se/%7Eappro/linux/DVD+RW/tools/?M=D - a format utility for DVD+-RW media, a frontend for mkisofs for burning DVD±RW/R (growisofs (fy.chalmers.se/~appro/linux/DVD+RW/)) and some associated tools
- GUI packages
- GNOME incorporates CD and DVD writing features
- possibly xcdroast or k3b
Usage - command-line
For most usage of growisofs, follow the instructions as per mkisofs. However the differences from the mkisofs command line are:
- you may not use -o option
- you don't have to specify -C option, growisofs will construct one for you
- there is internal -Z option for initial session recording, this substitutes for originally suggested 'mkisofs | dd of=/dev/scd0'
To master and burn an ISO9660 volume with Joliet and Rock-Ridge (Unix permissions) extensions on a DVD:
growisofs -Z <device> -R -J <files>
To master and burn an ISO9660 volume with Joliet and without Rock-Ridge extensions on a DVD:
growisofs -Z <device> -J <files>
To append more data to same DVD:
growisofs -M <device> -R -J <more files>
Make sure to use the same options for both inital burning and following sessions.
To use growisofs to write a pre-mastered ISO-image to a DVD:
growisofs -dvd-compat -Z <device>=image.iso
To nullify the media, for security reasons, rather than merely blanking it:
growisofs -Z <device>=/dev/zero
Further Information
growisofs instructions: fy.chalmers.se/~appro/linux/DVD+RW/
dvdrtools-users: www.mail-archive.com/dvdrtools-users@nongnu.org/index.html
/usr/share/doc/cdrecord/README.DVD.Debian
Accessing CD and DVD media
(with pmount installed, do we even need to do this?)
You need the device itself (i.e. /dev/hdc, but this may differ on your system) to be a member of the 'cdrom' group
(not also its generic device name and mount points) and you to also be a member of the cdrom group, to be able to access it.
CD audio - Playing, digital audio extraction (ripping), copying and encoding
Package(s)
- command-line packages
- cdda2wav - www.cdda2wav.de/
- cdparanoia - www.xiph.org/paranoia/ - on its own it doesn't provide the track length info required for disc to disc copying, but I use cdparanoia from within cdda2wav which does provide such information
- vorbis-tools
- ? abcde or jack
- cdrecord
- GNOME packages
- sound-juicer - www.burtonini.com/blog/computers/sound-juicer - play and rip CD-Audio discs. Perhaps gnome-cd could be swapped for this and the setting in Removable Drives and Media Preferences changed)
- rhythmbox - www.rhythmbox.org/ - music management
Usage
To read/play audio CDs, software CD players access the device directly, rather than mounting it, so as long as you have access to the device (see Accessing CD and DVD media) you should be able to play CDs.
Copying an audio CD to WAV files on hard disk then to another audio CD
- command-line procedures
- worthwhile cdda2wav options
dev=- specify the CD device to use-t track+endtrackor--track- selects the start track and optionally the end track.--duration- use in conjunction with -t. Sets recording time in seconds or frames. Frames (sectors) are indicated by a 'f' suffix (like 75f for 75 sectors). 0 sets the time for whole track. (don't know the syntax for setting 0)-vall- prints all information about the CD--alltracks- read a whole audio CD into separate files for each track-S speed- allows to switch the cdrom drive to a certain level of speed in order to reduce read errors--cddb=0- tries to retrieve performer, album-, and track titles from a cddbp server; interactive mode, where the user chooses one of the entries if there is more than one option--info-only- does not write audio data file(s), only .inf files--no-infofile- does not write an info file and a cddb file-paranoia- use the paranoia library (which provides scratch and dropout analysis) instead of cdda2wav's routines for reading
- example usage
- copying a disc to hard disk then writing to CD
- create and move into a dedicated directory for this CD
- generate album and track names, and track times:
cdda2wav dev=ATA:1,0,0 -vall --cddb=0 --info-only - read the whole CD:
cdda2wav dev=ATA:1,0,0 --alltracks -no-infofile -paranoia - write a copy to a blank disc
(at 4X, using buffer underrun protection, using the .inf files to set time between tracks,
writing album and track names using CD-TEXT):
cdrecord -v speed=4 driveropts=burnfree dev=ATA:1,0,0 -dao -audio -useinfo -text *.wav
(speed=0is supposed to find the slowest speed for drive and media but this didn't work with Taiyo Yuden CD-R media)
- disc to disc copying (untested) - "To copy an audio CD from a pipe (without intermediate files)
This will get all information (including track size info) from the *.inf files and then read the audio data from stdin.
(If you like to write from stdin, make sure that cdrecord is called with a large enough FIFO size (e.g.fs=128m), reduce the write speed to a value below the read speed of the source drive (e.g.speed=12), and switch the burn-free option for the recording drive on by addingdriveropts=burnfree)."-
cdda2wav dev=1,0 -vall cddb=0 --info-only cdda2wav dev=1,0 -no-infofile --all-tracks -Oraw - | \
cdrecord dev=2,0 -v -dao -audio -useinfo -text *.inf
-
- copying a disc to hard disk then writing to CD
- worthwhile cdda2wav options
- GNOME procedures
- Sound Juicer (though beware it doesn't extract audio and retain track gap lengths for subsequent faithful reproduction of audio CDs)
Further Information
mlug.missouri.edu/~rjudd/projects/cdburning.html
howtos.linux.com/howtos/CD-Writing-HOWTO-3.shtml
www.polarhome.com:793/manual/cdda2wav-2.0/HOWTOUSE
www.hgriggs.com/cdcopying.html
www.linuxquestions.org/questions/showthread.php?s=&forumid=2&threadid=161718
lists.debian.org/debian-user/2004/02/msg02844.html
Copying DVD Movies - DVD disc to hard disk to DVD disc
How you copy a DVD movie will likely depend on what type of disc it is. Mostly they will be either single sided, single layer 'DVD-5' (roughly 5GB capacity), or single sided, dual layer 'DVD-9' (roughly 9GB capacity). For example a complete, uncompressed, copy of a DVD-9 disc will require a dual layer DVD writer and dual layer media. If you don't have these you will need to leave some parts out of the copy and/or compress the movie.
Package(s)
Command-line
- either:
- dvdbackup - dvd-create.sourceforge.net/ - copy video files from DVD;
- or:
- vobcopy - vobcopy.org/) - copy video files from DVD (this hasn't been updated by the Debian maintainer for a while)
- mkisofs
- dvd+rw-tools - a format utility for DVD+-RW media, a frontend for mkisofs for burning DVD+-RW/R (growisofs (fy.chalmers.se/~appro/linux/DVD+RW/)) and some associated tools; or dvdrtools (includes dvdrecord) - writes data to DVD
- libdvdcss2 - DVD decryption (part of the VideoLAN project). You need this to be able to play / read DVDs that are encrypted with CSS copy protection in any software [requires additional repository: Debian Multimedia]
Procedure
To extract a whole movie DVD:
- Extract a whole DVD to a
<title>sub-directory of the current directory:- Using dvdbackup:
dvdbackup -M -i /dev/dvd -o . -n <title>
(if the DVD title is recognised by dvdbackup you won't need-n <title>)
- Using vobcopy:
- either:
vobcopy /media/cdrom0 --mirror
vobcopy --mirror
- either:
- Using dvdbackup:
- Create an ISO image from extracted DVD files and write to DVD, using either:
- A single procedure (however, in practice this didn't create a properly playable movie DVD):
- Create an ISO image from extracted DVD files in a
<title>sub-directory of the current directory, and write them to DVD:
growisofs -dvd-compat -Z /dev/dvd <title>
(reference: www.brandonhutchinson.com/Burning_Video_DVDs_in_Linux.html)
- Create an ISO image from extracted DVD files in a
- Or a two stage procedure:
- Create an ISO image from extracted DVD files in a
<title>sub-directory of the current directory:
mkisofs -dvd-video -udf <title> > filename.iso - Write a DVD ISO image to DVD:
growisofs -dvd-compat -Z /dev/dvd=filename.iso
- Create an ISO image from extracted DVD files in a
- A single procedure (however, in practice this didn't create a properly playable movie DVD):
To extract single movie files (chapters) from a movie DVD:
- (An alternative to dvdbackup) extract a single file from DVD to the current directory:
vobcopy /media/cdrom0 --large-file --title-number 1 -t .
Note: If you insert a blank DVD it'll be mounted, because that's what's done with blank discs by default; if you then record a movie to that disc, you won't be able to play it in the usual way of playing DVDs, because DVD movies aren't mounted when played; in this situation eject and re-insert the disc for it to be treated in the way DVD movies are supposed to be.
References
vobcopy instructions: lpn.rnbhq.org/projects/c/c.shtml
(yet to be fully checked out) 'DVD ripping and transcoding with Linux': www.bunkus.org/dvdripping4linux/
(yet to be fully checked out) 'DebianLinux.Net :: Multimedia Projects': debianlinux.net/multimedia.html#video
ffmpeg (ffmpeg.sourceforge.net/index.php) can do 2-pass VBR DVD-friendly MPEG2 streams.
ZIP drives and disks
Package(s)
- dosfstools - utilities for working with MS-DOS FAT filesystems: mkdosfs / mkfs.dos and dosfsck / fsck.msdos
- jazip - linux.maruhn.com/sec/jazip.html - graphical program to manage Zip and/or Jaz drives
Configuration
External USB drives and some configurations of internel ATAPI drives are seen by the system as SCSI drives; other configurations of internel ATAPI drives are seen by the system as ATAPI drives.
- partition reference examples:
/dev/sda4- Windows format of partition, on a system where the drive is seen by the system as a SCSI drive, first disk drive/dev/hdd4- Windows format of partitions, on a system where the drive is seen by the system as an ATAPI drive, secondary slavedisk drive
- file system location examples:
/media/zip- create this directory for mounting disks at/dev/zip- a shortcut that it might be worth you creating
/etc/fstabexample (replace /partition/reference with that used on your system):/partition/reference /media/zip vfat noauto,rw,user,sync,umask=000, 0 0
- corresponding directory permissions to /etc/fstab:
chmod 660 /media/zip
As this is removable media, unless it is important for you to retain permissions on the zip disk, I recommend formatting it with Windows FAT16 file system so that it is readable on both Unix and Windows systems. This won't save file permissions on the disk - all files will be readable by everyone.
The file system on the zip disk for FAT16 formatted disks has to be in primary partition 4.
You could create a system for dealing with both Windows and Linux formatted zip disks by creating an additional mount point for
the Linux formatted disks, an additional /etc/fstab entry for it, and with the Linux partition in partition 1.
Users need to be a member of the group floppy, which Debian's initial user is at least.
You can make the eject command easier to use (such that you only have to type eject zip
to eject a disk) by creating a shortcut like this, as root, using your particular partition reference: ln -s /dev/hdd4 /dev/zip.
The average user does not have permission to use eject. To allow them to eject disks,
change the eject program's permission via setuid, whilst root: chmod a+s /usr/bin/eject.
Usage
When partitioning a disk, it needs to be primary partition number 4 and of filesystem type FAT16.
format a disk:
- format and check for bad blocks:
mkdosfs -c /partition/reference - format and don't check for bad blocks:
mkdosfs /partition/reference
mount and unmount / eject a disk
- GNOME
- an icon for a zip disk should appear on the desktop after you've inserted it in the drive.
- You may additionally find it useful to add the Disk Mounter applet to the GNOME Panel, but it's not necessary (right-click on GNOME Panel, choose 'Add to Panel...'; in its preferences, change the drive
from
/media/floppyto/media/zip). To eject, right-click on the zip disk desktop shortcut, choose 'eject'; or, if you're using the Disk Mounter applet described above, right-click on it and choose 'eject'
Gotchas
"I have a ATAPI Zip Drive (recognized as ATAPI Floppy) so to make it work with Debian
and kernel 2.4.3 I had to switch my BIOS setting from "Autodetect" to "None"
(just the Zip channel of course), and mount it using mount -t vfat /dev/hdb"
http://www.faqs.org/docs/lnag/lnag_drives.html#Get_Zip_Drive_Recongized
http://www.linux-sxs.org/hardware/zip1.html
The Windows LDM Problem - "A Zip disk formatted with Windows 2000 or Windows XP will be partitioned
using Microsoft's new Logical Disk Manager (LDM) which is completely different from the standard DOS
partitions we are all used to."
"Because this is a new and undocumented partitioning scheme, it is not supported by other operating
systems (including other versions of Windows). There is a Linux kernel
patch which appears to solve this problem."
Further Information
Zip Drive Mini-HOWTO by Kyle Dansie: www.faqs.org/docs/Linux-mini/ZIP-Drive.html
2c tip: Running an ATAPI Zip Drive: www.linuxgazette.com/issue28/lg_tips28.html#atapi
Working with Windows filesystems
Windows uses FAT32 or NTFS filesystems. Linux FAT32 support is complete but NTFS support is patchy.
The only means of accessing NTFS filesystems is using the Linux kernel NTFS driver provided by the Linux-NTFS project and included in the Debian Linux kernel. The version included is the 'old' version, 1.?.
Package(s)
- ntfsprogs - linux-ntfs.org/ - utilities for working with NTFS filesystems, using the Linux kernel NTFS driver: ntfsfix, mkntfs, ntfsinfo, ntfslabel, ntfsls, ntfsresize (see further info), ntfsundelete, ntfscluster, ntfscat, ntfscp, ntfsclone.
- libntfs-gnomevfs - "the NTFS GNOME virtual filesystem (VFS) module which allows GNOME VFS clients to seamlessly use the NTFS library"
- dosfstools - utilities for working with FAT filesystems: mkdosfs / mkfs.dos and dosfsck / fsck.msdos
Usage
Create a mount point for each Windows partition (i.e. # mkdir /media/windows-c)
Add a line to /etc/fstab such as from the following examples:
Using the kernel FAT32 driver (vfat), with liberal permissions (umask), read/write access (rw), mounted automatically on boot for everyone (auto),
non-root users unable to mount it (nouser):
/dev/hda1 /media/windows-c vfat umask=000,auto,nouser,async,rw 1 0
Using the kernel FAT32 driver (vfat), with liberal permissions (umask), read/write access (rw), not automatically mounted on boot (noauto),
non-root users able to mount it (user):
/dev/hda1 /media/windows-c vfat umask=000,noauto,user,async,rw 1 0
Using the kernel NTFS driver (ntfs), with liberal permissions (umask), read only access (ro), mounted automatically on boot for everyone (auto),
non-root users unable to mount it (nouser):
/dev/hda1 /media/windows-c ntfs umask=000,auto,nouser,async,ro 1 0
Using the kernel NTFS driver (ntfs), with liberal permissions (umask), read only access (ro), not automatically mounted on boot (noauto),
non-root users able to mount it (user):
/dev/hda1 /media/windows-c ntfs umask=000,noauto,user,async,ro 1 0
Further Information
Linux-NTFS - Kernel Driver and Userspace Utils Status: wiki.linux-ntfs.org/doku.php?id=status.
Linux-NTFS kernel driver Roadmap: wiki.linux-ntfs.org/doku.php?id=driverroadmap.
Linux-NTFS - Why does writing support take so long?: wiki.linux-ntfs.org/doku.php?id=whyisittakingsolong.
The Ntfsresize Frequently Asked Questions: mlf.linux.rulez.org/mlf/ezaz/ntfsresize.html.
Running Windows Programs
Package(s)
- wine - www.winehq.org/ - run Windows programs on Unix.
- wine-doc
- winesetuptk
- msttcorefonts - installer for Microsoft TrueType core fonts, which it downloads from the Internet.
Includes Andale Mono, Arial Black, Arial, Comic Sans MS, Courier New, Georgia, Impact, Times New Roman,
Trebuchet, Verdana and Webdings.
Recommended for wine because "we should be able to eliminate a number of font related bugs by shipping with these fonts. Apps like Picasa [1] appear to ask for a specific font name, others even reference the font file directly.". [contrib]
Usage
Some applications will run without configuring Wine at all, others require some minor configuration.
- Run a program, using any of these
wine <application>- Right click on a Windows executable file (they predominantly have a .exe, .com or .msi extension) and choose 'Open with "WINE"'
- Uninstall a program:
$ uninstaller - Wine Windows Explorer:
winefile
Configuration
winesetuptk
With default settings, C:\ will be ~/.wine/fake_windows.
Further Information
Wine User Guide: www.winehq.com/site/docs/wineusr-guide/index
Sharing files and printers with networked machines using Windows or Samba
Package(s)
- To use files/printers shared from another machine using Windows or Samba
- smbclient - some client components of the Samba suite
for accessing Windows or Samba servers.
(TODO: is this the only package required for other applications and services to access Windows servers, such as Nautilus and CUPS?) - smbfs - allows smbclient to mount shares exported from Windows or a Samba server
- smbclient - some client components of the Samba suite
for accessing Windows or Samba servers.
- To share a machine's files/printers for other machines using Windows or Samba
- samba - share files and printers to Windows machines, using the SMB (AKA NetBIOS) protocol. Currently included: samba, samba-common, smbclient, swat, samba-doc, smbfs, libpam-smbpass, libsmbclient, libsmbclient-dev, winbind and python2.3-samba.
- samba-doc - Samba documentation (20MB)
Mounting shares from a Samba server
Using the command-line
To query the network for Samba servers, use findsmb.
For each server found, it displays its IP address, NetBIOS name, workgroup name, operating system, and SMB server version.
To connect to a Samba share, you can either
- Connect directly:
smbclient //<hostname>/<sharename> -U <username>
If you see the smb:\> prompt, you have successfully logged in. Once you are logged in, type help for a list of commands. If you wish to browse the contents of your home directory, replace sharename with your username. If the -U switch is not used, the username of the current user is passed to the Samba server. - Mount a Samba share to a directory so the files in the directory can be treated as if they are part of the local file system:
mount -t smbfs -o username=<username> //<server name or IP address>/<share name> /<mount point>
(create the mount point directory if it doesn't already exist and give it suitable permissions)
Using GNOME
When you installed Samba components you were asked for the workgroup name, if the name you
entered is not still correct for the current network then change the workgroup setting
in /etc/samba/smb.conf.
You can either
- Browse using Places → Network Servers
- Connect directly using Places → Connect to Server...
- Service type: Windows share
- Server:
- The rest is optional, if you don#39;t enter it you'll be prompted
Mounting shared disk space on a permanent basis for mutiple users across multiple computers
This is for a share that will be automatically mounted at startup, available to everyone in a specified group.
Root mounts it but files take permissions of whomever created them.
The mount is defined once, in /etc/fstab (alternatively, instead of using fstab, you could mount the share individually when logging in).
(for some reason this doesn't appear in Disk Mounter or GNOME's file picker, where as it does under some circumstances).
This is what to do on the workstation, for what to do on the server see Server Setup with Debian Sarge.
- Make a group on each workstation the same as the group you're using on the server:
groupadd organisation - Add each user to that group
adduser username organisation - Create a mount point
mkdir /shared - Make the mount point a member of that same group
chgrp organisation /shared - add the following to
/etc/fstab:
//server/shared /shared cifs credentials=/root/.smbpasswd
(Mount ascifsrather thansmbfsso as to support UNIX filesystem attributes; "if the version of samba on both systems supports unix extentions, and your unix ID's match on both systems, you can mount as root and the ownership will pass through"; If you've mounted withsmbfsthen you needuid=username,gid=usernamebut if you've mounted withcifsyou don't) - Create the credentials file
/root/.smbpasswdas referenced in/etc/fstab, with the following contents, adding your own root password
username=root
password= - Make the credentials file readable and writable only by root:
chmod 600 /root/.smbpasswd
Further Information
mount.cifs man page: www.samba.org/samba/docs/man/manpages-3/mount.cifs.8.html
The Samba project: www.samba.org/. See 'The Official Samba-3 HOWTO and Reference Guide' and the 'Docs and Books' section.
Accessing an LDAP server
Authenticate with a central server rather than using disparate local tools such as passwd and login; a replacement for NIS.
Package(s)
- ldap-utils
- libnss-ldap - shared library code necessary for the name service to use LDAP
- libpam-ldap - PAM module to allow the PAM subsystem to use LDAP for passwords
- nscd - name server caching daemon, caches LDAP data locally to save so many calls to the LDAP server
Configuration
/etc/nsswitch.conf/etc/libnss-ldap.conf- setup libnss-ldap /libnss-ldap.confwithdpkg-reconfigure libnss-ldap/etc/pam_ldap.conf
See these worthwhile guides for configuration instructions:
- 'Linux LDAP authentication' by "American" Dave Kline, is a Debian-specific tutorial covering both LDAP client and server setup: enterprise.linux.com/article.pl?sid=05/09/15/1930256&=129
- 'LDAP Authentication for Linux' by metaconsultancy, covers LDAP client setup: www.metaconsultancy.com/whitepapers/ldap-linux.htm (Debian-specific; simply written, makes it easy to follow)
Accessing remote files from an NFS server
Package(s)
- nfs-common
- portmap
Usage
Either:
- Mount manually from the command-line, for example:
mount server:/shared /media/shared - Or, mount automatically at system startup by adding the following to
/etc/fstab:
server:/usr/local/pub /pub nfs rsize=8192,wsize=8192,timeo=14,intr
Several options are used here:rsize- improves throughput by increasing the number of bytes NFS uses when reading files.wzise- improves throughput by increasing the number of bytes NFS uses when writing files.timeo- increases performance on a busy network or slow server by increasing the time before sending the first retransmission.intr- if an NFS file operation has a major timeout and it is hard mounted, this will allow file operations to be interrupted.
Further Information
NFS HOWTO: www.faqs.org/docs/Linux-HOWTO/NFS-HOWTO.html
The Network File System: tldp.org/LDP/nag/node140.html
man nfs
Laptop Computers
All Laptops
Package(s)
See also packages that relate to laptops in the X Windows: XFree86 section.
- laptop-mode-tools - userland scripts to control 'laptop mode'
- if your laptop has APM: ? apmd
- if your laptop doesn't have APM:
- ? acpi
- ? acpid (Advanced Configuration and Power Interface event daemon)
IBM ThinkPad
Package(s)
- thinkpad-base
- tpctl - tpctl.sourceforge.net/ - IBM ThinkPad hardware configuration tools
- thinkpad-source
- configure-thinkpad - tpctl.sourceforge.net/configure-thinkpad.html - a GNOME ThinkPad configuration tool (NOT AVAILABLE IN DEBIAN)
- if your ThinkPad has APM: apmd
- if your ThinkPad doesn't have APM:
- acpi
- acpid (Advanced Configuration and Power Interface event daemon) (when starting, the system hangs on an R40e - may need later version from ACPI project, included with kernel 2.6.10)
- ibm-acpi ("extends the ACPI subsystem of IBM Thinkpads running Linux to support new features that wouldn't otherwise be available", included in the mainline Linux kernel as of version 2.6.10; .deb file available at debian.isg.ee.ethz.ch/public/pool-sarge/ibm-acpi/ but when install says "Setting up ibm-acpi (0.8-2) ... | FATAL: Module ibm_acpi not found. | invoke-rc.d: initscript ibm-acpi, action "start" failed.", perhaps this is because of not recompiling with CONFIG_ACPI_IBM (Power Management → ACPI → IBM ThinkPad Laptop Extras; an additional ACPI patch from acpi.sourceforge.net/ may also need to be compiled in with your kernel)
Usage
thinkpad-source and tpctl
Thinkpad-source is required for tpctl to work, for access to APM (power management) features (if the ThinkPad has APM), but also other features. Thinkpad-source needs to be compiled; follow these steps:
- see the instructions in
/usr/share/doc/thinkpad-source/README.Debian(the APM references are presumably only important if your ThinkPad has APM, some don't) - (some additional instructions to cover holes in the above document need to be inserted here)
References
- ibm-acpi - IBM ThinkPad ACPI Extras Driver: ibm-acpi.sourceforge.net/
- thinkwiki's 'How to make ACPI work': www.thinkwiki.org/How_to_make_ACPI_work
- 'Thinkpad R40e and Debian GNU/Linux': jriddell.org/thinkpad-r40e.html
- 'Linux on Thinkpad R40e': pc.freeshell.org/tp/
- 'Debian on an IBM Thinkpad R40' by thomas marquart: www.thomasmarquart.net/?q=node/view/17&PHPSESSID=be8bbb365f4e67cc37637573307f1239
- ThinkWiki: www.thinkwiki.org/ThinkWiki
- Radeon Backlight: fdd.com/software/radeon/
- modem drivers available from www.smlink.com/main/item.php?ln=en&item_id=84&;main_id=32
Further Information
Linux On Laptops: linux-laptop.net/
TuxMobil: www.tuxmobil.org/
debian-laptop mailing list: lists.debian.org/debian-laptop/
Laptop Mode Tools: www.xs4all.nl/~bsamwel/laptop_mode/tools/index.html
www.teleport.com/~acpi/acpihtml/home.htm, phobos.fs.tum.de/acpi, "horribly horribly broken, for suspend software check sourceforge.net/projects/swsusp/, or patches at acpi.sf.netl.org, or "run this arbitrary code in ring 0""
Connecting and synchronising PDA's in general
Package(s)
plug-ins
- libmultisync-plugin-all - Complete MultiSync suite, all the MultiSync plugins currently available in Debian:
- libmultisync-plugin-backup - Backup plug for MultiSync
- libmultisync-plugin-evolution - Ximian Evolution plugin for MultiSync
- libmultisync-plugin-irmc - IrMc Mobile plugin for MultiSync
- libmultisync-plugin-irmc-bluetooth - Adds Bluetooth support to the IrMC plugin
- libmultisync-plugin-opie - Opie plugin for MultiSync
- libmultisync-plugin-palm - Palm plugin for MultiSync
- libmultisync-plugin-syncml - SyncML plugin for MultiSync
- synce-multisync-plugin - a plugin for multisync to sync with your WindowsCE devices, using synce.
GNOME
- multisync - www.multisync.org/ - A program to synchronize PIM data
Connecting and synchronising a PDA running Windows CE
This describes connecting and synchronising using USB, not serial or infrared.
Package(s)
Framework
- librra0 - Library to deal with synchronisation with WinCE devices. rra is part of the SynCE project (http://synce.sourceforge.net/). It provides the necessary low level magic to synchronise intelligently with WinCE devices, allowing you to tell what's been created/changed/deleted since the last time the device was contacted. It can convert the internal WinCE formats to standards such as vCard, vEvent or vTodo. This package contains the librra shared library.
Command-line
- librra0-tools - Library to deal with synchronisation with WinCE devices (tools)
Provides
synce-matchmaker(bug: the multisync_guide should say this is the Debian package name) - librapi2-tools - Tools for talking to a WinCE machine from the command line. These tools use the rapi2 library to talk to a WinCE machine to perform various functions. Many of these are simply remote versions of standard unix file utilities: pcp, pls, pmkdir, pmv, pmkdir & prmdir. There are also tools to display the status of the device, run a program on the device and list the programs installed. provides the tools described at synce.sourceforge.net/synce/tools.php.
- synce-dccm - synce.sourceforge.net/synce/ - Daemon to keep a connection to your WinCE device up. Maintains a connection to a WinCE device, responding to keep alives and providing other members of the SynCE suite of tools with details of the IP address and providing the ability to autorun scripts upon connection.
- synce-serial - synce.sourceforge.net/synce/ -
SynCE connection manipulation scripts. Provides
synce-serial-abort,synce-serial-startandsynce-serial-chat - librra0-tools - Library to deal with synchronisation with WinCE devices (tools)
Provides
synce-matchmaker(bug: the multisync_guide should say this is the Debian package name)
GNOME
- See Multisync in Connecting and synchronising PDA's in general
- (multisync-tools - the
msynctoolcommand-line utility. NOTE THIS PACKAGE IS NOT YET IN TESTING, IT IS IS IN UNSTABLE AND IS DESCRIBED HERE FOR COMPLETENESS.)
Configuration
Default IP addresses are 192.168.131.102 for local and 192.168.131.201 for remote.
Usage
- turn on the device
#synce-serial-config ttyUSB0
(the syntax issynce-serial-config serial-device [local-ip-address:remote-ip_address [DNS-server-name]]whereserial-deviceis USB port,ir, etcetera)#synce-serial-start$dccm- you should now be able to run the various
synce-programssynce-install-cabsynce-pcpsynce-pmkdirsynce-prmsynce-prunsynce-registrysynce-soundsynce-list-programssynce-plssynce-pmvsynce-prmdirsynce-pstatussynce-remove-program
Troubleshooting
Log file: /var/log/syslog.
Further Information
SynCE - Linux USB HOWTO: synce.sourceforge.net/synce/howto.php
Using the SynCE plugin for MultiSync: synce.sourceforge.net/synce/multisync_guide.php
Window Manager
Debian's GNOME comes with GNOME's house window manager (Metacity) and theme.
ADSL modems
This section is currently incomplete.
USB ADSL modems can be used, but the process requires a number of manual steps depending on which firmware is in the modem. GNOME's modem networking configuration applies to analog modems, not USB ADSL modems. Work is underway in the summer of 2006 to seamlessly integrate USB ADSL modem configuration into gnome-network-manager. Alternatively you could use an ADSL modem with a CAT-5 interface, which would circumvent these difficulties.
Info on various modems: dsl.linux.it/DebianNetinstall.
Alcatel Speedtouch modems
www.linux.com/howtos/DSL-HOWTO/speedtouchusb.shtml
SpeedTouchConf: steve-parker.org/speedtouchconf/
Analog modems
Whether it works or not will initially depend on whether the modem is recognised by the operating system.
If it's an internal PCI modem, use lspci -v, whilst logged in as root, to see if it has been recognised.
Check with the Debian GNU/Linux device driver check page
to see if a driver is recommended for the modem. If there isn't then don't waste time on it, buy an external serial modem.
Package(s)
- setserial - controls configuration of serial ports. Set and/or report the configuration information associated with a serial port. This information includes what I/O port and which IRQ a particular serial port is using.
Configuration
You may need to create a symbolic link (AKA a shortcut) to the device (which, for a serial modem,
would be referred to as /dev/ttyS0 if it were using the 1st serial port,
/dev/ttyS1 were it using the 2nd) from /dev/modem, for example: ln -s /dev/ttyS0 /dev/modem.
setserial
If the modem isn't supported out-of-the-box you could try downloading and running scanmodem from linmodems.technion.ac.il/#scanmodem. It advises looks for the modem and if it finds it may advise where where to get drivers from.
Further Information
linmodems.org/Dial-up networking with an analog modem
Package(s)
- wvdial - open.nit.ca/wiki/index.php?page=WvDial - PPP dialer. (pronounced "Weave Dial")
Configuration
Users have to be a member of the group 'dialout' and may also have to be a member of the group 'dip' to use the modem
GNOME
Applications → System Tools → Networking → Connections → Add → Forward → Modem
(PPP) and follow the prompts for entering the details for the Internet service provider.
Note that this populates the /etc/wvdial.conf file with the information you provide; if your login details
require no password, a 'Password' section won't be created and you'll get an error message,
requiring you to manually add a 'Password = none' setting in the respective section of
/etc/wvdial.conf.
Add the 'Modem Lights' applet to the panel, this gives you a means of connecting and disconnecting from within GNOME.
command-line
Use either of these methods:
- Use the
wvdialconfcommand-line program:wvdialconf /etc/wvdial.conf; or edit/etc/wvdial.confto setup for your particular Internet Service Provider. - Use
pppconfig, "a dialog based interactive, menu driven utility to help automate setting up a dial out ppp connection." as the root user.
Usage
GNOME
Use Modem Lights
command-line
If you've used wvdialconf to configure, use wvdial to connect;
If you've used pppconfig to configure, use pon and poff to
connect and disconnect.
Troubleshooting
If you're using pppconfig, pon and poff, then try plog
(" shows you the last few lines of /var/log/ppp.log. If that file doesn't exist, it shows you the last few lines
of your /var/log/syslog file, but excluding the lines not generated by pppd.")
Further Information
man pages: wvdial, wvdial.conf, pppconfig, pppd, pon, poff, plog.
PCMCIA / PC Card / CardBus
Package(s)
- hotplug
- pcmcia-cs - utilities that automatically load and unload networking when devices inserted and ejected
Configuration
Start PCMCIA services: /etc/init.d/pcmcia start.
To have a PCMCIA network cards' networking started and stopped when the card is inserted and removed,
use the following in /etc/network/interfaces:
mapping hotplug script grep map <network device name>
Bluetooth
Bluetooth support is enabled in Debian kernels.
Package(s)
- bluez-utils - tools and system daemons for using Bluetooth devices. Provides bluepin, ciptool, dund, hcitool, hidd, l2ping, pand, rfcomm, sdptool
- bluez-hcidump - the hcidump utility allows the monitoring of Bluetooth activity.
- bluez-pcmcia-support - PCMCIA support files for BlueZ 2.0 Bluetooth tools - enables PCMCIA card services to recognise and initialise PCMCIA Bluetooth devices
- bluez-firmware - this firmware is required for operation of Bluetooth dongles based on the Broadcom BCM203x chipset [non-free]. This is for Linux 2.6 kernels, for Linux 2.4 kernels the package was called bluez-bcm203x [contrib].
- ? bluemon - Activate or deactivate programs based on Bluetooth link quality. BlueMon monitors the quality of the link to a Bluetooth device and can start or stop programs when the threshold drops below a certain value. This can be used to perform actions like locking the terminal when you walk away from it.
- bluez-pin - graphical (GTK) Bluetooth PIN helper with D-BUS support; a user interface for entering the PIN codes needed when pairing one Bluetooth device with another.
Configuration
Users must be in group 'dialout' to have privileges to use these devices.
Bluetooth device: /dev/rfcomm0
Usage
/etc/init.d/bluez-utils start
The bluetooth adapter
Display information about each bluetooth adapter (like ifconfig): hciconfig -a.
Activate the Bluetooth adapter: hciconfig hci0 up.
Deactivate the Bluetooth adapter: hciconfig hci0 down.
Reset the Bluetooth adapter: hciconfig hci0 reset.
Set the adapter's public name to myname: hciconfig hci0 name myname.
Display a human-readable list of the Bluetooth features the device supports: hciconfig hci0 features.
Talking to remote Bluetooth devices
Scan for remote Bluetooth devices: hcitool scan. It will tell you the name and mac address of devices it finds.
Show synopsis of features of a particular remote Bluetooth device: # hcitool info <mac address>.
Ping a particular remote Bluetooth device: # l2ping <mac address>.
Show detailed list of features of remote Bluetooth devices: sdptool browse.
Wireless Networking (Wi-Fi / WiFi) - device setup
Getting a wireless adaptor working depends on its chipset. Basically, if the chipset is made by one of the large manufacturers it is less likely to work as the large manufacturers won't provide documentation on their chips to free software device driver authors; where-as if the chipset is from a smaller, Taiwanese, manufacturer then it is likely to work as those manufacturers provide the documentation.
Note: PCMCIA cards will need PCMCIA services installed and working, see the PCMCIA section.
Package(s)
Linux Kernel Modules (Drivers) and Accompanying Utilities
In order of ease of use, if the drivers for your device's chipset are already included in the Debian kernel then they'll be automatically loaded when you plug the device in and it should just work; Or they may be available as ready built kernel modules that you need to install; Or they may only be available in Debian as source code for kernel modules which you need to install and compile. Or they may require you to seek drivers outside of the Debian repositories; Or they may not have any free software drivers developed for them and so require you to load Windows drivers using ndiswrapper.
- The format of these packages adheres to something like this:
- <driver name>-modules-<kernel-series>-<architecture> - the module, or driver, for the device.
- <driver name>-source.
Kernel modules in source form. The modules might not be available built into the Linux kernel
or in the Debian archive ready compiled so you may have to compile them to use them.
They're respective to your running kernel.
You will have to recompile them for each new kernel. To compile them run, for example,
m-a prepare madwifi(this installs various packages, totalling 44MB) and thenm-a a-i madwifi. This creates a package called, <driver name>-modules-<kernel version>-<Debian build version>-<architecture> (i.e. madwifi-modules-2.6.8-4-686). - <driver name>-utils - utilities to configure the device.
- <driver name>-firmware - if required, firmware that the card needs loaded into it for it to work.
Some devices require loading of firmware into them to make them work (the manufacturer of the chipset saves a couple of pence by not including some functionality in the device, instead it comes as software loaded into it every time it's turned on). These firmwares often aren't free in which case you have to download them manually from a web site (possibly getting the file respective to your device) and copying them to/lib/firmware; or there's a Debian package to do this for you. Some require configuration for automatically copying (known as flashing) the firmware each time it's used. See the documentation for your driver in/usr/share/doc/<package-name>
- acx100-source - acx100.sourceforge.net/ - source code for the driver module for cards using the Texas Instruments TNETW1130 (AKA ACX111) 802.11g+/b+ and TNETW1100 (AKA ACX100) 802.11b+ chips. For the list of wireless adapters supported by the latest upstream version see acx100.sourceforge.net/matrix.html.
The ACX100/111 chips need firmware to be operational, you can get this from Microsoft Windows or from www.ilport.com.ua/linux/acx_patches/. Perhaps in future there'll be an acx100-firmware package.
[Version: 0.2.0pre8+52 | Repository: contrib] - atmel - atmelwlandriver.sourceforge.net/news.html - for Atmel at76c50x chips. For the list of wireless adapters supported by the latest upstream version see acx100.sourceforge.net/matrix.html
- ? The Linux kernel module is included in the kernel
- atmel-firmware - firmware. The drivers for these chips in the Linux 2.6.x kernel do not include
the firmware; this firmware needs to be loaded by the host on most cards using these chips. This package provides the firmware images which should be automatically loaded as needed by the hotplug system. It also provides a small loader utility which can be used to accomplish the same thing when hotplug is not in use.
[Version: 1.2 | Repository: non-free (see licence)]
- Host AP / hostap for Intersil Prism2, Prism2.5 and Prism3 cards
(and supports Host AP mode, which allows a WLAN card to perform all the functions of an access point)
- hostap.epitest.fi
- The Linux kernel module is included in the kernel
- hostap-utils - utility programs. The driver supports a so called Host AP mode, i.e., it takes care of IEEE 802.11 management functions in the host computer and acts as an access point. This does not require any special firmware for the wireless LAN card. In addition to this, it has support for normal station operations in BSS and possible also in IBSS.
- Firmware - Prism chipsets have 2 chips that need firmware loading into them.
The firmware is flashed via a setting in
/etc/network/interfaces.- Debian hostap-utils documentation: /usr/share/doc/hostap-utils/README.Debian.gz
- hostap-utils' own documentation: /usr/share/doc/hostap-utils/README.gz
- firmware download: www.red-bean.com/~proski/firmware/. See x.y.z.tgz and primary.tar.gz
- Mini-howto on Flashing Intersil Prism Chipsets: linux.junsun.net/intersil-prism/
- The naming convention for firmware images is explained in home.eunet.cz/jt/wifi/Download.pdf (it's a very technically detailed document)
- prism2_srec will check the compatability of a given firmware with your device
- ipw2100 for Intel PRO/Wireless 2100 (802.11b) 'Centrino'
- ipw2100.sourceforge.net/
- ipw2100-source - source code which you need to compile into a kernel module version 1.1.0 [contrib].
- firmware
The firmware version described here will work with the module in the kernel or the separately installable module. Without the firmware the device won't be recognised by the wireless tools and you'll see an error message on startup. Be aware this firmware isn't available from the Debian archive because it isn't free, it is a binary blob you have to get yourself from Intel whose licencing restrictions are more restrictive than Debian's. Such binary files are not open for peer review by the free software community so could pose a security risk to your system.- Go to ipw2100.sourceforge.net/firmware.php
- Choose to download version ?.?
- If you agree to the licence, choose to do so
- As root, unpack it and store it in /lib/firmware:
# tar -xvf ipw2100-fw-?.?.tgz -C /lib/firmware - Move the files from the sub-directory that has unpacked, into /lib/firmware:
# mv /lib/firmware/ipw2100-fw-?.?/* /lib/firmware - reload the module or reboot?
- ipw2200 for Intel PRO/Wireless 2200BG (802.11b/g) and 2915ABG (802.11a/b/g) 'Centrino'
- ipw2200.sourceforge.net/
- ipw2200-source - source code which you need to compile into a kernel module version 1.0.3 [contrib].
- firmware
The firmware version described here will work with the module in the kernel or the separately installable module. Without the firmware the device won't be recognised by the wireless tools and you'll see an error message on startup. Be aware this firmware isn't available from the Debian archive because it isn't free, it is a binary blob you have to get yourself from Intel whose licencing restrictions are more restrictive than Debian's. Such binary files are not open for peer review by the free software community so could pose a security risk to your system.- Go to ipw2200.sourceforge.net/firmware.php
- Choose to download version ?.?
- If you agree to the licence, choose to do so
- As root, unpack it and store it in /lib/firmware:
# tar -xvf ipw2200-fw-?.?.tgz -C /lib/firmware - Move the files from the sub-directory that has unpacked, into /lib/firmware:
# mv /lib/firmware/ipw2200-fw-?.?/* /lib/firmware - reload the module or reboot?
- ndiswrapper - allows you to run wireless devices not supported by free software modules by using
Windows drivers
- ndiswrapper-modules-2.6.8-3-386
- ndiswrapper-modules-2.6.8-3-686
- ndiswrapper-modules-2.6.8-3-686-smp
- ndiswrapper-modules-2.6.8-3-k7
- ndiswrapper-modules-2.6.8-3-k7-smp
- ndiswrapper-utils - Userspace utilities for ndiswrapper
- ndiswrapper-source - source code for the Linux kernel module
- Orinoco - this driver is part of the kernel, if you have a device with this chipset it should just work
For Using The Device
- wireless-tools - Tools for manipulating Linux Wireless Extensions. This package contains the Wireless tools (
iwconfig,iwlist,iwspy,iwpriv), used to manipulate the Linux Wireless Extensions. The Wireless Extension is an interface allowing you to set Wireless LAN specific parameters and get the specific stats. - wpasupplicant - client support for WPA (IEEE 802.1X) and WPA2 (IEEE 802.11i) methods of securing wireless networks. This software provides key negotiation with the WPA Authenticator, and controls association with IEEE 802.11i networks. Use this rather than the reputedly inferior xsupplicant.
Configuration
The adapter device name will likely be of the type /dev/eth1 or another eth number. Though adapters with Atheros chipsets will likely instead be /dev/ath0 or
/dev/wifi0.
Check if the device is already usable
Using GNOME
Applications → Administration → Networking → look for 'Wireless connection'
Configure it with the Properties option; enable it with the Activate option; if there are wirelss access points available they will appear under the drop down list 'Network Name (ESSID)'.
Using the command-line
Use iwconfig and ifconfig -a to see details of any recognised device. Use iwlist scan to scan for networks.
See also iwconfig, iwlist, iwspy, iwpriv.
If it isn't already working
- Know your chipset make and model
- for a USB adapter:
lsusb - for a PCMCIA adapter:
cardctl identorlspcmciaorlspci - for a PCI adapter:
lspci
- for a USB adapter:
- Check which driver to use by looking it up on the 'WLAN Adapter Chipset Directory': www.linux-wlan.org/docs/wlan_adapters.html.gz
- Install any specific module and firmware, see above.
- Your device in particular might need some specific attention, such as updated firmware if it should be recongnised when inserted but isn't; or a work-around for buggy hardware
Configure it using either
- iwconfig <device name> essid <ESSID> mode <managed / ad-hoc> ap <access point address> key <hex key>
/etc/network/interfaces
iface <device name> dhcp wireless-essid <ESSID> wireless-channel <channel> wireless-key <key> wireless-mode <mode> wireless-rate <rate> auto ath0
Start networking withifup ath0.
Further Information
Jean Tourrilhes' Linux Wireless Tools and Wireless Extensions site: www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/
'A survey of Linux and WiFi': users.linpro.no/janl/hardware/wifi.html - good intro to the state of WiFi hardware support at the present time and a list of currently available devices with details of chipsets and drivers.
Linux kernel updates
Package(s)
- kernel-image
- kernel-image-<kernel-version>-<architecture>
Installation
kernel-image is a 'pseudo package' for the Linux kernel which will list the specific
kernel packages available for different kernel versions;
you should install the most recent kernel available using the actual package name in
the form kernel-image-<kernel-version>-<architecture>.
The kernel will be installed and your old kernel version retained
(if this is a kernel for '-386' that works on any x86 architecture then it gives you a fail-safe boot option in case of problems at some point),
with the new kernel set as the default in the GRUB menu (in most instances the default, but not all).
Pick the most recent version 2.6 kernel available.
You can find out which CPU you have in your system with the command cat /proc/cpuinfo,
under 'model name'.
If the Debian Installer hasn't automatically picked the specific <architecture> that matches that of your
system then you should do so -
i.e. for single CPU, 32-bit x86 (generically known as PC, i386, IA32, IA-32 or x86-32) architectures,
the following flavours are available:
- for Linux 2.4 series kernels
- 386 - optimised for all i386 compatible architectures
- 586tsc - optimised for Intel Pentium-Classic
- 686 - optimised for Intel Pentium-Pro/Celeron/Pentium II/Pentium III/Pentium 4 [and Xeon?]
- k6 - optimised for AMD K6/K6-II/K6-III
- k7 - optimised for AMD K7 (Athlon/Duron/Thunderbird)
- for Linux 2.6 series kernels
- 386 - optimised for all i386 compatible architectures
- 686 - optimised for Intel Pentium-Pro/Celeron/Pentium II/Pentium II Xeon/Pentium III/Pentium III Xeon/Pentium 4/Xeon (32-bit)
- k7 - optimised for AMD K7 (Athlon/Duron/Thunderbird)
If you have multiple processors then use the '-smp' versions of some of these which are available.
Configuration
To see which compile-time options were set in your kernel, see the file
/boot/config-<kernel version>-<Debian build version>-<architecture>.
Further Information
Changes in the 2.6 Linux kernel - prior to the present mainline kernel wiki.kernelnewbies.org/Linux26Changes
Changes in the 2.6 Linux kernel - the present mainline kernel wiki.kernelnewbies.org/LinuxChanges
'Debian Reference - Chapter 7 - The Linux kernel under Debian: www.debian.org/doc/manuals/reference/ch-kernel.en.html
KernelTrap: kerneltrap.org/
Kernel Traffic: www.kerneltraffic.org/kernel-traffic/latest.html
The Linux Kernel Mailing List (LKML): lkml.org/
The Linux Kernel Archives: kernel.org/
Linux kernel compilation
In most instances you won't ever need to compile a kernel but it may be advantageous to at some point.
Package(s)
- kernel-source-x-x-x (where x-x-x is respective to the kernel source you want, i.e. 2.6.8)
- kernel-package
- fakeroot
- build-essential
- libncurses5-dev (commonly known as ncurses-devel)
Usage
You must be a member of the group src.
- if you're going to compile a Debian kernel source, install kernel-source-version, it will be saved as
/usr/src/kernel-source-version.tar.bz2. If you're downloading a kernel from elsewhere, also save it in/usr/src/ cd /usr/src/- change directory to that where you saved the kerneltar --bzip2 xvf /usr/src/kernel-source-version.tar.bz2- unpack the new kernelcd kernel-source-version- change directory to where the kernel unpacked intocp /boot/config-kernel-version-architecture .config- get the current Debian kernel configuration to use as a default and guide to options Debian have chosen for their kernelsmake menuconfig- change any optional features you wantfakeroot make-kpkg clean- (there might be a bug in the Debian guide in that it doesn't say to use fakeroot here)fakeroot make-kpkg --append-to-version your-version-name --revision your-revision --initrd kernel_image modules_image- build the kernel. This is a script which automates and replaces the sequencemake dep(compile any dependencies required for this kernel);make clean(cleanup the directory);make bzImage(make kernel);make modules(if you've selected loadable modules, make them);modules_imageinstalls any modules, as done bymake modules_install; creates a kernel image package/usr/src/kernel-image-versionyour-version-name_your-revision_architecture.debcd ..- change directory to where the new Debian kernel package isdpkg -i kernel-image-versionyour-version-name_your-revision_architecture.deb- install the kernel-image package. (creates/boot/initrd.img-versionyour-version-name,/boot/vmlinuz-versionyour-version-nameand adds appropriate sections to GRUB's boot menu)
Further Information
/usr/share/doc/kernel-package/README.gz
'Creating custom kernels with Debian's kernel-package system' by Kevin McKinley: newbiedoc.sourceforge.net/system/kernel-pkg.html
Portable audio players
Some devices work as USB Mass Storage, like the small flash based players, others require a special driver.
Apple ipod
Package(s)
- gnupod-tools - gnupod. command-line tools for the iPod family of portable music players
- gtkpod-aac - manage songs and playlists; can copy to and from the iPod. This version, as opposed to the Debian offical version known as 'gtkpod', is an alternative build that additionally handles AAC format files. The program itself is still called 'gtkpod'. Uses libgpod. [requires additional repository: Debian Multimedia]
Creative NOMAD/Zen/Dell DJ (Portable Digital Entertainment (PDE) protocol devices)
Package(s)
libnjb is a C library and API for communicating with the Creative Nomad JukeBox and Dell DJ digital audio players. The protocol these devices use is presumably called PDE (Portable Digital Entertainment protocol) at Creative. Newer devices using the Microsoft MTP (Media Transfer Protocol) are NOT supported.
- libnjb0 - libnjb.sourceforge.net/ - Creative Labs Nomad Jukebox library
- libnjb1 - libnjb.sourceforge.net/ - Creative Labs Nomad Jukebox library
- libnjb1-doc - Creative Labs Nomad Jukebox library documentation
- njbtools - Tools for interfacing with libnjb. Tools to interface with libnjb C library and API for communicating with the Creative Nomad JukeBox digital audio player under BSD and Linux. There are no kernel devices required for its operation, so it does depend on user-level USB.
Players that use Microsoft MTP (Media Transfer Protocol) - includes Creative NOMAD/Zen/Dell DJ
Package(s)
I think you have to use Debian Testing to get support for these devices.
Creative Nomad players
- gnomad2 - gnomad2.sourceforge.net/ - Manage a Creative Labs Nomad Jukebox. Gnomad 2 is a GUI built on top of GTK/GNOME, id3lib and libnjb that makes it possible to transfer tracks and files from/to a Creative. Nomad Jukebox (all brands). It is designed much like an ordinary graphical FTP program.
iRiver
Package(s)
- libifp4 - communicate with iRiver iFP audio devices
- ifp-line - command line tool to access iRiver iFP audio players
- ifp-line-libifp - command line tool to access iRiver iFP audio players
- iripdb - www.fataltourist.com/iripdb/ - generates the DB files for the iRiver iHP-1xx
OpenVPN client
Package(s)
- openvpn - openvpn.net - this acts as either a client or a server
Usage
This describes how to connect to an OpenVPN server that uses a tun interface, PKCS12 certificate, LZO compression and TCP protocol.
You'll need the client certificate, from the VPN server, stored somewhere you can point the openvpn program to.
Setup the tunnel:
# openvpn --dev tun0 --mktun
Connect:
# openvpn --remote <IP address of VPN server> --dev tun0 --pkcs12
<filename of certificate>.p12 --client --comp-lzo --proto tcp
Reporting Issues
Reporting an issue to Debian
Automated Method, Using GNOME
Applications → Programming → Bug Report Tool.
Manual Method
If you know the name of the package you have an issue with, check whether your issue has already been reported by going to bugs.debian.org. Under 'Viewing bug reports on the WWW' → 'What to search for:' put the name of the package you have an issue with and choose 'Find'.
If you don't know the name of the package go to packages.debian.org and choose 'Search package directories' or go there direct at www.debian.org/distrib/packages#search_packages. Choose 'Keyword:' and enter the closest you know of to the package name. Under 'Distribution:' choose 'Stable' or 'Testing'. Choose 'Search'. Under 'More Information on' <package name> → 'Check for Bug Reports about' <package name>.
Checkout the list of bugs/issue reports. If you've found an unreported issue, you can send an email
describing the issue to submit@bugs.debian.org.
At the top of the message you need to use this syntax:
Package: <package name>
Version: <package version>
Describe your issue...
Further Information
'How to report a bug in Debian': www.debian.org/Bugs/Reporting
Further information
Release Information: www.debian.org/releases/stable/
Release Notes: www.debian.org/releases/stable/releasenotes
All software packages keep their documentation in /usr/share/doc/package-name. dwww
(in GNOME choose Applications → Debian → Help → Dwww) is an easy way to browse this.
There is usually a README.Debian file and a README file giving an introductions from Debian and from the
package author, a changelog for the upstream package and a
a changelog for the package upstream and a changelog for Debian-specific changes.
Sometimes this documentation here is essential and useful, sometimes it is inadequate.
Books
- List of various books on Debian: www.debian.org/doc/books
- The Debian System - Concepts and Techniques by Martin F. Krafft: debiansystem.info/
- Debian GNU/Linux 3.1 Bible by David B. Harris and Jaldhar Vyas: eu.wiley.com/WileyCDA/WileyTitle/productCd-0764576445.html
debianHELP: www.debianhelp.org/
Debian GNU/Linux Desktop Survival Guide by Graham Williams: www.togaware.com/linux/survivor/index.shtml
Debian Wiki: wiki.debian.net/?FrontPage
freedesktop.org: freedesktop.org/wiki/
planet.freedesktop.org, aggregate blog of developers: planet.freedesktop.org/
GNOMEFILES GTK+ software repository: www.gnomefiles.org/
If you have problems with a package you can search bugs.debian.org/.
The Debian development announcements mailing list: lists.debian.org/debian-devel-announce/
The Debian development mailing list: lists.debian.org/debian-devel/
irc://irc.freenode.net#debian-gnome
? irc://irc.freenode.net#debian-installer
? irc://irc.freenode.net#debian-openoffice
List of all known bugs with a particular package: http://bugs.debian.org/cgi-bin/pkgreport.cgi?pkg=<package name>
Troubleshooting
Log files
Error logs are kept that can help understand when something is broken.
- The operating system and many programs in general log to
/var/log/syslog/var/log/messages/var/log/daemon.log/var/log/debug
- Some individual programs log to their own log files
/var/log/<package-name>.log/var/log/<package-name>/var/log/<package-name>/error.log
When troubleshooting a problem it can be useful to keep a command-line window open displaying a program's log file,
with entries appended in real time as the file grows, using: tail -f <log-file>.
Miscellaneous
- gnome-volume-manager - GNOME daemon to auto-mount and manage media / hot-pluggable devices such as CD and DVD discs, USB devices
such as digital still cameras, flash card readers, etcetera; automatically provide a shortcut to them on the desktop;
and allow them to be ejected/removed; all when operated by normal users
- gnome-volume-manager needs to be running in your session for it to work. You get it running by just loading Applications → Desktop Preferences → Removable Storage and closing it down again; you keep it running by choosing to 'save session' when you logout, which includes it in your default session
- gnome-volume-manager won't be able to auto-mount discs when inserted if discover/discover1 is managing
/media/cdrom0because that directory will get removed by discover/discover1. To fix this, either choose not to have discover/discover1 do this at installation (see note in the 'Installation' section; or uninstall discover/discover1 (but I don't yet know of other ramifications of doing this); or there should be a way of disabling this aspect of discover/discover1 once it's installed, but I don't know of it yet) - Requires you to be a member of group 'plugdev' (so you have permission to use pmount)
- It may require the installation of pmount (pmount mounts removable devices as a normal user)
- Requires 'HAL', which is a part of Linux kernel 2.6; Linux kernel 2.4 uses 'magicdev' instead
- Uses udev, hotplug / hal and pmount
Trouble
These are the most pressing problems we've been troubled by.
Cannot become administrator from within the printer queues dialog.
Cannot remove print jobs from queue using GNOME, as the print queue dialog hangs when you choose delete. (Fixed in Testing/Etch about January 2005)
Cannot set the system's default sound card. If you have multiple sound cards you need to run alsaconf every time you turn the computer on.
(Fixed in Testing/Etch's GNOME 2.12)
Appendix 1
Tasksel's 'desktop environment' installs the following: fortune-mod, gdm, gimp, gnome, gnome-desktop-environment, kde, kde-core, kdeadmin, kdeartwork, kdegraphics, kdemultimedia, kdenetwork, kdepim, kdeutils, menu mozilla-browser, mozilla-psm, myspell-en-gb, myspell-en-us, openoffice.org-bin, x-window-system-core, xscreensaver.
We can leave out fortune-mod, gnome-desktop-environment (it's a dependancy of GNOME), kde, kde-core, kdeadmin, kdeartwork, kdegraphics, kdemultimedia, kdenetwork, kdepim, kdeutils, mozilla-browser (we recommend Mozilla Firefox instead, and GNOME installs it anyway), mozilla-psm, gimp (covered separately), openoffice.org-bin (covered separately), myspell-en-gb (covered separately), myspell-en-us (covered separately), xscreensaver (it's a dependency of GNOME).