在刚刚下载的内核3.14中启动一个程序

时间:2014-09-25 13:26:23

标签: c linux kernel

我试图了解linux内核(好吧......我刚刚开始)。 我已下载了源代码,我编译了它(3.14)。 我使用Qemu启动内核,它的工作原理。 (我构建了一个rootfs) 这是我的命令:

qemu-system-x86_64 -kernel linux/arch/x86_64/boot/bzImage -hda rootfs/disk.img -append "root=/dev/sda console=ttyS0" -nographic ;

在编译之前,我在start_kernel函数中添加了一些printk,我可以看到它。

现在我试图推出一个小C程序。它只是打印一个'#34; hello world"使用并返回0;

我已经在我的debian(3.14内核)上编译了我的程序,我将它复制到我已经为内核安装了disk.img的文件中。 当我用Qemu启动内核时,我做了

/ # ./HelloWorld <br>

但没有任何反应。

之后,我将退出(EXIT_FAILURE)放在HelloWorld上。 所以我有:

/ # ./HelloWorld <br>
/ # echo $? <br>
0

而不是1。

有时候我有:

/ # ./HelloWorld <br>
-/bin/sh: ./HelloWorld: not found

我将所有人的权限都放在该程序上。

我不明白为什么它不起作用?这是因为我复制了程序吗?我必须要在Qemu中直接编译gcc和其他东西吗?

谢谢!

0 个答案:

没有答案