mood-indigo.org - Das unabhängige Silicon Graphics User Forum
Hardware => Hardware Probleme => Thema gestartet von: gemm am 14. September 2004, 12:44:25
-
wo steckt das elende ding in einer o2, in dem die mac adresse (und damit alle lizenzen) codiert sind ? der pci tray (wie mancherorts im netz beschrieben) ist es nicht.
cpu modul auch nicht (haette mich auch gewundert)
frontplane ? wuesste nicht, wo ....
mainboard (befuerchte ich fast) - aber wo genau ? kann ich das teil irgendwie auslesen/neu beschreiben ?
folgendes problem - habe eine final defekte o2 (blitzschlag) auf welcher eine menge lizenzen haengen (komplettes varsity + spezialsoftware). selbige moechte ich natuerlich auf eine andere maschine transferieren (allein der offizielle lizenztransfer der spezialsoftware kostet weit mehr als eine neue maschine).
da ich mich nunmal eher mit hardware als mit software (flexlm) auskenne, mochte ich das eprom/eeprom umloeten....
alternativen ?
-
thread:
mood-indigo.org - Das SGI Heimanwender Forum
Irix
Allgemeine Fragen
Mac-Adresse ändern
rob
-
dann zitiere ich mal eben o.g. thread:
....bei der O2 dagegen praktisch unmöglich....
die software-loesung kenne ich schon ein weilchen. leider gibts nichts fuer o2 (ip32)/irix 6.5.
hat das schonmal jemand bei ip32 systemen unter irix6.5 ausprobiert/geschafft ?
http://www.squirrel.com/squirrel/sgi-sysid.html
-
Also bei der O2 ist das meines Wissens nach die PCI Riser Card.
Hatte mal was ähnl. vollführen müsen wo ich der O2+ mit R12k die MAC einer O2 mit R10k verpassen musste.
Riser Card ausgetauscht - und fertig.
Viele Grüsse,
Markus
;)
-
hm, das stimmt mich nachdenklich. meine software laeuft/lief auf der maschine auch komplett ohne die pci-riser karte (vergessen das teil einzubauen nach cpu austausch).
ausserdem ist die alte maschine eine r10k und die neue eine rm7k; da passt die alte riser-karte nicht; es sei denn, ich baue den ganzen krempel ins alte gehaeuse um.
edit: habe mir die pci-riser karte der r10k mal angesehen. das einzige aktive bauteil (bzw. das einzige bauteil ueberhaupt) ist eine art transistor.
aber: auf der seite des pci-steckplatzes ist tatsaechlich ein aufkleber mit der seriennummer/mac-adresse.
sollte tatsaechlich dieses transistoraehnliche teil das gesuchte sein ?
-
Hallo !
Also bei der O2 ist das meines Wissens nach die PCI Riser Card.
Right !
Auf der Risercard ist ein kleiner "Dreibeiner". Das Teilchen sieht aus wie ein Transistor ;)
Dabei handelt es sich um ein serielles PROM.
Ob das Ding umprogrammierbar ist weiss ich nicht. Tausch der Risercard würde doch genügen.
Bis denne ...
Thomas
-
oh - da war ich mit meinem edit zu langsam.
der riser der r10k ist von der hoehe her anders als der in der rm7k und passt mechanisch nicht ins gehaeuse. die rm7k hat das gleiche gehaeuse wie die r5k - und selbige koennen eine zweite interne festplatte aufnehmen. die r10k braucht den platz fuer den cpu-kuehler....
-
Ahm gemm.....
Ich weiss nicht wie weit du da gehen würdest, aber es besteht ja noch die möglichkeit mit einem 10-15W Lötkolben und sehr Feiner Spitze dieses auszulöten und auf der Neuen wieder anzubringen.
Ebenso ist es auch evtl. Interessant wie tief die Riser Card bei einer R5k/ R7k ist (sorry ich hatte nie eine und die O2+ mit R5k2 an der ich mal saß habe ich nie reingeschaut).
Wenn sie genauso Tief ist oder halbwegs passen könnte würde ich einfach das vorderige Metall Chassis der R10k weg lassen.
Aber irgendwas habe ich noch im Hinterkopf..... da sollte etwas vom Design zw. R1xk und R5kx/ R7kx, mal abgesehen davon dass das Case von Internen Aufbau für das Mainboard Schmaler ist, sodass ja 2 HDD Sleds verbaut werden können, somit sollte die Riser Card auch nicht so ohne weiteres ausgetauscht werden kann.
Bei den R1xk Pendanten ist sie ja auch wegen der Wuchtigen CPU auch extrem Tief.
Versuch mal zu Improvisieren - wirst es schon irgendwie auf die Reihe bekommen.
Und nochwas....
Ein "ChangeSysID" für IP32 ist mir schon bekannt. Allerdings nur wenn dann extra für IRIX 6.3 ;)
Viele Grüsse,
Markus
-
Das Board der R5K Maschinen passt aber auch ins Gehäuse der R10K Kisten, wenn man den Verlust des zweiten Platteneinschubs verschmerzen kann.
-
bei den r10k/r12k ist die riser card so "hoch", dass sie ueber den cpu-kuehler hinweg geht. die r5k/rm7k haben stattdessen einen zweiten platz fuer einen hdd einschub. die beiden riser-cards unterscheiden sich also in der "hoehe" um ca eine festplattendicke (ca 2,5 cm).
um das passend zu machen, muessen eben die ganzen innereien (board + frontplane - wegen dem zweiten scsi-anschluss) von einem gehaeuse ind andere transferiert werden (scheissarbeit, weil ueberall scharfkantiges metall; ausserdem brechen gerne irgendwelche haltezungen vom sockel ab).
da ist mir das umloeten schon lieber - ich hatte mich ja seelisch schon mit einem smd bauteil auf der hauptplatine abgefunden (dann doch lieber totalumbau).
aber dieses transistorteil auf beinchen sollte kein problem darstellen.
noch schwinge ich den loetkolben nicht. wenn also doch noch jemand eine software-loesung fuer 6.5 hat....
-
ich poster hier jetzt einfach mal den quellcode von einem sysid change von ip30. evtl läuft dieser mit etwas arbeit auf auf ip32.
/*
Change the system id on an IP30/Octane running Irix 6.5
No warranty at all with this software; it may cause a nuclear reaction
in your machine.
Instructions:
cc -o sidchange-octane-ip30 sidchange-octane-ip30.c -lelf
./sidchange-octane-ip30 newsysid
Notes:
You must run this program as root
Run with no arguements this should print your current system id
Do this first as a test.
*/
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/uio.h>
#include <nlist.h>
#include <string.h>
#include <errno.h>
int
main(int argc, char *argv[])
{
int kmem;
unsigned int new_id, cur_id;
off_t where;
struct nlist64 nl[2];
nl[0].n_name="is_octane_lx";
nl[1].n_name=NULL;
if (argc == 2)
new_id = strtoul(argv[1], NULL, 16);
if ((kmem = open("/dev/kmem", O_RDWR)) < 0) {
fprintf(stderr, "cannot open /dev/kmem\n");
fprintf(stderr, "%s\n", strerror(errno));
return 1;
}
if (nlist64("/unix", nl) < 0) {
fprintf(stderr, "cannot read namelist out of /dev/ksyms\n");
return 1;
}
if ((where = nl[0].n_value) == 0) {
fprintf(stderr, "unknown kernel variable is_octane_lx\n");
return 1;
}
if (lseek(kmem, where + 4, SEEK_SET) == (-1)) {
fprintf(stderr, "lseek on /dev/kmem failed\n");
return 1;
}
if (read(kmem, &cur_id, 4) < 4) {
fprintf(stderr, "read from /dev/kmem failed\n");
fprintf(stderr, "%s\n", strerror(errno));
return 1;
}
printf("The System ID Is Currently: %08x\n", cur_id);
if (argc == 2) {
if (lseek(kmem, where + 4, SEEK_SET) == (-1)) {
fprintf(stderr, "lseek on /dev/kmem failed\n");
return 1;
}
if (write(kmem, &new_id, 4) < 4) {
fprintf(stderr, "write to /dev/kmem failed\n");
fprintf(stderr, "%s\n", strerror(errno));
return 1;
}
printf("The System ID Has Changed To: %08x\n",new_id);
}
close(kmem);
return 0;
}
bye
thomas
-
ip32 code für irix 6.3
/* change system id on IRIX 6.3 - only minimally tested on an IP32 machine
consider this a very early alpha - mch@squirrel.com
Placed in the public domain by the author - 1996
since the system ID on different types of SGI hardware is obtained in
different ways, YMMV. This may even crash your machine.
compile by -- cc -o change-sid63 change-sid63.c -lelf
run this with no parameters first and make sure it reports the
correct system id
if all is well, you can run it with the system id you want
e.g.
marmot:/home/mch/tmp> cc -o change-sid63 change-sid63.c -lelf
marmot:/home/mch/tmp> su
Password:
marmot# /sbin/sysinfo
System ID:
12 34 56 78 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
marmot# ./change-sid63
hexadecimal system id seems to be 12345678
marmot# ./change-sid63 69c0ffee
marmot# /sbin/sysinfo
System ID:
69 c0 ff ee 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
marmot#
*/
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/uio.h>
#include <nlist.h>
struct nlist nl[2];
main(argc,argv)
int argc;
char *argv[];
{
int kmem;
int just_read = 0;
unsigned int new_id, cur_id;
off_t where;
just_read = (argc <= 1);
if (argc > 1)
new_id = strtoul(argv[1], NULL, 16);
if ((kmem = open("/dev/kmem", O_RDWR)) < 0) {
fprintf(stderr, "cannot open /dev/kmem\n");
exit(1);
}
nl[0].n_name="sys_id";
nl[1].n_name = NULL;
if (nlist("/unix", nl) < 0) {
fprintf(stderr, "cannot read namelist out of /unix\n");
exit(1);
}
if ((where = nl[0].n_value) == 0) {
fprintf(stderr, "unknown kernel variable sys_id\n");
exit(1);
}
if (lseek(kmem, where, SEEK_SET) == (-1)) {
fprintf(stderr, "lseek on /dev/kmem failed\n");
exit(1);
}
if (!just_read) {
if (write (kmem, &new_id, 4) < 4) {
fprintf(stderr, "write to /dev/kmem failed\n");
exit(1);
}
}
else {
if (read(kmem, &cur_id, 4) < 4) {
fprintf(stderr, "read failed\n");
exit(1);
}
printf("hexadecimal system id seems to be %08x\n", cur_id);
}
close(kmem);
exit(0);
}