openLuat / LuatOS

LuatOS -- Powerful embedded Lua Engine for IoT devices, with many components and low memory requirements (16K RAM, 128K Flash)
https://wiki.luatos.com
MIT License
468 stars 103 forks source link

ubuntu 环境编译bsp/linux下demo后执行./luatos 提示找不到sys #64

Closed yougaliu007 closed 2 years ago

yougaliu007 commented 2 years ago

如题,在ubuntu环境下载luatOS代码后,编译bsp/linux下代码,执行如下命令,提示找不到sys模块。 luatos可执行文件所在目录 bsp/linux/build

$ ./luatos -i ../main.lua Lua 5.3.6 Copyright (C) 1994-2018 Lua.org, PUC-Rio Enhance by LuatOS E/lua.err ./luatos: E/lua.err ../main.lua:3: module 'sys' not found stack traceback: [C]: in global 'require' ../main.lua:3: in main chunk [C]: in ?

chenxuuu commented 2 years ago

确实,你可以手动把sys.lua复制到当前目录

yougaliu007 commented 2 years ago

copy sys.lua and main.lua file to luatos dir, still can not find sys

~/iot/project/luart/LuatOS/bsp/linux/build$ tree -L 1 . ├── CMakeCache.txt ├── CMakeFiles ├── cmake_install.cmake ├── hello.lua ├── libcjson.a ├── libfreertos10.a ├── liblua.a ├── libluat.a ├── libluatos_msys.a ├── luatos ├── main.lua ├── Makefile ├── mbedtls.out └── sys.lua

2 directories, 12 files ~/iot/project/luart/LuatOS/bsp/linux/build$ ./luatos -i main.lua Lua 5.3.6 Copyright (C) 1994-2018 Lua.org, PUC-Rio Enhance by LuatOS E/lua.err ./luatos: E/lua.err main.lua:3: module 'sys' not found stack traceback: [C]: in global 'require' main.lua:3: in main chunk [C]: in ?

chenxuuu commented 2 years ago

https://github.com/openLuat/LuatOS/blob/master/lua/src/loadlib.c#L502-L533

我觉得是这里导致的问题

chenxuuu commented 2 years ago

@wendal

yougaliu007 commented 2 years ago

~/iot/project/luart/LuatOS/bsp/linux/build$ ls / | grep lua sys.lua

~/iot/project/luart/LuatOS/bsp/linux/build$ ./luatos -i main.lua Lua 5.3.6 Copyright (C) 1994-2018 Lua.org, PUC-Rio Enhance by LuatOS I/user.sys from linux E/user.coroutine.resume main.lua:11: attempt to index a nil value (global 'lvgl') stack traceback: main.lua:11: in function E/lua.err ./luatos: E/lua.err /sys.lua:370: main.lua:11: attempt to index a nil value (global 'lvgl') stack traceback: main.lua:11: in function stack traceback: [C]: in local 'cb' /sys.lua:370: in upvalue 'safeRun' /sys.lua:393: in function 'sys.run' main.lua:19: in main chunk [C]: in ?

wendal commented 2 years ago

需要编译成32位才能兼容

wendal commented 2 years ago

因为内嵌的sys.luac是32位的