Ubuntu 16.04 chmodコマンドはrc.localで自動的に実行されません。

Ubuntu 16.04 chmodコマンドはrc.localで自動的に実行されません。

起動時に実行するようにchmodコマンドを実行しようとしています。rc.localこのコマンドを使用すると、I2Cデバイスにアクセスできます。ただし、rc.local機能するには手動で実行する必要があります。私はUbuntu 16.04 LTSを使用しています。

これは私のrc.localファイルです:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
sudo chmod 777 /dev/i2c-*
exit 0

答え1

スクリプトはrootとして実行されるため、sudo chmodコマンドを使用する必要はありません。
コメントセクションで述べたように、このスクリプトに実行ビットも追加しましたか? (例:)sudo chmod +x /etc/rc.localまた
、@steeldriverがコメントに提供したリンクに記載されている指示に従う必要があります。

デバイス権限設定タスクを実行するより良い方法は、udevルールを使用することです。Raspbianでデバイスの読み取りと書き込み権限を永久に設定するには?i2cデバイスでudevを使用して666権限を設定する方法について説明しました(Raspberry Pi部分は関係ありません)。

関連情報