私スピーカーコアv2.0このボードが他のボードと通信できるように、UARTインターフェース(ボードにはUartポートに接続されているUSB-TTLアダプターがあります)を使用したいと思います。
設定[編集]
シリアルTTLコンバータをノートブックに接続し、RespeakerCoreのTX、RX、GNDピンに接続しました。その後、ラップトップでミニコンソール(正しいボーレートとポート設定を含む)を開き、Respeakerで別のコンソールを開きました。 Respeakerをオンにしてみると、ミニタムに以下のような内容が出ました。
Starting kernel ...
[ 0.065704] /cpus/cpu@f00 missing clock-frequency property
[ 0.071689] /cpus/cpu@f01 missing clock-frequency property
[ 0.077712] /cpus/cpu@f02 missing clock-frequency property
[ 0.083677] /cpus/cpu@f03 missing clock-frequency property
[ 0.829278] rk-vcodec 20020000.vpu-service: could not find power_model node
[ 0.856875] rockchip-vop 20050000.vop: invalid resource
[ 0.862758] rockchip-vop 20050000.vop: invalid resource
[ 0.868586] rockchip-vop 20050000.vop: missing rockchip,grf property
[ 0.876380] i2c i2c-0: of_i2c: modalias failure on /hdmi@200a0000/ports
[ 2.037851] cpu cpu0: Failed to get pvtm
[ 2.122396] rockchip-dmc dmc: Failed to get pvtm
[ 2.128437] rockchip-dmc dmc: failed to get vop bandwidth to dmc rate
[ 2.139954] rknandbase v1.2 2018-05-08
[ 2.612237] rk_gmac-dwmac 30200000.ethernet: Can not read property: tx_delay.
[ 2.620241] rk_gmac-dwmac 30200000.ethernet: set tx_delay to 0x30
[ 2.627017] rk_gmac-dwmac 30200000.ethernet: Can not read property: rx_delay.
[ 2.635007] rk_gmac-dwmac 30200000.ethernet: set rx_delay to 0x10
[ 2.642046] rk_gmac-dwmac 30200000.ethernet: cannot get clock clk_mac_speed
[ 5.638765] get ac108 regulator name failed
[ 5.749516] get ac108 regulator name failed
[ 5.760861] mali-utgard 20001000.gpu: Failed to get pvtm
[ 5.938710] devfreq 20001000.gpu: Couldn't update frequency transition information.
[ 6.153327] ac108_write error->[REG-0x00,val-0x12]
[ 6.175033] ac108_write error->[REG-0x00,val-0x12]
[ 9.971169] rk_gmac-dwmac 30200000.ethernet: rk_get_eth_addr: mac address: 72:1c:0a:8e:4a:4a
Debian GNU/Linux 9 glutamate ttyS2
respeaker.io Debian Image 20180801
Support/FAQ: http://respeaker.io
glutamate login:
TXおよびRXピンはシリアルコンソールとして使用されます。
userk@glutamate:~$ setserial -g /dev/ttyS[0123]
/dev/ttyS0, UART: 16550A, Port: 0x0000, IRQ: 29
/dev/ttyS1, UART: 16550A, Port: 0x0000, IRQ: 30
/dev/ttyS2, UART: 16550A, Port: 0x0000, IRQ: 31
/dev/ttyS3, UART: unknown, Port: 0x0000, IRQ: 0
私が興味を持っているttyS2デバイスを使っているサービスがあります。
userk@glutamate:~$ sudo systemctl status | grep tty
│ ├─system-serial\x2dgetty.slice
│ │ ├─[email protected]
│ │ │ └─721 /sbin/agetty --keep-baud 115200,38400,9600 ttyS2 vt220
│ │ └─[email protected]
│ │ └─747 /sbin/agetty --keep-baud 115200,38400,9600 ttyGS0 vt220
│ │ └─767 brcm_patchram_plus --enable_hci --no2bytes --use_baudrate_for_download --tosleep 200000 --baudrate 1500000 --patchram /system/etc/firmware/bcm43438a0.hcd /dev/ttyS1
│ ├─system-getty.slice
│ │ └─[email protected]
│ │ └─720 /sbin/agetty --noclear tty1 linux
│ ├─1050 grep tty
私が試したこと
以下を使用してサービスを停止しようとしました。
sudo systemctl stop [email protected]
ただし、5秒後に自動的に再起動されます。
質問
しばらくすると、システムはコンソール出力をttyS2ポートに再送信し始めます。
ttyS2へのシリアルコンソールリンクを完全に削除できますか?
解決策
サービスを停止して無効にするだけです。
sudo systemctl stop [email protected]
sudo systemctl disable [email protected]
そしてコミュニケーションは双方向です。
ベストアンサー1
あなたは間違った場所を探しています。
これを駆動する基本的な構成項目は、console
ブートローダを介してコマンドラインからカーネルに提供される設定です。起動するシリアルコンソールサービスをジェネレータに通知します。カーネルコンソール出力を送信する場所をカーネルに通知します。/dev/console
出力を送信する場所をカーネルに通知します。シリアルデバイスをコンソールとして使用したくない場合は、調整が必要です。
ただし、サービスは提供されませんのでご注意ください[email protected]
。あなたには[email protected]
サービスと[email protected]
サービスがあります。したがって、システムはこれがttyGS0
シリアルコンソールデバイスであると考えていますが、明らかにもうそうは思いませんttyS2
。
[email protected]
おそらくいつかは手作りしたことがあります。これはsystemdによって設定された標準ではありません。 systemdによって設定されます。なぜなら間違っていたからです。この[email protected]
テンプレートはシリアルデバイスには適しておらず、カーネル仮想端末デバイス用に設計されています。正しいテンプレートが[email protected]
設定されています。その他システム機器するコンソールだと思います。
だから無効になりました[email protected]
。