溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

基于mips芯片,openwrt平臺如何交叉編譯htop

發布時間:2021-12-18 11:43:01 來源:億速云 閱讀:506 作者:小新 欄目:互聯網科技
# 基于MIPS芯片的OpenWRT平臺如何交叉編譯htop

## 前言

在嵌入式Linux系統中,資源監控工具對于系統維護和性能調優至關重要。htop作為top的增強版,提供了更直觀的進程監控體驗。本文將詳細介紹如何在OpenWRT平臺上為MIPS架構交叉編譯htop工具。

---

## 一、環境準備

### 1.1 硬件要求
- 支持MIPS架構的路由器/開發板
- 主機系統:推薦x86_64架構的Linux系統(Ubuntu/Debian等)

### 1.2 軟件依賴
```bash
sudo apt update
sudo apt install -y build-essential git subversion libncurses5-dev gawk \
     zlib1g-dev unzip python3 wget cmake

1.3 OpenWRT SDK獲取

根據目標設備芯片型號下載對應SDK(以MT7621為例):

wget https://downloads.openwrt.org/releases/21.02.1/targets/ramips/mt7621/openwrt-sdk-21.02.1-ramips-mt7621_gcc-8.4.0_musl.Linux-x86_64.tar.xz
tar -xvf openwrt-sdk-*.tar.xz
cd openwrt-sdk-*

二、交叉編譯工具鏈配置

2.1 環境變量設置

export STAGING_DIR=$(pwd)/staging_dir
export PATH=$PATH:$(pwd)/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin

2.2 驗證工具鏈

mipsel-openwrt-linux-gcc -v

應輸出類似信息:

gcc version 8.4.0 (OpenWrt GCC 8.4.0 r16325-88151b8303) 

三、htop源碼獲取與配置

3.1 獲取源碼

git clone https://github.com/htop-dev/htop.git
cd htop

3.2 生成交叉編譯配置

./autogen.sh

3.3 配置編譯參數

./configure \
    --host=mipsel-openwrt-linux \
    --prefix=/usr \
    --disable-unicode \
    --enable-static \
    CFLAGS="-I$STAGING_DIR/target-mipsel_24kc_musl/usr/include" \
    LDFLAGS="-L$STAGING_DIR/target-mipsel_24kc_musl/usr/lib"

關鍵參數說明: - --host:指定目標平臺 - --disable-unicode:禁用Unicode支持(減小體積) - CFLAGS/LDFLAGS:指定頭文件和庫路徑


四、解決依賴問題

4.1 常見錯誤處理

錯誤1:缺少ncurses庫

cp -r $STAGING_DIR/target-mipsel_24kc_musl/usr/include/ncurses* ./ncurses/

錯誤2:缺少libnl-genl

# 在OpenWRT SDK中編譯libnl
make package/libnl/compile V=s

4.2 手動指定庫路徑

export PKG_CONFIG_PATH=$STAGING_DIR/target-mipsel_24kc_musl/usr/lib/pkgconfig

五、編譯與安裝

5.1 執行編譯

make -j$(nproc)

5.2 檢查生成文件

file htop

應顯示:

htop: ELF 32-bit LSB executable, MIPS, MIPS32 rel2 version 1...

5.3 精簡二進制(可選)

mipsel-openwrt-linux-strip htop

六、部署到目標設備

6.1 傳輸文件

scp htop root@192.168.1.1:/usr/bin/

6.2 驗證運行

在設備終端執行:

htop -v

正常應輸出版本信息:

htop 3.2.1 - (C) 2004-2022 Hisham Muhammad

七、常見問題排查

7.1 運行時報錯

錯誤:缺少動態庫

解決方案:

# 在設備上安裝依賴
opkg update
opkg install libncurses

7.2 界面顯示異常

修改TERM環境變量:

export TERM=linux

八、進階優化

8.1 靜態編譯

修改configure參數:

LDFLAGS="-static -L$STAGING_DIR/..."

8.2 集成到OpenWRT固件

  1. 在SDK的package目錄創建htop目錄
  2. 編寫Makefile:
include $(TOPDIR)/rules.mk

PKG_NAME:=htop
PKG_VERSION:=3.2.1
PKG_RELEASE:=1

include $(INCLUDE_DIR)/package.mk

define Package/htop
  SECTION:=utils
  CATEGORY:=Utilities
  TITLE:=Interactive process viewer
  DEPENDS:=+libncurses
endef

define Package/htop/install
    $(INSTALL_DIR) $(1)/usr/bin
    $(INSTALL_BIN) $(PKG_BUILD_DIR)/htop $(1)/usr/bin/
endef

$(eval $(call BuildPackage,htop))

結語

通過本文的步驟,我們成功在OpenWRT平臺上為MIPS架構交叉編譯了htop工具。該過程涉及工具鏈配置、依賴管理和交叉編譯技巧,這些方法同樣適用于其他軟件的交叉編譯場景。建議在實際操作時根據具體芯片型號調整環境參數。

注意:不同OpenWRT版本可能需要調整SDK路徑和庫版本,建議參考官方文檔進行適配。 “`

(全文約1450字,實際字數可能因代碼塊格式略有差異)

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女