Gentoo Archives: gentoo-sparc

From: Ivan Kabaivanov <chepati@×××××.com>
To: gentoo-sparc@l.g.o
Subject: Re: [gentoo-sparc] QLA2xxx
Date: Thu, 28 Feb 2008 22:02:53
Message-Id: 200802281705.20835.chepati@yahoo.com
In Reply to: Re: [gentoo-sparc] QLA2xxx by BRM
1 On Thursday 28 February 2008 16:39, BRM wrote:
2 > All,
3 >
4 > Thanks for the tips. I'm not sure how it'll all work out right now.
5 > They might provide a method for booting the system via the CD, but then
6 > the only viable option after that seems to be using the specified patch
7 > in kernel builds so that we can boot and gain access to the hard drive.
8 >
9 > The system only has one hard drive, which is attached via the QLA2xxx
10 > controller - so I don't see how relying on udev to load the firmware
11 > would solve the problem of accessing the only hard drive in the
12 > system...
13
14
15
16 Ben,
17
18 if nobody explicitly mentioned it, it's because we all either forgot, or took
19 it as common knowlegde -- you do need an initramfs in order to bootstrap the
20 init process on QLA2xxx machines.
21
22 OBP knows how to load silo, silo knows how to load the kernel. Things break
23 when the kernel tries to find the root device and that's where you need an
24 initramfs. You can roll your own. All it needs is the firmware
25 in /lib/firmware/, udev, qla2xxx.ko, scsi.ko, sd_mod.ko, ext3.ko, and any
26 other modules you may need, and udev. You also need /etc/udev with
27 appropriate rules, /lib/udev and all the udev helpers, especially
28 firmware.sh. Your /init script needs to mount /proc, /sys, /dev, start udev
29 and load qla2xxx.ko. udev will take care of firmware loading. After that
30 just switch_root.
31
32 IvanK.
33
34
35
36 >
37 > It does occur to me that there might be another slight solution to the
38 > problem, from which udev could then be relied on - using an initrd
39 > image, or booting using another device from which udev could be
40 > utilized.
41 >
42 > I'd rather not have to leave a floppy (yes the system has a floppy) or
43 > CD in the drive all the time, from which it would load an initrd image
44 > containing udev, the firmware, and whatever else would be needed; but
45 > it seems the only other method would be to use a USB Storage device.
46 >
47 > Does anyone know if the OpenBoot PROM on the SunBlade 2000 will boot a
48 > USB device? The Service manual seems to indicate it would for a 100 or
49 > 250 Iomega Zip Drive (can you even get those anymore?!!) but that too
50 > is not an ideal solution. I'd rather be able to get a USB Stick (2
51 > GB?), or even a USB Hard Drive (e.g. WD Passport or the likes) that
52 > could hold the base system and boot from that. Anyone know if that
53 > would work?
54 >
55 > Might one need to upgrade the OpenBoot PROM to to so? If so, how and
56 > where do I get the new image?
57 >
58 > My only other alternative is to go and get OpenSolaris and try that
59 > out. (Hopefully it won't have the same issue.)
60 >
61 > Any how...thanks for all the helpful tips & everything.
62 >
63 > Ben
64 >
65 > --- Ivan Kabaivanov <chepati@×××××.com> wrote:
66 > > On Thursday 21 February 2008 14:50, Friedrich Oslage wrote:
67 > > > Hi,
68 > > >
69 > > > > The problem comes from the fact that the firmware is in the disk
70 > >
71 > > at
72 > >
73 > > > > /lib/firmware starting from kernel 2.6.18 or something. If you
74 > >
75 > > boot
76 > >
77 > > > > the 2617 from the CD it will probably work fine.
78 > > > > Anyway even creating a proper initrd with that /lib/firmware the
79 > > > > kernel does not load it. Don't know why.
80 > > >
81 > > > Using an initrd works fine for me, you probably just forgot to put
82 > >
83 > > udev
84 > >
85 > > > in it.
86 > > >
87 > > > My initrd basicly looks like this:
88 > > > /dev/console
89 > > > /dev/null
90 > > > /bin/busybox
91 > > > /bin/udevd
92 > > > /lib/udev/firmware.sh
93 > > > /lib/udev/udev.conf
94 > > > /lib/udev/rules.d/50-udev.rules
95 > > > /firmware/ql2200_fw.bin
96 > > > /lib/modules/`uname -r`/modules.dep
97 > > > /lib/modules/`uname -r`/kernel/drivers/scsi/qla2xxx/qla2xxx.ko
98 > > > /linuxrc
99 > > >
100 > > > The script I used to create it is available @
101 > > > http://porno-bullen.de/~bluebird/initrd-qla2xxx/ but don't blame me
102 > >
103 > > if
104 > >
105 > > > it doesn't work ;)
106 > > >
107 > > > Cheers,
108 > > > bluebird
109 > >
110 > > This is the preferred method -- to let udev handle the firmware
111 > > loading.
112 > > However if you don't have udev in the initrd or it doesn't work, all
113 > > is not
114 > > lost. There's a way to manually load the firmware, but it's tricky.
115 > > It's
116 > > tricky because you have to be very quick -- you'll have maybe up to
117 > > 4-5
118 > > seconds to load the firmware. Here's how:
119 > >
120 > > 1) boot the machine (either with an initrd from the hard drive or
121 > > with an
122 > > installation cd.)
123 > > 2) drop to a shell somehow -- I don't run gentoo so I don't know if
124 > > the
125 > > installer has this option but debian does and so does ubuntu for
126 > > sparc.
127 > > 3) Load qla2xxx.ko (just modprobe qla2xxx)
128 > > 4) Find out the device path in /sys (on my sunfire280r
129 > > it's /sys/devices/pci0001\:00/0001\:00\:04.0/) It might take you a
130 > > few tries
131 > > to find out. Look for a file
132 > > /sys/devices/pci0001:00/0001:00:04.0/obppath
133 > > with this line
134 > > /pci@8,600000/SUNW,qlc@4. (the numbers are not important. the
135 > > important part
136 > > is the qlc bit)
137 > > 5) Type this: echo 1 > /sys/devices/pci0001:00/0001:00:04.0/loading
138 > > 6) Type cat /lib/firmware/ql2200_fw.bin
139 > >
140 > > > /sys/devices/pci0001:00/0001:00:04.0/data (this is one line)
141 > >
142 > > 7) Type echo 0 > /sys/devices/pci0001:00/0001:00:04.0/loading
143 > >
144 > > for 5), 6) and 7) you'll get error message file not found. It
145 > > doesn't matter.
146 > > The point is to cache these three command into the shell history so
147 > > you can
148 > > recall them quickly when you need them. Remember, you have a window
149 > > of a few
150 > > seconds and regardless how fast you type you won't make it without
151 > > using
152 > > cached commands.
153 > >
154 > > 8) Unload qla2xxx (rmmod qla2xxx)
155 > > 9) Now load the kernel module again (modprobe qla2xxx). The clock
156 > > starts
157 > > ticking now. The module tells the kernel that it needs a firmware
158 > > before the
159 > > hardware can be initialized. The module creates a device path in
160 > > /sys and
161 > > creates two files, loading and data.
162 > > 10) Quickly recall from history the command from 5) and press enter
163 > > 11) Quickly recall from history the command from 6) and press enter
164 > > 12) Quickly recall from history the command from 7) and press enter
165 > >
166 > > You'll see messages that the card was initialized. Now you can load
167 > > sd_mod.
168 > > If you had to resort to this, then chances are you don't have udev
169 > > running so
170 > > you may have to manually create the device nodes in /dev. For your
171 > > convenience:
172 > >
173 > > brw-rw---- 1 root disk 8, 0 2008-02-21 15:03 /dev/sda
174 > > brw-rw---- 1 root disk 8, 1 2008-02-21 15:03 /dev/sda1
175 > > brw-rw---- 1 root disk 8, 2 2008-02-21 15:03 /dev/sda2
176 > > brw-rw---- 1 root disk 8, 3 2008-02-21 15:03 /dev/sda3
177 > > brw-rw---- 1 root disk 8, 4 2008-02-21 15:03 /dev/sda4
178 > > brw-rw---- 1 root disk 8, 5 2008-02-21 15:03 /dev/sda5
179 > > brw-rw---- 1 root disk 8, 16 2008-02-21 15:03 /dev/sdb
180 > > brw-rw---- 1 root disk 8, 17 2008-02-21 15:03 /dev/sdb1
181 > > brw-rw---- 1 root disk 8, 18 2008-02-21 15:03 /dev/sdb2
182 > > brw-rw---- 1 root disk 8, 19 2008-02-21 15:03 /dev/sdb3
183 > > brw-rw---- 1 root disk 8, 20 2008-02-21 15:03 /dev/sdb4
184 > >
185 > > Once you have all the device nodes in /dev you can go back to the
186 > > installer
187 > > and resume. Make sure you install udev and make sure you copy the
188 > > binary
189 > > firmware into /lib/firmware.
190 > >
191 > > If you're not fast enough the two files loading and data will
192 > > disappear. If
193 > > this happens, don't worry, just unload qla2xxx and load it again, and
194 > > this
195 > > time make sure you're faster :-)
196 > >
197 > > I've done this in the past and I can guarantee that it works.
198 > >
199 > > 2.6.17 was the last kernel where the fimrware was built into the
200 > > module and
201 > > you didn't have to load it separately. If you can live with that old
202 > > kernel,
203 > > you can downgrade.
204 > >
205 > > IvanK.
206 > >
207 > > --
208 > > gentoo-sparc@l.g.o mailing list
209
210 --
211 gentoo-sparc@l.g.o mailing list

Replies

Subject Author
Re: [gentoo-sparc] QLA2xxx BRM <bm_witness@×××××.com>