- 收藏
- 点赞
- 分享
- 举报
全志longan平台如何使用自定义内核版本的设备树?
我在longan平台下更换了高版本的linux内核(原平台linux版本为4.9),但编译系统的脚本还是保持longan平台的,dts也在内核script/build.sh中添加了,编译出现了设备树编译不过的现象,片段如下:
- ‘[‘ -f /home/z/work/H3_Dev/longan/kernel/linux-5.8/arch/arm/boot/dts/.sun8iw7p1-p1.dtb.d.dtc.tmp ‘]’
- ‘[‘ -f /home/z/work/H3_Dev/longan/kernel/linux-5.8/arch/arm/boot/dts/.sun8iw7p1-.dtb.d.dtc.tmp ‘]’
- printf ‘Script_to_dts: use common dts file sun8iw7p1-soc.dts\n’
Script_to_dts: use common dts file sun8iw7p1-soc.dts - DTC_DEP_FILE=/home/z/work/H3_Dev/longan/kernel/linux-5.8/arch/arm/boot/dts/.sun8iw7p1-soc.dtb.d.dtc.tmp
- DTC_SRC_FILE=/home/z/work/H3_Dev/longan/kernel/linux-5.8/arch/arm/boot/dts/.sun8iw7p1-soc.dtb.dts.tmp
- local ‘DTC_FLAGS=-W no-unit_address_vs_reg’
- ‘[‘ -d /home/z/work/H3_Dev/longan/device/config/chips/h3/dtbo ‘]’
- echo ‘sunxi_dtb create’
sunxi_dtb create - /home/z/work/H3_Dev/longan/kernel/linux-5.8/scripts/dtc/dtc -W no-unit_address_vs_reg -O dtb -o /home/z/work/H3_Dev/longan/kernel/linux-5.8/output/sunxi.dtb -b 0 -i /home/z/work/H3_Dev/longan/kernel/linux-5.8/arch/arm/boot/dts -d /home/z/work/H3_Dev/longan/kernel/linux-5.8/arch/arm/boot/dts/.sun8iw7p1-soc.dtb.d.dtc.tmp /home/z/work/H3_Dev/longan/kernel/linux-5.8/arch/arm/boot/dts/.sun8iw7p1-soc.dtb.dts.tmp
FATAL ERROR: Couldn’t open “/home/z/work/H3_Dev/longan/kernel/linux-5.8/arch/arm/boot/dts/.sun8iw7p1-soc.dtb.dts.tmp”: No such file or directory - ‘[‘ 1 -ne 0 ‘]’
- echo ‘Conver script to dts failed’
Conver script to dts failed - exit 1
ERROR: build kernel Failed
INFO: mkkernel failed
由于没有.sun8iw7p1-soc.dtb.dts.tmp这个中间文件,编译脚本使用了默认的dts,且编译出错,不知道.sun8iw7p1-soc.dtb.dts.tmp这个中间文件如何生成的,有大佬了解这个?可否告知一下,谢谢!
编译dts对应的脚本函数附加如下:
do_init_to_dts()
{
local DTC_SRC_PATH=${LICHEE_KERN_DIR}/arch/${ARCH}/boot/dts
if [ “x${ARCH}” == “xarm64” ]; then
DTC_SRC_PATH=${DTC_SRC_PATH}/sunxi
fi
local DTC_DEP_BOARD=${DTC_SRC_PATH}/.${LICHEE_CHIP}-${LICHEE_BOARD}.dtb.d.dtc.tmp
local DTC_DST_FILE=${DTC_SRC_PATH}/sun8i-h3-orangepi-pc.dtb
local DTC_SRC_BOARD=${DTC_SRC_PATH}/.${LICHEE_CHIP}-${LICHEE_BOARD}.dtb.dts.tmp
local DTC_DEP_BUSSINESS=${DTC_SRC_PATH}/.${LICHEE_CHIP}-${LICHEE_BUSSINESS}.dtb.d.dtc.tmp
local DTC_SRC_BUSSINESS=${DTC_SRC_PATH}/.${LICHEE_CHIP}-${LICHEE_BUSSINESS}.dtb.dts.tmp
local DTC_DEP_COMMON=${DTC_SRC_PATH}/.${LICHEE_CHIP}-soc.dtb.d.dtc.tmp
local DTC_SRC_COMMON=${DTC_SRC_PATH}/.${LICHEE_CHIP}-soc.dtb.dts.tmp
local DTC_COMPILER=${LICHEE_KERN_DIR}/scripts/dtc/dtc
local DTC_INI_FILE_BASE=${LICHEE_BOARD_CONFIG_DIR}/sys_config.fex
local DTC_INI_FILE=output/sys_config_fix.fex
cp $DTC_INI_FILE_BASE $DTC_INI_FILE
sed -i "s/\(\[dram\)_para\(\]\)/\1\2/g" $DTC_INI_FILE
sed -i "s/\(\[nand[0-9]\)_para\(\]\)/\1\2/g" $DTC_INI_FILE
echo $DTC_INI_FILE
if [ ! -f $DTC_COMPILER ]; then
echo "Script_to_dts: Can not find dtc compiler.\n"
exit 1
fi
if [ -f $DTC_DEP_BOARD ]; then
printf "Script_to_dts: use board special dts file ${LICHEE_CHIP}-${LICHEE_BOARD}.dts\n"
DTC_DEP_FILE=${DTC_DEP_BOARD}
DTC_SRC_FILE=${DTC_SRC_BOARD}
elif [ -f $DTC_DEP_BUSSINESS ]; then
printf "Script_to_dts: use bussiness special dts file ${LICHEE_CHIP}-${LICHEE_BUSSINESS}.dts\n"
DTC_DEP_FILE=${DTC_DEP_BUSSINESS}
DTC_SRC_FILE=${DTC_SRC_BUSSINESS}
else
printf "Script_to_dts: use common dts file ${LICHEE_CHIP}-soc.dts\n"
DTC_DEP_FILE=${DTC_DEP_COMMON}
DTC_SRC_FILE=${DTC_SRC_COMMON}
fi
local DTC_FLAGS="-W no-unit_address_vs_reg"
if [ -d ${LICHEE_CHIP_CONFIG_DIR}/dtbo ]; then
echo "sunxi_dtb create"
$DTC_COMPILER ${DTC_FLAGS} -@ -O dtb -o ${LICHEE_KERN_DIR}/output/sunxi.dtb \
-b 0 \
-i $DTC_SRC_PATH \
-d $DTC_DEP_FILE $DTC_SRC_FILE
else
echo "sunxi_dtb create"
$DTC_COMPILER ${DTC_FLAGS} -O dtb -o ${LICHEE_KERN_DIR}/output/sunxi.dtb \
-b 0 \
-i $DTC_SRC_PATH \
-d $DTC_DEP_FILE $DTC_SRC_FILE
fi
if [ $? -ne 0 ]; then
echo "Conver script to dts failed"
exit 1
fi
#restore the orignal dtsi
if [ "x${LICHEE_LINUX_DEV}" = "xdragonboard" \
-o "x${LICHEE_LINUX_DEV}" = "xdragonmat" ]; then
local DTS_PATH=${LICHEE_KERN_DIR}/arch/${ARCH}/boot/dts
[ "x${ARCH}" = "xarm64" ] && DTS_PATH=${LICHEE_KERN_DIR}/arch/${ARCH}/boot/dts/sunxi
if [ -f ${DTS_PATH}/${LICHEE_CHIP}_bak.dtsi ];then
rm -f ${DTS_PATH}/${LICHEE_CHIP}.dtsi
mv ${DTS_PATH}/${LICHEE_CHIP}_bak.dtsi ${DTS_PATH}/${LICHEE_CHIP}.dtsi
fi
fi
printf "Conver script to dts ok.\n"
# It'is used for debug dtb
$DTC_COMPILER ${DTC_FLAGS} -I dtb -O dts -o ${LICHEE_KERN_DIR}/output/.sunxi.dts ${LICHEE_KERN_DIR}/output/sunxi.dtb
return
}
Markdown 语法
- 加粗**内容**
- 斜体*内容*
- 删除线~~内容~~
- 引用> 引用内容
- 代码`代码`
- 代码块```编程语言↵代码```
- 链接[链接标题](url)
- 无序列表- 内容
- 有序列表1. 内容
- 缩进内容
- 图片![alt](url)
-
2020-10-31 11:12:08
-
2015-08-08 13:26:41
-
142013-12-10 23:10:39
-
2019-06-21 11:43:52
-
2018-10-16 14:11:02
-
2020-07-07 17:58:02
-
2020-03-31 11:14:26
-
2018-12-06 09:58:10
-
2019-10-31 18:18:43
-
2019-12-10 13:44:26
-
2017-04-07 15:35:24
-
2019-01-02 14:05:12
-
2015-07-27 15:00:18
-
2018-06-25 14:56:28
-
2015-09-21 16:26:37
-
2018-08-17 17:24:46
-
2018-12-31 13:16:29
-
2020-10-30 15:36:57
-
2023-10-12 10:15:09
-
10RV1106的低功耗和休眠唤醒功能
-
10海思平台(Hi3516DV500),设置完ldc参数后 工作异常
-
5rv1126-dc-201 安装hi3881.ko wifi驱动成功后 启动connmand服务,系统就崩了
-
10ss928编码的h264帧流,用RTSP传输到电脑,VLC播放不了是什么情况?
-
10我运行rv1126的开发环境后,编译demo提示没有opencv,自行编译安装后没有解决,请问这个怎么处理呢?板子是easy eai nano
-
50CPS-1848 link不上FPGA。
-
10想问一下各位大佬们,关于VI配置成8Lan LVDS模式的相关问题
-
10基于SS928的NNIE做人脸检测算法,模型转换异常
-
10RV1126 38板有imx415的镜像吗?
-
5海思3519dv500 LT9611配置设备树问题
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明