0

I have Automotive Grade Linux (Halibut 8.0.0) installed on a Qualcomm board. I can bring up ethernet okay.

sa8155:~# ifconfig eth0 up
sa8155:~# udhcpc
udhcpc: started, v1.29.3
udhcpc: sending discover
udhcpc: sending select for 10.0.0.112
udhcpc: lease of 10.0.0.112 obtained, lease time 604800
/etc/udhcpc.d/50default: Adding DNS 75.75.75.75
/etc/udhcpc.d/50default: Adding DNS 75.75.76.76

Notice that DHCP reports that the name servers are being retrieved correctly.

And I can ping the name servers:

sa8155:~# ping 75.75.75.75
PING 75.75.75.75 (75.75.75.75): 56 data bytes
64 bytes from 75.75.75.75: seq=0 ttl=58 time=8.973 ms
64 bytes from 75.75.75.75: seq=1 ttl=58 time=19.634 ms
64 bytes from 75.75.75.75: seq=2 ttl=58 time=11.391 ms

However, I cannot use DNS to resolve any names.

sa8155:~# nslookup debian.org
nslookup: write to '127.0.0.1': Connection refused
;; connection timed out; no servers could be reached

I noticed that /etc/resolv.conf is empty other than this comment:

sa8155:~# cat /etc/resolv.conf 
# Generated by Connection Manager

I tried manually editing /etc/resolv.conf like so:

sa8155:~# cat /etc/resolv.conf 
# Generated by Connection Manager
search example.com local.test
nameserver 75.75.75.75
nameserver 75.75.76.76

But that seems to disable the ethernet interface altogether.

sa8155:~# nslookup www.google.com
nslookup: write to '127.0.0.1': Connection refused
;; connection timed out; no servers could be reached

I tried manually adding a single host and ip address pair to /etc/hosts, but I could not edit that file even though I am root.

sa8155:~# ls -alF /etc/ | grep host
-rw-r--r--  1 root     root         26 Nov 13  2019 host.conf
-rw-r--r--  1 root     root     111912 Nov 13  2019 hostapd.conf
-rw-r--r--  1 root     root          7 Nov 13  2019 hostname
-rw-r--r--  1 root     root        237 Nov 13  2019 hosts
-rw-r--r--  1 root     root          0 Nov 13  2019 hosts.allow
-rw-r--r--  1 root     root          0 Nov 13  2019 hosts.deny
sa8155:~# chmod 766 /etc/hosts
chmod: changing permissions of `/etc/hosts': Read-only file system

So I tried using ConnMan to add the DNS entries.

Here is the procedure

However, connmanctl services does not return the expected list.

sa8155:~# connmanctl services
Error: The name net.connman was not provided by any .service files
sa8155:~# 

UPDATE: cat /etc/nsswitch.conf

sa8155:/etc/systemd/network# cat /etc/nsswitch.conf 
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         compat
group:          compat
shadow:         compat

hosts:          localuser files myhostname  mdns4_minimal [NOTFOUND=return] dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis
sa8155:/etc/systemd/network# 
  • 1
    I wonder if your "hosts" entry in /etc/nsswitch.conf is pointing to something on localhost...? – Jeff Schaller May 19 at 12:20
1

I had some similar issue with a Yocto distribution on Tegra. My problem was that both connman and systemd-networkd were configured and fighting to get the resource.

In case you use systemd, make sure no network configuration matches the interfaces you want to use with connman.

networkd .network file are in /etc/systemd/network. That folder is now empty since I want connman to manage all my interfaces.

| improve this answer | |
  • Great hint. /etc/systemd/network is empty for me too but the service is still running. – Alex Ryan May 22 at 22:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.