The collected works of ShadeOfBlue - Page 2

Update: A new version is available (see original post).

I've added the second method of getting drive temperatures, so everyone who got an error regarding that before, please try again now.

I've also polished the self-test output a bit, added some option descriptions (run scsimon without arguments to see it) and a new '-v' option, which displays the program's version and exits.
henrycault wrote: I found a dual R10k 250Mhz 1Mb cache for about 40$... is it worth replacing the single R12k 270Mhz 2mb cache?

That depends on what you're doing with it ... For web browsing, you want a single fast CPU, whereas, for example, rendering would be faster with dual slightly slower CPUs.
If you're able to find a cheap dual 300 with 2MB of L2 cache, it would provide a speedup in both tasks from your current configuration.

henrycault wrote: How does one configure GR_OSVIEW ? mine only shows the cpu column, nothing else.

See the man page, it has instructions on configuring a ~/.grosview file where you can specify which columns you want it to display.
orange wrote:
('wrong fs type', used -t iso9660)

That is the wrong FS type :)
IRIX CD's use EFS.
I was getting a "firmware too old" message from numastatd at startup, so I thought it would be a good idea to update it to 1.44.0 which came with 6.5.30.

It turns out that this combination of -003 motherboard and 1.44.0 L1 firmware renders the system unbootable. Won't respond to power button, verbal abuse, nothing.

The procedure to reverse this is quite simple, though :)

Remove the machine's side panel. Somewhere near the SCSI connector on the motherboard you will find an RS232 port, attach a null-modem cable to it.
On the other machine, start a terminal emulator ('cu' works well), set it to 38400 8N1 (e.g. 'cu -l /dev/your_serial_port -s 38400').
As soon as you plug in the power cable on the Fuel, you should be greeted by a prompt:

Code: Select all

ALERT: Error reading the display I/O expander, no acknowledge


SGI SN1 L1 Controller
Firmware Image A: Rev. 1.44.0, Built 07/17/2006 18:19:54


001?01-L1>


The following entries in the log appeared at the time of the update:

Code: Select all

09/29/09 21:21:28 L1 booting 1.44.0
09/29/09 21:21:28 vram checksum error - initializing core data.
09/29/09 21:21:28 ALERT: Error reading the display I/O expander, no acknowledge
09/29/09 21:21:28 ** fixing invalid SSN value


If you try to issue a power up command, you will receive this lovely message:

Code: Select all

001?01-L1>pwr up
ERROR: no power supplies available.


Resetting the NVRAM didn't help, so I decided to boot the other L1 image.

Code: Select all

001?01-L1>flash status
Flash image A currently booted

Image      Status        Revision    Built
-----   -------------   ----------   -----
A     default         1.44.0       07/17/2006 18:19:54
B     valid           1.10.12      02/01/2002 14:40:22
001?01-L1>flash default b

(if your L1 booted from image B, enter "flash default a" instead)

Code: Select all

001?01-L1>reboot_l1


After this, everything works normally:

Code: Select all

SGI SN1 L1 Controller
Firmware Image B: Rev. 1.10.12, Built 02/01/2002 14:40:22


001a01-L1>flash status
Flash image B currently booted

Image      Status        Revision    Built
-----   -------------   ----------   -----
A     valid           1.44.0       07/17/2006 18:19:54
B     user default    1.10.12      02/01/2002 14:40:22


If anyone has the newest 1.48.0 L1 image, I could give it a try to see whether they've fixed this or not :)
jan-jaap wrote: Forget it. That's what I used:

Code: Select all

Flash image B currently booted

Image      Status        Revision    Built
-----   -------------   ----------   -----
A     valid           1.48.1       01/22/2007 11:33:34
B     user default    1.9.15       12/04/2001 16:21:34

Oh well, I'll stick with 1.10.12 then and do a 'chkconfig numastatd off' :)
SAQ wrote: Why haven't you re-flashed the first image back so you have a failsafe again?

The system currently boots from the good image, so it can't be overwritten. If for some reason the system decides to boot off the second image, I can always attach the cable again and re-do the procedure.
It is unlikely that the machine would suddenly start ignoring the "user default" flash setting, so I'm just going to leave it as it is :)

