Go Down

Topic: WiFi Access point slow to start (Read 1 time) previous topic - next topic

Torquad

Jul 08, 2014, 03:15 pm Last Edit: Jul 08, 2014, 04:35 pm by Torquad Reason: 1
I'm currently doing a project that requires the arduino (Yun) to be in use only for a minute or so and runs on battery power. Most of the time the arduino will be off, and only turned on when it's needed.

The problem I'm facing is that the access point from the arduino takes about a minute (min 45 sec) to appear from when I power the arduino on, and that's something I want to cut down if possible.

I initially thought it might be a bridge issue since they take about the same time to begin, but when I stopped using Bridge.begin(), the time for the wifi didn't change.
I've looked into the rc.d start scripts: S09handle_wifi_reset, S18rename-wifi-if-access-point, S20network.
S20network seems the most relevant and the lines:
Code: [Select]

/sbin/wifi down
/sbin/wifi up

call the script that seems to start broadcasting the network. Since the priority is pretty high, this should get called early, and the wifi shouldn't take that long to start up. If I call /etc/rc.d/S20network start, it takes about 10 seconds to complete, so I don't think it's the script itself that's slow. I don't want to be moving lines around when I don't know why they're placed where they are, and the documentation from openwrt hasn't helped me understand that just yet. Is this a problem that I can fix by changing priorities or moving lines around, or is there some other constraint I'm not aware of?

Thanks in advance,
Kevin

federicofissore

I don't think you can achieve a better timing ATM.
Kernel needs to start and understand what devices it can use (flash storage in particular). JFFS needs to initialize, wifi driver needs to start.
If you come up with a stable tweak, please share it. Everyone would like a faster boot sequence.

Torquad

I'm going to look into it a little further. I have a few ideas that I want to look into, for example, if I know I'll always use wifi as an access point I can take out a few lines having to do with connecting.

