Jump to content

Build for RockPro64 works for BRANCH "dev", but fails for "default"


Recommended Posts

Posted (edited)

Noob here, please excuse if I ask something obvious and feel free to just point me into the right direction.

 

About a week ago, I was able to successfully build Armbian for RockPro64 in the standard Vagrant build environment, creating a bootable image using the compilation GUI without any special kernel configuration.

 

I tried again yesterday, both with the GUI and the CLI command below, but the build process always fails:

$ sudo ./compile.sh BOARD=rockpro64 PROGRESS_LOG_TO_FILE=yes KERNEL_ONLY=no KERNEL_CONFIGURE=no RELEASE=stretch BUILD_DESKTOP=no BRANCH=default
...
CC [M]  drivers/net/wireless/rockchip_wlan/rtl8723bu/core/rtw_mp_ioctl.o
CC [M]  drivers/net/wireless/rockchip_wlan/rtl8723bu/core/rtw_bt_mp.o
LD [M]  drivers/net/wireless/rockchip_wlan/rtl8723bu/8723bu.o
LD      drivers/net/wireless/built-in.o
LD      drivers/net/built-in.o
LD      drivers/built-in.o
[ error ] ERROR in function compile_kernel [ compilation.sh:389 ]
[ error ] Kernel was not built [ @host ]
[ o.k. ] Process terminated 

 

In the `compilation.log` there are two main errors. First example (occurs maybe 10+ times):

In file included from drivers/net/wireless/rockchip_wlan/mvl88w8977/mlan/mlan.h:32:0,
                 from drivers/net/wireless/rockchip_wlan/mvl88w8977/mlan/mlan_shim.c:26:
drivers/net/wireless/rockchip_wlan/mvl88w8977/mlan/mlan_ioctl.h:1797:1: note: offset of packed bit-field ‘MaxAMSDU’ has changed in GCC 4.4
 } MLAN_PACK_END ExtCap_t, *pExtCap_t;
 ^

Second example (occurs 50+ times):

In file included from ./arch/arm64/include/asm/compat.h:25:0,
                 from ./arch/arm64/include/asm/stat.h:23,
                 from include/linux/stat.h:5,
                 from include/linux/module.h:10,
                 from drivers/net/wireless/rtl8812au/include/basic_types.h:76,
                 from drivers/net/wireless/rtl8812au/include/drv_types.h:26,
                 from drivers/net/wireless/rtl8812au/core/rtw_cmd.c:17:
include/linux/sched.h:1211:1: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
 const struct sched_group_energy * const(*sched_domain_energy_f)(int cpu);
 ^~~~~
cc1: warning: unrecognized command line option ‘-Wno-cast-function-type’

 

Initially I was suspecting the virtualbox image, going back to the exact release I've been using last week (two updates from Vagrant since), but to no avail. After looking at Github issues, reading posts and sifting through the scripts, I got the build process working by explicitly using BRANCH="dev".

 

I am especially wondering why it worked wihtout issues a week ago, but not anymore. Any recent changes? Might this have something to do with these ongoing changes? In that regard, I'd rather expect the "dev" branch to fail than the default one.

 

Please find attached the various compilation.log files:

 

I'm thankful for any insights or pointers to getting a stable RockPro64 image, as I'd like to later customize it with additional software (definitely not there yet).

Edited by Meier
Posted
3 hours ago, Meier said:

compilation fails with error shown at the beginning

The error is rather this one :

net/wireguard/ratelimiter.c:60:2: error: implicit declaration of function ‘call_rcu’; did you mean ‘call_srcu’? [-Werror=implicit-function-declaration]
  call_rcu(&entry->rcu, entry_free);
  ^~~~~~~~
  call_srcu
cc1: some warnings being treated as errors

You can try to add at command line "WIREGUARD=no" , it will skip this part of the build ...

Posted

Thanks for the quick reply! I just ran the command with additional WIREGUARD=no for BRANCH=default, unfortunately it did not even start to work. The "board selection" pops up, and then the script exits:

 

sudo ./compile.sh BOARD=rockpro64 PROGRESS_LOG_TO_FILE=yes KERNEL_ONLY=no KERNEL_CONFIGURE=no RELEASE=stretch BUILD_DESKTOP=no BRANCH=default WIREGUARD=no
[ o.k. ] Using config file [ config-default.conf ]
[ o.k. ] Command line: setting BOARD to [ rockpro64 ]
./compile.sh: line 57: BOARD=rockpro64: command not found
[ o.k. ] Command line: setting PROGRESS_LOG_TO_FILE to [ yes ]
[ o.k. ] Command line: setting KERNEL_ONLY to [ no ]
[ o.k. ] Command line: setting KERNEL_CONFIGURE to [ no ]
[ o.k. ] Command line: setting RELEASE to [ stretch ]
[ o.k. ] Command line: setting BUILD_DESKTOP to [ no ]
[ o.k. ] Command line: setting BRANCH to [ default ]
[ o.k. ] Command line: setting WIREGUARD to [ no ]
[ o.k. ] This script will try to update
Already up to date.
Already on 'master'
Your branch is up to date with 'origin/master'.
[ o.k. ] Preparing [ host ]
[ o.k. ] Build host OS release [ bionic ]
[ o.k. ] Syncing clock [ host ]

>> GUI: Select the target board.
>> select "rockpro64", <OK>

[ error ] ERROR in function source [ main.sh:198 ]
[ error ] Kernel branch not defined for this board [ default ]
[ o.k. ] Process terminated

note: line 57 in compile.sh is: `eval $parameter=\"$value\"`

 

When running `sudo ./compile.sh BOARD=rockpro64 PROGRESS_LOG_TO_FILE=yes KERNEL_ONLY=no KERNEL_CONFIGURE=no RELEASE=stretch BUILD_DESKTOP=no WIREGUARD=no` without specifying the branch, the compilation is successful. What branch is used in this case?

 

Although successful, there are still a lot of warnings in the `compilation.log`, mostly

  • `warning: type qualifiers ignored on function return type [-Wignored-qualifiers]` and
  • `note: offset of packed bit-field ‘MaxAMSDU’ has changed in GCC 4.4`

At least for the latter, I guess according to the GCC release notes that is safe to ignore? See full compilation log here:  compilation_WIREGUARD-no.log

 

 

One additional question, if I may? When tinkering with the User provided image configuration script, is there a way to skip recompiling the kernel every time?

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines