2013-07-21 36 views
4

我有一个设备树覆盖:BBB - 自动加载设备树覆盖上启动

/dts-v1/; 
/plugin/; 

/{ 
    compatible = "ti,beaglebone", "ti,beaglebone-black"; 
    part-number = "mousetraps"; 
    version = "00A1"; 

    /* https://github.com/derekmolloy/boneDeviceTree/blob/master/docs/BeagleboneBlackP9HeaderTable.pdf */ 
    [email protected] { 
      target = <&am33xx_pinmux>; 
      __overlay__ { 
        mousetrap_pins: pinmux_mousetrap_pins { 
          pinctrl-single,pins = < 
            0x070 0x2f /* P9_11 30 INPUT MODE7 none */ 
            0x074 0x2f /* P9_13 31 INPUT MODE7 none */ 
            0x040 0x2f /* P9_15 48 INPUT MODE7 none */ 
            0x15c 0x2f /* P9_17 05 INPUT MODE7 none */ 
          >; 
        }; 
      }; 
    }; 

    [email protected] { 
      target = <&ocp>; 
      __overlay__ { 
        test_helper: helper { 
          compatible = "bone-pinmux-helper"; 
          pinctrl-names = "default"; 
          pinctrl-0 = <&mousetrap_pins>; 
          status = "okay"; 
        }; 
      }; 
    }; 
}; 

,我可以成功地加载:

echo mousetraps:00A1 >/sys/devices/bone_capemgr.8/driver/bone_capemgr.8/slots ; dmesg | grep bone 

我如何配置BBB /埃以在启动时自动加载它?

更具体地说,我怎么能勾dtbo文件到正常的设备树加载机制?我知道我可以将echo添加到一个linux初始化脚本中,但似乎必须有一些能够触发加载dtbo文件的东西。要做到这一点

回答

3

一种方法是将dtbo复制到/lib/firmware和修改capemgr.extra_override参数在内核bootargs(在uEnv.txt)指向dtbo文件。该技术还需要修改/arch/arm/boot/dts/am335-bone-common.dtsi文件。详情请点击这里discussion

注意,装载从文件系统设备树覆盖,似乎与在beaglebone黑色最近的内核(从官方资料库)是一个问题明确。为了克服这个,要编译覆盖的另一种方法被描述here

+0

关于在引导时加载设备树叠加层的问题,请参见[FBTFT BeagleBone Black-在引导时启用叠加](https://github.com/notro/fbtft/wiki/BeagleBone-Black#enable-overlay特技的引导)。 –

3

如先前建议 您可以在引用您的新覆盖的uEnv.txt 添加参数以下字符串添加到的uEnv.txt

nano /mnt/boot/uEnv.txt 

#add this to the end of the single line of uEnv.txt: 

capemgr.enable_partno=mousetraps 

the full process is described here

+1

有一件事你不应该忘记,使用Debian,当我需要的选项添加到capemgr文件: '纳米的/ etc /默认/ capemgr' 然后在您的情况,添加: 'CAPE =捕鼠器:00A1' Ps。在beaglebone上,版本通常是:“00A0”。 – danger89

0

这到底工作对我来说与

  • BeagleBone黑色REV C
  • 的Debian 8.7 2017年3月19日4GB SD的IoT从latest-images
  • 内核4.4。68 TI-R106

link provided通过@克雷格 - 麦昆和使用该device tree overlay example

/boot/uboot/uEnv.txt文件(DM-GPIO-Test是我覆盖的名称):

cmdline=coherent_pool=1M cape_universal=enable bone_capemgr.enable _partno=DM-GPIO-Test noapic 

创建/etc/initramfs-tools/hooks/dtbo

#!/bin/sh 
set -e 
. /usr/share/initramfs-tools/hook-functions 

# Copy Device Tree fragments 
mkdir -p "${DESTDIR}/lib/firmware" 
cp -p /lib/firmware/*.dtbo "${DESTDIR}/lib/firmware/" 

使其可执行:

sudo chmod +x /etc/initramfs-tools/hooks/dtbo 

备份的initrd:

sudo cp /boot/initrd.img-4.4.68-ti-r106 /boot/initrd.img-4.4.68-ti-r106.bak 

更新的initrd:

/opt/scripts/tools/developers/update_initrd.sh 

重启

sudo reboot 

检查它已经加载:

[email protected]:/home/debian# cat /sys/devices/platform/bone_capemgr/slots 
0: PF---- -1 
1: PF---- -1 
2: PF---- -1 
3: PF---- -1 
4: P-O-L- 0 Override Board Name,00A0,Override Manuf,DM-GPIO-Test 
相关问题