SliTaz 5.0 RC-1 released

slitazSliTaz is back from its 2+ years old hiatus and announced version 5.0 RC-1 (Release Candidate 1) today. SliTaz 4.0 was released on Apr 10, 2012 and development was almost at a standstill for a while. But things are looking brighter now and hopefully version 5.0 is round the corner once RC-1 gets well tested.

5.0 RC-1 includes many bug fixes and features a new look. The size of the ISO is 40MB. SliTaz has always been more usable than other Linux mini distros (like TinyCore Linux) because it ships with the LXDE desktop environment which is very matured. As always, it supports even the oldest i386 hardware. SliTaz is traditionally for BIOS but I have published an article recently on how to run it on a UEFI machine.

Grab a copy and have fun with a tiny yet fully usable desktop Linux distro! Try it on a VM or from USB or install it on your old rig.

SliTaz needs funds to sustain. If you want to donate to this fascinating project, SliTaz has started a fundraiser campaign in 2014.

Webpage: SliTaz

Boot SliTaz in UEFI mode

slitazI mentioned in an earlier post that SliTaz is going to have a 64-bit kernel in 5.0. I was working on the kernel configuration for SliTaz and now I can see that the rolling versions have the 64-bit kernel. SliTaz doesn’t support UEFI devices officially yet but here’s a hack to try it on UEFI systems.

After the EFI support was enabled in the SliTaz kernel on my request I ran my initial tests on a EFI VMware virtual machine with elilo but was unable to boot into SliTaz. However, I got the idea of booting into SliTaz using the already installed grub-efi by Ubuntu from this thread. Instead of creating a new partition I decided to use the EFI System Partition (ESP) installed by Ubuntu. It’s a 64MB partition but less than an MB is actually used. Here’s the detailed way to do it.

NOTE: This procedure is tested on a x86_64 device with 64-bit EFI firmware and Secure Boot disabled. All console operations are ran as root from an existing Ubuntu installation on the device. Steps should be similar for any other OS as well.

  1. Download the slitaz-rolling-core64.iso. At least this is the way to go till SliTaz 5.0 is released.
  2. Mount the iso to a directory named iso.
    # mkdir iso
    # mount -o loop slitaz-rolling-core64.iso iso
  3. Find out your system’s ESP. It should normally be fat32 with the boot flag set.
    # parted
    GNU Parted 2.3
    Using /dev/sda
    Welcome to GNU Parted! Type 'help' to view a list of commands.
    (parted) p
    Model: ATA Hitachi HTS54755 (scsi)
    Disk /dev/sda: 500GB
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt
    
    Number Start  End  Size   File system  Name  Flags
     1    1049kB 64.0MB  62.9MB  fat32            boot
     2    64.0MB 30.8GB  30.7GB  ext4           msftdata
     3    30.8GB  500GB   469GB                 msftdata
    
  4. Mount the ESP to a directory named efi and create the directory structure slitaz/boot on it.
    # mkdir efi
    # mount /dev/sda1 efi
    # mkdir -p efi/slitaz/boot
  5. Copy vmlinuz-x.x.xx-slitaz and rootfs.gz files from the mounted iso to the ESP.
    # cp iso/boot/vmlinuz-3.2.53-slitaz efi/slitaz/boot/
    # cp iso/boot/rootfs.gz efi/slitaz/boot/
  6. Unmount the iso and the ESP.
    # umount iso
    # umount /dev/sda1
  7. Get the UUID of the ESP.
    # grub-probe -t fs_uuid -d /dev/sda1
    9BFA-E454
  8. Add the following entry at the end of /etc/grub.d/40_custom. You can omit the explanatory comments in red but read them to change the settings unique to your system.
    menuentry 'Slitaz' {
    set gfxpayload=keep
    insmod gzio
    insmod part_gpt
    #insert the module for partition used. vfat module not required as efi firmware can read fat32
    # insmod vfat
    #gpt1 is the first partition on my only hard disk (hd0)
    set root='hd0,gpt1'
    #set the UUID from Step 7 below
    search --no-floppy --fs-uuid --set 9BFA-E454
    echo 'Loading SliTaz ...'
    #set any device specific options in kernel options
    linux (${root})/slitaz/boot/vmlinuz-3.2.53-slitaz lang=en kmap=en acpi_osi=vendor acpi_backlight=vendor sound=noconf --
    initrd (${root})/slitaz/boot/rootfs.gz
    }
  9. I use the following settings in /etc/default/grub. This way I can press Esc during the GRUB menu countdown and select the entry I want.
    GRUB_DEFAULT=0
    GRUB_HIDDEN_TIMEOUT=0
    GRUB_HIDDEN_TIMEOUT_QUIET=false
    GRUB_TIMEOUT=0
  10. Regenerate GRUB.
    # grub-mkconfig -o /boot/grub/grub.cfg