Right now I get:
Code: [Select]
[    0.000000] Linux version 3.3.8 (jenkins@jenkins) (gcc version 4.6.3 20120201 (prerelease) (Linaro GCC 4.6-2012.02) ) #1 Fri Jun 20 12:50:18 CEST 2014
[    0.000000] bootconsole [early0] enabled
[    0.000000] CPU revision is: 00019374 (MIPS 24Kc)
[    0.000000] SoC: Atheros AR9330 rev 1
[    0.000000] Clocks: CPU:400.000MHz, DDR:400.000MHz, AHB:200.000MHz, Ref:25.000MHz
[    0.000000] Determined physical RAM map:
[    0.000000]  memory: 04000000 @ 00000000 (usable)
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] Zone PFN ranges:
[    0.000000]   Normal   0x00000000 -> 0x00004000
[    0.000000] Movable zone start PFN for each node
[    0.000000] Early memory PFN ranges
[    0.000000]     0: 0x00000000 -> 0x00004000
[    0.000000] On node 0 totalpages: 16384
[    0.000000] free_area_init_node: node 0, pgdat 803836d0, node_mem_map 81000000
[    0.000000]   Normal zone: 128 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 16256 pages, LIFO batch:3
[    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[    0.000000] pcpu-alloc: [0] 0
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 16256
[    0.000000] Kernel command line:  board=Yun console=ttyATH0,250000 mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,14656k(rootfs),1280k(kernel),64k(nvram),64k(art),15936k@0x50000(firmware) rootfstype=squashfs,jffs2 noinitrd
[    0.000000] PID hash table entries: 256 (order: -2, 1024 bytes)
[    0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
[    0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
[    0.000000] Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes
[    0.000000] Writing ErrCtl register=00000000
[    0.000000] Readback ErrCtl register=00000000
[    0.000000] Memory: 60936k/65536k available (2565k kernel code, 4600k reserved, 650k data, 180k init, 0k highmem)
[    0.000000] SLUB: Genslabs=9, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS:51
[    0.000000] Calibrating delay loop... 265.42 BogoMIPS (lpj=1327104)
[    0.080000] pid_max: default: 32768 minimum: 301
[    0.080000] Mount-cache hash table entries: 512
[    0.080000] NET: Registered protocol family 16
[    0.090000] gpiochip_add: registered GPIOs 0 to 29 on device: ath79
[    0.090000] MIPS: machine is Arduino Yun
[    0.530000] Setting DogStick2 GPIO
[    0.550000] bio: create slab <bio-0> at 0
[    0.550000] SCSI subsystem initialized
[    0.560000] usbcore: registered new interface driver usbfs
[    0.560000] usbcore: registered new interface driver hub
[    0.560000] usbcore: registered new device driver usb
[    0.570000] Switching to clocksource MIPS
[    0.570000] NET: Registered protocol family 2
[    0.570000] IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.580000] TCP established hash table entries: 2048 (order: 2, 16384 bytes)
[    0.580000] TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
[    0.580000] TCP: Hash tables configured (established 2048 bind 2048)
[    0.580000] TCP reno registered
[    0.580000] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.590000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.590000] NET: Registered protocol family 1
[    0.610000] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.610000] JFFS2 version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.620000] msgmni has been set to 119
[    0.620000] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254)
[    0.620000] io scheduler noop registered
[    0.630000] io scheduler deadline registered (default)
[    0.630000] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled
[    0.640000] ar933x-uart: ttyATH0 at MMIO 0x18020000 (irq = 11) is a AR933X UART
[    0.640000] console [ttyATH0] enabled, bootconsole disabled
[    0.650000] m25p80 spi0.0: found w25q128, expected m25p80
[    0.650000] m25p80 spi0.0: w25q128 (16384 Kbytes)
[    0.650000] 7 cmdlinepart partitions found on MTD device spi0.0
[    0.660000] Creating 7 MTD partitions on "spi0.0":
[    0.660000] 0x000000000000-0x000000040000 : "u-boot"
[    0.660000] 0x000000040000-0x000000050000 : "u-boot-env"
[    0.670000] 0x000000050000-0x000000ea0000 : "rootfs"
[    0.670000] mtd: partition "rootfs" set to be root filesystem
[    0.670000] mtd: partition "rootfs_data" created automatically, ofs=7A0000, len=700000
[    0.680000] 0x0000007a0000-0x000000ea0000 : "rootfs_data"
[    0.680000] 0x000000ea0000-0x000000fe0000 : "kernel"
[    0.680000] 0x000000fe0000-0x000000ff0000 : "nvram"
[    0.690000] 0x000000ff0000-0x000001000000 : "art"
[    0.690000] 0x000000050000-0x000000fe0000 : "firmware"
[    0.710000] ag71xx_mdio: probed
[    0.720000] eth0: Atheros AG71xx at 0xba000000, irq 5
[    1.270000] eth0: Found an AR7240/AR9330 built-in switch
[    2.300000] eth1: Atheros AG71xx at 0xb9000000, irq 4
[    2.850000] ag71xx ag71xx.0: eth1: connected to PHY at ag71xx-mdio.1:04 [uid=004dd041, driver=Generic PHY]
[    2.850000] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    2.850000] ehci-platform ehci-platform: Generic Platform EHCI Controller
[    2.860000] ehci-platform ehci-platform: new USB bus registered, assigned bus number 1
[    2.890000] ehci-platform ehci-platform: irq 3, io mem 0x1b000000
[    2.910000] ehci-platform ehci-platform: USB 2.0 started, EHCI 1.00
[    2.910000] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    2.910000] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    2.910000] usb usb1: Product: Generic Platform EHCI Controller
[    2.920000] usb usb1: Manufacturer: Linux 3.3.8 ehci_hcd
[    2.920000] usb usb1: SerialNumber: ehci-platform
[    2.920000] hub 1-0:1.0: USB hub found
[    2.920000] hub 1-0:1.0: 1 port detected
[    2.930000] Initializing USB Mass Storage driver...
[    2.930000] usbcore: registered new interface driver usb-storage
[    2.930000] USB Mass Storage support registered.
[    2.930000] input: gpio-keys-polled as /devices/platform/gpio-keys-polled/input/input0
[    2.940000] sdhci: Secure Digital Host Controller Interface driver
[    2.940000] sdhci: Copyright(c) Pierre Ossman
[    2.940000] usbcore: registered new interface driver ushc
[    2.940000] TCP cubic registered
[    2.950000] NET: Registered protocol family 17
[    2.950000] Bridge firewalling registered
[    2.950000] 8021q: 802.1Q VLAN Support v1.8
[    2.960000] VFS: Mounted root (squashfs filesystem) readonly on device 31:2.
[    2.960000] Freeing unused kernel memory: 180k freed
[    3.250000] usb 1-1: new high-speed USB device number 2 using ehci-platform
[    3.460000] usb 1-1: New USB device found, idVendor=058f, idProduct=6254
[    3.460000] usb 1-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[    3.470000] usb 1-1: Product: USB2.0Hub
[    3.550000] hub 1-1:1.0: USB hub found
[    3.550000] hub 1-1:1.0: 4 ports detected
[    3.830000] usb 1-1.4: new high-speed USB device number 3 using ehci-platform
[    4.040000] usb 1-1.4: New USB device found, idVendor=058f, idProduct=6366
[    4.040000] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    4.040000] usb 1-1.4: Product: Mass Storage Device
[    4.050000] usb 1-1.4: Manufacturer: Generic
[    4.050000] usb 1-1.4: SerialNumber: 058F0O1111B1
[    4.060000] scsi0 : usb-storage 1-1.4:1.0
[    5.040000] Error: Driver 'gpio-keys-polled' is already registered, aborting...
[    5.060000] scsi 0:0:0:0: Direct-Access     Multi    Flash Reader     1.00 PQ: 0 ANSI: 0
[    6.270000] Registered led device: ds:green:usb
[    6.270000] Registered led device: ds:green:wlan
[    9.610000] JFFS2 notice: (526) jffs2_build_xattr_subsystem: complete building xattr subsystem, 1 of xdatum (1 unchecked, 0 orphan) and 16 of xref (0 dead, 5 orphan) found.
[   10.790000] sd 0:0:0:0: [sda] Attached SCSI removable disk
[   38.060000] Loading modules backported from Linux version master-2014-05-22-0-gf2032ea
[   38.070000] Backport generated by backports.git backports-20140320-37-g5c33da0
...
[   39.680000] NTFS driver 2.1.30 [Flags: R/O MODULE].
[   39.730000] Error: Driver 'gpio-keys-polled' is already registered, aborting...
[   39.860000] PPP generic driver version 2.4.2
[   39.910000] ip_tables: (C) 2000-2006 Netfilter Core Team
[   40.030000] NET: Registered protocol family 24
[   40.070000] nf_conntrack version 0.5.0 (954 buckets, 3816 max)
[   40.510000] i2c /dev entries driver
[   40.550000] Linux video capture interface: v2.00
[   40.730000] fuse init (API version 7.18)
[   40.800000] usbcore: registered new interface driver uvcvideo
[   40.800000] USB Video Class driver (1.1.1)

from dmesg and I'm trying to figure out what/why there is that ~28 second delay (I'm not using an SD at the moment) after the:
Code: [Select]
sd 0:0:0:0: [sda] Attached SCSI removable disk

federicofissore

It should be the flash storage initialization, but it's advanced stuff, I'm not expert

Go Up