01-16-2021, 11:16 PM
Hi wilsonYan,
First off, thank you for your work in getting openWrt compiled for the Rock64.
Secondly, I would like to replicate your work. I would like to build a completely customized image including kmods for my specific use case. I have downloaded your openwrt-rock64-messy.patch from your link above. I have tried applying this patch to the root git directory of the latest openWrt commit, 54bfebdca00f071f0982e05e69be7a7d4176147b though it does not apply cleanly.
As a sanity check and judging by the timestamp of your last post, I have successfully applied the openwrt-rock64-messy.patch in the root git directory of openWrt commit d6cb50c7ba8447f018139401d0d3821069e5f389. From there, I had a few small issues with a full openWrt build from scratch, namely with the file rk3328-nanopi-r2s.dts that was non-existent on my system, and is surely unnecessary for the Rock64 build.
After manually removing 006-rockchip-rk3328-fix-NanoPi-R2S-GMAC-clock-name.patch, manually applying (after some googling) arm64-dts-rockchip-add-usb3-controller-node-for-RK3328-SoCs.diff patch, and "faking" the rk3328-nanopi-r2s.dts file at the end of the build process, I was able to complete a successful rock64 build with both ext4 and squashfs img variants from the openWrt build system. This successfully booted and I could access LuCI, iperf3, and the various packages that I selected in menuconfig.
I have a specific dual-port ax88179 USB 3.0 device (search Amazon VTOP USB 3.0 to Gigabit Ethernet NIC 10/100/1000 Mbps Network Adapter with Dual RJ45 LAN Ports Compatible for Windows 10 and MacOS 10.15(Intel)) that I'm trying to get working on my build. This device normally enumerates as a USB hub and then two unique network interfaces (eth1 and eth2 on top of the built in eth0 gigabit port). On your last openwrt-rockchip-armv8-pine64_rock64-ext4-sysupgrade.img.gz build, this device enumerated on the USB2 ports, but not USB3. However, a separate single NIC rtl8153 device did seem to work correctly on the USB3 port, so it is likely related to the built-in USB hub on the device.
On my build, nothing on USB3 seemed to work, including the rtl8153, despite my modifications mentioned earlier. My guess is that this is because I am using the stock openWRT kernel, not a specific kernel for rock64, even though I think the .dtb was correct. The kernel being built on commit d6cb50c7ba8447f018139401d0d3821069e5f389 was 5.4.x whereas I think your latest image included a rockchip-specific 5.10.x kernel.
On top of debugging my USB3 issue, I have plenty of other kernel-related packages that I would like to include natively in my build such as NFS and others.
Can you give a quick overview of your openWrt build process and any modifications needed to create your images? Do you have a method of incorporating the rock64 kernel patches or sources as part of the openWrt build that will allow for the kmod packages to be built successfully? Or are you building both openWrt and the Rock64 kernel image separately (with the additional network drivers that you've mentioned above) and manually combining them in the end? There are many openWrt packages I am interested in including in my build that rely on 1 or more kmod packages and I am trying to figure out the best way to get the build working on my system so that I can customize and troubleshoot my own images further.
Thanks,
~Chainu
First off, thank you for your work in getting openWrt compiled for the Rock64.
Secondly, I would like to replicate your work. I would like to build a completely customized image including kmods for my specific use case. I have downloaded your openwrt-rock64-messy.patch from your link above. I have tried applying this patch to the root git directory of the latest openWrt commit, 54bfebdca00f071f0982e05e69be7a7d4176147b though it does not apply cleanly.
As a sanity check and judging by the timestamp of your last post, I have successfully applied the openwrt-rock64-messy.patch in the root git directory of openWrt commit d6cb50c7ba8447f018139401d0d3821069e5f389. From there, I had a few small issues with a full openWrt build from scratch, namely with the file rk3328-nanopi-r2s.dts that was non-existent on my system, and is surely unnecessary for the Rock64 build.
After manually removing 006-rockchip-rk3328-fix-NanoPi-R2S-GMAC-clock-name.patch, manually applying (after some googling) arm64-dts-rockchip-add-usb3-controller-node-for-RK3328-SoCs.diff patch, and "faking" the rk3328-nanopi-r2s.dts file at the end of the build process, I was able to complete a successful rock64 build with both ext4 and squashfs img variants from the openWrt build system. This successfully booted and I could access LuCI, iperf3, and the various packages that I selected in menuconfig.
I have a specific dual-port ax88179 USB 3.0 device (search Amazon VTOP USB 3.0 to Gigabit Ethernet NIC 10/100/1000 Mbps Network Adapter with Dual RJ45 LAN Ports Compatible for Windows 10 and MacOS 10.15(Intel)) that I'm trying to get working on my build. This device normally enumerates as a USB hub and then two unique network interfaces (eth1 and eth2 on top of the built in eth0 gigabit port). On your last openwrt-rockchip-armv8-pine64_rock64-ext4-sysupgrade.img.gz build, this device enumerated on the USB2 ports, but not USB3. However, a separate single NIC rtl8153 device did seem to work correctly on the USB3 port, so it is likely related to the built-in USB hub on the device.
On my build, nothing on USB3 seemed to work, including the rtl8153, despite my modifications mentioned earlier. My guess is that this is because I am using the stock openWRT kernel, not a specific kernel for rock64, even though I think the .dtb was correct. The kernel being built on commit d6cb50c7ba8447f018139401d0d3821069e5f389 was 5.4.x whereas I think your latest image included a rockchip-specific 5.10.x kernel.
On top of debugging my USB3 issue, I have plenty of other kernel-related packages that I would like to include natively in my build such as NFS and others.
Can you give a quick overview of your openWrt build process and any modifications needed to create your images? Do you have a method of incorporating the rock64 kernel patches or sources as part of the openWrt build that will allow for the kmod packages to be built successfully? Or are you building both openWrt and the Rock64 kernel image separately (with the additional network drivers that you've mentioned above) and manually combining them in the end? There are many openWrt packages I am interested in including in my build that rely on 1 or more kmod packages and I am trying to figure out the best way to get the build working on my system so that I can customize and troubleshoot my own images further.
Thanks,
~Chainu