linux下讀寫u boot環境變數驗證

2021-10-08 21:55:13 字數 1721 閱讀 5997

uboou版本

u-boot 2018.01

核心版本

4.19.0-xilinx

作業系統

debian gnu/linux 8 (jessie)

使用工具

fw_printenv

uboot下可以通過命令訪問和修改環境變數,但有時候我們也需要在linux系統下訪問這些資料。為此u-boot為我們實現了一套工具fw_printenv。其原始碼在u-boot的u-boot/tools/env下。

dev:    size   erasesize  name

mtd0: 00500000 00001000 "qspi-boot"

mtd1: 00020000 00001000 "bootenv"

本次驗證了兩種方法,一種是在uboot中編譯原始碼得到fw_printenv工具,另外一種是apt-get安裝的方式;

驗證結果:經驗證以上兩種得到的fw_printenv工具覺能實現在linux下訪問修改uboot的環境變數。

1.進入u-boot目錄下,設定好交叉編譯環境

toolchain=/opt/toolchain/gcc-linaro-6.4.1-2017.11-x86_64_arm-linux-gnueabihf

export path=$path:$toolchain/bin

export arch=arm

export cross_compile=$toolchain/bin/arm-linux-gnueabihf-

2.進入u-boot/tools/env目錄,根據flash的分割槽對fw_env.config進行配置,env分割槽在mtd1;
# mtd device name       device offset   env. size       flash sector size       number of sectors       

/dev/mtd1 0x0000 0x20000 0x1000

3.返回到u-boot目錄,輸入make envtools,編譯得到可執行檔案fw_printenv

(uboot版本不一樣,編譯命令可能不同,有些為make env,具體見u-boot/tools/env目錄下的readme文件)

4.將u-boot/tools/env目錄下的fw_printenvfw_env.config檔案分別拷貝到linux下的**/usr/bin/etc**目錄 下,建立fw_printenv的軟鏈結fw_setenv,它們使用相同的程式,其功能取決於基本名稱;

ln -s /usr/bin/fw_printenv /usr/bin/fw_setenv
5.執行fw_printenv命令可以列印所有的uboot環境變數,指定環境變數fw_printenv -name ***x; 設定環境變數為fw_setenv *** yyy,方法類似uboot下的setenv,修改後會自動儲存;1.apt-get install u-boot-tools等待安裝完成;

2.在/etc下建立fw_env.config檔案,內容和方案一中一樣;

3.具體操作和方案一一樣;

Linux下訪問u boot環境變數簡介

uboot下可以通過命令訪問和修改環境變數,但是如果需要在linux系統下訪問這些資料該怎麼辦呢?其實uboot早就幫我們想好了。1 編譯fw printenv工具 在你使用的uboot 中用以下編譯指令 make env 這樣就可以編譯tools env下的 編譯出的fw printenv工具有讀...

Linux 環境下 硬碟讀寫速度測試之FIO

安裝fio 如果ioengine找不到軟體包,按說明操作 fio 命令不需要磁碟掛載。乙個磁碟經過fio 命令以後,再用就需要重新分割槽,掛載。fio 命令感覺是把磁碟格式化過一遍。多次測試fio 也對磁碟有傷害。指令 注意 nvme0n1的目錄 fio filename dev nvme0n1 d...

Linux下讀寫速度測試

一.檔案一次讀入速度 linux下讀檔案這東西最後都是要通過系統呼叫sys read fd,buf,count 來實現的,所以如果要提高速度,就是最簡單地呼叫sys read的封裝,比如直接用read 或fread 下面是我在linux下的幾個測試。首先建立乙個130m資料檔案 dd if dev ...