APU1C

From SOWNWiki
Jump to: navigation, search
PC Engines APU1C
PC Engines APU1C
Model APU1C
Maker PC Engines
Type System board
URL https://www.pcengines.ch/apu1c.htm
FCC ID
OpenWRT page https://wiki.openwrt.org/toh/pcengines/apu


  • Do not hot plug the power supply, switch on and off at the wall.
  • Shouldn't be necessary to upgrade the BIOS on most boards but it may sometimes be necessary. Follow instructions on APU1C homepage regading BIOS upgrades and flashing.
  • Baud rates
    • BIOS: 115200 8n1
    • Image default: 38400 8n1
  • Running IPerf on two Windows PC that are bridge across the APU board gives bandwidth of:
    • TCP: approx. 310 MBits/s
    • UDP: approx. 450 MBits/s with 10% packet loss when sending 1GBit/s of traffic. This may be due to limitation on the Windows laptops.


Enable Intel wireless card

Enable USB first using http://wiki.openwrt.org/doc/howto/usb.essentials

Then install kmod-iwlagn.


Note: You need a modern iwlagn module to make it work. As of Nov 2014, you need OpenWRT Trunk.

For hostapd from trunk, you'll need this patch until it gets merged..... Namely:

--- a/src/drivers/rfkill.c      2014-09-07 12:00:52.000000000 +0300
+++ b/src/drivers/rfkill.c      2014-09-07 12:02:02.000000000 +0300
@@ -97,6 +97,7 @@
 }
 
 
+#ifdef CONFIG_RFKILL
 struct rfkill_data * rfkill_init(struct rfkill_config *cfg)
 {
        struct rfkill_data *rfkill;
@@ -186,3 +187,4 @@
 
        return rfkill->blocked;
 }
+#endif

You'll also need a patched mac80211 module for kernel 3.10. Specifically, the following magic is required:

--- /dev/null	2014-11-12 18:39:28.558938377 +0000
+++ package/kernel/mac80211/patches/999-add-S8_MIN.patch	2014-11-12 20:43:55.051091785 +0000
@@ -0,0 +1,23 @@
+diff --git a/backport-include/linux/kernel.h b/backport-include/linux/kernel.h
+index 160689a..9d31d0f 100644
+--- a/backport-include/linux/kernel.h
++++ b/backport-include/linux/kernel.h
+@@ -45,6 +45,18 @@
+ #define SHRT_MIN       ((s16)(-SHRT_MAX - 1))
+ #endif
+ 
++#ifndef U8_MAX
++#define U8_MAX     ((u8)~0U)
++#endif
++
++#ifndef S8_MAX
++#define S8_MAX     ((s8)(U8_MAX>>1))
++#endif
++
++#ifndef S8_MIN
++#define S8_MIN     ((s8)(-S8_MAX - 1))
++#endif
++
+ #ifndef U16_MAX
+ #define U16_MAX        ((u16)~0U)
+ #endif

diff --git a/package/kernel/mac80211/Makefile b/package/kernel/mac80211/Makefile
index ab46a18..4c2a886 100644
--- a/package/kernel/mac80211/Makefile
+++ b/package/kernel/mac80211/Makefile
@@ -812,8 +812,9 @@ define KernelPackage/iwlagn
   TITLE:=Intel AGN Wireless support
   FILES:= \
        $(PKG_BUILD_DIR)/drivers/net/wireless/iwlwifi/iwlwifi.ko \
-       $(PKG_BUILD_DIR)/drivers/net/wireless/iwlwifi/dvm/iwldvm.ko
-  AUTOLOAD:=$(call AutoProbe,iwlwifi iwldvm)
+       $(PKG_BUILD_DIR)/drivers/net/wireless/iwlwifi/dvm/iwldvm.ko \
+       $(PKG_BUILD_DIR)/drivers/net/wireless/iwlwifi/mvm/iwlmvm.ko
+  AUTOLOAD:=$(call AutoProbe,iwlwifi iwldvm iwlmvm)
   MENU:=1
 endef
 
@@ -1587,7 +1588,7 @@ config-y += RT2800USB_RT33XX RT2800USB_RT35XX RT2800USB_RT3573 RT2800USB_RT53XX
 config-$(call config_package,iwl-legacy) += IWLEGACY
 config-$(call config_package,iwl3945) += IWL3945
 config-$(call config_package,iwl4965) += IWL4965
-config-$(call config_package,iwlagn) += IWLWIFI IWLDVM
+config-$(call config_package,iwlagn) += IWLWIFI IWLDVM IWLMVM
 
 config-$(call config_package,net-libipw) += LIBIPW
 config-$(call config_package,net-ipw2100) += IPW2100

Finally, for the IWL7260 cards we used (November 2014), they take version 10 firmware. OpenWRT helpfully ships with version 9.... so you need to locate a copy of iwlwifi-7260-10.ucode and dump it in /lib/firmware. This may be fixable by using the latest compat-wireless.

Firmware available from: https://git.kernel.org/cgit/linux/kernel/git/egrumbach/linux-firmware.git/log/?h=Core7 OR http://openwrt.cmtechserv.co.uk/x86/

Deployments

The APU1C board is in the latest (September 2017) deployment of Sown-Zepler.