Hi,
I'm posting this as s new thread, as I have a number of running question threads out regarding the project.
Status update:
The system is now a beta release. I have now progressed to the point that I think and hope that the system can be used (at least for people who know what they are doing and with a USB DAC), as core functionality seems to be stable and working.
I'm therefore posting what I have done here and will update with links to files. If anyone wants to try the same and contribute to improving it, please feel free. The hardware is cheap compared with Raspberry Pi and has some advantages (especially regarding USB implementation).
As I will only be using it to output to USB DAC and will connect through Ethernet, so have removed a certain amount of support from the kernel. Building a custom kernel is relatively easy using the Armbian build system, if you need other modules.
Results 1 to 9 of 9
-
2017-02-17, 06:01 #1
- Join Date
- Sep 2015
- Posts
- 218
Squeezelite / Jivelite on Pine64 nearing usable state
Last edited by Learnincurve; 2017-03-01 at 13:21.
-
2017-02-17, 06:11 #2
- Join Date
- Sep 2015
- Posts
- 218
What I did
Hardware spec:
Pine64+ (2GB) with official LCD screen and C4 labs surround
Modified surround:
- glued screen into front bezel
- countersunk m3, flathead bolts
- ordered custom aluminium stand to hold device in "alarm-clock" position (not yet delivered/mounted)
- 5v Power supply through EULER connection pins
Planned mod (not yet implemented):
- Implement power filter as described at:
http://forum.pine64.org/attachment.php?aid=439
Base system: Armbian pine64 legacy / Ubuntu Xenial Desktop on Samsung Evo+ 32GB
- apt installed:
libsdl2-dev libsdl1.2-dev liblua5.1-dev liblua5.2-dev libluajit-5.1-dev libsdl-image1.2-dev libsdl-ttf2.0-dev libsdl-gfx1.2-dev libexpat1-dev libtool libtool-bin liblua5.4-dev liblua5.3-dev
- apt removed:
blueman bluez bluex-obexd bluez-tools bluetooth libreoffice* openoffice.org-hyphenation firefox:armhf
- built and installed ARM64 luajit from:
https://github.com/sindrom91/LuaJIT
- built and installed jivelite from
https://github.com/ralph-irving/jivelite
LIST][*]built and installed squeezelite from
https://github.com/avafinger/pine64-touchscreen[*]configured xorg.conf to use tslib[/LIST]
- Built minimal kernel, with performance governor default, removed builtin snd_usb_audio and hid and compiled as loadable modules (necessary for DAC detection).
- Much removed: including Wifi, Bluetooth, Filesystems and network protocols that I will not used.
- dpkg installed using technique described at:
https://www.armbian.com/pine64/ > Kernels > Default
- turned-up LCD backlight to 100% using technique described at:
http://forum.pine64.org/showthread.php?tid=2896
jivelite-autoload:
- Modified /etc/default/nodm to disable mouse cursor:
Code:# Options for the X server NODM_X_OPTIONS='-nolisten tcp -nocursor'
Enable GPIO pin and allow to accept input from autologin user (for jivelite screensaver):
- edit /etc/rc.local -
Code:#allow squeezer user to set screen brightnes echo 362 > /sys/class/gpio/export && chgrp squeezer /sys/class/gpio/export && chmod 220 /sys/class/gpio/export sleep 1 echo out > /sys/class/gpio/gpio362/direction && chgrp squeezer /sys/devices/soc.0/1f02c00.pinctrl/gpio/gpio362/direction && chmod 664 /sys/devices/soc.0/1f02c00.pinctrl/gpio/gpio362/direction sleep 1 chgrp squeezer /sys/devices/soc.0/1f02c00.pinctrl/gpio/gpio362/value && chmod 664 /sys/devices/soc.0/1f02c00.pinctrl/gpio/gpio362/value exit 0
- Created ~/.xsessionrc for autologin user:
Code:#!/bin/sh sleep 2 && exec /opt/jivelite/bin/jivelite #sleep to allow LCD backlight settings to take effect
Modified jivelite:
- resized some wallpapers to 1024x600 resolution and modified wallpaper loader
- Included LCD screen backlight off/on to:
BlankScreenSaverApplet.lua
- Tuned text scrolling by changing refresh rate and scrolling values, for smoother scroll.
Working:
- System boots
- Squezelite loads
- Jivelite loads
- 1024x600 skins mostly look nice (much work done by Ralphy since this thread was first announced). Thanks to Ralphy
- Connects to LMS running in local network
- "Plays" local and streaming content.
- Blank screensaver works well and turns off LCD backlight
- Touchscheen works well if jivelite runnning in context of autologin user
- Gb ethernet works well and correctly.
- PCM playback tested and working up to 24b@384k
Not yet implemented:
- USB audio out tweaks as discussed at:
- https://ubuntuforums.org/showthread.php?t=1608913
- working, fully patched RT kernel (reverted to standard, low latency kernel)
- 3.13 USB improvements patch backported to 3.10.104
- PWM management of LCD backlight brightness
Known issues:
- Jivelite scrolling text is still slightly jumpy.
- Some screensavers (analog clock) not optimised for 1024x600 resolution.
- Some graphics not positioned correctly on 1024x600 resolution
- Can't get touchscreen to work if loading jivelite as root (even with tslib_test behaving correctly and loading with tslib environment variables)
- Jivelite splashscreen not correctly centered when running in context of autologin user (looks better when loading from root shell).
- Top LH "stop" button in jivelite UI works, but if a "stop" screensaver is configured, touch does not wake the screen
- DSD (native) playback is being silently converted to PCM on my system due to non-XMOS dac and (probably) kernel 3.10 It still sounds good, but this is not native DSD. I have ordered a XMOS DAC and will look at ways to backport the native DSD support from a later kernel if Armbian can't supoort the LCD on 4.x before I'm done.
Last edited by Learnincurve; 2017-03-03 at 02:51. Reason: corrections
-
2017-02-17, 07:24 #3
- Join Date
- Sep 2015
- Posts
- 218
Files available at:
https://drive.google.com/open?id=0B1...2M0Z3hibkJ4QU0
32GB sdcard image
pwd: Pine64
-
2017-02-17, 07:58 #4
- Join Date
- Dec 2016
- Location
- The Netherlands
- Posts
- 29
Thanks for your post, you've done a lot of good work.
It seems that this link is not working.
I am especially interested in an aarch64 version of luajit, as I would like to build a touch screen all-in-one mediaplayer based on an Odroid C2.
Can you enlighten me on what you did? / have you found a working aarch64 version of luajit?
-
2017-02-17, 08:28 #5
- Join Date
- Sep 2015
- Posts
- 218
-
2017-02-22, 06:52 #6
- Join Date
- Sep 2015
- Posts
- 218
Update:
Latest jivelite supports 1024x600 resolution out of the box. No skin patching required.
1024x600 wallpapers and patch now available on Google Drive
You will still need to patch the BlankScreensaver applet to turn off the LCD when blank.Last edited by Learnincurve; 2017-02-22 at 07:49.
-
2017-02-28, 05:36 #7
- Join Date
- Sep 2015
- Posts
- 218
Update:
New kernel deb's and DSD-capable squeezelite compiled from:
https://github.com/marcoc1712/squeez...d_by_Mansr_sox
thanks to Marco Curti
on google drive.
Tested with new kernel and squeezelite, bit-perfect playback of PCM up to 384k@24bit and DSD256 is working into my USB DAC.
Notes:
- The previous kernel had issues finding the DAC due to SND_USB_AUDIO and HID support being compiled in rather than modular, so you will need to replace the kernel if your DAC is not picked up.
- For PCM and DoP, the packaged squeezelite is fine, but you will need the home-compiled version (remove the package), if you want to support native output of DSD streams.
Last edited by Learnincurve; 2017-03-01 at 13:46.
-
2017-03-02, 06:22 #8
- Join Date
- Sep 2015
- Posts
- 218
NOTE on DSD!!!
For me, the version of squeezelite from yesterday doesn't handle dsd256, whereas the version from the day before does. For anyone who downloaded the latest Image and who needs to be able to play DSD256 files, please change the symlink in /opt to point to the older version.
NOTE: For me, with my DAC, neither of the squeezelite builds are passing a true DSD stream. This is due to limitations in ALSA, due both to the kernel version that we are still forced to use with the Pine64 and that Native DSD is, for the moment at least, limited to XMOS-based DACS.Last edited by Learnincurve; 2017-03-03 at 02:55.
-
2017-03-30, 13:18 #9
- Join Date
- Dec 2016
- Location
- The Netherlands
- Posts
- 29
As I'm new to Linux and building packages myself: can you let me know what exactly you did to get Luajit working on your Pine64.
I have no idea what to do to get it working on my Odroid C2.
I really do like the hw specs of the C2, but the almost complete lack of support is quite a disapointment to me.