首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何加载设备树覆盖

如何加载设备树覆盖
EN

Unix & Linux用户
提问于 2022-12-02 22:02:46
回答 1查看 1.1K关注 0票数 0

我知道这是一个话题,还有其他几篇文章。但是一个都没有?其中有一个被接受的答案,甚至一个有用的评论。但简而言之,如何加载设备树模块(而不重新编译内核)?

到目前为止,我可以找到以下方法:

  1. 在运行时加载,每个cat enI2C4.dtbo>/sys/kernel/config/device-tree/overlays
  2. 在引导过程中加载,在/boot/bootenv.txt和/或/boot/uEnv.txt中指定D6文件。在这两种情况下,内容都是(enI2C4.dtbo存储在/boot下):
代码语言:javascript
复制
overlays=enI2C4.dtbo

遗憾的是,他们中没有一个人为我工作:

  1. device-tree目录不存在,mkdir返回Operation not permitted。这个问题的大多数解决方案似乎都是编译自己的内核,我认为这并不是真正必要的,也不是我想要做的事情。
  2. 编辑/创建这两个文件之一似乎没有任何效果。我既不能在find /proc/device-tree/ -type f -exec head {} + | grep I2C中找到我的覆盖,dmesg也不返回任何特殊的内容。

我在这里错过了什么?是否有第三种选择,或者(可能是愚蠢的)东西,我在这里错过了?

作为背景和其他信息:

我试图通过以下方式在I2C4上启用i.MX 8M +:

代码语言:javascript
复制
$ lsb_release -a
Distributor ID: ampliPHY
Description:    ampliPHY GNU/Linux BSP-Yocto-NXP-i.MX8MP-PD22.1.0 (hardknott)
Release:        BSP-Yocto-NXP-i.MX8MP-PD22.1.0
Codename:       hardknott

.dts文件是:

代码语言:javascript
复制
/dts-v1/;

#include "imx8mp.dtsi" 

&i2c4 {
    clock-frequency = <400000>;
    pinctrl-names = "default", "gpio";
    status = "okay";
};

这里是/boot/bootenv.txt/boot/uEnv.txt文件都就位的引导程序(在挂载/引导/之后)。

代码语言:javascript
复制
[  OK  ] Mounted /boot.
[  OK  ] Reached target Local File Systems.
         Starting Create Volatile Files and Directories...
[  OK  ] Finished Create Volatile Files and Directories.
         Starting Network Name Resolution...
         Starting Network Time Synchronization...
[  OK  ] Started Network Name Resolution.
[  OK  ] Started Network Time Synchronization.
[  OK  ] Reached target Network.
[  OK  ] Reached target Host and Network Name Lookups.
[  OK  ] Reached target System Initialization.
[    6.550051] imx-sdma 30bd0000.dma-controller: sdma firmware not ready!
[    6.557338] imx-sdma 30bd0000.dma-controller: sdma firmware not ready!
[    6.564225] imx-sdma 30bd0000.dma-controller: sdma firmware not ready!
[    6.570968] imx-sdma 30bd0000.dma-controller: sdma firmware not ready!
[    6.577572] imx-sdma 30bd0000.dma-controller: sdma firmware not ready!
[    6.597437] imx-cdnhdmi sound-hdmi: snd_soc_register_card failed (-517)
[  OK  ] Started     6.605376] fsl-aud2htx 30cb0000.aud2htx: Unbalanced pm_runtime_enable!
;39mDaily Cleanup of Temporary Di[    6.613814] fsl-aud2htx 30cb0000.aud2htx: failed to init imx pcm dma: -517
rectories.
[  OK  ] Reached target System Time Set.
[  OK  ] Reached target System Time Synchronized.
[  OK  ] Reached target Timers.
[  OK  ] Listening on D-Bus System Message Bus Socket.
[  OK  ] Listening on PC/SC Smart Card Daemon Activation Socket.
         Starting sshd.socket.
[  OK  ] Started NFS status monitor for NFSv2/3 locking..
[  OK  ] Listening on sshd.socket.
[  OK  ] Reached target Sockets.
[  OK  ] Reached target Basic System.
         Starting Save/Restore Sound Card State...
[  OK  ] Started D-Bus System Message Bus.
[  OK  ] Started Start fan control, if configured.
[  OK  ] Started Linux Firmware Loader Daemon.
         Starting User Login Management...
         Starting Permit User Sessions...
[    6.927296] imx-sdma 30bd0000.dma-controller: firmware found.
         Starting OpenSS[    6.934041] imx-sdma 30bd0000.dma-controller: loaded firmware 4.6
H Key Generation...
[  OK  ] Finished Save/Restore Sound Card State.
[  OK  ] Finished Permit User Sessions.
[  OK  ] Finished OpenSSH Key Generation.
[  OK  ] Reached target Sound Card.
[  OK  ] Started Getty on tty1.
[  OK  ] Started Serial Getty on ttymxc0.
[  OK  ] Reached target Login Prompts.
[  OK  ] Started User Login Management.
[  OK  ] Reached target Multi-User System.
[    7.198435] IPv6: ADDRCONF(NETDEV_CHANGE): can0: link becomes ready
[    7.204785] IPv6: ADDRCONF(NETDEV_CHANGE): can1: link becomes ready

 ____   _   _ __   __ _____  _____   ____
|  _ \ | | | |\ \ / /|_   _|| ____| / ___|
| |_) || |_| | \ V /   | |  |  _|  | |
|  __/ |  _  |  | |    | |  | |___ | |___
|_|    |_| |_|  |_|    |_|  |_____| \____|

    _     __  __  ____   _      ___  ____   _   _ __   __
   / \   |  \/  ||  _ \ | |    |_ _||  _ \ | | | |\ \ / /
  / _ \  | |\/| || |_) || |     | | | |_) || |_| | \ V /
 / ___ \ | |  | ||  __/ | |___  | | |  __/ |  _  |  | |
/_/   \_\|_|  |_||_|    |_____||___||_|    |_| |_|  |_|
EN

回答 1

Unix & Linux用户

发布于 2022-12-29 12:23:20

对于/sys/kernel/config/device-tree/overlays/,您应该有一个使用CONFIG_OF_CONFIGFS=y构建的内核(这不是一个上游特性,但在一些内核中可用)。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/727138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档