Fiio X5 3rd gen || 2x AKM 4490 || Balanced Out || DSD || DXD | DTS | Android || Dual Card Slot
Jun 27, 2018 at 12:48 PM Post #13,666 of 15,897
Dear friend,

Do you mean that 'cry' is included in 6 music files, but from search only one could be found? Those files have all been added to the media library, right?

Best regards
Brooko has it right, "Cry" should show up first, he doesn't care about the order but I think it is only logical that it shows up first.

Also, what about the Lyrics server? And proper sort of Albums & Artists in the Music app?

80-20180627_102203_2e6410246f81d549272abab7a30278bf04dcb2ec.jpg
Cry appears 7th on this list. None of those songs shown should be in the list before "Cry" - sorry makes no sense.
 
Last edited:
Jun 28, 2018 at 11:31 AM Post #13,667 of 15,897
Can the fiio X5 iii pass the data while in DAC mode to coaxial ?
I need a DAP that could take the signal from PC and send them to coxial to use with my Hugo :) (For watching movies, clips...)
 
Jul 2, 2018 at 4:15 AM Post #13,668 of 15,897
Brooko has it right, "Cry" should show up first, he doesn't care about the order but I think it is only logical that it shows up first.

Also, what about the Lyrics server? And proper sort of Albums & Artists in the Music app?

80-20180627_102203_2e6410246f81d549272abab7a30278bf04dcb2ec.jpg
Cry appears 7th on this list. None of those songs shown should be in the list before "Cry" - sorry makes no sense.
Dear friend,

We have reported the issue you mentioned about the sorting in searching function to the engineer. Currently, we may not fix that.
As for the lyric issue, please try to set the correct artist and title name to see if it helps? We will try to improve the lyric matching in update.

Best regards
 
FiiO Stay updated on FiiO at their sponsor profile on Head-Fi.
 
https://www.facebook.com/FiiOAUDIO https://twitter.com/FiiO_official https://www.instagram.com/fiioofficial/ https://www.fiio.com support@fiio.com
Jul 2, 2018 at 4:19 AM Post #13,669 of 15,897
Can the fiio X5 iii pass the data while in DAC mode to coaxial ?
I need a DAP that could take the signal from PC and send them to coxial to use with my Hugo :) (For watching movies, clips...)
Dear friend,

Sorry, the coaxial out of the X5III could not work when using as DAC.

Best regards
 
FiiO Stay updated on FiiO at their sponsor profile on Head-Fi.
 
https://www.facebook.com/FiiOAUDIO https://twitter.com/FiiO_official https://www.instagram.com/fiioofficial/ https://www.fiio.com support@fiio.com
Jul 2, 2018 at 7:54 AM Post #13,670 of 15,897
Hi all,

A few interesting updates, initially only for the (software) tech savvy for testing. Hopefully I'll be able to release an easily flashable kernel for everyone soon.

As promised, I've reached out to @FiiO to request the latest kernel source code for the X5iii as per the GPL, and they have kindly released the code for general use. So after careful review of the code (spoiler alert: there's lots of low hanging fruit), I've created a build environment and compiled the first (basic) optimised kernel for the FiiO X5iii FW 1.2.1.

Features:
- Overclocked CPU from 1416MHz to 1704MHz (buttery smooth UI)
- Overclocked GPU from 400 to 700MHz (more responsive screen)
- Undervolted CPU & GPU (less heat, longer battery life)
- Re-compiled toolset with Linaro toolchain as opposed to GCC (more optimised, leaner meaner kernel)
- More to come soon

Warning/Disclaimer:
i) Whilst this will not brick your player, it is likely to invalidate your warranty. Usual disclaimers apply.
ii) The voltage/clock settings have worked well for my specific RK3188 chip, but can (and will) vary on other chipsets because of the die material. YMMV.

Download

http://www.mediafire.com/file/wjqivdd2y7pbnl2/boot.zip/file

Installation:
Requirements:
- Vanilla X5iii v1.2.1 firmware
- TWRP 2.8.5.0
- rkflashtool (Linux, MacOS preferrably, though you can find the binaries for Windows)
- kernel performance tool, eg: Kernel Adiutor or similar
- patience...

1) Backup existing kernel
1.1) reboot to bootloader (adb reboot bootloader from Windows/MacOS/Linux)
1.2) rkflashtool r boot > boot_backup.img (this is important - it will be your backup boot.img if ever you need to restore)

2) Flash new kernel
2.1) rkflashtool w boot < boot.img
(Don't worry if you get a message saying 'premature end-of-file reached' - it just means that the new kernel is smaller than the old one. Which is a Good Thing.)
2.2) Reboot: rkflashtool b

3) On first boot, reboot to TWRP (adb reboot recovery)
3.1) Wipe-> Advanced Wipe _> wipe only kernel and dalvik partition
3.2) Reboot

4) Enjoy!

Troubleshooting

If for whatever reason the player doesn't boot or you wish to return to previous firmware:

i) Unplug USB cable
ii) Press Power button for 30+ seconds until blue power button turns off
iii) Press and hold Previous + Power button for 30 seconds until player turns on and boots to TWRP
iv) adb push boot_backup.img /sdcard/
v) Install -> images -> boot_backup.img -> Boot
vi) Flash and boot back to previous kernel

Observations/Tips
i) For those of you who have complained that media search times are poor, there's a reason why. The default scheduler is cfq, which is a fair-balanced scheduler but performs poorly with large media folders. If you have root and/or flashed my test kernel, select deadline and report back to see if media seek/play times are improved
ii) Run Kernel Adiutor and try and get a long-term report of the CPU states the FiiO player spends most time in. With the performance governor (the fastest) you should see the maximum clock speed of 1704MHz being the longest time spent, but YMMV. Please report back so I'll implement and fine-tune governors and schedulers as required for best musical enjoyment
iii) Some of the kernel drivers are pretty outdated, no fault to FiiO as they've wisely chosen to use the most stable performing ones (instead of bleeding edge). I'd like this new kernel stream to focus on performance and optimisation, but some things may break in the process. If so please report back and I'll post fixes as quickly as they come.

Next Steps
Quite a lot actually. There's a lot of potential with this player now that the kernel source code has been opened up. I'm focussing on the following as next steps:

i) Optimised NAND algorithms by Rockchip to increase memory read performance
ii) F2FS support to support one of the fastest android filesystems
iii) exFAT/NTFS updated drivers
iv) Texas Instruments drivers upgrade
v) Cirrus Logic drivers upgrade
vi) And requests :)

Depending on how technical this thread becomes I might decide to move it to the xda forum for a more cohesive discussion and feedback on this specific kernel. It will depend on the level of interest for an optimised kernel for the FiiO players.

I'd also be happy to build an optimised kernel for the FiiO X7ii but (cough) I don't have one. So if anyone is interested in helping me... :)

Enjoy your new leaner, faster, cooler, feature-rich kernel. As always, feedback and comments much appreciated!
 

Attachments

  • boot.zip
    5.4 MB · Views: 0
Last edited:
Jul 2, 2018 at 7:58 AM Post #13,671 of 15,897
Hi all,

A few interesting updates, initially only for the (software) tech savvy for testing. Hopefully I'll be able to release an easily flashable kernel for everyone soon.

As promised, I've reached out to @FiiO to request the latest kernel source code for the X5iii as per the GPL, and they have kindly released the code for general use. So after careful review of the code (spoiler alert: there's lots of low hanging fruit), I've created a build environment and compiled the first (basic) optimised kernel for the FiiO X5iii FW 1.2.1.

Features:
- Overclocked CPU from 1416MHz to 1704MHz (buttery smooth UI)
- Overclocked GPU from 400 to 700MHz (more responsive screen)
- Undervolted CPU & GPU (less heat, longer battery life)
- Re-compiled toolset with Linaro toolchain as opposed to GCC (more optimised, leaner meaner kernel)
- More to come soon!

Warning/Disclaimer:
i) Whilst this will not brick your player, it is likely to invalidate your warranty. Usual disclaimers apply.
ii) The voltage/clock settings have worked well for my specific RK3188 chip, but can (and will) vary on other chipsets because of the die material. YMMV.

To Flash:

Requirements:
- Vanilla X5iii v1.2.1 firmware
- TWRP 2.8.5.0
- rkflashtool
- kernel performane tool, eg: Kernel Adiutor or similar
- patience...

