OpenWrt Forum Archive

Topic: Transcend WifiSD / PQI AirCard / FluCard Pro

The content of this topic has been archived between 29 Mar 2018 and 30 Apr 2018. There are no obvious gaps in this topic, but there may still be some posts missing at the end.

Received my FluCard this morning. the software seems nicer than the other vendor's, but I can't configure it, as the Android App hangs everytime hmm

It HAS a buzzer and uses it. It also get way hotter than my two other cards.

I will try to configure it via the web interface if I can connect, but it gets so hot simply idling that I doubt I will ever use it, too bad for the most expensive of the range.

Having all three major brand/model, I can confirm than my favourite hardware is the PQI AirCard, cheaper and more modular thanks to the µSD port. Now if the stock firmware was better, it wouldn't hurt.

HD macro shot coming to the first post.

*** EDIT ***

Almost forgot : the RX and TX pin are clearly labeled. No GND, but you can use any point available for that.
Also different marking on the KeyAsic, which is older (40th week of 2011) and the wifi chip.

*** EDIT 2 ***

just for reference, here is the bootlog (via serial console)

KA Boot 04240806
div=9f00
ÿscu: 11c33303,00000000,00040404,00009f00,1
Status 20200804

Hit to stop :  0
Status 20200804
RCA0 36, RCA1 c3
....reading program.bin
.........................<mmc1>go 208000
starting pid 27, tty '/dev/console': '/etc/init.d/rcS'
0328a Hello console ...
len of newsub = 4
Finding:"Auto Start Wifi": Got: "sta"
start httpd
this is power up app
flu app, call interval 0
set pid 53
len of newsub = 4
Finding:"Auto Start Wifi": Got: "sta"
mlan0     regioncode:65
get available router and update wep.conf or wpa.conf
connect router start
get available router start
lo        Interface doesn't support scanning.

uap0      Interface doesn't support scanning : Invalid argument

Reading from Config.trek
got preset router: ssid=*****, key=********,mode=0, protocol=1
final router: ssid=*****, key=********,mode=0, protocol=1
connect router end
var : 1
ioctl[SIOCSIWPMKSA]: Invalid argument
ioctl[SIOCSIWESSID]: Invalid argument
ioctl[SIOCSIWPMKSA]: Invalid argument
mlan0     htcapinfo:67239936
udhcpc (v1.18.3) started

configure IP address

Sending discover...
Sending discover...
Sending select for 192.168.0.47...
Lease of 192.168.0.47 obtained, lease time 86400

configure IP address

nameserver 192.168.0.128
interface: mlan0
ip: 192.168.0.47
netmask: 255.255.255.0
router: 192.168.0.128
hostname: FluCard
rcS done

Please press Enter to activate this console.
starting pid 86, tty '/dev/ttyS0': '-/bin/ash '
# cat /proc/meminfo
MemTotal:          26696 kB
MemFree:           18172 kB
Buffers:             108 kB
Cached:             5692 kB
SwapCached:            0 kB
Active:             2300 kB
Inactive:           3904 kB
Active(anon):        404 kB
Inactive(anon):        0 kB
Active(file):       1896 kB
Inactive(file):     3904 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:           436 kB
Mapped:              532 kB
Shmem:                 0 kB
Slab:                988 kB
SReclaimable:        268 kB
SUnreclaim:          720 kB
KernelStack:         224 kB
PageTables:           92 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:       13348 kB
Committed_AS:       4512 kB
VmallocTotal:     825344 kB
VmallocUsed:         324 kB
VmallocChunk:     824608 kB
# cat /proc/cpu
cpu/     cpuinfo
# cat /proc/cpuinfo
Processor       : ARM926EJ-S rev 5 (v5l)
BogoMIPS        : 50.79
Features        : swp half fastmult edsp java
CPU implementer : 0x41
CPU architecture: 5TEJ
CPU variant     : 0x0
CPU part        : 0x926
CPU revision    : 5

Hardware        : KeyASIC Ka2000 EVM
Revision        : 0000
Serial          : 0000000000000000
# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00100000 00010000 "SPI NOR Flash Partition1"
mtd1: 00480000 00010000 "SPI: kernel"
# cat cmdline
root=/dev/ram0 rw console=ttyS0,38400n8 mem=32M initrd=0x500000,3M
# cat iomem
00000000-01ffffff : System RAM
  0021c000-00489fff : Kernel text
  0048a000-004ba2a7 : Kernel data