If everything goes fine you should find the entry for SliTaz in GRUB menu on the next reboot and be able to boot into it on your UEFI device! There’s still a problem I’m facing with English fonts but this whole exercise was experimental.

Slitaz ARM for Raspberry Pi is ready!

slitazThe ARM port of SliTaz is ready. The community has developed a new tool sat (SliTaz ARM Tool) for building custom distros. Currently it works on the Raspberry Pi and provides a GUI. The ARM post has its own version of the cooker: ARM Cooker to ease the development. spk is the ARM Package Manager. Packages are uploaded in the Hg repository. Pre-built toolchains are available for cross-compilation or a developer can even make his own toolchain using the cross tool. The ARM emulator (based on qemu) is also available among the packages.

I think it is a great step for SliTaz as it increases the chances to be ported on ARM based mobile devices.

Webpage: SliTaz ARM, SliTaz Raspberry Pi release

Why some open source projects fail: a case study in Slitaz

slitazSince I booted it the first time Slitaz has been my most favourite mini distro. However, since the release of Slitaz 4.0 (in April 2012), development has been very slow and there is no clear release schedule in the near future. To push a new release I put my efforts and cleared one of the major standstills: the new kernel configuration and an IDE related issue that was inherently a part of the new configuration and some reported bugs but clearly that wasn’t enough. A proposed beta is in a standstill due to a CDROM eject related issue (check here if you are interested in working on it) and it doesn’t seem like this is going anywhere. While I think that this should not be the reason why a beta release can’t be done (because USB is eventually going to seal the fate of CDs the same way the latter have done to floppies), officially I am not in a position to drive these decisions. However, from this experience I identified some probable reasons why an open source project might fail:

  • The project didn’t remain interesting enough for developers. I think Slitaz has lost its relevance due to strong competition from mini distros like Porteus. Though it isn’t as small as Slitaz, it is newer, more promising and being actively developed.
  • Reluctance to embrace the bleeding edge in fear of losing the backward compatibility. The kernel configuration I did for Slitaz was on 3.2 though their were later stable versions available. Maybe a fork with an older kernel could have been considered. In addition, there was not much interest in supporting newer technologies like UEFI.
  • Loss of visibility due to long absence from the news. I saw far too many users asking the status of the project in the forums but there was no concrete answer for that other than a lot of NULL talk on the reasons why there is no path. That leads to loss of interest in users; specially when alternatives like ArchBang, Linux Lite, Porteus are available.
  • The original developer(s) are gone and the new developers, even if interested need to start understanding things from the scratch. The completion path is too long to hold them.
  • What interested me more in Slitaz was the fact that it was developed independently on top of the kernel. However, now it seems that this was also its weakness. It did not have enough developers to backup and it never grew big enough to draw the attention as it would if it were an equally light and fast fork of any major distro like Arch Linux or Mandriva or Ubuntu.

Despite these I wish Slitaz all the best and hope that someone adds momentum to the release cycle and we see a Slitaz 5.0 someday.

Quick guide to start cooking SliTaz packages

slitazSlitaz is a Linux mini distro with an ISO of around 30MB. Slitaz development has been in a standstill since the release of version 4.0 and I got involved for a while to fix an issue with disk detection and configure and upgrade the distro to a newer Linux kernel. Creating a development setup and cooking packages for (and on) SliTaz is quite easy. The following steps and instructions are meant to be a quick no-nonsense guide to get any newbie start cooking a package within an hour.

