[PR] ipq806x: kernel 5.10 bump code propose

wow 33 days... that's a lot AHHAHA

Looks like the pull request has been merged into master branch. Does it mean future MASTER SNAPSHOT builds at https://downloads.openwrt.org/snapshots/targets/ipq806x/generic/ will have kernel-5.10 instead of kernel-5.4?

@Ansuel Thanks for your great work.

I need to check but in theory nope... it's still as a testing kernel
So merged to master but it's still required to compile own image to use the new kernel. But let me check

1 Like

5.10 is still the "testing kernel", not the default one.
So the buildbot will build the default 5.4

Strange.
I compiled the normal 5.4 firmware for R7800 after this PR 3954 was merged.
For some reason, with r16678-cde31976e3 my PC does not get DHCP address via fixed line. But wifi works ok and PC gets IP.

But nothing obvious seems to be amiss.
Router seems to boot ok, ifconfig shows sensible stuff at the first glance, all settings were restored & etc.

Reverting the unrelated commit fa73183 fixes things with 5.4 for me with R7800.
PC again gets connectivity via fixed line.

2 Likes

Exactly the same issue and fix here - also with a R7800.

2 Likes

@hnyman think this can be closed now that 5.10 has been merged? Or should i keep this open for feedback?

1 Like

You might keep this open a bit, for feedback, and maybe edit the thread title a bit.

The 5.10 is still just a testing kernel for ipq806x, so not many people will stumble upon it. Semi-active feedback thread might increase awareness.

Can I build with kernel 5.4 again now? Where in makemenuconfig do I switch to kernel 5.10?

Kernel 5.4 is still broken, at least for R7800.
You need to revert that one commit, like discussed above.

By selecting the "testing kernel" in the "Global build settings" menu.

 .config - OpenWrt Configuration
 > Global build settings ──────────────────────────────────────────────────────
  ┌───────────────────────── Global build settings ─────────────────────────┐
  │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty │  
  │  submenus ----).  Highlighted letters are hotkeys.  Pressing <Y>        │  
  │  includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to │  
  │  exit, <?> for Help, </> for Search.  Legend: [*] built-in  [ ]         │  
  │ ┌─────────────────────────────────────────────────────────────────────┐ │  
  │ │    [ ] Create JSON info file overview per target                    │ │  
  │ │    [ ] Select all target specific packages by default               │ │  
  │ │    [ ] Select all kernel module packages by default                 │ │  
  │ │    [ ] Select all userspace packages by default                     │ │  
  │ │    [ ] Set build defaults for automatic builds (e.g. via buildbot)  │ │  
  │ │    [*] Cryptographically signed package lists                       │ │  
  │ │    [*] Enable signature checking in opkg                            │ │  
  │ │        *** General build options ***                                │ │  
    -->  [ ] Use the testing kernel version        <----   
  │ │    [ ] Show packages that require graphics support (local or remote)│ │  
  │ └────v(+)─────────────────────────────────────────────────────────────┘ │  
  ├─────────────────────────────────────────────────────────────────────────┤  
  │        <Select>    < Exit >    < Help >    < Save >    < Load >         │

When the 5.10 kernel goes "live" how will the DSA changes be applied for the config files? Do I need to manually edit them?

Transition from 5.4 to 5.10 and the adoption of DSA are currently two separate things.

Currently only the 5.10 bump has been merged to OpenWrt source repo, and can be selected as "testing kernel". That bump requires no config change.

DSA changes are separate and are currently only in Ansuel's PR.

Later, when in 5.10, we can move to DSA switch config, and that requires re-writing the switch (and LED) config. Etiher

  • automatically by starting from scratch (without config), or
  • manually by editing /etc/config/network (and system for LED config) as needed.

Best way is probably to once sysupgrade to DSA version without settings and get the new defaults. Then edit them as needed for your purposes. (After that you can do quick-and-dirty and just copy the correct variant to be /etc/config/network before each sysupgrade to/from DSA/nonDSA. I have done that with my R7800 DSA testing)

