smartmontools-5.43交叉编译Smartctl

嵌入式系统的sata盘经常故障,需要使用smatctl工具监控和诊断sata故障。

1. 从网上下载开源smartmontools-5.43包。

2. 修改makefile进行交叉编译。

    由于软件包中已经包含Makefile.am,Makefile.in。直接运行

    automake --add-missing

   生成Makefile。

3. 修改Makefile中交叉编译工具

COMPILEPRE=/usr/local/arm/4.4.3/bin

#CC = gcc
#CCAS = gcc
CC = ${COMPILEPRE}/arm-linux-gcc-4.4.3
CCAS = ${COMPILEPRE}/arm-linux-gcc-4.4.3

CCASDEPMODE = depmode=gcc3
CCASFLAGS = -g -O2
CCDEPMODE = depmode=gcc3
CFLAGS = -g -O2
CPPFLAGS =

CXX = ${COMPILEPRE}/arm-linux-g++
CXXCPP = ${COMPILEPRE}/arm-linux-g++ -E

#CXX = g++
#CXXCPP = g++ -E

4. make 生成

报错:

/home/grape/s3c2440/tools/smartmontools-5.43/dev_interface.cpp:271: undefined reference to `clock_gettime'

查询发现少了librt 实时库。

5. 在交叉编译库中查找

# find / -name '*librt*'  
/usr/local/arm/4.4.3/arm-none-linux-gnueabi/sys-root/usr/lib/librt.so

6. 在Makefile添加

LIBS = /usr/local/arm/4.4.3/arm-none-linux-gnueabi/sys-root/usr/lib/librt.so

7. 重新make 成功,编译成功。并查看生成的smartctl。

file smartctl 
smartctl: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.3, for GNU/Linux 2.6.32, not stripped

8. 上载smartctl到开发版,查询stata:

# ./smartctl -h
smartctl 5.43 2012-06-30 r3573 [armv4tl-linux-4.15.0] (local build)
Copyright (C) 2002-12 by Bruce Allen, http://smartmontools.sourceforge.net

Usage: smartctl [options] device

============================================ SHOW INFORMATION OPTIONS =====

  -h, --help, --usage
         Display this help and exit

  -V, --version, --copyright, --license
         Print license, copyright, and version information and exit

  • 11
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值