Jetpack 4.3 problem with integrated wifi

Hi team,

I’ve made a fresh install of Jetpack4.3 on my TX2. And I wanted to use wireless as a default networking. It works, as long as I logon to it, but until someone logs on, it seems like it’s not even requesting DHCP. Is this a known issue? Using a usb wireless stick, it works fine. And using wired networks works fine too.

Thanks for any insight!

I’m not sure what you would do to configure this to be on prior to a GUI login, but this is the standard method of Ubuntu (and many Linux distributions). I tend to avoid WiFi, but Ubuntu docs on the topic would apply to the Jetsons the same as any other Ubuntu system (docs out in the wild should be correct on the topic).

I guess I didn’t explain well what I’ve done. My bad :) I’ve freshly flashed the TX2, logged on to the GUI from the console, configured wifi so that it knows the SSID + key. At this point everything works fine, until I reboot. At the reboot, wifi isn’t working… until somehow I log to the console and then within 2-3 seconds, wifi works. It’s as if the wifi doesn’t kick in until someone is logged in.

I will check Ubuntu forums, but if this is normal behavior, it’s news to me as the Ubuntu I used on my laptop doesn’t behave this way. Wifi just works after reboot, no need for login. And I’d love to avoid Wi-Fi, but the actual use case (a diff drive robot) has to be wireless…

I’ll look on Ubuntu forums but I believe this should be working out of the JetPack box :)

Adding what I think is the relevant dmesg output… at the ~57 second marker, this is when I logged to the console and then, it connects just fine…

[    5.548393] found wifi platform device bcmdhd_wlan
[    5.551282] wifi_platform_get_country_code_map: could not get country_code_map
[    5.551289] wifi_plat_dev_drv_probe:platform country code map is not available
[    5.551304] Power-up adapter 'DHD generic adapter'
[    5.551312] wifi_platform_set_power = 1
[    5.758116] wifi_platform_bus_enumerate device present 1
[    5.800654] wifi_platform_bus_enumerate device present 0
[    5.806907] F1 signature read @0x18000000=0x17214354
[    5.914651] F1 signature OK, socitype:0x1 chip:0x4354 rev:0x1 pkg:0x2
[    5.939289] DHD: dongle ram size is set to 786432(orig 786432) at 0x180000
[    5.939425] wifi_platform_get_mac_addr
[    5.959562] ids dhd_log_netlink_init
[    6.002437] wl_create_event_handler(): thread:wl_event_handler:1427 started
[    6.002599]  wl_event_handler :
[    6.002606] tsk Enter, tsk = 0xffffffc1d3e81a90
[    6.002680] dhd_attach(): thread:dhd_watchdog_thread:142a started
[    6.002771] dhd_attach(): thread:dhd_dpc:142b started
[    6.002876] dhd_attach(): thread:dhd_rxf:142c started
[    6.002884] dhd_deferred_work_init: work queue initialized
[    6.004523]
               Dongle Host Driver, version 1.201.82 (r)
               Compiled from
[    6.005123] Register interface [wlan0]  MAC: 00:04:4b:8c:ea:6d

