[LEDE-DEV] [PATCH 2/2] target/arc770: switch to 4.9 kernel

Alexey Brodkin Alexey.Brodkin at synopsys.com
Fri Mar 10 07:00:35 PST 2017


Hi Felix,

On Tue, 2017-03-07 at 19:30 +0100, Felix Fietkau wrote:
> On 2017-03-06 19:30, Alexey Brodkin wrote:
> > 
> > With update of ARC tools to arc-2016.09 based on GCC v6.x
> > we have to bump Linux kernel version so both toolchain and
> > the kernel use the same ARC ABIv4.
> > 
> > Signed-off-by: Alexey Brodkin <Alexey.Brodkin at synopsys.com>
> > ---
> >  target/linux/arc770/Makefile                       |  2 +-
> >  target/linux/arc770/{config-4.4 => config-4.9}     | 44 ++++++++++++++++------
> >  ...stmmac-Disable-frame-filtering-completely.patch |  0
> >  3 files changed, 33 insertions(+), 13 deletions(-)
> >  rename target/linux/arc770/{config-4.4 => config-4.9} (82%)
> >  rename target/linux/arc770/{patches-4.4 => patches-4.9}/700-stmmac-Disable-frame-filtering-completely.patch (100%)
> > 
> This does not build with CONFIG_ALL_KMODS=y:
> 
>   MODPOST 735 modules
> ERROR: "of_usb_get_phy_mode" [drivers/usb/dwc3/dwc3.ko] undefined!
> scripts/Makefile.modpost:91: recipe for target '__modpost' failed
> make[5]: *** [__modpost] Error 1
> Makefile:1196: recipe for target 'modules' failed
> make[4]: *** [modules] Error 2
> make[4]: Leaving directory '/var/nbd/lede/build_dir/target-arc_arc700_uClibc/linux-arc770_generic/linux-4.9.13'
> Makefile:25: recipe for target '/var/nbd/lede/build_dir/target-arc_arc700_uClibc/linux-arc770_generic/linux-4.9.13/.image' failed
> make[3]: *** [/var/nbd/lede/build_dir/target-arc_arc700_uClibc/linux-arc770_generic/linux-4.9.13/.image] Error 2
> make[3]: Leaving directory '/var/nbd/lede/target/linux/arc770'
> Makefile:13: recipe for target 'install' failed
> 
> The cause is that of_usb_get_phy_mode is meant to be built into the
> kernel, however since USB is selected as module, this won't work.
> 
> Please send any follow-up fixes incrementally, and I will fold them
> into the commit in my staging tree.

Sorry for being silent for quite some time on that topic.
It turned to be not that easy reproduce this... and to be honest
I'm not there yet :)

Now a bit more details.

1. For some reason once I enable CONFIG_ALL_KMODS somehow implicitly
libnl gets enabled and its current version simply couldn't be built
with uClibc, see http://lists.infradead.org/pipermail/libnl/2017-March/002301.html

2. Now I'm seeing this:
--------------------------------->8-----------------------------
make[4]: Entering directory `.../build_dir/target-arc_arc700_uClibc/linux-arc770_generic/linux-4.9.13'
  CC [M]  .../build_dir/target-arc_arc700_uClibc/linux-arc770_generic/siit-1.2/siit.o
.../build_dir/target-arc_arc700_uClibc/linux-arc770_generic/siit-1.2/siit.c: In function 'siit_xmit':
.../build_dir/target-arc_arc700_uClibc/linux-arc770_generic/siit-1.2/siit.c:1169:5: error: 'struct net_device' has no member named 'trans_start'; did
you mean 'mem_start'?
  dev->trans_start = jiffies;
     ^~
--------------------------------->8-----------------------------

So I'm wondering:
1. How did you manage to get over these things (I may expect once I found
a fix for this "siit" more issues appear :)?

2. How come we haven't see issues with ALL_KMOD with 4.4-based kernels?

> By the way, when Cc'ing me, please use my @nbd.name address, not the
> @openwrt.org one.

Sure just used older command line erroneously.

-Alexey


More information about the Lede-dev mailing list