2013-07-21 166 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 
相關問題