开云体育

ctrl + shift + ? for shortcuts
© 2025 开云体育

Buildroot 2024.11 for R1CBU/R2RFE firmware


 

First of all many thanks to Oleg and Georgy (and Rui Oliveira) for all their hard work on the custom firmware for the X6100!
?
Over the last month or so I have been working on upgrading the base OS ('buildroot') of their firmware to the latest version; a few days ago buildroot released their version 2024.11, so I upgraded the base OS for their firmware to version 2024.11, and I think it is ready for others to play with.
?
I just pushed my buildroot external tree to this repository:
?
For those running Linux, building a new SD card should be very easy - the instructions are here:
?
This is a beta release for those who who are familiar with the software running on the X6100, and don't mind building from source; once the bugs are ironed out, I plan to build and publish an sdcard image.
?
These are some of the highlights of this latest version:
  • latest Linux kernel: 6.11.11
  • latest U-boot: 2024.10
  • newer version of liquidDSP
  • x6100_gui version 0.28.0 (I had to patch it in a few places to make it build without errors - you can see my changes in the 'patches' directory)
  • should always find the SD card as mmc0 thanks to mmc aliases in the device tree
  • uses gpiolib instead of sysfs for controlling GPIO pins, because sysfs has been deprecated
  • names for GPIO pins (instead of numbers), so now to power on Wifi you can just run 'gpioset -t 0 wifi=on'
  • modified aether-x6100-control and x6100-gui to use 'gpioset' instead of working with device files under '/sys/class/gpio'
  • disabled persistent network names, so now the Wifi network device is always wlan0 (instead of becoming wlan1, wlan2, etc after every on/off)
?
There are more changes I made, but I think these are most important that I can think of.
?
The usual (and important) caveat: this is still an early beta version and very likely has a few bugs, but if you are not afraid of trying new things (it won't brick your radio), please give it a try, and let me know if you find any problem.
?
73,
Franco K4VZ
?
?
?
?
?


 

Thanks for the effort in this development Franco!
?
Can you setup Github so that it will compile the releases like Georgy does? I followed the instructions on my WSL Ubuntu 24.XX environment, but it croaked. Some may not have a dedicated development environment, or have talents well suited to troubleshooting compile errors.
?
Great work on getting the base-OS updated!
?
73,
Jason - W5JMT
?


 

Jason,
it will probably be in a few days - this morning I just found a couple of bugs, where the profile has the environment variables 'PAGER' and 'EDITOR' set to invalid paths ('/bin/less' instead of '/usr/bin/less', and 'mcedit', if I remember correctly).
Plus I have a full time job (in lunch break now) and a family.
?
Perhaps, if Georgy is interested, we could use the newer buildroot for some future version of the X6100 R1CBU/R2RFE firmware instead of having two versions.
?
73,
Franco K4VZ


 

Hi Franco,
i have sucessfully build with the updated buildroot on Debian sid.
A first small test showed it boots without problems and start, but FT8 and CW decode don't work.
FT8 has only a black background without waterfall and nothing is decoded.
All other things seem to work.
?
73 de Markus, DB2ZW
?


 

Markus,
thanks for giving it a try and reporting the issue with FT8 and CW decoding.
I am going to look at that over the weekend.
?
Jason,
since Markus was able to build it on Debian, which is very similar to Ubuntu (I use Fedora here), if you post the exact error message you had when trying to build it, we might be able to help you. Perhaps it is just a missing dependency.
Once we figure out the problem, I'll also add a note about that in the README.
?
73,
Franco K4VZ


 

Hi!
?
It's very nice to see development still going strong..
I have been away from the hacking scene and radio in general for a while, it makes me happy to see the projects have taken off. Thanks for doing this.
?
This has far surpassed what I could envision. My only contributions were the very basics of the LCD driver (I did a skeleton of a DRM driver and Oleg reverse engineered all the register values), and did the very basic to get a buildroot started. Again Oleg did many fine tuning on the .dtb and other settings. He the mostly did the library for interfacing with the uC and then all the well known firmware he publishes now.
?
It does sadden me to see some of the things didn't go public. After all, there is something called the GPL. I wish that would change.
?
Anyway, thanks for keeping the project going.
73, Rui


 

On Fri, Dec 13, 2024 at 08:35 PM, Franco Venturi wrote:
Perhaps, if Georgy is interested, we could use the newer buildroot for some future version of the X6100 R1CBU/R2RFE firmware instead of having two versions.
I guess, I'll use your version in one of the future build, but maybe not for the next one. I'm stuck in refactoring and falling deeper and deeper))
--
Georgy // R2RFE


 

