• We’re currently investigating an issue related to the forum theme and styling that is impacting page layout and visual formatting. The problem has been identified, and we are actively working on a resolution. There is no impact to user data or functionality, this is strictly a front-end display issue. We’ll post an update once the fix has been deployed. Thanks for your patience while we get this sorted.

Tricky Debian install question

Workin'

Diamond Member
I'm trying to set up Debian 'woody' as a smb/appletalk/http/ssh/mail server on my home LAN.

So far I've been using one of my spare PC's as a testbed, just to try everything out on. Everything has gone well, all my services are set up, etc., works great overall.

The next step is to repeat the installation on my server machine, and that's where the problem lies.

My testbed PC is an old P3-750 on a BX mobo, all very standard, well-supported stuff.

My server is an Abit BP6 dual Celeron rig, with a RAID 5 array on an Adaptec 2400A hardware IDE RAID controller and no other hard drives on the built-in controllers. And that's the problem - NONE of the Debian installation images support the i2O driver for the Adaptec card, so as far as Debian is concerned there is no hard drive available. The stupid thing is that ALL the debian kernel packages support the i2O module, just none of the installer kernels do.

What can I do? Seems like I have to somehow make the installer use a different kernel, but all the info I've found seems to assume you want to replace the kernel on an already installed system. The Debian FAQ's have a listing for replacing the kernel on a boot floppy but I guess I'm too much of a noob to make a lot of sense of it.

Or can I somehow get the necessary driver on a floppy and install it from there when the installer asks if you want to pre-load drivers from a floppy? Adaptec doesn't make a driver for anything newer than RedHat 7.0.

Another frustrating thing is that RedHat supports the i2O card right out of the box, as do FreeBSD and NetBSD. I thought about going with FreeBSD, but I really like Debian.

Any advice is appreciated!
 
What I would do is compile a customer kernel for the install, make sure you build everything you need static into the kernel but don't over do it or it won't fit on the floppy. Copy the new kernel overtop of the vmlinux file on the floppy (the floppy is fat so you can even do this in Windows) and boot from that.

Before you reboot edit /target/etc/fstab and make sure the paths are correct.

Reboot from the floppy again this time type 'linux root=/dev/whatever' so you get the good kernel because the one the installer installs probably won't have the I2O driver in it.

Compile/Install a new kernel that actually does support your card so you can stop booting from the floppy.
 
Thanks for replying. Let me make sure I understand the details, this part is new to me -

1. compile a custom kernel using a PC that already has Debian installed, including all the drivers needed for the "problem" PC in the custom kernel, not as modules. (never done this, is it hard?)

2. copy the new kernel over the existing one on the Debian "rescue" boot floppy.

3. edit /target/etc/fstab and make sure the paths are correct - is this on the rescue floppy?

4. boot using the modified floppy, typing 'linux root=/dev/fd0' to use the new kernel

5. continue with the install as usual

6. after installation, couldn't I just copy the kernel from the floppy onto the new machine instead of building a new one? Or are there other things that I would need to add?

Thanks! hopefully these aren't too dumb of questions!
 
1. Not really.

Make sure you have libncurses5-dev installed, it's needed for the menuconfig interface. Then download the kernel you want from kernel.org, extract it somewhere (i.e. /home/Workin/kernel) from that directory type 'make menuconfig' (or xconfig if you want tk X interface, both have the same information though), go through and select what you need. After you save the kernel config (it'll be in .config if you want to save it elsewhere for backup) type 'make dep', if that goes well type 'make bzImage' and if that goes well copy arch/i386/boot/bzImage to the floppy overwriting vmlinux. (or vmlinuz, not 100% sure off hand).

Only pick the device drivers you need, otherwise the kernel maybe too big for the floppy. Also make sure you include support for Packet Socket and Socket Filtering if you need DHCP . Also Ramdisk support will be necessary. If you get any errors you can't figure out let me know, it's usually case of forgetting support for something necessary.

2. Yes, although like I said I can't remember if it's vmlinux or vmlinuz. And the kernel will be called bzImage right after you build it.

3. /target is where Debian mounts the drive you're installing too, /target is the soon-to-be root fs.

4. For the initial install boot normally, after the base install is done boot with 'linux root=/dev/raid-root-device'.

6. You would probably want to add things like modules for ipchains/iptables. It depends, you could use the one you booted with to install, look at the kernel config options and see if you think you'll need any. I usually compile the second one if for no other reason than to have a modularized kernel, I make all my network drivers and things modules that I needed static for the initial install.
 
Doesn't sound toooo bad. Just 2 more clarifications, thanks for bearing with me here...

<<3. /target is where Debian mounts the drive you're installing too, /target is the soon-to-be root fs.>>

So I would edit this on the RAID array after the installer is finished and before rebooting? From a virtual console? or something else?

<<4. For the initial install boot normally, after the base install is done boot with 'linux root=/dev/raid-root-device'.>>

OK, so 'root' in this case points to where the root fs is mounted, not to where the kernel is, right?

And, what's the advantage to having a driver as a module rather than compiled in if it is something you need all the time like a network or disk controller driver?

I can see this is going to be an interesting weekend! Thanks again for your help.

 
So I would edit this on the RAID array after the installer is finished and before rebooting? From a virtual console? or something else?

Correct, ALT-F2 is a root shell during installation.

And, what's the advantage to having a driver as a module rather than compiled in if it is something you need all the time like a network or disk controller driver?

Well I usually compile in statically the host main controller and filesystem and leave the rest modular. That way I can remove and add modules without rebooting if there's a problem, you can reset the NIC and things like this. And I have several types of NICs here, so if one goes bad I just replace it and set the new module to load on bootup.

I'll be off and on the forums this weekend so post if you run into any problems.

OK, so 'root' in this case points to where the root fs is mounted, not to where the kernel is, right?

Right, root= in a kernel command line is always the device you want to be your root fs, no matter where the kernel is.
 
Nothinman, you are truly a gentleman and a scholar. Thanks for the pointers, I'll post when I'm done or if I need more help.
 
OK, I ran all that stuff, using kernel sources for 2.4.16.

Everything seemed to go fine until 'make bzImage'

Screenfulls of stuff scrolled by, looking good... and then it exits with the following messages:

undefined reference to 'local symbols in discard section .text.exit (2 lines with this in them)
make: ***[vmlinux] Error 1

Any ideas?
 
First get 2.4.18, it may be fixed in there. It's a problem with the kernel that the linker just recently started complaining about. If 2.4.18 does the same thing I can find what you need to change, it's not big.
 
Thanks, I just figured it out....

The same problem is there on 2.4.18, but I found out you just have to remove '*(.text.exit)' from the 'DISCARD' line in the linker script (../arch/i386/vmlinux.lds) and the kernel compiled with no problems.

Unfortunately I forgot to put in ramdisk support so I have to do it over. At least it only takes a few minutes and is much easier than it first appeared!

Feeling more confident now, but this is sure a lot different than in the Windows world. My head may burst before the day is over 😉

Thanks again for your help. Check in every once in a while to see if I get stuck, I'll also post if it all works out!
 
OK, I have it booting and the RAID card is detected, etc. The installer runs but instead of using the 'testing' package tree it keeps using the 'stable' tree.

My floppy boot image came from the 'testing' tree, the bf2.4 image (which is the only one that supports the ext3 file system, which I want to use). I just replaced the kernel on the floppy with the one I compiled.

What am I missing?
 
I think I figured it out - I edited my apt-get sources by hand and changed 'stable' to 'testing', it seems to be working so far...
 
OK, got it all working now.

Windows file serving via samba
Apple file serving via netatalk
mail via exim and qpopper
web serving via apache
vnc over ssh for remote administration
sftp using ssh

all unused services removed, hatches battened down, etc.
 
Back
Top