Install SliTaz on a VM

  1. Download the latest stable version of SliTaz from here. Download the slitaz-x.x-core.iso.
  2. Create a new VM with around 8GB disk, 2GB RAM and OS Linux (Version: Other Linux 2.6.x kernel).
  3. Attach the ISO and boot from CDROM. Choose the Live version. Follow the official installation guide to install SliTaz on your VM.
  4. Once the installation is over, boot into SliTaz [currently default username: tux, password: no password set, just press enter].

Set up your SliTaz development environment

  1. Install the development package and it’s dependencies with the following command:
    # tazpkg -gi tazdev
  2. Create the isolated chroot environment for development:
    # tazdev -gc
  3. su to root (password: root)
  4. chroot to the development environment:
    # tazdev chroot
  5. Install the utilities needed to start cooking:
    # tazpkg recharge
    # tazpkg -gi cookutils
  6. Clone the wok repository or create one for personal use:
    # cook setup --wok //clone the wok to build official packages
    OR
    # cook setup //create a wok from scratch for personal use
  7. cd to /home/slitaz and cook the slitaz-doc package as a start:
    # cd /home/slitaz
    # cooker pkg slitaz-doc

    You will find the package created under the /home/slitaz/packages directory.

  8. The downloaded source packages and source code for the packages will be present under the src and wok directories. cd around to get accustomed to various directories and files.

Instructions to compile new or modified kernel

  1. The package you first need to cook is linux and it is present under /home/slitaz/wok. To change any configuration, modify the following files from /home/slitaz or use our own config file:
    wok/linux/stuff/linux-slitaz.config
    wok/linux/stuff/linux-slitaz.config64
  2. If you are trying to compile a newer kernel, you have to update the references in the receipt files. Run the following under wok directory first:
    # cd /home/slitaz/wok
    # find . -type f -name receipt -exec sed -i 's/3.2.40/3.2.48/g' {} +

    Here I am trying to update all references to kernel version 3.2.40 to 3.2.48

  3. To compile a newer kernel:
    # cd /home/slitaz
    # cp -vf my_config wok/linux/source/linux-version/.config
    //OR (to use the existing config)
    //# cp -vf wok/linux/stuff/linux-slitaz.config wok/linux/source/linux-version/.config
    # cd wok/linux/source/linux-version
    # make oldconfig
    //answer the questions asked for missing config options
    # cp -vf .config wok/linux/stuff/linux-slitaz.config
    # cp -vf .config wok/linux/stuff/linux-slitaz.config64
  4. cook the package linux:
    # cooker pkg linux-slitaz
  5. If the build fails complaining about any missing configuration options, set that in linux-slitaz.config and repeat steps 3 and 4.
    Reference for configuration options from Ubuntu Raring:
    http://kernel.ubuntu.com/~kernel-ppa/configs/raring/i386-config.flavour.generic
  6. Once the linux package is built, you need to cook other packages that depend on the modules built with the linux package. Run the following under wok:
    # for i in $(grep 'WANTED="linux"' */receipt | \
    grep -v 64 | cut -d \/ -f 1); do cooker pkg $i; done

Useful links

SliTaz to have 64-bit kernel in 5.0

slitazAs per the indications in the recent post by shann in this discussion thread SliTaz 5.0 is going to have the 64-bit kernel in addition to the regular 32-bit one. A welcome news for many SliTaz fans like me! I am wondering what the size of the iso is going to be with linux64 (SliTaz 4.0 is ~ 34MB). The package is available already. Not sure of the exact SliTaz 5.0 release date. As I can see from the roadmap it’s past its original schedule.

Update: As the time of writing, there is no schedule for SliTaz 5.0. You can still upgrade to the rolling version and use it. Here’s the discussion thread I started regarding this.

Use the latest Firefox on SliTaz

slitazIn case you are a bit disappointed with the older version of Firefox on SliTaz 4.0 rather than the latest one, here’s how to use the latest one in a few simple steps:

  1. Download the latest version of Firefox for Linux here.
  2. Extract the whole package under /usr/lib/firefox
  3. Create a symlink to the the Firefox executable in /usr/bin

    # ln -s /usr/lib/firefox/firefox /usr/bin/firefox
  4. Go to Start menu ▸ Preferences ▸ Favorite Applications. Set firefox in Web browser field. Click on Change.
  5. Done! Now you can open the latest Firefox by right clicking on Desktop and selecting Favorite Applications ▸ Web Browser.