Georgy, I understand 100% and, as you can see in the comments here, there are still bugs with FT8 and CW that I need to figure out.
?
This said, I think you may still want to look at the patch I wrote for 'x6100_gui' to make it compile with gcc 14 without errors: - there were a couple of minor issues, but in one case the variable 'qth_val' is defined as an array of pointers to char, instead of a char array (i.e. a C string).
?
Franco


 

Markus,
I found out that sometime between the buildroot version used by Oleg/Georgy and the latest 2024.11 version, PulseAudio changed the names of their devices. For instance what used to be called 'alsa_input.platform-sound.stereo-fallback' is now called 'alsa_input.0.stereo-fallback' and what used to be called 'alsa_output.platform-sound.stereo-fallback' is now called 'alsa_output.0.stereo-fallback'.
Since those names are hardcoded in the source file 'audio.c' in 'x6100_gui', I just added another patch to 'x6100-gui' that fixes those names ().
?
Since I only changed 'x6100-gui', you don't have to rebuild everything from scratch. You can just run these commands:
?
cd x6100-buildroot
git pull
?
Then in the build directory:
?
export BR2_EXTERNAL="$PWD/x6100-buildroot"
rm -fr output/build/x6100-gui-v0.28.0
make
?
With that change I am now able to see the waterfall in the FT8 dialog. I haven't tried decoding though, because I don't have an antenna here in my office.
?
?
Rui,
thanks for the kind words and thanks for all the research and pioneering work you and Oleg did a couple of years ago!
And also thanks to the many others who helped like Steve of Temporarily Offline,? WheezyE, DreamNik, crazycats100, jose_can_u_c, and the many others on #xiegu-x6100-hacking in the TOADs Discord server.
?
73,
Franco K4VZ
?


 

Hi Franco,
with this patch CW Decode and FT8 is working again.
?
For me, I like it when a newer buildroot is used, because the currently used one needs e.g. patches to work with actual Compilers, here gcc-14.2
Thanks for your work.
?
And of course thanks to all the people you have already mentioned here to make the x6100 a better device.
?
73 de Markus, DB2ZW


 

Hi.
Could you also check recorder functionality? Previous version of buildroot built libsndfile without LAME/MPG123 support, event if these packages was selected. I used as a workaround.
Wonder, if it fixed in the new buildroot?
--
Georgy // R2RFE


 

Hi Georgy,
you are right, the recorder does not work.
I build it again with your workaround and now the recorder works.
?
73 de Markus, DB2ZW


 

Franco and others,
?
Thank you all for your work on improving the abilities of the x6100 hardware. It is much appreciated!
?
A wish for the New Year: similar efforts applied to the GSOC device, now gone into non-supported mode by Xiegu.
?
73,
?
Frank
K4FMH


 

Hi Franco,
unfortunately I had not tested everything with ft8, the transmission does not work, there is no sound on the signal.
?
?
73 de Markus, DB2ZW


 

Markus,
thanks for reporting the problem with FT8 TX. Last night I started looking at why in the new buildroot the sun8i-a33-audio soundcard gets reported as 'alsa_card.0' instead of 'alsa_card.platform-sound' like in Georgy's buildroot. Hopefully when I figure that out, I'll also be able to explain the problem with TX. I am starting to see that the Linux sound system is rather complex.
?
Frank,
thanks for the nice words. Unfortunately I don't have a GSOC and my free time is very limited these days, so I won't be able to help you much, but hopefully someone else with a GSOC can take a look at what we found out and did so far and figure out the changes to make it work with the GSOC. Also I suspect that most of this work applies to the new X6200 as well - I am not in that group but hopefully someone there is already making progress on something similar for the X6200.
?
Georgy,
the issue with libsndfile and lame (and mpeg123) is that in buildroot lame has a dependency on libsndfile (), so that when both BR2_PACKAGE_LAME=y and BR2_PACKAGE_LIBSNDFILE=y, then buildroot builds libsndfile first (which gets built without lame) and then lame (because of that dependency). I haven't looked at mpeg123, but I suspect there might be something similar going on there too.
?
73,
Franco


 

