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

46 Comments


BALL88 hôm bữa mình mới lướt thử cho biết vì thấy mấy đứa bạn nói suốt, kiểu vào xem giao diện ra sao thôi. Vừa mở lên là thấy bố cục khá dễ chịu, không bị rối mắt, các khối thông tin tách ra rõ nên kéo xuống vẫn không bị lạc. Mình có nghía qua mục cược trực tiếp (In-Play) và thấy phần kèo hiển thị theo kiểu trực quan, nhìn một cái là hiểu đang diễn ra gì, không phải ngồi đọc dài dòng. Chuyển qua lại giữa mấy mục cũng nhanh, bấm cái là ra đúng chỗ, cảm giác mượt. Nói chung mình thích nhất là cách họ trình bày kèo gọn gàng trên giao diện, nhìn…

Like

thapcamtv dạo này mình thấy có người nhắc tới khi nói về các nền tảng giải trí trực tuyến nên cũng thử mở vào xem cách họ bố trí giao diện ra sao. Mình không đi sâu vào nội dung hay từng trò cụ thể, mà chủ yếu quan sát cách các chuyên mục được phân chia trên trang và cách thông tin hiển thị cho người dùng. Nhìn tổng thể thì các khu như thể thao, casino, game bài hay slot thường được sắp xếp theo từng nhóm khá rõ, hiển thị dạng khối và danh sách nên lướt qua cũng dễ theo dõi. Các bảng dữ liệu được trình bày dạng cột khá gọn, giúp quan sát nhanh…

Like

hitclub bữa mình lướt thử vì thấy mấy đứa bạn nói hoài, vào chủ yếu coi giao diện có dễ nhìn không chứ mình cũng không rành mảng này. Cảm giác đầu tiên là trang làm kiểu chia khối nội dung rõ ràng, kéo xuống tới đâu biết mình đang đọc phần nào tới đó, không bị ngợp chữ. Mình để ý họ có nhắc vụ nạp rút nhanh tầm 1–3 phút, thông tin nằm ngay trong phần nội dung chính nên khỏi phải mò. Mà cách đặt tiêu đề cũng gọn, nhìn phát hiểu ý, không kiểu vòng vo. Nói chung mình thấy họ chăm chút phần trình bày hơn mình tưởng, nhất là mấy box thông tin được…

Edited
Like

luongsontv mình lướt thử vì thấy bạn bè nhắc, kiểu vào xem giao diện ra sao thôi chứ chưa kịp đọc kỹ. Ấn tượng đầu là trang chia bố cục theo từng khối nhìn khá thoáng, nên mới vào không bị ngợp hay phải đoán chỗ nào với chỗ nào. Mình cũng thích cái menu đặt khá nổi, bấm qua lại mấy mục thấy dễ, không phải kéo lên kéo xuống tìm nút. Thông tin hiển thị gọn gàng, nhìn lướt là bắt được ý chính chứ không bị chữ dày đặc. Nói chung trải nghiệm kiểu “vào xem nhanh” khá ổn, nhất là cách họ làm các khối nội dung tách bạch và menu dễ thấy ngay trên trang.

Like

Thank you so much for sharing this article. The information you provided is really useful and has helped me understand this topic better. newsletterboxed

Like
bottom of page