Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
ohNet Installtion
05-02-2013, 12:01 PM (This post was last modified: 05-02-2013 12:15 PM by andreww.)
Post: #11
RE: ohNet Installtion
That NuGet error is familiar. Looking at my notes, that is due to a bug/missing feature in Mono. I have noted that it occurs in Mono 2.10.5 and is fixed by Mono 2.10.9. I believe Debian still uses Mono 2.10.8, and we have had quite a lot of problems with Mono versions that old. NuGet in particular seems to be terrible for using cutting-edge .NET features that are buggy or unimplemented in Mono.

A workaround is to run "go fetch" on a Windows machine. All of the dependencies fetched by NuGet are platform-independent, so you can fetch them on a Windows machine and copy them across to your Pi.
Reading your post again, I think you probably won't get much benefit from ohOS. ohNet handles UPnP while ohSongcast handles the Songcast protocol. Neither needs or benefits from ohOS. Where you might eventually find some benefit in ohOS is if you want to provide a web-based configuration UI for your device, or if you want to install/uninstall apps remotely, but I would not recommend worrying about that to begin with, and our documentation here isn't great. You are probably better off using ohNet and ohSongcast on their own. (Someone else might be able to tell you more about how to use ohSongcast. I think some work might still need to be done to separate the re-usable networking components from the Windows/Mac device drivers.)
Visit this user's website Find all posts by this user
05-02-2013, 12:59 PM
Post: #12
RE: ohNet Installtion
yes my mono version is 2.10.8.1 .. so guess I'm stuck there anyways, unless I do as you say and build a windows platform just to get those nuget dependencies (which seems a bit extreme (especially on my netbook that is atom based and probably not much faster at doing things as the RPi)).

So I think I will do as you say and concentrate on ohNet and build some functionality; when I have something working, I can then look at getting ohOS sorted to build a web config gui that will be useful.
Find all posts by this user
05-02-2013, 03:43 PM
Post: #13
RE: ohNet Installtion
Ok so moving on, cloned songcast and it's dependencies. as per the readme I execute the first build command

'pi@raspberrypi ~/openhome/ohNet $ sudo make ohNetCore proxies devices TestFramework'

Which gives me the following error.
ar: Build/Obj/Posix/Release/libohNetDevices.a: Malformed archive
make: *** [devices] Error 1

So I assume my build process of ohNet didn't go too well originally and I decided to remove it, clone it and re-build it. A little over an hour later it completes and I try the above command again, same error.

Full output below if anyone has any thoughts:
Code:
pi@raspberrypi ~/openhome/ohNet $ sudo make ohNetCore proxies devices TestFramework
Machine reported by compiler is: arm-linux-gnueabihf
Machine reported by uname is: Linux
Building for system Linux and architecture armhf
mkdir -p Build/Obj/Posix/Release/
mkdir -p Build/Include
mkdir -p Build/Include/OpenHome
mkdir -p Build/Include/OpenHome/Private
mkdir -p Build/Include/OpenHome/Net
mkdir -p Build/Include/OpenHome/Net/Private
mkdir -p Build/Include/OpenHome/Net/Core
mkdir -p Build/Include/OpenHome/Net/C
mkdir -p Build/Include/OpenHome/Net/Cpp
mkdir -p Build/Include/OpenHome/Net/Private/Js
mkdir -p Build/Include/OpenHome/Net/Private/Js/Tests
mkdir -p Build/Include/OpenHome/Net/Private/Js/Tests/lib
mkdir -p Build/Include/OpenHome/Net/Private/Js/Tests/proxies
rsync -u OpenHome/*.h Build/Include/OpenHome/Private
rsync -u OpenHome/Buffer.inl Build/Include/OpenHome
rm Build/Include/OpenHome/Private/Buffer.h
rm Build/Include/OpenHome/Private/Exception.h
rm Build/Include/OpenHome/Private/Functor*.h
rm Build/Include/OpenHome/Private/MimeTypes.h
rm Build/Include/OpenHome/Private/OhNetDefines.h
rm Build/Include/OpenHome/Private/OsTypes.h
rm Build/Include/OpenHome/Private/OhNetTypes.h
rsync -u OpenHome/Buffer.h Build/Include/OpenHome
rsync -u OpenHome/Exception.h Build/Include/OpenHome
rsync -u OpenHome/Functor*.h Build/Include/OpenHome
rsync -u OpenHome/MimeTypes.h Build/Include/OpenHome
rsync -u OpenHome/OhNetDefines.h Build/Include/OpenHome
rsync -u OpenHome/OsTypes.h Build/Include/OpenHome
rsync -u OpenHome/OhNetTypes.h Build/Include/OpenHome
rsync -u OpenHome/TestFramework/*.h Build/Include/OpenHome/Private
rsync -u OpenHome/Net/*.h Build/Include/OpenHome/Net/Private
rm Build/Include/OpenHome/Net/Private/FunctorAsync.h
rm Build/Include/OpenHome/Net/Private/OhNet.h
rsync -u OpenHome/Net/FunctorAsync.h Build/Include/OpenHome/Net/Core
rsync -u OpenHome/Net/FunctorAsync.h Build/Include/OpenHome/Net/Cpp
rsync -u OpenHome/Net/OhNet.h Build/Include/OpenHome/Net/Core
rsync -u OpenHome/Net/OhNet.h Build/Include/OpenHome/Net/Cpp
rsync -u OpenHome/Net/Shell/*.h Build/Include/OpenHome/Net/Private
rsync -u OpenHome/Net/ControlPoint/AsyncPrivate.h Build/Include/OpenHome/Net/Private
rsync -u OpenHome/Net/ControlPoint/CpStack.h Build/Include/OpenHome/Net/Core
rsync -u OpenHome/Net/ControlPoint/CpDevice.h Build/Include/OpenHome/Net/Core
rsync -u OpenHome/Net/ControlPoint/CpDeviceDv.h Build/Include/OpenHome/Net/Core
rsync -u OpenHome/Net/ControlPoint/CpDeviceUpnp.h Build/Include/OpenHome/Net/Core
rsync -u OpenHome/Net/ControlPoint/CpProxy.h Build/Include/OpenHome/Net/Core
rsync -u OpenHome/Net/ControlPoint/CpProxy.h Build/Include/OpenHome/Net/Cpp
rsync -u OpenHome/Net/ControlPoint/FunctorCpDevice.h Build/Include/OpenHome/Net/Core
rsync -u OpenHome/Net/ControlPoint/Cpi*.h Build/Include/OpenHome/Net/Private
rsync -u OpenHome/Net/ControlPoint/FunctorCpiDevice.h Build/Include/OpenHome/Net/Private
rsync -u OpenHome/Net/ControlPoint/Dv/CpiDeviceDv.h Build/Include/OpenHome/Net/Private
rsync -u OpenHome/Net/ControlPoint/Proxies/*.h Build/Include/OpenHome/Net/Core
rsync -u OpenHome/Net/ControlPoint/Upnp/*.h Build/Include/OpenHome/Net/Private
rsync -u OpenHome/Net/Device/DvStack.h Build/Include/OpenHome/Net/Core
rsync -u OpenHome/Net/Device/DvDevice.h Build/Include/OpenHome/Net/Core
rsync -u OpenHome/Net/Device/DvInvocationResponse.h Build/Include/OpenHome/Net/Core
rsync -u OpenHome/Net/Device/DvProvider.h Build/Include/OpenHome/Net/Core
rsync -u OpenHome/Net/Device/DvProvider.h Build/Include/OpenHome/Net/Cpp
rsync -u OpenHome/Net/Device/DvResourceWriter.h Build/Include/OpenHome/Net/Core
rsync -u OpenHome/Net/Device/DvResourceWriter.h Build/Include/OpenHome/Net/Cpp
rsync -u OpenHome/Net/Device/DvServerUpnp.h Build/Include/OpenHome/Net/Core
rsync -u OpenHome/Net/Device/DvServerUpnp.h Build/Include/OpenHome/Net/Cpp
rsync -u OpenHome/Net/Device/DviDevice.h Build/Include/OpenHome/Net/Private
rsync -u OpenHome/Net/Device/DviServer.h Build/Include/OpenHome/Net/Private
rsync -u OpenHome/Net/Device/DviService.h Build/Include/OpenHome/Net/Private
rsync -u OpenHome/Net/Device/DviStack.h Build/Include/OpenHome/Net/Private
rsync -u OpenHome/Net/Device/DviSubscription.h Build/Include/OpenHome/Net/Private
rsync -u OpenHome/Net/Device/DviPropertyUpdateCollection.h Build/Include/OpenHome/Net/Private
rsync -u OpenHome/Net/Device/FunctorDviInvocation.h Build/Include/OpenHome/Net/Private
rsync -u OpenHome/Net/Device/DviProviderSubscriptionLongPoll.h Build/Include/OpenHome/Net/Private
rsync -u OpenHome/Net/Device/Bonjour/*.h Build/Include/OpenHome/Net/Private
rsync -u OpenHome/Net/Device/Bonjour/mDNSCore/*.h Build/Include/OpenHome/Net/Private
rsync -u OpenHome/Net/Device/Providers/*.h Build/Include/OpenHome/Net/Core
rsync -u OpenHome/Net/Device/Upnp/*.h Build/Include/OpenHome/Net/Private
rsync -u OpenHome/Net/Bindings/C/*.h Build/Include/OpenHome/Net/C
rsync -u OpenHome/Net/Bindings/C/ControlPoint/*.h Build/Include/OpenHome/Net/C
rsync -u OpenHome/Net/Bindings/C/ControlPoint/Proxies/*.h Build/Include/OpenHome/Net/C
rsync -u OpenHome/Net/Bindings/C/Device/*.h Build/Include/OpenHome/Net/C
rsync -u OpenHome/Net/Bindings/C/Device/Providers/*.h Build/Include/OpenHome/Net/C
rsync -u OpenHome/Net/Bindings/Cpp/ControlPoint/*.h Build/Include/OpenHome/Net/Cpp
rsync -u OpenHome/Net/Bindings/Cpp/ControlPoint/Proxies/*.h Build/Include/OpenHome/Net/Cpp
rsync -u OpenHome/Net/Bindings/Cpp/Device/*.h Build/Include/OpenHome/Net/Cpp
rsync -u OpenHome/Net/Bindings/Cpp/Device/Providers/*.h Build/Include/OpenHome/Net/Cpp
rsync -u -r OpenHome/Net/Bindings/Js/ControlPoint/Tests/*.* Build/Include/OpenHome/Net/Private/Js/Tests
rsync -u OpenHome/Net/Bindings/Js/ControlPoint/lib/*.js Build/Include/OpenHome/Net/Private/Js/Tests/lib
rsync -u OpenHome/Net/Bindings/Js/ControlPoint/Proxies/CpOpenhomeOrgTestBasic1.js Build/Include/OpenHome/Net/Private/Js/Tests/proxies
rsync -u OpenHome/Net/Bindings/Js/ControlPoint/Proxies/CpOpenhomeOrgSubscriptionLongPoll1.js Build/Include/OpenHome/Net/Private/Js/Tests/proxies
rsync -u Os/*.h Build/Include/OpenHome
rsync -u Os/*.inl Build/Include/OpenHome
ar rc Build/Obj/Posix/Release/libohNetProxies.a Build/Obj/Posix/Release/CpUpnpOrgAVTransport1.o Build/Obj/Posix/Release/CpUpnpOrgAVTransport1C.o Build/Obj/Posix/Release/CpUpnpOrgAVTransport1Std.o Build/Obj/Posix/Release/CpUpnpOrgAVTransport2.o Build/Obj/Posix/Release/CpUpnpOrgAVTransport2C.o Build/Obj/Posix/Release/CpUpnpOrgAVTransport2Std.o Build/Obj/Posix/Release/CpUpnpOrgConnectionManager1.o Build/Obj/Posix/Release/CpUpnpOrgConnectionManager1C.o Build/Obj/Posix/Release/CpUpnpOrgConnectionManager1Std.o Build/Obj/Posix/Release/CpUpnpOrgConnectionManager2.o Build/Obj/Posix/Release/CpUpnpOrgConnectionManager2C.o Build/Obj/Posix/Release/CpUpnpOrgConnectionManager2Std.o Build/Obj/Posix/Release/CpUpnpOrgContentDirectory1.o Build/Obj/Posix/Release/CpUpnpOrgContentDirectory1C.o Build/Obj/Posix/Release/CpUpnpOrgContentDirectory1Std.o Build/Obj/Posix/Release/CpUpnpOrgContentDirectory2.o Build/Obj/Posix/Release/CpUpnpOrgContentDirectory2C.o Build/Obj/Posix/Release/CpUpnpOrgContentDirectory2Std.o Build/Obj/Posix/Release/CpUpnpOrgContentDirectory3.o Build/Obj/Posix/Release/CpUpnpOrgContentDirectory3C.o Build/Obj/Posix/Release/CpUpnpOrgContentDirectory3Std.o Build/Obj/Posix/Release/CpUpnpOrgRenderingControl1.o Build/Obj/Posix/Release/CpUpnpOrgRenderingControl1C.o Build/Obj/Posix/Release/CpUpnpOrgRenderingControl1Std.o Build/Obj/Posix/Release/CpUpnpOrgRenderingControl2.o Build/Obj/Posix/Release/CpUpnpOrgRenderingControl2C.o Build/Obj/Posix/Release/CpUpnpOrgRenderingControl2Std.o Build/Obj/Posix/Release/CpUpnpOrgScheduledRecording1.o Build/Obj/Posix/Release/CpUpnpOrgScheduledRecording1C.o Build/Obj/Posix/Release/CpUpnpOrgScheduledRecording1Std.o Build/Obj/Posix/Release/CpUpnpOrgScheduledRecording2.o Build/Obj/Posix/Release/CpUpnpOrgScheduledRecording2C.o Build/Obj/Posix/Release/CpUpnpOrgScheduledRecording2Std.o Build/Obj/Posix/Release/CpUpnpOrgSwitchPower1.o Build/Obj/Posix/Release/CpUpnpOrgSwitchPower1C.o Build/Obj/Posix/Release/CpUpnpOrgSwitchPower1Std.o Build/Obj/Posix/Release/CpUpnpOrgDimming1.o Build/Obj/Posix/Release/CpUpnpOrgDimming1C.o Build/Obj/Posix/Release/CpUpnpOrgDimming1Std.o Build/Obj/Posix/Release/CpAvOpenhomeOrgInfo1.o Build/Obj/Posix/Release/CpAvOpenhomeOrgInfo1C.o Build/Obj/Posix/Release/CpAvOpenhomeOrgInfo1Std.o Build/Obj/Posix/Release/CpAvOpenhomeOrgTime1.o Build/Obj/Posix/Release/CpAvOpenhomeOrgTime1C.o Build/Obj/Posix/Release/CpAvOpenhomeOrgTime1Std.o Build/Obj/Posix/Release/CpAvOpenhomeOrgPlaylist1.o Build/Obj/Posix/Release/CpAvOpenhomeOrgPlaylist1C.o Build/Obj/Posix/Release/CpAvOpenhomeOrgPlaylist1Std.o Build/Obj/Posix/Release/CpAvOpenhomeOrgVolume1.o Build/Obj/Posix/Release/CpAvOpenhomeOrgVolume1C.o Build/Obj/Posix/Release/CpAvOpenhomeOrgVolume1Std.o Build/Obj/Posix/Release/CpAvOpenhomeOrgProduct1.o Build/Obj/Posix/Release/CpAvOpenhomeOrgProduct1C.o Build/Obj/Posix/Release/CpAvOpenhomeOrgProduct1Std.o Build/Obj/Posix/Release/CpAvOpenhomeOrgRadio1.o Build/Obj/Posix/Release/CpAvOpenhomeOrgRadio1C.o Build/Obj/Posix/Release/CpAvOpenhomeOrgRadio1Std.o Build/Obj/Posix/Release/CpAvOpenhomeOrgReceiver1.o Build/Obj/Posix/Release/CpAvOpenhomeOrgReceiver1C.o Build/Obj/Posix/Release/CpAvOpenhomeOrgReceiver1Std.o Build/Obj/Posix/Release/CpAvOpenhomeOrgSender1.o Build/Obj/Posix/Release/CpAvOpenhomeOrgSender1C.o Build/Obj/Posix/Release/CpAvOpenhomeOrgSender1Std.o Build/Obj/Posix/Release/CpAvOpenhomeOrgPlaylistManager1.o Build/Obj/Posix/Release/CpAvOpenhomeOrgPlaylistManager1C.o Build/Obj/Posix/Release/CpAvOpenhomeOrgPlaylistManager1Std.o Build/Obj/Posix/Release/CpAvOpenhomeOrgMediaServer1.o Build/Obj/Posix/Release/CpAvOpenhomeOrgMediaServer1C.o Build/Obj/Posix/Release/CpAvOpenhomeOrgMediaServer1Std.o Build/Obj/Posix/Release/CpAvOpenhomeOrgNetworkMonitor1.o Build/Obj/Posix/Release/CpAvOpenhomeOrgNetworkMonitor1C.o Build/Obj/Posix/Release/CpAvOpenhomeOrgNetworkMonitor1Std.o Build/Obj/Posix/Release/CpOpenhomeOrgTestBasic1.o Build/Obj/Posix/Release/CpOpenhomeOrgTestBasic1C.o Build/Obj/Posix/Release/CpOpenhomeOrgTestBasic1Std.o Build/Obj/Posix/Release/CpOpenhomeOrgTestLights1.o Build/Obj/Posix/Release/CpOpenhomeOrgTestLights1C.o Build/Obj/Posix/Release/CpOpenhomeOrgTestLights1Std.o Build/Obj/Posix/Release/CpOpenhomeOrgSubscriptionLongPoll1.o Build/Obj/Posix/Release/CpOpenhomeOrgSubscriptionLongPoll1C.o Build/Obj/Posix/Release/CpOpenhomeOrgSubscriptionLongPoll1Std.o
ar rc Build/Obj/Posix/Release/libohNetDevices.a Build/Obj/Posix/Release/DvUpnpOrgAVTransport1.o Build/Obj/Posix/Release/DvUpnpOrgAVTransport1Std.o Build/Obj/Posix/Release/DvUpnpOrgAVTransport1C.o Build/Obj/Posix/Release/DvUpnpOrgAVTransport2.o Build/Obj/Posix/Release/DvUpnpOrgAVTransport2Std.o Build/Obj/Posix/Release/DvUpnpOrgAVTransport2C.o Build/Obj/Posix/Release/DvUpnpOrgConnectionManager1.o Build/Obj/Posix/Release/DvUpnpOrgConnectionManager1Std.o Build/Obj/Posix/Release/DvUpnpOrgConnectionManager1C.o Build/Obj/Posix/Release/DvUpnpOrgConnectionManager2.o Build/Obj/Posix/Release/DvUpnpOrgConnectionManager2Std.o Build/Obj/Posix/Release/DvUpnpOrgConnectionManager2C.o Build/Obj/Posix/Release/DvUpnpOrgContentDirectory1.o Build/Obj/Posix/Release/DvUpnpOrgContentDirectory1Std.o Build/Obj/Posix/Release/DvUpnpOrgContentDirectory1C.o Build/Obj/Posix/Release/DvUpnpOrgContentDirectory2.o Build/Obj/Posix/Release/DvUpnpOrgContentDirectory2Std.o Build/Obj/Posix/Release/DvUpnpOrgContentDirectory2C.o Build/Obj/Posix/Release/DvUpnpOrgContentDirectory3.o Build/Obj/Posix/Release/DvUpnpOrgContentDirectory3Std.o Build/Obj/Posix/Release/DvUpnpOrgContentDirectory3C.o Build/Obj/Posix/Release/DvUpnpOrgRenderingControl1.o Build/Obj/Posix/Release/DvUpnpOrgRenderingControl1Std.o Build/Obj/Posix/Release/DvUpnpOrgRenderingControl1C.o Build/Obj/Posix/Release/DvUpnpOrgRenderingControl2.o Build/Obj/Posix/Release/DvUpnpOrgRenderingControl2Std.o Build/Obj/Posix/Release/DvUpnpOrgRenderingControl2C.o Build/Obj/Posix/Release/DvUpnpOrgScheduledRecording1.o Build/Obj/Posix/Release/DvUpnpOrgScheduledRecording1Std.o Build/Obj/Posix/Release/DvUpnpOrgScheduledRecording1C.o Build/Obj/Posix/Release/DvUpnpOrgScheduledRecording2.o Build/Obj/Posix/Release/DvUpnpOrgScheduledRecording2Std.o Build/Obj/Posix/Release/DvUpnpOrgScheduledRecording2C.o Build/Obj/Posix/Release/DvUpnpOrgSwitchPower1.o Build/Obj/Posix/Release/DvUpnpOrgSwitchPower1Std.o Build/Obj/Posix/Release/DvUpnpOrgSwitchPower1C.o Build/Obj/Posix/Release/DvUpnpOrgDimming1.o Build/Obj/Posix/Release/DvUpnpOrgDimming1Std.o Build/Obj/Posix/Release/DvUpnpOrgDimming1C.o Build/Obj/Posix/Release/DvAvOpenhomeOrgInfo1.o Build/Obj/Posix/Release/DvAvOpenhomeOrgInfo1Std.o Build/Obj/Posix/Release/DvAvOpenhomeOrgInfo1C.o Build/Obj/Posix/Release/DvAvOpenhomeOrgTime1.o Build/Obj/Posix/Release/DvAvOpenhomeOrgTime1Std.o Build/Obj/Posix/Release/DvAvOpenhomeOrgTime1C.o Build/Obj/Posix/Release/DvAvOpenhomeOrgPlaylist1.o Build/Obj/Posix/Release/DvAvOpenhomeOrgPlaylist1Std.o Build/Obj/Posix/Release/DvAvOpenhomeOrgPlaylist1C.o Build/Obj/Posix/Release/DvAvOpenhomeOrgVolume1.o Build/Obj/Posix/Release/DvAvOpenhomeOrgVolume1Std.o Build/Obj/Posix/Release/DvAvOpenhomeOrgVolume1C.o Build/Obj/Posix/Release/DvAvOpenhomeOrgProduct1.o Build/Obj/Posix/Release/DvAvOpenhomeOrgProduct1Std.o Build/Obj/Posix/Release/DvAvOpenhomeOrgProduct1C.o Build/Obj/Posix/Release/DvAvOpenhomeOrgRadio1.o Build/Obj/Posix/Release/DvAvOpenhomeOrgRadio1Std.o Build/Obj/Posix/Release/DvAvOpenhomeOrgRadio1C.o Build/Obj/Posix/Release/DvAvOpenhomeOrgReceiver1.o Build/Obj/Posix/Release/DvAvOpenhomeOrgReceiver1Std.o Build/Obj/Posix/Release/DvAvOpenhomeOrgReceiver1C.o Build/Obj/Posix/Release/DvAvOpenhomeOrgSender1.o Build/Obj/Posix/Release/DvAvOpenhomeOrgSender1Std.o Build/Obj/Posix/Release/DvAvOpenhomeOrgSender1C.o Build/Obj/Posix/Release/DvAvOpenhomeOrgPlaylistManager1.o Build/Obj/Posix/Release/DvAvOpenhomeOrgPlaylistManager1Std.o Build/Obj/Posix/Release/DvAvOpenhomeOrgPlaylistManager1C.o Build/Obj/Posix/Release/DvAvOpenhomeOrgMediaServer1.o Build/Obj/Posix/Release/DvAvOpenhomeOrgMediaServer1Std.o Build/Obj/Posix/Release/DvAvOpenhomeOrgMediaServer1C.o Build/Obj/Posix/Release/DvAvOpenhomeOrgNetworkMonitor1.o Build/Obj/Posix/Release/DvAvOpenhomeOrgNetworkMonitor1Std.o Build/Obj/Posix/Release/DvAvOpenhomeOrgNetworkMonitor1C.o Build/Obj/Posix/Release/DvOpenhomeOrgTestBasic1.o Build/Obj/Posix/Release/DvOpenhomeOrgTestBasic1Std.o Build/Obj/Posix/Release/DvOpenhomeOrgTestBasic1C.o Build/Obj/Posix/Release/DvOpenhomeOrgTestLights1.o Build/Obj/Posix/Release/DvOpenhomeOrgTestLights1Std.o Build/Obj/Posix/Release/DvOpenhomeOrgTestLights1C.o Build/Obj/Posix/Release/DvOpenhomeOrgSubscriptionLongPoll1.o Build/Obj/Posix/Release/DvOpenhomeOrgSubscriptionLongPoll1Std.o Build/Obj/Posix/Release/DvOpenhomeOrgSubscriptionLongPoll1C.o
ar: Build/Obj/Posix/Release/libohNetDevices.a: Malformed archive
make: *** [devices] Error 1

I'm tempted to try build ohNet again, but without the Raspbian Overclocking active (as the RPi is running at 950mhz instead of default 700mhz), in case that is why it's creating a malformed archive.

Is it possible to simply rebuild 1 file (Build/Obj/Posix/Release/libohNetDevices.a) rather than the entirety of ohNet?
Find all posts by this user
05-02-2013, 04:34 PM
Post: #14
RE: ohNet Installtion
(05-02-2013 03:43 PM)steve Wrote:  Is it possible to simply rebuild 1 file (Build/Obj/Posix/Release/libohNetDevices.a) rather than the entirety of ohNet?

You could simply delete Build/Obj/Posix/Release/libohNetDevices.a then rebuild. You could shave a bit more from the build time by rebuilding only this target using make devices.
Find all posts by this user
05-02-2013, 04:56 PM
Post: #15
RE: ohNet Installtion
With regard to your build times, we have been building ohNet for armv5 devices (Sheevaplugs) primarily with a cross-compiler on a Linux desktop. If it takes an hour to build ohNet on-device you might find it's worthwhile getting a cross compiler set up. That said, it can be daunting to set up a cross-compiler in the first place, so I understand if you don't go down that path.

You ask if it's possible to rebuild only 1 file instead of all of ohNet. In general you can build individual targets in the makefile by invoking "make <targetname>". So here you could probably do "make Build/Obj/Posix/Release/libohNetDevices.a".

It's possible the "Malformed archive" message means that some of the object files are for a different architecture, but I cannot imagine how you could have managed to get object files for different architectures together in the build directory. When diagnosing problems like that, I find it helpful to inspect files with the "file" command. For example:

Code:
file Build/Obj/Posix/Release/*.o

That will generally tell you useful information about what's in a file, including what architecture object files, shared libraries and executables were built for.

If I have any ideas about what might be wrong I'll let you know, but I can't think of much else at the moment. Is there plenty of free space on the current partition?
Visit this user's website Find all posts by this user
05-02-2013, 05:17 PM (This post was last modified: 05-02-2013 05:20 PM by steve.)
Post: #16
RE: ohNet Installtion
Yes, I've used 2.7gb on my 16gb SD - I expanded the home partition to full size of SD after installing Raspbian (nice config tool it has).

Thanks for the help, I will have a look at the file command you mentioned and see what reports I get.

all the .o files are 'ELF 32-bit LSB relocatable, ARM, version 1 (SYSV), not stripped'

all the .a files are 'current ar archive'

I may go down the path of creating a cross-compiler on my main pc in the future when I have a grasp of what I'm doing with linux and openhome; for now I will put up with long build times (I can do some work while I wait) Big Grin



ran make ohNetCore proxies devices TestFramework, didn't give any errors.

So I'll see how I get on with the other dependencies.
Find all posts by this user
05-02-2013, 10:09 PM
Post: #17
RE: ohNet Installtion
Dependencies of ohSongcast installed (supposedly); I had quite a few missing files i.e. files were in ohNet/Build/Obj/Posix/Release but the build commands for each dependency were looking for them in Debug instead of Release, so I created Debug directory and copied them over as they cropped up and carried on.

This too happened with building ohSongcast, several files had to be moved. Unfortunately it's still not complete, it's throwing up another Error 1.

Code:
pi@raspberrypi ~/openhome/ohSongcast $ make
mkdir -p Build/Obj/Posix/Debug/
gcc -fPIC -o Build/Obj/Posix/Debug/SoundcardDriver.o -c -fexceptions -Wall -Werror -pipe -D_GNU_SOURCE -D_REENTRANT -DDEFINE_LITTLE_ENDIAN -DDEFINE_TRACE -g -O0 -fvisibility=hidden -DDllImport="__attribute__ ((visibility(\"default\")))" -DDllExport="__attribute__ ((visibility(\"default\")))" -DDllExportClass="__attribute__ ((visibility(\"default\")))" -Wno-psabi -I../ohNet/Build/Include/ -I../ohTopology/build/Include/  ohSongcast/Posix/SoundcardDriver.cpp
ohSongcast/Posix/SoundcardDriver.cpp: In function âvoid* SongcastCreate(const char*, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, ReceiverCallback, void*, SubnetCallback, void*, ConfigurationChangedCallback, void*, MessageCallback, void*, MessageCallback, void*, const char*, const char*, const char*, void*, uint32_t, const char*)â:
ohSongcast/Posix/SoundcardDriver.cpp:109:281: error: âaLogOutputPtrâ was not declared in this scope
make: *** [Build/Obj/Posix/Debug/SoundcardDriver.o] Error 1

The build output is short now because it's already done a lot of it.
Find all posts by this user
06-02-2013, 09:55 AM
Post: #18
RE: ohNet Installtion
It looks like the Posix version of this code is broken. We actively develop and test the Windows and Mac versions, but the Posix one isn't currently used for any products, so it doesn't get the same level of attention. If you look at SoundcardDriver.cpp there's an obvious typo that's causing that error. If you would like to try to get it working we'd be happy to accept patches, but I don't think anybody here is likely to be working on the Posix port in the near future.

I assume from your previous explanation that you will be trying to implement a Songcast receiver first, is that right? I should warn you that this is probably harder than implementing a Songcast sender. I can give you pointers on using OhmSender and OhmSenderDriver to send audio, but I haven't personally used the receiving code. An issue that you may have there is that when Songcasting, it is the receiver's responsibility to match the sender's clock rate. That is, you can't tell the sender to speed up or slow down to match your desired rate - you must play audio at a rate determined by the sender's clock. This may seem unintuitive at first, but consider that one sender may have many receivers. Linn DSes are able to adapt to match the sender's clock rate, but this involves special hardware which a Raspberry Pi isn't going to have, so somewhere you'll need to accommodate the minute differences in clock rate which will eventually cause the receiver to suffer an underflow (if it's consuming samples too quickly for the sender) or an overflow (if it's consuming samples too slowly). I'm not sure whether or not there's any code in ohSongcast to handle making the necessary compromise to degrade gracefully in such circumstances.
Visit this user's website Find all posts by this user
06-02-2013, 12:09 PM
Post: #19
RE: ohNet Installtion
Thanks for the input, found the typo. If I'm able to get this working, I am happy to help with getting the current Posix version into a position where it is able to compile without much effort. Would mean remembering and perhaps re-building it all to change what needs to be updated.

I guess yes, I want to make a Receiver for songcast. I have Linn hardware that I use songcast with already, would be nice to also do this with other hardware that doesn't cost £2k. I would imagine the Linn Songcast app on my laptop would be usable in this fashion, as long as it detects the availability of the non-Linn Hardware Songcast Receiver.

I understand there are hardware limitations, we shall see how far I get.

The ohSongcast build procedure is now looking for an include that doesn't exist, according to the makefile all includes are in ohNEt/Build/Include and ohTopology/build/Include; neither of which have a Stack.h (which should be in OpenHome/Net/Private, within the ohNet Include folder I would assume as that already has the OpenHome/Net/Private subfolders (but from what I can tell the ohNet build process doesn't build this file)).
Find all posts by this user
06-02-2013, 12:14 PM
Post: #20
RE: ohNet Installtion
(06-02-2013 12:09 PM)steve Wrote:  The ohSongcast build procedure is now looking for an include that doesn't exist, according to the makefile all includes are in ohNEt/Build/Include and ohTopology/build/Include; neither of which have a Stack.h (which should be in OpenHome/Net/Private, within the ohNet Include folder I would assume as that already has the OpenHome/Net/Private subfolders (but from what I can tell the ohNet build process doesn't build this file)).

Sounds like I might have broken the build here. I'll have a look this afternoon.
Find all posts by this user


Forum Jump: