OpenWrt-安装VSCode查看LuCI代码

复制代码
Debian 10.3
OpenWrt 22.03.5
MT7620

背景

OpenWrtLuCI ,其前端由 JS+HTML+CSS 组成,后端则主要使用 Lua 。我们不得不在一个 Linux 环境进行代码的开发和调试。

安装VSCode

由于部分Linux发行版会出现安装失败的情况,我在这里推荐一个出错最少的方法,那就是 Snap

bash 复制代码
# 更新 apt 软件源列表 
sudo apt update 
# 安装 Snap 支持(如果你的系统还未安装 snapd)
sudo apt install snapd 
# 启动 Snapd 并等待自动重启 
sudo systemctl enable --now snapd.socket 
# 安装 Visual Studio Code(经典模式,以获得更好的兼容性)
sudo snap install --classic code 
# 完成后,可以直接在终端输入 `code` 来启动 VSCode code

部分发行版还是无法通过命令行直接运行,不用慌,我们可以手动链接过去,我们先找到 Snap 帮我们安装的code,一般在 /snap/bin/code ,我们执行:

sh 复制代码
# 创建符号链接至 /usr/bin/ 目录,以便全局访问
sudo ln -s /snap/bin/code /usr/bin/code

这样,我们再在命令行运行 code 就可以打开了。

下载LuCI源码

LuCI的官方github地址 可以发现,开发的大佬们不爱打tag。上一次打tag还是14年,所以我们只能看看分支,发现了openwrt-22.03

当然你也可以选择其它稳定分支,和你的OpenWrt的版本一致即可。所以我们运行:

bash 复制代码
git clone --branch openwrt-22.03 https://github.com/openwrt/luci.git

安装 lua

我们确定Lua版本有个办法,那就是登录你的OpenWrt路由器,在命令行里查看:

bash 复制代码
root@OpenWrt:/# lua -v
Lua 5.1.5  Copyright (C) 1994-2012 Lua.org, PUC-Rio (double int32)

我们发现是 Lua 5.1.5 ,好吧,那就安装

bash 复制代码
wget https://www.lua.org/ftp/lua-5.1.5.tar.gz
tar zxf lua-5.1.5.tar.gz
cd lua-5.1.5
sudo make linux test

这里,我们会遇到一个错误,那就是:

log 复制代码
fatal error: readline/readline.h: No such file or directory #include <readline/readline.h>

解决办法就是安装这个库:

bash 复制代码
sudo apt-get update
sudo apt-get install libreadline-dev

然后我们进行安装

bash 复制代码
sudo make install

这样,我们在命令行运行 lua -v 就能得到一个正常的结果了。

LuCI 整体结构介绍

整个项目非常复杂,我们如果想读懂,就不得不依赖官方给出的一些Markdown文件。 我们先看这个文件 docs/Modules.md,只看一个非常简单的目录结构的部分:

Categories

The LuCI modules are divided into several category directories, namely:

  • applications (Single applications or plugins for other modules or applications)
  • i18n (Translation files)
  • libs (Independent libraries)
  • modules (Collections of applications)
  • themes (Frontend themes) Each module goes into a subdirectory of any of this category-directories.

这个结构看起来非常复杂,但是其实重点只有一个,那就是所有的应用程序都在 applications 下。其他的,可以暂时不用关注。

致谢

  • 感谢 阿里巴巴 通义千问 ,在探索期间提供的帮助。
相关推荐
济61725 分钟前
ROS开发专栏---基于图像视觉的目标追踪实验--适配Ubuntu 22.04
嵌入式硬件·嵌入式·ros2·机器人开发·机器人方向
济6171 小时前
ROS开发专栏---视觉图像数据的获取实验--适配Ubuntu 22.04
嵌入式硬件·嵌入式·ros2·机器人开发·机器人方向
2023自学中18 小时前
imx6ull开发板 移植 ffmpeg 4.2.11 + x264 视频编码库
linux·ffmpeg·音视频·嵌入式·开发板
武子康1 天前
Build-Your-Own-X 从零构建轻量级事件驱动微框架:嵌入式与物联网场景下的极简实践
人工智能·后端·物联网·ai·c#·大模型·嵌入式
阿钱真强道2 天前
25 鸿蒙LiteOS GPIO轮询模式实战教程:电平读取与上升沿检测
嵌入式·harmonyos·liteos·开源鸿蒙·瑞芯微·rk2206
秋越2 天前
从工程角度理解嵌入式C语言关键字
c语言·开发语言·嵌入式·嵌入式软件开发·嵌入式c语言·c语言关键字
bbaydnog2 天前
STM32调试三板斧:printf重定向、HardFault定位、逻辑分析仪抓波形,从此告别瞎改代码
stm32·嵌入式·调试
凉、介3 天前
深入理解 ARMv8-A|处理器模式与寄存器
笔记·学习·嵌入式·arm
2023自学中3 天前
imx6ull 开发板,手机,MQTT 物联网通信实验。
linux·服务器·物联网·嵌入式·开发板·应用编程
lularible3 天前
从沙子到车辙(4.5):时间同步与PTP
开源·嵌入式·汽车电子