1.介绍
服务器上使用broadcom raid
卡,不可避免要使用到storelib
代码。这一部分是由ami
完整提供或者博通提供代码自行编译集成到ast2500/ast2600
平台BMC
中.
针对一般性的开发,依托ami
代码,然后集成开发功能。但是如果是新功能导入而ami
还未导入的时候,可以编译使用storelibtest
做先期功能验证,然后导入到bmc
中。
2.编译
以SAS35_MRStoreLibTest_GIT_7.30-2.96-DCSG01698732
为例子,并且使用530-8i raid
卡,基于ast2600
平台。
2.1 修改代码
1.修改Makefile
修改:SAS35_MRStoreLibTest_GIT_7.30-2.96-DCSG01698732/common_storelib_unf_test_rel/StoreLibTest/StoreLibTest/Source/app_util/common_storelib_unf_test/build/ARM/Makefile
内容,替换CXX
工具为workspace/tool
下的交叉编译工具:
2.修改加载so库路径
- 1.查看
BMC
的libstorelib.so
路径:
- 2.修改
SAS35_MRStoreLibTest_GIT_7.30-2.96-DCSG01698732/common_storelib_unf_test_rel/StoreLibTest/StoreLibTest/Source/app_util/common_storelib_unf_test/src/storelibtest.c
代码:
2.2 编译代码
编译可以使用如下命令:
$ make cfg=debug mode=i2c arch=arm
3.使用工具
3.1 工具置入BMC
中
BMC
文件系统可以使用nfs
挂载到编译机上,然后将编译好的storelibtest
工具放置到nfs
目录中。例如:
# mount -o nolock -t nfs ip:/xx/workspace/Build/output/ImageTree/etc /etc
# mount -o nolock -t nfs ip:/xx/workspace/Build/output/ImageTree/usr /usr
# sudo cp storelibtest /xx/workspace/Build/output/ImageTree/usr/local/bin
3.2 扫描raid
卡bus
可以使用i2cdetect -y busid
扫描i2c
地址:
如上,可以看到有bus 16
与bus 17
均存在0x1c
(7 bit地址,8bit 为0x38
),也就是说有接入2张博通raid
卡设备。
3.3 使用工具
1.探测单卡
可以使用./storelibtest 17 28
命令测试单张raid
卡。
# cd //usr/local/bin
# ./storelibtest 17 28 //17 为bus id, 0x1c=28,为7 bit raid卡i2c地址
2.探测双raid卡
可以使用如下命令探测2张raid
卡:
# ./storelibtest 16 28 17 28
之后,可以基于storelibtest
工具开发自己的oem
功能。