SGI did a really crappy job at testing these IP35 updates... With such a small set of possible hardware combinations I'd expect them to test everything, at least to see if it powers up.
Those are probably copyrights for the TIFF library :)
How about disassembling the PROM, rewriting the CPU initialization code and then reassembling it?
hamei wrote: Is the problem in the cpu itself ?

I vaguely remember reading something about floating-point bugs in the 350MHz CPU's, which made them unsuitable for e.g. Maya. Since the O2 uses the main CPU for geometry transformations, it could be triggered by an OpenGL app.

Martin Steen wrote: here is another little interactive OpenGL demo.

Neat :)
Martin Steen wrote: Is the O2 not a 64-bit-machine?

It has a 32-bit kernel, since there's really no reason to run it in 64-bit mode due to the 1GB memory limit (it can, however, still use 64-bit instructions -- it just lacks the kernel support and libraries that use a 64-bit address space).

It is more efficient to run MIPS4 N32 code on all SGI machines that have an R5k or better CPU inside (and MIPS3 N32 for R4k). Compile it as 64-bit only if your app uses more than 2GB of memory, otherwise it will just cause a slow down and use more memory.
Martin Steen wrote: So the O2 has a 64-bit CPU, but it cannot run 64-bit code because the kernel and the libraries are 32-bit?

Yes, although it can still use 64-bit instructions and operate on 64-bit data (e.g. dadd, dsub, dmult, ...) normally in N32 mode :)
Essentially, the 64-bit ABI only enlarges the 'long' and 'pointer' types to 64-bits and thus enables the program to use more than 2GB of RAM.

This document explains the exact differences between N32 and O32 and N64: http://techpubs.sgi.com/library/tpl/cgi-bin/browse.cgi?coll=0650&db=bks&cmd=toc&pth=/SGI_Developer/Mpro_n32_ABI .

That's good to know, if one is going to use posix memory mapping (mmap) with big files.
(on my job I have to deal with satellite images that can be 200GB large).

An Onyx/Origin 3800 system would be more suited to that kind of work if you want to fit the entire dataset within main memory (though an O2 with 1GB of RAM [the maximum for an O2] could map textures up to ~800MB at a time).
Quote:
Also, anyone knows how to switch between the different kinds of dual-head modes?

Try "chkconfig xinerama on" (you may have to use the -f option if it complains). By enabling xinerama, the two displays will act as a single large display :)
This can have some weird side effects if one head supports texturing and the other doesn't, though.
[I've split this topic from this thread ]

GeneratriX wrote:
ShadeOfBlue wrote:
I will post the schematics & IRIX software when it's done (ironically, my Fuel and Indy are the only computers I own that have a standard PC-style parallel port :) ).

Now you got my whole attention! :) ...count me in to beta-test it here with the Octane when it's done. I can assembly the circuit as required! ;)

Finally got some more hobby time, so I've glanced through the specs for the parallel port and the Flash chip and I've come up with a rather clunky design :)

Five 74HCT374 latches (three for the address bus [24-bit], one for the data bus [8-bit], one for control lines [8-bit]), one 74HCT138 decoder (for controlling the clock inputs on the latches) and one 74HCT257 mux (for reading the data from the flash chip, 4 bits at a time).
The lines from the parallel port will have 4.7kOhm pullups and additional 33Ohm series resistors on the 8 data and 1 strobe line (for termination).

If all SGI's had bidirectional parallel ports, the design would have been simpler. Also, for programming just EEPROM's, a different design using a few 74HCT4040 counters would do the job instead.

I don't intend to include a 12V programming mode, since I don't have any chips to test this with.

The voltage regulator, overvoltage protection + fuse will be on a separate board (I plan on reusing it for other projects).
I will include test points for measuring voltage with a DMM or a scope and also a pin header with the addr+data+ctrl lines (for making custom socket adapters or viewing the signals on a logic analyzer).
[/mental core dump]

Now I only need to draw a schematic, order the parts and build it :)
Does anyone know of any good schematic drawing programs for IRIX?
hamei wrote:
This was once a c program and had Irix binaries. If you think it looks good enough I can scrounge around and see if I still have it.

http://www.staticfreesoft.com/manual/

Thanks, this looks interesting, but I got the impression that it's for designing chips rather than circuit boards :)

I've done some googling and found xcircuit , which seems to do what I need for now. There's even a slightly older version in Nekoware, I'll give it a try.
josehill wrote:
If the new account works, your old account probably has corrupted prefs or caches somewhere.


You could also try resetting Safari with the "Reset Safari..." option from the Safari menu.
GeneratriX wrote:
That's why we need an IRIX port for gEDA/PCB! ;)

PCB compiles OK with MIPSpro 7.4.4, although only the GTK version, the Motif one looks broken.
I haven't really tried compiling the rest of the gEDA suite, the integration between schematics and PCB design looked a bit clumsy to me.

I currently build all prototypes on perfboards (since they haven't been that complex to need a PCB so far :) ), so xcircuit should do for now, but I've got some larger projects planned (a Motorola 68HC000-based system and later [much later :P ] an IDT R3052E-based system [the R3052E is a MIPS-I CPU with MMU]) -- I will look into compiling the entire suite and making a Nekoware package then. Since this is just a hobby, it may take a while to get to that :)

GeneratriX wrote:
Interesting, I'll take a look on the circuit once it is finished, and if some testings are required, I also have Oscilloscope, Signal Generator, and some other cool gadgets.

That would be great :)
I had a nice 2ch 50MHz scope, but the sweep unit broke down, so I'm having it repaired. I've also recently obtained a nice 80-channel logic analyzer (Tektronix 3001GPX).

GeneratriX wrote:
(Maybe one of the administrators could split this thread to help to focus/gain attention on this topic from ShadeOfBlue?)

Done :)
GeneratriX wrote:
There are also a few other FOSS tools over there , but I've tried all of them with Ubuntu, and each one of them lacks something vital for my work... so, right now I'm stuck with gEDA/PCB, which despites the uncomfortable, seems to fit the bill anyway.

What about kicad ? It looks like it has better integration and all the prerequisites are already in Nekoware.

GeneratriX wrote:
I could not avoid to insist again on gEDA/PCB...

I'll take a look at it either on Wednesday or over the weekend. If it compiles cleanly, I can probably put together a tarball for installation under /opt/geda and a proper Nekoware package sometime later.
If everything goes according to plan, I will test it by drawing the schematics for this parallel port programmer with it.

GeneratriX wrote:
I don't think you'll require an oscilloscope having such a Tektronix beast at your lab! Wonderful stuff!

It can only analyze digital signals, though :)
A scope is still invaluable for checking for ripple on the power supply lines and odd analog glitches.

I bought it about two weeks ago, I paid less than 180 EUR (including shipping) and it came with manuals, probes/pods, keyboard, software ... :)
It's even got an RS232 port for connecting it to a computer (then you can either use it as a dumb terminal or for file transfer [e.g. to send collected data to the computer or to receive symbol definitions, etc.]).

GeneratriX wrote:
ShadeOfBlue wrote:
Done :)


Oops! :lol: ...I've not realized until now that you're yourself a moderator! Then my suggestion was not too dificult to do! :) Kudos! ;)

:D
GeneratriX wrote:
I could not recall why on the earth I've rejected KiCad... I guess something to do with the file formats, or compatibility with more than two hundreed existant schematics... but I could not be sure... have you already tried it?

Not yet, I intend to compile both kicad and gEDA and then decide which one I like better.

GeneratriX wrote:
Well, as I've said... you'll be my hero, my friend... just let me know the brand of argentinean wine you would like to taste, and bam!, I'll put a box way to you within a week! :P

Thanks, that's very kind of you :)
It looks like I'm going to have to race canavan for this privilege, though :D

GeneratriX wrote:
Of course. I use a pretty nice LG, and I also use a few virtual scopes with the help of my Ubuntu box and some DIY level adapters and interfaces. Since I use to work a bit more with analog than digital signals, I don't feel the need for a logic analyzer right now... but tomorrow... who knows? ;)

