先下載poky linux
git clone -b thud git://git.yoctoproject.org/poky poky_thud cd poky_thud進入標準開發環境
source oe-init-build-env接下來就是重點,進入編輯模式
bitbake -c devshell virtual/kernel做你想做的事 例如apply預先寫好patch
git apply xxx.patch設定defconfig
bitbake -c menuconfig如果想用本身定defconfig可以在
cat /boot/config-*找到 但只在普通linux distro找到 至於poky linux的路徑...我忘了:P(以後再補上)
compile kernel和distro
bitbake virtual/kernel bitbake core-image-full-cmdline然後當然 compile完要run他
runqemu qemux86補充: toaster project 貌似不能改kernel源碼,他用的kernel不是預設的virtual/kernel
最後記下我的小實驗:
patch:
diff --git a/drivers/input/serio/i8042-io.h b/drivers/input/serio/i8042-io.h
index a5eed2ade53d..33f0c3ed8a7d 100644
--- a/drivers/input/serio/i8042-io.h
+++ b/drivers/input/serio/i8042-io.h
@@ -46,14 +46,19 @@ extern int of_i8042_aux_irq;
#define I8042_STATUS_REG 0x64
#define I8042_DATA_REG 0x60
+
static inline int i8042_read_data(void)
{
- return inb(I8042_DATA_REG);
+ int inb_data = inb(I8042_DATA_REG);
+ printk(KERN_INFO "i8042_read_data: %d", inb_data);
+ return inb_data;
}
static inline int i8042_read_status(void)
{
- return inb(I8042_STATUS_REG);
+ int inb_status = inb(I8042_STATUS_REG);
+ printk(KERN_INFO "i8042_read_status: %d", inb_status);
+ return inb_status;
}
static inline void i8042_write_data(int val)
diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h
index c11556563ef0..0f2717629600 100644
--- a/drivers/input/serio/i8042-x86ia64io.h
+++ b/drivers/input/serio/i8042-x86ia64io.h
@@ -49,12 +49,16 @@ static int i8042_data_reg = 0x60;
static inline int i8042_read_data(void)
{
- return inb(I8042_DATA_REG);
+ int inb_data = inb(I8042_DATA_REG);
+ printk(KERN_INFO "i8042_read_data: %d", inb_data);
+ return inb_data;
}
static inline int i8042_read_status(void)
{
- return inb(I8042_STATUS_REG);
+ int inb_status = inb(I8042_STATUS_REG);
+ printk(KERN_INFO "i8042_read_status: %d", inb_status);
+ return inb_status;
}
static inline void i8042_write_data(int val)
result:
沒有留言:
張貼留言