bitbake linux-devicetree
bitbake virtual/kernel -c cleansstate
bitbake virtual/kernel -c configure
bitbake virtual/kernel -c compile
bitbake virtual/kernel -c deploy
编辑文件 /src/kernel-devicetree/include/dt-bindings/i2c/amba-i2c.h,在其中添加以下代码:
#define I2C4 (0x48060000)
编辑文件 /src/kernel-devicetree/beagleboneblack.dts,在其中添加以下代码:
&am33xx_pinmux {
pinctrl-names = "default";
pinctrl-0 = <&uart4_pins>;
uart4_pins: pinmux_uart4_pins {
pinctrl-single,pins = <
AM33XX_PADCONF(0x983, PIN_INPUT_PULLUP, MUX_MODE7) /* VDD_RTC */
AM33XX_PADCONF(0x9e0, PIN_INPUT_PULLUP, MUX_MODE1) /* UART4_RXD */
AM33XX_PADCONF(0x9e4, PIN_INPUT_PULLUP, MUX_MODE1) /* UART4_TXD */
>;
};
};
&uart4 {
status = "okay";
};
在 /src/kernel-devicetree/beagleboneblack.dts 中添加以下代码:
&uart1 {
status = "disabled";
};
&uart2 {
status = "disabled";
};
重复步骤1中的步骤,重新编译内核和设备树,并将其部署到BeagleBone Black上。此时,UART4应该可以正常使用而不会导致内核停止运行。