Building digital circuits is fun :)
The US eBay has lots of logic analyzers to choose from... just make sure you buy one that comes with the pods, as they are often very expensive on their own. The HP/Agilent units have all the documentation available online as well as the operating system software. Tektronix doesn't have that for their older models -- some manuals can be found as PDF scans and some units, like the 1241, have the software in a ROM. I intend to image the floppies that came with my 3001GPX and put them up somewhere (I doubt Tektronix would mind, this device is obsolete in their eyes).

GeneratriX wrote:
Let me wild bet! -have you managed to find it while you searched for a Prism ? :P

Quite possible :D
I then researched the various models a bit and decided on either this one or the HP 16500A (with the 100MHz card). This one showed up sooner and it was too good a deal to pass up.

GeneratriX wrote:
That was a very good finding! There are a lot of projects you can tackle with such degree of instrumentation!

My primary goal is to create a couple of primitive computers from scratch (at least one with a 68k and one with a MIPS CPU I mentioned before), but I've also been thinking of taking up reverse engineering, although I need to get some IC clips/grabbers before I can do that.
Now I can also properly debug the BCM912500A boards I have and find out why they're rebooting at memory initialization.

GeneratriX wrote:
Well, I'll not spend more of your time for now... I just want to add to my above statements that I own hundreeds of brand new electronic components, so, it will be a pleasure to beta-test the circuits/apps for the ROM Programmer with my Octane here. In fact I think I already have here at my office all of the required components, excepting the high density parallel port cable.

The schematics should be finished within a week, then I will need about a day to build it and write a sample app which makes patterns on the busses, so I can verify it works. Writing an app that can flash EEPROMs should be simple then, Flash ROMs will take some more time.
I intend to start writing AT29C010A support first, but other chips should be compatible as well, since the flashing procedure is most likely standardized.


canavan wrote:
A new harddrive mounted as /tmp enabled me to build cmake (will provide nekoware tardist tomorrow), but kicad fails to build with:
Code:
Signal: Segmentation fault in Front End Driver phase.
Error: Signal Segmentation fault in phase Front End Driver -- processing aborted

I get the same thing when compiling with the legacy configure scripts included in the package -- I will try lowering the optimization level later (although I think that won't help, the error is probably caused by odd syntax -- finding and rewriting the offending line will probably do the trick).

I've also built PCB with the GTK frontend this morning (builds nicely with -Ofast=ip35 and -IPA, seems to run properly) -- should I learn how to make Nekoware packages now, or wait till the rest of the gEDA suite is built, so we can make one large package with all the components?
ShadeOfBlue wrote:
canavan wrote:
A new harddrive mounted as /tmp enabled me to build cmake (will provide nekoware tardist tomorrow), but kicad fails to build with:
Code:
Signal: Segmentation fault in Front End Driver phase.
Error: Signal Segmentation fault in phase Front End Driver -- processing aborted

I get the same thing when compiling with the legacy configure scripts included in the package -- I will try lowering the optimization level later (although I think that won't help, the error is probably caused by odd syntax -- finding and rewriting the offending line will probably do the trick).

It looks like it crashes in include/board_item_struct.h, at the closing '};' of the enum Track_Shapes :?
I pin-pointed it to that location by putting '#warning ...' lines before and after '#include's and structures.
One line above the enum declaration is an include for the boost library, so maybe that has something to do with it.

This looks like a really weird compiler bug, so I'm not sure where to proceed from here (a gcc build perhaps?).

I've focused my attention on compiling gEDA now and I'm currently stuck at libguile 1.8.7, which has an odd error in a switch() statement... I'll see if 1.9.4-alpha is any better (otherwise I'll convert the switch into a series of if-else's).
GeneratriX wrote:
It could be probably better to have a one large package with all the components inside... I guess the only caveat is that SoftwareManager behaves a bit more slowly in this way, but I prefer this fashion because if you got many packages installed (like many of us use to do), you'll locate faster the gEDA/PCB suite anyway.

OK, I'll help out with the porting then and leave the packaging to canavan, since he has more experience with this :)

porter wrote:
I've generally been more in favour of serial port solutions as they are "more portable" between different types of machines.

I did think of that solution... A bit-shifter based programmer would have been more portable, but probably much slower, whereas a microcontroller based programmer would need to be programmed somehow [most modern ones let you do this via the serial port as well, but you need the software to do it]).


Regarding libguile: I've fixed the problem (only needed a few extra #ifdefs here and there), onward to other prerequisites :)
Here's the patch:
Attachment:
File comment: libguile patch
guile.patch [1.66 KiB]
Downloaded 34 times
japes wrote: I thought it was interesting to see, sure enough, 17% longer run time for N64 code.

No surprise there :)

64-bit code has longer instructions, so it will effectively halve the available L1 and L2 cache and also require more memory fetches. The only benefit of having 64-bit code is, as I said before, the larger address space.

People who come from an x86 background often think that 64-bit code is faster everywhere, but this is really not the case. The only reason why x86_64 code is faster is that they've increased the number of available registers and made some other changes.
dexter1 wrote:
Maybe we should communicate who is checking out what, so that we can spread the moderation much more evenly. Ofcourse if one sees a violation you don't have to wait for another moderator or admin to remove it if you can do it yourself.

I usually read (or at least skim through) every new post, haven't seen any spam lately :)
josehill wrote: I like to fire up the old Bungie Marathon games (forerunners of today's Halo series) under Classic every now and then, and there are a handful of utilities on Classic that I still like to use.

The Marathon engine has been open-sourced: http://marathon.sourceforge.net/ , along with the content :)
Years ago, I compiled it with gcc and it ran nicely on the 175MHz R10k O2 I had back then.

Haven't upgraded to 10.6 yet, I usually wait until the .3 or .4 release when they get most of the bugs fixed (and most third-party apps tend to add support by then).
zmttoxics wrote: If I recall correctly they moved rosetta to the optional installs on the DVD.

Yes, it's not installed by default, but the system is smart enough to download Rosetta from Apple the first time you run a PPC-only app.
+1
PymbleSoftware wrote:
libtorrent itself is not commercial software and no-one will issue a take down notice to Pete over it.
I don't see it as a threat to nekochan and no one said anything when dennisjunior asked for it twice..

I agree. Also, there's already a 'ctorrent' in Nekoware -- if it was illegal, it wouldn't be there :)
NASA, for example, had some really huge satellite imagery of the Earth available for download via torrents.
Porting libtorrent/rtorrent topic split off on request.
canavan wrote: rtorrent has a number of problems with the curlbuild.h including <stdint.h>, which #errors out for anything but c99, i.e. CC won't work.

Replace that include with <inttypes.h> and it should work in both c99 and CC.
vishnu wrote:
if I want a list of all the programs I've compiled in $HOME all I have to do is `find ~ -name \*exe` ...

Code:
find ~ -exec file {} \; | fgrep executable

There is no excuse for putting .exe at the end of UNIX executable names :)
:lol:
canavan wrote:
Quote:
find ~ -exec file {} \; | fgrep executable
I'd prefer find ~ -perm -1

This will also return directories and other files which happen to have the executable bit set (e.g. shared libraries, scripts, ...).
dexter1 wrote:
ShadeOfBlue wrote:
canavan wrote:
Quote:
find ~ -exec file {} \; | fgrep executable
I'd prefer find ~ -perm -1

This will also return directories and other files which happen to have the executable bit set (e.g. shared libraries, scripts, ...).


Code:
find . -type f -perm -1

This will still return shared libraries and other files with the exec bit set :P

I considered all these options before posting my version with 'file', which returns only actual executables (and possibly shell scripts, depending on the version of the 'file' program used).
dc_v01 wrote: Does this really need its own thread? You can add it to the "Yes, this again" thread you posted right after without hijacking it.

Merged.

There's also some information on Wikipedia: http://en.wikipedia.org/wiki/DB13W3
PymbleSoftware wrote:
Code:
cc-1035 CC: WARNING File = /usr/include/stdint.h, Line = 5
#error directive:  This header file is to be used only for c99 mode
compilations

