- Show a warning when Apple's clang is detected,
because compilation would fail with it. Then
check for a (e.g.) Homebrew-installed version
of GCC (14) and use it instead.
- Don't display multiple meaningless numbers when
(incorrectly) parsing Apple's current LD version
info. Set to 0 on Darwin, unless cross-compiling,
since it only matters in the latter case.
Change-Id: I52236e1d1c349e30850c7786736d820c25b6d2d8
Tested on MacOS Sequoia (Apple Silicon) with the
latest Xcode command line tools, gcc 14
(Homebrew GCC 14.2.0_1) and sdl2 (Homebrew 2.30.9)
Make sure 'gcc' (and 'gcc-ar') is in your PATH
ahead of the Xcode-provided "gcc"(clang). E.g.
by setting up symlinks in /usr/local/bin that
point to gcc-14 and gcc-ar-14.
Notes:
- The appropriate bmp from uisimulator/bitmaps
has to be manually copied to your build folder
and renamed to UI256.bmp, if you want the sim
background to be displayed
Change-Id: I559f33d2165065f913f30c016b85906af380fb81
When building on MacOS:
* greadlink instead of readlink
* gsed instead of sed
* $TMPDIR instead of a hardcoded /tmp
* apply a macos-specific patch
* additional option to GCC
Additionally, don't rely on the system 'isl' stuff; always have binutils
build its own.
The forum post also says that bumping mpfr 3.1.x to 4.1.x, and mpc
from 1.0.x to 1.2.x is needed, but I do not want to do that due to the
possibility of unknown codegen changes.
Change-Id: I18084d392fa927318cc2a1183da7eb2ffa0d5884
IMPORTANT: There is no guarantee this will compile cleanly much less
_work_ on any given target. This is purely to enable future hackery.
Change-Id: Ib58f21b717719fd4325622b446a60779406ae035
Support hw4 units with AXP2101 PMU
Bootloader successfully compiles and loads onto device.
The LCD appears to be identical to hw3 units.
Scroll wheel and buttons work
Audio output works, including volume.
HP/LO detect works
Rockbox build is generic
GPIO gating logic seems to be working as intended now.
- Added new GPIO definitions - some significant overlaps with pins
from previous hardware revisions...
- Added some GPIO definitions for older players we didn't know about
- Add register definitions for AXP2101 from datasheet
(these are very different from AXP192!)
- Add AXP2101 regulator definitions, need to support multiple step
sizes per regulator.
- Verify AXP2101 voltage set multi-range logic
- Verify AXP2101 voltage get multi-range logic
- Make AXP2101 its own driver
- AXP2101 driver should be "minimally viable", though I think
there is some extra functionality that could be implemented.
- Disabling the coulomb counter stuff - we could maybe make
the E-Gauge work for the same purpose, but it only appears to
be used on the debug screen at the moment so it doesn't seem
like it's worth the effort.
- Found new button GPIOs
- Found error in my GPIO setting logic, blue light works now!
- Set LDO/DCDC output voltages to OF's settings, as far as
I can tell.
- Determined we probably want TCS1421_CFG1:0 to be 0x00,
for UFP behavior
- Tested this rb build with both old and new bootloaders on hw1.5,
hw2, hw4 in as many configurations as I can think of, works across
the board.
- Bootloader can install itself on hw4, so nand chip isn't novel
- Uninstallation file can be made by patcher script, works on hw4
- Installation file can be made by patcher script, works on hw4
- Added HW4 to rbutil, manual
Change-Id: I5b75782273e81c2c6f2b9c79501c8b7cbf88391f
This uses the piper engine.
Peninsular Spanish sounds markedly different from Central/South American
Spanish, so it seems prudent to offer both.
...We'll see how the masses feel.
Change-Id: Idfd3edd92c2dde7f9288afd99f474e59984689c9
This uses Piper with a Peninsular Spanish voice.
I'd like to add Mexican Spanish as well, but then we'd have to use a
different TTS engine. Espeak is relatively crappy, and gtts relies on a
remote service.
Change-Id: I5099f5cc4db5cc037efb5a77c023d4da4c73e813
The 'struct font' definition says:
const void *offset; /* offsets into bitmap data,
uint16_t if bits_size < 0xFFDB else uint32_t*/
However convbdf was unconditionally using 'unsigned short' without
checking bits_size. This generated a bogus table if used with an
uncapped SYSFONT due to offeset overflows. And a pile of complier
warnings.
That said, we're still capping SYSFONT at 255 chars due to space
constraints -- 14-Rockbox-mix jumps from 2.6K to 1022K if left
uncapped. Yowza.
Change-Id: I4577da08ab1633ab7abbc167523196f38c8a348a
We moved to SDL2 but still had the SDL1 'sdl-config' executable
used in one place. Additionally, all comments and the help text
referenced the wrong executable name.
Change-Id: Ie2efa80d27be5f6391fc84e49e207aa2aac26e72
Now no matter how [de]normalized the input strings are, we will
normalize them to the best of our ability in what we use.
This adds a dependencey for Perl's Unicode::Normalize.
Change-Id: I13e275692ea33a463b19f3a499ea06ce1acbb44a
This should be a no-op for .lang files, but it can matter when
generating talk clips, as those are based on the raw filename.
Change-Id: Ia449ae7668818e4bf093347fd0fb15fa5b67fa69
This is particularly useful for classical music, where track names like
"symphony no.5" are common -- We want to voice this as "symphony number
5" instead.
Change-Id: I3607dfccbafee2174519760b30636e0db0aad819
GMP 4.3.2 was quite old even at the time of the GCC 4.9.4 release, and
it refuses to compile out of the box on modern toolchains (eg GCC 14)
due to issues in the configure script. Instead of trying to backport
fixes, just bump it up to 6.1.2, the final release in the 6.1.x series
that was current when GCC 4.9.4 was released.
Meanwhile, with the update to GMP, the also-quite-old MPFR 3.1.0 fails
to compile; instead bump it up to 3.1.6, which is the final release in
the 3.1.x series.
Change-Id: I356c07282b20629c90fb0de1b8be40d2c55bbefc
Since we can easily create our own install files for erosqnative,
modify script to create fresh install image from bootloader.erosq
or add bootloader to installation manifest of stock update file
to uninstall rockbox.
USAGE:
hibyos_nativepatcher.sh <mkrbinstall/mkstockuboot> [arguments depend on mode, see below]
hibyos_nativepatcher.sh mkrbinstall <OFVERNAME (erosq or eros_h2)>
<path/to/output> <path/to/bootloader.erosq> <HWVER (hw1hw2 or hw3)>
Output file will be path/to/output/erosqnative_RBVER-HWVER-OFVERNAME.upt.
Only the Hifiwalker H2 v1.3 uses "eros_h2", everything else uses "erosq".
hibyos_nativepatcher.sh mkstockuboot <path/to/OFupdatefile.upt>
Output file will be path/to/OFupdatefile-rbuninstall.upt.
Change-Id: I16bc6e43c42f99475ebdd5ec1ac1bae047129745
This is a script to patch a native bootloader
(bootloader.*) into a stock OF firmware image (update.upt).
Usage: hibyos_nativepatcher.sh <path/to/update.upt>
<path/to/bootloder.*>
Resulting file will be placed next to the original update, and will
be named [$orig_name]_patched_[$rbver].upt
Now with some rudimentary error checking at key points!
Works on macos.
Works on linux, at least debian in docker. Linux
usage requires 7z and genisoimage.
Change-Id: I2878e7ab4652b73f44c6f1efd54047953f636c86
bootloader passes the player version to rockbox for LCD init changes
Credit ZappBranigan2972 on forums for original changes
Credit Bilgus for devicedata additions
Change-Id: Ia2ca493edef49b7457e84dc19b05397dc915fa5a
On hosts running Python 3.12, building the hosted MIPS toolchain fails
on glib with the error
Traceback (most recent call last):
File "<string>", line 2, in <module>
ModuleNotFoundError: No module named 'imp'
gmake[6]: *** [Makefile:982: install-codegenPYTHON] Error 1
gmake[6]: Leaving directory '/tmp/rbdev-build/build-glib-2.46.2/gio/gdbus-2.0/codegen'
due to 'imp' being removed from Python 3.12 after a long deprecation
period. The module is imported by automake's py-compile script, but
in newer versions of automake this has been updated to use 'importlib'
instead, so running autoreconf fixes this.
We need to patch m4macros/glib-gettext.m4 to avoid an error running
autoreconf (see: https://gitlab.gnome.org/GNOME/glib/-/issues/1159):
ac-wrapper: autoreconf: warning: auto-detected versions not found ( 2.69 2.69); falling back to latest available
autoreconf-2.71: export WARNINGS=
autoreconf-2.71: Entering directory '.'
autoreconf-2.71: configure.ac: not using Gettext
autoreconf-2.71: running: aclocal --force -I m4macros ${ACLOCAL_FLAGS}
am-wrapper: aclocal: warning: auto-detected versions not found (1.15); falling back to latest available
m4macros/glib-gettext.m4:39: error: m4_copy: won't overwrite defined macro: glib_DEFUN
m4macros/glib-gettext.m4:39: the top level
autom4te-2.71: error: /usr/bin/m4 failed with exit status: 1
aclocal-1.16: error: /usr/bin/autom4te-2.71 failed with exit status: 1
autoreconf-2.71: error: aclocal failed with exit status: 1
This problem goes away in glib 2.47.5 when they switched to using
upstream gettext.
Change-Id: I878a9d7086d17c6de43470b6e5f14917f0ae1bb9
Turns out the 'gtts' tool on the buildserver is too old to support
Bulgarian. Once this is dealt with, go ahead and switch back.
Change-Id: I507b3b736a722569a2050a2e1f61ed4dce210a44
The former one ('cori') had some very pathological corner cases
especiallly when voicing single letters. This one is just
better all around.
Change-Id: I275256a637cf70ba196aafdecc24038bfe841955