Linux Slackware 14.0 (64 bits) quick setup

Slackware 14.0 (XFCE)

Slackware 14.0 (XFCE desktop)

System used for this howto :
VirtualBox 4.2 virtual machine, with
2 cpu’s
1024Mb RAM
20Gb Hard disk

Installation

Download the official (64 bit) DVD iso
Boot the DVD
Select your keyboard map, login as “root”.
Create your partitions (I use cfdisk)
# cfdisk /dev/sda
First partition (/dev/sda1) : swap
(use at least the same size as your RAM for suspend-to-disk to work)
Second (bootable) partition (/dev/sda2) : Linux
Start the installer
# setup
Go to ADDSWAP and follow the steps. For my Linux root partition I use ext4 as filesystem.
Package selection
I choose Default, but personally deselect “GNU Emacs”, “TeX” and “Games” as I don’t use them.
We will install KDE international language later.
Select prompting mode. I select “terse” which is faster.
Default choices are used for the rest of the installation steps.
End of installation
# reboot

Post-installation configuration

Note : root login is permitted by ssh in the default Slackware installation.
First login on the system, login as root, then check your mail
# mail
or even better, use mutt
# mutt

Setup Slackpkg and update your freshly installed system

Select your mirror
# nano /etc/slackpkg/mirrors
Uncomment ONE mirror.
# slackpkg update
# slackpkg upgrade-all

Set the system locale

Show list of supported locales
# locale -a
Then set it (changes will be effective after a reboot)
# nano /etc/profile.d/lang.sh
(here for french systems)
export LANG=fr_FR.utf8
(Do the same for /etc/profile.d/lang.csh if you use the tcsh shell)
Add your KDE international language (here french for me).
Note: installing the KDE environment will also install the Calligra office suite.
# slackpkg search l10n
then
# slackpkg install kde-l10n-fr calligra-l10n-fr
Note 1 : you’ll have to select the language to use in KDE’s system settings (look under Locale).
Note 2 : the language pack in XFCE will be automatically detected after you set the systemwide locale.

Sendmail

