hmcode烧入

hmcode是申威架构独有的技术,继承自alpha。

1、配置hmcode烧入环境

​ 为了能够使用hmcode烧入相关的一系列软件工具,我们需要一个Linux操作系统以及一个java环境。

​ 创建一台虚拟机,安装java软件包,将mt.tgz文件解压到/root目录下,配置环境变量:

1
2
3
4
5
6
7
8
9
$ tar xvf mt.tgz -C /root
$ ls
Maintance Maintance-6a
$ echo "# for 6A " >> /etc/bashrc
$ echo "export PATH=$PATH:/root/Maintance-6a/:/root/Maintance-6a/bin:/root/Maintance-6a/bin/2f:/root/Maintance-6a/swich " >> /etc/bashrc
$ echo "export CLASSPATH=/root/Maintance-6a/classes/server_md.jar:/root/Maintance-6a/classes/2F.jar:/root/Maintance-6a/classes/2F1.jar:/root/Maintance-6a/classes/comm.jar:." >> /etc/bashrc
$ source
$ echo $PATH
$ java -v

​ 检查是否配置成功:

1
2
$ readme
client version 2.17

2、扫描服务器维护端口号

保证服务器为正常开启状态,关闭笔记本wifi。

注意:在这里务必保证你的网络设置是正确的,虚拟机使用桥接模式,同时设置ip到同一网段(192.168.1.x),一般推荐为192.168.1.1或192.168.1.2。

1
2
3
$ ifconfig eth0 192.168.1.2
$ ip addr
$ ping bmcx

​ 连接服务器维护端口,端口bmc号(可以认为是一个固定的服务器ip)可以通过打开服务器机盖查看,也可通过脚本扫描。

1
2
3
$ ./bmc.sh 0
$ ./bmc.sh 100
$ ./bmc.sh 200

后面的数字代表的意思是从哪个端口号开始扫描,灵活的使用可以缩短扫描时间。

​ 获取到bmc号(假设为x)之后,将这个bmc号配置到hosts :

1
2
$ echo "192.168.1.x bmcx" >> /etc/hosts
$ ping bmcx

3、烧入hmcode

​ 配置好环境之后,烧入就简单多了,保持开机状态,烧入后重启:

1
2
$ loadhmcode -o x:0:0:0 -f hmcode.nh
$ reboot

​ 正确烧入后运行结果如下:

hmcode烧入结果

4、检查烧入结果

4.1、查看hmcode烧入情况

1
$ rflash -o x:0:0:0 -a 0x80000 -l 0x100 -b

读取CPU的flash中HMCODE文件的256个字节,判断HMCODE文件是否正确烧入。

查看HMCODE文件可以通过genius disk工具打开对应hmcode.nh文件。

注意:实际操作中可能会遇到烧写hmcode.nh之后内存地址0被刷掉的情况,这个时候查看配置文件

1
$ rflash -o x:0:0:0 -a 0x0 -l 0x100 -b

如果出现问题则需要重新烧写。

重新烧写:

1
$ loadflash -o x:0:0:0 -a 0 -f config_srom_eco.bin

重启服务器,烧入成功。