On Tue, Dec 17, 2024 at 04:13 PM, Franco Venturi wrote:
the issue with libsndfile and lame (and mpeg123) is that in buildroot lame has a dependency on libsndfile (), so that when both BR2_PACKAGE_LAME=y and BR2_PACKAGE_LIBSNDFILE=y, then buildroot builds libsndfile first (which gets built without lame) and then lame (because of that dependency). I haven't looked at mpeg123, but I suspect there might be something similar going on there too.
I know, but I thought there is a better solution.
--
Georgy // R2RFE


 

Tonight I figured out that the problem with the soundcard not being identified as 'alsa.platform-sound' was actually a problem due to udev (which in buildroot is implemented by 'eudev') where one of the rule files: '78-sound-card.rules' had a line that made it skip assigning ID_PATH and ID_PATH_TAG to the platform sound card. The offending line was introduced by this commit:
Reverting that commit for that specific udev rule file (i.e. commenting out line 56 in '78-sound-card.rules') fixes the problem with the PulseAudio sound device name that I found over the weekend.
?
To work around the circular dependency between libsndfile and lame/mpeg123, I also created a new package called 'libsndfile-with-lame-and-mpeg13', which uses the same version number and all the other attributes of 'libsndfile' but has additional dependencies on lame and mpeg3:
This way the package 'libsndfile-with-lame-and-mpg123' gets built (and installed in the target directory) after lame and mpg123 have been built, and therefore has everything it needs to work with those libraries. I then made x6100-gui select the new 'libsndfile-with-lame-and-mpg123' package.
?
I just committed these two changes to the x6100-buildroot repository:
?
73,
Franco


 

Turns out that the problem with FT8 TX not sending out any signal was due to this line in the sun8i codec module in the Linux kernel:
Once I commented that line out, I could hear the typical FT8 sound coming out from the speaker, and I could see it on the waterfall.
It looks like that line was added to the sun8i code as part of this commit:
?
I just pushed the patch to fix that issue to the X6100 buildroot version 2024.11 repo:
?
Markus,
when you have time, please run a 'git pull', rebuild the kernel, and let me know if FT8 TX works for you.
?
After this issue is confirmed fixed, I'll start working on a GitHub workflow to create an SD card image similar to Georgy's, so others can try it too.
?
73,
Franco


 

Franco, i have rebuild the Kernel and was able to make a? FT8 QSO.
So i think FT8 works now.
?
Again, thanks for your and all the others Work to make the x6100 better. ?
?
73 de Markus, DB2ZW


 

Thanks Markus for the kind words and for confirming that now FT8 TX works.
?
I just created an SD card image for others who want to try it without having to build everything from scratch.
?
The image is available here:
?
A couple of notes:
  • if you write that image on an existing R1CBU firmware SD card, it should retain all the settings (callsign, grid square, etc), since it tries to mount the DATA partition if it finds it. At least this works in my case where I use the command 'dd' under Linux to write the SD card. I am not sure if other programs only write the exact amount of bytes of the sdcard.img file or say add a block of 0 bytes after that, in which case the DATA partition might not be mountable
  • after the first use the network settings (and other useful files like the SSH host keys) are also saved to the SD card (in the 'backups' directory), and there should be no need to reconfigure them after an R1CBU firmware update.
?
Please give it a try and let me know how it goes - I would consider this still a beta, but it won't brick your radio.
?
Again, many thanks to Oleg, Georgy, and Rui for their outstanding work on this custom firmware!
?
73,
Franco K4VZ