a0001000-a0001fff : spi_KeyAsic_ssi.0
a0004000-a00040ff : serial_ka2000
a0009000-a00090ff : KeyAsic_sdhci.1
  a0009000-a00090ff : mmc1
a000b000-a000bfff : ka_sdmmc
  a000b000-a000bfff : ka_sdmmc
# cat modules
sd8xxx 158318 1 - Live 0xbf05d000
mlan 223159 1 sd8xxx, Live 0xbf01c000 (P)
ka2000_sdio 7242 0 - Live 0xbf015000
ka2000_sdhc 55193 0 - Live 0xbf000000
# cat partitions
major minor  #blocks  name

 179        0    7782400 mmcblk0
 179        1    7778304 mmcblk0p1
# cat version
Linux version 2.6.32.28 (root@colinux) (gcc version 4.4.1 (Sourcery G++ Lite 2010q1-202) ) #2716 PREEMPT Wed Feb 1 07:09:10 UTC 2012

As you can see, same CPU, less Bogomips (maybe a lower frequency ?), different usage of ram (no ramdisk ?)

(Last edited by pixelk on 13 Oct 2013, 14:08)

Yesterday, I received the modified PQI Air Card that pixelk has so generously loaned me. I got more work done in 10 minutes over the serial port than I did in a number of hours without it. I have a working rootfs that boots with a wifi AP up and running, and telnetd, ftpd, httpd, and udhcpd working. I'm going to clean up all the debugging from my boot scripts, get the wifi client behavior working, and release the first version of the buildroot setup on github (along with a pre-built firmware update). That'll probably all happen tomorrow afternoon or evening (CDT). A huge thanks to pixelk for the serial access that made this possible.

Sorry everyone - I was busy with family stuff yesterday, so I haven't had time to put this up yet. Hopefully I have time tonight to finish it up. All that's left is a few details, but changes in my buildroot setup frequently require a complete rebuild, which takes over a half hour. These last few iterations are time consuming. I do have time to type up an overview of what I'm doing though.

I'll be releasing a initramfs3.gz that should work for any kcard-based wifisd card, though only officially tested with a PQI AirCard. The entire thing has been built from scratch using buildroot, with a couple of exceptions. I have no way of building the closed-source kernel modules that ship with these cards, so those are taken straight from PQI's firmware update. I also have been unable to properly build a working hostapd with buildroot, but since PQI distributes a static binary, I can use theirs for now.

This initramfs3.gz contains busybox with tons of daemons, including telnetd, ftpd, dhcpd, and httpd. It also includes dropbear for ssh, lua for scripting, and rsync.

It uses the jffs2 partition to store a lot more user-configurable things than the stock images for these devices. In this release, /root is a symlink to /mnt/mtd/root, /var/www is a symlink to /mnt/mtd/www and during boot, /mnt/mtd/etc is bind-mounted on /etc. This means that all changes to /etc at run time persist. The only thing in /etc you can't configure at run-time is inittab. It runs before the bind mount, and ends up buried under it. There's still some details to work out there to make firmware updates work smoothly with all of this.

My entire buildroot configuration will be up on github when it's ready (very soon, I promise!). Right now, buildroot doesn't build the kernel, but I should be able to get Dmitry Grinberg's patch working automatically in buildroot, allowing anyone to build their own kernel. The kernel would have to be locked at a version that works with the proprietary modules. I'll be distributing Dmitry Grinberg's kernel build with my initial release.

When I get it up on github, the repository will contain two folders: board and config. Once you have buildroot set up on your local machine, you will be able to just copy these two folders into your buildroot folder (or symlink from buildroot out to the folders), run a couple commands, and your image will start to compile. You'll be able to modify the configs for buildroot and busybox, as well as the layout of the root filesystem, before building your image. That will make it pretty easy to build a custom image for yourself.

Unlike the stock images that come with these devices, my initial release won't have an HTTP UI to interact with for changing the config or viewing photos. It also won't identify itself to smartphone apps that work with these devices. I do intend to support this eventually by adding this functionality in lua. That will have to wait for a future release. For the first release, you will have to modify your conf files in /etc directly over ssh, telnet, or ftp (which will all be started on boot by default).

