web-dev-qa-db-ja.com

Angstromlinuxを使用してBeagleboneBlackにttyポートを設定する

プリロードされたAngstromv2012.12ビルドを実行しているBeagleboneBlackを使用しています。 GPIOヘッダーのUART接続を介して別のデバイスをシリアルポートに接続できるようにしたい。問題は、これらがどの/dev/ttyデバイスにマップされているかわからないことです。 /dev/ttyS?デバイスにアクセスしようとすると(たとえば、od /dev/ttyS2を使用))、「読み取りエラー:入力/出力エラー」が発生します。

UARTがデフォルトでttyデバイスにマップされているかどうか、マップされている場合はどのデバイスにマップされているか、そうでない場合はどのように適切なデバイスを作成できるかを誰かに教えてもらえますか?

2
DougC

これを確認できます。シンプルなはずです。 http://hipstercircuits.com/enable-serialuarttty-on-beaglebone-black/

新しいカーネルでシリアルポートを有効にするためにÅngströmを再構築する必要があるという話がありました。それは必要ありません。デバイスツリーコンパイラ(DTC)が私のBBBにインストールされたので、コンパイルはかなり苦痛がありませんでした(オシロスコープが正しいBeagleBoneに接続されていることがわかったら..)BBB_SRMのUART4はデバイスツリーシステムのUART5であり、ttyO4は骨。 TXD(デバイスから見て送信)ピンはP9_13で、RXD(デバイスから見て受信)ピンはP9_11です。次に、上の画像のように会話させるか、一方のBeagleBoneを使用して、起動時にもう一方からのデバッグメッセージを確認できます。デバッグに非常に適しています。

ビーグルボーンで、nanoを開始します。

nano enable-uart5.dts

以下をコピーしてnanoに貼り付けます。

/*
 * 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 Public License version 2 as
 * published by the Free Software Foundation.
 */
/dts-v1/;
/plugin/;

/ {
    compatible = "ti,beaglebone", "ti,beaglebone-black";

    /* identification */
    part-number = "uart5";

    fragment@0 {
        target = <&am33xx_pinmux>;
        __overlay__ {
            pinctrl_uart5: pinctrl_uart5_pins {
                pinctrl-single,pins = <                                    
                        0x070 0x26  /* P9_11 = GPIO0_30 = GPMC_WAIT0 , MODE6 */
                        0x074 0x06  /* P9_13 = GPIO0_31 = GPMC_WPN, MODE6 */
                >;
            };
        };
    };

    fragment@1{
        target = <&uart5>;
        __overlay__ {
            status          = "okay";
        };
    };

    fragment@2 {
        target = <&ocp>;
        __overlay__ {
            test_helper: helper {
                compatible = "bone-pinmux-helper";
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_uart5>;
                status = "okay";
            };
        };
    };
};

ファイルを保存します(Ctrl-o)

Nanoを終了します(Ctrl-x)

BeagleBone Blackを使用している場合は、スクワットをインストールせずにデバイスツリーオーバーレイのファームウェアをコンパイルできます。

dtc -O dtb -o enable-uart5-00A0.dtbo -b 0 -@ enable-uart5.dts

これで、enable-uart5-00A0.dtboという名前のファイルが作成されます。

そのファイルをファームウェアディレクトリにコピーします。

cp enable-uart5-00A0.dtbo /lib/firmware/

次に、オーバーレイを有効にします。

echo enable-uart5 > /sys/devices/bone_capemgr.*/slots

これで、/ devにttyO4というファイルができました。あなたはそれをキャットすることによってそれを聞くことを試みることができます:

cat /dev/ttyO4

または、何かを送信することもできます。

echo test > /dev/ttyO4

ファイルがない場合/dev/ttyO4、カーネルログを確認します。

dmesg

ピンが正しく多重化されていることを確認するには、ピングループのリストを確認します。

cat /sys/kernel/debug/pinctrl/44e10800.pinmux/pingroups

Uart5のピングループが表示されます。

2
Zhang LongQI