Slackware - Installation This forum is for the discussion of installation issues with Slackware. |
Notices |
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
Are you new to LinuxQuestions.org? Visit the following links:
Site Howto |
Site FAQ |
Sitemap |
Register Now
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
|
 |
|
08-29-2005, 08:42 PM
|
#1
|
LQ Newbie
Registered: Aug 2005
Posts: 9
Rep:
|
usb floppy to ftp install
Hi all,
My goal is to do a clean install of slackware 10.1 (or 10.2 if its release by the time I fix this problem) on a Toshiba protege 3500 laptop. The laptop has no floppy and no cdrom drive. However I do have a usb floppy drive (which I've used to do a ubuntu netinstall). My problems seem to be a failure in detecting my usb floppy. I put the bare.i boot image in the drive, the slackware boot screen comes up, but after loading the vmlinuz thing I get this error:
kmod: failed to exec /sbin/modprobe -s -k block-major-2, errno = 2
also I saw this in the text that quickly scrolls by during the boot before the above error occurs:
no floppy controllers found
I have tried this with other boot images (including the scsi images) and I get the same errors.
I also tries "ramdisk root=/dev/sda" at the boot prompt and that gives me this error:
kmod: failed to exec /sbin/modprobe -s -k block-major-2, errno = 9
VFS: Cannot open root device "sda" or 08:00
Please append a correct "root=" boot option
kernel panic: VFS: Unable to mount root fs on 08:00
I've successfully install/configured slackware on my desktop and I fell in love. It would be great if I could get in on my laptop since its my main workstation.
Any help would be greatly appreciated.
|
|
|
08-29-2005, 08:57 PM
|
#2
|
LQ Guru
Registered: Nov 2004
Location: San Jose, CA
Distribution: Debian, Arch
Posts: 8,507
Rep: 
|
Might you be able to use the ubuntu netinstall disk to then install slack?
|
|
|
08-29-2005, 11:11 PM
|
#4
|
Member
Registered: Oct 2003
Location: Planet Earth
Distribution: Slackware, LFS
Posts: 561
Rep:
|
Your problem is that the bare.i kernel does not have USB support compiled into it. It is instead available as modules. The reason it works to get the kernel booted is that the BIOS handles it until the kernel boots. Once the kernel takes over however, the floppy drive is available only through the USB interface for which the kernel has no drivers for. So a catch 22 of sorts. To make matters worse the Slackware bootdisk holds the kernel only along with a couple config files for syslinux and doesn't contain the initrd. This is because there is no room for the initrd on the disk. Instead the initrd is what's on the install.1 and install.2 bootdisks, but you can't load those because the kernel has no drivers for the USB floppy.
Anyway, probably the easiest way for you to get around all this is to recompile the bare.i kernel to include support for your USB controller and floppy drive, especially since you have another Linux system available to do it on. Basically, what you'll need to do is unpack the 2.4.29 kernel source, grab the config file from the bare.i bootdisk, add support for your USB controller & floppy, then place the new bzImage on the bootdisk. You "may" have to remove some of the other stuff in the kernel that you don't need in order to get it to fit on the disk, as space is tight. You will need to add at least the following to the kernel:
Code:
CONFIG_USB=y
CONFIG_USB_DEVICEFS=y
CONFIG_USB_STORAGE=y
You'll also need whichever of the following your controller conforms too, or all 3 if you don't know.
Code:
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_UHCI_ALT=y
CONFIG_USB_OHCI=y
There may be others, depending on your exact hardware.
At that point there is one other hurdle. The rootdisks (ie install.1 & install.2) do not contain the device node for /dev/sda so you'll need to modify the install.1 image to include it. Grab the install.1 image and issue the following commands as root to create it:
Code:
mkdir /mnt/loop
zcat -c install.1 > install-cus
mount install-cus /mnt/loop -o loop
mknod /mnt/loop/dev/sda b 8 0
umount /mnt/loop
gzip -S .1 install-cus
Now create a rootdisk floppy using install-cus.1 instead of install.1. You may also want to modify the syslinux.cfg file on the bare.i bootdisk to "root=/dev/sda" instead of "root=/dev/fd0u1440". If you don't the other kernel parameters listed in it may not get passed, I can't remember. Or you could just pass the whole thing at boot:
Code:
vmlinuz ramdisk_size=7000 root=/dev/sda vga=normal rw SLACK_KERNEL=bare.i
Anyway, as you can see, it's a bit of work, but not too bad. Also alot of this from memory, as I went through this awhile back with a Dell D800 which also has a USB floppy, but I may have forgot something.
Last edited by DaHammer; 08-29-2005 at 11:13 PM.
|
|
|
08-29-2005, 11:13 PM
|
#5
|
LQ Newbie
Registered: Aug 2005
Posts: 9
Original Poster
Rep:
|
Hello,
I think I'm beginning to understand why it doesn't work. I've done usb floppy installs before with freeBSD and ubuntu and those worked because my laptops bios is able to read from a usb floppy but the kernels from the boot images can't. The successful netinstalls loaded all the floppies into the ramdisk first then it booted into the kernel (thus reading the floppy wasn't an issue). But the slackware install boots into the kernel first then asks to load the rest of the floppies (but the kernel is looking for a fd0 device and therefore can't find it).
So thats my current theory, I still can't solve it. It's too bad I don't know how to make my own boot floppies.
navier
|
|
|
08-29-2005, 11:18 PM
|
#6
|
Member
Registered: Oct 2003
Location: Planet Earth
Distribution: Slackware, LFS
Posts: 561
Rep:
|
Yep, that's exactly the issue. If you need further assistance, yell. I'll drag the Dell back out and step back through it if need be.
|
|
|
08-29-2005, 11:19 PM
|
#7
|
LQ Newbie
Registered: Aug 2005
Posts: 9
Original Poster
Rep:
|
Hi
Looks like I type too slow. By the time I finished writing my last post someone already had a solution waiting for me. Thanks DaHammer and everyone else. This is really amazing. It's my first posts and a solution came back very quickly. Slackware is great. Hope I can get it to work now.
navier
|
|
|
08-30-2005, 12:52 AM
|
#8
|
LQ Newbie
Registered: Aug 2005
Posts: 9
Original Poster
Rep:
|
Hi all,
So close yet so far. I'm going to show everything I did since I don't really know what I'm doin.
I grabed the 'config' and 'bzImage' files from here:
http://gulus.usherbrooke.ca/pub/dist...ernels/bare.i/
and the 'makedisk' file from here:
http://gulus.usherbrooke.ca/pub/dist...-10.1/kernels/
I made a new directory and put these files there. I edited the config file to enable all those USB controller stuff. I then edited the makedisk file and changed /dev/fd0u1440 to /dev/sda. Then I made makedisk executable with chmod a+x. I ran the command ./makedisk bare.i bzImage and got this:
Code:
Making bare2.i bootdisk from kernel image bzImage.
Formatting the target disk.
zcat: /home/navier/Slackware/Newboot/1440k.img.gz: No such file or directory
Mounting the target disk on /tmp/mnt-10358.
[B]mount: wrong fs type, bad option, bad superblock on /dev/loop/0,
missing codepage or other error
In some cases useful info is found in syslog - try
dmesg | tail or so[B]
Copying files over (ignore permission errors).
1+0 records in
1+0 records out
32 bytes transferred in 0.005382 seconds (5946 bytes/sec)
Rdeving -R /tmp/mnt-10358/vmlinuz 0
Rdeving rdev -r /tmp/mnt-10358/vmlinuz 49152
Rdeving -v /tmp/mnt-10358/vmlinuz -v
Rdeving /tmp/mnt-10358/vmlinuz /dev/fd0
umount: /tmp/mnt-10358: not mounted
Installing SYSLINUX.
./makedisk: line 159: syslinux: command not found
Adding extra files (hope they fit :)
[B]mount: wrong fs type, bad option, bad superblock on /dev/loop0,
missing codepage or other error
In some cases useful info is found in syslog - try
dmesg | tail or so[B]
umount: /tmp/mnt-10358: not mounted
Bootdisk bare2.i created.
I'm stumped at the moment.
Thank you for any help.
navier
|
|
|
08-30-2005, 12:58 AM
|
#9
|
LQ Newbie
Registered: Aug 2005
Posts: 9
Original Poster
Rep:
|
oops what I meant to say was
Code:
Making bare2.i bootdisk from kernel image bzImage.
Formatting the target disk.
zcat: /home/navier/Slackware/Newboot/1440k.img.gz: No such file or directory
Mounting the target disk on /tmp/mnt-10358.
mount: wrong fs type, bad option, bad superblock on /dev/loop/0,
missing codepage or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
Copying files over (ignore permission errors).
1+0 records in
1+0 records out
32 bytes transferred in 0.005382 seconds (5946 bytes/sec)
Rdeving -R /tmp/mnt-10358/vmlinuz 0
Rdeving rdev -r /tmp/mnt-10358/vmlinuz 49152
Rdeving -v /tmp/mnt-10358/vmlinuz -v
Rdeving /tmp/mnt-10358/vmlinuz /dev/fd0
umount: /tmp/mnt-10358: not mounted
Installing SYSLINUX.
./makedisk: line 159: syslinux: command not found
Adding extra files (hope they fit :)
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
missing codepage or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
umount: /tmp/mnt-10358: not mounted
Bootdisk bare2.i created.
yeah.....first time using message forums
|
|
|
08-30-2005, 11:48 AM
|
#10
|
Member
Registered: Oct 2003
Location: Planet Earth
Distribution: Slackware, LFS
Posts: 561
Rep:
|
Simply changing the config is not going to work. You'd need to recompile the kernel using the modified config file. Anyway, seems I forgot about the USB rootdisk issue in the 2.4.x kernels. Even with USB support present and compiled into the kernel, it doesn't get initialized until after the kernel looks for the rootdisk and there is no native way to delay the process in the kernel. To make matters worse the 2.4.x kernels don't support a multi-disk bootdisk/rootdisk setup over a USB device. There is a kernel patch at http://www.swiss.ai.mit.edu/projects...py-2.4.18.diff solves all this, but it doesn't work with the 2.4.29 kernel that Slack 10.1 uses and I didn't find one that will. Given that the only way that I see to make this work would be to create a custom bootdisk, with a custom initrd that would load the 2 Slackware install rootdisks for you after delaying a few seconds to allow USB to get setup.
If ubuntu is still installed on the PC, then it would much easier to use it's bootloader to load the Slackware kernel and initrd.
|
|
|
09-02-2005, 01:26 AM
|
#11
|
Member
Registered: Oct 2003
Location: Planet Earth
Distribution: Slackware, LFS
Posts: 561
Rep:
|
I located the bootdisk I used to install via a USB floppy. I cleaned it up a bit & made it more useable for everyone else. If you still need something like this, post an email addy or a link to somewhere I can upload it too and I'll get it too you.
Basically, it does what I described above. It uses a ramdisk to load the Slackware install.1 & install.2 rootdisks, then it switches to that root filesystem and runs the installer. From there everything is as normal. I used the bare.i kernel removing RAID support (due to needing the space) and compiling the USB stuff into the kernel. The bootdisk image includes the config files for the kernel and busybox if you need to adjust the kernel beyond that.
|
|
|
09-02-2005, 01:13 PM
|
#12
|
LQ Newbie
Registered: Aug 2005
Posts: 9
Original Poster
Rep:
|
Hey DaHammer,
Thank you very much for your efforts, I am still interested in something like this. You can send it to my email at My email . Also I was able to do a hard drive install from ubuntu (pre-existing OS) if anyone is interested I can post my steps. The only down side with hard drive install is that you have to sacrifice some hard drive space for the other OS.
Navier
|
|
|
09-02-2005, 03:44 PM
|
#13
|
Member
Registered: Oct 2003
Location: Planet Earth
Distribution: Slackware, LFS
Posts: 561
Rep:
|
Ok, I fowarded you the bootdisk image. Maybe I'll write a "howto rool your own" if I get some time so anyone else wanting something like this can benefit.
|
|
|
09-03-2005, 09:21 PM
|
#14
|
LQ Newbie
Registered: Aug 2005
Posts: 9
Original Poster
Rep:
|
Hi DaHammer,
Thanks for the bootdisk, I can finally load the install.1 and install.2 disks. But now I have a new a problem. When I use the network.dsk (from rootdisks) the laptop is looking for a floppy device instead of the usb. But since usb is already compiled into the kernel there must be away to point the installer to the usb devise from the command prompt (but I don't know the commands).
navier
|
|
|
09-03-2005, 11:17 PM
|
#15
|
Member
Registered: Oct 2003
Location: Planet Earth
Distribution: Slackware, LFS
Posts: 561
Rep:
|
Well now, it just wouldn't be any fun if there weren't problems involved, would it?  Yeah, you got the general idea. But the easiest way to deal with that is to just set the FLOPPY environment variable and then the network script will take care of the rest. So run this command, assuming your floppy is at /dev/sda:
Code:
export FLOPPY=/dev/sda
Then rerun "network".
If you have trouble, "network" is just a shell script, so you could hard code it to use /dev/sda if you wanted too. It's located at /bin/network once you get booted up.
You can also mount it manually and manually run the script. You could do that like so:
Code:
mkdir /network
mount -t vfat /dev/sda /network
/network/scripts/network.sh
As a side note, I've had issue before with the probing features on the network.sh script not identifing the NIC. If that happens then try manually loading the module for your card with a "modprobe modulename".
Anyway, I should have set the FLOPPY environment variable in the bootdisk, it just slipped my mind. You can fix it in the bootdisk if you want.
Last edited by DaHammer; 09-03-2005 at 11:18 PM.
|
|
|
All times are GMT -5. The time now is 08:16 PM.
|
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.
|
Latest Threads
LQ News
|
|