My thoughts on Slackware, life and everything

Tag: kernel (Page 2 of 2)

Robby’s libata switchover howto

The new kernels in Slackware (post 13.0) have one important change compared to previous kernels. This change will affect anyone with Slackware installed on an IDE disk (like /dev/hda) who wants to upgrade to the latest state of affairs.

The new kernels exclusively use “libata”. The last bits of the old IDE/ATA subsystem have finally been removed.

This means, that your IDE disk will be recognized as a “SCSI disk”. The device name “/dev/hda” will change to “/dev/sda” when you boot the new kernel. As a result, your computer will refuse to boot because the bootloader (grub or lilo) can not find the root device.

Robby Workman has written a HOWTO for anyone who wants to do this upgrade. The article was published as http://rlworkman.net/howtos/libata-switchover. By following the HOWTO you will not have any issues in upgrading to the new kernel.

I will print Robby’s HOWTO in full below to give it some more coverage:

libata_switchover
20100110
rworkman

/*
Thanks to David Somero, Old_Fogie, gegechris99, and GazL for valuable
feedback and enhancements to this document.
*/

This is written to provide one of several ways to retain a working system after upgrading from Slackware 13.0’s kernel to the newer kernel in -current (which removes support for the “old” ide subsytem, thereby causing all /dev/hd* devices to have /dev/sd* names.

1. Upgrade the kernel and kernel-modules packages normally.

2. Edit /etc/fstab to reflect the change from hd* to sd*.

If you have multiple SATA devices, and especially if you have some of
both hd* and sd* devices present already, then you’re basically going
to be playing a guessing game right now, and you probably want to
consider using some of the persistent symlinks in /dev/disk/by-*/
instead of raw device nodes.

* If you are using one of the generic kernels (requiring an initrd),
then use the sd* name for the root device when creating the image
(edit /boot/initrd-tree/rootdev and then re-run “mkinitrd”).

* You will almost surely want to remove the udev rules file for cdrom
devices (it will be regenerated on the next boot with correct
information reflecting the new libata stuff):
# rm -f /etc/udev/rules.d/70-persistent-cd.rules

* Speaking of optical devices, if you have multiple disk drives and an
optical drive using the old ide subsystem, then be aware that the
optical drive will get a /dev/sr* name instead of /dev/sd* — this is
relevant because you might see something like this (if your optical
drive is currently /dev/hdb):

Old Name –> New Name
/dev/hda /dev/sda
/dev/hdb /dev/sr0
/dev/hdc /dev/sdb

3. Run lilo. Note that you have made no edits at all to it yet, unless
you needed to edit it for the new kernel. Specifically, do not make
any changes with respect to hd* –> sd*.

4. Reboot. At the lilo prompt, press <TAB> and add an append for the
real root device (which will no longer be /dev/hd*). For example, if
the old root device was /dev/hda1, and it will now be /dev/sda1, and
the name of your kernel image is “Linux” then you would type this:

Linux root=/dev/sda1

5. Once the system comes back up, then fix /etc/lilo.conf, run lilo, and
reboot again to be sure everything is correct.

Good luck! Eric

PS: I have refreshed the copy of Robby’s text so that it reflects the updates he made to the original after feedback from several people.

Bleeding at the edges again?

… Ok, ok, it is not so bad actually! Au contraire!

Slackware Linux development made a big leap today, when Pat Volkerding updated the distro’s “vital organs” of kernel, glibc and gcc. The “dull” phase of the slackware-current development cycle is over hopefully, and it’s back to the bleeding edge.

To be fair, gcc 4.4.2 has been sitting in “testing” area for quite a while now, and we think it is time to promote it into the core. With glibc 2.11.1 we are pushing it, as this is the most recent stable release, and the 2.6.32.2 kernel was much-anticipated by those who run -current on their computers.

Note that the new kernel has full support for EFI (the Extensible Firmware Interface which is going to be the replacement for the ageing BIOS on modern computers). This means that there is also support for GPT partitions. GUID Partition Table is a standard for the layout of the partition table on a physical hard disk (part of the EFI specification and meant to overcome the 2 TB size limitation of MBR partitions). We still have to look into updating the Slackware installer for automatic GPT partition recognition, but you will be able to use GPT partitions if you do some footwork yourself before running “setup”.

With this update to Slackware’s vitals, the stage is set for further tweaks of the core, but I think that for now, you will have plenty to play with.

And as promised to those running the 64-bit version of Slackware-current, I have made available multilib versions of the new gcc and glibc packages! Thanks to Pat Volkerding who allowed me sufficient time to build and rebuild these packages on my old computer until they were just perfect (I hope) and could be released along with the Slackware originals.

You can get them here: http://slackware.com/~alien/multilib/13.1/ (I took the liberty of assuming that 13.1 will be the version of the next Slackware release, mainly because I needed to give that directory a name).

For detailed instructions about what multilib means to the 64-bit Slackware and how you can add it, read this wiki article: http://alien.slackbook.org/dokuwiki/doku.php?id=slackware:multilib

Have fun! Eric

initramfs unpacking failed: junk in compressed archive

Lilo, the 2.6.30.x kernel and Slackware on x86_64

Although Slackware -current still has a 2.6.29.x kernel, I am sure that people are experimenting with 2.6.30 kernels. In some cases, and only on Slackware for the x86_64 architecture so far, this may lead to boot problems. There is a problem that manifests itself when you are using an initial ramdisk with your kernel. The error message that you may see (unless it scrolls off your screen too fast) is this:

“initramfs unpacking failed: junk in compressed archive

As a result, your computer will fail to boot.

Now, what is happening here?

By default, LILO loads your initial ramdisk (/boot/initrd.img) into the first 15MB of memory. This circumvents a BIOS limitation for older systems (typically, computers produced before 2001).

However, the linux kernel has been growing in size, and there are combinations of kernel and initrd that will no longer fit into the first 15MB of memory. This leads to boot failure. Because of the fact that the kernel and initrd files are compressed archives, the rule of thumb is that these issues appear when the combined size of your kernel and initrd files is larger than 8 MB. The kernel will then overwrite part of the initrd in memory, leading to the above error message.

For computers with a x86_64 capable CPU, it is safe to assume that the computer has a BIOS without the 15MB limitation. In this case, you can add the following parameter to your “/etc/lilo.conf” file:

large-memory

This option instructs LILO to use a larger memory window when loading the initial ramdisk (do not forget to run the “lilo” command after making this change). It will cure the issue.

I think this should be added as a default option in the lilo.conf file generated by the liloconfig utility of slackware64.

Eric

Leaps and bounds

Updates to Slackware’s development tree

Today, a lot of changes found their way into slackware-current.  Slackware’s development speed shows leaps and bounds 🙂  The newest set of updates is nearly as long as last month when Slackware added KDE4 to mainstream. The kernel packages have now arrived at 2.6.29.1 which is the most recent kernel available to date.  The KDE series is now at 4.2.2, which is a bug fix release to the previous 4.2.1. We also updated a lot of the KDE dependencies.

New packages which were added: jasper (provides jpeg2000 support in Okular), crda and iw (user-space support for wireless drivers in the new kernel, useful for people in non-US countries).  M2Crypt, libnl and libmcrypt are other newcomers (and the php package has now been compiled with mcrypt support, this was a much asked-for feature).  An interesting addition is xz.  This compression tool based on Lasse Collin’s LZMA offers better compression than bzip2 and much faster de-compression than bzip2.

The curl package was recompiled with support for a set of CA root certificates. This provides a fix for the errors people would get if they used curl to download stuff from secure (aka https://) web sites.  The mkinitrd package was enhanced with the mkinitrd_command_generator.sh script (written by PiterPUNK and me) which makes it very easy to build an initrd.gz image for your kernel. It can also write an update for your /etc/lilo.conf file. Just run:

sh /usr/share/mkinitrd/mkinitrd_command_generator.sh -h

to see what it can do.

Again, there were changes which did not make their way into the official ChangeLog.txt announcement…

I will not give full disclosure and let you find out for yourself. The changes are in the Slackware installer. One will be quite obvious from the start (just look at the messages during the final stage of the boot), the second will only become apparent for those of you who perform NFS installs and the third is not even visible – consider it an easter egg (tested only by me thusfar I believe). It adds yet another possible package source when installing Slackware.

Have fun with this new installment of slackware-current! And don’t get scared when you boot your updated computer and see the new kernel logo: a small animal (Tuz) which replaces the familiar penguin (Tux) for the duration of the 2.6.29.x kernel releases…

Eric

Massive updates in slackware-current

Today, Pat Volkerding published a massive amount of package updates to the slackware-current tree. The entry in the Slackware ChangeLog.txt measures more than 200 lines, and is probably the largest update to the development tree ever.

Many of the core packages have received an version upgrade, but those changes may not be immediately visible to the average end user. Some of the absolute highlights mentioned in the ChangeLog are indication of a big step forward for Slackware: a new kernel (2.6.28.7), new gcc (4.3.3), new glibc (still called 2.9 but the snapshot we use is more like 2.10), a new XFCE (4.6.0) and most importantly: KDE 3.5.10 is gone, replaced by KDE 4.2.1 (which had been living in the /testing directory for a long time).

I have been working with KDE4 releases for nearly a year now, running it as my default desktop, and 4.2.1 is stable, fast and beautiful. People who heard or read that the new KDE is bloated and slow, should try it out and decide for themselves; I think it performs better than KDE3. I also ran the new XFCE for a while and it looks sweet. Note that when you upgrade from XFCE 4.4 you may experience missing icons in the panel. This happens because the Rodent icon theme was removed from XFCE in the new release. The file CHANGES_AND_HINTS.TXT (located in the toplevel directory of slackware-current) explains this issue and what you can do about it.

One neat feature addition which did not make the ChangeLog, but is definitely worth mentioning: the initrd.img and usbboot.img files which contain the Slackware installer,  have also been updated for the new 2.6.28.7 kernel. As a result, you can now install Slackware to an ext4 filesystem!

If anyone out there with a Netbook (one of those Intel Atom powered, 9 or 10 inch sized laptops with long battery life) is going to install Slackware-current on it, I would like to hear your impressions. Leave a comment to this blog post.

Have fun, Eric

Newer posts »

© 2024 Alien Pastures

Theme by Anders NorenUp ↑