No WiFi on Utilite

This forum is for supported devices using an ARMv7 Freescale SoC.

No WiFi on Utilite

Postby buh » Tue Dec 30, 2014 1:13 pm

Hi,

This is my first post here and I'm pretty new to both Arch Linux and ARM, so please excuse me if I have missed something. Some time ago, I started playing with a Utilite Standard and at the time managed to get it fully operational, incl. WiFi. For time reasons, I stopped then and have only picked it up again in the last few days. I started with a fresh install, and can't seem to get WiFi working again.

$this->bbcode_second_pass_code('', '
# lspci
00:00.0 PCI bridge: Synopsys, Inc. Device abcd (rev 01)
01:00.0 Ethernet controller: Intel Corporation I211 Gigabit Network Connection (rev 03)

# dmesg | grep wifi
mwifiex_sdio mmc0:0001:1: request_firmware() returned error code 0xfffffffe
mwifiex: mwifiex_add_card: firmware init failed
mwifiex_sdio: mwifiex_sdio_probe: add card failed
mwifiex_sdio: probe of mmc0:0001:1 failed with error -1
')
I wondered whether some firmware may be missing and installed the alarm/firmware-imx package. After this didn't help, I also added all files from /lib/firmware of the vendor's official Ubuntu image. The problem persists.

As I said, I am still fairly new to this and so I'm not sure if the issue is on my side or whether I should file a bug. A related question is if the multi-platform core/linux-armv7 kernel would boot on the Utilite. I actually don't care too much whether or not this resolves the WiFi issue, but I do want to run a Docker instance. Docker runs, but it has some issues that I suspect are related to kernel version and config of core/linux-utilite. I'd be grateful for an educated assessment whether the linux-armv7 kernel could boot, and if so, how to get there. In particular, core/linux-armv7 is a zImage, and in this case I am uncertain how to configure U-Boot and both get and use the appropriate devicetree files. core/linux-utilite is a uImage.

Best wishes and thanks a lot in advance.
buh
 
Posts: 2
Joined: Tue Dec 30, 2014 12:51 pm

Re: No WiFi on Utilite

Postby pepedog » Tue Dec 30, 2014 2:56 pm

I have got wifi-running on the 3.0.35 kernel, rebuilding with the firmware built in.

Later kernel upgrade uboot required http://compulab.co.il/utilite-computer/ ... =60&t=2203
But not sure if Linux-armv7 or Linux-armv7-rc works, you would have to play with the uboot environment. I would think this will be too complicated for you, and I'm working on a 3.14 kernel anyway
pepedog
Developer
 
Posts: 2431
Joined: Mon Jun 07, 2010 3:30 pm
Location: London UK

Re: No WiFi on Utilite

Postby buh » Tue Dec 30, 2014 3:55 pm

Hi,

Thanks for your reply. I had actually already upgraded u-boot, but forgot to mention it. A 3.14 kernel would be incredibly useful, thanks for working on this. That being said, I am (perhaps naively) wondering whether it would be helpful to test the generic multi-platform kernel on the utilite. If it is possible to use this kernel, or if support for the utilite could be added with minor modifications that don't interfere with the other supported devices, then this may be a more sustainable solution than maintaining separate kernels for each device. Again, perhaps I am too naive due to lack of experience.

As to rebuilding the 3.0 kernel, I am currently considering to write a pkgbuild file for the official kernel from compulab's gitorious repo. It would be educational as I am new to Arch, and it would additionally allow me to tweak the config a little. Please let me know if you think I am wasting my time, e.g. because you might complete the 3.14 kernel soon. Also let me know if I can spend the time learning to do something that actually helps you.

Best wishes,
buh
 
Posts: 2
Joined: Tue Dec 30, 2014 12:51 pm

Re: No WiFi on Utilite

Postby archibald » Sun Jan 11, 2015 5:09 pm

I'm having the same problem as buh:

$this->bbcode_second_pass_code('', '
[ 73.321680] mwifiex_sdio mmc0:0001:1: request_firmware() returned error code 0xfffffffe
[ 73.329689] mwifiex: mwifiex_add_card: firmware init failed
[ 73.335531] mwifiex_sdio: mwifiex_sdio_probe: add card failed
[ 73.341351] mwifiex_sdio: probe of mmc0:0001:1 failed with error -1
')

This is on a Utilite Standard with a fresh install according to instructions from http://archlinuxarm.org/platforms/armv7 ... le/utilite. I confirmed that the firmware file is at /lib/firmware/mrvl/sd8787_uapsta.bin on the root device. It has the same hash (sha1:e51a7c65b4bff930a635fe8f05c2b78b97ce4dd4) as the one that comes with the stock ubuntu for the Utilite. The wifi driver loads fine on the ubuntu build.

Before installing Arch I updated U-Boot to
$this->bbcode_second_pass_code('', 'U-Boot 2014.10-cm-fx6-2 (Dec 13 2014 - 16:28:12)')
using the updater from http://compulab.co.il/utilite-computer/ ... oot_Update.

Since buh mentioned wifi was working for him before is it possible the U-Boot update somehow breaks the wifi firmware loading? Any hints on how to further debug this? I tried to get more information by adding "verbose debug" to the kernel cmdline but didn't get anything helpful.
archibald
 
Posts: 2
Joined: Sun Jan 11, 2015 4:53 pm

Re: No WiFi on Utilite

Postby archibald » Sun Jan 11, 2015 6:07 pm

I think I might have figured out the issue. My kernel and systemd versions are:
$this->bbcode_second_pass_code('', '
[root@alarm ~]# systemctl --version
systemd 218
[root@alarm ~]# uname -a
Linux alarm 3.0.35-16-ARCH #1 SMP Sun May 25 17:19:33 MDT 2014 armv7l GNU/Linux
')

It looks like user space firmware loading was removed from udev/systemd in version 217 while kernel firmware loading was only added in kernel version 3.7.

There seem to be three possible solutions:
- downgrade systemd to 216
- upgrade the kernel to >= 3.7
- rebuild the 3.0.35 kernel with firmware blobs built in

Downgrading systemd is probably not a good solution given arch's rolling releases. Upgrading the kernel seems to be the best long term solution. Rebuilding 3.0.35 with firmware is the quickest fix which I think I will do for now.
archibald
 
Posts: 2
Joined: Sun Jan 11, 2015 4:53 pm

Re: No WiFi on Utilite

Postby pepedog » Sun Jan 11, 2015 6:15 pm

What has happened is systemd is responsible for loading the firmware, and the systemd people have stopped supporting older kernels.
Nothing to do with uboot.
If you buildin the firmware into kernel, the kernel loads it, even before init or systemd gets to mount anything
pepedog
Developer
 
Posts: 2431
Joined: Mon Jun 07, 2010 3:30 pm
Location: London UK


Return to Freescale

Who is online

Users browsing this forum: No registered users and 10 guests