自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

聊聊Linux 運(yùn)行時設(shè)備樹

系統(tǒng) Linux
在根文件系統(tǒng)中查看設(shè)備樹,是一種不錯的調(diào)試手段。因此查看板子中真實(shí)生效的設(shè)備樹配置信息是很重要的。

在根文件系統(tǒng)中查看設(shè)備樹,是一種不錯的調(diào)試手段。因?yàn)楹芏鄷r候會出現(xiàn)你修改了 dts 文件,并且也編譯了新的 dtb,但是下載到板子上的還是以前的 dtb,因此查看板子中真實(shí)生效的設(shè)備樹配置信息是很重要的。

1、設(shè)備樹原始 dtb 格式

在如下目錄,fdt 就是我們的 設(shè)備樹*.dtb文件

/sys/firmware/fdt     //原始dtb文件

執(zhí)行以下指令可看

hexdump -C /sys/firmware/fdt

這個命令打開后是十六進(jìn)制模式,如圖:

這樣是很難看到真實(shí)配置的,可以把 fdt 弄出來,放到 ubuntu 中,使用 Linux 源碼自帶的 DTC 工具反編譯,查看真實(shí)的配置。反編譯命令為

/script/dtc/dtc -I dtb -O dts -o xxx.dts xxx.dtb

DTS 是設(shè)備樹源碼文件,DTB 是將 DTS 編譯以后得到的二進(jìn)制文件。將 .c 文件編譯為 .o 需要用到 gcc 編譯器,那么將.dts 編譯為.dtb 需要什么工具呢?需要用到 DTC 工具!反編譯也是這個工具,反編譯后可以看到方便查看的設(shè)備樹,字符串會恢復(fù),數(shù)字會變成十六進(jìn)制格式。

在 u-boot 啟動內(nèi)核時,會將 dtb 文件的內(nèi)存地址傳遞給內(nèi)核,并將其所占內(nèi)存保留;因此,我們在內(nèi)核啟動后,訪問該內(nèi)存,獲得原始的 dtb。

2、設(shè)備樹目錄結(jié)構(gòu) dtb 格式

/sys/firmware/devicetree

以目錄結(jié)構(gòu)程現(xiàn)的 dtb 文件, 根節(jié)點(diǎn)對應(yīng) base 目錄, 每一個節(jié)點(diǎn)對應(yīng)一個目錄, 每一個屬性對應(yīng)一個文件:

在這里你就可以看到你配置的設(shè)備樹節(jié)點(diǎn)信息,字符串使用 cat,數(shù)字使用 xxd 、hexdump 命令:

3、內(nèi)核中現(xiàn)存的所有 platform_device

/sys/devices/platform 

系統(tǒng)中所有的 platform_device, 有來自設(shè)備樹的, 也有來有 .c 文件中注冊的。

對于來自設(shè)備樹的 platform_device,可以進(jìn)入 /sys/devices/platform/<設(shè)備名>/of_node 查看它的設(shè)備樹屬性。

對于有 of_node 屬性的 platform_device,證明其來源于 dtb。

note:/proc/device-tree 是鏈接文件, 指向 /sys/firmware/devicetree/base

以上是 Linux 原生的節(jié)點(diǎn),可以供我們使用。如果你用的芯片是某個廠家,這個廠家客制化的時候會增加一些調(diào)試節(jié)點(diǎn),你可以很方便的在 IC 廠商增加的調(diào)試節(jié)點(diǎn)中查看設(shè)備樹信息。

重要補(bǔ)充:

Linux 常用的文件系統(tǒng)有三個:procfs、sysfs、debugfs

procfs:該文件系統(tǒng)主要用來反饋內(nèi)核的信息,包括系統(tǒng)中所有的中斷、進(jìn)程信息都可以在這里查看。掛載在 /proc/...

sysfs:該文件系統(tǒng)主要是和驅(qū)動強(qiáng)相關(guān),會反饋所有的驅(qū)動信息,以目錄形式顯示。掛載在 /sys/...

debugfs:該文件系統(tǒng)掛載在 /sys/kernel/debug/... ,主要用來 debug。

責(zé)任編輯:姜華 來源: 嵌入式Linux系統(tǒng)開發(fā)
相關(guān)推薦

2024-01-29 08:07:42

FlinkYARN架構(gòu)

2015-07-20 15:44:46

Swift框架MJExtension反射

2017-01-19 20:28:44

2020-04-06 11:47:44

Linux命令腳本

2024-03-21 09:15:58

JS運(yùn)行的JavaScrip

2019-07-12 09:30:12

DashboardDockerDNS

2021-09-11 15:38:23

容器運(yùn)行鏡像開放

2024-04-30 14:09:00

代碼APIRust

2019-10-14 09:14:37

Linuxbash命令

2021-08-18 08:32:09

代碼運(yùn)行時間示波器

2013-11-26 16:49:55

Android開發(fā)運(yùn)行時KitKat

2020-12-07 13:31:43

GoMutex開發(fā)者

2023-01-03 09:10:21

2023-07-28 10:42:43

2024-03-20 10:46:00

云原生容器

2021-06-24 10:28:19

uptimed命令Linux

2023-02-12 12:00:57

2023-08-29 08:20:35

Kubernete跨云容器

2021-08-27 00:21:19

JSJust源碼

2022-12-30 08:08:30

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號