The hardest part of every BeagleBone project seems to be getting WiFi working I followed the Adafruit tutorial and used the same TP-Link TL-WN727N as I’ve used before. I mostly had it working last night, but woke to it being off the network this morning. Figuring it was the usual bunk about power management, or wifi-reset services, I serial consoled in and started poking around. wlan0 is nowhere to be found. iwconfig is blank:
lo no wireless extensions.
eth0 no wireless extensions.
usb0 no wireless extensions.
lsusb shows the device, but my linux foo is too weak to poke much further.
Bus 001 Device 002: ID 148f:7601 Ralink Technology, Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Thoughts on what to do next?
dmesg and lsmod output:
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Linux version 3.8.13-bone81 (root@a3-imx6q-wandboard-2gb) (gcc version 4.6.3 (Debian 4.6.3-14) ) #1 SMP Fri Oct 14 16:04:10 UTC 2016
[ 0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=50c5387d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] Machine: Generic AM33XX (Flattened Device Tree), model: TI AM335x BeagleBone
[ 0.000000] Memory policy: ECC disabled, Data cache writeback
[ 0.000000] On node 0 totalpages: 130816
[ 0.000000] free_area_init_node: node 0, pgdat c09051c0, node_mem_map c0982000
[ 0.000000] Normal zone: 1024 pages used for memmap
[ 0.000000] Normal zone: 0 pages reserved
[ 0.000000] Normal zone: 129792 pages, LIFO batch:31
[ 0.000000] AM335X ES2.1 (l2cache sgx neon )
[ 0.000000] PERCPU: Embedded 9 pages/cpu @c0d92000 s14080 r8192 d14592 u36864
[ 0.000000] pcpu-alloc: s14080 r8192 d14592 u36864 alloc=9*4096
[ 0.000000] pcpu-alloc:  0
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 129792
[ 0.000000] Kernel command line: console=tty0 console=ttyO0,115200n8 root=UUID=d7a21ef6-8a08-4f61-996f-5c7cc58e4bdd ro rootfstype=ext4 rootwait fixrtc quiet init=/lib/systemd/systemd
[ 0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[ 0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[ 0.000000] __ex_table already sorted, skipping sort
[ 0.000000] allocated 1048576 bytes of page_cgroup
[ 0.000000] please try ‘cgroup_disable=memory’ option if you don’t want memory cgroups
[ 0.000000] Memory: 511MB = 511MB total
[ 0.000000] Memory: 504988k/504988k available, 19300k reserved, 0K highmem
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
[ 0.000000] vmalloc : 0xe0800000 - 0xff000000 ( 488 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xe0000000 ( 512 MB)
[ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
[ 0.000000] modules : 0xbf800000 - 0xbfe00000 ( 6 MB)
[ 0.000000] .text : 0xc0008000 - 0xc0841ef8 (8424 kB)
[ 0.000000] .init : 0xc0842000 - 0xc087f700 ( 246 kB)
[ 0.000000] .data : 0xc0880000 - 0xc0908180 ( 545 kB)
[ 0.000000] .bss : 0xc0908180 - 0xc0981940 ( 486 kB)
[ 0.000000] Hierarchical RCU implementation.
[ 0.000000] RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=1.
[ 0.000000] NR_IRQS:0 nr_irqs:0 0
[ 0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
[ 0.000000] Total of 128 interrupts on 1 active controller
[ 0.000000] OMAP clockevent source: GPTIMER1 at 24000000 Hz
[ 0.000000] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 178956ms
[ 0.000000] OMAP clocksource: GPTIMER2 at 24000000 Hz
[ 0.000000] Console: colour dummy device 80x30
[ 0.000000] console [tty0] enabled
[ 0.000371] Calibrating delay loop… 993.47 BogoMIPS (lpj=969728)
[ 0.029189] pid_max: default: 32768 minimum: 301
[ 0.029323] Security Framework initialized
[ 0.029379] Mount-cache hash table entries: 512
[ 0.035140] Initializing cgroup subsys cpuacct
[ 0.035162] Initializing cgroup subsys memory
[ 0.035202] Initializing cgroup subsys blkio
[ 0.035289] CPU: Testing write buffer coherency: ok
[ 0.035671] CPU0: thread -1, cpu 0, socket -1, mpidr 0
[ 0.035724] Setting up static identity map for 0x804da4c8 - 0x804da514
[ 0.036660] Brought up 1 CPUs
[ 0.036676] SMP: Total of 1 processors activated (993.47 BogoMIPS).
[ 0.037470] devtmpfs: initialized
[ 0.045877] omap_hwmod: wd_timer2: _wait_target_disable failed
[ 0.097983] pinctrl core: initialized pinctrl subsystem
[ 0.098116] rstctl core: initialized rstctl subsystem
[ 0.098393] regulator-dummy: no parameters
[ 0.098707] NET: Registered protocol family 16
[ 0.099254] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.104876] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
[ 0.105477] platform 49000000.edma: alias fck already exists
[ 0.105495] platform 49000000.edma: alias fck already exists
[ 0.105509] platform 49000000.edma: alias fck already exists
[ 0.106131] gpiochip_add: registered GPIOs 0 to 31 on device: gpio
[ 0.106225] OMAP GPIO hardware version 0.1
[ 0.107040] gpiochip_add: registered GPIOs 32 to 63 on device: gpio
[ 0.107767] gpiochip_add: registered GPIOs 64 to 95 on device: gpio
[ 0.108461] gpiochip_add: registered GPIOs 96 to 127 on device: gpio
[ 0.108718] of_get_named_gpio_flags exited with status 52
[ 0.108734] gpio-rctrl rstctl.4: loaded OK
[ 0.112003] No ATAGs?
[ 0.112019] hw-breakpoint: debug architecture 0x4 unsupported.
[ 0.113299] cpsw.0: No hwaddr in dt. Using 54:4a:16:bb:a5:aa from efuse
[ 0.113320] cpsw.1: No hwaddr in dt. Using 54:4a:16:bb:a5:ac from efuse
[ 0.121574] bio: create slab at 0
[ 0.127850] edma-dma-engine edma-dma-engine.0: TI EDMA DMA engine driver
[ 0.128002] of_get_named_gpio_flags: can’t parse gpios property
[ 0.128124] vmmcsd_fixed: 3300 mV
[ 0.129690] SCSI subsystem initialized
[ 0.129925] usbcore: registered new interface driver usbfs
[ 0.129997] usbcore: registered new interface driver hub
[ 0.130196] usbcore: registered new device driver usb
[ 0.131454] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
[ 0.132373] input: tps65217_pwr_but as /devices/ocp.3/44e0b000.i2c/i2c-0/0-0024/input/input0
[ 0.133640] DCDC1: at 1500 mV
[ 0.134467] vdd_mpu: 925 <–> 1325 mV at 1325 mV
[ 0.135313] vdd_core: 925 <–> 1150 mV at 1125 mV
[ 0.136103] LDO1: at 1800 mV
[ 0.136908] LDO2: at 3300 mV
[ 0.138388] LDO3: 1800 mV
[ 0.139230] LDO4: at 3300 mV
[ 0.139935] tps65217 0-0024: TPS65217 ID 0xe version 1.2
[ 0.140394] omap_i2c 44e0b000.i2c: unable to select pin group
[ 0.140909] omap_i2c 4819c000.i2c: bus 1 rev0.11 at 100 kHz
[ 0.142250] omap_i2c 4819c000.i2c: unable to select pin group
[ 0.142395] media: Linux media interface: v0.10
[ 0.142522] Linux video capture interface: v2.00
[ 0.142595] pps_core: LinuxPPS API ver. 1 registered
Hmmm. I found an older TP-Link TL-WN727N and plugged that in and it works fine…
A guy on amazon says that maybe they’ve changed the chipset in these? If that’s the case, is there a reliable WiFi dongle for the BeagleBone that doesn’t require tremendous effort to get working? It took me 3 before I found the TL-WN727N.
Any Atheros based one is, generally speaking, good to go with Linux. One thing though to be aware of is the proximity of the USB port to HDMI and/or other parts. If you're not using HDMI, turn it off to limit interference. Another thing to do is have your dongle on the end of a 20-30cm USB cable just to get it away from the PCB itself as all designs vary a little even within Atheros and proximity may cause issues.
I’ve got it out on the end of a 6" extender. That and making sure I had a beefy wall wart was a big help in the past. I’d disabled HDMI on other projects, but didn’t this time since it’s out on the extender. Good point though. Worth a shot.
I’ve got Adafuit’s “814” adapter on order. Allegedly it works without much fuss. If that fails, I’ll double down on efforts to find a proper Atheros part.
Thanks for the reply!
Heh. So the Adafruit part was working, but then this morning, it’s decided to come up as wlan1 not wlan0 and is dead to WiFi again. I doubled up my entry in /etc/network/interfaces and it’s back.
I’ll need to punch some holes in the lid of my enclosure so the 3-man IT staff it takes keep Linux happy will be able to breathe in there…
Sure enough. Project I was working on was a gift. I bring it over and WiFi doesn’t work. I’m so completely over BeagleBones.
I am sure going to miss you. sniff sniff.
That’s fine. I’d have said the same thing.
I’ll say this though, this board (and others like it) are competing for mindshare in a pretty competitive space. That WiFi has been such a mess, and seems to only be getting worse isn’t going to help grow the platform.
Any of the "small" usb-wifi adapters has always been painful. With
the hdmi output right next to the usb adapter, unless you disable hdmi
it's very likely to cause issues.. If you use a usb-extension cable
even only a few inches that does help out.
Either way, getting a BeagleBone Black Wireless makes things easier as
the wifi antenna's are far from the hdmi output.
The current design has been trouble with those small usb-wifi adapters.
I have the adapter out on the end of a 6" cable. Even when it worked back home, it was flakey. Even after applying all the power-management voodoo, it was flakey. After applying everyone’s homegrown wifi-reset scripts, it was flakey.
I figured I might run into problems, so I grabbed an Arduino off my bench before I left home. I’m going to knock it out on that today and be done. Bonus, it won’t have to fsck all the time.
On Sat, 24 Dec 2016 12:27:17 -0800 (PST),
firstname.lastname@example.org declaimed the
Bonus, it won't have to fsck all the time.
That... is a sign of either a failing memory... OR of someone who is
not properly shutting down the board (sudo shutdown -h now) and is just
pulling the power.
Even a Windows box won't take pulling the power while it has stuff
pending in RAM that hasn't been written to the disk.
That was kinda my point.
This project was a small stepper for driving a microscope focusing knob and an IR blaster to drive a camera shutter for automating narrow-depth of field image stacking. The goal was to build a delightful tool he didn’t have to think about, and not an ongoing IT headache. It’s my fault for ignoring the warts in Linux (boot speed, GPIO slowness, wifi driver mess, filesystem fragility, security). I had one on hand and I used it, even though it wasn’t a good match for this project.