Author Topic: Install FPP on a non Raspberry Pi board  (Read 7387 times)

Offline CaptainMurdoch

  • Administrator
  • *****
  • Join Date: Sep 2013
  • Location: Washington
  • Posts: 7,858
  • Kudos: 140
Re: Install FPP on a non Raspberry Pi board
« Reply #30 on: February 04, 2017, 11:22:30 PM »
Here's the problem from the troubleshooting output:

===================================================================
Title  : Kernel Version
Command: uname -a
-----------------------------------
Linux FPP 3.4.39 #1 SMP PREEMPT Mon Oct 12 12:02:29 CEST 2015 armv7l GNU/Linux

===================================================================

SO_REUSEPORT wasn't added until Linux 3.9 according to what I've found.

https://lwn.net/Articles/542629/

That line of code is actually wrapped with a "#ifdef SO_REUSEPORT" check, so it must be defined somewhere, but not supported.

Can you try editing /opt/fpp/src/controlrecv.c and searching for "#ifdef SO_REUSEPORT" and changing that line to this:

#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)

Then run the following:

Code: [Select]
cd /opt/fpp/src/
sudo make

Then try to restart fppd to see if it starts up.

If it doesn't compile, you may need to add a line like the following near the top of controlrecv.c:

Code: [Select]
#include <linux/version.h>

If that works for you, we can change the check in the source code.
-
Chris

Offline cpwtech

  • Jr. Member
  • **
  • Join Date: Jan 2016
  • Location:
  • Posts: 76
  • Kudos: 0
Re: Install FPP on a non Raspberry Pi board
« Reply #31 on: February 05, 2017, 09:27:51 AM »
 ;D  I think that got it!  Thank you Thank you thank you.  Now tie to test this puppy and see what is really going on, lol



Never mind :( as soon as I added some channels it stopped.

2017-02-05 10:37:54 (1855) settings.c:816:getSettingInt(pauseBackgroundEffects) returning 0
2017-02-05 10:37:54 (1855) PixelOverlay.cpp:68:InitializeChannelDataMemoryMap()
2017-02-05 10:37:54 (1855) PixelOverlay.cpp:408:LoadChannelMemoryMapData()
2017-02-05 10:37:54 (1855) command.c:72:Initializing Command Module
2017-02-05 10:37:54 (1855) controlrecv.c:58:InitControlSocket()
control setsockopt SO_REUSEPORT: Protocol not available


Think I am going to wipe it and start again.  maybe I have introduced a bug with all the playing around.
« Last Edit: February 05, 2017, 09:39:32 AM by cpwtech »

Offline Materdaddy

  • Moderator
  • *****
  • Join Date: Jul 2013
  • Location: Oceanside, CA
  • Posts: 2,045
  • Kudos: 9
    • Christmas On Quiet Hills
Re: Install FPP on a non Raspberry Pi board
« Reply #32 on: February 05, 2017, 02:39:37 PM »
Good research Chris, I didn't look too far other than a google search while at work one day last week.

I'm wondering if  SO_REUSEPORT could still be defined (yet unsupported) and the orange pi could be using a kernel version greater than 3.9.  Do we know what kernel version the Orange Pi is using?

cpwtech, as another test try change the "#ifdef" line Chris mentioned to "#if 0", then re-compile to see if that works.  If it does we can figure out a more complete way of detecting it's presence on other kernel variants.

Offline cpwtech

  • Jr. Member
  • **
  • Join Date: Jan 2016
  • Location:
  • Posts: 76
  • Kudos: 0
Re: Install FPP on a non Raspberry Pi board
« Reply #33 on: February 05, 2017, 04:40:27 PM »
Good research Chris, I didn't look too far other than a google search while at work one day last week.

I'm wondering if  SO_REUSEPORT could still be defined (yet unsupported) and the orange pi could be using a kernel version greater than 3.9.  Do we know what kernel version the Orange Pi is using?


The Distro that I am using is using the 3.4.39 kernel.

Quote
cpwtech, as another test try change the "#ifdef" line Chris mentioned to "#if 0", then re-compile to see if that works.  If it does we can figure out a more complete way of detecting it's presence on other kernel variants.


I changed that to the suggested "#if 0" and it shows that it is running.



=========================================
FPP v1.8-65-gc6ca5b8-dirty
Branch: v1.8
=========================================
2017-02-05 23:39:34 (2565) common.c:112:Channel Data: (16 bytes)
2017-02-05 23:39:34 (2565) common.c:161:000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
2017-02-05 23:39:35 (2565) command.c:72:Initializing Command Module
control bind: Address already in use






Thank you gentleman!!!!  Now I will see if I can break it again, lol.




Offline cpwtech

  • Jr. Member
  • **
  • Join Date: Jan 2016
  • Location:
  • Posts: 76
  • Kudos: 0
Re: Install FPP on a non Raspberry Pi board
« Reply #34 on: February 05, 2017, 07:28:17 PM »
Well, it runs and syncs with the Master, but.............


I have no choices for outputs.  I can setup the Universes and a virtual matrix but nothing else i.e. RPIWS281X.  Which is one of the reason I wanted to do a slave FPP.






Offline CaptainMurdoch

  • Administrator
  • *****
  • Join Date: Sep 2013
  • Location: Washington
  • Posts: 7,858
  • Kudos: 140
Re: Install FPP on a non Raspberry Pi board
« Reply #35 on: February 05, 2017, 09:24:02 PM »
The Makefile has no idea what kind of hardware you have so things like rpiws281x, LED panels, spiws2801, etc. will not be compiled into the code.  We will have to make a platform  ID for the OrangePi and then can compile in the supported features.  The platform is detected and set in a file in /etc/fpp when the install script is run, then the Makefile reads that file at compile time and the UI reads it to show the correct hardware logo in the UI.

Offline cpwtech

  • Jr. Member
  • **
  • Join Date: Jan 2016
  • Location:
  • Posts: 76
  • Kudos: 0
Re: Install FPP on a non Raspberry Pi board
« Reply #36 on: February 06, 2017, 12:00:34 PM »
It is showing it as Debian in the upper right corner.

Sent from my SM-J100VPP using Tapatalk


Offline cpwtech

  • Jr. Member
  • **
  • Join Date: Jan 2016
  • Location:
  • Posts: 76
  • Kudos: 0
Re: Install FPP on a non Raspberry Pi board
« Reply #37 on: February 07, 2017, 07:03:20 AM »
Hate to sound really dumb, but is there a way for me to get it to compile all of the outputsinto it?  That way I could test this thing out and see what it can do?

Offline ThreeSizes

  • Developer
  • ******
  • Join Date: Dec 2015
  • Location: Fulton, MD
  • Posts: 532
  • Kudos: 30
Re: Install FPP on a non Raspberry Pi board
« Reply #38 on: February 07, 2017, 07:32:16 AM »
Hate to sound really dumb, but is there a way for me to get it to compile all of the outputsinto it?  That way I could test this thing out and see what it can do?

Have you tried overriding the FPPPLATFORM and OSVAR variables in the install script at about line 164 and set them so they match up with the Raspberry Pi?



"And what happened then? Well, in Whoville they say that the Grinch's small heart grew three sizes that day."

Offline cpwtech

  • Jr. Member
  • **
  • Join Date: Jan 2016
  • Location:
  • Posts: 76
  • Kudos: 0
Re: Install FPP on a non Raspberry Pi board
« Reply #39 on: February 07, 2017, 08:52:20 AM »
Not yet, but I will try as soon as I get home.


Offline CaptainMurdoch

  • Administrator
  • *****
  • Join Date: Sep 2013
  • Location: Washington
  • Posts: 7,858
  • Kudos: 140
Re: Install FPP on a non Raspberry Pi board
« Reply #40 on: February 07, 2017, 10:06:59 AM »
Hate to sound really dumb, but is there a way for me to get it to compile all of the outputsinto it?  That way I could test this thing out and see what it can do?

Have you tried overriding the FPPPLATFORM and OSVAR variables in the install script at about line 164 and set them so they match up with the Raspberry Pi?

It would be best to modify /etc/fpp/platform and put "Raspberry Pi" in it on a single line after the install.  Most changes during install are OS-specific, and Raspbian on the Pi is treated as Debian by FPP_Install.sh.

Try the following as root:

Code: [Select]
echo "Raspberry Pi" > /etc/fpp/platform
cd /opt/fpp/src/
../scripts/fppd_stop
make clean
make
../scripts/fppd_start

That should make it display a raspberry in the UI as well and enable all Pi specific outputs.
« Last Edit: February 07, 2017, 12:59:33 PM by CaptainMurdoch »

Offline cpwtech

  • Jr. Member
  • **
  • Join Date: Jan 2016
  • Location:
  • Posts: 76
  • Kudos: 0
Re: Install FPP on a non Raspberry Pi board
« Reply #41 on: February 07, 2017, 11:07:45 AM »
Thank you sir

Sent from my SM-J100VPP using Tapatalk


Offline cpwtech

  • Jr. Member
  • **
  • Join Date: Jan 2016
  • Location:
  • Posts: 76
  • Kudos: 0
Re: Install FPP on a non Raspberry Pi board
« Reply #42 on: February 09, 2017, 06:58:37 PM »
Sorry it has been a couple of days since my last update.  Here is what I got when I did what you asked Capt.



Starting /opt/fpp/bin.pi/fppd
/opt/fpp/bin.pi/fppd: error while loading shared libraries: libprotobuf.so.7: cannot open shared object file: No such file or directory




Offline CaptainMurdoch

  • Administrator
  • *****
  • Join Date: Sep 2013
  • Location: Washington
  • Posts: 7,858
  • Kudos: 140
Re: Install FPP on a non Raspberry Pi board
« Reply #43 on: February 10, 2017, 08:27:40 AM »
/opt/fpp/bin.pi/fppd: error while loading shared libraries: libprotobuf.so.7: cannot open shared object file: No such file or directory

Odd that it compiled, but won't run.

Try this:

Code: [Select]
sudo apt-get -y install protobuf-compiler python-protobuf libprotobuf-dev libprotoc-dev

Those should have been installed by the script.

Offline cpwtech

  • Jr. Member
  • **
  • Join Date: Jan 2016
  • Location:
  • Posts: 76
  • Kudos: 0
Re: Install FPP on a non Raspberry Pi board
« Reply #44 on: February 10, 2017, 07:18:31 PM »

Here is the total information from the previous commands (Making it think it is a Raspberry Pi)


Building FPP on 'Raspberry Pi' platform
Synchronizing submodule url for 'external/RF24'
Synchronizing submodule url for 'external/rpi-rgb-led-matrix'
Synchronizing submodule url for 'external/rpi_ws281x'
Entering 'external/LEDscape'
Entering 'external/RF24'
Entering 'external/rpi-rgb-led-matrix'
Entering 'external/rpi_ws281x'
ccache g++ -DUSEOLA -I . -I channeloutput -I mediaoutput  -Wno-write-strings -DPLATFORM_PI -DUSEWIRINGPI -DUSENRF -I../external/RF24/ -I../external/rpi-rgb-led-matrix/include/ -I../external/rpi_ws281x/  -c fpp.c -o fpp.o
ccache g++ -DUSEOLA -I . -I channeloutput -I mediaoutput  -Wno-write-strings -DPLATFORM_PI -DUSEWIRINGPI -DUSENRF -I../external/RF24/ -I../external/rpi-rgb-led-matrix/include/ -I../external/rpi_ws281x/  -c fppversion.c -o fppversion.o
ccache g++  fpp.o fppversion.o    -o fpp
ccache g++ -DUSEOLA -I . -I channeloutput -I mediaoutput  -Wno-write-strings -DPLATFORM_PI -DUSEWIRINGPI -DUSENRF -I../external/RF24/ -I../external/rpi-rgb-led-matrix/include/ -I../external/rpi_ws281x/  -c common.c -o common.o
ccache g++ -DUSEOLA -I . -I channeloutput -I mediaoutput  -Wno-write-strings -DPLATFORM_PI -DUSEWIRINGPI -DUSENRF -I../external/RF24/ -I../external/rpi-rgb-led-matrix/include/ -I../external/rpi_ws281x/  -c log.c -o log.o
g++ -DUSEOLA -I . -I channeloutput -I mediaoutput  -Wno-write-strings -DPLATFORM_PI -DUSEWIRINGPI -DUSENRF -I../external/RF24/ -I../external/rpi-rgb-led-matrix/include/ -I../external/rpi_ws281x/    -c -o fppmm.o fppmm.c


ccache g++  common.o log.o fppmm.o fppversion.o    -o fppmm
Building RF24 library
make[1]: Entering directory '/opt/fpp/external/RF24'
g++ -Wall -fPIC -Ofast -mfpu=vfp -mfloat-abi=hard -march=armv6zk -mtune=arm1176jzf-s -c RF24.cpp
In file included from /usr/include/stdio.h:934:0,
                 from RF24_config.h:37,
                 from RF24.cpp:10:
/usr/include/arm-linux-gnueabihf/bits/stdio.h: In function int vprintf(const char*, __gnuc_va_list):
/usr/include/arm-linux-gnueabihf/bits/stdio.h:36:56: sorry, unimplemented: Thumb-1 hard-float VFP ABI
 vprintf (const char *__restrict __fmt, _G_va_list __arg)
                                                        ^
Makefile:42: recipe for target 'RF24.o' failed
make[1]: *** [RF24.o] Error 1
make[1]: Leaving directory '/opt/fpp/external/RF24'
Makefile:315: recipe for target '../external/RF24/librf24-bcm.so' failed
make: *** [../external/RF24/librf24-bcm.so] Error 2


../scripts/fppd_start
Starting /opt/fpp/bin.pi/fppd
/opt/fpp/bin.pi/fppd: error while loading shared libraries: libprotobuf.so.7: cannot open shared object file: No such file or directory




And here is the output from ([size=78%]sudo apt-get -y install protobuf-compiler python-protobuf libprotobuf-dev libprotoc-dev)[/size]


Reading package lists... Done
Building dependency tree       
Reading state information... Done
libprotobuf-dev is already the newest version.
libprotoc-dev is already the newest version.
protobuf-compiler is already the newest version.
python-protobuf is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.


 

Back to top