Also unlike the stock images, my initial release will lack the ability to connect to a wifi access point. It can only host an access point. My very first priority after the initial release is to add support for this.

With any luck, my next post will be a release.

Great job! I'm sure everyone here appreciates your work.
Waiting warmly for a GitHub link.

Released!

I've published version 0.1 of my kcard-buildroot environment. Along with it is a pre-built zip containing everything you need to update your card. Many of the details on what I'm releasing are in my previous comment here. There's no instructions on what to do yet to build your own - I'll update the readme and/or wiki as I have time.

You'll note that it doesn't come with a mtd_jffs2.bin. This is because it retains your existing jffs2 partition when updating. This behavior is overridden by placing an empty file named "factory_reset" in the root of your SD card. This file causes it to update your jffs2 partition with the defaults (stored in /usr/share/mtd). Your jffs2 partition is also updated automatically if etc is missing from it. Also note that when updating, it does not delete the program.bin file - it just renames it to program.bin.disabled.

By default, everything is passwordless. That means it'll start up with an open wifi AP, and once connected, you can telnet to 192.168.1.1 and get a root shell. You can also ssh root@192.168.1.1 without a password. Once logged in, you can set a root password with the passwd command. This password will persist across reboots. To put a password on your wifi AP, edit /etc/hostapd.conf and change "wpa=0" to "wpa=2", and change the wpa_passphrase to your desired password. FTP and http are also up and running, though http doesn't generate indexes, so it only works if you type a full path to a file.

You can place a file named "pre-init.sh" and/or "post-init.sh" at the root of your SD partition. These are called before and after init scripts, respectively. For legacy purposes, I also allow "autorun.sh", which is called just before "post-init.sh". The "pre-init.sh" script is especially handy for changing daemon config on boot, before the daemons are run.

I expect issues to crop up. This is a first release, and it shouldn't be considered stable. You could run into any number of issues, up to and including losing all your data. (I have no reason to expect you'll lose anything on your SD partition, but don't blame me if you do). I also expect issues related to the buildroot environment to exist. Please open issues on the github issues page or submit patches or pull requests. I'll work them as I can. If you want to be added as a contributer, send me a decent pull request first.

EDIT - a few corrections and additions

(Last edited by dankrause on 16 Oct 2013, 00:15)

dankrause's firmware first boot on a WifiSD :

