I needed a (damn) small VM to install a proprietary java program, and then back up the whole VM, so I picked DSL.
First everything seemed OK, but when I run the program I got "FATAL: kernel too old" messages during running the Java program. I tried to fall back to an earlier Java version in the hope that it might solve the problem, but at least Java 5 was required, and I got the same problem even with JRE 1.5.0, so I needed to change to 2.6 kernel.
Then I found this thread about using DSL with 2.6 kernel. mhykgyver's instructions were detailed enough, so I started to follow that - with some alterations though.
I grabbed the latest 2.6 kernel (220.127.116.11) from www.kernel.org
in the hope that it will also work. I was too naive! I ran into multiple problems trying to use that kernel, and through various sources I concluded that there are some changes in 2.6.23, which cause various problems with DSL.
Namely, the following problems:
- the kernel didn't even compile with the gcc that I downloaded for DSL (see later), (see http://www.linuxquestions.org/questi...kernel-752732/
). The solution was, according to the tread, to disable the relocatable option: in "make menuconfig", "Processor type and features" -> at around the end of the list there is "Build a relocatable kernel".
- then when I finally managed to build it, it was not compatible with the grub in DSL. ("No setup signature found..."). It was mentioned at http://ramses.smeyers.be/varia/grub/
that it appears at upgrading to 2.6.23.
- after upgrading to grub2, it still did not work, had some trouble with ld.so, and it also appears at 2.6.23 (I have no link for this info, sorry).
So I downloaded kernel 2.6.22, and finally I could make it work.
Here are the updated instructions:
- If using DSL in VM it's worth to create a snapshot here (e.g. if something goes wrong or if you don't want to keep gcc on the filesystem). I also created and mounted another virtual disk for the temporary files (to download stuff there, to compile the kernel there, so my first virtual hard disk will not be bloated (I want to export that after the end to a .ova file). This should be done independent (not included in the snapshot, I am using VMware ESXi for virtualization). Or maybe it could be a network mount (didn't try that).
- Install gcc to DSL. I got problems using MyDSL (see the icon on the desktop) behind a HTTP proxy, but I found a DSL forum post (http://www.damnsmalllinux.org/f/topic-3-16-5782-5.html
) and I was able to download the required .dsl packages manually:
- go to http://distro.ibiblio.org/pub/linux/...mnsmall/mydsl/
- download gcc1.dsl or gcc1-with-libs.dsl (I chose the latter, it was only a bit bigger, but the former should be also OK for compiling the kernel, according to the descrtiption) and gnu-utils.dsl
- install them (I don't know where I found this tip):
sudo mydsl-load gnu-utils.dsl
sudo mydsl-load gcc1-with-libs.dsl
- download linux-2.6.22.tar.bz2 from http://www.kernel.org/pub/linux/kernel/v2.6/
- uncompress it (I just used: tar -jxvpf /dev/hda3/linux-source-2.6.22.tar.bz2)
- cd linux-2.6.22
- Then basically follow the kernel README:
- make mrproper (I guess it's not needed for the first run)
- make menuinstall (here I left everything on the default)
- At this stage you may revert the VM to the snapshot to undo the GCC installation (if you don't need that anymore). You may want to create another snapshot before doing this. Actually I didn't try it yet.
- make modules_install
- make install (I didn't understand why mhykgyver did this manually.)
- Edit /boot/grub/menu.lst. Here I just copied the entry "DSL" changed the title to "DSL with kernel 2.6.22" and changed the kernel from "/boot/linux24" to "/boot/vmlinuz-2.6.22"
- Reboot and have fun using the new kernel.