qemu中的引导参数

时间:2012-02-23 17:02:23

标签: c linux-kernel boot qemu

我是内核编程的新手,并试图做一个“Hello World”示例。我在start_kernel()

中将以下代码添加到init / main.c中
#ifdef HELLO
   printk("Hello World");
#endif

现在回答我的问题。如何使用qemu在引导参数中定义HELLO?

1 个答案:

答案 0 :(得分:1)

您需要在编译时定义HELLO(使用-DHELLO作为编译器标志或#define HELLO某处),否则编译器甚至不会看到printk调用并且不会发出任何代码。

您无法根据引导参数在早期启动时重新运行C编译器,这是您在那里更改HELLO所需要做的。

在这方面,内核与任何其他C程序没有什么不同 - 预处理程序指令在编译时很早就得到了处理。

您可以使用this helper macro设置参数,这些参数是一个常规变量,可以使用普通的if语句设置启动并在运行时(非编译时)进行测试。