top of page

HowTo: GPIO access, I2C, Kernel Building

  • Writer: Alex
    Alex
  • Jan 8, 2020
  • 2 min read

by p3dt


Hi, it’s Paul again


Intro

I found some time over the last days to play with the GPIOs and I2C. And got all of them to work, as well as I2C support:


   WARNING! This program can confuse your I2C bus, cause data loss and worse!
    I will probe file /dev/i2c-0.
    I will probe address range 0x03-0x77.
    Continue? [Y/n] 
        0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    30: -- -- -- -- -- -- -- -- -- -- -- -- 3c -- -- -- 
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    70: -- -- -- -- -- -- 76 --    

The GPIOs worked out of the box. I2C was a bit tricky (especially if you know nothing about linux kernel development, kind of like me)


GPIOs

This section describes how to use the pins via the sysfs interface.

Create the pin’s interface:

echo 32 > /sys/class/gpio/export # PB0, green cable

which creates the interface’s pin directory:

cd /sys/class/gpio/gpio32/ 

Which contains the following files

active_low  device  direction  edge  power  subsystem  uevent  value

To use this pin as an output pint you can configure it

echo out > /sys/class/gpio/gpio32/direction

And enable it

echo 1 > /sys/class/gpio/gpio32/value

Or disable it

echo 0 > /sys/class/gpio/gpio32/value

Short version for I2C (Setup)

If you mount /dev/mmcblk0p1 /mnt/boot/ you will find a file sun8i-r16-clockworkpi-cpi3.dtbwhich is missing the entry (in it’s original source form)

&i2c1 {
	status = "okay";
};

Which I rebuilt using the kernel sources version 5.2-rc4. I replaced the file (and the Kernel with my rebuilt kernel). And then got the device /dev/i2c-0 after a reboot.

Details for I2C

I wrote the long version down while figuring things out on my blog (it’s a bit much for a forum post):

Let me know if this helps or if you have any questions

Resulting Kernel/DeviceTree files for I2C

If you don’t want to build everything yourself you can download my kernel and the accompanying files here:

https://p3dt.net/assets/downloads/cpi-0.4-kernel-5.2-rc4-i2c.tar.gz Using these files is at your own risk, if you run into issues, I will do my best to answer your questions in this thread.

You need to replace these (make backups first!) on the boot partition. Note: It might be the case that replacing the .dtb file is sufficient if you have a different kernel, but I haven’t tested this. If you are up for some tests, try this first and let us know, thank you.

Have fun, Paul

22 Comments


wabytugy
3 days ago

This tutorial is impressively detailed and very practical for anyone working with GPIO and I2C kernel building. The step-by-step explanations really make complex concepts easier to follow. I came across a similar discussion on a technical blog, which added some complementary tips. For those also exploring legal aspects of software or licensing, https://the915lawyer.com/ provides useful, easy-to-digest insights.

Like

nytwordlehints
Dec 27, 2025

The way you presented complex information so simply is remarkable. I admire your ability to convey such detailed information in an accessible way. pokepath td

Like

maria daisy
maria daisy
Dec 10, 2025

In Bloodmoney, you step into a fast-paced clicker world where every tap earns you instant cash.

Edited
Like

pygazeliz
Dec 09, 2025

Very well written and detailed — you made some complex technical steps much easier to follow than I expected. For someone new to kernel building, this guide is a real lifesaver. I recently read a https://www.masterstorage365.com/ review blog that also covered tech setup basics, and seeing your tutorial alongside it reinforced how useful clear documentation can be. Great job on this.

Like

Cato Athena
Cato Athena
Nov 01, 2025

Experience a wide range of emotions while you play and enjoy the game of Slope Rider

Like
bottom of page