原创 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