Skip to content

Instantly share code, notes, and snippets.

@pdp7
Last active September 24, 2023 21:49
Show Gist options
  • Star 6 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pdp7/d4770a6ba17e666848796bf5cfd0caee to your computer and use it in GitHub Desktop.
Save pdp7/d4770a6ba17e666848796bf5cfd0caee to your computer and use it in GitHub Desktop.
config-pin beaglebone start up

Create file /usr/bin/enable-i2c-pins.sh

  • sudo vi /usr/bin/enable-i2c-pins.sh
#!/bin/bash

config-pin p9.17 i2c
config-pin p9.18 i2c
  • sudo chmod 755 /usr/bin/enable-i2c-pins.sh

Create file /lib/systemd/system/enable-i2c-pins.service

  • sudo vi /lib/systemd/system/enable-i2c-pins.service
[Unit]
Description=Enable I2C pins
After=generic-board-startup.service

[Service]
Type=simple
ExecStart=/usr/bin/enable-i2c-pins.sh

[Install]
WantedBy=multi-user.target

Enable the new systemd service

  • sudo systemctl daemon-reload
  • sudo systemctl enable enable-i2c-pins.service
Created symlink /etc/systemd/system/multi-user.target.wants/enable-i2c-pins.service → /lib/systemd/system/enable-i2c-pins.service.

Reboot and test

  • sudo systemctl status enable-i2c-pins.service
debian@beaglebone:~$ sudo systemctl status enable-i2c-pins.service
● enable-i2c-pins.service - Enable I2C pins
   Loaded: loaded (/lib/systemd/system/enable-i2c-pins.service; enabled)
   Active: inactive (dead) since Wed 2017-04-19 06:35:06 UTC; 48s ago
  Process: 649 ExecStart=/usr/bin/enable-i2c-pins.sh (code=exited, status=0/SUCCESS)
 Main PID: 649 (code=exited, status=0/SUCCESS)

Apr 19 06:35:05 beaglebone sudo[664]: root : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/bin/bash -c echo i2c > /sys/devices/platform/ocp/ocp:P9_17_pinmux/state
Apr 19 06:35:05 beaglebone sudo[664]: pam_unix(sudo:session): session opened for user root by (uid=0)
Apr 19 06:35:05 beaglebone sudo[664]: pam_unix(sudo:session): session closed for user root
Apr 19 06:35:06 beaglebone sudo[677]: root : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/bin/bash -c echo i2c > /sys/devices/platform/ocp/ocp:P9_18_pinmux/state
Apr 19 06:35:06 beaglebone sudo[677]: pam_unix(sudo:session): session opened for user root by (uid=0)
Apr 19 06:35:06 beaglebone sudo[677]: pam_unix(sudo:session): session closed for user root
  • config-pin -q p9.17 && config-pin -q p9.18
debian@beaglebone:~$ config-pin -q p9.17 && config-pin -q p9.18
P9_17 Mode: i2c
P9_18 Mode: i2c
@pdp7
Copy link
Author

pdp7 commented Apr 19, 2017

/usr/bin/enable-i2c-pins.sh

#!/bin/bash

config-pin p9.17 i2c
config-pin p9.18 i2c
debian@beaglebone:/lib/systemd$ sudo chmod 755 /usr/bin/enable-i2c-pins.sh

/lib/systemd/system/enable-i2c-pins.service

[Unit]
Description=Enable I2C pins
After=generic-board-startup.service

[Service]
Type=simple
ExecStart=/usr/bin/enable-i2c-pins.sh

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable enable-i2c-pins.service
Created symlink /etc/systemd/system/multi-user.target.wants/enable-i2c-pins.service → /lib/systemd/system/enable-i2c-pins.service.
debian@beaglebone:/lib/systemd$ config-pin -q p9.17 && config-pin -q p9.18
P9_17 Mode: i2c
P9_18 Mode: i2c
debian@beaglebone:~$ sudo systemctl status enable-i2c-pins.service
● enable-i2c-pins.service - Enable I2C pins
   Loaded: loaded (/lib/systemd/system/enable-i2c-pins.service; enabled)
   Active: inactive (dead) since Wed 2017-04-19 06:35:06 UTC; 48s ago
  Process: 649 ExecStart=/usr/bin/enable-i2c-pins.sh (code=exited, status=0/SUCCESS)
 Main PID: 649 (code=exited, status=0/SUCCESS)

Apr 19 06:35:05 beaglebone sudo[664]: root : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/bin/bash -c echo i2c > /sys/devices/platform/ocp/ocp:P9_17_pinmux/state
Apr 19 06:35:05 beaglebone sudo[664]: pam_unix(sudo:session): session opened for user root by (uid=0)
Apr 19 06:35:05 beaglebone sudo[664]: pam_unix(sudo:session): session closed for user root
Apr 19 06:35:06 beaglebone sudo[677]: root : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/bin/bash -c echo i2c > /sys/devices/platform/ocp/ocp:P9_18_pinmux/state
Apr 19 06:35:06 beaglebone sudo[677]: pam_unix(sudo:session): session opened for user root by (uid=0)
Apr 19 06:35:06 beaglebone sudo[677]: pam_unix(sudo:session): session closed for user root
debian@beaglebone:~$ config-pin -q p9.17 && config-pin -q p9.18
P9_17 Mode: i2c
P9_18 Mode: i2c

@pdp7
Copy link
Author

pdp7 commented Apr 19, 2017

debian@beaglebone:~/adafruit-beaglebone-io-python$ vi /usr/bin/enable-i2c-pins.sh
debian@beaglebone:~/adafruit-beaglebone-io-python$ vi /usr/bin/enable-i2c-pins.sh
debian@beaglebone:~/adafruit-beaglebone-io-python$ sudo vi /usr/bin/enable-i2c-pins.sh
debian@beaglebone:~/adafruit-beaglebone-io-python$ sudo chmod 755 /usr/bin/enable-i2c-pins.sh
debian@beaglebone:~/adafruit-beaglebone-io-python$ /usr/bin/enable-i2c-pins.sh
debian@beaglebone:~/adafruit-beaglebone-io-python$ sudo vi /lib/systemd/system/enable-i2c-pins.service
debian@beaglebone:~/adafruit-beaglebone-io-python$ sudo systemctl daemon-reload
debian@beaglebone:~/adafruit-beaglebone-io-python$ sudo systemctl daemon-reload^C
debian@beaglebone:~/adafruit-beaglebone-io-python$ sudo systemctl enable enable-i2c-pins.service
Created symlink from /etc/systemd/system/multi-user.target.wants/enable-i2c-pins.service to /lib/systemd/system/enable-i2c-pins.service.
sudo vi /usr/bin/enable-i2c-pins.sh
sudo chmod 755 /usr/bin/enable-i2c-pins.sh
sudo vi /lib/systemd/system/enable-i2c-pins.service
sudo systemctl daemon-reload
sudo systemctl enable enable-i2c-pins.service
sudo systemctl start enable-i2c-pins.service
config-pin -q p9.17 && config-pin -q p9.18


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment