记录一下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)