[    6.005129] dhd_prot_ioctl : bus is down. we have nothing to do
[    6.006769] sdhci-tegra 3440000.sdhci: Tuning done, restoring the best tap value : 60
[    6.008213] wifi_platform_set_power = 0
[    6.023664] Mass Storage Function, version: 2009/09/11
[    6.023673] LUN: removable file: (no medium)
[    6.031808] using random self ethernet address
[    6.038046] using random host ethernet address
[    6.082503] rndis0: HOST MAC 32:85:5e:ce:b8:3c
[    6.082780] rndis0: MAC 32:85:5e:ce:b8:3d
[    6.086454] usb0: HOST MAC 32:85:5e:ce:b8:3e
[    6.086486] usb0: MAC 32:85:5e:ce:b8:3f
[    6.086505] tegra-xudc-new 3550000.xudc: exiting ELPG
[    6.094128] tegra-xudc-new 3550000.xudc: exiting ELPG done
[    6.094149] tegra-xudc-new 3550000.xudc: ep 0 (type: 0, dir: out) enabled
[    6.094179] tegra-xudc-new 3550000.xudc: entering ELPG
[    6.095518] tegra-xudc-new 3550000.xudc: entering ELPG done
[    6.096097] tegra-xudc-new 3550000.xudc: exiting ELPG
[    6.100861] tegra-xudc-new 3550000.xudc: exiting ELPG done
[    6.100887] tegra-xudc-new 3550000.xudc: entering ELPG
[    6.102297] tegra-xudc-new 3550000.xudc: entering ELPG done
[    6.110858] l4tbr0: port 1(rndis0) entered blocking state
[    6.110862] l4tbr0: port 1(rndis0) entered disabled state
[    6.111322] device rndis0 entered promiscuous mode
[    6.123070] IPv6: ADDRCONF(NETDEV_UP): rndis0: link is not ready
[    6.136204] l4tbr0: port 2(usb0) entered blocking state
[    6.136209] l4tbr0: port 2(usb0) entered disabled state
[    6.136916] device usb0 entered promiscuous mode
[    6.148885] IPv6: ADDRCONF(NETDEV_UP): usb0: link is not ready
[    6.257497] tegra-vi4 15700000.vi: subdev ov5693 2-0036 bound
[    6.982277] CPU1: shutdown
[    7.001786] psci: Retrying again to check for CPU kill
[    7.001793] psci: CPU1 killed.
[    7.078723] CPU2: shutdown
[    7.097770] psci: Retrying again to check for CPU kill
[    7.097775] psci: CPU2 killed.
[    7.263507] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[    7.345156] gpio tegra-gpio wake18 for gpio=101(M:5)
[    7.347721] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[    7.379133] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[    7.379243]

               Dongle Host Driver, version 1.201.82 (r)
               Compiled from
[    7.379250] wl_android_wifi_on in
[    7.379254] wifi_platform_set_power = 1
[    7.590330] vdd-1v8: voltage operation not allowed
[    7.590348] sdhci-tegra 3440000.sdhci: could not set regulator OCR (-1)
[    7.609951] vdd-1v8: voltage operation not allowed
[    7.609958] sdhci-tegra 3440000.sdhci: could not set regulator OCR (-1)
[    7.631122] vdd-1v8: voltage operation not allowed
[    7.631143] sdhci-tegra 3440000.sdhci: could not set regulator OCR (-1)
[    7.633650] vdd-1v8: voltage operation not allowed
[    7.633669] sdhci-tegra 3440000.sdhci: could not set regulator OCR (-1)
[    7.742017] vdd-1v8: voltage operation not allowed
[    7.742030] sdhci-tegra 3440000.sdhci: could not set regulator OCR (-1)
[    7.742953] vdd-1v8: voltage operation not allowed
[    7.742963] sdhci-tegra 3440000.sdhci: could not set regulator OCR (-1)
[    7.744556] vdd-1v8: voltage operation not allowed
[    7.744564] sdhci-tegra 3440000.sdhci: could not set regulator OCR (-1)
[    7.744589] sdhci-tegra 3440000.sdhci: Tuning done, restoring the best tap value : 60
[    7.745232] F1 signature read @0x18000000=0x17214354
[    7.750634] F1 signature OK, socitype:0x1 chip:0x4354 rev:0x1 pkg:0x2
[    7.751276] DHD: dongle ram size is set to 786432(orig 786432) at 0x180000
[    7.836373] dhdsdio_write_vars: Download, Upload and compare of NVRAM succeeded.
[    7.878737] dhd_bus_init: enable 0x06, ready 0x06 (waited 0us)
[    7.879132] gpio tegra-gpio-aon wake69 for gpio=59(FF:3)
[    7.879213] gpio tegra-gpio-aon wake69 for gpio=59(FF:3)
[    7.879216] Enabling wake69
[    7.880239] wifi_platform_get_mac_addr
[    7.882815] Firmware up: op_mode=0x0005, MAC=00:04:4b:8c:ea:6d
[    7.888186] clm path from default:/lib/firmware/brcm/bcmdhd.clm_blob
[    7.888238] Skipping the clm download. len:0 memblk:          (null)
[    7.891004] dhd_preinit_ioctls pspretend_threshold for HostAPD failed  -23
[    7.897136] Firmware version = wl0: May 17 2019 16:59:40 version 7.35.349.79 (r714996 CY) FWID 01-e527e2ad
[    7.900128] dhd_interworking_enable: failed to set WNM info, ret=-23
[    8.013194] CFGP2P-ERROR) wl_cfgp2p_add_p2p_disc_if :
[    8.013195] P2P interface registered
[    8.021557] WLC_E_IF: NO_IF set, event Ignored
[    8.033711] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[    9.840392] zram: Added device: zram0
[    9.840731] zram: Added device: zram1
[    9.841047] zram: Added device: zram2
[    9.841369] zram: Added device: zram3
[    9.859976] zram0: detected capacity change from 0 to 1029165056
[    9.881600] Adding 1005040k swap on /dev/zram0.  Priority:5 extents:1 across:1005040k SS
[    9.884979] zram1: detected capacity change from 0 to 1029165056
[    9.895812] Adding 1005040k swap on /dev/zram1.  Priority:5 extents:1 across:1005040k SS
[    9.899395] zram2: detected capacity change from 0 to 1029165056
[    9.910232] Adding 1005040k swap on /dev/zram2.  Priority:5 extents:1 across:1005040k SS
[    9.916083] zram3: detected capacity change from 0 to 1029165056
[    9.925943] Adding 1005040k swap on /dev/zram3.  Priority:5 extents:1 across:1005040k SS
[   57.225708] [12-20 03:35:25.139] wl_cfg80211_connect: Connectting with dc:a5:f4:b9:f8:0f channel (64) ssid "MYWIFI", len (8)

