Comment 30 for bug 1953613

Revision history for this message
Arthur Magill (arthurmagill) wrote : Re: [Bug 1953613] Re: GPIO character device v1 API not enabled in kernel

Sorry but I no longer have access to the affected machine, so I cannot test
the proposed fix.

  - Arthur

On Fri, 1 Mar 2024 at 07:26, Ubuntu Kernel Bot <email address hidden>
wrote:

> This bug is awaiting verification that the linux-mtk/5.15.0-1030.34
> kernel in -proposed solves the problem. Please test the kernel and
> update this bug with the results. If the problem is solved, change the
> tag 'verification-needed-jammy-linux-mtk' to 'verification-done-jammy-
> linux-mtk'. If the problem still exists, change the tag 'verification-
> needed-jammy-linux-mtk' to 'verification-failed-jammy-linux-mtk'.
>
>
> If verification is not done by 5 working days from today, this fix will
> be dropped from the source code, and this bug will be closed.
>
>
> See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how
> to enable and use -proposed. Thank you!
>
>
> ** Tags added: kernel-spammed-jammy-linux-mtk-v2
> verification-needed-jammy-linux-mtk
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/1953613
>
> Title:
> GPIO character device v1 API not enabled in kernel
>
> Status in linux package in Ubuntu:
> Fix Released
> Status in linux-allwinner-5.17 package in Ubuntu:
> Invalid
> Status in linux-hwe-5.17 package in Ubuntu:
> Invalid
> Status in linux-starfive-5.17 package in Ubuntu:
> Invalid
> Status in linux source package in Jammy:
> Fix Released
> Status in linux-allwinner-5.17 source package in Jammy:
> Fix Released
> Status in linux-hwe-5.17 source package in Jammy:
> Fix Committed
> Status in linux-starfive-5.17 source package in Jammy:
> Fix Released
>
> Bug description:
> [Impact]
>
> * The libgpiod2 library and gpiod tools shipped in Jammy don't work.
>
> * These tools are meant to replace the old sysfs interface and be
> a better and more efficient way to manipulate GPIOs from userspace.
> Unfortunately the latest release is still using v1 of the character
> device kernel API which is not enabled in Ubuntu kernels.
>
> * This is Kent Gibsons reply on the linux-gpio mailing list:
>
> On Tue, Jul 12, 2022 at 09:48:45AM +0200, Alexandre Ghiti wrote:
> > Hi,
> >
> > Ubuntu kernels do not enable GPIO_CDEV_V1 as it is deprecated, but the
> > libgpiod package that we ship is still based on the latest version
> > 1.6.3 which does not implement the API v2. So I'd like to update
> > libgpiod, do you have any recommendations about what branch/sha1 I
> > should use? Do you plan to make a release that implements the API v2?
> >
>
> Firstly, libgpiod is Bart's library so he is the authority, but this
> is my understanding...
>
> TLDR: You should keep GPIO_CDEV_V1 enabled.
>
> v1 is deprecated from a development perspective, so all new feature
> development will occur on v2, and new applications should target v2.
> Existing apps targetting v1, be that directly or via libgpiod v1.6.3,
> will require GPIO_CDEV_V1 until they migrate to v2.
> The mainline kernel will continue to support v1 while userspace
> transitions.
>
> libgpiod v2 is in active development, and should reach its first release
> shortly.
> Note that it is NOT a plugin replacement for v1. It has a different API,
> for similar reasons to why we had to switch in the kernel, so apps will
> need to be actively migrated.
>
> I wouldn't suggest making any effort to package libgpiod v2 until Bart
> makes an official release.
>
> Cheers,
> Kent.
>
> [Test Plan]
>
> * Run gpioinfo on a machine with exposed GPIOs and check that it lists
> the GPIOs and doesn't error with
>
> gpioinfo: error creating line iterator: Invalid argument
>
> [Where problems could occur]
>
> * There may be code and scripts that hasn't been tested with a working
> libgpiod2/gpiod tools and uncover latent bugs.
>
> [Other Info]
>
> Original bug text:
>
> The current versions of gpiod, libgpiod-dev and libgpiod2 (1.6.2-1)
> use version 1 of the GPIO character device API. However, they cannot
> work because the interface is disabled in the default kernel (tested
> with 5.13.19). After rebuilding the kernel with the option
> CONFIG_GPIO_CDEV_V1=y, the gpiod tools work as expected.
>
> Thanks to Marek Szuba, who reported the same bug for Gentoo
> (https://bugs.gentoo.org/807334), pointing me in the right direction.
>
> What I expect to happen:
>
> $ gpiodetect
> gpiochip0 [0-003c] (8 lines)
> $ gpioinfo
> gpiochip0 - 8 lines:
> line 0: unnamed unused output active-high
> line 1: unnamed unused output active-high
> line 2: unnamed unused output active-high
> line 3: unnamed unused output active-high
> line 4: unnamed unused output active-high
> line 5: unnamed unused output active-high
> line 6: unnamed unused input active-high
> line 7: unnamed unused input active-high
> $ gpioget gpiochip0 0
> 1
>
> What actually happens:
>
> $ gpiodetect
> gpiochip0 [0-003c] (8 lines)
> $ gpioinfo
> gpioinfo: error creating line iterator: Invalid argument
> $ gpioget gpiochip0 0
> gpioget: error reading GPIO values: Invalid argument
>
> $ cat /proc/version_signature
> Ubuntu 5.13.0-22.22-lowlatency 5.13.19
>
> $ apt-cache policy libgpiod2
> libgpiod2:
> Installed: 1.6.2-1
> Candidate: 1.6.2-1
> Version table:
> *** 1.6.2-1 500
> 500 http://de.archive.ubuntu.com/ubuntu impish/universe amd64
> Packages
> 100 /var/lib/dpkg/status
>
> I am testing with the onboard PCA9554A on a Fujitsu D3641-S
> motherboard.
>
> $ lspci | grep -i smb
> 00:1f.4 SMBus: Intel Corporation Cannon Lake PCH SMBus Controller (rev
> 10)
> $ lspci -s 1f.4 -vvv
> 00:1f.4 SMBus: Intel Corporation Cannon Lake PCH SMBus Controller (rev
> 10)
> DeviceName: Onboard - Other
> Subsystem: Fujitsu Technology Solutions Cannon Lake PCH SMBus Controller
> Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr-
> Stepping- SERR- FastB2B- DisINTx-
> Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
> <TAbort- <MAbort- >SERR- <PERR- INTx-
> Interrupt: pin A routed to IRQ 16
> Region 0: Memory at 6013106000 (64-bit, non-prefetchable) [size=256]
> Region 4: I/O ports at efa0 [size=32]
> Kernel driver in use: i801_smbus
> Kernel modules: i2c_i801
> ---
> ProblemType: Bug
> ApportVersion: 2.20.11-0ubuntu71
> Architecture: amd64
> AudioDevicesInUse:
> USER PID ACCESS COMMAND
> /dev/snd/controlC0: dkfz 4589 F.... pulseaudio
> /dev/snd/controlC1: dkfz 4589 F.... pulseaudio
> CasperMD5CheckResult: unknown
> CurrentDesktop: ubuntu:GNOME
> DistroRelease: Ubuntu 21.10
> InstallationDate: Installed on 2018-11-12 (1122 days ago)
> InstallationMedia: Ubuntu 18.04.1 LTS "Bionic Beaver" - Release amd64
> (20180725)
> Lsusb:
> Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
> Bus 001 Device 003: ID 7392:a812 Edimax Technology Co., Ltd Edimax
> AC600 USB
> Bus 001 Device 002: ID 256f:c650 3Dconnexion CadMouse
> Bus 001 Device 004: ID 046d:c336 Logitech, Inc. Gaming Keyboard G213
> Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
> NonfreeKernelModules: nvidia_modeset nvidia
> Package: linux (not installed)
> ProcFB: 0 i915drmfb
> ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-5.13.19
> root=UUID=75550043-7044-41bf-a01e-bf41b267f7d0 ro
> ProcVersionSignature: Ubuntu 5.13.0-22.22-lowlatency 5.13.19
> RelatedPackageVersions:
> linux-restricted-modules-5.13.19 N/A
> linux-backports-modules-5.13.19 N/A
> linux-firmware 1.201.1
> RfKill:
> 0: phy0: Wireless LAN
> Soft blocked: no
> Hard blocked: no
> Tags: impish
> Uname: Linux 5.13.19 x86_64
> UpgradeStatus: Upgraded to impish on 2021-10-19 (49 days ago)
> UserGroups: sudo
> WifiSyslog:
>
> _MarkForUpload: True
> dmi.bios.date: 02/18/2021
> dmi.bios.release: 1.12
> dmi.bios.vendor: FUJITSU // American Megatrends Inc.
> dmi.bios.version: V5.0.0.13 R1.12.0 for D3641-S1x
> dmi.board.name: D3641-S1
> dmi.board.vendor: FUJITSU
> dmi.board.version: S26361-D3641-S1
> dmi.chassis.type: 3
> dmi.chassis.vendor: FUJITSU
> dmi.modalias:
> dmi:bvnFUJITSU//AmericanMegatrendsInc.:bvrV5.0.0.13R1.12.0forD3641-S1x:bd02/18/2021:br1.12:svnFUJITSU:pn:pvr:rvnFUJITSU:rnD3641-S1:rvrS26361-D3641-S1:cvnFUJITSU:ct3:cvr:sku:
> dmi.product.family: ESPRIMO-FTS
> dmi.sys.vendor: FUJITSU
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1953613/+subscriptions
>
>