很多小伙伴抱怨《奔跑吧linux内核》的配套O0的内核从github上git clone经常不成功,而且速度很慢,为此笨叔把O0的内核迁移到码上,下载速度是杠杠的。这回大家不用大家下载速度问题了,尽情享受开源带来的乐趣吧。
《奔跑吧》配套资源:
https://gitee.com/benshushu/Running-LinuxKernel
《奔跑吧》配套代码:
https://gitee.com/benshushu/runninglinuxkernel_4.0
最新笨叔的O0内核支持一个新特性:也就是可以无缝的Host主机和Qemu虚拟机共享文件,采用virtio技术实现的,这样大家使用O0内核做实验就会畅快无比。
下面举个栗子:
在rlk_lab/目录下面有一些例子供大家使用。以rlk_basic/chapter_5/lab1_simple_driver为例子:
1. 修改一下Makefile的BASEINCLUDE路径,指向runninglinuxkernel_4.0的绝对路径,比如

BASEINCLUDE ?= /home/ben/work/runninglinuxkernel_4.0

2. 然后你就可以开始编译了:
$ export ARCH=arm
$exportCROSS_COMPILE=arm-linux-gnueabi-
$ make vexpress_defconfig
$ make –j4
$ cd lab1_simple_driver
$ make
在Host段编译测试程序:
# arm-linux-gnueabi-gcctest.c -o test --static
直接就编译好目录哟。编译好的内核模块是mydemo.ko和test程序
3. 把编译好的内核模块和测试程序拷贝到 runninglinuxkernel_4.0/kmodules目录下面。
4. 启动Qenu虚拟机。这回用脚本来启动
# sh run.sh arm32
5. 在qemu虚拟机中,你进入/mnt目录就能看到编译好的内核模块。神奇吧,不需要重启Qemu虚拟机。
6. 然后就加载内核模块。
$insmod mydemo.ko
7. 手工生成设备节点
/ # mknod /dev/demo_drv c 252 0
运行测试程序
/mnt # ./test
demodrv_open: major=252,minor=0
demodrv_read enter
是不是很方便呢?
感谢网友miracle.huang的patch,欢迎大家给O0内核贡献patch。
继续阅读
阅读原文