WelcomeWelcome | FAQFAQ | DownloadsDownloads | WikiWiki

Author Topic: Building landing wheels while in flight  (Read 29535 times)

Offline Paul_123

  • Administrator
  • Hero Member
  • *****
  • Posts: 1254
Re: Building landing wheels while in flight
« Reply #45 on: April 19, 2014, 05:07:35 PM »
Dependencies can be an issue, for example.......libavcodec is one that is a big issue, as the dependencies for this on the tce repo are a mile long, when all we really want is this single library.   

There is nothing against to add a minimal version of libavcodec to the official repo. squeezelite is also welcome in the repo as well as oliweb as a kind contibution to the piCore community :)

It is the identical version, libavformat itself has no dependencies.   It is just that it is a part of ffmpeg.   I assume that when you build the ffmpeg extension, libavformat gets the same dependencies.   This also happens with libavcodec and libavutil

Offline bmarkus

  • Administrator
  • Hero Member
  • *****
  • Posts: 7183
    • My Community Forum
Re: Building landing wheels while in flight
« Reply #46 on: April 19, 2014, 05:30:47 PM »
Check current ffmpeg2 components. libavformat2, libavcodec2, ... each have its own real dependency list. For piCorePlayer video codecs are not needed I guess. This is where you can reduce dep list.
Béla
Ham Radio callsign: HA5DI

"Amateur Radio: The First Technology-Based Social Network."

Offline mcdudeabides

  • Jr. Member
  • **
  • Posts: 60
Re: Building landing wheels while in flight
« Reply #47 on: April 19, 2014, 08:50:50 PM »
Slow going for me. I need to set up an environment outside the RPi to work with.

Aren't the AV libs used for FLAC decoding? 


Much to learn.

Offline Paul_123

  • Administrator
  • Hero Member
  • *****
  • Posts: 1254
Re: Building landing wheels while in flight
« Reply #48 on: April 19, 2014, 09:15:54 PM »
Slow going for me. I need to set up an environment outside the RPi to work with.

Aren't the AV libs used for FLAC decoding? 


Much to learn.

They are for windows media decoding.

Why not develop on a RPi? 
« Last Edit: April 20, 2014, 06:53:09 PM by Paul_123 »

Offline mcdudeabides

  • Jr. Member
  • **
  • Posts: 60
Re: Building landing wheels while in flight
« Reply #49 on: April 19, 2014, 09:41:26 PM »
I have primary care responsibilities for my parents. Most of my down time is during dialysis or other treatments. I usually take a laptop and use that time to puzzle things out.

I do have a spare RPi. I can try that approach tomorrow.

Sent from my Nexus 7 using Tapatalk


Offline sbp

  • Sr. Member
  • ****
  • Posts: 429
    • piCorePlayer homepage
Re: Building landing wheels while in flight
« Reply #50 on: April 20, 2014, 06:14:55 AM »
Hi Poul, Randy and Bela.

Sorry for not being around for some time - but I have read this thread with interest, and I think we should try to see if we could make a piCorePlayer which can be upgraded in situ.

As I see it there are a few issues/decisions we have to make before we continue.
As it is now Oliweb, Squeezelite and the piCorePlayer web pages are placed at mnt/mmcblk0p2/tce... When we build tcz packages we should agree on a correct location.
I would suggest the following, however I'm open for a discussion:

For OliWeb /usr/local/sbin/Oliweb/
For Squeezelite /usr/local/sbin/squeezelite/
For piCorePlayer web pages /usr/local/sbin/Oliweb/ piCorePlayer/
For piCorePlayer SHH scripts /usr/local/sbin/piCorePlayer

In addition, piCorePlayer can use two versions of squeezelite - the one provided by Triode, which does not allow playing wma and the use of sox resampling. It is simply downloaded from Triodes google site.
The other is provided by Ralphy from the Squeezebox forum, it depend upon ffmpeg (which also is provided by Ralphy, and as you can see it is already packed into a tcz) also he provided libfaad.tcz and libsoxr.tcz which is used by this special version of piCorePlayer. I know he tested several versions of ffmpeg before finding a good one for our purpose.
We need to decide whether we should make these tcz packages as well, or continue just downloading the two different squeezelite versions (Trodes or Ralphys)?

Finally, I think we should wait and see what Bela have been working on in regard to the update mechanism of the kernel and base, and hopefully we can adapt this to piCorePlayer.

Steen

EDIT: We will need to be able to build and provide our own alsa-modules-<KERNEL NAME>.tcz
and wireless-<KERNEL-NAME>.tcz
for two reasons:
1. Sometimes we will be ahead of the piCore kernel.
2. I need to change the bcm2835-pcm.c before building the sound modules in order to allow 192 khz via HDMI.
« Last Edit: April 20, 2014, 06:35:22 AM by sbp »

Offline bmarkus

  • Administrator
  • Hero Member
  • *****
  • Posts: 7183
    • My Community Forum
Re: Building landing wheels while in flight
« Reply #51 on: April 20, 2014, 08:02:29 AM »
EDIT: We will need to be able to build and provide our own alsa-modules-<KERNEL NAME>.tcz
and wireless-<KERNEL-NAME>.tcz
for two reasons:
1. Sometimes we will be ahead of the piCore kernel.
2. I need to change the bcm2835-pcm.c before building the sound modules in order to allow 192 khz via HDMI.

@Steen

Probably we can include your patches in the mainstream piCore kernel. In such case you do not have to create another version and also users of piCore can enjoy benefits. Lets discuss it in PM.

Béla
Ham Radio callsign: HA5DI

"Amateur Radio: The First Technology-Based Social Network."

Offline Paul_123

  • Administrator
  • Hero Member
  • *****
  • Posts: 1254
Re: Building landing wheels while in flight
« Reply #52 on: April 20, 2014, 10:49:22 AM »
We need to decide whether we should make these tcz packages as well, or continue just downloading the two different squeezelite versions (Trodes or Ralphys)?

No reason to keep 2 versions, there is not much changing right now.  I would just use Ralphy's version.   For those not resampling or wma, it does not get in the way.

I should probably get a Pi Running piCoreplayer.......so I can see all of the software versions.     I just like to do things myself.  plus I have a modded squeezelite to turn my amp off and on using GPIO......  I also have a realtime clock chip and digital clock display for an alarm clock.   Then there is push button control of the player using a python program and the LMS command line interface.   The extra modules I need means I have to stick with official piCore, or build my own kernel.
« Last Edit: April 20, 2014, 11:00:45 AM by Paul_123 »

Offline mcdudeabides

  • Jr. Member
  • **
  • Posts: 60
Re: Building landing wheels while in flight
« Reply #53 on: April 21, 2014, 02:01:37 AM »
I see I'm late to the party:-)  And still trying to learn the right dance moves.

IF you can still spare the time to point in the right way, I could use help with some answers.  And if there is a tutorial out there or if you would be willing to share your approach and how you set it up, that would be most appreciated as well.

I've set up a RPi at Paul's suggestion to use in this exercise.  I download the tcetools.tcz from the google code site (is this the correct tool for the RPi environment).  Following their instructions, I began the exercise of setting up a working directory that would be processed to create the tcz for squeezelite.  I started with the idea of just downloading the binary (didn't see the conversation on Ralpy's version as default, but would certiainly agree).  I was trying to put the environment together manually to run squeezelite and thus create the package from it. 

Getting the binary with wget was no problem.  I could also see where to put things like the init.d script.  In working on the deps, I was able to see alsa.tcz, flac.tca, labmad.tca and libvorbix.tcz to satisfy most of the dependancies.  From Steen's picoreplayer image, it seemed that libffmpeg, libfaad, libsoxr and libmad are also required.  I couldn't find them in tce.  How do you know they are required and how did you find them?

Just trying to list the output device in squeezelite shows that I've most likely overlooked something for alsa as even the sysdefault is absent.  I know I need to do some investigation.  Is there something special about amixer in this environemnt?  I notice that Steen uses amixer set PCM 400 unmute.  I would have expected alsamixer to be available to me, but it also is not working right.  Most likely my own cause.

I think I'm slowly understanding the convolutions to restore squash images back on loop devices for the persistence.  I can see the uphill climb to get squeezelite working.  What did your environment look like when you first put this pack together?  Did you have a working directory that held all the files before rolling up the tcz?  Did you do a "squeezelite-get" script or any of the build scripts for the package?

Offline mcdudeabides

  • Jr. Member
  • **
  • Posts: 60
Re: Building landing wheels while in flight
« Reply #54 on: April 21, 2014, 02:16:51 AM »
As it is now Oliweb, Squeezelite and the piCorePlayer web pages are placed at mnt/mmcblk0p2/tce... When we build tcz packages we should agree on a correct location.
I would suggest the following, however I'm open for a discussion:

For OliWeb /usr/local/sbin/Oliweb/
For Squeezelite /usr/local/sbin/squeezelite/
For piCorePlayer web pages /usr/local/sbin/Oliweb/ piCorePlayer/
For piCorePlayer SHH scripts /usr/local/sbin/piCorePlayer

It would follow the conventions that seem to be in place so far.  I might suggest that you keep the user configuration information separate from the script directory.  Much as wifi.sh keeps its wifi.db in home, there might be a similar approach to keep config.cfg there as well. 

Quote
In addition, piCorePlayer can use two versions of squeezelite - the one provided by Triode, which does not allow playing wma and the use of sox resampling. It is simply downloaded from Triodes google site.
The other is provided by Ralphy from the Squeezebox forum, it depend upon ffmpeg (which also is provided by Ralphy, and as you can see it is already packed into a tcz) also he provided libfaad.tcz and libsoxr.tcz which is used by this special version of piCorePlayer. I know he tested several versions of ffmpeg before finding a good one for our purpose.

Now I see where the extra deps come from :-)  Seems that a good approach would be to select Ralphy's image as default and add the deps in to the repository as well.  Is it good practice to get the binaries or to develop the build logic to compile locally and keep in repository maintenance (if/when kernel updates drive recompile)?

Quote
We need to decide whether we should make these tcz packages as well, or continue just downloading the two different squeezelite versions (Trodes or Ralphys)?
I would agree that Ralphy's is best suited.

Quote
Finally, I think we should wait and see what Bela have been working on in regard to the update mechanism of the kernel and base, and hopefully we can adapt this to piCorePlayer.
Certainly agree. 

How can I be helpful/useful in this objective?  (and "stay out of the way" is a viable answer)

Offline sbp

  • Sr. Member
  • ****
  • Posts: 429
    • piCorePlayer homepage
Re: Building landing wheels while in flight
« Reply #55 on: April 22, 2014, 03:21:35 PM »
Quote
How can I be helpful/useful in this objective?  (and "stay out of the way" is a viable answer)

Hi Randy - I will be very happy if you would help with this development of piCorePlayer.

I just noticed that bmarkus posted about the in situ update of the firmware and kernel - have you tried it?

I really don't know what would be the best way to go - maybe take it step by step.

First incorporate the kernel and firmware update by bmarksu into piCorePlayer - an Update button on the "Main" web-page.
Then maybe do a "crude and dirty" update of piCorePlayer and all its dependencies, by simply downloading a new TCE directory (which contain all the tcz packages , OliWeb and piCorePlayer web-pages)

When we have this working, start to make the individual tcz packages in order to do the update the "proper" way?

Steen

Offline Paul_123

  • Administrator
  • Hero Member
  • *****
  • Posts: 1254
Re: Building landing wheels while in flight
« Reply #56 on: April 22, 2014, 04:43:56 PM »
I just noticed that bmarkus posted about the in situ update of the firmware and kernel - have you tried it?

All there is public at this point is a tarball of the boot partition......but it does not update kernel modules that are in extensions.   SO it is not yet ready for a test.    The theory of a tarball of the boot partition is fine, as that is how I update anyway.

Again, you have to download the new kernel modules extensions first, before update the kernel and reboot.


Offline Paul_123

  • Administrator
  • Hero Member
  • *****
  • Posts: 1254
Re: Building landing wheels while in flight
« Reply #57 on: April 22, 2014, 04:52:58 PM »
Getting the binary with wget was no problem.  I could also see where to put things like the init.d script.  In working on the deps, I was able to see alsa.tcz, flac.tca, labmad.tca and libvorbix.tcz to satisfy most of the dependancies.  From Steen's picoreplayer image, it seemed that libffmpeg, libfaad, libsoxr and libmad are also required.  I couldn't find them in tce.  How do you know they are required and how did you find them?

We know the dependencies base on the compile options.   If you run the squeezelite -help and it will show you the compile time options.

Quote
I think I'm slowly understanding the convolutions to restore squash images back on loop devices for the persistence.  I can see the uphill climb to get squeezelite working.  What did your environment look like when you first put this pack together?  Did you have a working directory that held all the files before rolling up the tcz?  Did you do a "squeezelite-get" script or any of the build scripts for the package?

I've only built a few extensions, so I have always done it manually.    And yes, I just keep a working directory.

Offline sbp

  • Sr. Member
  • ****
  • Posts: 429
    • piCorePlayer homepage
Re: Building landing wheels while in flight
« Reply #58 on: June 28, 2014, 05:34:31 AM »
Hi

Thanks for your suggestions, and we have now been able to build such a in-situ update system into piCorePlayer. (I got help from Randy and Greg for testing and developing this - so thank you very much)

You are now able to update the whole microcore and piCorePlayer via the web-GUI in piCorePlayer. You choose which version you want to use via a drop-down list of available versions. This is found on the "Main" web-GUI web page.

The system will then download and update your system, and after a reboot you will have a new version running, and using your old settings, which have been saved in your config file.

Steen

Please test version piCorePlayer1.16:  https://sites.google.com/site/picoreplayer/home/news
« Last Edit: June 28, 2014, 05:36:51 AM by sbp »

Offline Paul_123

  • Administrator
  • Hero Member
  • *****
  • Posts: 1254
Re: Building landing wheels while in flight
« Reply #59 on: June 30, 2014, 09:52:40 AM »
Hi

Thanks for your suggestions, and we have now been able to build such a in-situ update system into piCorePlayer. (I got help from Randy and Greg for testing and developing this - so thank you very much)


Very cool.