Fedora 18 : Install from ISO file

I can’t remember the last time I burned a DVD when a new Fedora version releases. The preferred way of installing a new version is the ‘diskless’ install method provided the computer already is running one or the other version of Fedora. For guidelines, see the installation guide: http://docs.fedoraproject.org/en-US/Fedora/18/html/Installation_Guide/ap-medialess-install.html

As of Fedora 17, the Boot Options have been changed, and the “askmethod” parameter is deprecated, it is no longer recognized by the installer. Instead you need to use “inst.repo” parameter with appropriate syntax to specify install from network (http/ftp), nfs, hard disk et al.

I have obtained the Fedora 18 DVD ISO file, mounted it loopback, and copied the vmlinuz and initrd.img from isolinux folder to /boot/ and added a custom menu entry in /etc/grub.d/40_custom with the repo method as found in the documentation. Installer starts, but unfortunately fails, probably at stage2, with a dracut message saying “Cannot boot” and “Root device not found”. There’s no helpful error message or warning as to what could cause this.

Finally figured out that the repo parameter was missing a colon after the hard disk device. This had hit me during the Fedora 17 install too, so let it be documented for future reference. The proper parameter would be something like:

linux /boot/vmlinuz-fedora18-install repo=hd:/dev/sda2:/home/rajeesh/

Where the Fedora DVD ISO is placed at /home/rajeesh. Once that is fixed, installer boots into the graphical mode just fine. The new installer seems quite unstable – it crashed 4 times before I could complete installation – at disk probing, when switching to other terminals using Alt+Ctrl+F2, Alt+Ctrl+F3 etc. But once that phase is passed, the package installation is swift. There’s no way to customize and tweak package selection during the installation, which is quite limiting. That said, once the installation is done, the desktop is quite solid and polished.

On bufferbloat and shoulders of the giants

Is your internet connection slow?

Yeah yeah, you have connection with bandwidth of 7.2 Mbps but it sulks (no pun intended) and you wonder why.

The answer, mostly is, #bufferbloat [1]. In short, the data flows from Google+ to your computer sitting somewhere in the dark corner on the opposite side of the world, ‘packets’ of this data are stored and transmitted at each intermediate stop through which they are passed. The protocol used to communicate between your computer and a google server, and everything in between (the intermediate stops), is called TCP and that beast is pretty good at adapting to the best speed with which those two end points (your computer and the google server) can talk to each other.
The way TCP achieves that is – when google server sends a few thousand packets at a go with the maximum speed it has, your computer might be choking to cope up with the volume and it will start dropping the packets (UPDATE: and acknowledgements, hereafter referred to as ACK, are sent notifying the dropping ACK is sent on successful delivery of packets. Dropping is assumed if no ACK is received in a reasonable amount of time. For more technical details, see excellent comment from James Cape), and google server slows down sending packets accordingly.

Wondering where the problem is, then? Well, all those intermediate points – including servers, routers, your broadband ISPs, their servers, routers, your WiFi router and even the Network Card (NIC) on your computer – have ‘buffer’ to keep a large number of packets, before it could be processed/transmitted further. And that excessive buffering, is what the problem is, which defeats TCP adapting itself. +Jim Gettys was one mastermind who got irritated with the same, decided to investigate, zeroed in on the problem, created widespread awareness and coined the term #bufferbloat for it, towards the end of 2010.

Now the question is, how to fix it. Looks pretty simple – reduce the amount of buffer, right? Unfortunately, not quite. What is the standard size of the buffer to be used? If the size of the buffer is too small, slow connections suffer. If the buffer size is too large, fast connections suffer. What was needed is another algorithm, usually called Adaptive Queue Management. There were various attempts to find One True ™ algorithm independent of network/bandwidth/timing/buffer size/queue size, devoid of knobs for fine tuning.

Now, Kathleen Nichols and Van Jacobson (yes, /the/ Van Jacobson) have come up with an algorithm closest to that, called #CoDel [2]. The very first implementations of CoDel by +Dave Taht and +Eric Dumazet and are going into #Linux kernel now, along with similar implementations to #CeroWrt (based on #Linux ) for routers [3]. This is one of the pieces of solution to bufferbloat, not the only one, but definitely one in the right direction.

These extra ordinary people, today, are silently fixing tomorrow’s internet. And they deserve big props for that. All you technologists who didn’t get a chance to appreciate Nikola Tesla or Dennis Ritchie, here is your chance to do that for some of the real heroes of our time.

[1] http://gettys.wordpress.com/category/bufferbloat/
[2] http://queue.acm.org/detail.cfm?id=2209336
[3] http://lwn.net/Articles/496509/

Disclaimer: The descriptions of various technological aspects in this article are overly simplistic and may not be one hundred percent correct, please add a note or comment if you find an inaccuracy.

Pleasant surprises of KDE 4.6

There are much detailed reviews of KDE SC 4.6 elsewhere, like full of awesomeness or finding new directions. How to get KDE Plasma Workspace 4.6 in Fedora 14, check Rex’s blog.

The most notable change has been removing dependency on HAL, switching to UDev/UPower/UDisks backend. That helps me with being able to eject USB disks/DVDs from Dolphin/Devices Applet in Fedora 14 (the newly attached devices are mounted by udev and I had to use Nautilus to safely remove them, in pre 4.6 era).

But, that is not all. Couple of very nice things surprised me.

One, very nicely organized device hierarchy in Kinfocenter:

Two, BlueDevil – deprecating kbluetooth. (You have to enable kde-unstable repository to install bluedevil).

Three, and this being my favourite, the highlight of 4.6 – the awesomeness of the panel auto-hiding. I always auto-hide my panel, and hope that it would spring up when a window needs my attention.

Well, it never did. So far. 4.6 brings me great joy – now when a window (a chat window in which someone sent a new message) needs attention, the panel auto-rises! Big thanks to Aaron for fixing it for good. The screenshot below shows panel raises itself when one of my friends ping me.