** Description changed:

- The current release of RPi.GPIO (0.63) expects to find hardware revision
- information under /proc/cpuinfo. This exists under armhf kernels, but
- not under arm64 kernels. By contrast, both kernels now provide revision
- information under /proc/device-tree/system/linux,revision.
+ [Impact]
- A patched version of RPi.GPIO 0.65 is available from
- https://launchpad.net/~waveform/+archive/ubuntu/pkg/+packages which
- preferentially reads revision information from this source (falling back
- to /proc/cpuinfo to support older kernels). 0.65 was used as this also
- fixes a couple of nasty PWM bugs, including a memory leak.
+  * RPi.GPIO currently does not work under arm64 kernels, simply due to 
hardware revision detection being slightly different.
+  * The patched version operates as expected under both armhf and arm64 
kernels by querying /proc/device-tree/system/linux,revision (a file that exists 
on modern armhf and arm64 kernels), falling back to /proc/cpuinfo (the former 
detection method, primarily to continue supporting any older armhf kernels).
+  * This will also bump the version from 0.6.3 to 0.6.5 on bionic/cosmic. This 
fixes several nasty bugs around PWM handling and event detection. These issues 
didn't affect short-term experimentation with the library, but do affect 
long-running deployments (memory leak in PWM allocation, and a race-condition 
in setting up pin event detection).
+ [Test Case]
+  * On an arm64 kernel:
+  * Install present version of python3-rpi.gpio (0.6.3-1ubuntu4)
+  * Under python3 "from RPi import GPIO"
+  * Present version returns RuntimeError: This module can only be run on a 
Raspberry Pi
+  * Upgrade to proposed version (0.6.5-1ubuntu1)
+  * Under python3 "from RPi import GPIO"
+  * This should succeed
+  * Run test cases under test/ (note: external wiring/components required; 
check source header for requirements)
+  * Repeat procedure with armhf kernel to ensure no regression
+ [Regression Potential]
+  * On armhf kernels: low; the existing detection pathway is maintained for 
ancient kernels lacking /proc/device-tree/system/linux but modern armhf kernels 
appear to have this file anyway and work with the new detection code. The new 
version is also operating happily upstream in Raspbian stretch.
+  * On arm64 kernels: none; the existing version simply fails to import anyway

You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

  Make RPi.GPIO work on arm64

To manage notifications about this bug go to:

ubuntu-bugs mailing list

Reply via email to