OpenWrt开发之包依赖
在《如何在OpenWrt上开发》这篇中提到包是可以依赖其他包的,但并未详细说明,这里来补上。 仅运行时依赖 如果你的包依赖不需要在编译包期间做什么,比如只是个Luci界面扩展,或者只是一些脚本,那么加到Makefile里面就可以了。 编译时依赖 但也有很多时候,包会提供动态链接库,依赖它的包会使用这个动态链接库,这时就需要改更多地方来实现编译时的依赖。 比如我让mypackage依赖libuci这 […]
在《如何在OpenWrt上开发》这篇中提到包是可以依赖其他包的,但并未详细说明,这里来补上。 仅运行时依赖 如果你的包依赖不需要在编译包期间做什么,比如只是个Luci界面扩展,或者只是一些脚本,那么加到Makefile里面就可以了。 编译时依赖 但也有很多时候,包会提供动态链接库,依赖它的包会使用这个动态链接库,这时就需要改更多地方来实现编译时的依赖。 比如我让mypackage依赖libuci这 […]
OpenWrt的界面是名为Luci的一个包。说实在的,对路由器来说,网页界面并不是必需的,只要能ssh上路由器设备,理论上说就可以做任何事情了。不过对于普通用户来说,还是有界面会友好一些。和OpenWrt本身一样,Luci也可以扩展,也就是说你可以向Luci里面加自己的页面,在官方的opkg源里面,也可以找到许多以luci-app-开头的包,它们就是Luci的扩展。 Luci目前是用Lua作为引擎 […]
当我们编译好一些包的时候,肯定是想让它能方便地使用。比如更新了路由器,又没有把自己的包内置到镜像里面去,一般就得用opkg来安装。手动安装就需要把包保存在本地,用的时候上传,验证,完成。像OpenWrt官方源里面的包都不需要上传这一步,就在列表里面选,或者直接用命令,给个包名就能安装了。和官方源一样,我们也可以自建一个opkg源,让安装变简单。 准备工作 在《如何在OpenWrt上开发》一篇中,我 […]
如果要在OpenWrt上运行自己写的程序,那其实配置文件怎么做都可以,只要程序能读它就行。然而,OpenWrt提供了一套名叫UCI,也就是“全局配置接口”的系统,用它来做配置,可以给开发者省下很多麻烦。 文件格式 一个标准的UCI配置文件长这样: UCI配置文件的一项配置分为三个层级:配置文件、配置段、配置。在上面的例子里,每个以config开头的行和之下的行都是一个配置段,第二个词是段类型,第三 […]
在上篇文章里,已经写了如何将可执行文件加入OpenWrt包中。这次再写一些更深入,但是常用的话题。 开机启动 在Linux中,把启动脚本放在/etc/init.d中可以自启动,OpenWrt也不例外。问题是如何把启动脚本打在包中。 在mypackage目录下运行: 修改刚创建的mypackage文件,这里用了procd工具,最简单的写法只需要定义start_service: 在mypackage目 […]
最近,因为一些原因,我需要把自己之前开发的程序移植到OpenWrt上面。要做到这件事,至少需要一台装有OpenWrt的设备(可以用虚拟机)、一台Linux设备用于编译(WSL我猜或许也可以)、Linux编程的知识、GNU编译工具的用法、和一定的英语水平(看文档或者查错之类的)。 下载开发工具 从官方文档里能找到下载开发工具的部分:https://openwrt.org/docs/guide-dev […]