|Quirky is my fun project to
explore new ideas for Linux. I founded Puppy Linux in 2003 and
maintained it for 11 years, then decided to step back and let the keen
"younguns" take charge (see here and here). However, I am still involved in Linux
development -- I started Quirky Linux in 2009 as a venue to explore new
concepts, and I am continuing this.
"Quirky6" is the "6.x" version series, with a raft of new ideas that I want to try out. It has turned out well, I like it and use Quirky as my everyday Linux distribution.
In a nutshell, Quirky6 is intended to be as small as possible (hence compiled from source in T2), very fast, very simple, optimised to run on Flash memory media, and very quirky. There are other extended ideas that are in the pipeline.
You will want to know about the connection with Puppy Linux. Well, Quirky6 is a fork of Puppy, but has meandered off on his own quirky direction, becoming substantially different "under the hood". However, the applications, utilities and user-interface remain much the same as Puppy -- so you have the same ease-of-use, but even a bit easier. Also, you can go to the main Puppy forum and get involved, as you will find their broad agenda embraces such offshoots as Quirky.
Some basic things to be aware of, relative to Puppy: there are no SFS files, no session save-file, no initrd.gz, no frugal install. So, all discussion of these topics on the Forum is not relevant!
This is the desktop:
Goals of Quirky6I started the Quirky6 project by making up a list of what I wanted to do. Those shown in green are the goals that I achieved in version 6.0. The goals attained in version 6.1 are highlighted in blue. Partial or temporarily done are in red:
A few points about the achievements so far. Quirky is very small (under 110MB download), boots very fast and runs fast, even when booted off a USB Flash stick (via the relatively slow USB2 interface). I also aimed for simplicity, and Quirky is arguably simpler to use than Puppy Linux.
Don't be put off by the unaccelerated modesetting and vesa drivers -- performance is excellent for normal use, such as web surfing. The minimal daemons and low-resource JWM/ROX-Filer desktop help here. Though, there is an Xorg server upgrade PET, with some accelerated drivers.
The f2fs filesystem means that there is very little wear of the Flash media.
Regarding udev, I have for now chosen 'eudev', but threw out all of their rules -- instead, using a small set created by myself and other Puppy developers.
Yes, there is a reason for not using GTK 2.24.x. It has some rendering changes that make some apps misbehave. I think that the developers were moving up to the 3.x series, and some stuff went into 2.24 that perhaps shouldn't have. I have found that the vast majority of apps still compile with 2.20.1.
The approximate 110MB size of the download file does not mean that you get a bare-bones distro, just the opposite! In true Puppy-spirit, you get just about every application and driver you will need. A full set of kernel, printing, scanning and camera drivers, multimedia libraries, a full suite of applications, including Abiword, Gnumeric, Planner, SeaMonkey (plus heaps more) -- even the Adobe Flash player is included.
Special features of Quirky 6.1Relative to 6.0, Quirky has got really heavy duty system save/restore, package uninstall recovery, and easy system version upgrade. This was achieved by quite intense development over a very short time period. The easiest way to explain these important new features is to link to my blog:
Rigorous handling of package uninstallation:
System snapshots and recovery:
Simplified version upgrade:
Download and installQuirky 6.1 is deployed as a compressed image that can be installed to either an external (plugged in) Flash drive (minimum 2GB), or to a partition in a hard drive. These are Methods A and B. Or, if you already have Quirky 6.0 or 6.0.1 installed, there is a simple method of upgrade using a Service Pack, see Method C. I have also provided a ready-to-go image for an 8GB (or greater) Flash memory, that just needs to be copied to the drive -- that is Method D.
Method A: install to any size Flash driveFirstly, the steps to install to any size Flash drive. This will optimise the installation to whatever size drive you want to install to (anything 2GB or bigger), but you must be comfortable with running a script in a terminal, and be running a very recent Linux distribution (that understands f2fs). Go for it:
Some people found the script to be troublesome in certain Linux
distributions -- this may just be a matter of installing needed
packages, for example with Ubuntu you might need to install 'mtools',
'syslinux' and 'f2fs-tools' -- if the latter is not in the repo, then
the distro is too old!). If you encounter a problem that you can't
solve, go to the Forum to
discuss it, or try Method B or D.
Method B: install to a partitionThis is to install Quirky to any internal hard drive partition. This requires that you have setup your own boot manager, such as GRUB, GRUB4DOS, or LILO. The script will install to the desired partition, then offer a suggested entry to be made in GRUB's menu.lst file.
This method can erase whatever is currently in the chosen partition, or, optionally, upgrade a prior installation of Quirky.
This is as per Method A, you download quirky-6.1.usfs.xz, but instead you download and run this script:
# sh ./install-quirky-to-partition.sh...it will ask questions about which partition, etc.
Method C: upgradeWith a running Quirky 6.1 and later, it is very simple. In the menu at bottom-left of screen, Filesystem category, choose "Quirky Version Upgrade Manager". That's it, you click a button and the upgrade happens. This is for the future!
Alternatively, and this is required for Quirky versions prior to 6.1, the Package Manager will check for an upgrade, known as a "Service Pack", at startup, as long as there is an Internet connection -- after starting the Package Manager, after a short delay, a window should pop up informing you of an available upgrade.
Failing that, download the PET package directly:
...after downloading, just click on it.
Method D: 8GB imageThis ready-to-go for a 8GB (or greater) USB Flash stick or SD card. The steps, for Linux:
...but, you will need to first install an application such as 7-zip (http://www.7-zip.org/), that can uncompress an .xz file -- and be prepared, it will expand to a 7.6GB file, so make sure the partition has enough space!
If you use a 16GB or bigger drive, no problem, you can use GParted (which is in Quirky) later to create an extra partition to fill the drive. Note, f2fs can not yet be resized.
If Method A did not work for you, method D should do it, and then you have "pulled yourself up by your boot straps", as they say. You will then have a running Linux that is capable of doing method A.
Sources and packagesThe base packages used in Quirky6 were compiled in T2, for a minimum of an i486 CPU. All of those sources are available at ibiblio.org:
Additional sources that I have compiled in Quirky are also at the above link. If you want to know what versions of packages are used in 6.x, browse that link. Note, the 3.12.6 Linux kernel is used. Once you have Quirky running, file /root/.packages/woof-installed-packages gives you a full list of the packages used in the build.
Quirky6 has a package manager, but the cupboard is bare. I hope to add more packages. There are three repositories, "quirky6", "noarch" and "common", but the latter two have packages from other puppies, and we will need to go through and remove those that don't work or are inappropriate. Some guys on the Forum, such as Billtoo, are helping by compiling some packages, and I intend to add those to the official repo soon.
Users may compile apps, which leads to the next section...
DevelopmentIf you feel motivated to compile apps for Quirky6, go for it! In the Puppy-days I used SFS files for this purpose, but no more, now it is just PETs. A PET is a package, in a special format optimised for Puppy and Puppy derivatives. Note though, the Package Manager understands most package formats, including DEB and RPM.
How to setup Quirky6 for compilingBootup Quirky6, connect to Internet. Then:
Note, this one PET has absolutely everything you need, with C, C++, Vala and BaCon compilers, as well as nasm, yasm and Python. All tools as well, including gdb, git and subversion.
If you need the Linux kernel source, that is also available as a PET package. Quirky 6.1 is using kernel version 3.12.6. From the same links as above (or by using the Package Manager), install kernel_src-3.12.6-patched.pet.
Note, the main patch is for 'aufs', and a few other minor patches.
FeedbackIf you wish to interact with other users of Quirky6, there are various threads on the Puppy Forum. This is the main one:
In this thread you will find not just bug reports but also solutions, extra PETs compiled by users, and general impressions.
The futureIt is very important to understand that I, Barry Kauler, am "retired" and only doing this for fun. I do not provide much support, and do not claim that any release of Quirky6 is a highly polished and bug-free product. it is released as-is.
However, I will probably release some incremental upgrades, with improvements. Besides, there are still a lot of items in my "goals" list that are not yet green/blue!
So, don't bother much with reporting bugs to my news page, or if you do, don't hold your breath waiting for a fix. However, the Quirky6 users on the Puppy Forum are very friendly.
So, keep watching my news page for future developments:
LegalDisclaimer: I have created Quirky6 and documentation in good faith, however usage and consequences thereof are entirely your responsibility. You use Quirky6 with this understanding.
Licences: Quirky6 is under various GPL licences, mostly GPL2 and GPL3. There are some non-GPL but free to use, such as driver firmware and Adobe Flash player.
Ownership: I have copyright where ever stated, and claim where ever there is no other ownership statement. The name "Quirky" in relation to a Linux distribution is copyrighted to me under common-law. The Quirky logo may only be used to represent Quirky, not for any personal or other purpose.
December 31, 2013