Halo OS

1 下载

按照官方gitee的教程在WSL的Ubuntu Linux发行版上进行Halo OS相关的工具和源码的下载、编译、使用。

STEP1 下载相关依赖

sudo apt update && sudo apt install -y liblzma-dev libbz2-dev  libssl-dev build-essential zlib1g-dev libncurses5-dev  libgdbm-dev libnss3-dev  libreadline-dev  libffi-dev  libsqlite3-dev

有一个包依赖的问题: libncurses5-dev 需要解决目前的新版本和包依赖之前的旧版本之间的包依赖问题。暂且放下,先把别的下好(我看的部分可能用不到)。

libncurses5-dev 是 ncurses 库的开发版本,主要用于终端界面编程。

Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libncurses5-dev : Depends: libtinfo6 (= 6.3-2ubuntu0.1) but 6.4+20240113-1ubuntu2 is to be installed
                   Depends: libncurses-dev (= 6.3-2ubuntu0.1) but 6.4+20240113-1ubuntu2 is to be installed
E: Unable to correct problems, you have held broken packages.

下载别的库,然后检查库的安装情况:只有存在包依赖冲突的库没有安装上,之后有需要再手动处理。

dpkg -l liblzma-dev libbz2-dev libssl-dev build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libreadline-dev libffi-dev libsqlite3-dev 2>/dev/null | grep "^ii"

STEP2 下载源码

已经有git,先下载git-repo

curl https://storage.googleapis.com/git-repo-downloads/repo > repo
sudo chmod +x repo
sudo mv repo /usr/bin  # 将repo移动到/usr/bin目录下

使用git-repo下载源代码

rm -rf ./.repo/  # 如此前有同步失败,需要先删除原有.repo目录;如果没有.repo目录,可以忽略此步骤
repo init -u git@gitee.com:haloos/manifests.git -b master -m default.xml

repo init长时间加载不出来,因为默认的是google源,换一个清华的镜像源

export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'

报错:

PermissionError: [Errno 13] Permission denied: '/mnt/c/Users/HONEST/Desktop/Halo-OS/.repo/repo.tmp' -> '/mnt/c/Users/HONEST/Desktop/Halo-OS/.repo/repo'

因为我没有在Linux原生的文件系统里而是在win的文件系统里进行的操作(虽然没搞懂区别在哪里,但是换一下就对了)

使用repo下载:

repo sync

发现在下载ados/kernel这个仓库这里需要很久很久很久。查看了一下,发现这是autosar adaptive platform用到的操作系统内核的库(实际上是Linux)。有100w+的commit,整个仓库很大,下载过程要很久很久。我选择单独下载再放到对应目录下,官网链接

repo sync -j8 $(repo list | grep -v "ados_kernel" | cut -d: -f1)

整个HALO OS相关的仓库:

honest@LAPTOP-7VH4BO1M:~/haloosspace$ repo list
ados/docs : ados
ados/kernel : ados_kernel
apps/isolate_demo : apps_isolate_demo
apps/mempool_demo : apps_mempool_demo
apps/rt_demo : apps_rt_demo
apps/vbslite_demo : apps_vbslite_demo
build : build
docs : docs
tools/common : tools_common
tools/halo_trace : tools_halo_trace
vbs/docs : vbs
vbs/vbslite/build : vbslite_build
vbs/vbslite/examples : vbslite_examples
vbs/vbslite/mvbs : vbslite_mvbs
vbs/vbslite/tools : vbslite_tools
vbs/vbspro/build : vbspro_build
vbs/vbspro/dsf : vbspro_dsf
vbs/vbspro/evbs : vbspro_evbs
vbs/vbspro/examples : vbspro_examples
vbs/vbspro/framework : vbspro_framework
vbs/vbspro/rpc : vbspro_rpc
vbs/vbspro/thirdparty : vbspro_thirdparty
vbs/vbspro/tools/daemon : vbspro_tools_daemon
vbs/vbspro/tools/idlgen : vbspro_tools_idlgen
vbs/vbspro/utils : vbspro_utils
vbs/vbspro/vbsauth : vbspro_vbsauth
vcos/apps : vcos_apps
vcos/build : vcos_build
vcos/components : vcos_components
vcos/docs : vcos
vcos/drivers : vcos_drivers
vcos/examples : vcos_examples
vcos/external : vcos_external
vcos/include : vcos_include
vcos/kernel/nuttx : vcos_kernel_nuttx
vcos/tests : vcos_tests
vcos/vcos_practice : vcos_practice
vcos/vcos_studio : vcos_studio
vcos/vendor/infineon : vcos_vendor_infineon
vcos/vendor/semidrive : vcos_vendor_semidrive

2 编译

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update && sudo apt install python3.8-venv libxcb-cursor0
python ./build/haloos_compiling_env.py