Note : your system should have a valid DNS name otherwise email relaying will be refused ( “Sender address rejected: Domain not found” ).
Use netconfig to reconfigure hostname and domain if needed
# netconfig
Configure the MTA so that the system can send outgoing mail to the internet.
We will use our ISP’s SMTP smarthost. For this we need to generate a new sendmail.cf configuration file
# cd /usr/share/sendmail/cf/cf
# nano sendmail-slackware.mc
Uncomment the SMART_HOST define :
replace
dnl define(`SMART_HOST',`mailserver.example.com')
by
define(`SMART_HOST',`smtp.yourisp.com')
Save changes and build the config file
# ./Build sendmail-slackware.mc
Copy the generated .cf file to sendmail’s directory
# cp sendmail-slackware.cf /etc/mail/sendmail.cf
Now start sendmail (also this way sendmail will be automatically started on boot, Slackware-style)
# chmod +x /etc/rc.d/rc.sendmail
# /etc/rc.d/rc.sendmail start
Send an email for testing
# echo 'from my Slackware box'| mail -s 'Hello' my@address.com
See the logs to see if everything goes well
# tail /var/log/maillog
Forward root mail
We create a .forward file in root’s home so that emails sent to root@localhost will be forwarded to another address (useful for cron jobs and daemons)
# echo >/root/.forward my@address.com
(several different addresses can be added to the file, one per line)
Test the forwarding
# echo 'from my Slackware box'| mail -s 'Forwarding' root@localhost

X.Org systemwide keyboard settings

You can setup keyboard layout in KDE or XFCE settings. If you prefer to set it up systemwide, just create the file :
# nano /etc/X11/xorg.conf.d/10-evdev.conf
Section "InputClass"
        Identifier "evdev keyboard catchall"
        MatchIsKeyboard "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
        option "xkblayout"      "fr"
EndSection

Virtualbox guest additions (optional, only if running in a VM)

It’s easy to do since Slackware’s default install includes a standard development environment and the kernel source.
(First mount the VirtualBox Additions cdrom)
# mount /dev/sr0 /mnt/tmp
# sh /mnt/tmp/VBoxLinuxAdditions.run

Create a regular user “fred”

# adduser fred
Additional groups (press the UP arrow key) : audio cdrom floppy plugdev video power netdev lp scanner

Graphical login

Edit the /etc/inittab
# nano /etc/inittab
change
id:3:initdefault:
to
id:4:initdefault:
Comment out some ttys while we are at it (will save some memory)
c1:12345:respawn:/sbin/agetty –noclear 38400 tty1 linux
c2:12345:respawn:/sbin/agetty 38400 tty2 linux
c3:12345:respawn:/sbin/agetty 38400 tty3 linux
#c4:12345:respawn:/sbin/agetty 38400 tty4 linux
#c5:12345:respawn:/sbin/agetty 38400 tty5 linux
#c6:12345:respawn:/sbin/agetty 38400 tty6 linux
Save changes, reboot.
Now you should be presented to the default session manager (KDM or XDM if you did not install KDE)

Install additional software

Surprise! There’s an “extra” directory on the DVD! It contains some popular applications :
Chromium web browser, Java, Flash player plugin, …
Just open a terminal and read the TXT file (README) for instructions.
Note: the flashplayer-plugin slackbuild found on the DVD does not work (outdated flash player version no more available for download).
Or just copy extra/flashplayer-plugin/* files to /tmp, edit the .slackbuild file
# nano flashplayer-plugin.SlackBuild
replace
VERSION=${VERSION:-“11.2.202.236”}
by
VERSION=${VERSION:-“11.2.202.238”}
Save changes and run the slackbuild
# sh flashplayer-plugin.SlackBuild
Install the generated package
# installpkg /tmp/flashplayer-plugin-11.2.202.238-x86_64-1alien.txz
Also, as an alternative, the slackbuild found on slackbuilds.org will work ( http://slackbuilds.org/repository/13.37/multimedia/flash-player-plugin/ ).

Additional software from 3rd party packages

(versions are likely to change since the writing of this document)
VLC (from AlienBob’s repository)
(as root)
# cd
# wget http://slackware.org.uk/people/alien/restricted_slackbuilds/vlc/pkg64/14.0/vlc-2.0.3-x86_64-1alien.txz
# installpkg vlc*
LibreOffice (from RlWorkman’s repository)
# wget http://www.rlworkman.net/pkgs/14.0/x86_64/libreoffice-3.6.1_en_US-x86_64-1_rlw.txz
# installpkg libreoffice*
Note : the language packs are not included.
AlienBob also has LibreOffice packages (including the language packs), just wait for some days for the updated packages for Slackware 14.0 to appear 🙂

Filesystem optimizations

# nano /etc/fstab
Add the “noatime” option for the rootfs.
/dev/sda2        /                ext4        defaults,noatime         1   1
Add /tmp in tmpfs
tmpfs           /tmp            tmpfs           defaults,nosuid,nodev   0       0

Generic Kernel, faster boot and resume from hibernation

Generate an initramfs
# /usr/share/mkinitrd/mkinitrd_command_generator.sh -r
Copy the result to your command prompt and execute it
(in my case)
# mkinitrd -c -k 3.2.29 -f ext4 -r /dev/sda2 -m mbcache:jbd2:ext4 -u -o /boot/initrd.gz
Then update lilo’s (bootloader) configuration
# nano /etc/lilo.conf
– add the “compact” directive (will gain some boot speed) at the beginning
– decrease the “timeout” value to your liking (a value of 50 should be enough)
– add a “default” directive for our new kernel entry :
default=Linux-generic
then add a new kernel entry at the end
image= /boot/vmlinuz-generic-3.2.29
root=/dev/sda2
  initrd = /boot/initrd.gz
  label = Linux-generic
  read-only
  append="quiet fastboot resume=/dev/sda1"
Save changes, make sure lilo is executed to update the bootloader code
# lilo -v
Then reboot. Less messages, (a little) faster boot times 🙂
Be sure to test suspend-to-disk (hibernate) and system resume.

Firewalling

By default, no firewall is configured at all.
# iptables -L
We can generate a simple firewall configuration from this website : http://www.mista.nu/iptables/
Then copy and paste our generated firewall to /etc/rc.d/rc.firewall
(the generated config needs some adjustments, like the path to the iptables executable in the IPT variable)
#!/bin/sh
# iptables script generated 2012-09-30
# http://www.mista.nu/iptables
IPT="/usr/sbin/iptables"
# Flush old rules, old custom tables
$IPT --flush
$IPT --delete-chain
# Set default policies for all three default chains
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT ACCEPT
# Enable free use of loopback interfaces
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
# All TCP sessions should begin with SYN
$IPT -A INPUT -p tcp ! --syn -m state --state NEW -s 0.0.0.0/0 -j DROP
# Accept inbound TCP packets
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# SMTP
#$IPT -A INPUT -p tcp --dport smtp -m state --state NEW -s 0.0.0.0/0 -j ACCEPT
# HTTP
#$IPT -A INPUT -p tcp --dport http -m state --state NEW -s 0.0.0.0/0 -j ACCEPT
# HTTPS
#$IPT -A INPUT -p tcp --dport https -m state --state NEW -s 0.0.0.0/0 -j ACCEPT
# SSH
$IPT -A INPUT -p tcp --dport ssh -m state --state NEW -s 0.0.0.0/0 -j ACCEPT
# Accept inbound ICMP messages
$IPT -A INPUT -p ICMP --icmp-type 8 -s 0.0.0.0/0 -j ACCEPT
$IPT -A INPUT -p ICMP --icmp-type 11 -s 0.0.0.0/0 -j ACCEPT
# EOF

Start firewall at boot

# chmod +x /etc/rc.d/rc.firewall
If you want to disable the firewall
# iptables -F
To disable at boot time
# chmod -x /etc/rc.d/rc.firewall

That’s it!

TIPS

Read the TXT files on the DVD! Lots of useful info for special setups (encrypted, lvm/raid, etc)
Need to boot in single user mode (useful for rescue)?
Append “S” to your kernel line at boot time.
Need to reconfigure your system?
# pkgtool
Want to change the default desktop environment?
# xwmconfig
Want to change the default X session manager?
# chmod -x /usr/bin/kdm
This will use XDM instead of KDM as the default session manager

Useful links

Official Slackware wiki
Packages list
SlackBuilds
AlienBob’s packages
Rlworkman’s packages
Great sendmail howto

Installing a FreeBSD 9.0 (i386) minimal desktop system

FreeBSD 9.0 RELEASE (i386)

Minimal desktop for web browsing, email, video, music playing…

Useful references :
Tested in a VirtualBox 4.1.8 virtual machine with
  • 512Mb RAM
  • 8.0Gb Hard disk

Installing an OpenBSD 4.9 (i386) desktop system

Note : this tutorial is now obsolete. Please refer to the official OpenBSD installation documentation.

 

How to obtain a lightweight OpenBSD desktop using the XFCE 4.8 environment

(this tutorial was made using a VirtualBox 4.0 virtual machine)

Download the install CD image : http://ftp.fr.openbsd.org/pub/OpenBSD/4.9/i386/install49.iso (french mirror)

Choose your mirror here : http://www.openbsd.org/ftp.html

Installing OpenBSD

The install procedure is straightforward. Boot the CD and follow the Official faq : http://www.openbsd.org/faq/index.html
Continue reading

A fast and lightweight Linux desktop with CRUX Linux 2.7 (i686)

http://crux.nu

Main advantages for CRUX :
– fast (simple yet efficient boot scripts) and “keep it simple” principle (targeted at experienced users)
– contains only essential software (reduced disk space usage)
– good package manager with support for dependencies (prt-get) and BSD-like ports system (few but quality packages)

Some cons :
– kernel must be compiled during installation process
– being a source-based distro, compilations will take a long time on slower machines
– no support for native languages (but this is done on purpose)

Continue reading

Building a tiny X.Org Linux System using Buildroot

This is my 3rd Buildroot howto, please read the previous ones in order to get started!

 

This howto was made using a Debian Squeeze 6.0 build host, with Buildroot 2011.02 (latest snapshot from the git repository)
Download and configure Buildroot :

Get the latest Buildroot and start configuring it (as a regular user)
$ cd
$ git clone git://git.buildroot.net/buildroot
$ cd buildroot && make menuconfig

Continue reading

How to create a very small Linux system using Buildroot

Have you ever tried to install a modern Linux distro onto a small capacity (usually 32 megs or even less) usb drive or compact flash card?

Even with a minimal install, such a distribution will not fit! Major Linux distros like Debian/Slackware/Arch/etc need a bare minimum of 300-400 megs of disk space.

The only minimal system I have been able to install so far on a 128Meg disk is NetBSD ( http://www.netbsd.org ).

But there is a way to achieve such a thing : we will be using Buildroot in order to generate a very small (embedded) Linux system (targeted at a standard intel x86  computer)

Continue reading