This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/osmocom-sdr@lists.osmocom.org/.
Andreas Seltenreich andreas+git at gate450.dyndns.orgStored in the last four bytes of the eeprom in network byte order. --- src/rtl_eeprom.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/rtl_eeprom.c b/src/rtl_eeprom.c index 35191de..51024d6 100644 --- a/src/rtl_eeprom.c +++ b/src/rtl_eeprom.c @@ -23,8 +23,10 @@ #ifndef _WIN32 #include <unistd.h> +#include <arpa/inet.h> #else #include <Windows.h> +#include <WinSock2.h> #include "getopt/getopt.h" #endif @@ -84,6 +86,7 @@ void usage(void) "\t[ terratec_plus\tTerratec T Stick+ (DVB-T/DAB)]\n" "\t[-w <filename> write dumped file to device]\n" "\t[-r <filename> dump EEPROM to file]\n" + "\t[-x <Hz> store calibrated XTAL frequency]\n" "\t[-h display this help text]\n" "\nUse on your own risk, especially -w!\n"); exit(1); @@ -262,9 +265,10 @@ int main(int argc, char **argv) int default_config = 0; int change = 0; int ir_endpoint = 0; + uint32_t xtal_freq = 0; char ch; - while ((opt = getopt(argc, argv, "d:m:p:s:i:g:w:r:h?")) != -1) { + while ((opt = getopt(argc, argv, "d:m:p:s:i:g:w:r:x:h?")) != -1) { switch (opt) { case 'd': dev_index = atoi(optarg); @@ -306,6 +310,9 @@ int main(int argc, char **argv) case 'r': filename = optarg; break; + case 'x': + xtal_freq = htonl(atol(optarg)); + break; default: usage(); break; @@ -347,6 +354,14 @@ int main(int argc, char **argv) if (r < 0) return -1; + if(xtal_freq) { + r = rtlsdr_write_eeprom(dev, (void*)&xtal_freq, EEPROM_SIZE-4, 4); + if (r < 0) + fprintf(stderr, "Error while writing XTAL frequency to EEPROM: %i\n", r); + else + fprintf(stderr, "XTAL frequency successfully written.\n"); + } + fprintf(stderr, "Current configuration:\n"); parse_eeprom_to_conf(&conf, buf); dump_config(&conf); -- 1.7.10.4