This action will force synchronization from kernelsoft/Photon-Linux, which will overwrite any changes that you have made since you forked the repository, and can not be recovered!!!
Synchronous operation will process in the background and will refresh the page when finishing processing. Please be patient.
础光 Linux 是面向汽车的实时操作系统,在原生 Linux 内核基础上,确保系统可靠的前提下,从中断线程化、调度策略、进程切换等方面进行了优化,构建了专注于仪表/娱乐/自动驾驶场景的安全、可靠、强实时的基础操作系统。
推荐个人电脑的系统为 Ubuntu 18.04 LTS 及以上版本。
sudo apt install git bc bison flex libssl-dev make
sudo apt install gcc-aarch64-linux-gnu
# 下载
wget https://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
# 解压
tar xvf gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu.tar.xz
# 当前用户的 .barhrc文件中添加如下行, 注意将路径替换为当前系统的值
export PATH=~/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 作为示例介绍编译运行过程。
sudo apt install qemu-system-aarch64
git clone https://gitee.com/kernelsoft/photon-linux.git
# 在 photon-linux 源码根目录中执行如下命令完成编译的配置(只需执行一次)
cd photon-linux
./quick-start.sh devel
# 执行如下命令编译内核
./quick-start.sh image
# 通过如下链接下载预制的版本并重命名为 rootfs.img,保存到 build 目录
mkdir build && cd build
wget https://www.kernelsoft.com/api/media?path=static/files/rootfs.img -O rootfs.img
编译完成,可以通过 QEMU 运行 Photon Linux
./quick-start.sh run
在编译环境中进行以下操作制作启动盘:
# 从 Raspberry 官网(https://www.raspberrypi.com/software/operating-systems/)下载 Raspberry Pi 最新镜像
wget https://downloads.raspberrypi.org/raspios_arm64/images/raspios_arm64-2021-05-28/2021-05-07-raspios-buster-arm64.zip
# 1 准备一个空白SD卡并插入到电脑
# 2 下载镜像烧录工具 Raspberry Pi Imager并安装,以 Ubuntu 系统为例
wget https://downloads.raspberrypi.org/imager/imager_latest_amd64.deb
dpkg -ivh imager_latest_amd64.deb
# 3 启动图形化烧录工具,选择镜像文件以及SD卡即可进行烧录
SD卡第一分区/config.txt
配置文件,追加下面两项配置以显示串口的打印输出: uart_2ndstage=1
enable_uart=1
SD卡第一分区/cmdline.txt
,去掉 quiet
参数,以显示内核打印信息。在编译环境中进行以下操作:
cd photon-linux
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- pi4b_defconfig
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- Image modules -j4
# 插入SD卡,并手动挂载sd卡的2个分区
make modules_install INSTALL_MOD_PATH=SD卡第二分区/
cp arch/arm64/boot/Image SD卡第一分区/kernel8.img
将SD卡插入树莓派,在树莓派上启动运行 Photon Linux:
# 验证内核安装成功,检查uname命令的输出是否为 Chushi 内核信息:
pi@raspberrypi:~$ uname -r
5.10.147-22.08.chushi.aarch64-rt74
开发者可将对比样本与 Photon Linux 进行实时性的对比,我们通过调度延迟测试工具 Cyclictest 对不同优化措施的 Linux 系统进行了对比,得出如下实验结果:
中断/调度延迟优化对比结果
优化措施 | 标准内核5.10 | Photon Linux |
---|---|---|
不加实时补丁,只打开抢占 | 59 ms | 4 ms |
加入实时补丁 | 1.7 ms | 1.5 ms |
实时性增强优化 | 200 us | 100 us |
接下来,我们会在以下方面持续投入:
如果您对内核有一定了解,希望通过提交代码进行社区贡献:
如果您在汽车、机器人等实时系统环境有使用经验,或者您对操作系统感兴趣,也欢迎参与我们的文档建设,成为内容贡献者。参与方式与上述流程相似,请选择 docs 仓库。
当然,您有任何对系统的建议、特性需求,都可以通过提交 Issue 与项目组沟通。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。