GPIOを出力ポートに変更すると valueが0になる、つまり 出力がLowになる。
電源はいって初期状態は入力方向で、入力はだいたいプルアップされててHighなので、プログラムが起動し出力方向を切り替えた瞬間に出力内容がLowに変わってしまうことになり 良くない。
GPIO Sysfs Interface for Userspace
/sys/class/gpio/gpioN/ "direction" ... reads as either "in" or "out". This value may normally be written. Writing as "out" defaults to initializing the value as low. To ensure glitch free operation, values "low" and "high" may be written to configure the GPIO as an output with that initial value.
とのことなので、出力にするとき out でなく high と指定すればOK。
echo 907 > /sys/class/gpio/export cat /sys/class/gpio/gpio907/direction # 作成直後は in である cat /sys/class/gpio/gpio907/value # 1 である # echo out > /sys/class/gpio/gpio907/direction echo high > /sys/class/gpio/gpio907/direction cat /sys/class/gpio/gpio907/direction # out になる cat /sys/class/gpio/gpio907/value # 1 のまま