您的位置 首页 开关

如何将lua移植到arm渠道的linux内核

将脚本移植到内核是一件很酷的事情,lua已经被移植到NetBSD的内核中,也有一个叫lunatik的项目把lua移植到了linux内核,只可惜只支持…

将脚本移植到内核是一件很帅的工作,lua现已被移植到NetBSD的内核中,也有一个叫lunatik的项目把lua移植到了linux内核,只可惜只支撑x86,不支撑arm,在网上查找了下,没有找到现成的,所以自己研讨了下,现将它共享出来。

移植到arm渠道,主要是要从头完成setjmp和longjmp两个函数,网上相关的材料很少,最终总算找到一个klibc的项目,里边有setmp和longjmp的arm渠道的完成,所以直接拿来用了,不用说,当看到脚本在内核中履行并打印出”hello,world”的时分,仍是很exciting的。这儿讲下运用的办法,详细的代码能够去下面的方位下载:

https://github.com/negtise/luak-arm

1、先下载代码,下载下来后把里边的lunatik目录放到lib目录下。

2、装备内核:

2.1修正lib/Kconfig,增加以下的装备

config LUNATIK
tristate “Enable Lunatik Lua Engine”
default y
help
Enables the Lunatik Lua engine which allows execution of Lua code

2.2装备lua,生成ko文件

履行:

make ARCH=arm menuconfig

然后:

config Lunatik to compile as Module
Library routines —>
Enable Lunatik Lua Engine

3、编译:

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- modules SUBDIRS=lib/lunatik

会生成一个luak.ko

4、调试:

履行以下指令:

cat /proc/kmsg &

echo 9 > /proc/sys/kernel/printk

insmod luak.ko

echo “print(hello,world)” > /sys/class/lunak/eval

假如一却OK,将会输出:

hello,world

这但是从内核里履行的。

5.怎么扩展功用?

能够检查bindings目录中的代码。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/dianyuan/kaiguan/276650.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部