我知道这是一个话题,还有其他几篇文章。但是一个都没有?其中有一个被接受的答案,甚至一个有用的评论。但简而言之,如何加载设备树模块(而不重新编译内核)?
到目前为止,我可以找到以下方法:
cat enI2C4.dtbo>/sys/kernel/config/device-tree/overlays。/boot/bootenv.txt和/或/boot/uEnv.txt中指定D6文件。在这两种情况下,内容都是(enI2C4.dtbo存储在/boot下):overlays=enI2C4.dtbo遗憾的是,他们中没有一个人为我工作:
device-tree目录不存在,mkdir返回Operation not permitted。这个问题的大多数解决方案似乎都是编译自己的内核,我认为这并不是真正必要的,也不是我想要做的事情。find /proc/device-tree/ -type f -exec head {} + | grep I2C中找到我的覆盖,dmesg也不返回任何特殊的内容。我在这里错过了什么?是否有第三种选择,或者(可能是愚蠢的)东西,我在这里错过了?
我试图通过以下方式在I2C4上启用i.MX 8M +:
$ 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文件是:
/dts-v1/;
#include "imx8mp.dtsi"
&i2c4 {
clock-frequency = <400000>;
pinctrl-names = "default", "gpio";
status = "okay";
};这里是/boot/bootenv.txt和/boot/uEnv.txt文件都就位的引导程序(在挂载/引导/之后)。
[ 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 /
/ ___ \ | | | || __/ | |___ | | | __/ | _ | | |
/_/ \_\|_| |_||_| |_____||___||_| |_| |_| |_|发布于 2022-12-29 12:23:20
对于/sys/kernel/config/device-tree/overlays/,您应该有一个使用CONFIG_OF_CONFIGFS=y构建的内核(这不是一个上游特性,但在一些内核中可用)。
https://unix.stackexchange.com/questions/727138
复制相似问题