go 208000
[    0.000000] Linux version 2.6.32.28-g74ef2a4-dirty (dmitrygr@vwm64) (gcc version 4.7.3 20121207 (release) [ARM/embedded-4_7-branch revision 194305] (GNU Tools for ARM Embedded Processors) ) #25 PREEMPT Sun Aug 18 17:40:14 PDT 2013
[    0.000000] CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
[    0.000000] CPU: VIVT data cache, VIVT instruction cache
[    0.000000] Machine: KeyASIC Ka2000 EVM
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 8128
[    0.000000] Kernel command line: root=/dev/ram0 rw console=ttyS0,38400n8 mem=32M initrd=0x500000,3M
[    0.000000] PID hash table entries: 128 (order: -3, 512 bytes)
[    0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Memory: 32MB = 32MB total
[    0.000000] Memory: 26356KB available (2736K code, 205K data, 76K init, 0K highmem)
[    0.000000] SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] Hierarchical RCU implementation.
[    0.000000] NR_IRQS:64
[    0.000000] (192-192-2)pclk rate 96000000
[    0.000000] time setup irq clockevent PWM T1
[    0.000000] time setup irq 22
[    0.000000] time32_config 0 done
[    0.000000] time32_config 1 done
[    0.000000] clocksource mult -1411382395 shift 22
[    0.000000] clocksevent mult 124940 shift 32
[    0.000000] ka2000_set_mode 1
[    0.000000] ka2000_set_mode 2
[    0.000000] console [ttyS0] enabled
[    0.030000] Calibrating delay loop... 50.68 BogoMIPS (lpj=253440)
[    0.210000] Mount-cache hash table entries: 512
[    0.220000] CPU: Testing write buffer coherency: ok
[    0.250000] NET: Registered protocol family 16
[    0.320000] bio: create slab <bio-0> at 0
[    0.350000] cfg80211: Calling CRDA to update world regulatory domain
[    0.360000] Switching to clocksource timer0_1
[    0.390000] NET: Registered protocol family 2
[    0.400000] IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.410000] TCP established hash table entries: 1024 (order: 1, 8192 bytes)
[    0.420000] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[    0.430000] TCP: Hash tables configured (established 1024 bind 1024)
[    0.440000] TCP reno registered
[    0.450000] NET: Registered protocol family 1
[    0.460000] Unpacking initramfs...
[    0.470000] KA2000 unpack_to_rootfs c0500008 size 1fea60
[    2.710000] Freeing initrd memory: 3072K
[    2.720000] ttyS0 at MMIO 0xa0004000 (irq = 1) is a KA2000
[    2.750000] JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
[    2.760000] fuse init (API version 7.13)
[    2.770000] msgmni has been set to 57
[    2.810000] alg: No test for stdrng (krng)
[    2.820000] io scheduler noop registered
[    2.830000] io scheduler deadline registered (default)
[    2.900000] loop: module loaded
[    2.910000] m25p80 spi0.0: mx25l6405d (8192 Kbytes)
[    2.920000] Creating 4 MTD partitions on "mx25l6405d":
[    2.930000] 0x000000080000-0x000000200000 : "JffS2"
[    2.940000] 0x000000200000-0x000000500000 : "Kernel"
[    2.950000] 0x000000500000-0x000000800000 : "Ramdisk"
[    2.970000] 0x000000080000-0x000000800000 : "JFFS2_Kernel_RFS"
[    2.990000] TCP cubic registered
[    3.000000] NET: Registered protocol family 17
[    3.010000] lib80211: common routines for IEEE802.11 drivers
[    3.030000] Freeing init memory: 76K
[    3.540000] sdio wakeup
[    3.620000] set bus width 4
[    3.640000] mmc0: new SDIO card at address 0001
[    3.720000] AR6000: configuration opcode 7 is only used for RTOS systems, not Linux systems(0>0)switch_modules
[    3.850000] init bomb irq
[    3.870000] Bypass Flag En=0
[    3.890000] bw = 2
[    3.900000] mmc1: new SDHC card at address b368
[    3.920000] req irq 40 (1010000)
[    3.940000] req irq 43 (40)
[    3.960000] mmcblk0: mmc1:b368 CAR 15.0 GiB 
[    3.980000] req irq 41 (43)
[    3.990000]  mmcblk0:bootsec @ 2000
[    4.020000] ka_sdhc_drv_init
[    4.030000]  p1
[    4.650000] AR6K: ** HIF layer does not support scatter requests (17) 
[    4.700000] wmi_control_rx() : Unknown id 0x101e
[    9.530000] FAT sec 1f8 sz f04 #2 rtdir 2000 csz 40

can't run '/etc/init.d/rcS': No such file or directory

Please press Enter to activate this console. 

And for people looking for i2c stuff, the FluCard is an interesting beast, even with the default firmware. It has the buzzer wired and working, but there's many reference to a motion sensor (alas unavailable in my firmware/hardware revision) and a /lib/gpio_i2c.ko. I found some version of the documentation (vaguely readable google cache version) that states that the card has motion sensing capability "Flu Card® Pro has a built-in motion sensor. You could initiate the transmission of your picture files by shaking the camera".

*** EDIT ***

On the WifiSD at least the firmware doesn't like some of the boot process (second boot) :

Initializing random number generator... read-only file system detected...done
[   11.770000] Add Filter 0 = 01:00:5e:00:00:01
[   11.790000] Keep Filter 0 = 01:00:5e:00:00:01
[   11.800000] Keep Filter 0 = 01:00:5e:00:00:01
[   15.950000] channel hint set to 2437, freq->e 0, m 6
ioctl[SIOCGIWESSID]: Invalid argument

tcpsvd: listening on 0.0.0.0:21, starting


but seems to continue fine


*** EDIT2 ***

dankrause : maybe you could copy the freshly installed mtd on etc on the first boot ? So the system is fully operationnal without the need for a off/on after the firmware flash (I think it could be done in /usr/bin/sync/mtd.sh)

(Last edited by pixelk on 16 Oct 2013, 04:21)

It should sync automatically if there is no etc folder in /mnt/mtd. Also, placing an empty file named "factory_reset" in the root of the SD should cause /mnt/mtd to sync. All of this should happen before rcS is called. If it doesn't, it's a bug.

