Linux系统构建
本专栏用于介绍Linux系统的构建过程。对应的github仓库地址:https://github.com/rikeyone/qemu-linux-system.git
程序猿Ricky的日常干货
擅长扫地、打杂、开车。。
展开
-
系统构建 -- QEMU调试内核(gdb)
qemu中包含有gdbserver功能,利用这个功能我们可以直接对kernel进行gdb调试。-S freeze CPU at startup (use 'c' to start execution)-s shorthand for -gdb tcp::1234主要就是利用qemu的这两个选项来进行调试,比如我的qemu环境中的启动命令:...原创 2019-03-13 16:29:09 · 1815 阅读 · 0 评论 -
系统构建--NFS挂载根文件系统
本文介绍的是利用NFS挂载根文件系统。host上需要先配置NFS服务startnfs.sh:HOST_IP=192.168.1.1NET_NUMBER=192.168.1.0NET_MASK=255.255.255.0NFS_ROOT=~/work/rootfssudo apt-get install nfs-kernel-serversudo apt-get install ...原创 2019-03-12 17:54:46 · 497 阅读 · 0 评论 -
系统构建--从sdcard中加载根文件系统
本文介绍的是使用分区block设备作为根文件系统的加载方法,使用QEMU来模拟硬件来进行讲解。制作嵌入式Linux系统的rootfscd rootfs/sudo dd if=/dev/zero of=rootfs.ext3 bs=1M count=50sudo mkfs.ext3 rootfs.ext3sudo mount -t ext3 rootfs.ext3 /mnt -o loop...原创 2019-03-11 15:36:34 · 996 阅读 · 0 评论 -
系统构建--initramfs的制作和使用
经过前文的介绍,我们知道initramfs可以直接编译到内核中,只需要在CONFIG_INITRAMFS_SOURCE="../rootfs"CONFIG_INITRAMFS_ROOT_UID=0CONFIG_INITRAMFS_ROOT_GID=0本文主要介绍如何制作和加载独立的initramfs,首先需要保证内核选项使能:CONFIG_BLK_DEV_INITRD=y制作ini...原创 2019-03-11 10:50:55 · 8911 阅读 · 1 评论 -
系统构建--根文件系统的挂载
在开始讲解根文件系统挂载之前,首先需要明确如下几个概念:ramdisk/rootfs/initramfs/initrd。ramdisk以一块固定大小的内存作为一个block设备创建文件系统,其中的内容只存在于内存中,修改它的内容不会记录到磁盘中。它用内存模拟了block设备,所以其中的内容还要先加载到page cache中,本身它是内存,创建的page cache也是内存,这产生了对很多内存...原创 2019-03-10 14:24:07 · 1199 阅读 · 0 评论