础光 Linux 强实时汽车操作系统开源项目

我要开发同款
匿名用户2023年02月08日
56阅读
开发技术C/C++
所属分类操作系统
授权协议GPL

作品详情

础光Linux是面向汽车的实时操作系统,在原生Linux内核基础上,确保系统可靠的前提下,从中断线程化、调度策略、进程切换等方面进行了优化,构建了专注于仪表/娱乐/自动驾驶场景的安全、可靠、强实时的基础操作系统。

编译环境准备推荐个人电脑的系统为Ubuntu18.04LTS及以上版本。

安装基础依赖软件sudoaptinstallgitbcbisonflexlibssl-devmake安装交叉编译器方式一:通过包管理器sudoaptinstallgcc-aarch64-linux-gnu方式二:手动安装#下载wgethttps://releases.linaro.org/components/toolchain/binaries/7.4-2019.02/aarch64-linux-gnu/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu.tar.xz#解压tarxvfgcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu.tar.xz#当前用户的.barhrc文件中添加如下行,注意将路径替换为当前系统的值exportPATH=~/bin/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin/:$PATH验证安装#输出信息中,确认Target:aarch64-linux-gnu,即认为编译环境配置完成aarch64-linux-gnu-gcc-v运行环境系统支持在以下平台运行:

虚拟环境:QEMU硬件环境:树莓派4B及其它通用平台以下将以虚拟环境QEMU和树莓派4B作为示例介绍编译运行过程。

编译与运行在QEMU平台上运行安装QEMUsudoaptinstallqemu-system-aarch64下载源码gitclonehttps://gitee.com/kernelsoft/photon-linux.git编译#在photon-linux源码根目录中执行如下命令完成编译的配置(只需执行一次)cdphoton-linux./quick-start.shdevel#执行如下命令编译内核./quick-start.shimage准备rootfs.img#通过如下链接下载预制的版本并重命名为rootfs.img,保存到build目录mkdirbuild&&cdbuildwgethttps://www.kernelsoft.com/api/media?path=static/files/rootfs.img-Orootfs.img运行系统编译完成,可以通过QEMU运行PhotonLinux

./quick-start.shrun在树莓派4B上运行制作RsapberryPi启动盘在编译环境中进行以下操作制作启动盘:

准备镜像:#从Raspberry官网(https://www.raspberrypi.com/software/operating-systems/)下载RaspberryPi最新镜像wgethttps://downloads.raspberrypi.org/raspios_arm64/images/raspios_arm64-2021-05-28/2021-05-07-raspios-buster-arm64.zip烧录镜像到SD卡中#1准备一个空白SD卡并插入到电脑#2下载镜像烧录工具RaspberryPiImager并安装,以Ubuntu系统为例wgethttps://downloads.raspberrypi.org/imager/imager_latest_amd64.debdpkg-ivhimager_latest_amd64.deb#3启动图形化烧录工具,选择镜像文件以及SD卡即可进行烧录修改默认配置:编辑SD卡第一分区/config.txt配置文件,追加下面两项配置以显示串口的打印输出:uart_2ndstage=1enable_uart=1编辑SD卡第一分区/cmdline.txt,去掉quiet参数,以显示内核打印信息。验证启动盘烧录成功:将SD卡启动盘插到树莓派4B上,查看是否可正常启动。本例中系统账户沿用树莓派的默认账户。登录账号:pi登录密码:raspberry交叉编译并替换原生Linux内核在编译环境中进行以下操作:

交叉编译PhotonLinux内核cdphoton-linuxmakeARCH=arm64CROSS_COMPILE=aarch64-linux-gnu-pi4b_defconfigmakeARCH=arm64CROSS_COMPILE=aarch64-linux-gnu-Imagemodules-j4替换SD卡启动盘上原生Linux内核镜像和模块#插入SD卡,并手动挂载sd卡的2个分区makemodules_installINSTALL_MOD_PATH=SD卡第二分区/cparch/arm64/boot/ImageSD卡第一分区/kernel8.img运行系统将SD卡插入树莓派,在树莓派上启动运行PhotonLinux:

#验证内核安装成功,检查uname命令的输出是否为Chushi内核信息:pi@raspberrypi:~$uname-r5.10.147-22.08.chushi.aarch64-rt74性能测试开发者可将对比样本与PhotonLinux进行实时性的对比,我们通过调度延迟测试工具Cyclictest对不同优化措施的Linux系统进行了对比,得出如下实验结果:

中断/调度延迟优化对比结果

优化措施标准内核5.10PhotonLinux不加实时补丁,只打开抢占59ms4ms加入实时补丁1.7ms1.5ms实时性增强优化200us100us
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论