础光 Linux 是面向汽车的实时操作系统,在原生 Linux 内核基础上,确保系统可靠的前提下,从中断线程化、调度策略、进程切换等方面进行了优化,构建了专注于仪表/娱乐/自动驾驶场景的安全、可靠、强实时的基础操作系统,分享一下我的本地学习环境。
推荐个人电脑的系统为 Ubuntu 18.04 LTS 及以上版本。
sudo apt install git bc bison flex libssl-dev make
sudo apt install gcc-aarch64-linux-gnu
git clone https://gitee.com/kernelsoft/photon-linux.git
# 在 photon-linux 源码根目录中执行如下命令完成编译的配置(只需执行一次)
cd photon-linux
./quick-start.sh devel
# 执行如下命令编译内核
./quick-start.sh image
sudo apt install qemu-system-aarch64
# 通过如下链接下载预制的版本并重命名为 rootfs.img,保存到 build 目录
mkdir build && cd build
wget https://www.kernelsoft.com/api/media?path=static/files/rootfs.img -O rootfs.img
编译完成,运行以下指令启动qemu并加载编译好的镜像。
./quick-start.sh run
编译完成之后,执行以下指令
python3 ./scripts/clang-tools/gen_compile_commands.py
导入的项目时间有点长,请耐心等待,如果电脑内存不够,可能会导致失败。
现在你可以轻松地跳转代码,修改源码,编译运行调试了,如果想要断点调试,可以学习一下使用GDB。
我在寻找资料的途中,发现了一些牛逼的网站,这个图是可以点击的。 https://makelinux.github.io/kernel/map/
参考文献 https://gitee.com/kernelsoft/photon-linux https://github.com/nickdiego/compiledb