CoolestEnoch/kernel-su-xiaomi-cas

记录一下Ubuntu22下编译的坑点

Nagico opened this issue · 0 comments

Nagico commented

依赖安装

编译过程中提示缺少文件 error while loading shared libraries: libdebuginfod.so.1: cannot open shared object file: No such file or directory,应该不太影响编译,但还是多安装了些包

sudo apt install -y zip bison build-essential cmake flex git libedit-dev libllvm14 llvm-14-dev libclang-14-dev python3 zlib1g-dev libelf-dev libfl-dev python3-setuptools liblzma-dev libdebuginfod-dev arping netperf iperf

Openssl兼容

编译需要1.1版本的openssl,系统默认3.0,会出现 -Wdeprecated-declarations

打开网站 (http://security.ubuntu.com/ubuntu/pool/main/o/openssl/) 依次下载以下包并安装

  • libssl1.1_1.1.1f-1ubuntu2.x_amd64.deb
  • libssl-dev_1.1.1f-1ubuntu2.x_amd64.deb
  • openssl_1.1.1f-1ubuntu2.x_amd64.deb

自己搜一下到底是ubuntu2.多少,目前是2.19

# download binary openssl packages from Impish builds
wget http://security.ubuntu.com/ubuntu/pool/main/o/openssl/openssl_1.1.1f-1ubuntu2.19_amd64.deb
wget http://security.ubuntu.com/ubuntu/pool/main/o/openssl/libssl-dev_1.1.1f-1ubuntu2.19_amd64.deb
wget http://security.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.19_amd64.deb

# install downloaded binary packages
sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2.19_amd64.deb
sudo dpkg -i libssl-dev_1.1.1f-1ubuntu2.19_amd64.deb
sudo dpkg -i openssl_1.1.1f-1ubuntu2.19_amd64.deb

编译参数

注意下路径就行了

cd kernel

export ARCH=arm64
export CROSS_COMPILE=../gcc/gcc-arm64-gcc-master/bin/aarch64-elf-
export CROSS_COMPILE_ARM32=../gcc/gcc-arm-gcc-master/bin/arm-eabi-

make cas_defconfig

make -j

scripts/Makefile.dtbo 文件缺失

copy 这个就行了 (https://github.com/XayahSuSuSu/android_kernel_xiaomi_cas/blob/arrow-13.0/scripts/Makefile.dtbo)

# SPDX-License-Identifier: GPL-2.0
__dtbo := $(sort $(dtbo-y))

dtbo-base	:= $(sort $(foreach m,$(__dtbo),$($(m)-base)))
dtbo := $(foreach m,$(__dtbo),$(if $($(m)-base),$(m)))

__dtbo     := $(addprefix $(obj)/,$(__dtbo))
dtbo-base	:= $(addprefix $(obj)/,$(dtbo-base))
dtbo	:= $(addprefix $(obj)/,$(dtbo))

ifneq ($(DTC_OVERLAY_TEST_EXT),)
DTC_OVERLAY_TEST = $(DTC_OVERLAY_TEST_EXT)
quiet_cmd_dtbo_verify	= VERIFY  $@
cmd_dtbo_verify = $(foreach m,\
	$(addprefix $(obj)/,$($(@F)-base)),\
		$(if $(m),\
			$(DTC_OVERLAY_TEST) $(m) $@ \
			$(dot-target).$(subst /,-,$(patsubst $(obj)/%.dtb,%,$(m))).tmp;))\
			true
else
cmd_dtbo_verify = true
endif

$(obj)/%.dtbo: $(src)/%.dts FORCE
	$(call if_changed_dep,dtc)
	$(call if_changed,dtbo_verify)

$(call multi_depend, $(dtbo), , -base)

always +=  $(dtbo)