I used: sudo raspi-config
to select the I2C option but it got into the config.txt file appended to the previous line. I since fixed that, but want to know what I did wrong or is it a bug?
-
Sounds like a bug. Can you duplicate the bug? i.e. from a known /boot/config.txt can you run raspi-config and get the same result? If so it is certainly worth reporting.– joanCommented Nov 17, 2015 at 9:31
1 Answer
Here's what the current version of raspi-config does (it's in the do_i2c()
) function:
sed $CONFIG -i -r -e "s/^((device_tree_param|dtparam)=([^,]*,)*i2c(_arm)?)(=[^,]*)?/\1=$SETTING/"
if ! grep -q -E "^(device_tree_param|dtparam)=([^,]*,)*i2c(_arm)?=[^,]*" $CONFIG; then
printf "dtparam=i2c_arm=$SETTING\n" >> $CONFIG
fi
The sed
command will change the line if it begins with device_tree_param
or dtparam
then =
then something ending with i2c=
or i2c_arm=
.
The grep
line then checks for the same thing and if it's not there, adds it. Don't ask me why this isn't an if/else; efficiency is not a real concern here anyway.
So note that won't change or count a line that's been commented out.