qemu-内核开发-配置

7 篇文章 1 订阅
5 篇文章 0 订阅

系统'ip addr'包
----------------
$>iproute2                                 #软件包.
$>ipaddr_list_flush_or_save                #$>ip addr,函数.

qemu-linux内核配置选项
---------
$>vi arch/x86/Kconfig 
--------- 
...
config X86
        def_bool y
        #
        # Note: keep this list sorted alphabetically
        #
        ...
        
        #注释/删掉以下内容
        #select ARCH_HAS_STRICT_KERNEL_RWX 
        ...
...

注意:"ARCH_HAS_STRICT_MODULE_RWX"不能被删掉,如果删掉会导致系统启动不起来.

$>cp /boot/config-`uname -r` /torvalds/build/.config
$>make O=/torvalds/build/ menuconfig
--------- 
CONFIG_FRAME_POINTER              #选择,Kernel hacking -> Choose kernel unwinder:Frame pointer unwinder.
CONFIG_SLAB                       #选择,General setup->Choose SLAB allocator->SLAB.

$>vi /torvalds/build/.config
----
CONFIG_FORTIFY_SOURCE=n
CONFIG_STACKPROTECTOR=n 
CONFIG_KEXEC_BZIMAGE_VERIFY_SIG=n 
CONFIG_ANDROID=n 
CONFIG_RANDOMIZE_BASE=n 
CONFIG_GDB_SCRIPTS=y
CONFIG_GCOV_KERNEL=y 
CONFIG_GCOV_PROFILE_ALL=y
CONFIG_KGDB=y
CONFIG_KGDB_SERIAL_CONSOLE=y 
CONFIG_EXT4_FS=y 
CONFIG_DEBUG_OBJECTS=y 
CONFIG_DEBUG_ENTRY=y 
CONFIG_DEBUG_KOBJECT=y
CONFIG_CMDLINE_BOOL=y
CONFIG_PAGE_POOL=y
CONFIG_DRM_VM=y
CONFIG_VIRT_DRIVERS=y
CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_KERNEL=y
CONFIG_EXT2_FS=y
CONFIG_EXT2_FS_XATTR=n
CONFIG_PCI_DEBUG=y
CONFIG_DMADEVICES_DEBUG=y
CONFIG_DMADEVICES_VDEBUG=y
CONFIG_DEBUG_DEVRES=y
CONFIG_DEBUG_BLOCK_EXT_DEVT=y
CONFIG_DEBUG_DRIVER=y
CONFIG_DEBUG_STACK_USAGE=y
CONFIG_DEBUG_VM=y
CONFIG_DEBUG_OBJECTS=y
CONFIG_DEBUG_PAGEALLOC=y
CONFIG_PNP_DEBUG_MESSAGES=y
CONFIG_I2C_DEBUG_BUS=y
CONFIG_I2C_DEBUG_CORE=y
CONFIG_DEBUG_NOTIFIERS=y
CONFIG_KGDB=y
CONFIG_KGDB_KDB=y
CONFIG_KDB_KEYBOARD=y
CONFIG_KGDB_SERIAL_CONSOLE=y
CONFIG_KGDB_LOW_LEVEL_TRAP=y
CONFIG_SERIAL_KGDB_NMI=y
CONFIG_BLK_DEV_RAM=y
CONFIG_EXT3_FS=y
CONFIG_EXT4_FS=y
CONFIG_EXT4_DEBUG=y
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
CONFIG_NTFS_FS=y
CONFIG_NTFS_DEBUG=y
CONFIG_NTFS_RW=y
CONFIG_CRYPTO_CRC32C=y
CONFIG_CRC16=y
CONFIG_CRAMFS=y
CONFIG_IA32_EMULATION=y
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_BALLOON=y
CONFIG_VIRTIO_BLK=y
CONFIG_VIRTIO_NET=y
CONFIG_VIRTIO=y
CONFIG_VIRTIO_CONSOLE=y
CONFIG_VIRTIO_INPUT=y
CONFIG_VIRTIO_MMIO=y
CONFIG_VIRTIO_RING=y
CONFIG_DRM_VIRTIO_GPU=y
CONFIG_CRYPTO_DEV_VIRTIO=y
CONFIG_EXT2_FS=y
CONFIG_EXT2_FS_XATTR=y 
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT2_FS_SECURITY=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT3_FS_SECURITY=y 
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_EXT4_FS_SECURITY=y
CONFIG_EXT4_FS_ENCRYPTION=y
CONFIG_EXT4_ENCRYPTION=y
CONFIG_JBD2=y
CONFIG_JBD2_DEBUG=y
CONFIG_FS_MBCACHE=y
CONFIG_FSCACHE=y
CONFIG_JFS_POSIX_ACL=y
CONFIG_JFS_SECURITY=y
CONFIG_FS_ENCRYPTION=y
CONFIG_BLK_DEV_NULL_BLK=y
CONFIG_BLK_DEV_FD=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=65536
CONFIG_MSDOS_PARTITION=y
CONFIG_MSDOS_FS=y
CONFIG_DEBUG_LIST=y
CONFIG_DLM_DEBUG=y
CONFIG_DEBUG_WX=y

$>make O=/torvalds/build/ V=1 -j`nproc` bzImage
$>/usr/bin/qemu-system-x86_64 -netdev bridge,id=tap0,br=br0 -device e1000,netdev=tap0 -m 1024 -smp `nproc` -nographic -S -s -curses -kernel `pwd`/arch/x86/boot/bzImage -initrd `pwd`/initrd.img -append "console=ttyS0 root=/dev/ram0 init=/init rw nokaslr" 
注意:-kernel和-append配合使用,"console=ttyS0"会将内容输出到终端.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胡致云

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值