#error This header file is to be used only for c99 mode compilations
^


Try replacing '#include <stdint.h>' with '#include <inttypes.h>'.
Power consumption of my Origin 3400 with 16 400MHz R12k CPUs and 16GB RAM (all RAM slots used):

Code: Select all

STATE                                POWER (accurate to ±5%)
Standby (plugged in) ...............  303W
Powering up (initializing memory) .. 1340W
Powering up (PROM) ................. 1255W
Booting IRIX ....................... 1315W
Idling at console login prompt ..... 1311W
Installing stuff via swmgr ......... 1315W

These measurements were made when the system had only one 36GB 10k RPM hard drive. Since then, I have replaced it with two 73GB 15k RPM drives -- I should measure the power consumption again to see if it changed much. I think it's safe to say it's still under 1400W :)
-12V is most likely only used on the PCI-X slots, for backward compatibility with conventional PCI. Probably none of the PCI-X cards supported in the I-Brick actually use the -12V rail.

I wouldn't run it like this for too long, though. Once you can smell something burning, it's already too late :(
rusti wrote:
@ShadeofBlue: I am not sure whether I fully understand the PCI PCI-X part (lack of background knowledge). So, what you are saying is that PCI used -12V and PCI-X does not any more?

Sorry, I should have been more specific. Standard PCI slots supply various voltages on different pins.
There's a pin that supplies -12V, along with a few pins for 12V, 5V and 3.3V (see this page for a full pinout).
PCI-X was designed to be backward compatible with the PCI specification, so they kept the -12V pin, even though most modern cards have no use for it. In the past, the -12V rail was used for some communication cards.

Quote:
The only PCI Board installed is the FC Controller. Lets assume I want to install a Gigabit LAN Card later will I get in trouble because it uses -12V and will be destroyed?

If it uses -12V, then yes. But it probably doesn't use -12V :)
The documentation for the card should list how many amps it draws on the various rails; if that list doesn't include the -12V rail, then the card doesn't use it.

Quote:
I see your point with not letting it run like this for long. But what are my options. If environmental monitoring is on it is only a question of time until the system shuts down. So its basically a useless brick.

If anything on board used -12V, it would have fried by now, so as far as that goes, it's probably ok :)
However, it's still possible that the chip responsible for generating -12V might fail completely and cause a short circuit.
It's best to play it safe, I-bricks are still quite expensive and replacing the broken chip could be the cheapest solution, but not if the chip takes something else with it.
Good to see it's working :)

rusti wrote:
After reassembling machine no brought a memory exeption, some how set the global master to the other c-brick and then complains that it has no IO. So for the time being it doesn't boot at all any more. Definitely need to do some reading...

Connecting the I-brick's NUMAlink cable to the other C-brick should get rid of the "no I/O" error and allow it to boot (you may need to delete /etc/ioconfig.conf and reboot).
Then you can try reseating the CPUs and RAM in the C-brick that's reporting the exception.
rusti wrote:
Currently XIO10 of the I-Brick is connected to XIO(II) on the first (lower) C-Brick and the two C-Bricks are connected Link(NI) to Link(NI).

Looks OK.

rusti wrote:
I was always tempted to connect XIO11 of the I-Brick to XIO(II) of the second (upper) C-Brick for redundancy and / or better bandwidth but since I found no indication whether this is a legal configuration I did not do it.

It works just fine, my Origin's I-brick is connected to two C-bricks and it works without any problems.

rusti wrote:
If I read you correctly what you mean is connecting the upper C-brick to the I-Brick instead of the lower one, right?

Yes :)

rusti wrote:
I guess there need to be some NVRAM settings, too.

It's most likely in there, yes. Try 'printenv' in the command monitor to see all the NVRAM variables.
This should take care of most of the duplicates:

Code: Select all

$ cat cds.txt | sort -k1 | uniq -i | awk '{ if (prev != $1) { prev = $1; print $0; } }' > cds-nodup.txt

Generates this file:
cds-nodup.txt
(24.74 KiB) Downloaded 68 times

Entries are sorted by part number, with duplicate part numbers removed. Still needs a human to prettify the output, though :)