pixelk:

Initializing random number generator... read-only file system detected...done

That's generated by /etc/init.d/S20urandom. It's supposed to retain a random seed across boots so that you don't always end up with exactly the same pseudo-random numbers coming from /dev/urandom on each boot. I haven't looked into why it's spitting out that message yet, but the script in question comes from buildroot's rootfs template. I might have to modify the script to get the expected behavior. I've opened an issue for this.

ioctl[SIOCGIWESSID]: Invalid argument

That comes from /etc/init.d/S45hostapd. Every time you start hostapd, that happens, and I'm not sure why. The ioctl in question is one that's used to figure out the SSID that an interface is currently associated with. I don't really know much more about the error, other than it has yet to cause me any issues. It might be useful to confirm whether or not this happens when bringing up an AP with stock firmware.

I really want to find a better way of communicating outside of the card without having to crack it open -- does anyone know if the cards support any of the more oddball SDIO features, like RAM, or other pages, something that I can communicate to inside Linux and outside, without having to read/write to flash...

Also, in the mean time, I've given my Transcend card an OLED display smile

http://www.youtube.com/watch?v=HT4W3CPlnAU

So client wifi was pretty easy to get up and running. I'm using the static wpa_supplicant that ships with the PQI firmware at the moment, because I have the same problems building it as I do hostapd. I'll be making a 0.2 release sometime today or tomorrow. You'll still have to manually configure everything. It won't come with a web UI to configure anything, and it won't automatically try wifi APs before starting an AP or anything. That'll come later.

cnlohr: I suspect you might run into a hardware limitation there. Even if a host device doesn't provide enough power to boot the embedded linux on the card, the chip on the card still provides the host access to the SD memory. I'm willing to bet that even if we had access to the source for the sdhc driver source, we'd find that it it doesn't have any communication channel directly to the host - only to the SD memory. Keep poking at it though - I really hope you find a way.

New release (0.2)

Changelog:

  • Fixed #3 (Some init scripts don't generate PID files)

  • Fixed #5 (/etc/init.d/S20random outputs "read-only file system detected...done")

  • Fixed up a few incorrect & missing folders in the rootfs

  • Removed ipv6 support from the rootfs, since the kernel doesn't support it

  • Added /etc/httpd.conf

  • Added wpa_supplicant and example /etc/wpa_supplicant.conf

  • Client wifi can now be used, but must be enabled manually:

    • Stop hostapd and udhcpd

    • Start wpa_supplicant with a valid conf file

    • Run udhcpc or statically configure an IP

Edit: I'm particularly interested in issues that crop up during an install or upgrade. This includes any issues with wifi coming up, or issues with /etc being synced.

(Last edited by dankrause on 20 Oct 2013, 02:45)

Just for history's sake, WifiSD first boot with release 0.2 (with factory reset)

