原创 freebsd的啓動順序
從下面的log中看freebsd啓動的順序是\EFI\BOOT\BOOTAA64.EFI -> /boot/loader.efi -> /boot/kernel. 這裏的bootaa64.efi就是grub2. 需要加添加命令行的話,需
原创 通過qemu 來起freebsd和下載freebsd代碼
我host用是ubuntu的系統,有兩種方法可以起qemu,本質上都是一一樣的 方法1: 1.使用qemu安裝freebsd qemu-system-aarch64 -m 4096 -cpu host -enable-kvm -machi
原创 定製debian iso
host 用的debian 10 的系統。 1 xorriso -osirrox on -indev debian-10.1.0-arm64-DVD-1.iso -extract / work 2:將要安裝的deb 包cp到解壓後的目
原创 CONFIG_ARM64_PAN
CONFIG_ARM64_PAN 是armv8.1的一個擴展特性,其全稱是Privileged Access Never,作用是kernel和userspace 不能同時訪問一段內存.原文是When enabled, this feat
原创 通過evel將字符串作爲函數執行函數
def replace(func_name,args,kwargs): print("enter",func_name,args,kwargs) evel("%s(%s,%s)" % (func_name,args,kw
原创 memory-less node
開機log中提示memory-less node,所謂的memory-less node 就是這個node上沒有內存 對應的numactl -H如下: 可見node 0 和 2上確實沒有內存,這就dmesg中的log 對應起來, st
原创 根據dev_name 找到對應的驅動文件
開機的log中打印下面的log,那怎麼根據這個log找到對應的驅動呢? 00:01: ttyS0 at MMIO 0x3f00002f8 (irq = 15, base_baud = 115200) is a 16550A 這段對應的源
原创 python segmentation fault
1:使用faulthandler 調試 在代碼中加入 import faulthandler;faulthander.enable() 然後通過python3 -Xfaulthander xx.py 執行. 打印掛掉是的堆棧 Thr
原创 按郵箱過濾 git log
ccc@EstBuildSvr1:~/kernel/kernel$ git log --pretty=format:"%h - %ae : %s" | grep google.com 13cf04880235 - andreyknvl@g
原创 vmlinuz的產生
vmlinuz 其實就是Image.gz 下面這個是編譯rpm包時候的mkspec文件,從最後的else可以看到vmlinuz就是KBUILD_IMAGE的拷貝 echo "%ifarch ia64" echo 'cp $KBUILD_
原创 kernel 支持的hugepage size
一般我們通過在命令行中添加參數hugepagesz 來指定大頁的size,這部分代碼的實現如下: static __init int setup_hugepagesz(char *opt) { unsigned long ps =
原创 qemu對cpu的初始化
Qemu中對arm 架構支持的cpu 路徑如下 qemu-master\qemu-master\hw\arm\virt.c static const char *valid_cpus[] = { ARM_CPU_TYPE_NAM
原创 git name-rev 顯示patch合入的tag
xxxx@EstBuildSvr1:~/kernel/kernel$ git name-rev 2b6207291b7b277a5df9d1aab44b56815a292dba 2b6207291b7b277a5df9d1aab44b5