I have just realised that my Intel E810-CAM2 network card is not supported
Dear developers, I would really appreciate, if packages for Intel E800 based cards will be added to OpenWRT.
This users is also waiting for these drivers: Driver for Intel Ethernet E800 Series (ice)
The quickest approach would be if you'd provide a patch adding the necessary (tested) packaging changes against the current master branch. I wouldn't expect many others to be in a similar situation or to be able to test it.
The driver is there in the mainline kernel since v4.17, it just needs to be packaged up to become installable on OpenWrt. These are 'just' packaging changes (Makefile syntax), not driver development, a learning curve for sure, but a reasonable target.
Dear @slh
I have one question: where can get details on possible variables for DEPENDS and KCONFIG lines?
For the moment I have used the following configuration in package/kernel/linux/modules/netdevices.mk
, but I also saw a different one for the ice driver. Would appreciate your hint here...
define KernelPackage/ice
SUBMENU:=$(NETWORK_DEVICES_MENU)
TITLE:=Intel(R) Ethernet Controller E810 Series support
DEPENDS:=@PCI_SUPPORT +kmod-ptp
KCONFIG:=CONFIG_ICE
FILES:=$(LINUX_DIR)/drivers/net/ethernet/intel/ice/ice.ko
AUTOLOAD:=$(call AutoProbe,ice)
endef
define KernelPackage/ice/description
Kernel modules for Intel(R) Ethernet Controller E810 Series
endef
$(eval $(call KernelPackage,ice))
Dear all, CRAZY STUFF IS GOING ON... I was able to compile openWRT with ice driver for my Intel E800 network card and install the Intel firmware (see HowTo further down).
Thanks a lot to @slh for encouraging and @frollic for the hint!!! Very much appreciated.
Could you please give me the hint/solution direction on the following two points:
Is there a way to compile my own openWRT, but still use most recent releases of openWRT packages from LUCI interface downloading them from the main branch? At at the moment I got stuck with extentions: each time I have to compile them separately on my local VirtualBox and install them per opkg command, because downloaded versions were not accepted due to the kernel signature.
Shall I commit only the changes in package/kernel/linux/modules/netdevices.mk to contribute to the openWRT community? Have no idea how to commit the Intel firmware (see section 2 below in HowTo).
in short, no. (Basically) every build will have its unique kernel ABI (you're adding a kernel package, so the ABI will inevitably change/ be different than official OpenWrt without your changes), so any package that (indirectly) depends on kernel modules (and many do) will bail out. There is one simple solution to this, build all you want to have directly into your firmware image (CONFIG_XXX=y) - if you need something beyond that, build a fresh image and sysupgrade.
One PR (pull request), two commits (intel/ice/ddp/ice.pkg needs to go into package/firmware/linux-firmware/intel.mk)
To install packages and firmware for Intel E800 network cards install Debian on VirtualBox and compile your own openWRT with ice driver (step 1).
Install your openWRT you have build on VirtualBox onto PC via dd command and upload the Intel firmware to your PC installation (step 2).
Extract two ice*.pkg files and place them into the directory /lib/firmware/updates/intel/ice/ddp/
Rename the ice_comms-x.x.x.x.pkg file as ice-xxxxxxxxxxxxxxxx.pkg, where 'xxxxxxxxxxxxxxxx' is the unique 64-bit PCI Express device serial number in
hex. You can find the serial number with the following command: # lspci -vv -s af:00.0 | grep -i Serial | awk '{print $7}' | sed s/-//g
Delete the ice.pkg softlink and recreate it with
ln -sf /lib/firmware/updates/intel/ice/ddp/ice-xxxxxxxxxxxxxxxx.pkg ice.pkg (with xxxxxxxxxxxxxxxx being your serial number)
Unload ice driver with rmmod ice
and load again with (or simply reboot) modprobe ice
The interface should be up and running at this point
Please note:
Once the driver loads the package, the user can unbind the ice driver from a desired
port on the device so that DPDK can utilize the port.
The following example unbinds Port 0 and Port 1 of device on Bus 6, Device 0. Then,
the port is bound to either igb_uio or vfio-pci.
Please pay attention here. Further below you are able to configure the image sizes. If you add further packages you have also to enlarge the size of the second partionion.