Thanks very much, Mike.
I’m sorry to be a pest, but I can’t seem to use version 1.92 either.
Version 1.91 installed fine (using cpanm) but version 1.92 said:
$ cpanm Device::BCM2835
--> Working on Device::BCM2835
Fetching
http://www.cpan.org/authors/id/M/MI/MIKEM/Device-BCM2835-1.92.tar.gz ... OK
Configuring Device-BCM2835-1.92 ... OK
Building and testing Device-BCM2835-1.92 ... FAIL
! Installing Device::BCM2835 failed. See /home/jjd/.cpanm/work/1496430512.1235/build.log for details. Retry with --force to force install it.
$
Looking at the log file build.log I see:
Running Mkbootstrap for Device::BCM2835 ()
chmod 644 BCM2835.bs
PERL_DL_NONLAZY=1 PERL_USE_UNSAFE_INC=1 /usr/bin/perl "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
# Failed test 'use Device::BCM2835;'
# at t/Device-BCM2835.t line 12.
# Tried to use 'Device::BCM2835'.
# Error: Perl v5.22.1 required--this is only v5.20.2, stopped at /home/jjd/.cpanm/work/1496430512.1235/Device-BCM2835-1.92/blib/lib/Device/BCM2835.pm line 3.
# BEGIN failed--compilation aborted at /home/jjd/.cpanm/work/1496430512.1235/Device-BCM2835-1.92/blib/lib/Device/BCM2835.pm line 3.
# Compilation failed in require at t/Device-BCM2835.t line 12.
# BEGIN failed--compilation aborted at t/Device-BCM2835.t line 12.
# Failed test 'Constants'
# at t/Device-BCM2835.t line 59.
Undefined subroutine &Device::BCM2835::set_debug called at t/Device-BCM2835.t line 70.
# Looks like you planned 5 tests but ran 2.
# Looks like you failed 2 tests of 2 run.
# Looks like your test exited with 255 just after 2.
t/Device-BCM2835.t ..
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 5/5 subtests
Test Summary Report
-------------------
t/Device-BCM2835.t (Wstat: 65280 Tests: 2 Failed: 2)
Failed tests: 1-2
Non-zero exit status: 255
Parse errors: Bad plan. You planned 5 tests but ran 2.
Files=1, Tests=2, 1 wallclock secs ( 0.55 usr 0.05 sys + 0.56 cusr 0.06 csys = 1.22 CPU)
Result: FAIL
Failed 1/1 test programs. 2/2 subtests failed.
Makefile:981: recipe for target 'test_dynamic' failed
make: *** [test_dynamic] Error 255
-> FAIL Installing Device::BCM2835 failed. See /home/jjd/.cpanm/work/1496430512.1235/build.log for details. Retry with --force to force install it.
Assuming that the test failed due to the perl version, I decided to try using —force and installed it that way. However, the result can’t be used:
$ garage.pl -init
Perl v5.22.1 required--this is only v5.20.2, stopped at /usr/local/lib/arm-linux-gnueabihf/perl/5.20.2/Device/BCM2835.pm line 3.
BEGIN failed--compilation aborted at /usr/local/lib/arm-linux-gnueabihf/perl/5.20.2/Device/BCM2835.pm line 3.
Compilation failed in require at ./garage.pl line 13.
BEGIN failed--compilation aborted at ./garage.pl line 13.
$
Now normally, I wouldn’t complain if a package required a newer version of perl than I had installed, but since the Device::BCM2835 is particularly designed to be used on the Raspberry Pi, and the latest version of perl that the Raspbian OS includes is v5.20.2, it seems as if no Pi user will be able to use this with this restriction. Further, version 1.91 didn’t have this requirement and I can only presume that the changes didn’t particularly require the newer version of perl.
Now, just to test as much as I could, I tried manually editing /usr/local/lib/arm-linux-gnueabihf/perl/5.20.2/Device/BCM2835.pm to change the line "use 5.022001;” to read "use 5.020001;”. With this change, I could use the new 1.92 library (as I had used previous versions). However, I still can’t use the high numbered pins, to wit:
$ ./garage.pl -activate -door 1
RPI_V2_GPIO_P1_40 is not a valid Device::BCM2835 macro at ./garage.pl line 131.
BEGIN failed--compilation aborted at ./garage.pl line 131.
$
I tried to look through the BCM2835.pm to understand why this would happen but I didn’t see why. Everywhere (say) RPI_V2_GPIO_P1_11 existed in the .pm file, there was a case for RPI_V2_GPIO_P1_40 as well.
Perhaps change one of your test programs to use RPI_V2_GPIO_P1_40 and see if you can get it to work with v1.92?
Again, sorry to be such a pest.
—Jim Dempsey—
Show quoted text> On Jun 1, 2017, at 9:53 PM, Mike McCauley via RT <bug-Device-BCM2835@rt.cpan.org> wrote:
>
> <URL:
https://rt.cpan.org/Ticket/Display.html?id=121908 >
>
> Ooops yes, sorry.
> New version 1.92 should fix this.
>
> Cheers.
>
> On Thursday, 1 June 2017 9:08:28 AM AEST James J Dempsey via RT wrote:
>> Queue: Device-BCM2835
>> Ticket <URL:
https://rt.cpan.org/Ticket/Display.html?id=121908 >
>>
>> Mike - I'm not sure the new high numbered pins are working. To wit:
>>
>> $ cpanm Device::BCM2835
>> --> Working on Device::BCM2835
>> Fetching
>>
http://www.cpan.org/authors/id/M/MI/MIKEM/Device-BCM2835-1.91.tar.gz ...
>> OK
>> Configuring Device-BCM2835-1.91 ... OK
>> Building and testing Device-BCM2835-1.91 ... OK
>> Successfully installed Device-BCM2835-1.91
>> 1 distribution installed
>> $ garage/garage.pl -status -all -concise
>> RPI_V2_GPIO_P1_38 is not a valid Device::BCM2835 macro at garage/garage.pl
>> line 133.
>> BEGIN failed--compilation aborted at garage/garage.pl line 133.
>> $
>>
>> This shows it installed version 1.91 but it still seems to not be able to
>> resolve the high numbered pins.
>>
>> The installed module does seem to contain that string:
>>
>> $ grep RPI_V2_GPIO_P1_38
>> /usr/local/lib/arm-linux-gnueabihf/perl/5.20.2/Device/BCM2835.pm
>> RPI_V2_GPIO_P1_38
>> RPI_V2_GPIO_P1_38
>> $
>>
>> but my program can't resolve those symbols.
>>
>> --Jim--
>>
>>> <URL:
https://rt.cpan.org/Ticket/Display.html?id=121908 >
>>>
>>> Actually it will be version 1.91
>>>
>>> On Thursday, 1 June 2017 7:11:54 PM AEST you wrote:
>>>> Hi again,
>>>>
>>>> new version 1.10 adds these mssing constants
>>>>
>>>> cheers.
>>>>
>>>> On Friday, 26 May 2017 11:00:30 AM AEST you wrote:
>>>>> Fri May 26 11:00:30 2017: Request 121908 was acted upon.
>>>>> Transaction: Ticket created by jjd@jjd.com
>>>>>
>>>>> Queue: Device-BCM2835
>>>>>
>>>>> Subject: Can't use GPIO pins higher than #26
>>>>>
>>>>> Broken in: (no value)
>>>>>
>>>>> Severity: (no value)
>>>>>
>>>>> Owner: Nobody
>>>>>
>>>>> Requestors: jjd@jjd.com
>>>>>
>>>>> Status: new
>>>>>
>>>>> Ticket <URL:
https://rt.cpan.org/Ticket/Display.html?id=121908 >
>>>>>
>>>>> As you know, modern Raspberry Pis have 40-pin GPIO headers.
>>>>>
>>>>> The Device::BCM2835 module only allows you to use pins up to pin
>>>>
>>>> number
>>>>
>>>>> 26. The underlying C-library that Device::BCM2835 uses has already
>>>>
>>>> been
>>>>
>>>>> upgraded to allow use of all 40 pins.
>>>>>
>>>>> Can the perl module also be modified to allow use of all 40 pins?
>>>>>
>>>>> Thank you,
>>>>>
>>>>> --Jim Dempsey--
>>>
>>> --
>>> Mike McCauley VK4AMM mikem@airspayce.com
>>> Airspayce Pty Ltd 9 Bulbul Place Currumbin Waters QLD 4223 Australia
>>>
http://www.airspayce.com
>>> Phone +61 7 5598-7474
>
>
> --
> Mike McCauley VK4AMM mikem@airspayce.com
> Airspayce Pty Ltd 9 Bulbul Place Currumbin Waters QLD 4223 Australia
>
http://www.airspayce.com
> Phone +61 7 5598-7474
>