smartmontools keresztfordítás ARM-ra Ubuntu alatt

A D-Link DNS-320-amba (1, 2, 3) betettem az A-DATA S599 SSD-met (1, 2). Csendesebb, nem pörög stb. Sajnos a NAS firmware által biztosított smartctl régi, mint az országút:


/usr/bin # smartctl
smartctl version 5.38 [arm-none-linux-gnueabi] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

Ebből kifolyólag mindenféle hülyeségeket ír az SSD-re (nem ismeri):

smartctl 5.38
smartctl 5.38

/usr/bin # smartctl -d marvell -a /dev/sda
smartctl version 5.38 [arm-none-linux-gnueabi] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF INFORMATION SECTION ===
Device Model:     ADATA SSD S599 128GB
Serial Number:    10460000000000000019
Firmware Version: 3.4.6
User Capacity:    120,034,123,776 bytes
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   8
ATA Standard is:  Not recognized. Minor revision code: 0x28
Local Time is:    Mon Apr 21 12:33:57 2014 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

Gondoltam, hogy kéne pörgetni egy új smartmontools-t. Nyilván ARM-ra. Feltettem a 'gcc-arm-linux-gnueabi'
csomagot:


apt-get install gcc-arm-linux-gnueabi

Majd:


./configure --host=arm-none-linux-gnueabi

De nem találta a fordítót:


[...]
checking for arm-none-linux-gnueabi-g++... no
checking for arm-none-linux-gnueabi-c++... no
checking for arm-none-linux-gnueabi-gpp... no
checking for arm-none-linux-gnueabi-aCC... no
checking for arm-none-linux-gnueabi-CC... no
checking for arm-none-linux-gnueabi-cxx... no
checking for arm-none-linux-gnueabi-cc++... no
checking for arm-none-linux-gnueabi-cl.exe... no
checking for arm-none-linux-gnueabi-FCC... no
checking for arm-none-linux-gnueabi-KCC... no
checking for arm-none-linux-gnueabi-RCC... no
checking for arm-none-linux-gnueabi-xlC_r... no
checking for arm-none-linux-gnueabi-xlC... no
[...]

Egy rövid keresés után meglett a megoldás. Telepítettem a /opt-ba a https://sourcery.mentor.com/GNUToolchain/ oldalról letöltött "arm-2013.11-33-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2"-t, majd beállítva a $PATH-ot (export PATH=$PATH:/opt/arm-2013.11/bin/), futtattam a konfigurálást újra:


./configure --host=arm-none-linux-gnueabi

smartmontools-6.2 configuration:
host operating system:  arm-none-linux-gnueabi
C++ compiler:           arm-none-linux-gnueabi-g++
C compiler:             arm-none-linux-gnueabi-gcc
preprocessor flags:     
C++ compiler flags:     -g -O2 -Wall -W
C compiler flags:       -g -O2
linker flags:           
[...]

Ezúttal már majdnem jó volt, de static-ot kellett volna inkább fordítani:


./configure --host=arm-none-linux-gnueabi LDFLAGS=-static

smartmontools-6.2 configuration:
host operating system:  arm-none-linux-gnueabi
C++ compiler:           arm-none-linux-gnueabi-g++
C compiler:             arm-none-linux-gnueabi-gcc
preprocessor flags:     
C++ compiler flags:     -g -O2 -Wall -W
C compiler flags:       -g -O2
linker flags:           -static
[...]

A binárisokat felmásolva a NAS-ra, immár sokkal jobb lett a kép:

smartctl 6.2
smartctl 6.2

/usr/bin # ./smartctl -d marvell -a /dev/sda
smartctl 6.2 2013-07-26 r3841 [armv5tejl-linux-2.6.22.18] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     SandForce Driven SSDs
Device Model:     ADATA SSD S599 128GB
Serial Number:    10460000000000000019
LU WWN Device Id: 5 000000 000000019
Firmware Version: 3.4.6
User Capacity:    120,034,123,776 bytes [120 GB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    Solid State Device
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS T13/1699-D revision 6
SATA Version is:  SATA 2.6, 3.0 Gb/s
Local Time is:    Mon Apr 21 12:32:36 2014 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

\o/