1. 程式人生 > >Android使用ethtool工具查詢/設定乙太網網絡卡狀態

Android使用ethtool工具查詢/設定乙太網網絡卡狀態

一、編譯ethtool工具

Android命令列中不含ethtool工具,所以需要自己編譯。
1、下載最新原始碼:ethtool-4.5.tar.xz

原始碼地址:

2、解壓
把ethtool-4.5.tar.xz拷貝到Android/external/目錄,解壓:

tar xvf ethtool-4.5.tar.xz

3、編譯
編寫Android.mk檔案:

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)

define all-c-files-under
	$(patsubst ./%,%, $(shell find $(LOCAL_PATH) -name "platform" -prune -o -name "*.c" -and -not -name ".*"))
endef
  
define all-subdir-c-files
$(call all-c-files-under,.)
endef

C_FILES := $(call all-subdir-c-files)


LOCAL_SRC_FILES := $(C_FILES:$(LOCAL_PATH)/%=%)

LOCAL_SHARED_LIBRARIES := \
		libcutils\
		libutils\
		libcrypto


LOCAL_C_INCLUDES :=  $(KERNEL_HEADERS)

LOCAL_CFLAGS := -DANDROID_CHANGES -DCHAPMS=1 -DMPPE=1 -Iexternal/openssl/include

LOCAL_MODULE :=ethtool
LOCAL_MODULE_TAGS := optional

include $(BUILD_EXECUTABLE)

執行mm命令即可。

Install: out/target/product/ProductName/system/bin/ethtool


二、ethtool工具基本使用
查詢乙太網卡當前工作狀態:ethtool eth0

設定乙太網卡工作狀態為半雙工100M:ethtool -s eth0 speed 100 duplex half

三、編譯過程中的問題
編譯過程中肯定會報錯,不過都是些簡單問題,很好解決。
其中報錯誤的檔案有test-cmdline.c、test-common.c、test-features.c,既然是test工具,不編它們即可。