Gentoo Archives: gentoo-sparc

From: BRM <bm_witness@×××××.com>
To: gentoo-sparc@l.g.o
Subject: Re: [gentoo-sparc] QLA2xxx
Date: Thu, 28 Feb 2008 22:55:22
Message-Id: 394681.83568.qm@web65402.mail.ac4.yahoo.com
In Reply to: Re: [gentoo-sparc] QLA2xxx by Ivan Kabaivanov
Thanks. Quick additional Q though - 

where's the best place to store the initrd? USB? Floppy? CD?

As I said earlier, I have my preference, but any tips would certainly
be welcome.

Thanks!

Ben


--- Ivan Kabaivanov <chepati@×××××.com> wrote:

> On Thursday 28 February 2008 16:39, BRM wrote: > > All, > > > > Thanks for the tips. I'm not sure how it'll all work out right now. > > They might provide a method for booting the system via the CD, but > then > > the only viable option after that seems to be using the specified > patch > > in kernel builds so that we can boot and gain access to the hard > drive. > > > > The system only has one hard drive, which is attached via the > QLA2xxx > > controller - so I don't see how relying on udev to load the > firmware > > would solve the problem of accessing the only hard drive in the > > system... > > > > Ben, > > if nobody explicitly mentioned it, it's because we all either forgot, > or took > it as common knowlegde -- you do need an initramfs in order to > bootstrap the > init process on QLA2xxx machines. > > OBP knows how to load silo, silo knows how to load the kernel. > Things break > when the kernel tries to find the root device and that's where you > need an > initramfs. You can roll your own. All it needs is the firmware > in /lib/firmware/, udev, qla2xxx.ko, scsi.ko, sd_mod.ko, ext3.ko, and > any > other modules you may need, and udev. You also need /etc/udev with > appropriate rules, /lib/udev and all the udev helpers, especially > firmware.sh. Your /init script needs to mount /proc, /sys, /dev, > start udev > and load qla2xxx.ko. udev will take care of firmware loading. After > that > just switch_root. > > IvanK. > > > > > > > It does occur to me that there might be another slight solution to > the > > problem, from which udev could then be relied on - using an initrd > > image, or booting using another device from which udev could be > > utilized. > > > > I'd rather not have to leave a floppy (yes the system has a floppy) > or > > CD in the drive all the time, from which it would load an initrd > image > > containing udev, the firmware, and whatever else would be needed; > but > > it seems the only other method would be to use a USB Storage > device. > > > > Does anyone know if the OpenBoot PROM on the SunBlade 2000 will > boot a > > USB device? The Service manual seems to indicate it would for a 100 > or > > 250 Iomega Zip Drive (can you even get those anymore?!!) but that > too > > is not an ideal solution. I'd rather be able to get a USB Stick (2 > > GB?), or even a USB Hard Drive (e.g. WD Passport or the likes) that > > could hold the base system and boot from that. Anyone know if that > > would work? > > > > Might one need to upgrade the OpenBoot PROM to to so? If so, how > and > > where do I get the new image? > > > > My only other alternative is to go and get OpenSolaris and try that > > out. (Hopefully it won't have the same issue.) > > > > Any how...thanks for all the helpful tips & everything. > > > > Ben > > > > --- Ivan Kabaivanov <chepati@×××××.com> wrote: > > > On Thursday 21 February 2008 14:50, Friedrich Oslage wrote: > > > > Hi, > > > > > > > > > The problem comes from the fact that the firmware is in the > disk > > > > > > at > > > > > > > > /lib/firmware starting from kernel 2.6.18 or something. If > you > > > > > > boot > > > > > > > > the 2617 from the CD it will probably work fine. > > > > > Anyway even creating a proper initrd with that /lib/firmware > the > > > > > kernel does not load it. Don't know why. > > > > > > > > Using an initrd works fine for me, you probably just forgot to > put > > > > > > udev > > > > > > > in it. > > > > > > > > My initrd basicly looks like this: > > > > /dev/console > > > > /dev/null > > > > /bin/busybox > > > > /bin/udevd > > > > /lib/udev/firmware.sh > > > > /lib/udev/udev.conf > > > > /lib/udev/rules.d/50-udev.rules > > > > /firmware/ql2200_fw.bin > > > > /lib/modules/`uname -r`/modules.dep > > > > /lib/modules/`uname -r`/kernel/drivers/scsi/qla2xxx/qla2xxx.ko > > > > /linuxrc > > > > > > > > The script I used to create it is available @ > > > > http://porno-bullen.de/~bluebird/initrd-qla2xxx/ but don't > blame me > > > > > > if > > > > > > > it doesn't work ;) > > > > > > > > Cheers, > > > > bluebird > > > > > > This is the preferred method -- to let udev handle the firmware > > > loading. > > > However if you don't have udev in the initrd or it doesn't work, > all > > > is not > > > lost. There's a way to manually load the firmware, but it's > tricky. > > > It's > > > tricky because you have to be very quick -- you'll have maybe up > to > > > 4-5 > > > seconds to load the firmware. Here's how: > > > > > > 1) boot the machine (either with an initrd from the hard drive or > > > with an > > > installation cd.) > > > 2) drop to a shell somehow -- I don't run gentoo so I don't know > if > > > the > > > installer has this option but debian does and so does ubuntu for > > > sparc. > > > 3) Load qla2xxx.ko (just modprobe qla2xxx) > > > 4) Find out the device path in /sys (on my sunfire280r > > > it's /sys/devices/pci0001\:00/0001\:00\:04.0/) It might take you > a > > > few tries > > > to find out. Look for a file > > > /sys/devices/pci0001:00/0001:00:04.0/obppath > > > with this line > > > /pci@8,600000/SUNW,qlc@4. (the numbers are not important. the > > > important part > > > is the qlc bit) > > > 5) Type this: echo 1 > > /sys/devices/pci0001:00/0001:00:04.0/loading > > > 6) Type cat /lib/firmware/ql2200_fw.bin > > > > > > > /sys/devices/pci0001:00/0001:00:04.0/data (this is one line) > > > > > > 7) Type echo 0 > /sys/devices/pci0001:00/0001:00:04.0/loading > > > > > > for 5), 6) and 7) you'll get error message file not found. It > > > doesn't matter. > > > The point is to cache these three command into the shell history > so > > > you can > > > recall them quickly when you need them. Remember, you have a > window > > > of a few > > > seconds and regardless how fast you type you won't make it > without > > > using > > > cached commands. > > > > > > 8) Unload qla2xxx (rmmod qla2xxx) > > > 9) Now load the kernel module again (modprobe qla2xxx). The > clock > > > starts > > > ticking now. The module tells the kernel that it needs a > firmware > > > before the > > > hardware can be initialized. The module creates a device path in > > > /sys and > > > creates two files, loading and data. > > > 10) Quickly recall from history the command from 5) and press > enter > > > 11) Quickly recall from history the command from 6) and press > enter > > > 12) Quickly recall from history the command from 7) and press > enter > > > > > > You'll see messages that the card was initialized. Now you can > load > > > sd_mod. > > > If you had to resort to this, then chances are you don't have > udev > > > running so > > > you may have to manually create the device nodes in /dev. For > your > > > convenience: > > > > > > brw-rw---- 1 root disk 8, 0 2008-02-21 15:03 /dev/sda > > > brw-rw---- 1 root disk 8, 1 2008-02-21 15:03 /dev/sda1 > > > brw-rw---- 1 root disk 8, 2 2008-02-21 15:03 /dev/sda2 > > > brw-rw---- 1 root disk 8, 3 2008-02-21 15:03 /dev/sda3 > > > brw-rw---- 1 root disk 8, 4 2008-02-21 15:03 /dev/sda4 > > > brw-rw---- 1 root disk 8, 5 2008-02-21 15:03 /dev/sda5 > > > brw-rw---- 1 root disk 8, 16 2008-02-21 15:03 /dev/sdb > > > brw-rw---- 1 root disk 8, 17 2008-02-21 15:03 /dev/sdb1 > > > brw-rw---- 1 root disk 8, 18 2008-02-21 15:03 /dev/sdb2 > > > brw-rw---- 1 root disk 8, 19 2008-02-21 15:03 /dev/sdb3 > > > brw-rw---- 1 root disk 8, 20 2008-02-21 15:03 /dev/sdb4 > > > > > > Once you have all the device nodes in /dev you can go back to the > > > installer > > > and resume. Make sure you install udev and make sure you copy > the > > > binary > > > firmware into /lib/firmware. > > > > > > If you're not fast enough the two files loading and data will > > > disappear. If > > > this happens, don't worry, just unload qla2xxx and load it again, > and > > > this > > > time make sure you're faster :-) > > > > > > I've done this in the past and I can guarantee that it works. > > > > > > 2.6.17 was the last kernel where the fimrware was built into the > > > module and > > > you didn't have to load it separately. If you can live with that > old > > > kernel, > > > you can downgrade. > > > > > > IvanK. > > > > > > -- > > > gentoo-sparc@l.g.o mailing list > > -- > gentoo-sparc@l.g.o mailing list > >
-- gentoo-sparc@l.g.o mailing list

Replies

Subject Author
Re: [gentoo-sparc] QLA2xxx Ivan Kabaivanov <chepati@×××××.com>