1 Like

openwrt already have a migration measure... The ipq806x target will follow the same implementation done to some mvebu devices. On system upgrade the system will tell you that the config is not compatible with the next version and you will need to reset the config (or force the update and probably have a not connectable device if you don't have other way to access it like wifi)

I started by manually editing (mostly as I want to learn about the DSA config syntax) but was (and still am) pleasantly surprised with the luci DSA config interface.

I'd recommend starting with the luci DSA config interface in addition to the usual resources like documentation and forum posts.

HTH

Regarding trying to patch master with the PR i ran into this, could also explain why i got some issues as i mentioned in @hnyman s build thread.

Summary
checking file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8062-wg2600hp3.dts
Hunk #1 FAILED at 450.
1 out of 1 hunk FAILED
checking file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-ad7200-c2600.dtsi
Hunk #1 FAILED at 321.
1 out of 1 hunk FAILED
checking file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-ap148.dts
Hunk #1 FAILED at 136.
1 out of 1 hunk FAILED
checking file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-ap161.dts
Hunk #1 FAILED at 148.
1 out of 1 hunk FAILED
checking file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-d7800.dts
Hunk #1 FAILED at 330.
1 out of 1 hunk FAILED
checking file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-db149.dts
Hunk #1 FAILED at 160.
1 out of 1 hunk FAILED
checking file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-eax500.dtsi
Hunk #1 FAILED at 219.
1 out of 1 hunk FAILED
checking file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-g10.dts
Hunk #1 FAILED at 217.
1 out of 1 hunk FAILED
checking file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-r7500.dts
Hunk #1 FAILED at 302.
1 out of 1 hunk FAILED
checking file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-r7500v2.dts
Hunk #1 FAILED at 332.
1 out of 1 hunk FAILED
checking file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-vr2600v.dts
Hunk #1 FAILED at 356.
1 out of 1 hunk FAILED
checking file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-wg2600hp.dts
Hunk #1 FAILED at 200.
1 out of 1 hunk FAILED
checking file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-wpq864.dts
Hunk #1 FAILED at 329.
1 out of 1 hunk FAILED
checking file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-wxr-2533dhp.dts
Hunk #1 FAILED at 257.
1 out of 1 hunk FAILED
checking file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8065-nbg6817.dts
Hunk #1 FAILED at 236.
Hunk #2 FAILED at 288.
2 out of 2 hunks FAILED
checking file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8065-r7800.dts
Hunk #1 FAILED at 310.
Hunk #2 FAILED at 362.
2 out of 2 hunks FAILED

EDIT:
Seems like it patches the files twice.... first patch is ok but not the second one
I tried to use https://patch-diff.githubusercontent.com/raw/openwrt/openwrt/pull/4036.patch

I can't reproduce that, current master (https://git.openwrt.org/?p=openwrt/openwrt.git;a=commitdiff;h=6713fe030fca32fc3d5ad9761f3b2f96501aedd6 works fine for me with https://github.com/Ansuel/openwrt/commit/5137e2783fe52ae98d2d1490101de4c70f9df6d5 patched in.

Summary
$ LANG= git clone https://git.openwrt.org/openwrt/openwrt.git
Cloning into 'openwrt'...
remote: Enumerating objects: 561929, done.
remote: Counting objects: 100% (561929/561929), done.
remote: Compressing objects: 100% (150072/150072), done.
remote: Total 561929 (delta 392057), reused 558322 (delta 388549)
Receiving objects: 100% (561929/561929), 166.39 MiB | 17.22 MiB/s, done.
Resolving deltas: 100% (392057/392057), done.

$ cd openwrt/

$ wget -qO- https://patch-diff.githubusercontent.com/raw/openwrt/openwrt/pull/4036.patch | LANG= patch -p1
patching file target/linux/generic/hack-5.10/780-1-net-dsa-allow_for_multiple_CPU_ports.patch
patching file target/linux/generic/hack-5.10/780-2-net-add_ndo_for_setting_the_iflink_property.patch
patching file target/linux/generic/hack-5.10/780-3-net-dsa-implement_ndo_set_netlink_for_changing_ports_CPU_port.patch
patching file target/linux/generic/hack-5.10/780-4-include-net-add-dsa_cpu_ports-function.patch
patching file package/network/utils/iproute2/patches/191-iplink_allow_to_change_iplink_value.patch
patching file target/linux/ipq806x/patches-5.10/095-01-net-mdio-ipq8064-clean-whitespaces-in-define.patch
patching file target/linux/ipq806x/patches-5.10/095-02-net-mdio-ipq8064-add-regmap-config-to-disable-REGCAC.patch
patching file target/linux/ipq806x/patches-5.10/095-03-net-mdio-ipq8064-enlarge-sleep-after-read-write-oper.patch
patching file target/linux/ipq806x/patches-5.10/096-01-net-dsa-qca8k-change-simple-print-to-dev-variant.patch
patching file target/linux/ipq806x/patches-5.10/096-02-net-dsa-qca8k-use-iopoll-macro-for-qca8k_busy_wait.patch
patching file target/linux/ipq806x/patches-5.10/096-03-net-dsa-qca8k-improve-qca8k-read-write-rmw-bus-acces.patch
patching file target/linux/ipq806x/patches-5.10/096-04-net-dsa-qca8k-handle-qca8k_set_page-errors.patch
patching file target/linux/ipq806x/patches-5.10/096-05-net-dsa-qca8k-handle-error-with-qca8k_read-operation.patch
patching file target/linux/ipq806x/patches-5.10/096-06-net-dsa-qca8k-handle-error-with-qca8k_write-operatio.patch
patching file target/linux/ipq806x/patches-5.10/096-07-net-dsa-qca8k-handle-error-with-qca8k_rmw-operation.patch
patching file target/linux/ipq806x/patches-5.10/096-08-net-dsa-qca8k-handle-error-from-qca8k_busy_wait.patch
patching file target/linux/ipq806x/patches-5.10/096-09-net-dsa-qca8k-add-support-for-qca8327-switch.patch
patching file target/linux/ipq806x/patches-5.10/096-10-devicetree-net-dsa-qca8k-Document-new-compatible-qca.patch
patching file target/linux/ipq806x/patches-5.10/096-11-net-dsa-qca8k-add-priority-tweak-to-qca8337-switch.patch
patching file target/linux/ipq806x/patches-5.10/096-12-net-dsa-qca8k-limit-port5-delay-to-qca8337.patch
patching file target/linux/ipq806x/patches-5.10/096-13-net-dsa-qca8k-add-GLOBAL_FC-settings-needed-for-qca8.patch
patching file target/linux/ipq806x/patches-5.10/096-14-net-dsa-qca8k-add-support-for-switch-rev.patch
patching file target/linux/ipq806x/patches-5.10/096-15-net-dsa-qca8k-add-ethernet-ports-fallback-to-setup_m.patch
patching file target/linux/ipq806x/patches-5.10/096-16-net-dsa-qca8k-make-rgmii-delay-configurable.patch
patching file target/linux/ipq806x/patches-5.10/096-17-net-dsa-qca8k-clear-MASTER_EN-after-phy-read-write.patch
patching file target/linux/ipq806x/patches-5.10/096-18-net-dsa-qca8k-dsa-qca8k-protect-MASTER-busy_wait-wit.patch
patching file target/linux/ipq806x/patches-5.10/096-19-net-dsa-qca8k-enlarge-mdio-delay-and-timeout.patch
patching file target/linux/ipq806x/patches-5.10/096-20-net-dsa-qca8k-add-support-for-internal-phy-and-inter.patch
patching file target/linux/ipq806x/patches-5.10/096-21-devicetree-bindings-dsa-qca8k-Document-internal-mdio.patch
patching file target/linux/ipq806x/patches-5.10/096-22-net-dsa-qca8k-improve-internal-mdio-read-write-bus-a.patch
patching file target/linux/ipq806x/patches-5.10/096-23-net-dsa-qca8k-pass-switch_revision-info-to-phy-dev_f.patch
patching file target/linux/ipq806x/patches-5.10/096-25-net-phy-add-support-for-qca8k-switch-internal-PHY-in.patch
patching file target/linux/ipq806x/patches-5.10/096-26-net-dsa-qca8k-add-mac_power_sel-support.patch
patching file target/linux/ipq806x/patches-5.10/096-27-Documentation-devicetree-net-dsa-qca8k-document-rgmi.patch
patching file target/linux/ipq806x/patches-5.10/096-28-drivers-net-dsa-qca8k-add-support-for-ma6_exchange.patch
patching file target/linux/ipq806x/patches-5.10/096-29-net-dsa-qca8k-check-rgmii-also-on-port-6-if-exchange.patch
patching file target/linux/ipq806x/patches-5.10/096-30-Documentation-devicetree-net-dsa-qca8k-document-qca8.patch
patching file target/linux/ipq806x/patches-5.10/096-31-drivers-net-dsa-qca8k-add-initial-support-for-led-co.patch
patching file target/linux/ipq806x/patches-5.10/096-32-Documentation-devicetree-net-dsa-qca8k-document-qca8.patch
patching file target/linux/ipq806x/patches-5.10/096-34-drivers-net-dsa-qca8k-add-support-for-multi-cpu-supp.patch
patching file target/linux/ipq806x/Makefile
patching file target/linux/ipq806x/base-files/etc/board.d/01_leds
patching file target/linux/ipq806x/base-files/etc/board.d/02_network
patching file target/linux/ipq806x/base-files/etc/board.d/05_compat-version
patching file target/linux/ipq806x/config-5.4
patching file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8062-wg2600hp3.dts
patching file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-ad7200-c2600.dtsi
patching file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-ap148.dts
patching file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-ap161.dts
patching file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-d7800.dts
patching file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-db149.dts
patching file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-eax500.dtsi
patching file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-g10.dts
patching file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-r7500.dts
patching file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-r7500v2.dts
patching file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-vr2600v.dts
patching file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-wg2600hp.dts
patching file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-wpq864.dts
patching file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-wxr-2533dhp.dts
patching file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8065-nbg6817.dts
patching file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8065-r7800.dts
patching file target/linux/ipq806x/image/Makefile
patching file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8062-wg2600hp3.dts
patching file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-ad7200-c2600.dtsi
patching file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-ap148.dts
patching file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-ap161.dts
patching file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-d7800.dts
patching file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-db149.dts
patching file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-eax500.dtsi
patching file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-g10.dts
patching file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-r7500.dts
patching file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-r7500v2.dts
patching file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-vr2600v.dts
patching file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-wg2600hp.dts
patching file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-wpq864.dts
patching file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-wxr-2533dhp.dts
patching file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8065-nbg6817.dts
patching file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8065-r7800.dts
patching file target/linux/ipq806x/base-files/etc/init.d/qca8k_set_port
patching file target/linux/ipq806x/Makefile
patching file target/linux/ipq806x/config-5.10

$ echo $?
0

$ find . -type f -name \*\\.orig
$ find . -type f -name \*\\.rej

Indeed, now it works...

I started my (successful) build around 8 hours ago (and previously another build ~28hours ago, then on top of https://git.openwrt.org/?p=openwrt/openwrt.git;a=commitdiff;h=e7249669d2af8f588a4e3beec589c4cbe5bd2fec).

I might have messed something up at the first try. Now I noticed a make defconfig was required too before actually trying to start to build.