Another simple tip not to lose your downloaded files when you forget to backup them from SliTaz on USB:

  1. Create a directory Downloads in the USB on which SliTaz is installed.
  2. Create a symlink to Downloads directory in your home directory (I’m always root)

    #ln -s /home/Downloads /root/Downloads
  3. Set Firefox to download files in /root/Downloads always. The next time you download anything in Firefox they will be saved in your USB drive.

Do not forget to backup your rootfs after these steps to make the changes permanent.

Enable wireless on SliTaz

There are some guides available on how to install your wifi driver on SliTaz, like the official one. Recently I am having multiple laptops at home. So I had to move permanently to WiFi. Here’s what I did for enabling wireless on SliTaz:

  1. I have Ubuntu installed on my hard disk. So I strayed a bit and ran hwinfo --netcard (hwinfo was not installed so I installed it from Synaptic) to check my wireless card and which kernel module it is using on Ubuntu. My answer was iwlwifi.

  2. Booted into SliTaz from USB and ran dmesg. Found the following line:
    iwlagn 0000:03:00.0: Detected Intel(R)
    Centrino(R) Wireless-N 1000 BGN, REV=0x6C

    So, I have to find the driver for iwlwifi-1000. Rebooted into Ubuntu.

  3. Found suitable drivers at the following locations through Google (download from any one):
    http://intellinuxwireless.org/?n=Downloads
    http://distro.ibiblio.org/zenwalk/source/n/

  4. Downloaded, extracted and copied the driver in SliTaz USB. Booted into SliTaz and copied the driver file (for me it is iwlwifi-1000-3.ucode) to /lib/firmware.

  5. Modied the entries for wireless in /etc/notwork.conf as below:
    # Wifi connection.
    # Enable/disable wireless connection at boot time.
    WIFI="yes"
    # Wifi interface (iwconfig) and ESSID.
    WIFI_INTERFACE="wlan0"
    WIFI_ESSID="Airport"
    WIFI_MODE="managed"
    # Use your own WEP key here
    WIFI_KEY="DDDDDDDDDDDDDDDDDDDDDDDDD"
    WIFI_KEY_TYPE="wep"
    WPA_DRIVER="wext"
    WIFI_CHANNEL=""
    WIFI_IWCONFIG_ARGS=""
  6. Did a tazusb writefs and rebooted into SliTaz. Enabled wlan0 using the Network Manager applet.

Done!!! Now posting this blog from SliTaz via WiFi 😉

SliTaz: random performance tips

Here are some more performance tips for SliTaz 4.0:

1. Disable extra ttys: Edit /etc/inittab and comment out lines starting from tty2 to tty6. I guess just one enabled is sufficient for most users.

2. Disable http and firewall at boot: Most of the time you won’t need to run tazpanel once your system is up and running with all your apps and you prefer manual update check. You can disable the http daemon at startup. I have also disabled firewall. Here’s the procedure:

First, remove the /etc/init.d/tazpanel file. It is just a symlink to /usr/bin/tazpanel and you can create one whenever you want. Edit /etc/rcS.conf and change the following line:

RUN_DAEMONS="dbus hald slim firewall httpd"
TO
RUN_DAEMONS="dbus hald slim"

Open /etc/init.d/system.sh and find the following lines:

# Start TazPanel
[ -x /usr/bin/tazpanel ] && tazpanel start

and comment out the second line.

You are done, use tazusb writefs to generate new rootfs. To start tazpanel http server manually run:

# tazpanel start

Along with these changes and things I tweaked before, my memory usage at SliTaz login is just 256 MB!

tazusb bzip2 compression support

I posted earlier on how to use SliTaz using USB installation. If you are using a 128 MB pen drive then you may find that you are in a space crunch. At the same time lzma takes a long time for decompression. I have made a few changes in tazusb to support bzip2 (level 9) compressed rootfs which you can download from here. Remember the following –

1. First install the bzip2 package. It is not installed by default.
2. Backup your old rootfs.gz in case something goes wrong.
3. Change your syslinux.cfg file to point to rootfs.bz2 instead of rootfs.gz. I have uploaded my own syslinux.cfg. Search for bz2 and you will find the entry I use.

Usage:

# tazusb writefs bzip2

These modifications are for USB backup only.