《修改SUN工作站hostid不完全参考手册.doc》由会员分享,可在线阅读,更多相关《修改SUN工作站hostid不完全参考手册.doc(12页珍藏版)》请在三一文库上搜索。
1、修改SUN工作站hostid不完全参考手册1 / 12注意:修改前一定要备份原来的hostid和Ethernet address信息。 一、永久修改法: 1、 查找eeprom地址修改 该方法对从station5、station20等等直到Blade100、Blade150系列都适用,注意操作过程中屏幕显示结果的细小差别,不要完全照搬。 以blade150solaris8为例,原始HOSTID为:83188869,Ethernet address:0:3:ba:18:88:69;拟改为80cf7afe。 Step1: Stop+a
2、 【进入OK状态】 Step2: OK show-devs 【按空格键找到包含eeprom的全路径名】 Step3: OK cd /pci1f,0/ebusc/eeprom1,0 &
3、#160; 注意不同的eeprom版本输出的eeprom路径名会不同,请以屏幕显示为准。 step4:OK .properties 【有些版本可能为.attributes】 找到address值fff58000 step5: OK fff58000 >physical step6: OK showstack step7:
4、 OK 2000 memmap step8: OK 1fd0+ step9: OK 30 dump 注意看附图中的输出结果,从fff55fd8开始各位的含义如下: 字节 地址 内容 0 fff55fd8 总为 01 - format/version number 1 fff55fd9 hostid的第一个字节【机器类型】 2-7 fff55fdaf ethernet address 8-b fff55fe0
5、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! 【第一个字节一般不推荐修改,如果一定要改,好像也是没有问题的
6、。】 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的第二、三、四字
7、节的值在作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即可。 上面的示例没有
8、修改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&
9、#160; 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 如果不改host
10、id的第一个字节,也可以直接尝试用下面的步骤修改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中的值
11、。所以修改后在机器reboot时提示的hostid仍是原来的hostid,进入系统后输入hostid命令显示的才是新的hostid值。 具体做法如下: step1:用系统中的计算器将你要改的83188869转换成10进制的(比如转换后是2199423081,对应的ASCII码是32313939343233303831); step2:然后在/etc/rc2.d/S20sysetup文件尾加入下段【也可以自己建一个以S20开头命名的文件】,修改前将copy一个备份文件bak_S20sysetup: #为C编译器临时修改hostid。Richard Shen,20
12、03/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状态,用bo
13、ot 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;
14、60; char obuf15; for (i=0; i<15; i+) obuf = '0' if (argc != 2) fprintf(stderr,
15、;"usage: %s hostidn",argv0); exit(1); sscanf(argv1,"%08x",&hid); sprintf(obuf,"%u", hid); /* should this
16、;be %010u ? */ printf("#!/bin/shn"); printf("# this script sets the hostid to %08xn",hid); printf("adb -w -k /dev/ksyms /dev/mem
17、;<<ENDn"); printf("hw_serial/W 0x"); for (i=0; i<4; i+) printf("%02x", obuf); printf("n");
18、160;printf("hw_serial+4/W 0x"); for (; i<8; i+) printf("%02x", obuf); printf("n"); printf("hw_serial+8/W 0x"
19、;); for (; i<12; i+) printf("%02x", obuf); printf("n"); printf("ENDn"); return(0); 详情请下载hid-1.7.4研究。 附一个forte6的license: SERVER&
20、#160;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
21、;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
22、60;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
23、60;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等等热心朋友.