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

Replies

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