Desktop System Setup with Debian GNU/Linux 'Testing/Lenny'
Contents
- Office suite - Word processor, spreadsheet, presentation, layout / desktop publishing (DTP), PDF viewer
- Spellcheckers and Dictionaries
- Fonts / Typefaces
- Databases
- Web editing
- Internet applications (web, email, chat, file transfer, downloading, peer2peer)
- Image viewing
- Image editing
- Colour Management
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, the Testing variation, with a Linux version 2.6 kernel, using a GNOME desktop environment. It applies most accurately to 32-bit x86 and 64-bit amd64 architectured computers; most of it but not all will apply to all Debian's supported architectures.
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/.
I try to stick closely to stock Debian, which means adding non-free but being very consertaive about installing software from outside Debian, which is to say that some is but not much. This is as much for reasons of simplicity (so you're not chasing round a load of external sites) as it is for system stability (stability in terms of crashing). This is more difficult with browser add-ons because they provide worthwhile functionality but many don't exist in Debian so this restriction is more relaxed for them. Firefox and Thunderbird extensions, compared with other kinds of software from other sources, have the 'advantage' they're checked for and updated automatically on startup.
This document has related documents:
'Desktop System Setup with Debian 3.1 Sarge';
'Desktop System Setup with Debian 4.0 Etch';
'Server Setup with Debian 3.1 'Sarge''
'Server Setup with Debian 4.0 'Etch''.
A good introduction to Debian is the Debian article at Wikipedia.
This document needs your feedback, it is under constant development so 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
- 'dvdbackup -v1' now uses 'dvdbackup -v'
- 'bcm43xx-fwcutter' package renamed 'b43-fwcutter'
- TODO: iwlwifi http://packages.debian.org/lenny/firmware-iwlwifi
- TODO: gnash
- TODO: 'Install the generic version (ipw2100-modules-<kernel-version>-<Debian revision>-<architecture>)' should say: 'Install the generic version (ipw2100-modules-<kernel-series>-<architecture-subseries>)'
- WIP: new wireless drivers
- Added pidgin-otr
- improved 'Spellcheckers and Dictionaries' section
- Removed 'ipw3945d' because it's no longer required with the drivers in kernel 2.6.24 and not available in Debian 4.1 Lenny
0.10.0 - 20 December 2007
- Added new section: Digital Video Broadcasting (DVB-T / Freeview)
- Added new section 'Partitioning Disks' with gparted
- Tidied up the scanner section and added scanner firmware information
- I bought a machine with an AMD Athlon 64 CPU (only £90UK) to learn about the amd64 (64-bit) architecture support in Debian. Consequently I've been able to add amd64 information for flashplugin-nonfree, sun-java5-jre and Skype
- Replaced gpdf with evince. gpdf is a leftover from Debian Sarge that doesn't exist any more
- Fleshed out GNOME font installation
- 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 msttcorefonts to wine
- Added unshield
- Removed mdetect as xserver-xorg no longer uses it
- Added links for information on new xorg auto-configuration
0.9.1 - 18 September 2007
- Replaced totem with totem-gstreamer in 'Multi media players, including DVD' section and removed vlc
- Fonts for everyone need to be able to be read by everyone
- Each login service needs to be configured to use libpam-keyring for it to work
- Removed the Clearlooks skin for mplayer, possibly temporarily, because it doesn't apply to mplayer-nogui
0.9.0 - 13 September 2007
- Added Proprietary Software section with Internet Explorer and Skype
- Added first draught of a Colour Management section
- Added network-manager-openvpn and network-manager-vpnc
- Added thoggen
- Added mjpegtools, ogmtools, subtitleripper, libdvdread3 and libdvdcss2 as supporting software to dvdrip
- Added libpam-keyring
- Removed wine-doc as it's merged into wine
- Removed network-manager, network-manager-gnome now conflicts with it
- Moved pitivi and transcode from video editing ToDo section into recommended
0.8.27 - 1 September 2007 - added ufraw; removed gimp-dcraw
0.8.26 - 31 August 2007 - removed thinkpad-base, tpctl, thinkpad-source, configure-thinkpad, ibm-acpi as they're not available and thus also removed the IBM Thinkpad section.
0.8.25 - 30 August 2007 - mistakenly had Testing security updates repository as 'http://secure-testing.debian.net/debian-secure-testing etch/security-updates main contrib' rather than 'http://security.debian.org testing/updates main'
0.8.23 - 29 August 2007
- Added guide to installing TrueType fonts for print
- Added gnome-vfs-obexftp and incorporated details of new GNOME Bluetooth capabilities
0.8.22 - 25 August 2007
- Removed 915resolution - the Intel driver has gained direct mode-setting code, so in future will use that to enable weird resolutions not referenced in the BIOS to work out of the box. The i915resolution package is now obsolete as it modifies BIOS tables that the new driver does not use. - http://bgoglin.livejournal.com/10214.html
- xserver-xorg-video-intel replaces xserver-xorg-video-i810
- Removed xfce4-iconbox and xfce4-showdesktop-plugin as they're not part of XFCE 4.4
0.8.21 - 24 August 2007
- Added aptitude-doc-<locale>
- Added Thunderbird / Icedove Extensions Adblock Plus, Enigmail, Lightning and Mail Redirect
- Added Firefox Add-on Adblock Plus
- Added icedove-traybiff
0.8.19 - 11 August 2007
- gnome-bluetooth is now available in Debian Testing
- Freeloader replaces bittorrent-gui and bittornado-gui
- Reduced Epiphany to just saying I recommend Iceweasel / Firefox instead
- Removed Lynx from Internet Applications section, it's in Minor Software already
- Added Liferea
- Added Remote Access Clients section in Internet Applications section - tsclient, xvnc4viewer, rdesktop, xnest, openssh-client, secpanel
- Gaim changed its name to Pidgin
- Set Iceweasel / Firefox as the preferred GNOME web browser
0.8.14 - 24 June 2007 - Better described X video drivers; added video graphics utilities radeontool, rovclock, 915resolution, i810switch, matroxset, nvidia-xconfig, nvidia-settings, nvtv
0.8.12 - 23 June 2007 - Tidied up NTFS filesystem support info, adding ntfs-3g and better explaining the various mounting capabilities available
0.8.2 - 29 April 2007 - Added regionset
0.8.1 - 25 April 2007 - Reduced 'CD audio - Playing, digital audio extraction (ripping), copying and encoding' section into just 'Copying Audio CDs'; restored serpentine; removed abcde and jack.
0.8.0 - 24 April 2007 - Added an 'Audio / Sound - decoding, encoding, playing' section; just the packages, more will follow.
0.7.0 - 22 April 2007
- Made Bluetooth section much more complete; added packages gnome-bluetooth, btscanner, obexpushd, obexftp and ussp-push.
- exchanged libnjb1 for libnjb0
- removed mozilla-openoffice.org as it's now only available in unstable & experimental
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 3.1 supports 12, Debian 3.0 supports 11,
Gentoo: 8, Red Hat Enterprise Linux AS: 6 or 7, Ubuntu: 4, 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.1 'Sarge', version 4.0 'Etch') 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/
Subscribe to the debian-testing-changes mailing list (lists.debian.org/debian-testing-changes/) to be kept informed of changes to Debian Testing.
Debian bug tracking system: www.debian.org/Bugs/
Getting Debian
Downloading from the Internet
Download a snapshot of Testing/Lenny from www.debian.org/devel/debian-installer/. There are various options of what to download, the most useful to choose from are
- 'full CD or DVD images' - the full distribution, on various CDs and DVDs.
Recommended options are:
- multi-arch DVD disc 1 - GNOME installer for 32-bit and 64-bit PC and Apple Mac computers
- GNOME CD disc 1
- 'Netinst minimal bootable CD image' - a 180MB subset of the full set. This is enough to get a (very) basic system installed with the small set of packages included.
- 'Businesscard minimal bootable CD image' - a 40MB 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
Choose which architecture you want, the following are the most popular
- i386 - for 32-bit PC-compatible computers (if you don't know then this is probably what you have)
- AMD64 - 64-bit PC. The The Debian GNU/Linux AMD64 HOW-TO may be useful.
- powerpc - for Apple Power Macs
By Post
Debian Stable 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' version that you boot your computer with, it runs the operating system straight from CD or
USB flash media 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.
You can get a live Debian image from live.debian.net/.
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
Hardware4Linux - a web site to lookup and report hardware compatibility and incompatibility with Linux distributions.
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 either dpkg-reconfigure <package-name>.
or tasksel
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.
To start the installer, either just press [Enter] to start the installer in text mode, or
type installgui and press [Enter] to start the installer in graphical mode.
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 CD discs 1 and 2 (DVD disc 1) and choose to add them all to the sources list when prompted.
Partitioning scheme - You have the following options:
- All files in one partition - will create a root partition (/) and a swap partition
- Separate /home partition - will create a root partition, a /home partition and a swap partition
- Separate /home, /usr, /var, and /tmp partitions - will create partitions for /, /home, /usr, /var, /tmp, and swap
Choose the 'Separate /home partition' 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 option to install one or more predefined collections of software, the 'desktop environment' option will install a fairly useful system (its a massive improvement on what Debian 3.1 installed) but it can be improved upon, which is what this documents all about. You can either choose that option and return to this document for additional software advice, or do it all manually.
The installer's 'desktop environment' option installs the following:
twm, gimp-print, xresprobe, eject, foomatic-filters-ppds, openoffice.org, xserver-xorg-video-all,
openoffice.org-help-en-us, foomatic-db-hpijs, cupsys-driver-gutenprint, cupsys-client, avahi-daemon,
foomatic-db-gutenprint, openoffice.org-thesaurus-en-us, discover1, myspell-en-us, xdg-utils,
hotkey-setup, foomatic-gui, xorg, cupsys-bsd, iceweasel, xserver-xorg-input-all, hplip, desktop-base,
alsa-base, libnss-mdns, xterm, cupsys, alsa-utils, anacron, printconf, hpijs, menu, gimp,
openoffice.org-gcj, foomatic-db-engine.
The installer's 'laptop' option installs the following:
wireless-tools, acpi-support, hibernate, cpufrequtils, acpi, wpasupplicant, pcmciautils, acpid, apmd,
hotkey-setup, anacron, uswsusp, bluetooth
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 - Development version: d-i.alioth.debian.org/manual/
Debian GNU/Linux Installation Guide, Debian 4.0 Etch version: www.debian.org/releases/stable/installmanual.
This is also installable as the installation-guide-<architecture> package, for example installation-guide-i386 or installation-guide-amd64.
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
Desktop → Administration → Users & Groups → Users → pick user
→ Properties → User privileges.
More specifically groups administration is available from
Desktop → Administration → Users & Groups → Groups → pick group
→ 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.
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, i.e. Sarge, Etch, Lenny, etcetera
- 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 Testing archive)
- for regular packages and very occasional conservative updates to fix broken features in packages,
use something like this but substitute the domain and directory with that of your nearest Debian mirror:
deb http://ftp.uk.debian.org/debian testing main contrib
(You can addnon-freeif you wish) - security updates - for non-intrusive updates to fix security issues in packages
- secure-testing-master.debian.net/ - use:
deb http://security.debian.org testing/updates main
Security updates are only provided for packages in main, not contrib and non-free.
- for regular packages and very occasional conservative updates to fix broken features in packages,
use something like this but substitute the domain and directory with that of your nearest Debian mirror:
- 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 Testing/Lenny with:
- for alpha, amd64, hppa, i386, ia64 and sparc architectures:
deb http://www.debian-multimedia.org testing main - Package: debian-multimedia-keyring - GnuPG archive key of the debian-multimedia repository.
- for alpha, amd64, hppa, i386, ia64 and sparc architectures:
- 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 Testing/Lenny 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-cdrom add. 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, either:
- Desktop → Administration → Software Properties
- 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:
?. - using GNOME: from within Synaptic Package Manager, choose Settings → Repositories
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.
- gnupg - GNU Privacy Guard, required for the package signing abilities of Apt (should be installed by default because it's suggested by apt)
- debian-archive-keyring - required for the package signing abilities of Apt
- debian-multimedia-keyring - GnuPG archive key of the debian-multimedia repository [Requires additional repository: Debian Multimedia].
Configuration
Synaptic
- General → Marking Changes → Clicking on the status icon makes the most likely action
- General → System upgrade: Smart Upgrade
GDebi
When you click from within the web browser on a .deb file choose Open with → other → /usr/bin/gdebi-gtk.
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
(Desktop → Administration → 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>.
- Packages entering or leaving testing today: bjorn.haxx.se/debian/accepted.html
- Why is package X not in testing yet?: bjorn.haxx.se/debian/
- New packages _probably_ entering Debian: ftp-master.debian.org/new.html
- Incoming packages into Debian Testing: incoming.debian.org/
- debian-devel-changes mailing list - notices about uploaded packages for the unstable distribution: lists.debian.org/debian-devel-changes/
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 a GNOME, KDE or XFCE desktop environment depending on which installer you use. This document describes individual packages to install for a GNOME desktop environment for a vaguely modern computer. For an older computer you're advised to use XFCE instead of GNOME.
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 - generates programs menu for all menu-aware applications
- x-window-system-core
- update-manager - manages apt updates - gives a simplified interface to updating packages; can download updates in the background without installing them. These are configured either from within GNOME using Desktop → Administration → Software Properties, or Synaptic's Repositories section.
- update-notifier - system tray notification of available updates.
- baobab - analyses disk usage
Configuration
Per-user configuration
- Desktop → Preferences →
- Keyboard → Layouts →
- 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'
- Screensaver - Display Modes → Mode - Blank Screen Only
- Keyboard → Layouts →
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-minicmd-plugin
- xfce4-mixer
- 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 IceWeasel / Mozilla Firefox, and so they only serve as an example and are thus worth spending some time changing and adding to with your most used programs.
X Windows: X.org
'X Windows' creates the graphical windows on your screen.
Packages(s)
- x-window-system-core - X.Org - www.x.org - this is the xserver-xorg package plus other useful packages. This also installs the xserver-xorg-video-all package which installs the full suite of free video driver packages such as xserver-xorg-video-ati, xserver-xorg-video-intel, xserver-xorg-video-mga, xserver-xorg-video-nv, xserver-xorg-video-sis
- 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-xconfig - The NVIDIA X Configuration Tool, nvidia-xconfig, manipulates X config files, specifically for use by the NVIDIA Linux graphics driver.
- 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.
Utilities
Configuration
Video Driver Choice
The Debian Installer, or dpkg-reconfigure xserver-xorg should auto-detect your video graphics adapter and configure X.org with the appropriate driver, such as from those below. You can further configure X.org for your particular adapter with options specific to the driver.
- ATI - provided by package xserver-xorg-video-ati
- 'radeon' - supports PCI and AGP video cards based on the following ATI chips: R100 (Radeon 7200), RV100 (Radeon 7000(VE), M6), RS100 (Radeon IGP320(M)), RV200 (Radeon 7500, M7, FireGL 7800), RS200 (Radeon IGP330(M)/IGP340(M)), RS250 (Radeon Mobility 7000 IGP), R200 (Radeon 8500, 9100, FireGL 8800/8700) RV250 (Radeon 9000PRO/9000, M9), RS300 (Radeon 9100 IGP), RS350 (Radeon 9200 IGP), RS400 (Radeon XPRESS 200/200M IGP), RV280 (Radeon 9200PRO/9200/9200SE, M9+), R300 (Radeon 9700PRO/9700/9500PRO/9500/9600TX, FireGL X1/Z1 (2D only)), R350 (Radeon 9800PRO/9800SE/9800, FireGL X2 (2D only)), R360 (Radeon 9800XT (2d only)), RV350 (Radeon 9600PRO/9600SE/9600, M10/M11, FireGL T2 (2D only)), RV360 (Radeon 9600XT (2d only)), RV370 (Radeon X300, M22 (2d only)), RV380 (Radeon X600, M24 (2d only)), RV410 (Radeon X700, M26 PCIE (2d only)), R420 (Radeon X800 AGP (2d only)), R423/R430 (Radeon X800, M28 PCIE (2d only)), R480/R481 (Radeon X850 PCIE/AGP (2d only))
- 'r128' - supports all ATI Rage 128 based video cards including the Rage Fury AGP 32MB, XPERT 128 AGP 16MB and XPERT 99 AGP 8MB
- Intel - 'intel' - provided by package xserver-xorg-video-intel - supports the following chipsets: i810, i810-DC100, i810e, i815, i830M, 845G, 852GM, 855GM, 865G, 915G, 915GM, 945G, 945GM, 965G, 965Q and 946GZ
- Matrox - 'mga' - provided by package xserver-xorg-video-mga - supports PCI and AGP video cards based on the following Matrox chipsets: MGA2064W, MGA1064SG (Mystique), MGA2164W (Millennium II), G100 (Productiva G100), G200 (Millennium G200 and Mystique G200), G400 (Millennium G400, Millennium G400 MAX, Millennium G450, and Marvel G450 eTV), G550 (Millennium G550 and Millennium G550 Dual DVI)
- Nvidia - 'nv' - provided by package xserver-xorg-video-nv - supports PCI, PCI-Express and AGP video cards based on the following NVIDIA chips: NV3 (RIVA 128); NV4 (RIVA TNT); NV5 (RIVA TNT2); NV10 (GeForce 256, QUADRO); NV11, NV15 (GeForce2, QUADRO2); NV20 (GeForce3, QUADRO DCC); NV1A, NV1F (nForce, nForce2); NV17, NV18, NV25, NV28 (GeForce4, QUADRO4); NV30, NV31, NV34, NV35, NV36, NV37, NV38 (GeForce FX, QUADRO FX); NV40, NV41, NV43, NV44, NV45, C51 (GeForce 6XXX); G70, G71, G72, G73 (GeForce 7XXX).
This driver doesn't offer 3D acceleration.
wiki.debian.org/NvidiaGraphicsDrivers - SiS and XGI - 'sis' - provided by package xserver-xorg-video-sis - supports PCI, AGP and PCIe video cards based on the following chipsets:
SiS5597/5598, SiS530/620, SiS6326/AGP/DVD ('old series'); SiS300/305, SiS540, SiS630/730 ('300 series'); SiS315/E/H/PRO, SiS550/551/552, SiS650/651/661/741, SiS330 (Xabre), SiS760/761, XGI Volari V3/V5/V8, XGI Volari Z7 ('315/330/340 series'). - And others, the full list is at www.x.org/wiki/VideoDrivers
New Auto-Configuration
Debian Wiki - XStrikeForce - HowToRandR12: wiki.debian.org/XStrikeForce/HowToRandR12
Brice Goglin's Blog - Debian/X.org notes - Modesettings/RandR-1.2 improvements with Intel driver 2.0 and others: bgoglin.livejournal.com/10214.html
Brice Goglin's Blog - Debian/X.org notes - Dual-Head config breaks with xserver-xorg-video-intel: bgoglin.livejournal.com/9846.html
Brice Goglin's Blog - Debian/X.org notes - Intel driver 2.0 does not find my nice mode/resolution: bgoglin.livejournal.com/10423.html
Utilities
Restart X: Ctrl+Alt+Backspace
dpkg-reconfigure xserver-xorg
- this is the configuration program run by the debian-installer, but with priority 'high'
rather than the more common 'medium'. 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-xorg, for inclusion in the X configuration file.
xorgconfig - text based question and answer configuration
xorgcfg - graphical configuration
xvidtune - video mode tuner for Xorg. "When given one of the non-toolkit options,
xvidtune provides a command line interface to either switch the video mode.
Without any options (or with only toolkit options) it presents the user with various buttons and sliders
that can be used to interactively adjust existing video modes. It will also print the settings in a format
suitable for inclusion in an xorg.conf file."
Video Resolution
If the video resolution isn't automatically set correctly then after installation you should tune the X configuration to best suit the monitor. Using the original documentation that came with the monitor, or the web, find the horizontal frequency (in kHz), vertical frequency (in Hz), applicable resolutions and possibly 'mode line'. You usually choose the name of the driver that relates to all the manufacturer's monitors.
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/xorg.conf
Configuration information specific to each video chipset and other devices is provided in info pages for specific video card drivers, i.e.
info intelinfo mgainfo nvinfo radeoninfo sis
Thorough explanation of mouse configuration: /usr/share/doc/xserver-xorg-input-mouse/README.gz (or, using dwww localhost.localdomain/cgi-bin/dwww?type=file&location=/usr/share/doc/xserver-xorg-input-mouse/README.gz)
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 Desktop → Preferences → Font → → Details → Resolution - set it to the number you chose if different from the number already there
Troubleshooting
Log file: /var/log/Xorg.0.log
Further Information
Changelogs for each video card driver are in
/usr/share/doc/xserver-xorg-video-<driver name>/changelog.Debian.gz
X.org Foundation: wiki.x.org/ and x.org/
gravityboy's Journal (Debian developer): www.livejournal.com/users/gravityboy/
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 - dmitry.butskoy.name/traceroute/ - this version is the Linux version by Dmitry Butskoy, different to the BSD version by Van Jacobson included with previous versions of Debian.
- tcpdump - www.tcpdump.org
Backup
Package(s)
- sbackup - sbackup.sourceforge.net/ - Simple Backup Suite for desktop use. A set of backend backup daemon and Gnome GUI frontends that provide a simple yet powerful backup solution for common desktop users. Backups can be written to local directory or remote servers using Gnome VFS technology. A fine control is possible regarding what folders and files to backup. Files can be excluded even with a set of regular expressions. Regular backups can be scheduled.
Configuration
Note that Simple Backup requires use of sudo.
Usage
Configure and use:
Desktop → Administration → Simple Backup Config
Restore:
Desktop → Administration → Simple Backup Restore
Spellcheckers and Dictionaries
Package(s)
- Aspell for Abiword/Evolution/Gaim
- aspell - version 0.60.4 - Aspell spellchecker
- aspell-doc - version 0.60.4 - Aspell spellchecker documentation
- aspell-<locale> (i.e. aspell-en - version 6.0) - Aspell spellchecker dictionary
- Myspell for OpenOffice/Firefox/Thunderbird
- The actual Myspell spellchecker is built in to the above programs so you don't need to install the spell checker itself for them (OpenOffice actually uses Hunspell but it's backwardly compatible with Myspell)
- myspell-<locale> (i.e. myspell-en-gb - version 2.0.4 RC1) - Myspell spellchecker dictionary. Once installed, the above programs will automatically begin to use them
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-dejavu - dejavu.sourceforge.net/wiki/index.php/Main_Page - The DejaVu fonts are a font family based on the Bitstream Vera Fonts release 1.10. It may be possible to replace Bitstream Vera with this, making some changes in Desktop → Preferences → Font, but I haven't yet fully tested this. Includes DejaVu Sans, DejaVu Sans Mono, DejaVu Sans Condensed (experimental), DejaVu Serif, DejaVu Serif Condensed (experimental)
- 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.
- ttf-mikachan - handwritten Japanese Truetype font. Don't know where the Japanese comes into it.
- 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]
(xfonts-scalable, installed by default, at least includes Bitstream Charter)
Configuration
Fonts for all users are located in /usr/share/fonts/
- truetype/ - TrueType fonts
- type1/ - PostScript fonts, for GhostScript(?)
- X11/ - X fonts
(when should they instead be in /usr/local/share/fonts/truetype?)
Fonts just for particular users (just for print?) are located in ~/.fonts/
list installed fonts (at least, those known of by the fontconfig system):
fc-list
GNOME
GNOME has a location you can copy fonts to to install them: fonts://. This seems to be a compendium of all the system fonts in /usr/share/fonts/truetype/ and below and your personal fonts in ~/.fonts.
Installing Individual TrueType Fonts (TTF) For Print
If a font isn't available in a Debian package you can install individual fonts from other sources.
For a particular user
- As yourself, if it doesn't already exist create
~/.fonts - As yourself, copy/save .ttf font file(s) to
~/.fonts/ - Regenerate the fonts cache:
$ fc-cache -fv ~/.font
For all users
- As root, copy .ttf font file(s) to
/usr/share/fonts/truetype/<my font's directory> - Regenerate the fonts cache:
# fc-cache -fv
(or log out and log in again) - Set permissions on font file(s) such that everyone can read them:
chmod 644 /usr/share/fonts/truetype/<my font's directory>/ -r
GNOME
For a particular user
If you, logged in as an ordinary user, drag and drop or copy and paste fonts to fonts:// it saves them in ~/.fonts and they're subsequently only available to you. You won't see the font appear in the list, though if you try to copy it again GNOME will say it's there and it is actually there. I haven't tried but you may have to logout and login again to see them in the list.
For all users
Presumably you need to be root to put fonts there to be available for the system, rather than for you individually? There's no way to 'become root' through the user interface so you have to run Nautilus from the command-line as root (but will they actually be saved in root's ~/.fonts or in /usr/share/fonts/truetype/?)
Comment
Does any or all of this apply to non-truetype fonts?
If I select to download a font from the web, it defaults to opening in gnome-font-viewer but you can't do anything in gnome-font-viewer other than look at it, which seems kind of pointless, what you want is buttons to 'install' and be asked 'Install for just you' or 'Install for all users', with the latter asking for the root password.
(See Font Sadness by Aaron Bockover, GNOME Bug 495510 - enable gnome-font-viewer to install fonts and GNOME Bug 86598 - Install new fonts through the font dialog.
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-
TrueType Fonts in Debian mini-HOWTO by Bear Giles: tldp.org/HOWTO/TT-Debian.html#toc1 (from 2000 so might be outdated)
Linux fonts (mostly X11): sabi.co.uk/Notes/linuxFonts.html
http://bugzilla.gnome.org/show_bug.cgi?id=160547
Office suite - Word processor, spreadsheet, presentation, database, layout
Package(s)
- Office suite, either
- OpenOffice.org
(openoffice.debian.net, openoffice.org/)
- openoffice.org - word processor, spreadsheet, presentation, database
- openoffice.org-help-<locale> (i.e. openoffice.org-help-en-gb, openoffice.org-help-en-us) - user help
- openoffice.org-l10n-<locale> (i.e. openoffice.org-l10n-en-gb, openoffice.org-l10n-en-us) - localization of OpenOffice.org in specific languages - by default the openoffice.org package will install the openoffice-l10n-<locale> 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 / openoffice.org-thesaurus-en-gb (they're the same package))
- openoffice.org-gnome - GNOME Integration for OpenOffice.org.
Contains the Gtk plugin for drawing OpenOffice's widgets with Gtk+ and a Gtk/GNOMEish File Picker when running under GNOME,
GNOME VFS support and a GConf backend. It also contains a QuickStarter for the "notification area".
(The widgets, dialogs and quickstarter are provided by the openoffice.org-gtk package, which it depends on;
the ooqstart-gnome package has been replaced by openoffice.org-gtk).
XFCE users will want to install just the openoffice.org-gtk package instead. - openoffice.org-evolution - allows OpenOffice.org to access Evolution 2 address books
- Note that installing locale and language-specific packages may in future be superceded by bug 325218 - 'Completed and rationalized language and language-desktop tasks'.
- See also Spellcheckers and Dictionaries
- 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-doc - word processor
- gnumeric, gnumeric-doc - spreadsheet
- (also includes evolution - groupware client, including email)
- OpenOffice.org
(openoffice.debian.net, openoffice.org/)
- Scribus (1.3 'stable' unstable development version)
- scribus-ng - layout / desktop publisher
- scribus-template - additional templates for Scribus
- scribus-ng-doc - english-language documentation for the internal help browser [Section: non-free]
- evince - www.gnome.org/projects/evince/ - PDF viewer. [Version: 0.4.0]
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
Apart from using OpenOffice, this information is based on using a MySQL database.
Package(s)
- openoffice.org - 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-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
- ODBC database connector - ODBC is the Open Database Connectivity abstraction layer which is understood by a variety of database tools that cannot talk to the databases directly.
- unixodbc - www.unixodbc.org/ - includes ODBC Driver Manager (shared library), isql (utility). [Interface: command-line; Version: 2.2.11] [WOULD BE BETTER IF IT RECOMMENDED unixodbc-bin: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=240035; and it needs a better package descirption than "ODBC tools libraries - Binaries and libraries from the unixODBC package."]
- unixodbc-bin* - OR MERGEANT? - www.unixodbc.org/ - Graphical tools for ODBC management and browsing. Three graphical applications for use with unixODBC, the Open DataBase Connectivity suite: ODBCConfig, a graphical configuration tool for managing database drivers and access to individual databases; DataManager, a simple browser and query tool for ODBC databases; and odbctest, a tool for testing the ODBC API itself. [Interface: graphical (QT); Version: 2.2.11]
WHICH PACKAGE BROUGHT ODBCINST? IT GIVES EVERY INDICATION OF HAVING ARRIVED WITH UNIXODBC BUT DPKG -L RECKONS NOT: odbcinst1debian1 - http://packages.debian.org/etch/odbcinst1debian1
- ODBC database driver - allow ODBC-enabled applications to access various databases
[ALSO COVER iODBC?]
- libmyodbc - MySQL ODBC driver for connecting to MySQL SQL database servers using ODBC. This provides /usr/lib/odbc/libmyodbc.so, an example for /etc/odbcinst.ini at /usr/share/libmyodbc/odbcinst.ini and an example for odbc.ini at /usr/share/doc/libmyodbc/examples/odbc.ini. [Version: 3.51.11] [WHY DOESN'T IT COPY THE EXAMPLE odbcinst.ini TO /etc?]
- tdsodbc* - FreeTDS ODBC driver for connecting to Microsoft SQL and Sybase SQL servers (using their Tabular DataStream protocol).
- odbc-postgresql* - odbc.postgresql.org/ - ODBC driver for PostgreSQL [THIS PACKAGE DESCRIPTION IS BRILLIANT. I SHOULD EMAIL THEM TO CONGRATULATE THEM. Debian should have a package descrption policy, one of the tenets should be that no prior knowledge can be assumed so a synopsis must be given of the context of this package. this might even be able to be automated using the tags]. [Interface: daemon]
Usage
Connecting to a remote database - create a data source
Register data sources so that applications such as OpenOffice know of them.
manually - THO IT SEEMS WORTH NOT CREATING IT BY HAND AS THERE ARE SOME THINGS TO KEEP TRACK OF IN THE FILE THAT AUTOMATED TOOLS DO FOR YOU
ODBC driver definition file location: /etc/odbcinst.ini
ODBC driver definition file syntax for libmyodbc:
[MySQL]
Description = MySQL driver
Driver = /usr/lib/odbc/libmyodbc.so
Setup = /usr/lib/odbc/libodbcmyS.so
CPTimeout =
CPReuse =
ODBC user data source definition file location: ~/.odbc.ini
ODBC system data source definition file location: /etc/odbc.ini
ODBC data source file syntax for MyODBC:
[MySQL-test]
Description = MySQL database test
Driver = MySQL
Server = <server hostname>
Database = <database name>
User = <database username to connect as>
Password = <database password to connect as>
Using the command-line
Driver: odbcinst -i -d -f /usr/share/libmyodbc/odbcinst.ini Data source: System: odbcinst -i -s -l -f template.ini User: odbcinst -i -s -h -f template.ini SHOULD THIS COMMAND EVEN BE USED BY A PERSON? SHOULD THIS FILE EVEN BE CREATED MANUALLY?Using GNOME
DRIVER...To create an ODBC data source just for the particular user you're logged in as, Applications → Debian → Apps → Databases → ODBCConfig → User DSN.
To create an ODBC data source for all users of this system, run ODBCConfig from the command-line whilst root, then choose '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/
GNOME-DB: www.gnome-db.org/
Web editing
Package(s)
- For a WYSIWYG web editor your options are probably limited to Iceape Composer (AKA Seamonkey 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/). In future there'll be Mozilla Composer.
- Bluefish - bluefish.openoffice.nl - an editor for experienced web designers and programmers. It supports many programming and markup languages, but focuses on editing dynamic and interactive websites.
- iceweasel-dom-inspector (AKA firefox-dom-inspector) - tool for inspecting the DOM of web pages in IceWeasel / 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 IceWeasel / 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 IceWeasel / 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 IceWeasel / 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)
- IceWeasel / 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.
- iceweasel-gnome-support
- iceweasel-l10n-<locale> - localisations for your spoken language (i.e. iceweasel-l10n-en-gb)
- latex-xft-fonts - Xft-compatible versions of some LaTeX fonts, for MathML documents;
- flashplugin-nonfree - Adobe 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)] [Architecture: i386 / 32-bit only, Adobe don't yet provide a 64-bit version; 9.0.48.0.2 adds AMD64 support]
- Add-ons
- Adblock Plus - adblockplus.org - block adverts. Not available in a Debian archive so download the XPI file from adblockplus.org/en/installation and use Iceweasel / Firefox's Tools → Add-ons to install per-person.
- 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
- IceDove / Mozilla Thunderbird -
www.mozilla.com/thunderbird/ -
Icedove is an unbranded Thunderbird mail client suitable for free distribution.
See Wikipedia's article about IceWeasel
for background on why Thunderbird in Debian is called IceDove.
- icedove-gnome-support - GNOME integration to Icedove
- icedove-locale-<locale> (i.e. icedove-locale-en-gb) - localised language package of menus and messages for IceDove
- icedove-traybiff - provides notification of new email arrival in Icedove through the GNOME system tray.
- See also Spellcheckers and Dictionaries
- Extensions
- Adblock Plus - adblockplus.org - block adverts. Not available in a Debian archive so download from adblockplus.org/en/installation and use IceDove / Thunderbird's Tools → Extensions to install per-person.
- Enigmail - enigmail.mozdev.org/ -
access the authentication and encryption features provided by GnuPG
- enigmail - version 0.94.2. This will be installed for all users.
- enigmail-locale-<locale> (i.e. enigmail-locale-de) - localised language package of menus and messages for enigmail. Not required for English.
- Lightning - http://www.mozilla.org/projects/calendar/lightning/ - calendar. Not available in a Debian archive so download from www.mozilla.org/projects/calendar/lightning/download.html and use IceDove / Thunderbird's Tools → Extensions to install per-person. Track developments at the Calendar Weblog: weblogs.mozillazine.org/calendar/.
- Mail Redirect - mailredirect.mozdev.org/ - adds ability to redirect (as opposed to forward) emails. Not available in a Debian archive so download from https://addons.mozilla.org/en-US/thunderbird/addon/550 and use IceDove / Thunderbird's Tools → Extensions to install per-person.
- Sylpheed Claws - claws.sylpheed.org. Particularly light weight.
- sylpheed-claws-gtk2
- sylpheed-claws-gtk2-doc
- sylpheed-claws-gtk2-clamav
- sylpheed-claws-gtk2-spamassassin
- Evolution - gnome.org/projects/evolution/ - groupware client (including email)
- liferea - liferea.sourceforge.net - Linux Feed Reader - RSS/RDF/Atom/Echo/PIE feed, CDF channel and OCS directory reader for GNOME
- xchat-gnome - xchat-gnome.navi.cx - IRC (Internet Relay Chat) client. This is a simplified version of X-Chat, more in-keeping with GNOME.
- pidgin - pidgin.im - instant messaging
- Plugins
- pidgin-otr - Off-the-Record (OTR) Messaging plugin. "OTR allows you to have private conversations over IM by providing: a) encryption - no one else can read your instant messages; b) authentication - you are assured the correspondent is who you think it is; c) deniability - the messages you send do _not_ have digital signatures that are checkable by a third party. Anyone can forge messages after a conversation to make them look like they came from you. However, _during_ a conversation, your correspondent is assured the messages he sees are authentic and unmodified. d) Perfect forward secrecy - If you lose control of your private keys, no previous conversation is compromised."
- amule - www.amule.org - peer2peer client
- freeloader torrent / Bittorrent downloader
- Remote Access Clients
- gftp-gtk - gFTP (GTK+ version) - gftp.seul.org - GNOME FTP, FTPS, HTTP, HTTPS and SCP (using SSH2) client. Lacking in advanced features such as synchronisation and has some usability issues. Upstream development is very slow. Similar to Filezilla but the version of Filezilla available (3.0.0~beta2) is too immature (i.e. when downloading, doesn't create directories that don't already exist) and uses the wxWidgets toolkit rather than GTK+. (though if you want it you can download and install it manually from filezilla-project.org - use the pre-built version for 'Linux' rather than the 'Source code' version as the version of wxWidgets in Debian Etch is too old to compile FileZilla).
- tsclient - www.gnomepro.com/tsclient/.
GNOME client to remotely access Microsoft Windows NT4 Terminal Server, Windows 2000/2003 Terminal
Services and Windows XP Remote Desktop Sharing (using the rdesktop program to do RDP - Remote
Desktop Protocol);
VNC - Virtual Network Computing (using the vncviewer program);
Citrix ICA (using ?);
X Windows (using the xnest program to do XDMCP - X Display Manager Control Protocol).
The default Debian desktop includes grdesktop, a client that only supports Windows Terminal Services and XP Remote Desktop Sharing. Replace grdesktop with tsclient. - xvnc4viewer - www.realvnc.com - command-line VNC client. Provides xvnc4viewer, xvncviewer and vncviewer. (the similar xvncviewer package is version 3.3.7)
- rdesktop - www.rdesktop.org - command-line RDP client
- xnest - command-line XDMCP client. The package description recommends instead using xserver-xephyr but this doesn't provide the xnest program required by tsclient.
- openssh-client - www.openssh.com - command-line SSH, SCP and SFTP client. Debian installs this by default. Provides these programs: ssh, scp, sftp, ssh-agent, ssh-add, ssh-keygen, ssh-keyscan, ssh-copy-id, ssh-argv0.
- secpanel - secpanel.mymediahost.de - a GNOME interface for managing and running SSH (secure shell) and SCP (secure network copy) connections. It eases key distribution and other related tasks. The shortcut is in Debian → Apps → Net → SecPanel SSH Frontend
Configuration
Iceweasel / Firefox
Set Iceweasel / Firefox as the preferred GNOME web browser: Desktop → Preferences → Preferred Applications - change 'Custom' - 'gnome-www-browser %s' to 'Iceweasel'.
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
pidgin-otr
To enable it, right-click on the Pidgin system tray applet -→ Plug-ins -→ Off-the-Record Messaging -→ and choose to enable it. To configure it for use choose Configure Plug-in -→ Config -→ My private keys -→ Generate.
Usage
pidgin-otr
To enable OTR, initiate a conversation with someone. Choose 'OTR: unverified' in the bottom left of the chat window. Choose to verify the person and then confirm and they'll be added to the list of verified people you can access in the plug-in's preferences.
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 has less features; 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
- gtkam-gimp - Gimp plug-in of gtkam. gtkam is a graphical application based on GTK+ for digital still cameras supported by gphoto
- gimp-print - printing support
- 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
- gimp-ufraw - ufraw.sourceforge.net - allows GIMP to open digital camera images in 'raw' format. This can be used instead of the standalone version of UFRaw. See ufraw section for other details.
- gimp-svg - gimp.org - necessary for opening SVG (Scalable Vector Graphics) files in The GIMP
- (other plug-ins might be mentioned in other sections specific to their areas of operation)
- ufraw - ufraw.sourceforge.net
- UFRaw - The Unidentified Flying Raw -
standalone GNOME program to convert and manipulate raw images from digital cameras;
do basic colour management, allowing you to apply colour profiles
(using an incorporated Little CMS);
read most existing raw formats (using an incorporated
dcraw).
For GNOME.
Mostly UFRaw doesn't care what camera the image came from though some camera features effect UFRaw directly, one being white balance presets. UFRaw supports every camera supported by its version of DCRaw. For the supported cameras of the latest ufraw (though not necessarily the version you're using in Debian) see http://ufraw.sourceforge.net/Cameras.html. For more fine grained details of what features are and aren't supported see http://ufraw.sourceforge.net/wiki/Main_Page#Camera_database.
Further Information
Beginning GIMP: From Novice to Professional (a printed book): apress.com/book/bookDisplay.html?bID=10080
Colour Management
Software required for creating a colour managed workflow. This is a first draught of this section so isn't considered complete.
Package(s)
- icc-profiles - ICC color profiles for use with Scribus, Gimp, CinePaint, and other color profile aware software.
- lprof - sourceforge.net/projects/lprof - Graphical Hardware Color Profiler. A colour profiler that creates ICC compliant profiles for devices such as cameras, scanners, and monitors. These profiles provide color consistency across devices. They can be used in color profile-aware software such as GIMP, Scribus, etcetera. For an example of creating a profile that can be used with Scribus see http://www.atlantictechsolutions.com/scribusdocs/lcms/moncal.html. The argyll-bin package is an alternative, command-line, program.
References
Linux Color Management: en.wikipedia.org/wiki/Linux_color_management
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
Usage
The most secure way to run this is in 'Restrictive by default, whitelist traffic' mode, rather than the default 'Permissive by default, blacklist traffic'. Be aware this can be a major pain to use because typically things won't work and you'll not understand why, having forgotten that you have the firewall on, even with the system tray applet visible. When you exit the system tray applet the firewall remains running at all times unless you explicity choose 'Stop Firewall', it just doesn't have a system tray applet to represent it. This further confuses (I think the system tray applet should instead say 'hide' rather than 'exit' or perhaps we shouldn't have it minimise to system try).
If you have the GUI turned on it'll turn red when it blocks a port and you can go to the Events section, right-click and choose one of either 'Allow Connections to Destination', 'Allow Outbound Service For Everyone', or 'Allow Outbound Service For Source'. I choose 'Allow Outbound Service For Everyone'. The nomenclature reflects the fact the software can also provide Internet connection sharing for other computers.
These are the outbound ports I've found useful to whitelist (as defined in /etc/firestarter/outbound/allow-service):
DNS, 53, everyone, DHCP, 67-68, everyone, FTP, 20-21, everyone, HTTP, 80, everyone, HTTPS, 443, everyone, IMAP, 143, everyone, Ircd, 6667, everyone, Openvpn, 1194, everyone, Samba (SMB), 137-139 445, everyone, SMTP, 25, everyone, Ssmtp, 465, everyone, Microsoft-ds, 445, everyone, IPCop web interface Unknown, 222, everyone, IPCop command-line interface Unknown, 9100, everyone, HP JetDirect printing Whois, 43, everyone,
Firestarter runs as a system service / daemon (controlled using /etc/init.d/firestarter with start, stop or restart or you can do so from the GUI) whose configuration is per-machine not per-user.
My own questions answered
If you explicitly allow an outgoing port, do you correspondingly need to explicitly allow the incoming port so you can 'hear back' from the thing you've connected with?
in affect/effect(?), if you've requested something from somewhere then it coming back is trusted. By default Firestarter doesn't block absolutely everything: "Traffic from the Internet in response to connection requests from the firewall or client hosts is allowed back in through the firewall." (http://www.fs-security.com/docs/policy.php). It seems we should instead be talking about allowing outgoing connection requests and denying incoming connection requests.
"In most cases, the rules need to be symmetrical -- for instance, allowing request packets to go out to a remote web server only makes sense if the responses from that server are allowed to return. The exception to this rule are the "SYN" packets which are used to initiate a new connection. For instance, even though packets using the http protocol are allowed in so that you can receive data from a remote web site, http packets requesting a new connection might be blocked, to prevent outsiders from connecting to internal web servers." - http://netcfg.sourceforge.net/firewalls.html
'ping: sendmsg: Operation not permitted' How do I enable ping? I haven't enabled ICMP filtering in the preferences so why doesn't ping work?
Is it because: "By default Firestarter allows ICMP traffic, although it throttles it somewhat to prevent excessive flooding or Denial of Service attacks." - http://www.fs-security.com/docs/preferences.php
"? Run this command to fix this:
# iptables -A OUTPUT -p icmp --icmp-type echo-request -m state --state NEW -j ACCEPT
This means append to the IP chain/table OUTPUT rules. If you get a packet that uses the ICMP protocol, and its ICMP type is an echo request (ping), and it's new (this bit may have been a bit redundant, but the principle of knowing the state of the packets you want to send through is important) jump to the ACCEPT chain/table (which immediately pushes the packet through)."
Needs to go at the start of your iptables.
What is the performance hit of running Firestarter? are there shades of performance grey, such as if you add more rules it affects performance more?
Issues I feel it has
When you see Events you can see whether ports are TCP or UDP. The Policy section doesn't give the option of specifying whether you're defining UDP or TCP. They are actually for both. It's a shame it doesn't communicate this.
The Policy view doesn't show the 'comment'.
Annoyingly you have to apply rules per-interface, so if you wander with a laptop between wireless and wired you'll have to maintain two lists. Note that when you edit policies of an interface that isn't currently up and running it complains when it can't apply it when the interface isn't up ('Failed to apply outbound policy') but don't worry, it's still changing the rule).
Help → Online Users' Manual is broken, it leads to http://www.fs-security.com/docs/ which gives "Internal Server Error" (wrongly opened in Epiphany, when my default browser is set to Firefox). It should be http://www.fs-security.com/docs.php or their web site should be fixed.
Has development of Firestarter ceased? and does it have issues with newer kernels? http://sourceforge.net/mailarchive/forum.php?thread_name=f21rp3%249ph%241%40sea.gmane.org&forum_name=firestarter-user
Troubleshooting
To see the underlying iptables firewalling that Firestarter has configured:
iptables -L -n
Further Information
Newgroup: http://www.fs-security.com/list.php
Multi media players, including DVD
Package(s)
- Choose one or more of the following:
- totem-gstreamer - www.hadess.net/totem.php3 - comes by default with GNOME; using Gstreamer as a back-end (as opposed to totem and totem-xine which use Xine). If Totem won't play a particular DVD movie it can be worth trying VLC, as VLC can succeed where Totem fails.
- 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.
- mplayer-nogui - the main Debian archive includes the package 'mplayer' with more disabled options (see debian-multimedia.org/faq.html for which). See the The Debian and mplayer FAQ. [Requires additional repository: Debian Multimedia]
- mplayer-doc - Documentation for MPlayer, in Chinese, English, French, German, Hungarian, Italian and Polish
- 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]
- 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. [Interface: CLI]
- You don't need to mount the DVD, the DVD playing software deals with it directly
- At least with VLC, 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 these libdvdcss environment variables DVDCSS_METHOD and DVDCSS_VERBOSE to understand what libdvdcss is trying to do
Search & Indexing
Package(s)
- beagle - beagle-project.org/
- A desktop search utility for indexing and searching your personal data. At the moment, it can index
filesystems, Gaim logs, Evolution mail and data, RSS and other.
The initial indexing will take some time - a Pentium III era computer with 256MB RAM will probably feel a bit more sluggish during the initial indexing once that is done (how long it takes depends on how much indexable data there is) the machine should behave ok. Being a Mono application, it's not exactly light weight, but for example it will way less memory than Firefox. - beagle-backend-evolution - Backend that allows Beagle indexing calendar and contact entries from Evolution.
Configuration
Command-line
beagle-config
GNOME
Applications → Accessories → Search & Indexing
Usage
GNOME
Applications → Accessories → Search
Audio / Sound - Encode and Play
Thus far the following formats are covered: Ogg Vorbis, FLAC, MP3, AAC, WMA and RealAudio.
Package(s)
Libraries for playing
- libogg0 - for Ogg Vorbis - www.vorbis.com/.
- libflac7 - for FLAC - flac.sourceforge.net/
- libmad0 - for MP3 / MPEG-1 Layer 3 - www.underbit.com/products/mad/
- ? libxine1 - xinehq.de/ - an alternative for MP3 / MPEG-1 Layer 3 (using libmad0), Ogg Vorbis (using libogg0) and FLAC (using libflac7) [does it do other formats itself?].
- libfaad0 - for AAC (MPEG-4 and MPEG-2 LC, LTP, MAIN; MPEG-4 LD; ER(?) [not SRS / SSR?]) - www.audiocoding.com/ [Requires additional repository: Debian Multimedia]
- libavcodeccvs51 (one part of ffmpeg) - for AAC (using libfaad0), WMA (versions 1 and 2) and RealAudio (versions 1, 2, 3, 6, 8) - ffmpeg.mplayerhq.hu/. The main Debian archive alternatively includes libavcodec0d with no MP3 encoding or AAC support. [Requires additional repository: Debian Multimedia]
Libraries for encoding
- libogg0 - for Ogg Vorbis - www.vorbis.com/
- libflac7 - for FLAC - flac.sourceforge.net/
- liblame0 - for MP3 / MPEG-1 Layer 3 - lame.sourceforge.net/index.php
- libfaac0 - for AAC (MPEG-4 LC, LTP and MAIN, not SRS / SSR; MPEG-2 LC and MAIN, not SRS / SSR) - www.audiocoding.com/. [Requires additional repository: Debian Multimedia]
- libavcodeccvs51 (one part of ffmpeg) - for AAC (using libfaac0), WMA (versions 1 and 2) and Real Audio (version 3) - ffmpeg.mplayerhq.hu/. The main Debian archive alternatively includes libavcodec0d with no MP3 encoding or AAC support. [Requires additional repository: Debian Multimedia]
GStreamer plugins for playing
- gstreamer0.10-plugins-base - for Ogg Vorbis - gstreamer.freedesktop.org/modules/gst-plugins-base.html
- gstreamer0.10-plugins-base-doc - documentation, installed in /usr/share/gtk-doc/html/gst-plugins-base-libs-0.10 and /usr/share/gtk-doc/html/gst-plugins-base-plugins-0.10/
- gstreamer0.10-plugins-good - for FLAC - gstreamer.freedesktop.org/modules/gst-plugins-good.html.
- gstreamer0.10-plugins-good-doc
- gstreamer0.10-plugins-ugly - for MP3 / MPEG-1 Layer 3 - gstreamer.freedesktop.org/modules/gst-plugins-ugly.html. Uses libmad0.
- gstreamer0.10-plugins-ugly-doc
- gstreamer0.10-plugins-really-bad - for AAC - gstreamer.freedesktop.org/modules/gst-plugins-bad.html. Uses libfaad0. The main Debian archive alternatively includes gstreamer0.10-plugins-bad. [Requires additional repository: Debian Multimedia]
- gstreamer0.10-ffmpeg-full - for AAC, WMA (versions 1 and 2) and RealAudio (versions 1, 2, 3, 6, 8) - gstreamer.freedesktop.org/modules/gst-ffmpeg.html. Doesn't rely on an external copy of the ffmpeg libavcodeccvs51 library as it incorporates it. The main Debian archive alternatively includes gstreamer0.10-ffmpeg; the Debian documentation doesn't describe what is disabled but it is likely MP3 encoding and AAC support. [Requires additional repository: Debian Multimedia]
GStreamer plugins for encoding
- gstreamer0.10-plugins-base - for Ogg Vorbis - gstreamer.freedesktop.org/modules/gst-plugins-base.html
- gstreamer0.10-plugins-base-doc
- gstreamer0.10-plugins-good - for FLAC - gstreamer.freedesktop.org/modules/gst-plugins-good.html.
- gstreamer0.10-plugins-good-doc
- gstreamer0.10-lame - for MP3 / MPEG-1 Layer 3. Uses liblame0.
- gstreamer0.10-plugins-really-bad - for AAC. Uses libfaac0. [Requires additional repository: Debian Multimedia]
- gstreamer0.10-ffmpeg-full - for AAC, WMA (versions 1 and 2) and RealAudio (version 3) - gstreamer.freedesktop.org/modules/gst-ffmpeg.html. Doesn't rely on an external copy of the ffmpeg libavcodeccvs51 library as it incorporates it. The main Debian archive alternatively includes gstreamer0.10-ffmpeg; the Debian documentation doesn't describe what is disabled but it is likely MP3 encoding and AAC support. [Requires additional repository: Debian Multimedia]
Command-line programs for converting
- vorbis-tools - for Ogg Vorbis - www.vorbis.com/. You use the oggdec program.
- flac - for FLAC - flac.sourceforge.net/. Uses libflac7
- madplay - for MP3 / MPEG-1 Layer 3 - www.underbit.com/products/mad/. Uses libmad0.
- faad - for AAC - www.audiocoding.com/. uses libfaad0. [Requires additional repository: Debian Multimedia]
- ffmpeg - for AAC, WMA (versions 1 and 2) and RealAudio (versions 1, 2, 3, 6, 8) - ffmpeg.mplayerhq.hu/. Uses libavcodeccvs51. [Requires additional repository: Debian Multimedia]
Command-line programs for encoding
- vorbis-tools - for Ogg Vorbis - www.vorbis.com/. Uses libogg0. You use the oggenc program.
- flac - for FLAC - flac.sourceforge.net/. Uses libflac7.
- lame - for MP3 / MPEG-1 Layer 3 - lame.sourceforge.net/index.php. Uses liblame0.
- faac - for AAC - www.audiocoding.com/. Uses libfaac0. [Requires additional repository: Debian Multimedia]
- ffmpeg - for AAC, WMA (versions 1 and 2) and RealAudio (version 3) - ffmpeg.mplayerhq.hu/. Uses libavcodeccvs51. [Requires additional repository: Debian Multimedia]
Command-line programs for playing
- vorbis-tools - for Ogg Vorbis - www.vorbis.com/. Use the included ogg123 program.
- vorbis-tools - for FLAC - www.vorbis.com/. Use the included ogg123 program.
- ? madplay - for MP3 / MPEG-1 Layer 3 / ? mpg123 / ? mpg123-alsa
- Need to add cumulative packages here... ? mplayer / ? mplayer-nogui / ? xmms2
GNOME programs for converting
To do!
GNOME programs for ripping and encoding
- sound-juicer - burtonini.com/blog/computers/sound-juicer - GStreamer-based - rips from CD Audio, encodes into whichever the installed GStreamer supports
GNOME programs for playing (only)
- totem-gstreamer (GStreamer-based)
- totem-xine (Xine-based)
Stand-alone programs for playing (not for a specific desktop environment)
These players are not based on a specific back-end, instead using a combination of their own abilities and including lots of libraries
- ? VLC [interface: GTK]
- ? mplayer / ? mplayer-nogui with a GUI
- ? xmms2 with a GUI and plugins
GNOME programs for ripping, encoding, playing and managing
- rhythmbox - www.gnome.org/projects/rhythmbox/ - (GStreamer-based)
- banshee - banshee-project.org - (GStreamer-based)
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 for GNOME
- 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 (Audacity 1.3.0 will use GTK 2) and only working with OSS rather than ALSA; 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 for GNOME
- mhwaveedit - "Simple and fast GTK2 sound editor. (We haven't tried this yet, but it seems a promising option). It is intended to be user-friendly and robust. It does not require a fast computer. Supports JACK, ALSA and OSS."
- snd - single-track audio editor, for an even slower smaller computer. (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
- omins
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?). [Section: 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
- 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.
- p7zip-full - p7zip.sourceforge.net - 7-Zip (7-zip.org) is the file archiver that archives with the highest compression. This package will also handle ZIP, Zip64, CAB, RAR, ARJ, GZIP, BZIP2, TAR, CPIO, RPM, ISO and DEB formats. It includes programs 7z (handles all the above formats) and 7za (handles less formats than 7z). If you need to save space (2.5MB) you can instead install the p7zip package with its 7zr / p7zip program, a 'light' version of 7za which only includes support for the 7z format. If you want just the 7Zip library you can install the lzma package.
- 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.
- 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. [Section: 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.5 | Author(s): David Eriksson | Licence: MIT] - unzip - www.info-zip.org/UnZip.html
- ytnef - ytnef.sourceforge.net - Yerase's TNEF Stream Reader allows you to decode application/ms-tnef e-mail attachments, which are usually entitled "winmail.dat" and are generally a file container format that is only readable by Microsoft Outlook. Some TNEF streams also include RTF-formatted data. Ytnef parses these streams into normal MIME attachments and RTF attachments that you can read from non-Outlook mail readers.
It also handles VCAL format calendar / meeting requests, though this may not work when dealing with newer versions of Outlook.
A convenience script is provided to allow users to transparently filter messages containing TNEF attachments into messages with proper attachments, via procmail.
ytnef isn't yet a drop-in replacement for tnef. - zip - www.info-zip.org/Zip.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.
Runtime Environments - Java Runtime Environment (JRE)
Package(s)
- sun-java5-jre - Sun Java Platform Standard Edition Runtime Environment 5.0. [Section: non-free; Architecture: i386 only, not amd64]
- sun-java5-plugin - The Java SE 5.0 Plug-in for browsers. Enables applets written to the Java Platform 5.0 specification to be run in Mozilla and other web browsers. This is a metapackage containing dependencies for running Java in various browsers. [Section: non-free; Architecture: all]
Further Information
Debian GNU/Linux Java FAQ: www.debian.org/doc/manuals/debian-java-faq/
Runtime Environments - Mono
Package(s)
- mono-runtime - version 1.2.2.1 - www.mono-project.com/ - allows you to run .NET client and server applications
Sound card
Package(s)
- alsa-base - ALSA, the Advanced Linux Sound Architecture, is the driver (alsa-project.org/)
- alsa-utils - utilities for configuring and using ALSA: alsamixer, amidi, amixer, aplay, iecset, aconnect, aplaymidi, arecordmidi, aseqdump, aseqnet, speaker-test, asoundconf
- There are various utilities for controlling some specific sound cards: alsa-tools, alsa-tools-gui, alsa-firmware-loader
- 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?
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; - By default the Master and PCM levels are muted
(in GNOME's Applications → Sound & Video → 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 - 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 → Sound & Video → Volume Control
- configure advanced features of your sound card: Applications → Sound & Video → GNOME ALSA Mixer
Troubleshooting
- check what sound card you have with
lspci | grep audio, then check you have a Linux kernel device driver 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 [Linux kernel device driver] 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)
This is an interesting document on changes to be made to printing packages in Debian: PrinterDriverPackagesSuggestedChanges.
When printing to a directly attached printer
- CUPS - Common UNIX Printing System
- cupsys - server (changes in CUPS 1.3)
- 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.- Gutenprint (was called Gimp-Print)
- cupsys-driver-gutenprint
or ijsgutenprint - universal printer driver for non-PostScript printers.
Check the list of supported models
or use the command
man gimpprint-models. - gutenprint-doc
- gutenprint-locales - for locales other than US English; needed when you want the programs in Gutenprint to print their messages in other languages than US English
- cupsys-driver-gutenprint
or ijsgutenprint - 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).
- hplip-doc
- 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
- min12xxw - www.hinterbergen.de/mala/min12xxw/ - CUPS/Foomatic printer driver for the KonicaMinolta PagePro 1200W, 1250W, 1300W, 1350W and 1400W.
- 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)
- There are other printer drivers not available in Debian, such as:
PXLJR - hp-pxl-jetready.sourceforge.net/ for HP Color LaserJet 3500, 3550 and 3600;
Omni - omniprint.sourceforge.net/ for various Brother, Canon, Epson, HP, IBM, KS, Kyocera, Okidata, Panasonic and Star printers.
- Gutenprint (was called Gimp-Print)
- Foomatic database for various print drivers
- foomatic-db-gutenprint - database for Gutenprint 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
- hplip-ppds (was hpijs-ppds) - for Hewlett-Packard printers
- foomatic-filters-ppds - These are those available individually from linuxprinting.org / http://www.linux-foundation.org/en/OpenPrinting. This package includes drivers for a huge number of printers, see the list of files included.
- PPD files for PostScript printers
- linuxprinting.org-ppds - PPD files for PostScript printers supplied under free licences by printer manufacturers; for those under non-free licences you have to go to the manufacturer's web site. These are those available individually from linuxprinting.org / http://www.linux-foundation.org/en/OpenPrinting. This package includes drivers for a huge number of printers, see the list of files included.
- hp-ppd - PPD files for some Hewlett-Packard PostScript printers that aren't included in
the linuxprinting.org-ppds package: HP_Business_Inkjet_2500C_Series.ppd,
HP_ColorLaserJet_5-5M.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_3200M.ppd, HP_LaserJet_5.ppd,
HP_LaserJet_5000_Series.ppd, HP_LaserJet_5P.ppd and HP_LaserJet_6P.ppd.
Note that in the next version of Debian any of these drivers could have moved into the linuxprinting.org-ppds package.
- 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 Gimpprint / 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 Ghostscript PostScript interpreter - ESP version (the ESP version of Ghostscript is better maintained and suited to CUPS than AFPL's versions gs-afpl and gs-gpl though this will likely change when Ghostscript 8.60 is available)
- 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 Desktop → Administration → 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 (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
- 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 + Gutenprint v<version-number> (<language>) (despite appearances, for this choice to work you have to have previously installed the Gutenprint 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, either leaving it in the same directory or you can copy it elsewhere
- Gutenprint drivers are located in
/usr/share/cups/model/gutenprint/<version-number>/<language>/, so you should uncompress it with the commandgzip -d /usr/share/cups/model/gutenprint/<version-number>/<spoken-language>/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>
- Gutenprint 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
wheredevice-nameis 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 nothing happens. 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 Colour 740 or newer).
Troubleshooting
List available devices on the system: lpinfo -v
List available drivers on the system: lpinfo -m
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. [Version: 1.0.14]
- xsane - graphical scanning software for local or remote scanners. [Version: 0.991]
- libsane-extras - www.fifi.org/doc/libsane/README.Debian - some backends that are not yet included into the official SANE distribution: epkowa (some EPSON scanners); geniusvp2 (Genius ColorPage-Vivid Pro II); hp_rts88xx (HP ScanJet 4400C, HP ScanJet 4470C); hp3900 (HP ScanJet 3970C, HP ScanJet 4070, HP ScanJet 4370). [Version: 1.0.18.5]
Configuration for locally attached scanners
If the scanner uses a USB interface, if its vendor ID and product ID are recognised by the system and it doesn't require a firmware file adding then it will likely just work without any of the following configuration. Key to this recognition is whether the configuration file relative to the scanner's family contains the vendor ID and product ID of the particular scanner.
You can find information about support in the latest upstream version of SANE for particular scanners at www.sane-project.org/sane-supported-devices.html. You can find (briefer) informatiion about support in Debian Etch's version 1.0.14 of SANE for particular scanners at www.sane-project.org/sane-backends-1.0.14.html
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
- USB - libusb (libusb.sourceforge.net)
- SCSI - it was previously devfs, don't know what it is now
- Parallel - this document doesn't cover parallel port attached scanners
There are different means of locating the scanner dependent on interface
- USB - libusb (the numbers may be different for your scanner)
- if the backend knows your scanner, then it's 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's referenced by the method used and its location:
- SCSI - one of the following generic SCSI devices (the number may be different for your scanner)
/dev/sg4/dev/sge- It's worth creating a symlink for SCSI (not USB) scanners at
/dev/scanner
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'- TODO: add a SCSI example
scanimage -L
Example outputs:device 'epson:libusb:002:003' is a Epson Perfection610 flatbed scanner
This additionally tells us the backend is called 'epson'.- TODO: add a SCSI example
- If you have a USB scanner,
lsusbwill display attached USB devices, their BUS and IDs that can be useful
Firmware
Some USB-attached scanners require firmware loading into them each time they're turned on.
Go to http://www.sane-project.org/sane-supported-devices.html and look up the scanner to see which backend is required and thus the name of the backend config file /etc/sane.d/<backend name>.conf. Bear in mind this information is for the latest upstream SANE version, not the older version 1.0.14 in Debian Etch.
There might be some firmware information in the 'Comment' field but it won't be much. It seems if it appears there then it won't be in the man page.
Click on the link for the backend and be taken to a man page (or use your system's man page). If firmware is required there should be a 'FIRMWARE FILE' section with the firmware filename, suggestions of to get it, where to create the directory for it and save it - attributes that are defined in the backend configuration file.
Note: the man pages on the web say to put the firmware file in /usr/local/share/sane/<backend name>/" but Debian instead requires them in /usr/share/sane/<backend name>/
Some firmware files are freely redistributable and so are available from the backend homepage, linked to from the 'Backend' column. Most are not. You might find the uncompressed firmware file in these locations on the CD that came with the scanner or on a Windows system that has the scanner driver installed. Otherwise, you might find the Windows installer program, from which you can get the firmware file, on the CD that came with the scanner, the scanner manufacturer's web site or elsewhere. You might need to use one or a combination of these methods to get the firmware file from the Windows installer file:
- extract from within GNOME/XFCE/KDE etcetera - in my experience GNOME wouldn't extract a file that cabextract would at the command-line
- cabextract
- unshield - you may need to use a combination of cabextract and unshield if there are .cab files.
- unzip
- 7z or p7zip - in my case 7z worked but p7zip didn't
- wine
- if it's a self extracting executable, run it using Wine and it might decompress it
- if it's an installer, run it using Wine then look in the C:\windows\system32\drivers equivalent
- Install it on a Windows system then look in C:\windows\system32\drivers
Test the scanner
This is the syntax:
scanimage -d <backend-name>:<location> --format <saved image format> > <saved image filename>
These are example commands you might use:
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 or scanner's chipset. The means of accessing the scanner and possibly other options must be defined in the backed configuration file, /etc/sane.d/<backend-name>.conf. The backend for most Hewlett Packard scanners is called 'hp', see www.kirchgessner.net/sanehpfaq.html; The backend for most Epson scanners is called 'epson', see www.freecolormanagement.com/sane/.
- USB
- If the backend knows the particular scanner (by its vendor ID and product ID), using just 'usb' in the particular backend configuration file should be enough to use the scanner; this instructs the backed to scan for all the scanners it knows.
Some scanners require additional configuration in a section specific to their vendor ID and product ID in the particular backend configuration file. - If the backend doesn't know the scanner you'll have to put the vendor and product IDs, as reported by
sane-find-scanner -v, into the backend configuration file yourself.Note: the documentation in the configuration file says to use the syntax 'usb <product ID> <device ID>';
sane-find-scanneruses 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 bysane-find-scanner, but you can use either method.
- If the backend knows the particular scanner (by its vendor ID and product ID), using just 'usb' in the particular backend configuration file should be enough to use the scanner; this instructs the backed to scan for all the scanners it knows.
- SCSI - one of the following:
- 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
man sane-scsifor further description of how this works)
- The name of the generic SCSI device that the scanner is connected to, as described earlier. The backend configuration file already includes
Permissions
Users need to be a member of the group scanner.
Device permissions:
- USB
- if the backend knows the scanner, permissions should be automatically set correctly. (see www.khk.net/sane/libusb.html and possibly jmccoy.sdf-us.org/linux/config/scanner.php for background on this).
- TODO: how to set permissions if the backend doesn't know the scanner (see www.khk.net/sane/libusb.html).
- SCSI - set the access permission for the generic SCSI device such that it's a member of the group
scannerwith group read and write access. For example, if the scanner is at generic SCSI device /dev/sg0:
# chgrp scanner /dev/sg0
# chmod 660 /dev/sg0
Configuration for sharing a scanner
See the scanning section in our 'Server Setup with Debian 4.0 Etch' document.
Configuration for connecting to a remote scanner
- Make sure
/etc/sane.d/dll.confcontains the line 'net' and that the scanner backend you require is listed. It's safer to remove or comment out all other references in 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
This is the command's syntax:
scanimage -d <backend-name>:<location> --format <saved image format> > <saved image filename>.
These are example commands you might use:
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, they're called 'sane-<backend-name>' (e.g. sane-epson and sane-hp).
Permission information: /usr/share/doc/sane-utils/README.debian
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/
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/.
Digital Video Broadcasting (DVB-T / Freeview)
This section is specific to DVB-T as that is the only DVB equipment I have access to but the procedures are theoretically very similar for DVB-C and DVB-S. Some of it is also UK-specific.
Introduction
The Digital Video Broadcasting Project: www.dvb.org
Wikipedia on DVB: en.wikipedia.org/wiki/DVB
There are many forms of DVB, these are typical:
- DVB-S - 'Digital Video Broadcasting - Satellite' - the original DVB for satellite television in MPEG-2 format - en.wikipedia.org/wiki/DVB-S
- DVB-C - 'Digital Video Broadcasting - Cable' - digital television over cable in MPEG-2 format - en.wikipedia.org/wiki/DVB-C
- DVB-T - 'Digital Video Broadcasting - Terrestrial' - digital television over a terrestrial aerial in MPEG-2 format - en.wikipedia.org/wiki/DVB-T
DVB receiver device
Devices will either be a card with a PCI interface to fit inside a computer or a portable device with USB interface. Choose carefully as not all devices are supported. From my limited experience I found the PCI Hauppage Nova-T range well supported. A typical example with USB devices is currently the Freecom DVB-T USB Stick 25451 revision 3 is supported but not revision 4 as it's based on a completely different chipset.
USB interface
Identification (by the kernal and yourself) is important and is all about the vendor ID and product ID.
- See if the device is recognised using
lsusb -v - Get more detail with
dmesg|grep dvb. If it thinks it knows what it is it will tell you explicitly which make and model it thinks it is. - There's a lot of information about dealing with specific devices at linuxtv.org/wiki/index.php/DVB-T_USB_Devices
PCI interface
Identification (by the kernal and yourself) is important and is all about the PCI ID.
- See if the device is recognised using
lspci -v(you'll get more information with an additional 'v' and by running it as root but this isn't necessary now) - Get more detail with
dmesg|grep dvb. If it thinks it knows what it is it will tell you explicitly which make and model it thinks it is.
Firmware
Some USB devices require firmware loading into them when they're turned on for them to work. Predominantly this firmware won't be available under a completely free licence so won't be included in Debian. If the device needs firmware you need to download it manually and save it in /lib/firmware.
dmesg|grep dvb might give you clues such as 'dvb-usb: did not find the firmware file. (dvb-usb-wt220u-fc03.fw)' and 'dvb-usb: downloading firmware from file 'dvb-usb-wt220u-fc03.fw''
linuxtv.org/wiki/index.php/DVB-T_USB_Devices has information about required firmware for particular devices including links to download some firmware. Additionally you can download other firmware from linuxtv.org/downloads/firmware.
Aerial
For the UK, get localised aerial advice from www.ukfree.tv.
You are likely to receive an aerial bundled with a USB device but it may not be good enough. A well recommended indoor aerial is the Telecam TCE2000 (currently £10 from Argos in the UK) or the version with the bundled amplifier the TCE2001 (currently £20 from Argos).
Kernel Driver
V4L-DVB - Linux DVB driver - www.linuxtv.org / http://www.linuxtv.org/wiki/.
Package(s)
- Tools
- dvbtune - allows the tuning of DVB cards supported by the Linux DVB driver. (Still very experimental, especially the XML output).
- dvb-utils - linuxtv.org/wiki/index.php/Dvb-utils. Known upstream as dvb-apps. A collection of the following:
- av7110_loadkeys - loads keyfiles of ir-remotes
- evtest - find out events-keys to generate a keyfile for your remote
- femon - monitor the signal-strength of a card
- scan - scan all transponders and generate a szap/tzap/czap compatible channel list (channels.conf). Scan does not do a frequency scan, however, so you must manually provide the data for tuning to one or more start transponders (TV transmitters). A number of initial-tuning-data files are provided for various DVB-C, DVB-S and DVB-T networks around the world in /usr/share/doc/dvb-utils/examples/scan/dvb-<DVB type>.
- czap - simple zapping / channel changing tool for DVB-C cards
- szap - simple zapping / channel changing tool for DVB-S cards
- tzap - simple zapping / channel changing tool for DVB-T cards
- dvbsnoop - dvbsnoop.sf.net - sniffer program to monitor, analyze, debug, dump or view DVB / MPEG / DSM-CC / MHP stream informations from a DVB card or recorded stream. For DVB cards, it can also dump frontend informations and status, and make a PID scan.
- dvbstream - the Debian package description claims it will "Broadcast a DVB Transport stream over a LAN. However http://linuxtv.org/wiki/index.php/Dvbstream also claims it can "be used to easily write a stream to harddisk".
- Players
- gxine
- mplayer / mplayer-nogui - used in the configuration below but another player could be used instead
Configuration - command-line
For the UK, get localised transmitter (multiplex) advice from www.ukfree.tv; transmitter (multiplex) information from www.ofcom.org.uk/static/reception_advice/index.asp.html; band channel to frequency information from www.digitalspy.co.uk/terrestrial/tuning/
The frequencies of channels depend on your local transmitter. Scan your local transmission (the frequency of which we get from a file) and save the resulting list of channels you can receive in channels.conf (alternatively linux.mikeasoft.com/dvb.php) has scan and channel lists for the UK):
scan /usr/share/doc/dvb-utils/examples/scan/dvb-t/<your country and transmitter name> | tee ~/channels.conf
Make a shortcut to channels.conf for the channel changing command 'tzap' to use:
mkdir ~/.tzap
cd ~/.tzap
ln -s ~/channels.conf channels.conf
Make the same shortcut to channels.conf for other programs you'll use to watch DVB streams, such as gxine and xine in ~/.xine; mplayer in ~/.mplayer (though mplayer prefers ~/.mplayer/channels.conf.ter)
Usage
Command-line
(This requires mplayer be installed)
Get channel names (e.g. BBC ONE) and PIDs (e.g. 600 601):
cat ~/channels.conf
For example: BBC ONE:754166670:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:600:601:4168 where the channel name is BBC ONE; the frequency to tune to is 754166670 Hz; the video PID is 600; the audio PID is 601.
Tune a frequency and program (assumes you only have one DVB device attached):
tzap 'BBC ONE'
(this will also tell you the frequency (in Hz), video and audio PIDs (though not in hex not decimal))
Play / decode a stream (the syntax is mplayer dvb://[card_number@]channel). For example:
mplayer dvb://"BBC ONE"
('h' and 'k' select previous and next channel).
Save a stream. "The handy thing about digital TV is, it comes in as a digital stream that you can save right away to your harddisk without any changes necessary to it. Therefore, hardly any CPU resources are needed -- just a lot of disk space (a few GB per hour as the stream is MPEG-2 which is not as compressed as, for example, DivX/MPEG-4)". Use either of the following:
- a)
- Tune a channel / tune to a frequency:
tzap 'BBC ONE'
Leave it running and continue in a different terminal - Save the stream to a file:
dvbstream 8192 -o > bbc1.mpeg
- Tune a channel / tune to a frequency:
- b)
- Tune a channel / tune to a frequency:
tzap 'BBC ONE' -r
Leave it running and continue in a different terminal - Save the stream to a file:
cat /dev/dvb/adapter0/dvr0 > bbc1.mpeg
- Tune a channel / tune to a frequency:
- c)
- Tune a channel / tune to a frequency:
tzap 'BBC ONE' -r
Leave it running and continue in a different terminal - Save the stream to a file:
cp /dev/dvb/adapter0/dvr0 bbc1.mpeg
- Tune a channel / tune to a frequency:
- d) tune and save in one (the syntax is
dvbstream -f <frequency to tune into> <video PIDn> <audio PIDn>), for example:
dvbstream -f 754166670 600 601 -o > bbc1.mpeg
For statistics of what's coming in for each channel and PID, either use dvbtraffic (you need tzap working in the background for this) or dvbdate.
GNOME
gxine.
The only simple players available to play DVB are gxine, mplayer / mplayer-nogui, xine-ui and vlc. VLC wants 'transponder/multiplex frequency' and 'transponder symbol rate in kHz' which I don't understand; other programs are content with a channels.conf. xine-ui and mplayer / mplayer-nogui don't have a GNOME-compatible interface.
Troubleshooting
Tune a channel / tune to a frequency:
tzap 'BBC ONE' -r
Leave it running and continue in a different terminal.
Use dvbsnoop for debugging or seeing what's occuring with a DVB device (i.e. tuning works? data coming in? signal strong enough?)
dvbsnoop -s pidscan
dvbsnoop -s bandwidth <PID> (you can use -pd <mode> to alter the verbosity - specify a mode of 0 for no output, 9 for very verbose, the default is 6)
dvbsnoop <PID> - see if you receive something
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].
- pitivi - PiTiVi - www.pitivi.org/ - non-linear video editing.
- kino - kino.schirmacher.de - DV capture and non-linear editing
To do:
CD writing - writing data files to CD
Package(s)
- command-line packages
- wodim - part of the 'cdrkit' package suite (namely wodim, genisoimage and icedax). Wodim is a fork of cdrecord, which is part of the cdrtools suite.
- genisoimage - a fork of mkisofs; part of the 'cdrkit' package suite (namely wodim, genisoimage and icedax).
- cdrdao - cdrdao.sourceforge.net/
- cdrkit-doc - documentation for the 'cdrkit' package suite (namely wodim, genisoimage and icedax)
- GUI packages
- GNOME incorporates CD and DVD writing features
- gnomebaker - gnomebaker.sourceforge.net
- brasero - perso.orange.fr/bonfire/ - AKA Bonfire
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:
genisoimage -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:
genisoimage -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:
genisoimage -o filename.iso -J -D -l -r -no-iso-translate -allow-lowercase -allow-multidot -allow-leading-dots -V "volume-name" -A "summary" /directory/where/files/located - These examples allow genisoimage 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, trywodim -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 withwodim -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 wodim, 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 minimalwodim dev=ATA:1,0,0 blank=fast
- Display help on blanking options:
- Write data files to CD (on an ATA CD writer)
wodim -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:
wodim -v dev=ATA:1,0,0 -dao -useinfo(?) file.wav(by specifying .wav files, wodim 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
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 genisoimage 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
- gnomebaker - gnomebaker.sourceforge.net
- brasero - perso.orange.fr/bonfire/ - AKA Bonfire
Usage - command-line
For most usage of growisofs, follow the instructions as per genisoimage. However the differences from the genisoimage 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 'genisoimage | 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
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.
Copying Audio CDs
Package(s)
- command-line packages
- icedax - www.cdda2wav.de/ - a fork of cdda2wav
- 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 icedax which does provide such information
- wodim - part of the 'cdrkit' package suite (namely wodim, genisoimage and icedax). Wodim is a fork of cdrecord, which is part of the cdrtools suite.
- 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)
- serpentine - audio CD creator
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 icedax 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 icedax'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:
icedax dev=ATA:1,0,0 -vall --cddb=0 --info-only - read the whole CD:
icedax 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):
wodim -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 wodim 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)."-
icedax dev=1,0 -vall cddb=0 --info-only icedax dev=1,0 -no-infofile --all-tracks -Oraw - | \
wodim dev=2,0 -v -dao -audio -useinfo -text *.inf
-
- copying a disc to hard disk then writing to CD
- worthwhile icedax options
- GNOME procedures
- sound-juicer (though beware it doesn't extract audio and retain track gap lengths for subsequent faithful reproduction of audio CDs)
- rhythmbox - music player and organiser
- gnomebaker - gnomebaker.sourceforge.net
Extracting / ripping an audio CD to compressed / encoded Ogg Vorbis files
Extracting / ripping an audio CD to compressed lossless FLAC files
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
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.
DVD disc to hard disk to DVD disc
Package(s)
Command-line
- Copy video files from DVD with either:
- dvdbackup - dvd-create.sourceforge.net
-
- vobcopy - vobcopy.org
- genisoimage
- dvd+rw-tools - a format utility for DVD+-RW media, a frontend for genisoimage 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 [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 -v -M -i /dev/dvd -o .
(If the DVD title isn't recognised you have to specify it using-n <title>at the end of the line. Occasionally dvdbackup will do nothing, returning you to the prompt, in which case eject and reinsert the disc and try again and it should work. The-vgives greater verbosity, if you want dvdbackup to be quieter you can leave it out. Occasionally dvdbackup won't work, in which case vobcopy usually will)
(Time: varies from a couple of minutes to perhaps 30 minutes with a 2GHz x86 CPU)
- 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:
genisoimage -dvd-video -udf <title> > <title or other filename>.iso
(Time: a couple of minutes with a 2GHz x86 CPU)
(This .iso file is actually playable in Totem despite it not showing under 'Supported files'. You'll probably want to delete the <title> directory afterward.) - Write a DVD ISO image to DVD:
growisofs -dvd-compat -Z /dev/dvd=<title or other 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.
DVD disc to a compressed format
A suggested ripping strategy:
- rip and encode
- do you want want subtitles adding or removing? (Not grabbing subtitles speeds the ripping significantly)
- no - use Thoggen
(Time: something like 10 hours with a 2GHz x86 CPU, adding more CPUs doesn't help) - yes - use dvd::rip. Either grab the required subtitles during the rip (so you can render them then are able to play the film back in any software but only with those particular subtitles); or don't grab the subtitles during the rip, then to play the film with subtitles download them from the web (but you are only able to play the film with those subtitles with mplayer. Note that dvd::rip won't render subtitles if doing 'Encode DVD on the fly'.
- no - use Thoggen
The time it takes to transcode is directly proportional to the power of the CPU(S) in the computer.
Package(s)
GNOME
Thoggen encodes on the fly (ripping and transcoding in one go). dvd::rip offers both encoding on the fly or ripping to disc first and then transcoding which it claims doesn't stress the DVD drive as much.
- thoggen - thoggen.net -
DVD copying program for GNOME, similar to dvdrip, based on GStreamer.
Thoggen is great in that it's dead simple to use because it doesn't expose the
plethora of options that dvdrip does, but it only encodes to
Ogg/Theora video format and doesn't
support subtitles, both of which dvdrip isn't limited by.
- thoggen - the Thoggen program itself
- libdvdcss2 - required by the included libdvdread3 to perform CSS authentication and descrambling of encrypted sections of DVDs. [Requires additional repository: Debian Multimedia].
- dvdrip - dvd::rip -
www.exit1.org/dvdrip/index.cipp -
DVD copying program for GNOME, similar to Thoggen, based on transcode.
Exposes a lot of options so appears daunting but in reality has a simple sequence
of buttons to press to achieve results; you're presented with typically one of these buttons per-tab
and you move through the tabs, but these buttons are usually mixed in with the options so, first time
through, the interface is not an easy one to navigate.
- dvdrip - the dvd::rip program itself. [Requires additional repository: Debian Multimedia but I don't know why because it's licenced under either GNU GPL or Perl Artistic License]
- dvdrip-doc - dvd::rip documentation
- mjpegtools - mjpeg.sourceforge.net - a set of tools that can do recording of videos (using motion JPEG (MJPEG) hardware capture devices) and playback, simple cut-and-paste editing and the MPEG compression (encoding) of audio and video. They can convert from many capture formats.
- mplayer-nogui - required for video previews - the main Debian archive includes the package 'mplayer' with more disabled options (see debian-multimedia.org/faq.html for which). (alternatively you can use packages mplayer or xine-ui for video previews). [Requires additional repository: Debian Multimedia]
- ogmtools - Tools for manipulating Ogg multimedia streams: ogminfo - displays stream information; ogmdemux - demuxes an ogm stream into its component media streams; ogmsplit - splits an ogm stream into chunks; ogmmerge - joins media streams into an ogm stream; dvdxchap - extracts chapter information from DVDs
- rar-2.80 - required for vobsub compression. [Requires additional repository: Debian Multimedia because usage restricted to 40 days after which it requires payment and distribution only allowed when unmodified and not bundled with other software]
- subtitleripper - required to rip subtitles, to .VOB/.IDX subtitles (not .SRT (text format) subtitles)
- libdvdread3 - required to read encrypted DVDs (most commercial DVDs are encrypted) - libdvdread3 is a library for reading DVDs, providing the functionality that is required to access many DVDs. It parses IFO files, reads NAV-blocks and performs CSS authentication and descrambling of encrypted sections of DVDs (using libdvdcss2 if present, which it looks for when it starts).
- libdvdcss2 - required by libdvdread3 to perform CSS authentication and descrambling of encrypted sections of DVDs. [Requires additional repository: Debian Multimedia].
Partitioning Disks
Package(s)
- gparted - GNOME Partition Editor - gparted.sourceforge.net. A Live CD version is also available for download which is useful for working with any systems in general rather than just those attached to your Debian workstation. [interface: GNOME] [based on: parted (www.gnu.org/software/parted/)]
Usage
gparted
Applications → System Tools → GParted
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 file systems
Windows uses FAT32 or NTFS filesystems. Linux FAT32 support is complete but NTFS support is patchy.
Package(s)
- ntfsprogs - linux-ntfs.org - utilities for working with NTFS filesystems: ntfsfix, mkntfs, ntfsinfo, ntfslabel, ntfsls, ntfsresize (see further info), ntfsundelete, ntfscluster, ntfscat, ntfscp, ntfsclone and ntfsmount (see further info).
- ntfs-3g - www.ntfs-3g.org/ - a new version of the mount capability from ntfsprogs (there-in known as ntfsmount, here-in known as ntfs-3g). Has full read/write capabilities, many bug fixes and improved performance. However it is still only a "strong beta". It will at some point merge into the ntfsprogs package. It appears as though if you install this you should also install the ntfsprogs package because this package provides only the mount capability and none of the other utilities.
- 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)
FAT32 Filesystems
The Linux kernel includes support for FAT (FAT12, FAT16, FAT32) filesystems.
Mounting manually from the command-line
Mounting manually from within GNOME
Mounting automatically on system startup
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
NTFS Filesystems
Options available for accessing NTFS filesystems
- Linux kernel's integrated driver - allows reading of files and rewriting existing files. It does not support creation of new files or deletion of existing files. This is provided by the Linux-NTFS project and included in the Debian Linux kernel. The version included is the 'new' version 2.1.26.
- ntfsprogs's ntfsmount / mount.ntfs-fuse - an improved user-space driver which provides the same functionality as the kernel driver and additionally supports basic cases of directory, symlink, device and FIFO file creation, deletion and renaming. Note: that doesn't mean it always succeeds, it is experimental and might just as well refuse to complete an operation in order to prevent corruption. ntfsmount is based on FUSE.
- ntfs-3g's mount.ntfs-3g / ntfs-3g - a new version of the mount capability from ntfsprogs with full read/write capabilities, many bug fixes and improved performance. However it is still only a "strong beta".
Using the mount capabilities of the kernel driver
Mounting manually from the command-line
mount -t ntfs /dev/hda1 /media/windows-c
Mounting manually from within GNOME
?
Mounting automatically on system startup
Add a line to /etc/fstab such as from the following examples:
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
Using the mount capabilities of the ntfsprogs package
Mounting manually from the command-line
mount -t ntfs-fuse /dev/hda1 /media/windows-c
Mounting manually from within GNOME
?
Mounting automatically on system startup
Add a line to /etc/fstab such as from the following examples:
Using the Linux-NTFS project's ntfsmount (ntfs-fuse), 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-fuse umask=000,auto,nouser,async,ro 1 0
Using the Linux-NTFS project's ntfsmount (ntfs-fuse), 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-fuse umask=000,noauto,user,async,ro 1 0
Using the mount capabilities of the ntfs-3g package
Mounting manually from the command-line
mount -t ntfs-3g /dev/hda1 /media/windows-c
Mounting manually from within GNOME
?
Mounting automatically on system startup
Add a line to /etc/fstab such as from the following examples:
Using ntfs-3g's ntfsmount (ntfs-3g), 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-3g umask=000,auto,nouser,async,ro 1 0
Using ntfs-3g's ntfsmount (ntfs-3g), 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-3g 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.
ntfsmount: wiki.linux-ntfs.org/doku.php?id=ntfsmount.
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. Compared with Wine from Debian 4.0/Etch this wine is no longer split into separate packages libwine, libwine-*, wine-utils and wine-doc.
[Architecture restriction: i386 and amd64 only]
Usage
Some applications will run fine, others require some minor configuration to Wine or the application, others will run but have parts of them that don't work, others won't run at all.
A Windows program you're trying to run may not work because supprting DLL files are missing. If you copied the program from a Windows system where it was installed you can get these from %WINDIR%\System, %WINDIR%\System32, %PROGRAMFILES%\Common Files\System(?) where the program will have placed them upon installation. The Wine Application Database (AppDB), appdb.winehq.org/, is a useful resource on which such DLL files are required. Copy them to the program's directory (not the Wine directory).
- Run a program, using any of these
$ wine <application>$ wine "c:\program files\application directory\application.exe"- 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
$ winecfg
Registry editor: $ regedit
Wine control panel: $ wine control
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
- 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/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: X.org section.
- laptop-mode-tools - userland scripts to control 'laptop mode
- gsynaptics - GNOME Desktop → Preferences → Touchpad configuration of the Synaptics touchpad
- if your laptop has APM: ? apmd
- if your laptop doesn't have APM:
- ? acpi
- ? acpid (Advanced Configuration and Power Interface event daemon)
Configuration
gsynaptics
Before you can use GSynaptics preferences you need to add Option "SHMConfig"
"true" to the Driver "synaptics" section of
/etc/Xorg/xorg.conf.
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""
IBM Thinkpads
- 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
Connecting and synchronising PDA's in general
Package(s)
Framework
- libopensync0 - www.opensync.org/ - Synchronisation framework for email/PDAs/and more. A synchronisation framework for synchronising data in various format. You can use libopensync from programs. See multisync for an existing X11 gui program that uses opensync.
Command-line
- multisync-tools - the
msynctoolcommand-line utility. - opensyncutils - Command line utilities for libopensync. Libopensync provides a number of command line debugging and utility programs. Install this package for the osyncdump, osyncstress, osyncplugin, osynctest and osyncbinary programs.
plug-ins
- opensync-plugin-evolution - Evolution plugin
- opensync-plugin-file - Opensync file plugin. Allows applications using OpenSync to synchronise to and from files stored on disk.
- opensync-plugin-google-calendar - Plugin for syncing with Google Calendar.
- opensync-plugin-irmc - IrMC plugin for Opensync. Allows applications using OpenSync to synchronise to and from devices that use the IrMC protocol. The plugin supports both IrDA and Bluetooth.
- opensync-plugin-palm - Opensync Palm plugin. Allows applications using OpenSync to synchronise to and from PalmOS based devices using its HotSync system.
- opensync-plugin-syncml - SyncML plugin for Opensync. Allows to synchronize against devices which support the SyncML standard. Supported transports are OBEX and HTTP. Supported SyncML versions are 1.0, 1.1 and 1.2.
- opensync-plugin-sunbird - Opensync Mozilla Sunbird / Mozilla Lightning(?) plugin. You can sync one or more calendars, both local and on WebDAV servers.
- libmultisync-plugin-backup, libmultisync-plugin-opie and synce-multisync-plugin are not yet provided for by Opensync in Debian Etch though they are available from the upstream Opensync project and their Debian repository
GNOME
- multisync0.90 - www.multisync.org/ - PIM Synchronisation tool.
MultiSync is a program to synchronise calendars, addressbooks and other PIM databetween programs on your computer and other computers, mobile devices,
PDAs or cell phones. It relies on the OpenSync framework to do the actual synchronisation.
This package contains the GTK graphical user interface.
This package should be used in place of the 'multisync' package which is the old version that relied on the multisync framewrok rather than the opensync framework.
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.
- libopensync0 - Synchronisation framework for email/PDAs/and more. A synchronisation framework for synchronising data in various format. You can use libopensync from programs. See multisync for an existing X11 gui program that uses opensync.
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
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
Desktop → Administration → 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 Monitor (? 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)
- pcmciautils - utilities that automatically load and unload networking when devices inserted and ejected. Available for Linux kernels 2.6.13 and onwards.
Configuration
Start PCMCIA services: /etc/init.d/pcmcia start.
[not sure if this is necessary with pcmciautils and udev] 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
Devices with Bluetooth include phones, PDAs, keyboards and mice.
Package(s)
Subsystem
- bluez-utils / bluetooth - www.bluez.org - tools and system daemons for using Bluetooth devices. Provides ciptool, dund, hcitool, hidd, l2ping, pand, rfcomm, sdptool.
- bluez-firmware - this firmware is required for operation of Bluetooth dongles based on the Broadcom BCM203x 'Blutonium'chipset [Section: non-free]. This is for Linux 2.6 kernels, for Linux 2.4 kernels the package was called bluez-bcm203x [contrib].
- bluez-cups - www.bluez.org - Bluetooth printer driver for CUPS
- bluez-pcmcia-support - www.bluez.org - support for PCMCIA Bluetooth adapters. As it depends on both Bluetooth and pcmciautils I only recommend this if you specifically have a Bluetooth PCMCIA adapter.
GNOME
- bluez-gnome - bluez.sourceforge.net - provides Bluetooth preferences; a GNOME applet for prompting when a Bluetooth passkey (PIN) is required; and scanning for devices, select a device to bond with and browsing files on a device (the last of which requires gnome-vfs-obexftp). The applet can either always appear in the system tray or only when you insert a Bluetooth device. Log out and back in again for this to take effect after installation. This package is installed by the virtual package bluez-passkey-gnome.
- gnome-bluetooth - includes gnome-obex-server for receiving files and gnome-obex-send for sending files. gnome-bluetooth-manager (for configuring Bluetooth devices) is planned for future inclusion in gnome-bluetooth; you can see the plans for it at live.gnome.org/GnomeBluetooth.
- nautilus-sendto - adds the menu option to send files via Bluetooth using the gnome-obex-send included in the gnome-bluetooth package
- gnome-vfs-obexftp - allows you to browse files on a device over Bluetooth. Allows the bluez-gnome applet's 'Browse Device' → 'Connect' feature to work otherwise it gives an error accessing an obex:// address.
Command-Line File Transfer
- obexftp - command-line file transfer utility for devices that use the OBEX protocol (think-future.de/wiki/index.php?title=Bluetooth)
- obexpushd - command-line utility for receiving files via Bluetooth or IRDA (how does this differ from obexserver?)
- ussp-push - Client for OBEX PUSH - allows you to send objects using the OBEX PUSH protocol. The OBEX PUSH protocol is used to transfer files to a mobile device, generally via Bluetooth or IrDA. The protocol does not allow any other action than sending and generally requires less strict authentication, which is why it is sometimes preferred to the OBEX FTP protocol (which allows full filesystem access and is provided by the obexftp package).
- Don't install openobex-apps because they "are the example applications ... they aren't intended for normal use..."
Miscellaneous
- 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-hcidump - www.bluez.org - allows the monitoring of Bluetooth activity using the hcidump program. Useful for troubleshooting.
- btscanner - Bluetooth traffic scanner similar to Kismet for wireless
Configuration
The version of Bluetooth you're using can make a big difference. For a list of improvements in successive Bluetooth versions (i.e. faster speed, lower power consumption) see en.wikipedia.org/wiki/Bluetooth#Specifications_and_features. To check which version of Bluetooth you're using, look for the 'LMP version':
- For the remote device:
hcitool info <MAC address of remote device>. You should see something like:LMP Version: 2.0 (0x3) LMP Subversion: 0x6cc - For the local adapter:
# hciconfig -aorhciconfig hci0 version. You should see something like:HCI Ver: 1.1 (0x1) HCI Rev: 0x175 LMP Ver: 1.1 (0x1) LMP Subver: 0x175
GNOME
bluez-gnome provides Desktop → Preferences → Bluetooth Preferences which you use to configure the mode of operation, adapter name and class of device.
Command-line
Bluetooth service manipulation: /etc/init.d/bluetooth start,
/etc/init.d/bluetooth stop and /etc/init.d/bluetooth restart
Set the device name in /etc/bluetooth/hcid.conf.
Check whether the Bluetooth adapter is up and running:
hcitool dev
You should see the adapter device name and MAC address.
Troubleshooting
There is a list of supported hardware at www.bluez.org/hardware.html.
If you have trouble connecting look in /var/log/syslog.
Usage
Examine your Bluetooth adapter
Using the command-line
Examine all connected adapters:
hciconfig -a.
Using GNOME
This isn't currently possible with GNOME, it is planned for inclusion in GNOME Bluetooth Manager.
Scan for remote devices
Using the command-line
Get the MAC address and name of available devices:
hcitool scan
Using GNOME
Right-click on the Bluetooth / bluez-gnome applet, choose 'Browse Device' → select the device → 'Connect'
Ping a remote device
Using the command-line
# l2ping <MAC address of remote device>
Using GNOME
This isn't currently possible with GNOME, it is planned for inclusion in GNOME Bluetooth Manager which will be included in the gnome-bluetooth package.
Bond / pair with a device
You can bond with devices such as Bluetooth keyboards or phones.
Using the command-line
Connect to the device:
# hcid connect <MAC address of remote device>
Setting a PIN/passkey using the command-line isn't supported so use the GNOME PIN helper, bluez-gnome, whose bonding dialog should appear in the GNOME Notification Area.
Using GNOME
Right-click on the Bluetooth / bluez-gnome applet, choose 'Browse Device' → select the device → 'Connect'. The device will prompt you for a PIN. The applet will prompt you for the corresponding PIN.
Service discovery of devices around you
Using the command-line
sdptool browse
Using GNOME
This isn't currently possible with GNOME and it doesn't look as though it's planned to be part of the forthcoming GNOME Bluetooth Manager. It is possible with the KDE Bluetooth chat tool and I'm wondering whether to include details here of using that.
Serial connections
Users must be in group 'dialout' to have privileges to use these devices.
Using the command-line
Some features require the Bluetooth device to appear as a traditional serial interface.
Create /dev/rfcomm0 bound to port 3 (the dial-up networking port) on a remote device:
# rfcomm bind 0 <MAC address of remote device> 3
Check how the rfcomm ports are setup:
rfcomm
Release /dev/rfcomm0:
# rfcomm release 0
Using GNOME
This is planned for inclusion in the forthcoming, as yet unwritten, GNOME Bluetooth Manager.
Transfer files from a device to a computer
Using the command-line
Run obexpushd and it will sit there waiting for files to be sent from the device,
which it saves to the current working directory.
Using GNOME
This requires the gnome-bluetooth package. Run Applications → Accessories → Bluetooth File
Sharing. This will provide a Notification Area applet. Send a file from the device to the computer, the
file will be saved to the desktop and a dialog will appear asking whether you want to open or delete the
file. You may have to set the mode of operation by right-clicking on the Bluetooth Notification Area applet (the other applet) and choosing 'Visible and connectable for other devices'.
Alternatively you can use the filesystem type approach of browsing for the device from the applet and
connecting to it, from where you can transfer files back and forth.
Transfer files from a computer to a device
Using the command-line
ussp-push <MAC address or name of remote device>@10 <local filename>
<filename to give it on remote device>
(assumes the OBEX File Transfer channel is 10, which you can check with sdptool browse)
Using GNOME
This requires gnome-bluetooth and nautilus-sendto packages. You right-click on a file and choose 'Send To...' and are able to choose Bluetooth from the 'Send as...' list and the device from the 'Send to...' list.
Alternatively you can use the filesystem type approach of browsing for the device from the applet and
connecting to it, from where you can transfer files back and forth.
Internet access through a GPRS or 3G / W-CDMA phone for a computer
See Internet access through a GPRS or 3G / W-CDMA phone from a computer over Bluetooth
Internet access through a computer for a phone
See www.howtoforge.com/bluetooth_pand_debian_etch
Linux Unwired by Roger Weeks, Edd Dumbill, Brian Jepson: www.oreilly.com/catalog/lnxunwired/
Connect a Bluetooth keyboard
Initiate the process from the computer.
Using the command-line
(the Debian documentation mentions loads of patches but i didn't need them to get it working)
# hidd --connect <MAC address of remote device>
Though you can provide the pin using the command-line, the documentation warns against it, so use the GNOME PIN helper bluez-gnome. The bonding dialog appears in the GNOME Notification Area, you type the key in there, then type it on the Bluetooth keyboard and press [Enter].
Using GNOME
I Don't see how it can be initiated from the computer using GNOME, without the proposed GNOME Bluetooth Manager which isn't yet available, so initiate it from the keyboard.
Connect a Bluetooth mouse
Initiate this from the computer.
Using the command-line
# hidd --connect <MAC address of remote device>
Using GNOME
This isn't currently possible with GNOME, it is planned for inclusion in GNOME Bluetooth Manager which will be included in the gnome-bluetooth package.
Further Information
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 Device Driver Modules, Firmware 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 Linux kernel device driver module that you need to install; Or they may only be available in Debian as source code for Linux kernel device driver 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 Linux kernel device driver module for the particular device.
- <driver name>-source. Linux kernel device driver 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.18-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 Linux kernel device driver module for cards using the Texas Instruments TNETW1130 (AKA ACX111) 802.11g+/b+, TNETW1100 (AKA ACX100) 802.11b+ and TNETW1450 802.11g+/b+ 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: ? | 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.
- This Linux kernel device driver module is already built into the kernel
- atmel-firmware - firmware. The module in the kernel additionally requires this firmware for most of 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.3 | Section: non-free (see licence)]
- bcm43xx - bcm43xx.berlios.de - for Broadcom 43xx chips. For the list of wireless adapters supported see bcm43xx.berlios.de/?go=devices.
NOTE: in future bcm43xx will be renamed b43legacy, future work will be under the name b43 (linuxwireless.org/en/users/Drivers/b43).- This Linux kernel device driver module is already built into the kernel
- b43-fwcutter. Downloads (using
/usr/share/bcm43xx-fwcutter/install_bcm43xx_firmware.sh) the required firmware (from boredklink.googlepages.com/wl_apsta.o) and installs it; or allows you to manually extract it (usingbcm43xx-fwcutter) from specific versions of specific driver files (AppleAirPort2, AppleAirPortBrcm4311, bcmwl5.sys, bcmwl564.sys, d11ucode.o, wl.o, wl_ap.o, wl_apsta.o, wl_sta.o, wl96345GW.o_save, wl96348GW.o_save or wl96348GWV_DT.o_save) and install it.
[Version: 006 | Repository: contrib]
- 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
- This Linux kernel device driver module is already built into 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/ - this is the 1st generation Centrino. Linux kernel 2.6.14 and onwards include this.
- The Debian 4.0/Etch 2.6.18 kernel includes version 1.?. To use the version included in the kernel all you need to do is install the firmware from Intel.
- firmware
The firmware version described here will work with the Linux kernel device driver 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 1.3
- If you agree to the licence, choose to do so
- As root, unpack it and store it in /lib/firmware:
# tar -xvf ipw2100-fw-1.3.tgz -C /lib/firmware - Move the files from the sub-directory that has unpacked, into /lib/firmware:
# mv /lib/firmware/ipw2100-fw-1.3/* /lib/firmware - reload the module or reboot?
- ipw2100-modules-<kernel-series>-<architecture>. This is version 1.2.1. Install this if you want this newer version of the driver than the version 1.? included in the kernel. Once installed it will be automatically used instead. Install the generic version (ipw2100-modules-<kernel-version>-<Debian revision>-<architecture>) for the particular arhcitecture of your system (i.e. ipw2100-modules-2.6-686 rather than ipw2100-modules-2.6.18-4-686) as that pulls in the kernel-specific version and also does so when the kernel is updated:
- ipw2100-modules-2.6-486 → ipw2100-modules-2.6.18-4-486
- ipw2100-modules-2.6-686 → ipw2100-modules-2.6.18-4-686
- ipw2100-modules-2.6-686-bigmem → ipw2100-modules-2.6.18-4-686-bigmem
- ipw2100-modules-2.6-k7 → ipw2100-modules-2.6.18-4-k7
- ipw2100-modules-2.6-amd64 → ipw2100-modules-2.6.18-4-amd64
- ipw2100-source - source code for the Linux kernel device driver module version 1.2.1 [contrib]. Generally you won't need this, you'd only need it if you're compiling your own kernel and so needed to re-compile the modules. Even then it will likely only work with the same kernel version as included with Debian because of the version of ieee80211 included with the kernel. The ieee80211-source package will be available at some point to help with this.
- ipw2200 for Intel PRO/Wireless 2200BG (802.11b/g) and 2915ABG (802.11a/b/g) 'Centrino' - ipw2200.sourceforge.net/ - these are the 2nd and 3rd generation Centrinos. Linux kernel 2.6.14 and onwards include this.
- The Debian 4.0/Etch 2.6.18 kernel includes version 1.1.2kmq. To use the version included in the kernel all you need to do is download and install the firmware from Intel.
- firmware
The firmware version described here will work with the Linux kernel device driver 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 3.0
- If you agree to the licence, choose to do so
- As root, unpack it and store it in /lib/firmware:
# tar -xvf ipw2200-fw-3.0.tgz -C /lib/firmware - Move the files from the sub-directory that has unpacked, into /lib/firmware:
# mv /lib/firmware/ipw2200-fw-3.0/* /lib/firmware - reload the module or reboot?
- ipw2200-modules-<kernel-series>-<architecture>. This is version 1.2.0mq. Install this if you want this newer version of the driver than the version 1.1.2kmq included in the kernel. Once installed it will be automatically used instead. Install the generic version (ipw2200-modules-<kernel-version>-<Debian revision>-<architecture>) for the particular arhcitecture of your system (i.e. ipw2200-modules-2.6-686 rather than ipw2200-modules-2.6.18-4-686) as that pulls in the kernel-specific version and also does so when the kernel is updated:
- ipw2200-modules-2.6-486 → ipw2200-modules-2.6.18-4-486
- ipw2200-modules-2.6-686 → ipw2200-modules-2.6.18-4-686
- ipw2200-modules-2.6-686-bigmem → ipw2200-modules-2.6.18-4-686-bigmem
- ipw2200-modules-2.6-k7 → ipw2200-modules-2.6.18-4-k7
- ipw2200-modules-2.6-amd64 → ipw2200-modules-2.6.18-4-amd64
- ipw2200-source - source code for the Linux kernel device driver module version 1.2.0mq [contrib]. Generally you won't need this, you'd only need it if you're compiling your own kernel and so needed to re-compile the modules. Even then it will likely only work with the same kernel version as included with Debian because of the version of ieee80211 included with the kernel. The ieee80211-source package will be available at some point to help with this.
- One to look out for - sourceforge.net/projects/ipw2200-ap - an access point driver for the ipw2200 and ipw2915.
- ipw3945 for Intel PRO/Wireless 3945ABG (802.11a/b/g) 'Centrino' - ipw3945.sourceforge.net/ - this is the 4th generation Centrino.
- firmware-ipw3945 - binary firmware [Section: non-free]
- ipw3945-modules-<kernel-series>-<architecture>. This is version 1.1.2. Install the generic version (ipw3945-modules-<kernel-version>-<Debian revision>-<architecture>) for the particular arhcitecture of your system (i.e. ipw3945-modules-2.6-686 rather than ipw3945-modules-2.6.22-2-686) as that pulls in the kernel-specific version and also does so when the kernel is updated:
- ipw3945-modules-2.6-486 → ipw3945-modules-2.6.22-2-486 [contrib]
- ipw3945-modules-2.6-686 → ipw3945-modules-2.6.22-2-686 [contrib]
- ipw3945-modules-2.6-686-bigmem → ipw3945-modules-2.6.22-2-686-bigmem [contrib]
- ipw3945-modules-2.6-k7 → ipw3945-modules-2.6.22-2-k7 [contrib]
- ipw3945-modules-2.6-amd64 → ipw3945-modules-2.6.22-2-amd64 [contrib]
- ipw3945-source - source code for the Linux kernel device driver module version 1.1.2. Generally you won't need this, you'd only need it if you're compiling your own kernel and so needed to re-compile the modules. Even then it will likely only work with the same kernel version as included with Debian because of the version of ieee80211 included with the kernel. The ieee80211-source package will be available at some point to help with this. [contrib]
- One to look out for - currently experimental, the iwlwifi provides a driver which utilises the new d80211 subsystem for the 3945ABG and 4965. In addition to using the new d80211 subsystem, this project uses a new microcode image which removes the need for the user space regulatory daemon for this adapter. This change should help to simplify installation, development, and redistribution of this driver package.
- linux-wlan-ng for Intersil 802.11b Prism2, Prism2.5, and Prism3 cards and PLX9052 based PCI to PCMCIA adapter with a few different PCMCIA cards
- linux-wlan-ng-source - source code for the Linux kernel device driver module.
- linux-wlan-ng-firmware - firmware files used by the driver. This package doesn't contain the firmware files, but a script to download the upstream source tarball and build a deb that contains them. Note that only some adapters really need a firmware file and that firmware files are not completely free (in the sense of freely redistributable), that's why this package exists. [contrib]
- linux-wlan-ng - utilities. Requires the appropriate Linux kernel device driver module for your kernel in order to work.
- linux-wlan-ng-doc - documentation
- madwifi - madwifi.org/ - for Atheros chipsets.
See also www.marlow.dk/site.php/tech/madwifi
- madwifi-source - source code for the Linux kernel device driver module [Section: Non-free]
- madwifi-tools [Contrib]
- madwifi-doc - User's Guide [Section: Non-free]
- ndiswrapper - allows you to run wireless devices not supported by free software Linux kernel device driver modules by using Windows drivers
- ndiswrapper-common - Common scripts required to use the utilities for ndiswrapper
- ndiswrapper-source - source code for the Linux kernel device driver module. Compile this to create the ndiswrapper-modules-<kernel-version>-<Debian revision>-<architecture> package.
- ndiswrapper-utils-1.9 - Userspace utilities for the ndiswrapper kernel module. This is a newer version than ndiswrapper-utils and ndiswrapper-utils-1.1.
- Orinoco - this driver is part of the kernel, if you have a device with this chipset it should just work Ralink upstream bugs: http://sourceforge.net/tracker/?group_id=107832&atid=648844 supported hardware: http://rt2x00.serialmonkey.com/wiki/index.php/Hardware (can be used in each section if I want) http://www.ralinktech.com/ralink/Home/Support/Linux.html Ralink's source code; firmware Ralink legacy drivers Legacy drivers however do not support HostAP nor wpa_supplicant, and some of them are not stable on SMP systems yet. Ralink provide GPL source. Drivers are maintained by the rt2x00 project. Legacy drivers do not support wpa_supplicant. All encryption is handled by the driver itself. RutilT can help you configure encryption in place of other wpa_supplicant GUI tools.. What encryption types are currently supported ? A. WEP128/64 for rt2400. WEP128/64 + WPAPSK for rt2500/2570.
- Ralink RT2400 (has this been adequately replaced by rt2x00?)
- rt2400 - the
RaConfig2400X11 graphical configuration tool. Requires the appropriate Linux kernel device driver module for your kernel in order to work. - rt2400-source - rt2x00.serialmonkey.com/ - source code for the Linux kernel device driver module.
- rt2400 - the
- Ralink RT2500 (has this been adequately replaced by rt2x00?)
- rt2500 - the
RaConfig2500X11 graphical configuration tool. Requires the appropriate Linux kernel device driver module for your kernel in order to work. - rt2500-source - source code for the Linux kernel device driver module
- rt2500 - the
- rt2570-source - Ralink RT2570 Linux kernel device driver module source code. Same as for rx2400-source but without any mention of a rt2570 package. (has this been adequately replaced by rt2x00?) Debian doesn't have the rt61 legacy Linux kernel device driver module
- rt73 for Ralink RT73(RT2571W) 802.11 a/b/g - NO MENTION IT NEEDS FIRMWARE
- rt73-modules-<kernel-series>-<architecture>. This is version ?. Install the generic version (rt73-modules-<kernel-version>-<Debian revision>-<architecture>) for the particular arhcitecture of your system (i.e. rt73-modules-2.6-686 rather than rt73-modules-2.6.22-2-686) as that pulls in the kernel-specific version and also does so when the kernel is updated:
- rt73-modules-2.6-486 → rt73-modules-2.6.22-2-486 [contrib]
- rt73-modules-2.6-686 → rt73-modules-2.6.22-2-686 [contrib]
- rt73-modules-2.6-686-bigmem → rt73-modules-2.6.22-2-686-bigmem [contrib]
- rt73-modules-2.6-k7 → rt73-modules-2.6.22-2-k7 [contrib]
- rt73-modules-2.6-amd64 → rt73-modules-2.6.22-2-amd64 [contrib]
- firmware-rt73 - not available yet in Debian Testing - binary firmware for PCI, CardBus and USB wireless network cards with the Ralink RT2501 [Turbo], RT2600, RT5201 [Turbo], RT5600 or RT5201USB chipset, supported by the rt61, rt61pci, or rt73, rt73usb drivers This comes direct from ralink. http://www.ralinktech.com/ralink/Home/Support/Linux.html Contents: * Ralink RT2561 (RT2501/RT5201 chipset) firmware, version unknown * Ralink RT2561S (RT2501 Turbo/RT5201 Turbo chipset) firmware, version unknown * Ralink RT2661 (RT2600/RT5600 chipset) firmware, version unknown * Ralink RT2571W/RT2671 (RT2501USB/RT5201USB chipset) firmware, version unknown [Section: non-free ("Redistribution and use in binary form, without modification, are permitted"; a patent license is given as long as used with the software or with OSI-approved software)]
- rt73-source [contrib]
next-generation rt2x00 drivers (which will get included in future kernel releases)
based on the common mac80211 stack (was called Devicescape 80211 stack) (included in Linux kernel 2.6.22 and onwards)
- rt73-modules-<kernel-series>-<architecture>. This is version ?. Install the generic version (rt73-modules-<kernel-version>-<Debian revision>-<architecture>) for the particular arhcitecture of your system (i.e. rt73-modules-2.6-686 rather than rt73-modules-2.6.22-2-686) as that pulls in the kernel-specific version and also does so when the kernel is updated:
- rt2x00-source - rt2x00.serialmonkey.com - source code for the , , rt2570, , / rt2400pci (AKA rt2400) / rt2500pci and rt2500usb (AKA rt2500) / rt61pci (AKA rt61) and rt73usb (AKA rt73) drivers for Linux [and in future rt2860, rt2870]. These drivers support PCI, CardBus and USB wireless network cards with the Ralink RT2400-series, RT2500-series, RT2600-series, RT5200-series and RT5600-series chipsets. Make note of which require firmware WHY DOESN'T DEBIAN INCLUDE PRE-COMPILED MODULES? I see the following but I don't see this in its dependencies or README.Debian: rt2x00 (2.0.12+git20071103-1) unstable; urgency=low * Added suggestion of firmware packages needed for some drivers rt2x00 (2.0.9-2) unstable; urgency=low * Added suggestion of rutilt rutilt - RutilT - http://cbbk.free.fr/bonrom/ - "a X11 based application using the QT framework that replicates the standard interface you would expect when using the driver under a Windows operating system. It allows you to scan for active WLANs, configure/connect to them, etc." - "Configuration tool for rt2x00 wireless network cards RutilT is a Gtk+2 utility for Linux that helps you configure your wireless devices. Although primarily written for the rt2x00 project, it supports any Linux wireless extensions compliant kernel module." http://rt2x00.serialmonkey.com/wiki/index.php?title=HOWTOS has howtos for different distros: I should check on the validity of the debian one and possibly suggest mine for inclusion.
- zd1211 - for USB wireless dongles that are based on the ZyDAS ZD1211 802.11b/g USB WLAN chipset (3COM 3CRUSB10075, AOpen 802.11g WL54, iNexQ UR055g, Sitecom WL-113, Telegent TG54USB, TwinMOS G240, Yakumo QuickWLAN, Airlink+ AWLL3025, Zyxel ZyAIR G-220, X-Micro XWL-11GUZX, Edimax EW-7317UG Safecom SWLU-5400, Longshine LCS-8131G, Planet WL-U356, Sweex wireless 54MB, Acer WLAN-G-US1 Trendnet TEW-424UB, DrayTek Vigor 550, Asus WL-159g, Trust NW-3100)
- zd1211-source - source code for the Linux kernel device driver module
- zd1211-firmware - Firmware images for the driver [Section: non-free]
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.
- NetworkManager - www.gnome.org/projects/NetworkManager/
- network-manager-gnome - provides an option that automatically appears in the GNOME Notification Area to allow you to easily choose wired and wireless networks.
- network-manager-openvpn - VPN plugin for OpenVPN
- network-manager-vpnc - VPN plugin for vpnc to access Cisco Concentrator based VPNs
- libpam-keyring - pam_keyring - www.hekanetworks.com/pam_keyring/ - a PAM module that unlocks the GNOME keyring at login time so that software such as NetworkManager doesn't have to ask you for the keyring password every time you login.
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?).
PCMCIA cards may need to be allowed a bit of time to register before they can be used.
Check if the device is already usable
If using NetworkManager (in GNOME)
You need to be in the group 'netdev' otherwise it won't appear in the GNOME Notification Area.
To get the best out of NetworkManager in GNOME, you need to disable all other means of configuring those connections / adapters you want NetworkManager to manage (wired and wireless, but not yet VPNs)
- GNOME's built-in network administration in Desktop → Administration → Networking. In the Properties for each Connection / network adapter, disable 'Enable this connection'.
- /etc/network/interfaces
You'll need to restart NetworkManager after making these changes by right-clicking on the applet and disabling, then enabling, 'Enable Networking'.
Now NetworkManager will sense whether you want to use wired or wireless connections and remember wireless keys.
If using GNOME's built-in network administration
Desktop → 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)'.
If 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 driver packages, 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
- driver-specific confguration instructions
- rt2400 and rt2500
"This package is a source package that can be used to build [Linux kernel device driver] modules that work with your custom built linux kernel. The source files are located in /usr/src/rt2500.tar.gz; unpacking that file in /usr/src will produce a build tree in /usr/src/modules/rt2500/. (The tar file can also be unpacked elsewhere) # module-assistant prepare # May not be needed # module-assistant get rt2500 # module-assistant build rt2500 You should now have an rt2500-modules-<version>.deb file in /usr/src, which you can install with dpkg -i to get the modules installed." i.e. dpkg -i /usr/src/rt2500-modules-2.6.18-4-686_1.1.0+cvs20060620-3+2.6.18-7_i386.deb or dpkg -i /usr/src/rt200-[tab] It should additionally say: tar -xvvzf /usr/src/rt2500.tar.gz (This doesn't work for me) This is well written: http://rt2x00.serialmonkey.com/wiki/index.php/Debian_rt2500_Howto (it instead says to use module-assistant auto-install rt2500-source)
- ndiswrapper...
- rt2400 and rt2500
Configure it using either
- GNOME's Desktop → Administration → Networking
- The NetworkManager applet
- 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 <managed / ad-hoc> wireless-rate <11M / 54M / etc> auto ath0
Start networking withifup ath0.
libpam-keyring
Add @include common-pamkeyring at the end of /etc/pam.d/gdm so that when logging in using GDM this module will be used. You can similarly do so in corresponding config files for other services you use for logging in.
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.
Wireless Networking (Wi-Fi / WiFi) - auditing
Package(s)
- kismet - www.kismetwireless.net - scans wireless traffic and shows access points (even hidden ones) and their clients, logs packets captured. Information given about access points includes wireless security setting and channel. [Interface: curses]
- wavemon - provides detailed information about a specific access point; in more easily accessible form than kismet. [Interface: curses]
- aircrack-ng - www.aircrack-ng.org - given a log with enough packets captured from the likes of kismet, and a dictionary, cracks WEP and WPA-PSK keys. [Interface: command-line]. You can get dictionaries from ftp://ftp.openwall.com/pub/wordlists.
- wireshark - www.wireshark.org/ - network protocol analyser. Previously called Ethereal. [Interface: GTK]
- macchanger - www.alobbs.com/macchanger/ - changes the reported MAC address of your wireless network adapter. [Interface: command-line]
Configuration
For Kismet to start up you need to specify the wireless network adapter driver and its device name in /etc/kismet/kismet.conf, i.e. 'source=ipw2200,eth2,centrino' or
'source=madwifing_ag,wifi0,linksys'. The syntax for this is described in the 'Capture Sources' section of /usr/share/doc/kismet/README.gz.
Usage
Kismet
You need to run kismet as root.
Useful Commands
- s - change the sort criteria
- i - detailed information about a selected network
- d - dump human readable packets. If traffic isn't encrypted you'll be able to read lots
- c - show clients in current network
Capturing packets
- Kismet automatically logs everything it captures, in
/var/log/kismet/ - Change the sort criteria so the display isn't shifting around
- Use the cursor keys to move to a specific access point
- By default Kismet channel hops, use 'L' to lock to the current network channel
- wait
- You can import the log file into Wireshark and Aircrack-ng
If you have a system with a single partition for the Debian system and another for home directories (rather than a separate /var partition or both on a single partition), you should take care not to allow Kismet logs to use up all the available disk space on the system partition by its logging to /var.
macchanger
macchanger -a -A ath0
Further Information
aircrack-ng has a lot of documentation at www.aircrack-ng.org.
Internet access through a GPRS or 3G / W-CDMA phone from a computer over Bluetooth
This requires working Bluetooth packages and Bluetooth adapter, see the Bluetooth section.
Packages
- ppp - Point-to-Point Protocol (PPP) daemon - provides a standard way to transmit datagrams over a serial link, as well as a standard way for the machines at either end of the link (the "peers") to negotiate various optional characteristics of the link. Using PPP, a serial link can be used to transmit Internet Protocol (IP) datagrams, allowing TCP/IP connections between the peers.
Configuration
To use pon ordinary users need to be a member of the group dip.
Create /etc/ppp/peers/gprs-or-3g with the following contents:
noauth # Do not require the peer to authenticate itself. This option is privileged. connect "/usr/sbin/chat -v -f /etc/chatscripts/gprs-or-3g-connect" disconnect "/usr/sbin/chat -v -f /etc/chatscripts/gprs-or-3g-disconnect" silent # "needed this to remove problems with loopback on connecting" debug # Log to /var/log/messages /dev/rfcomm0 # The device specified with 'rfcomm bind' or in /etc/bluetooth/rfcomm.conf 115200 # The speed at which to connect, in kilobaud defaultroute # Use this network as the default route, written into the routing table usepeerdns # Use the DNS servers from the remote network
See man pppd for help with these commands.
Create /etc/chatscripts/gprs-or-3g-connect with the following contents:
TIMEOUT 5 ECHO ON ABORT 'BUSY' ABORT 'ERROR' ABORT 'NO ANSWER' ABORT 'NO CARRIER' ABORT 'NO DIALTONE' ABORT '\nRINGING\r\n\r\nRINGING\r' SAY 'Starting GPRS connect script\n' # Get the modem's attention and reset it: '' 'ATZ' # ? TIMEOUT 12 # E0=No echo; V1=English result codes OK ATE01V1 # Here you can set the Access Point Name (APN) or leave it commented # out and use the phone's default GPRS or 3G / W-CDMA access point. # Or you could create separate scripts each specific to a provider. # SAY 'Setting Access Point Name...\n' # OK 'AT+CGDCONT=1,"IP","<operator APN>"' # OK 'AT+CGDCONT=1,"IP","internet"' # OK 'AT+CGDCONT=1,"IP","orangeinternet"' # OK 'AT+CGDCONT=1,"IP","mobile.o2.co.uk"' # Dial. If no specific access point is defined above this will call the default # GPRS or 3G / W-CDMA access point. SAY 'Dialling...\n' # The '1' in here is the CID number of the GPRS profile: OK ATD*99***1# CONNECT ''
Create /etc/chatscripts/gprs-or-3g-disconnect with the following contents:
ABORT "BUSY" ABORT "ERROR" ABORT "NO DIALTONE" SAY "\nSending break to the modem\n" "" "\K" "" "\K" "" "\K" "" "+++ATH" "" "+++ATH" "" "+++ATH" SAY "\nDisconnected\n"
Get the MAC address of the phone:
hcitool scan
Bond / pair with the phone. Connect to the phone:
# hcid connect <MAC address of remote device>
Setting a PIN/passkey using the command-line isn't supported so use the GNOME PIN helper
bluez-gnome. The bonding dialog appears in the GNOME Notification Area.
Find the phone's Dial-Up Networking channel:
sdptool browse <MAC address of phone>
Setup the port to the phone. You can do this one of three ways:
- All on the command-line each time you want to use it:
# rfcomm bind 0 <MAC address of phone> <phon's Dial-Up Networking channel> - Using a configuration file, which binds automatically on startup (you can specify multiple phones
as in this example):
/etc/bluetooth/rfcomm.conf:
rfcomm0 {
bind yes;
device <MAC address of phone>;
channel <phon's Dial-Up Networking channel>;
comment "one phone";
}
rfcomm1 {
bind yes;
device <MAC address of phone>;
channel <phon's Dial-Up Networking channel>;
comment "another phone";
}
- Using a configuration file, which doesn't bind automatically on startup (you can specify
multiple phones as in this example) and so requires you to issue a simpler bind command:
/etc/bluetooth/rfcomm.conf:
rfcomm0 {
bind no;
device <MAC address of phone>;
channel <phon's Dial-Up Networking channel>;
comment "one phone";
}
rfcomm1 {
bind no;
device <MAC address of phone>;
channel <phon's Dial-Up Networking channel>;
comment "another phone";
}# rfcomm bind 0orrfcomm bind 1
Usage
Connect to the Internet:
pon gprs-or-3g
The phone asks for confirmation...
For troubleshooting you can see what takes place using:
tail -f /var/log/messages
Disconnect from the Internet:
poff gprs-or-3g
Some points to note about UK Internet access using a mobile phone
- Internet access doesn't seem to be available with Pay-As-You-Go, only with a contract
- You will likely need to buy an Internet access bundle where you pay for a certain number of megabytes download per month. This won't necessarily be available if you are outside of the UK wanting Internet access, in which case you will have to pay much higher rates and possibly arrange this with your provider before it will work
- There are now Internet-only cellular devices with a USB connection and a dedicated tariff
Linux kernel updates
Package(s)
The linux-image-<architecture> package will install the most recent 2.6 series kernel available for that particular architecture and keep it updated when new versions are available. '486', '686', '686-bigmem' and 'k7' architectures are for single and multiprocessor (AKA SMP) 32-bit x86 (generically known as PC, i386, IA32, IA-32 or x86-32) processors. The 'amd64' architecture is for single and multiprocessor (AKA SMP) 64-bit Intel and AMD PC processors (generically known as x86-64 or x64). Debian includes kernels for many other architectures but I focus on these. The following describes how installing the generic kernel package will bring in the specific kernel package.
- linux-image-486 → linux-image-2.6-486 → linux-image-2.6.??-?-486 - optimised for 486-class processors, will work on all 32-bit x86 class processors. Provides a useful fail-safe boot option in case of problems and one which allows you to move the system to a different computer with a different x86 processor architecture.
- linux-image-686 → linux-image-2.6-686 → linux-image-2.6.??-?-686 - optimised for Intel Pentium-Pro/Celeron/Pentium II/Pentium II Xeon/Pentium III/Mobile Pentium III (AKA PIII-M)/Pentium III Xeon/Pentium 4/Mobile Pentium 4/Mobile Pentium 4 M (AKA P4-M)/Pentium 4M/Pentium 4 Extreme Edition/Xeon (32-bit)/Xeon MP (32-bit)/Pentium M (a part of Centrino)/Core
- linux-image-k7 → linux-image-2.6-k7 → linux-image-2.6.??-?-k7 - optimised for AMD K7 (Duron/Athlon/AthlonXP)
- linux-image-686-bigmem → linux-image-2.6-686-bigmem → linux-image-2.6.??-?-686-bigmem - optimised for the same processors as '686' but with 4-64GB RAM
- linux-image-amd64 → linux-image-2.6-amd64 → linux-image-2.6.??-?-amd64 - For Intel IA-32e / EM64T / Intel 64 (Intel Xeon (some models since Nocona), Celeron D (some models since Prescott), Pentium 4 (some models since Prescott), Pentium D, Pentium Extreme Edition, Xeon (Woodcrest), Core 2) and AMD64 K8 (AMD Athlon 64, Athlon 64 X2, Athlon 64 FX, Opteron, Turion 64, Turion 64 X2, Sempron (Palermo E6 stepping and all Manila models)). If your CPU was one of these when you installed you will already have this kernel.
Installation
If you install any of these kernels they will be installed and your old kernel version retained
with the new kernel set as the default in the GRUB boot menu. You can find out which CPU you have in your
system with the command cat /proc/cpuinfo, under 'model name'.
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)
- linux-source-x-x-x (where x-x-x is respective to the kernel source you want, i.e. 2.6.12)
- 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/linux-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/linux-source-version.tar.bz2- unpack the new kernelcd linux-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/linux-image-versionyour-version-name_your-revision_architecture.debcd ..- change directory to where the new Debian kernel package isdpkg -i linux-image-versionyour-version-name_your-revision_architecture.deb- install the linux-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
Debian Linux Kernel Handbook: kernel-handbook.alioth.debian.org/
Portable audio players
Some devices work as USB Mass Storage, like the small flash based players, others require a special driver. Some devices can instead run the free Rockbox software rather than their native software.
Apple iPod (those running Apple software rather than Rockbox)
Package(s)
"I just wish the various different writers of iPod libraries could get together make One iPod Library To Rule Them All instead of 4 different ones with their own little issues and problems."
- libgpod0 - www.gtkpod.org/libgpod.html - libgpod - a library to read and write songs and artwork to an iPod. libgpod is a library meant to abstract access to an iPod content. It provides an easy to use API to retrieve the list of files and playlist stored on an iPod, to modify them and to save them back to the iPod. This package contains the shared library.
- libipoddevice0 - banshee-project.org/Subprojects/Libipoddevice - libipoddevice - library for retrieving informations from iPods
- gnupod-tools - gnupod. command-line tools for the iPod family of portable music players
- ipod - tool for retrieving informations from iPods. Uses libipoddevice.
- 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]
Usage
Connect an iPod and it auto mounts to /media/<name>, allowing you to read the files, whether its
formatted with HFS+ (AKA 'Mac-iPod') or FAT32. Rhythmbox will automatically recognise it and
catalogue its files. You can copy files off an iPod with gtkpod but it doesn't look as though you can
with Rhythmbox.
gtkpod (Applications → Sound & Video → gtkpod)
expects to find the iPod at /mnt/ipod but the iPod will instead be at
/media/<name> so you need to instead start it with
gtkpod --mountpoint /media/<name> or use the IPOD_MOUNTPOINT environment
variable.
Then choose 'Load iPod(s)' → "Could not find iPod directory structure at
'/mnt/ipod' If you are sure that the iPod is properly mounted at '/mnt/ipod', gtkpod can
create the directory structure for you. Do you want to create the directory structure now?" →
choose yes → iPod mountpoint → /media/<name>.
You'll also be asked 'Model Select or enter your model'. You'll need to know the generation and model
name. You're supposed to be able to read this from the directory on the iPod
/iPod_Control/Device/Sysinfo but I found this was blank. Alternatievly there's a model
number on the rear. i.e. 'Model No: A1136' whch is a fifth generation 30GB iPod Video but this
wasn't in gtkpod's list so I chose '30GB Video Black XA146' fro it seemed to work ok.
You can copy files off an iPod with gtkpod, despite the package description saying you can only copy
to it. Right-click on music and choose 'Copy Tracks to Filesystem'.
The default 'Filename Format:' didn't work out well so I created this one:
%o.wav;%a/%A/%T - %t.mp3;%a/%A/%T - %t.m4a;%a/%A/%T - %t.aif which creates a sub-directory
for the artist and for the album, I think only if the ID3 tags reflect this.
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.
One option...
- 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.
Another option - is this a hotplug variant or just a later version?...
- libnjb5 - libnjb.sourceforge.net/ - Creative Labs Nomad Jukebox library
- libnjb-doc - Creative Labs Nomad Jukebox library documentation
Players that use Microsoft MTP (Media Transfer Protocol) - includes Creative NOMAD/Zen/Dell DJ
Package(s)
- gtkam - graphical program to look at what's on the device and transfer it off
- gphoto2 - command-line program for operating and transferring files between computer and device.
(uses libgphoto2 - "The MTP protocol is a variation of PTP (Picture Transfer Protocol, used for still image cameras), mostly pushed by Microsoft who provide a standard driver in the latest Windows XP updates. It is some sort of corruption of PTP and I think that the idea behind is to be able to control what files can put on the device, like implementing DRM." - hub) - (In future libmtp)
Usage
from the command-line
- get a file from a folder on the device to the current directory, example:
gphoto2 --folder "/store_00010001/Music\<artist name>" --get-file "<filename>" - get all files in a folder on the device to the current directory, example:
gphoto2 --folder "/store_00010001/Music\<artist name>" --get-all-files
from within GNOME
Use Applications → Graphics → gtkam (I haven't successfully used it to download files though)
Creative Nomad players
Package(s)
- 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 (those running iRiver software rather than Rockbox)
Package(s)
- easyh10 - easyh10.sourceforge.net/ - Utility to manage the iRiver H10 music player
- 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
- libifp4 - communicate with iRiver iFP audio devices
- iFP-Gnome - ifp-gnome.sourceforge.net/ for 1xx, 3xx and 7xx iRivers. Not available in Debian but there are .deb files downloadable from their web site.
OpenVPN client
For a full description of setting up and using a VPN server see our 'Remote Access' document at thegoldenear.org/toolbox/unices/remote-access.html
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.
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
Proprietary Software (Internet Explorer, Skype, etcetera)
To-do: a warning
Files under the directory /usr/local/ are not under the control of the Debian package management system so are safe from being overwritten when the system software is updated. This is where you install non-Debian software. Use the different sections there like so:
source code: /usr/local/src/<package name>
binaries: /usr/local/bin/<package name>
libraries: /usr/local/lib/<package name>
configuration files: /usr/local/etc/<package name>
Microsoft Internet Explorer (MSIE, IE)
Though Debian's Mozilla Firefox / Icedove is a far better choice of browser you might still want Internet Explorer (IE) for example to view specific web sites that won't allow access from other web browsers or for testing during web site development.
This IE seems to be a stand-alone version. It uses Wine but Wine doesn't seem to be able to use it, at least as far as I can deduce so far. If you have Windows software installers that require IE then you should possibly install another IE into Wine manually.
Package(s)
- wine - required to emulate Windows
- cabextract - required to extract the contents of CAB files downloaded from Microsoft
Installation
There isn't a package you can install using package management software. Instead you use
IEs 4 Linux (IEs4Linux) which you download from
www.tatanka.com.br/ies4linux/page/Main_Page and run using:
wget www.tatanka.com.br/ies4linux/downloads/ies4linux-latest.tar.gz
tar zxvf ies4linux-latest.tar.gz
cd ies4linux-*
./ies4linux
It will download Internet Explorer(s) from Microsoft and install into your home directory (or where
ever you ran the installer from) and create a desktop shortcut. This doesn't install for all users of
the system. You can have Internet Explorer versions 5.0, 5.5 and/or 6.0 and in the future 7.0; and
Flash Player version 9.
Further Information
Wikipedia: en.wikipedia.org/wiki/Internet_Explorer
Skype
Package(s)
- skype - www.skype.com - Internet telephony.
Skype uses a proprietary protocol compared with the open SIP protocol used by other Internet telephony software available in Debian. Skype has many limitations compared with SIP clients but is popular. [Architecture: i386 only but there's a workaround]
Non-i386 architectures note: they don't say so on their download page but it's for the 32-bit x86 architecture only. Skype Corp have only licenced a binary version of 'global IP sound' which Skype is based on, rather than source code. Supposedly you can use 'getlibs' to work around the issue, see ubuntuforums.org/showthread.php?t=474790
Add this Skype repository, for 32-bit x86 / i386 architectures only, to your sources list (/etc/apt/sources.list)
(rather than downloading manually from
www.skype.com/intl/en/download/skype/linux/):
deb http://download.skype.com/linux/repos/debian/ stable non-free
You can do this using Desktop → Administration → Software Properties or with this command:
# echo "deb http://download.skype.com/linux/repos/debian/ stable non-free" >> /etc/apt/sources.list
The Skype repository provides the latest version of Skype whether that's a stable or sometimes but not always the latest beta release which isn't ideal on Stable but is OK on Testing.
Issues
Skype wakes the CPU up too often and so consumes more power than most applications: https://developer.skype.com/jira/browse/SCL-145
Further Information
Wikipedia: en.wikipedia.org/wiki/Skype
Skype bug tracker: https://developer.skype.com/jira/secure/Dashboard.jspa
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 '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/testing/
Release Notes: www.debian.org/releases/testing/releasenotes
All software packages keep their documentation in /usr/share/doc/package-name. dwww
(in GNOME, if you have dwww installed, 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>.
strace can be used to collect information about what a program does:
strace -o <filename to save output to> <command>