Hit to stop :  2 1 0
go 208000
[    0.000000] Linux version 2.6.32.28-g74ef2a4-dirty (dmitrygr@vwm64) (gcc version 4.7.3 20121207 (release) [ARM/embedded-4_7-branch revision 194305] (GNU Tools for ARM Embedded Processors) ) #25 PREEMPT Sun Aug 18 17:40:14 PDT 2013
[    0.000000] CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
[    0.000000] CPU: VIVT data cache, VIVT instruction cache
[    0.000000] Machine: KeyASIC Ka2000 EVM
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 8128
[    0.000000] Kernel command line: root=/dev/ram0 rw console=ttyS0,38400n8 mem=32M initrd=0x500000,3M
[    0.000000] PID hash table entries: 128 (order: -3, 512 bytes)
[    0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Memory: 32MB = 32MB total
[    0.000000] Memory: 26356KB available (2736K code, 205K data, 76K init, 0K highmem)
[    0.000000] SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] Hierarchical RCU implementation.
[    0.000000] NR_IRQS:64
[    0.000000] (192-192-2)pclk rate 96000000
[    0.000000] time setup irq clockevent PWM T1
[    0.000000] time setup irq 22
[    0.000000] time32_config 0 done
[    0.000000] time32_config 1 done
[    0.000000] clocksource mult -1411382395 shift 22
[    0.000000] clocksevent mult 124940 shift 32
[    0.000000] ka2000_set_mode 1
[    0.000000] ka2000_set_mode 2
[    0.000000] console [ttyS0] enabled
[    0.030000] Calibrating delay loop... 50.68 BogoMIPS (lpj=253440)
[    0.210000] Mount-cache hash table entries: 512
[    0.220000] CPU: Testing write buffer coherency: ok
[    0.250000] NET: Registered protocol family 16
[    0.320000] bio: create slab <bio-0> at 0
[    0.350000] cfg80211: Calling CRDA to update world regulatory domain
[    0.360000] Switching to clocksource timer0_1
[    0.390000] NET: Registered protocol family 2
[    0.400000] IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.410000] TCP established hash table entries: 1024 (order: 1, 8192 bytes)
[    0.420000] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[    0.430000] TCP: Hash tables configured (established 1024 bind 1024)
[    0.440000] TCP reno registered
[    0.450000] NET: Registered protocol family 1
[    0.460000] Unpacking initramfs...
[    0.470000] KA2000 unpack_to_rootfs c0500008 size 20fcd1
[    2.780000] Freeing initrd memory: 3072K
[    2.790000] ttyS0 at MMIO 0xa0004000 (irq = 1) is a KA2000
[    2.830000] JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
[    2.850000] fuse init (API version 7.13)
[    2.860000] msgmni has been set to 57
[    2.890000] alg: No test for stdrng (krng)
[    2.900000] io scheduler noop registered
[    2.910000] io scheduler deadline registered (default)
[    2.970000] loop: module loaded
[    2.980000] m25p80 spi0.0: mx25l6405d (8192 Kbytes)
[    2.990000] Creating 4 MTD partitions on "mx25l6405d":
[    3.000000] 0x000000080000-0x000000200000 : "JffS2"
[    3.010000] 0x000000200000-0x000000500000 : "Kernel"
[    3.020000] 0x000000500000-0x000000800000 : "Ramdisk"
[    3.030000] 0x000000080000-0x000000800000 : "JFFS2_Kernel_RFS"
[    3.040000] TCP cubic registered
[    3.050000] NET: Registered protocol family 17
[    3.060000] lib80211: common routines for IEEE802.11 drivers
[    3.080000] Freeing init memory: 76K
[    3.590000] sdio wakeup
[    3.660000] set bus width 4
[    3.680000] mmc0: new SDIO card at address 0001
[    3.760000] AR6000: configuration opcode 7 is only used for RTOS systems, not Linux systems(0>0)switch_modules
[    3.920000] init bomb irq
[    3.940000] Bypass Flag En=0
[    3.960000] bw = 2
[    3.970000] mmc1: new SDHC card at address b368
[    3.990000] req irq 40 (1010000)
[    4.010000] req irq 43 (40)
[    4.020000] mmcblk0: mmc1:b368 CAR 15.0 GiB 
[    4.050000]  mmcblk0:bootsec @ 2000
[    4.070000] req irq 41 (43)
[    4.090000]  p1
[    4.100000] ka_sdhc_drv_init
[    4.700000] AR6K: ** HIF layer does not support scatter requests (17) 
[    4.750000] wmi_control_rx() : Unknown id 0x101e
[    9.760000] FAT sec 1f8 sz f04 #2 rtdir 2000 csz 40
Starting logging: OK
Initializing random number generator... done.
[   13.220000] Add Filter 0 = 01:00:5e:00:00:01
[   13.230000] Keep Filter 0 = 01:00:5e:00:00:01
[   13.250000] Keep Filter 0 = 01:00:5e:00:00:01
Starting hostapd... Done.
[   17.420000] channel hint set to 2437, freq->e 0, m 6
Starting dropbear... Done.
Starting ftpd... Done.
Starting httpd... Done.
Starting telnetd... Done.
Starting udhcpd... Done.

Please press Enter to activate this console. 
# 

killing hostapd, udhcpd

# wpa_supplicant -c /etc/wpa_supplicant.conf -i mlan0 &
# udhcpc -i mlan0

got access to the internet, woohoow !

Thank you Dan !

I'll now create the init script and test the boot.

(Last edited by pixelk on 20 Oct 2013, 20:32)

Haven't found time to continue working on it the last weeks, but I decided to push what I have so far onto github (Totally unclean WIP patch).
Note that this will not build a bootable image.
https://github.com/ranma/openwrt/commit … 980d82e0d.
https://github.com/ranma/openwrt/blob/e … 2000.patch

