** 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. https://bugs.launchpad.net/bugs/1814118 Title: Make RPi.GPIO work on arm64 To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/rpi.gpio/+bug/1814118/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs