Chinaunix

标题: 修改SUN工作站hostid不完全参考手册 [打印本页]

作者: Richard_Shen    时间: 2003-08-24 15:45
标题: 修改SUN工作站hostid不完全参考手册
注意:修改前一定要备份原来的hostid和Ethernet address信息。

一、永久修改法:
1、 查找eeprom地址修改
该方法对从station5、station20等等直到Blade100、Blade150系列都适用,注意操作过程中屏幕显示结果的细小差别,不要完全照搬。
以blade150+solaris8为例,原始HOSTID为:83188869,Ethernet address:0:3:ba:18:88:69;拟改为80cf7afe。
Step1:  Stop+a              【进入OK状态】
Step2:  OK show-devs        【按空格键找到包含eeprom的全路径名】
Step3:  OK  cd  /pci@1f,0/ebus@c/eeprom@1,0   
    注意不同的eeprom版本输出的eeprom路径名会不同,请以屏幕显示为准。
step4:OK .properties          【有些版本可能为.attributes】
    找到address值fff58000
step5: OK  fff58000  >;physical
step6: OK  showstack
step7: OK  2000  memmap
step8: OK  1fd0+
step9: OK  30 dump
注意看附图中的输出结果,从fff55fd8开始各位的含义如下:

字节        地址        内容
0        fff55fd8        总为 01 - format/version number
1        fff55fd9        hostid的第一个字节【机器类型】
2-7        fff55fda~f        ethernet address
8-b        fff55fe0~3        生产日期,通常为0,不一定是真实日期
c        fff55fe4        hostid的第二字节
d        fff55fe5        hostid的第三字节
e        fff55fe6        hostid的第四字节
f        fff55fe7        IDPROM checksum - bitwise xor of bytes 0-e

Step10: OK        80        fff55fd9                c!         
【第一个字节一般不推荐修改,如果一定要改,好像也是没有问题的。】
step11: OK        cf        fff55fe4                 c!
step12: OK        7a        fff55fe5                 c!
step13: OK        fe        fff55fe6                 c!
step14: OK         01 80 xor
step15: OK         00 xor
step16: OK         03 xor
【从fff55fd8开始向后作xor,直到fff55fe6处作完为止,假设输出结果为f6,见下一步的输出为f6。注意上图中的hostid的第二、三、四字节的值在作xor时要用新的值cf、7a、fe】
next:   OK         fe xor  
OK  f6
next:   OK        f6        fff55fe7        c!
next:   OK  banner
查看修改正确后可以输入boot重新引导,如果banner显示的结果有错,有两种方法恢复出厂设置,一是用stop+n组合键恢复,如果stop+n无效,则在OK状态下输入set-defaults即可。
  上面的示例没有修改Ethernet address,用户也可以根据需要修改,修改对应字节即可。

2、 用mkp命令修改
有些机器可以用mkp修改,但在blade系列机器中就不支持mkp了【OBP 4.X之后的版本】。
用mkp修改IDPROM信息,命令格式为:
<数值>;<第几字节>;mkp
如修改hostid为57c0ffee,ethernet 地址为08:00:20:c0:ff:ee
OK        1        0        mkp   
OK        real-machine-type        1        mkp
OK        8        2        mkp
OK        0        3        mkp
OK        20        4        mkp
OK        c0        5        mkp
OK        ff        6        mkp
OK        ee        7        mkp
OK        0        8        mkp
OK        0        9        mkp
OK        0        a        mkp
OK        0        b        mkp
OK        c0        c        mkp
OK        ff        d        mkp
OK        ee        e        mkp
OK        0        f        0        do        i        idprom@        xor        loop        f        mkp
OK        reboot

如果不改hostid的第一个字节,也可以直接尝试用下面的步骤修改hodtid。
OK        c0        c        mkp
OK        ff        d        mkp
OK        ee        e        mkp
OK        0        f        0        do        i        idprom@        xor        loop        f        mkp
OK        update-system-idprom
OK        boot

二、临时修改法:
此种方法用于eeprom版本不支持mkp命令,用show-devs命令也找不到eeprom路径的机器上,比如blade2000。其原理是在操作系统启动后修改操作系统设备文件中的有关hostid的信息【/dev/ksyms和/dev/mem文件】,是欺骗solaris的,并没有改变eeprom中的值。所以修改后在机器reboot时提示的hostid仍是原来的hostid,进入系统后输入hostid命令显示的才是新的hostid值。
具体做法如下:
step1:用系统中的计算器将你要改的83188869转换成10进制的(比如转换后是2199423081,对应的ASCII码是32313939343233303831);
step2:然后在/etc/rc2.d/S20sysetup文件尾加入下段【也可以自己建一个以S20开头命名的文件】,修改前将copy一个备份文件bak_S20sysetup:
#为C编译器临时修改hostid。Richard Shen,2003/08/24。
adb        -w        -k        /dev/ksyms        /dev/mem        <<END>;/dev/null
hw_serial/W                0x32313939
hw_serial+4/W        0x34323330
hw_serial+8/W        0x38310000
END
step3:#sh        S20sysetup
step4:#hostid                 【看看改过来了没】
注意:这样作可能会有严重的后果,机器可能会出现白屏,显示一堆乱码,这种情况尤其会出现在用户输入错误字符的时候。系统重启后会陷于死等状态,这时需要用stop+a进入OK状态,用boot –s命令重启机器,然后在提示输入root密码后将bak_S20sysetup覆盖S20sysetup文件,再用init 6重启即可恢复。
也可以将命令写在一个c文件中,用户可以参考网上的一个文件hid_solaris2.c:
#include <stdio.h>;
main(argc,argv)
int argc;
char *argv[];
{
    unsigned int hid;
    int i;
    char obuf[15];
    for (i=0; i<15; i++)
        obuf = '\0';

    if (argc != 2) {
        fprintf(stderr, "usage: %s hostid\n",argv[0]);
        exit(1);
    }
    sscanf(argv[1],"%08x",&hid);
    sprintf(obuf,"%u", hid);  /* should this be %010u ? */

    printf("#!/bin/sh\n";
    printf("# this script sets the hostid to %08x\n",hid);
    printf("adb -w -k /dev/ksyms /dev/mem <<END\n";
    printf("hw_serial/W 0x";
    for (i=0; i<4; i++)
        printf("%02x", obuf);
    printf("\n";
    printf("hw_serial+4/W 0x";
    for (; i<8; i++)
        printf("%02x", obuf);
    printf("\n";
    printf("hw_serial+8/W 0x";
    for (; i<12; i++)
        printf("%02x", obuf);
    printf("\n";
    printf("END\n";
        return(0);
}
详情请下载hid-1.7.4研究。


附一个forte6的license:
SERVER FZ27 83188869 1726
DAEMON sunwlicd /etc/opt/licenses/sunwlicd /etc/opt/licenses/daemon_options
INCREMENT workshop.dbx.sparc sunwlicd 6.000 01-jan-0 1 C056D1563E0E5F9445F4 VENDOR_STRING="0"
INCREMENT workshop.c.sparc sunwlicd 6.000 01-jan-0 1 C09641169B155EDF09E2 VENDOR_STRING="0"
INCREMENT workshop.cc.sparc sunwlicd 6.000 01-jan-0 1 E026212652888E8981D8 VENDOR_STRING="0"
INCREMENT workshop.f77.sparc sunwlicd 6.000 01-jan-0 1 20564176100A9F0D125C VENDOR_STRING="0"
INCREMENT workshop.f90.sparc sunwlicd 6.000 01-jan-0 1 60A6D196920A31DE754C VENDOR_STRING="0"
INCREMENT workshop.visu.sparc sunwlicd 6.000 01-jan-0 1 4086417697680A6FF724 VENDOR_STRING="0"
INCREMENT workshop.tools.sparc sunwlicd 6.000 01-jan-0 1 A0267136826913D6174B VENDOR_STRING="0"
INCREMENT workshop.teamware.sparc sunwlicd 6.000 01-jan-0 1 F0C6215621E7240D8F19 VENDOR_STRING="0"
INCREMENT workshop.mpmt.sparc sunwlicd 6.000 01-jan-0 1 A08661664484AF0CD04D VENDOR_STRING="0"     


谨以此贴怀念远走深圳的毛建民先生,是他和徐先生一道开创了我所修改hostid的新局面.^_^.
感谢本论坛的ice先生,还有diag等等热心朋友.

I Love ChinaUnix.net.

012.JPG (26.32 KB, 下载次数: 93)

012.JPG

013.JPG (23.33 KB, 下载次数: 92)

013.JPG

作者: Richard_Shen    时间: 2003-08-24 15:47
标题: 修改SUN工作站hostid不完全参考手册

001.JPG (23.32 KB, 下载次数: 92)

001.JPG

006.JPG (41.31 KB, 下载次数: 83)

006.JPG

作者: 晨雨    时间: 2003-08-24 19:31
标题: 修改SUN工作站hostid不完全参考手册
有forte c++6  for x86的license没???
作者: diag    时间: 2003-08-24 20:03
标题: 修改SUN工作站hostid不完全参考手册
上面的lic 也是学习用的。。只有一个用户。
作者: Richard_Shen    时间: 2003-08-24 20:51
标题: 修改SUN工作站hostid不完全参考手册
sorry,没有x86版的。
作者: 南非蜘蛛    时间: 2003-08-24 21:44
标题: 修改SUN工作站hostid不完全参考手册
网上有forte c++6 for x86的算号程序,找找吧
作者: 烈火青    时间: 2003-08-25 09:25
标题: 修改SUN工作站hostid不完全参考手册

作者: Richard_Shen    时间: 2003-08-25 20:27
标题: 修改SUN工作站hostid不完全参考手册
[quote]原帖由 "diag"]上面的lic 也是学习用的。。只有一个用户。[/quote 发表:
     

其实一台机器一个用户的license就够了,我们局域网上十几台blade150全是一个hostid,够用了吧?
作者: lqy009    时间: 2003-08-26 10:01
标题: 修改SUN工作站hostid不完全参考手册
非常好,找到了以前想找的东西。
作者: akai_feng    时间: 2003-08-26 10:24
标题: 修改SUN工作站hostid不完全参考手册
原帖由 "Richard_Shen" 发表:
   

其实一台机器一个用户的license就够了,我们局域网上十几台blade150全是一个hostid,够用了吧?
   

够牛,难道不会有冲突吗?
作者: diag    时间: 2003-08-26 12:25
标题: 修改SUN工作站hostid不完全参考手册
不会。IP 不样。。

SET LICENSE—也SET 自己机器上的。。
作者: ultraJerry    时间: 2003-08-31 19:54
标题: 修改SUN工作站hostid不完全参考手册
用楼主的临时修改法,在sun Blade2000上通过,爽,感谢楼主提供了一篇好文章。
   我感觉临时修改法用起来比较安全,一般情况下就足够用了,为什么非要永久更该呢,小弟不才,请高手指点。。。。。。
作者: ewebboy    时间: 2003-08-31 23:57
标题: 修改SUN工作站hostid不完全参考手册
不要永久修改这样这好!
如果你只安装一个商业软件!
其它软件怎么办?
作者: whycugb    时间: 2003-09-01 09:35
标题: 修改SUN工作站hostid不完全参考手册
对呀,是不是安装一个爱国版商业软件,都要改一次hostid, 这样安装第二个软件,第一个软件还好使吗!!
作者: Richard_Shen    时间: 2003-09-05 19:44
标题: 修改SUN工作站hostid不完全参考手册
原帖由 "ewebboy" 发表:
不要永久修改这样这好!
如果你只安装一个商业软件!
其它软件怎么办?
   



    先要搞清楚,临时修改的原理就是这是进操作系统后修改那两个文件/dev/mem和/dev/ksym,这也是系统取hostid的入口,所以,对任何应用软件都是有效的。
    只是在系统初起时提示的是本来的hostid,其他情况下都是新的hostid,放心改吧。
作者: raja    时间: 2003-09-06 00:33
标题: 修改SUN工作站hostid不完全参考手册
呵呵,以前有个小工具
作者: boywhocools    时间: 2003-09-07 19:47
标题: 修改SUN工作站hostid不完全参考手册
请问楼主,能否给小弟一个workshop6的安装盘或文件?或请提供一个ftp 地址下载,好吗?我想很多同志都在找。boywhocools@163.com
谢谢!
作者: zukii618    时间: 2013-11-22 13:50
blade2500修改有哪位大神试过?solaris10是不是不能修改hostid

作者: zukii618    时间: 2013-11-25 15:26
回复 1# Richard_Shen


   谢谢,大神指点!B2500测试中。。。
作者: watchsat    时间: 2013-11-28 22:43
Richard_Shen 发表于 2003-08-24 00:45
Step10: OK        80        fff55fd9                c!         
【第一个字节一般不推荐修改,如果一定要改,好像也是没有问题的。】


第一個字元是Server Model type, 是不能修改的!!!

用hid軟改就沒這個限制了...
作者: watchsat    时间: 2013-11-28 22:49
有興趣的朋友可以來這參考, bookmark它十多年了:



http://www.squirrel.com/squirrel/sun-stuff.html
作者: er12341    时间: 2014-07-09 15:27
watchsat:
     请问有没有Forte C 6u1 x86的license
作者: watchsat    时间: 2014-07-12 00:20
應該沒了, 幾年前丟了一大箱Sun的CD & License, 沒用了...
作者: er12341    时间: 2014-07-12 00:56
Sun was down, What a history is gone!




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2