I basicall wrote the mmc.c driver from scratch, it works for the SD card, but not yet for the SDIO wifi (which it detects fine, but crashes at some point when the driver tries to initialize the athereos chip).

For testing I've partitioned my WifiSD with a second ext4 partition as rootfs.
And set up the uboot config to load and boot the kernel image from the SD on boot, rather than the builtin nor.

moroboshi: Those drivers you're writing would allow us to build a working modern kernel, correct? That would be amazing. I would be happy to take advantage of a number of newer kernel features in my rootfs. That would also, of course, allow an actual OpenWrt build to be made.

pixelk: I'm working on an init script that mimics the default behavior of the PQI AirCard (and I assume other cards as well). It'll look for known APs to connect to before hosting one. See the github issue I've opened for it.

dankrause wrote:

moroboshi: Those drivers you're writing would allow us to build a working modern kernel, correct? That would be amazing. I would be happy to take advantage of a number of newer kernel features in my rootfs. That would also, of course, allow an actual OpenWrt build to be made.

Yes, I've been building 3.10/3.11 based kernels for myself so far.
I also added a simple cpufreq driver that switches between 196 Mhz (pll on) and 24 Mhz (pll off) to save power, which makes a notable difference in idle temperature.

Here's just the kernel bits:
https://github.com/ranma/linux/commit/6 … 0fa7d1489a

Note that I added a few devicetree-related bits, but don't actually use them so far, I've found it easier to go with a regular board file to get started.

Has anyone looked at the Toshiba FlashAir? I just picked one up. I plan to open it up and see if it is KeyASIC like the other cards (I hope). I have been trying to get access to the file system, and have not had any luck yet, but I have been able to run some commands from the card by putting them in the config file for setting parameters (this card can do client wifi out of the box!) but the config file seems to pass the commands to the system, so if I put

 COMMAND=fat mkdir SD_WLAN/foo 

at the end of the config file in SD_WLAN, when I pull the card and reboot a few times, a directory shows up.

I don't really know where to go from here, I tried a few other commands, like cat > foo.txt, touch, but these don't work, just cp and mkdir. I had figured this out when I was updating the firmware, Toshiba has a little utility that flashes a file, only it seems that it just places a file on the SD card called fwupdate.fbn then adds a line like (I didn't write it down, and I don't have the utility installed on this pc, I can't remember what the other 2 arguments were)

 COMMAND=sd update fwupdate.fbn -nomount 

so maybe those commands are passed differently?

If anyone could point me in the right direction that wold be great.

I poked at the firmware for the FlashAir last week. Definitely not linux. There are a small collection of commands built into it's (probably proprietary) shell, but you're probably not going to find a keyasic chipset in there.

dankrause wrote:

I poked at the firmware for the FlashAir last week. Definitely not linux. There are a small collection of commands built into it's (probably proprietary) shell, but you're probably not going to find a keyasic chipset in there.

Oh well. Still works for the project I got it for, but would have been nice if it was like the other cards.

I did see the developers site, pretty cool that they provide that, and some examples for interfacing with the card. I'm having trouble with the pictures, apparently I'm not authorized to visit that page. Thanks for taking the time, I plan on following this thread, even though I don't have one of these cards (when I can get one cheap, I will pick one up)

Hi,
I would like to know your experience when comparing the PQI to the Transcend-Card.
While it is sexy to have the Memory-Card plugable on the PQI, I wonder how the memory-access-speed varies (direct NAND oppose to Micro-SD-Interface).

Any Experience / Benchmarks yet?

From the host standpoint you get exactly what you paid for (Class 10 for the WifiSD, Class 6 for the FluCard, and whatever you use for the AirCard). From the firmware standpoint please tell me what benchmark I should run, as I own all three cards.

*** EDIT ***

Real benchmark coming, the result are a bit more complex

(Last edited by pixelk on 28 Oct 2013, 19:41)

What i would like to know:
With the new os, can the cards used as standalone devices, with just power connected?

@moroboshi can you be linked to the ranma here?
https://www.mikrocontroller.net/topic/303547#3313014

And with all the nice hq pictures at the first page where would be the place to add an external antenna (e.g. 5-8 dbi gain) to the transcend card? On each end of the copper bars?