查看原文
其他

《奔跑吧linux内核》配套资源迁移到码云上

笨叔 奔跑吧Linux社区 2019-04-24

很多小伙伴抱怨《奔跑吧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。

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存