Just got my BBB 2 days ago, and immediately replace Angstrom with ArchLinux ARM following the procedures on the BBB page, and it boots up without any problems. I have a BeagleBone White works flawlessly with Archlinux ARM, but I am a total noob to Device Tree, so when I try to enable the GPIO following the video made by Derek Molloy, something is wrong.
First, I tried to compile DM-GPIO-Test.dts
$this->bbcode_second_pass_code('', '
/*
* Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Purpose License Version 2 as
* published by the Free Software Foundation
*
* Original from: github.com/jadonk/validation-scripts/blob/master/test-capemgr/
*
* Modified by Derek Molloy for the example on www.derekmolloy.ie
* that maps GPIO pins for the example
*/
/dts-v1/;
/plugin/;
/{
compatible = "ti,beaglebone", "ti,beaglebone-black";
part-number = "DM-GPIO-Test";
version = "00A0";
fragment@0 {
target = <&am33xx_pinmux>;
__overlay__ {
pinctrl_test: DM_GPIO_Test_Pins {
pinctrl-single,pins = <
0x078 0x07 /* P9_12 60 OUTPUT MODE7 - The LED Output */
0x184 0x2f /* P9_24 15 INPUT MODE7 none - The Button Input */
0x034 0x37 /* P8_11 45 INPUT MODE7 pullup - Yellow Wire */
0x030 0x27 /* P8_12 44 INPUT MODE7 pulldown - Green Wire */
0x024 0x2f /* P8_13 23 INPUT MODE7 none - White Wire */
/* OUTPUT GPIO(mode7) 0x07 pulldown, 0x17 pullup, 0x?f no pullup/down */
/* INPUT GPIO(mode7) 0x27 pulldown, 0x37 pullup, 0x?f no pullup/down */
>;
};
};
};
fragment@1 {
target = <&ocp>;
__overlay__ {
test_helper: helper {
compatible = "bone-pinmux-helper";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_test>;
status = "okay";
};
};
};
};
')
But I dont have dtc on board, so I installed the dtc-overlay package(in alarm repository) and compiled the *.dts to *.dtbo.
The next step is to put the *.dtbo file into /lib/firmware/ then export the custom overlay. Somehow I got an error message when I try to echo the file:
$this->bbcode_second_pass_code('', '
[root@alarm firmware]# echo DM-GPIO-Test > $SLOTS
-bash: echo: write error: Invalid argument
')
And the dmesg shows the error:
$this->bbcode_second_pass_code('', '
[ 116.588550] bone-capemgr bone_capemgr.4: part_number 'DM-GPIO-Test', version 'N/A'
[ 116.599728] bone-capemgr bone_capemgr.4: slot #7: generic override
[ 116.606427] bone-capemgr bone_capemgr.4: bone: Using override eeprom data at slot 7
[ 116.614577] bone-capemgr bone_capemgr.4: slot #7: 'Override Board Name,00A0,Override Manuf,DM-GPIO-Test'
[ 116.628648] bone-capemgr bone_capemgr.4: slot #7: Requesting part number/version based 'DM-GPIO-Test-00A0.dtbo
[ 116.639361] bone-capemgr bone_capemgr.4: slot #7: Requesting firmware 'DM-GPIO-Test-00A0.dtbo' for board-name 'Override Board Name', version '00A0'
[ 116.659966] bone-capemgr bone_capemgr.4: slot #7: dtbo 'DM-GPIO-Test-00A0.dtbo' loaded; converting to live tree
[ 116.673128] of_resolve: Could not find symbol 'ocp'
[ 116.678438] bone-capemgr bone_capemgr.4: slot #7: Failed to resolve tree
')
Why is the 'ocp' symbol disappeared? I have no idea how to bring this symbol back, and I've searching this issue for all day but no one seems to have this problem....
And also, I've noticed some error of bone-capemgr during boot up:
$this->bbcode_second_pass_code('', '
[ 2.079165] bone-capemgr bone_capemgr.4: loader: before slot-6 BB-BONELT-HDMIN:00A0 (prio 2)
[ 2.088092] bone-capemgr bone_capemgr.4: loader: check slot-6 BB-BONELT-HDMIN:00A0 (prio 2)
[ 2.114903] bone-capemgr bone_capemgr.4: loader: after slot-4 BB-BONE-EMMC-2G:00A0 (prio 1)
[ 2.123764] bone-capemgr bone_capemgr.4: loader: after slot-5 BB-BONELT-HDMI:00A0 (prio 1)
[ 2.132533] bone-capemgr bone_capemgr.4: loader: check slot-6 BB-BONELT-HDMIN:00A0 (prio 2)
[ 2.149243] bone-capemgr bone_capemgr.4: slot #4: Requesting part number/version based 'BB-BONE-EMMC-2G-00A0.dtbo
[ 2.166641] bone-capemgr bone_capemgr.4: slot #4: Requesting firmware 'BB-BONE-EMMC-2G-00A0.dtbo' for board-name 'Bone-LT-eMMC-2G', version '00A0'
[ 2.196249] bone-capemgr bone_capemgr.4: failed to load firmware 'BB-BONE-EMMC-2G-00A0.dtbo'
[ 2.205235] bone-capemgr bone_capemgr.4: loader: failed to load slot-4 BB-BONE-EMMC-2G:00A0 (prio 1)
[ 2.214972] bone-capemgr bone_capemgr.4: slot #5: Requesting part number/version based 'BB-BONELT-HDMI-00A0.dtbo
[ 2.225778] bone-capemgr bone_capemgr.4: loader: check slot-6 BB-BONELT-HDMIN:00A0 (prio 2)
[ 2.243629] bone-capemgr bone_capemgr.4: slot #5: Requesting firmware 'BB-BONELT-HDMI-00A0.dtbo' for board-name 'Bone-Black-HDMI', version '00A0'
[ 2.299341] bone-capemgr bone_capemgr.4: failed to load firmware 'BB-BONELT-HDMI-00A0.dtbo'
[ 2.308220] bone-capemgr bone_capemgr.4: loader: failed to load slot-5 BB-BONELT-HDMI:00A0 (prio 1)
[ 2.317810] bone-capemgr bone_capemgr.4: loader: check slot-6 BB-BONELT-HDMIN:00A0 (prio 2)
[ 2.335923] bone-capemgr bone_capemgr.4: loader: after slot-6 BB-BONELT-HDMIN:00A0 (prio 2)
[ 2.350988] bone-capemgr bone_capemgr.4: slot #6: Requesting part number/version based 'BB-BONELT-HDMIN-00A0.dtbo
[ 2.403516] bone-capemgr bone_capemgr.4: slot #6: Requesting firmware 'BB-BONELT-HDMIN-00A0.dtbo' for board-name 'Bone-Black-HDMIN', version '00A0'
[ 2.427168] bone-capemgr bone_capemgr.4: failed to load firmware 'BB-BONELT-HDMIN-00A0.dtbo'
[ 2.436136] bone-capemgr bone_capemgr.4: loader: failed to load slot-6 BB-BONELT-HDMIN:00A0 (prio 2)
')
Can somebody help me? I really love Archlinux...