Hi Team, sorry for my bad English;

I'm trying to run chrony on a low-powered device, arm-926ejs CPU 400MHz and
128MB of ram running Linux 2.6.31.4.26007 with Busybox slapped on top.

I managed to cross compile as I have a toolchain available to me, however,
running chronyd on this device runs with -dd and prints a couple of errors,
then ends up in some sort of infinite loop.

Running within GDB (same happens inside or out):

# gdb --args chronyd -4 -n 'server time.cloudflare.com iburst' -dd
GNU gdb (GDB) 8.3.1
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html
>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "arm-926ejs-linux-gnueabi".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from chronyd...
(gdb) run
Starting program: /root/chronyd -4 -n server\ time.cloudflare.com\ iburst
-dd
2023-11-29T10:01:20Z I:main.c:579:(main) chronyd version DEVELOPMENT
starting (+CMDMON +NTP +REFCLOCK +RTC -PRIVDROP -SCFILTER -SIGND -ASYNCDNS
-NTS -SECHASH -IPV6 +DEBUG)
2023-11-29T10:01:20Z D:util.c:1419:(UTI_OpenFile) Opened
/var/run/chrony/chronyd.pid fd=3 mode=r
2023-11-29T10:01:22Z D:util.c:1403:(UTI_OpenFile) Removed
/var/run/chrony/chronyd.pid
2023-11-29T10:01:22Z D:util.c:1419:(UTI_OpenFile) Opened
/var/run/chrony/chronyd.pid fd=3 mode=W
2023-11-29T10:01:22Z D:local.c:171:(LCL_Initialise) Clock precision
0.000001879 (-19)
2023-11-29T10:01:22Z D:sys_linux.c:294:(get_version_specific_details) Linux
kernel major=2 minor=6 patch=31
2023-11-29T10:01:22Z D:sys_linux.c:321:(get_version_specific_details)
hz=100 nominal_tick=10000 max_tick_bias=1000 tick_update_hz=2
2023-11-29T10:01:22Z D:local.c:683:(lcl_RegisterSystemDrivers) Local
freq=-0.952ppm
2023-11-29T10:01:22Z D:socket.c:1511:(SCK_SetIntOption) setsockopt() failed
fd=3 level=1 name=15 value=1 : Protocol not available
2023-11-29T10:01:22Z D:socket.c:581:(open_ip_socket) Opened UDPv4 socket
fd=3 local=127.0.0.1:323
2023-11-29T10:01:22Z D:util.c:1419:(UTI_OpenFile) Opened /dev/urandom fd=4
mode=R
2023-11-29T10:01:22Z W:main.c:656:(main) Running with root privileges
2023-11-29T10:01:22Z I:reference.c:240:(REF_Initialise) Initial frequency
-0.952 ppm
2023-11-29T10:01:22Z D:clientlog.c:406:(CLG_Initialise) Max records 4096
2023-11-29T10:01:22Z D:socket.c:673:(open_unix_socket) Opened Unix socket
fd=5 local=/var/run/chrony/chronyd.sock
2023-11-29T10:01:22Z D:ntp_sources.c:349:(log_source) Added source
ID#0000000001 (time.cloudflare.com)
2023-11-29T10:01:22Z D:ntp_sources.c:693:(resolve_sources) resolving
time.cloudflare.com
2023-11-29T10:01:22Z D:ntp_sources.c:614:(name_resolve_handler)
time.cloudflare.com resolved to 2 addrs
2023-11-29T10:01:22Z D:ntp_sources.c:553:(process_resolved_name) (1)
162.159.200.123
2023-11-29T10:01:22Z D:socket.c:581:(open_ip_socket) Opened UDPv4 socket
fd=6 remote=162.159.200.123:123 local=0.0.0.0:0
2023-11-29T10:01:22Z D:socket.c:1511:(SCK_SetIntOption) setsockopt() failed
fd=6 level=1 name=45 value=1 : Protocol not available
2023-11-29T10:01:22Z D:ntp_sources.c:478:(change_source_address) Source
ID#0000000001 replaced with 162.159.200.123 (time.cloudflare.com)
2023-11-29T10:01:22Z D:ntp_core.c:1402:(transmit_timeout) Transmit timeout
for 162.159.200.123:123
2023-11-29T10:01:22Z D:socket.c:581:(open_ip_socket) Opened UDPv4 socket
fd=6 remote=162.159.200.123:123 local=0.0.0.0:0
2023-11-29T10:01:22Z D:socket.c:794:(log_message) Sent message fd=6 len=48
2023-11-29T10:01:22Z D:socket.c:733:(handle_recv_error) Could not receive
message fd=6 : Function not implemented
2023-11-29T10:01:22Z D:socket.c:733:(handle_recv_error) Could not receive
message fd=6 : Function not implemented
2023-11-29T10:01:22Z D:socket.c:733:(handle_recv_error) Could not receive
message fd=6 : Function not implemented
2023-11-29T10:01:22Z D:socket.c:733:(handle_recv_error) Could not receive
message fd=6 : Function not implemented
2023-11-29T10:01:22Z D:socket.c:733:(handle_recv_error) Could not receive
message fd=6 : Function not implemented
2023-11-29T10:01:22Z D:socket.c:733:(handle_recv_error) Could not receive
message fd=6 : Function not implemented
2023-11-29T10:01:22Z D:socket.c:733:(handle_recv_error) Could not receive
message fd=6 : Function not implemented
2023-11-29T10:01:22Z D:socket.c:733:(handle_recv_error) Could not receive
message fd=6 : Function not implemented
2023-11-29T10:01:22Z D:socket.c:733:(handle_recv_error) Could not receive
message fd=6 : Function not implemented
2023-11-29T10:01:22Z D:socket.c:733:(handle_recv_error) Could not receive
message fd=6 : Function not implemented
2023-11-29T10:01:22Z D:socket.c:733:(handle_recv_error) Could not receive
message fd=6 : Function not implemented
2023-11-29T10:01:22Z D:socket.c:733:(handle_recv_error) Could not receive
message fd=6 : Function not implemented
2023-11-29T10:01:22Z D:socket.c:733:(handle_recv_error) Could not receive
message fd=6 : Function not implemented
2023-11-29T10:01:22Z D:socket.c:733:(handle_recv_error) Could not receive
message fd=6 : Function not implemented
2023-11-29T10:01:22Z D:socket.c:733:(handle_recv_error) Could not receive
message fd=6 : Function not implemented
2023-11-29T10:01:22Z D:socket.c:733:(handle_recv_error) Could not receive
message fd=6 : Function not implemented
2023-11-29T10:01:22Z D:socket.c:733:(handle_recv_error) Could not receive
message fd=6 : Function not implemented
2023-11-29T10:01:22Z D:socket.c:733:(handle_recv_error) Could not receive
message fd=6 : Function not implemented
2023-11-29T10:01:22Z D:socket.c:733:(handle_recv_error) Could not receive
message fd=6 : Function not implemented
2023-11-29T10:01:22Z D:socket.c:733:(handle_recv_error) Could not receive
message fd=6 : Function not implemented
2023-11-29T10:01:22Z D:socket.c:733:(handle_recv_error) Could not receive
message fd=6 : Function not implemented

This just continues forever

So I'm not quite sure what the issue could be, a couple of calls to
setsockopt return "Protocol not available"

I did notice inside
ntp_io_linux.c:467:
SCK_SetIntOption(sock_fd, SOL_SOCKET, SO_SELECT_ERR_QUEUE, val)

SO_SELECT_ERR_QUEUE is not available in my Linux kernel, according to linux
manpages this became available in 3.10. When compiling I specified :

./configure --sysconfdir="/etc" --host-system=Linux
--host-release=2.6.31.4.26007 --host-machine=armv5tejl --enable-debug
--disable-ipv6 --disable-asyncdns --without-nss

Any ideas? Is my Kernel too old to run chrony? What protocol is not
available? Busybox ntpd seems to work, and I made sure it wasn't running
prior to this.

Reply via email to