[   57.307130] [12-20 03:35:25.220] wl_notify_connect_status: wl_bss_connect_done succeeded with dc:a5:f4:b9:f8:0f
[   57.309393] [12-20 03:35:25.222] dhd_dump_eapol_4way_message: ifidx: 0 ETHER_TYPE_802_1X [RX] : M1 of 4way
[   57.332864]  wl_bss_connect_done :
[   57.332872] Report connect result - connection succeeded
[   57.334374] [12-20 03:35:25.247] dhd_dump_eapol_4way_message: ifidx: 0 ETHER_TYPE_802_1X [TX] : M2 of 4way
[   57.336078] [12-20 03:35:25.249] dhd_dump_eapol_4way_message: ifidx: 0 ETHER_TYPE_802_1X [RX] : M3 of 4way
[   57.336259] [12-20 03:35:25.249] dhd_dump_eapol_4way_message: ifidx: 0 ETHER_TYPE_802_1X [TX] : M4 of 4way
[   57.354997] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[   57.358188] [12-20 03:35:25.271] wl_notify_connect_status: wl_bss_connect_done succeeded with dc:a5:f4:b9:f8:0f
[   57.389210] dhd_ndo_add_ip: ndo ip addr add failed, ret = -23
[   57.389224] dhd_inet6_work_handler: Adding host ip for NDO failed -23
[   57.434079] ifidx:0 DHCP - REQUEST [TX]
[   57.439809] ifidx:0 DHCP - ACK [RX]

I learned something, @linuxdev. It is indeed a Ubuntu thing that I guess I just learned that the connection can be set to be not “available to all users”. This is set in the UI (probably also with some command line).

I suppose it was done for security reasons, but otherwise I too have to wonder why WiFi does not become active until a user logs in. By logging in the settings of a particular user trigger the connection. There is probably a way to start WiFi as a service (non-blocking if not available), but I have not set this up. Many distributions use NetworkManager to handle this, and this part is likely in common to many distributions, but each distribution can have its own nuance in configuring NetworkManager. I do not know the details of how this might be changed into a service at multi-user.target instead of graphical.target.

I guess for security reasons too. In the UI, you have the option to enable it for all users and when you do that, it starts up at boot time, 7-9 seconds in the dmesg I see it coming up. I was just “surprised” by this behavior, and that it’s not the default but I guess it’s more of a “server” version of ubuntu vs desktop that I otherwise use, which has maybe a different default when setting up the networking upon installation.