1) Backup existing kernel
i) reboot to bootloader
ii) rkflashtool r boot > boot_backup.img

2) Flash new kernel
i) rkflashtool w boot < boot.img

3) On first boot, reboot to TWRP and wipe kernel/dalvik. Reboot

4) Enjoy!

Troubleshooting

If for whatever reason the player doesn't boot or you wish to return to previous firmware:

i) Unplug USB cable
ii) Press Power button for 30+ seconds until blue power button turns off
iii) Press and hold Previous + Power button for 30 seconds until player turns on and boots to TWRP
iv) adb push boot_backup.img /sdcard/
v) Install -> images -> boot_backup.img -> Boot
vi) Flash and boot back to previous kernel

Observations/Tips

i) For those of you who have complained that media search times are poor, there's a reason why. The default scheduler is cfq, which is a fair-balanced scheduler but performs poorly with large media folders. If you have root and/or flashed my test kernel, select deadline and report back to see if media seek/play times are improved
ii) Run Kernel Adiutor and try and get a long-term report of the CPU states the FiiO player spends most time in. With the performance governor (the fastest) you should see the maximum clock speed of 1704MHz being the longest time spent, but YMMV. Please report back so I'll implement and fine-tune governors and schedulers as required for best musical enjoyment
iii) Some of the kernel drivers are pretty outdated, no fault to FiiO as they've wisely chosen to use the most stable performing ones (instead of bleeding edge). I'd like this new kernel stream to focus on performance and optimisation, but some things may break in the process. If so please report back and I'll post fixes as quickly as they come.

Next Steps

Quite a lot actually. There's a lot of potential with this player now that the kernel source code has been opened up. I'm focussing on the following as next steps:

i) Optimised NAND algorithms by Rockchip to increase memory read performance
ii) F2FS support to support one of the fastest android filesystems
iii) exFAT/NTFS updated drivers
iv) Texas Instruments drivers upgrade
v) Cirrus Logic drivers upgrade
vi) And requests :)

Depending on how technical this thread becomes I might decide to move it to the xda forum for a more cohesive discussion and feedback on this specific kernel. It will depend on the level of interest for an optimised kernel for the FiiO players.

I'd also be happy to build an optimised kernel for the FiiO X7ii but (cough) I don't have one. So if anyone is interested in helping me... :)

Enjoy your new leaner, faster, cooler, feature-rich kernel. As always, feedback and comments much appreciated!
This looks even better than Lurker's modified firmwares. Great job :D
 
Jul 2, 2018 at 8:02 AM Post #13,672 of 15,897
This looks even better than Lurker's modified firmwares. Great job :D

Hadn't noticed anyone posting any firmware. Would be good to incorporate my kernel into these new ROMs. Do you have a link?
 
Jul 2, 2018 at 8:04 AM Post #13,673 of 15,897
Hadn't noticed anyone posting any firmware. Would be good to incorporate my kernel into these new ROMs. Do you have a link?
Lurker only does modified firmwares for the ibasso DX200 and DX150, not the X5iii. I should have specified. Sorry for the confusion.
 
Jul 2, 2018 at 8:10 AM Post #13,674 of 15,897
Lurker only does modified firmwares for the ibasso DX200 and DX150, not the X5iii. I should have specified. Sorry for the confusion.

No worries. Thanks go out to @FiiO as well for making the source code available. Hopefully we'll be able to create great aftermarket support for all android-based FiiO hardware...
 
Jul 2, 2018 at 8:12 AM Post #13,675 of 15,897
No worries. Thanks go out to @FiiO as well for making the source code available. Hopefully we'll be able to create great aftermarket support for all android-based FiiO hardware...
Is Fiio willing to or able to incorporate your kernel upgrade into their future firmware releases? Understandably, quite a lot of X5iii owners do not use head fi and an even smaller number would carry out this procedure.
 
Last edited:
Jul 2, 2018 at 9:31 AM Post #13,676 of 15,897
They're more than welcome to do so, but they're not obliged to under the GPL. Also, I'm not sure if my changes will be to everyone's tastes. A hardware vendor should (mainly) focus on optimising hardware and put in safe settings for software to maximise the user base as much as possible.

That said if FiiO want to get in touch (on the X5 or any other of their Android players) I'll be more than happy to point them to my code changes.
 
Jul 2, 2018 at 1:46 PM Post #13,677 of 15,897
Android illiterate, my age dates me back to CPM/DOS, etc.

Anyway to dual boot Android so a user could have OEM set-up as well as the modified version?

Also anyone ever do an automated upgrade for dummies, like an auto install or batch file of some kind?
 
Jul 2, 2018 at 2:28 PM Post #13,678 of 15,897
Short answer - yes to both, but it's likely to be messy, at least in the short term.

Long answer - Rockchip (not FiiO) package their android OEMs in a non-standard way to other vendors (such as HTC, Samsung). So, for example, to achieve dual booting on the FiiO, you'd need to modify the bootloader to first check if there's bootable custom firmware (boot.img) on the sdcard (in which case boot from it) or else revert to the boot.img in the boot partition. Problem is, you need to flash this code into the bootloader, and if you get it wrong you've effectively bricked the FiiO. I've done this before on other rockchip variants (such as the (in)famous kodi boxes) as they've allowed you some degree of flexibility that you could restore via USB port, but there's little documentation for the FiiO yet. If I know of a fool-proof way to restore the bootloader via USB, I'll try it.

As to the auto-upgrade option, yes this is coming once there's an easy way to flash custom recovery software on the FiiO. Right now there isn't a quick way, as you need to become root first then flash the custom recovery file, then flash a custom ROM, then upgrade. So it's easy from then onwards.

Bottom line - if there's enough demand for a custom ROM (X5, X7 et al), I'll be tempted to build an automated build server which will just fire off custom ROM OTA updates in the same vein as normal vendors do. It will all depend on how many users would want to run custom firmwares on their FiiO players. I've done this before on Android (and custom Rockbox-ed iPods), so with enough demand (and vendor+community support) this should easily be achieved.
 
Jul 2, 2018 at 5:33 PM Post #13,679 of 15,897
Short answer - yes to both, but it's likely to be messy, at least in the short term.

Long answer - Rockchip (not FiiO) package their android OEMs in a non-standard way to other vendors (such as HTC, Samsung). So, for example, to achieve dual booting on the FiiO, you'd need to modify the bootloader to first check if there's bootable custom firmware (boot.img) on the sdcard (in which case boot from it) or else revert to the boot.img in the boot partition. Problem is, you need to flash this code into the bootloader, and if you get it wrong you've effectively bricked the FiiO. I've done this before on other rockchip variants (such as the (in)famous kodi boxes) as they've allowed you some degree of flexibility that you could restore via USB port, but there's little documentation for the FiiO yet. If I know of a fool-proof way to restore the bootloader via USB, I'll try it.

As to the auto-upgrade option, yes this is coming once there's an easy way to flash custom recovery software on the FiiO. Right now there isn't a quick way, as you need to become root first then flash the custom recovery file, then flash a custom ROM, then upgrade. So it's easy from then onwards.

Bottom line - if there's enough demand for a custom ROM (X5, X7 et al), I'll be tempted to build an automated build server which will just fire off custom ROM OTA updates in the same vein as normal vendors do. It will all depend on how many users would want to run custom firmwares on their FiiO players. I've done this before on Android (and custom Rockbox-ed iPods), so with enough demand (and vendor+community support) this should easily be achieved.

It would be very interesting if Fiio would evaluate your work & if they like it then build your improvements into their products. They should of course pay you something for the ipr if you were willing. That way, all owners could benefit from community experience & Fiio get a better product & increased knowledge. Win-Win-Win.
 
Jul 2, 2018 at 6:17 PM Post #13,680 of 15,897
Thanks, appreciate the thoughts. I'm not doing this for money, and can't promise that I'll always get things right, so don't want to manage expectations wrongly. I've learnt a lot about audio on this forum that I wouldn't have learnt elsewhere and am thus happy to give something back to the X5 community.

On that note, if anyone has any other (android-based) FiiO player I'll be happy to take a look at it and build a similar modded kernel. Please get in touch if so!

In the meantime if anyone has any feedback/suggestions on the modded X5 kernel let me know!
 

Users who are viewing this thread

Back
Top