Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Building for Debian stretch (9.1) #259

Closed
gkkpch opened this issue Sep 9, 2017 · 24 comments
Closed

Building for Debian stretch (9.1) #259

gkkpch opened this issue Sep 9, 2017 · 24 comments

Comments

@gkkpch
Copy link
Collaborator

gkkpch commented Sep 9, 2017

As we don't have anywhere else to post questions/suggestions/solutions for porting volumio from debian jessie to stretch, I opened this issue.
There is no plan yet to port, this is considered to be staging info only
Anyone with any information on this, please comment.

@gkkpch
Copy link
Collaborator Author

gkkpch commented Sep 9, 2017

I have managed to build a first x86 rootfs, on a debian 8.1 host, but the following things need to be checked:

  • package alsa-base is not available, found documentation that for jessie it was moved to kmod already, in stretch it seems to have been removed. Consequences unknown as of yet.
  • package udisks-glue is not available, have not found any documentation on whether is has been replaced, or is obsolete.

@macmpi
Copy link
Contributor

macmpi commented Sep 9, 2017

I started to build for stretch on Pi last week, you can consult current changes here: It's likely most recipe changes are applicable to other builds.
Note: qemu version 2.5.0 miss getrandom() support which is now used in stretch/sid (note stretch bundles qemu 2.8). A more recent qemu version (2.9.1) is available and fixes all emulation issues for ARM Builds.

I miss custom mpd and upnpdcli that need recompile to adjust to few updated libraries (actually all custom binaries should probably be rebuilt as safer measure).
I could get a booting system, but Volumio app is not much usable yet without those binaries.

I also noticed that ifconfig node package has a bug on stretch (as ifconfig command output is different): I'm currently working on a workaround to remove this dependency in few Volumio2 files (npm package does not seem to be much supported anymore...).

Also, some careful attention needs to be with Predictable Network Interface name coming by default with Stretch (no more eth0/wlan0 names!).
On the long run, it's a good thing Volumio2 code should adapt to (i.e. set it's own fixed name convention), but short term one may want to disable that default to recover eth0/wlan0 names
(ln -s /dev/null /etc/systemd/network/99-default.link or net.ifnames=0 in cmdline.txt on Pi)

@Warter21
Copy link

Warter21 commented Sep 9, 2017

there is a new ifconfig(net-tools) and the format was changed. The ifconfig.js is not compatible anymore.
The old udisks has been replaced with udisks2.

@gkkpch
Copy link
Collaborator Author

gkkpch commented Sep 10, 2017

My changes to package names seem to match macmpi's, however gcc was not on my list.
x86 stretch also boots, with kernel 4.9.29, but no testing was done yet.
To help remove all duplicates (which the x86 recipe apparently had several of), package names were put in alphabetical order, I will also add the recipe as x86-stretch.conf

@macmpi
Copy link
Contributor

macmpi commented Sep 11, 2017

some notes & details about new binaries needed for custom stretch (libc6 2.24-11) based packages:

  • node modules probably
  • libasound2_1.1.3-5 & related are default in stretch: custom still required? Could then be in recipes. (libasound2 1.1.3-5+rpi3 is available in archive.raspberrypi.org repo)
  • mpd (updated libavcodec57, libavcodec-extra-57, libavformat57, libavutil55, libnfs8, libsidplayfp4 dependencies at least)
  • Upmpdcli & related libs for stretch are available from http://www.lesbonscomptes.com/upmpdcli/downloads.html repos
  • Shairport-Sync (updated libssl dependency at least)
  • snapcast server/client (updated libboost-system1.62.0 dependency at least)
  • hostapd-edimax (updated libssl dependency at least; useless on Pi since 4.9.x anyway)
  • volumio-remote-updater & volumio-init-updater: dunno if some dependencies changed...
  • custom zsync: : dunno if some dependencies changed...

@gkkpch
Copy link
Collaborator Author

gkkpch commented Sep 11, 2017

For X86, more or less the same as above plus

  • fix UEFI as efibootmgr does not get installed yet
  • support for Intel multidevice HDA
  • add additional firmware for newer devices

@macmpi
Copy link
Contributor

macmpi commented Sep 18, 2017

@volumio
any chance you may have time to provide such stretch-updated binaries built with libc6 2.24-11 and other mentioned dependencies?
We can then do further work and evaluation to debunk potential issues for such upgrade.
Thanks!

@volumio
Copy link
Owner

volumio commented Sep 18, 2017

Sorry not yet. Could you please send me a link to download a partial image with stretch so I can compile them?

@gkkpch
Copy link
Collaborator Author

gkkpch commented Mar 1, 2018

I have been working on the x86 stretch version, most of the dependencies have already been mentioned by @macmpi.
Syslinux and EFI bootloaders are now OK, initramfs works fine after updating some libraries in mkinitramfs. Predictable network interface names have been reversed to eth0, wlan0 etc. in the kernel command lines (syslinux and grub).
Due to the missing udisk-glue package in stretch (no alternative), the udisk-glue service won't start.
Plymouth is not working correctly yet, kiosk mode also fails for the time being.
For the rest I think @macmpi already summed up the general issues re. custom binaries installed by volumioconfig.sh, it would be nice to have updated versions.

Meanwhile I will concentrate on the x86 kernel, trying to use 4.14 stable because of current hardware support. Therefore all firmware needs to be added "manually" because firmware has been removed from the kernel as of version 4.13!!

@volumio
Copy link
Owner

volumio commented Mar 1, 2018

Sorry guys, but I'm very short of time now, and I will be for at least one week. So can't help with compiling those.
May we just use standard binaries (mpd and upmpdcli are in debian repos, we just comment the lines where we install them).
As for udisks-glue, I hope there is the way to port it, because it's really needed (and it's just a python script, so should not be a big deal hopefully).

@gkkpch
Copy link
Collaborator Author

gkkpch commented Mar 1, 2018

Fair enough. As stated I will look after x86 kernel and firmware first. This will take time, so we can solve the binary issue whenever you have time. Just let me know if/when you need an image to compile on

@macmpi
Copy link
Contributor

macmpi commented Mar 5, 2018

As for udisks-glue, I hope there is the way to port it

It does not seem to be the case.
Maybe udiskie can be an alternative?

@xipmix
Copy link
Contributor

xipmix commented Mar 5, 2018

udiskie looks plausible to me. It looks like you might be able to use it without udisks2 installed, which saves a fair bit of disk.

But see also this

@macmpi
Copy link
Contributor

macmpi commented Mar 7, 2018

Just documented in more details ifconfig issues requiring fixes in order Volumio network manager works on Stretch

@ashthespy
Copy link
Collaborator

Quick question - would this be a good time to move to Node v8 LTS as well?
Node v6.x will go into maintenance mode in a month and half (30-04-18)

@volumio
Copy link
Owner

volumio commented Mar 19, 2018

I would feel more confident in doing one change at the time, if not we might not be able to identify the root cause in case of regression.
We could upgrade node either before or later debian.
As of now we did not update node because of a misbehaving module (mdns) in newer node versions

@piffio
Copy link
Contributor

piffio commented Mar 19, 2018

I am also interested in the Node update, do you have any link with more details about the module misbehaviour?

@volumio
Copy link
Owner

volumio commented Mar 19, 2018

No, but you can easily replicate by substituting the node version ( see https://github.com/volumio/Build/blob/master/scripts/volumioconfig.sh#L118 ) and then doing

cd /volumo
rm -rf node_modules
npm install

@ashthespy
Copy link
Collaborator

ashthespy commented Mar 19, 2018

@volumio Is there a list of versions available on the repo? v6.13.0 and 8.10.0 doesn't exist

@volumio
Copy link
Owner

volumio commented Mar 19, 2018

@ashthespy no, as I upload them when I need it. You can however change the link with the one available from official node download links.
I just store them on the repo to avoid issues if\when official node repos move the archive files

@macmpi
Copy link
Contributor

macmpi commented Mar 19, 2018

@ashthespy can you please open a different issue on node update?
This will help tracking each issues separately.
Thanks.

@aiomaster
Copy link

It is a long time ago, but are there some blockers left for upgrading debian for volumio?

@macmpi
Copy link
Contributor

macmpi commented Jun 23, 2019

I think some preparatory work for Buster has been undertaken already...
As Debian Buster release is scheduled for July 6th now, I guess Stretch will not be considered anymore.

@gkkpch
Copy link
Collaborator Author

gkkpch commented Sep 17, 2019

During a first attempt to build for Debian buster in February 2019, we discovered serious issues with building an initramfs and that package versions were still changing, repeatedly breaking the work already done. We therefore decided to delay the work until buster was officially released.
I have recently picked up the work for X86 and will continue this discussion on issue #388

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants