免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 15984 | 回复: 23
打印 上一主题 下一主题

修改SUN工作站hostid不完全参考手册 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-08-24 15:45 |只看该作者 |倒序浏览
注意:修改前一定要备份原来的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

论坛徽章:
0
2 [报告]
发表于 2003-08-24 15:47 |只看该作者

修改SUN工作站hostid不完全参考手册

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

001.JPG

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

006.JPG

论坛徽章:
0
3 [报告]
发表于 2003-08-24 19:31 |只看该作者

修改SUN工作站hostid不完全参考手册

有forte c++6  for x86的license没???

论坛徽章:
0
4 [报告]
发表于 2003-08-24 20:03 |只看该作者

修改SUN工作站hostid不完全参考手册

上面的lic 也是学习用的。。只有一个用户。

论坛徽章:
0
5 [报告]
发表于 2003-08-24 20:51 |只看该作者

修改SUN工作站hostid不完全参考手册

sorry,没有x86版的。

论坛徽章:
0
6 [报告]
发表于 2003-08-24 21:44 |只看该作者

修改SUN工作站hostid不完全参考手册

网上有forte c++6 for x86的算号程序,找找吧

论坛徽章:
0
7 [报告]
发表于 2003-08-25 09:25 |只看该作者

修改SUN工作站hostid不完全参考手册

论坛徽章:
0
8 [报告]
发表于 2003-08-25 20:27 |只看该作者

修改SUN工作站hostid不完全参考手册

[quote]原帖由 "diag"]上面的lic 也是学习用的。。只有一个用户。[/quote 发表:
     

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

论坛徽章:
0
9 [报告]
发表于 2003-08-26 10:01 |只看该作者

修改SUN工作站hostid不完全参考手册

非常好,找到了以前想找的东西。

论坛徽章:
0
10 [报告]
发表于 2003-08-26 10:24 |只看该作者

修改SUN工作站hostid不完全参考手册

原帖由 "Richard_Shen" 发表:
   

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

够牛,难道不会有冲突吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP