My Linux Book

Urs Lindegger

Abstract

Reduced to the maximum. Introduction to use a Linux pc running gentoo linux


Table of Contents

1. Introduction
Note
Why again an other Linux Book
About myself
My Linux history
About the Document
Style in this book
What is Linux
Some terms
Daemon
Zombie
N00b
TUX
Gnu
CamelCase
Foo, bar and foobar
rc and init.d
The Config files
Message when you move from Windows to-wards Linux
Advantages
Disadvantages
Some rules when working with Gentoo Linux
Knoppix
Pendrive
Android
BSD (Berkley Software Distribution)
Help
Using the manual pages
Man pages on the web
Info pages
Using documentation from the packages
Using documentation from the source
Using the Internet
Writing your own man pages
2. Working in the Console
The Console
Console login
Working with bash
Special characters
Wild cards
Strings in Bash
Calculations
Command substitution
Bash scripts
Bash processes
Bash variables
The [ program
Bracket overview
Debug of bash scripts
Bash configuration
Commands
cat
cd
cp
cut
dd
find
grep
ls
more or less
mv
rm and rmdir
strings
tail
uname
watch
Sed
Filtering certain lines
Sed Commands
Sed Options
Regular expressions
Character description
Examples
Ranges of characters
Localization
3. System
Character encoding
ASCII
ASCII Table
UTF-8
Hexadecimal
Booting and runlevels
BIOS
Bootloader
Booting the kernel
Inittab
Improving the boot time
Mounting the file systems
Boot script and default runlevel
Initscripts
Login at startup
BIOS update
Start up messages
Linux 32 bit or 64 bit
Loading Libraries
Processes
Interprocess Communication IPC
Kernel
Hardware compatibility
Having the hardware and looking for drivers
Hints about kernel compiling
Kernel compilation
Kernel internals
Kernel modules
modules configuration
modules directory
update modules
Working with the modules
D-Bus
Devicekit
udisks
Log files
Config files
Files that will be customized
Files usually not to be customized
CPU
Memory
Endians
Memory usage
Swap
Memory Management Unit (MMU)
Time
UTC
NTP
RTC chip on the motherboard
Gateways and Routers
Cron
Vixie-cron
Other crons
Frontends
Clone a system
Turn off a Linux computer
Posix
Install Packages
Redhat/Suse
Debian
Gentoo
From Source
4. Hardware
Graphic Cards
Common issues with video cards
Nvidia
ATI Grapcis Cards Radeon
Monitors
Keyboard
Mouse
Parallel Port
PCI
Power
ACPI
Batteries
Frequency scaling of the cpu
Hard disks
Impact of the software
5. Graphical User Interface (GUI)
Xorg, the X server
Install the X server
The configuration file
Font
Setting up fonts
Resetting font configuration
Japanese, Chinese and Korean fonts
Desktop environments
Gnome
KDE
Xfce
Window Managers
Compiz
Graphical login
Start, stop and login
Slim
Screen capture
QT
6. Authentication
Ownership
User account
User definition
Group definition
Working with different computers
Commands and behavior
Administrator (root or superuser)
Sudo
Policykit
Consolekit
Login
Password managers
Kwallet
Gnome keyring
View and synchronize the passwords
PAM
PAM applications
PAM modules
PAM configuration files
How it fits together
PAM configuration file contents
PAM Examples
Gnupg
Produce your keys
Key servers
Handling the keys
Using the keys
Gpg Agent
GUI's for Gpg
Seahorse
LDAP
Hacking a computer
7. Filesystem
FHS (Filesystem Hierarchy Standardization)
Permissions
Linux file systems
ISO file systems
Rock Ridge and Joilet
Mount a ISO image
Microsoft File Systems
FAT
NTFS
Fix permissions
Encrypted File Systems
Encfs
TrueCrypt
Other encryption methods
Links
Symbolic links
Static links
Pipes and FIFO
Device files
Mount and umount
Automounter
udev
udev rules
Advanced udev rules
Proc
Hard disk
DMA (Direct Memory Access)
Partitions
Test programs
SMART (Self-Monitoring Analysis and Reporting Technology)
CD and DVD
RAM disks
Floppy disks
Format
Mount
Floppy image files
Convert file systems to files
Checksum
MD5 Message-Digest algorithm 5
SHA-1 and SHA-2
MD160
Integrity of CD/DVD's
Device Mapper
Filelight
Zip files
bzip2
gzip and gunzip
Tar
unrar
Zcat
Zip
Unison
8. Networking
Serial port
Terminal programs
Troubleshooting serial links
USB to RS232 serial controller
Programming serial links
Base64
Ethernet
TCPIP
TCP/IP packets
Setting up the TCP/IP connection
IP addresses and DHCP
DNS (Domain Name System)
Dynamic DNS
OpenNIC
DNS name server
Network tools
Networkmanager
Wicd
Server configuration
Sockets
URL and URI
Wireless
Device drivers
Wireless implementation under Linux
Tools to work with wireless connections
USB
Installing USB
USB protocol
Descriptors
I2C
Different implementations
External I2C adapters
Observing an external LM75 chip
A MLX90614 Infra Red Thermometer
Observing a memory chip
I2c bit banging
Telnet
Telnet client
Telnet server
SSH
FTP
Ftp servers
Ftp clients
Rsync
Mail
Kmail, the KDE e-mail program
Evolution
Simple mail programs
MIME
Instant Messenger (IM)
Internet relay chat (IRC)
RSS
eD2k (eDonkey2000)
Network filesystems
NFS
Samba, connect Windows PC's to the Linux World
Automount
Webserver
Apache
Ngnix
LAMP
PHP
CGI
SSI
Ajax
Access counters
htdig
World Wide Web
Browser
HTTP
HTML
Making html nicer
The meta tags
Working with HTML
Wireshark
Xinetd
9. Office
Documents
Acrobat
Emacs
LibreOffice
Latex
Lyx
Wiki
Dokuwiki
Contacts
Calculators
Printer
Line printer
Cups
PDF printers
Printer troubleshooting
Spell Checkers
SQL
SQLite
MySQL
Korganizer
10. Graphics
Dot
Gnuplot
Command line tools for images
Gimp
Daily work with Gimp
Animated Gifs with Gimp
Icons with Gimp
Image maps for web pages
Inkscape
Synfig 2D animation
Modeling 3D
Blender
Coordinate system
The Blender windows
Blender game engine
Scripting Blender
Povray
Wings 3D
User interface
Modeling
Making holes
CAD
qcad
Scilab
Freemath
Printed Circuit Board design
Kicad
Eagle
Scanner
11. XML
Introduction to XML
XML tags
Adding special characters to xml
XML Namespaces
DTD (Document Type Definition)
Doctype
XML Schema
RELAX NG
Working with XML
XmlStarlet
xmldiff
Html-xml-utils
XML2
Validate xml
Docbook
Docbook syntax
Docbook editing
Converting Docbook via Sgml utils
Converting Docbook via XSLT
XML as HTML evolution
XHTML
MathML
Xpath
Absolute path
Relative path
Wildchards
Stylesheets
Cascading Style Sheets
DSSSL (Document Style Semantics and Specification Language)
XSL
Publishing XML Documents
XSL processing
Formatting Object Processor
Jade
Cleanup XML
Other tools
Processing Instructions
Processing XML in Python
ElementTree
lxml
SOAP
XML alternatives
JSON
12. Multimedia
Image formats
PPM
GIF
JPEG
ALSA
Setting up ALSA
Command line sound tools
Gui sound tools
Sound Hardware
Audio CD
Internet radio
Speech
Festival
mbrola
Speech device
KDE speech tools
Speech to mp3
Music synthesizer
Movie formats
Container formats
Video codecs
Video tools
Compression techniques
Video
Setting up the hardware
Video compression
Video DVD
Rip a video DVD
Camera
Webcam
Logitech, Inc. QuickCam 3000 Pro [pwc]
Thyphoon EasyCam
Webcam applications
IR cameras
TV cards
No auto detected TV cards
Digital TV cards
DVB-T Antennas
Analog cards
TV Applications
EPG (Electronic Program Guide)
Nxtvepg
XMLTV
Frontends for XMLTV
Internet TV
Media player
Mplayer
Xine
Gstreamer
VLC
Infrared remote control
LIRC (Linux Infrared Remote Control)
Using v4l2 ir devices under LIRC
Media Server
The server
The client
Home theater
Freevo
Mythtv
VDR
Oxine
Geebox
Mediasystem
Dreambox
Connection to the TV
13. Outdoor and fun
Mobile phones
Dial up
Connections using 3G phones
Gnokii
Obex
Opensync
Bluetooth
Bluetooth connection to the phone
Gnome bluetooth
Kdebluetooth
Other bluetooth software
GPS
GPS devices
The gps daemon gpsd
The maps
Gpsbabel
Navit
gpsdrive
Foxtrotgps
Google earth
eBook
EPUB
Aluratek libre eBook Reader Pro
Sigil
Calibre
fbreader
Ebook-tools
Games
Privateer
Linurs games
Unreal Tournament
14. Gentoo Linux
Gentoo fundamentals
The world file
System packages
The package data base
Emerge
Virtual packages
Slotted packages
Package sets
Finding what has been installed
Portage
Portage tools
Use flags
eselect
Mirrors
Profile updating
Handling of Config Files
etc-update
dispatch-conf
cfg-update
Ebuilds
Ebuilds in Portage
Working with different version of an ebuild
Creating an ebuild
Record of the installation
Elogs
Install an ebuild using the command ebuild
Debugging emerge and ebuilds
Overlays
The overlay directories
Layman
Using layman on self made overlays
LinursOverlay
Search in not installed overlays
Publish self-made programs
GLSA
Gentoo internals
List of repetitive tasks
Keep computer updated
Cleanup tasks
Backup data
Check disk space
Checking dependencies
Advanced checks
Check the disk health
Check log files
Check init scripts
Check portage database
Troubleshoot
Program crashes or does not start
Boot errors
Emerge update failures
Emerge wants to emerge stuff that you don't want
Emerging groups of ebuilds
No keyboard and mouse in X after update
Problems with after a gcc update
Python version conflicts
No Internet connection after update
Dependency troubles
Using Portage tools
Having done stupid things
15. Programming
gcc
C programming
The hello wold program
Hello world split in two files
Interacting with the parent process
Integrated development Environments (IDE)
Makefiles and make
Debugging
Execution from the text console
Libraries
Python
Python documentation
Installing an maintaining Python
Python3
Python on other operating systems
Hints on Python
Python IDE's
Embedded python debugging
Python GUI
Documenting Python
Python byte code
Accessing C code
Java
Java hello world program
Java hello world applet
Java script
Pascal
Free Pascal
Gnu Pascal
Eclipse Pascal
Debugging Pascal
TCL TK
Csharp
Basic
Perl
Ruby
slibvga
Beautifiers
Doxygen
Create the documentation
Doxygen Syntax
Graphic support
Build tools
Autotools
Scons
Waf
Code analysis tool
Version control
Git
CVS ( Concurrent Version System)
Other version control systems
Logging
16. Embedded Devices
Cross compilation
AVR microcontrollers
Setoutput
Compiling and linking
Assembler
Program the chip
Debugging micro controllers
IDE for micro controller development
Interfacing AVR devices to Linux via USB
LCDproc
Hardware issues
LCDproc software setup
Modbus
Terms and definitions
Libmodbus
Freemodbus
MBLogic
MBLogic Soft Logic
HMIServer
MBProbe
17. Emulation
DOS
DOS emulators
FreeDOS
VirtualBox
Guest additions
Run a ISO CD image
Back to the past
Shared folders
USB devices
Using Serial port
Running FreeDos
Snapshots
Bochs
Wine the Microsoft Windows API for Linux
HP41 Calculator
Remove applications
A. Bibliography
Bibliography
Index

List of Figures

1.1. Me
1.2. Root
1.3. Zombie
1.4. Tux
1.5. GNU
2.1. Bash debugger
4.1. Ati
4.2. Smart Batteries
5.1. Compiz cube
5.2. Compiz screens
7.1. Truecrypt
7.2. Filelight
7.3. Unison
8.1. USB
8.2. Access counter
9.1. Latex
9.2. Nonpareil
9.3. Cupspdf
10.1. DOT
10.2. gnuplot
10.3. Oven
10.4. 3D cube
10.5. Povray
10.6. Povray
10.7. Wings
10.8. KiCad schematics
10.9. KiCad PCB
10.10. KiCad 3D
10.11. kiCad drill
10.12. GCprevue
10.13. Drill data
11.1. Conglomerate
11.2. Serna-free
11.3. xsltdebugger
12.1. Sound connectors
12.2. camstream
12.3. DVB antenna
12.4. PCTV
12.5. SAA3134
12.6. Tvtime
12.7. Aletv
12.8. Nextview
12.9. Lirc serial receiver
12.10. Component side
12.11. Solder side
12.12. Connector
12.13. Isolation
12.14. Lirco
12.15. IR Remote controller
12.16. IR signals
12.17. Home theater
12.18. Freevo
12.19. Vdr
12.20. Geebox
13.1. Gnokii
13.2. Bluetooth daemon
13.3. Navilock
13.4. Griess glacier
13.5. Navit gtk
13.6. Navit Internal gui
13.7. Navit menu
13.8. Gpsdrive
13.9. Google earth
13.10. Privateer
13.11. Privateer
13.12. Unreal
16.1. Attiny
16.2. JTAG ICE
16.3. Lcds
17.1. Sokoban
17.2. Sokoban
17.3. Keen
17.4. Virtualbox and compiz is running Ubuntu and XP
17.5. HP41

List of Tables

2.1. grep
3.1. Unicode to UTF-8
3.2. Signals
7.1. Permissions
10.1. Basic viewing commands
11.1. Special characters
11.2. xpath
15.1. gdb
15.2. String methods

List of Examples

2.1. Test script
3.1. Boot memdisk
3.2. system call
3.3. fork
5.1. Custom screen resolution
7.1. Permission
7.2. umask
7.3. GUI mount NTFS
7.4. udev rule
8.1. Access Counter
10.1. Dot
11.1. XML
11.2. DTD
11.3. DTD in XML
11.4. Split docbook
11.5. Docbook
11.6. XHTML
11.7. CSS in head tag
11.8. CSS link to file
11.9. CSS classes and ids
11.10. xsl stylesheet
12.1. mplayer command
12.2. mplayer video example
14.1. ebuild
14.2. ebuild variables
14.3. overlay list
15.1. hello.c
15.2. hello.c splitted
15.3. hello c function
15.4. Dynamic library
16.1. setoutput
17.1. Mount vdi