Buildroot:修订间差异
跳转到导航
跳转到搜索
第94行: | 第94行: | ||
buildroot编译完后镜像将在将在output/images/中目录,可使用start-qemu.sh启动[[Qemu]]。 | buildroot编译完后镜像将在将在output/images/中目录,可使用start-qemu.sh启动[[Qemu]]。 | ||
=== 使用9p文件系统作为根目录 === | |||
使用9p文件系统+virtio可用作宿主机到客户机(虚拟机内部)的文件共享。 | |||
当使用9p文件系统作为根文件系统时就可把宿主机的目录用作虚拟机的根目录,这样就不用频繁生成镜像,直接修改目录即可。 | |||
要实现9p文件系统作为根文件系统,需要以下条件: | |||
* Linux内核启用了9p文件系统+virtio支持。 | |||
* Qemu添加相应设备:在Qemu命令参数中添加<code>-fsdev local,security_model=passthrough,id=fsdev-fsRoot,path=`pwd`/root/ -device virtio-9p-pci,id=fsRoot,fsdev=fsdev-fsRoot,mount_tag=fsRoot</code> 其中fsdev的path选项就是要共享的目录。 | |||
* Linux内核命令行中添加9p文件系统的root挂载:<code>root=fsRoot rw rootfstype=9p rootflags=trans=virtio,version=9p2000.L,msize=5000000,cache=mmap,posixacl</code> | |||
注意:虚拟机内部操作系统的权限同执行Qemu程序的宿主机用户权限相同,如需根文件系统可写,则需确保用户对共享的目录可写(或者粗暴的使用root用户执行qemu程序)。 | |||
==== 参考资料 ==== | |||
* https://wiki.qemu.org/Documentation/9p_root_fs | |||
* https://wiki.qemu.org/Documentation/9psetup | |||
== 官方资料 == | == 官方资料 == | ||
网址:http://buildroot.org/ | 网址:http://buildroot.org/ |
2023年8月29日 (二) 03:36的版本
源代码
主要
http://git.buildroot.net/buildroot/
https://git.busybox.net/buildroot/
备用
https://github.com/buildroot/buildroot.git
说明
这是一个强大的嵌入式Linux系统构建工具,可一键构建嵌入式Linux。
buildroot可直接构建嵌入式Linux开发的各种工具,不用为编译环境的配置而烦恼。
常用编译命令参数如下:
项目 | 类型 | 说明 | 备注 |
---|---|---|---|
menuconfig | Makefile目标 | 使用菜单配置buildroot | 通常需要先导入某个默认配置再使用菜单配置 |
busybox-menuconfig | Makefile目标 | 使用菜单配置busybox | |
linux-menuconfig | Makefile目标 | 使用菜单配置Linux | |
source | Makefile目标 | 下载构建所需源代码 | 一般用于网不好时预先下载源代码,使用此目标可较快获取缺失的源代码 |
V | 环境变量/Makefile变量 | 指定打印的级别,0 => quiet build, 1 => verbose build |
个人使用场景
- 为LicheePi-Zero(基于全志V3S芯片)构建内核。
Qemu测试
buildroot预置大量Qemu defconfig配置文件,使用这些配置可方便使用Qemu测试Linux内核、根文件系统、应用程序等。
在buildroot编译时可采用make defconfig配置文件
,截止编辑时具体支持的Qemu defconfig配置文件列表如下:
- qemu_aarch64_ebbr_defconfig
- qemu_aarch64_sbsa_defconfig
- qemu_aarch64_virt_defconfig
- qemu_arm_ebbr_defconfig
- qemu_arm_versatile_defconfig
- qemu_arm_vexpress_defconfig
- qemu_arm_vexpress_tz_defconfig
- qemu_m68k_mcf5208_defconfig
- qemu_m68k_q800_defconfig
- qemu_microblazebe_mmu_defconfig
- qemu_microblazeel_mmu_defconfig
- qemu_mips32r2el_malta_defconfig
- qemu_mips32r2_malta_defconfig
- qemu_mips32r6el_malta_defconfig
- qemu_mips32r6_malta_defconfig
- qemu_mips64el_malta_defconfig
- qemu_mips64_malta_defconfig
- qemu_mips64r6el_malta_defconfig
- qemu_mips64r6_malta_defconfig
- qemu_nios2_10m50_defconfig
- qemu_or1k_defconfig
- qemu_ppc64_e5500_defconfig
- qemu_ppc64le_powernv8_defconfig
- qemu_ppc64le_pseries_defconfig
- qemu_ppc64_pseries_defconfig
- qemu_ppc_bamboo_defconfig
- qemu_ppc_e500mc_defconfig
- qemu_ppc_g3beige_defconfig
- qemu_ppc_mac99_defconfig
- qemu_ppc_mpc8544ds_defconfig
- qemu_riscv32_virt_defconfig
- qemu_riscv64_nommu_virt_defconfig
- qemu_riscv64_virt_defconfig
- qemu_s390x_defconfig
- qemu_sh4eb_r2d_defconfig
- qemu_sh4_r2d_defconfig
- qemu_sparc64_sun4u_defconfig
- qemu_sparc_ss10_defconfig
- qemu_x86_64_defconfig
- qemu_x86_defconfig
- qemu_xtensa_lx60_defconfig
- qemu_xtensa_lx60_nommu_defconfig
buildroot编译完后镜像将在将在output/images/中目录,可使用start-qemu.sh启动Qemu。
使用9p文件系统作为根目录
使用9p文件系统+virtio可用作宿主机到客户机(虚拟机内部)的文件共享。
当使用9p文件系统作为根文件系统时就可把宿主机的目录用作虚拟机的根目录,这样就不用频繁生成镜像,直接修改目录即可。
要实现9p文件系统作为根文件系统,需要以下条件:
- Linux内核启用了9p文件系统+virtio支持。
- Qemu添加相应设备:在Qemu命令参数中添加
-fsdev local,security_model=passthrough,id=fsdev-fsRoot,path=`pwd`/root/ -device virtio-9p-pci,id=fsRoot,fsdev=fsdev-fsRoot,mount_tag=fsRoot
其中fsdev的path选项就是要共享的目录。 - Linux内核命令行中添加9p文件系统的root挂载:
root=fsRoot rw rootfstype=9p rootflags=trans=virtio,version=9p2000.L,msize=5000000,cache=mmap,posixacl
注意:虚拟机内部操作系统的权限同执行Qemu程序的宿主机用户权限相同,如需根文件系统可写,则需确保用户对共享的目录可写(或者粗暴的使用root用户执行qemu程序)。