在openwrt上编译一个最简单的ipk包

摘要:
1什么是opkg?Opkg是一个轻量级、快速的套件管理系统。它已经成为开源的嵌入式系统标准。Linux内核之所以提供模块机制,是因为它是一个内核。根据上述说法,尽管openwrt编译的内核模块也是ipk包,但它们不能独立运行。他们的名字将以kmod-开头。

1 什么是opkg

  Opkg 是一个轻量快速的套件管理系统,目前已成为 Opensource 界嵌入式系统标准。常用于路由、交换机等嵌入式设备中,用来管理软件包的安装升级与下载。

  opkg update 更新可以获取的软件包列表
  opkg upgrade 对已经安装的软件包升级
  opkg list 获取软件列表
  opkg install 安装指定的软件包
  opkg remove 卸载已经安装的指定的软件包

2 什么是ipk

  openwrt下的程序安装包,用户可以很方便地安装程序。

3 ipk与内核模块

  什么是内核模块呢?这对于初学者无非是个非常难以理解的概念。内核模块是Linux内核向外部提供的一个插口, 其全称为动态可加载内核模块(Loadable Kernel Module,LKM),我们简称为模块。Linux内核之所以提供模块机制,是因为它本身是一个单内核(monolithic kernel)。单内核的最大优点是效率高,因为所有的内容都集成在一起,但其缺点是可扩展性和可维护性相对较差,模块机制就是为了弥补这一缺陷。
  模块是具有独立功能的程序,它可以被单独编译,但不能独立运行。它在运行时被链接到内核作为内核的一部分在内核空间运行,这与运行在用户空间的进程是不同的。模块通常由一组函数和数据结构组成,用来实现一种文件系统、一个驱动程序或其他内核上层的功能。
  总之,模块是一个为内核(从某种意义上来说,内核也是一个模块)或其他内核模块提供使用功能的代码块。

  

  按上面的说法,虽然openwrt编译出的内核模块也是一个ipk包,但它是无法独立地运行的,它们的名字会以kmod-为开头而取。

在openwrt上编译一个最简单的ipk包第1张

4 编译最简单的ipk包

  我这里使用的openwrt源码为12.09(attitude adjustment)

  1. 在OPENWRT下执行make menuconfig,然后选择Utilities -> gpioctl为<M>,保存退出就可以了
  2. 在OPENWRT下执行make package/gpioctl/compile编译就会得到该ipk了

在openwrt上编译一个最简单的ipk包第2张  在openwrt上编译一个最简单的ipk包第3张

想要清理的话使用以下命令:

make package/gpioctl/clean

 5 验证运行

  将这个gpioctl_1.0-1_ar71xx.ipk包文件使用ftp上传到路由器上去。

复制代码
ftp> put gpioctl_1.0-1_ar71xx.ipk gpioctl.ipk
local: gpioctl_1.0-1_ar71xx.ipk remote: gpioctl.ipk
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
2177 bytes sent in 0.00 secs (4745.5 kB/s)
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r--r--    1 0        0            2177 Apr 14 06:29 gpioctl.ipk
-rw-r--r--    1 0        0             172 Apr 02 07:10 minicom.log
226 Directory send OK.
ftp> 
复制代码

  运行结果:

在openwrt上编译一个最简单的ipk包第6张

   运行时若不带任何参数的话会有这样的提示信息:

gpioctl dirin|dirout|get|set|clear gpio

  说明该ipk包已经正常安装运行了。

更进一步的内容稳步至此: http://wiki.openwrt.org/doc/devel/packages

免责声明:文章转载自《在openwrt上编译一个最简单的ipk包》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇win10+vs2010 安装Silverlight 安装说明gtest入门下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Delphi与Windows 7下的用户账户控制(UAC)机制(加小盾牌),注册表没反应

WIN7, Vista提供的UAC机制,它的主要目的是防止对于操作系统本身的恶意修改。对于Delphi程序的影响,UAC主要在于以下几点:1、由于UAC机制,Delphi对于系统的操作可能无声的失败,而同样的程序,在2000/X下面可能运行正常。譬如注册表的改动。。。2、为了避免这样的情况,Delphi程序必须支持Vista UAC标注,也就是说,在UAC...

Chrome开发者工具面板 F12 调试大全 转载:https://www.cnblogs.com/ajaxlu/p/11855343.html

面板上包含了Elements面板、Console面板、Sources面板、Network面板、Timeline面板、Profiles面板、Application面板、Security面板、Audits面板这些功能面板。这些按钮的功能点如下: Elements:查找网页源代码HTML中的任一元素,手动修改任一元素的属性和样式且能实时在浏览器里面得到反馈。...

Acrobat 软件注册过程记录

Adobe Acrobat XI安装过程详解 Adobe Acrobat是编辑pdf文档的不二选择,同时它的虚拟打印机功能平常使用也相当频繁,所以在日常工作中我经常使用Acrobat而不是Adobe Reader,下面是我亲自验证过的Acrobat安装过程,具体过程如下: 注:Adobe Acrobat之前版本为10.0版本,只支持英文版本,现在更新为11...

玩转StyleGan2:手把手教你安装并运行项目!

时间过得是真快,离上次分享《用AI生成一堆漂亮且独一无二的女朋友!》已经快过去半个多月了。光分享效果,而不分享如何实现,这不是我的风格。所以从今天开始,我会带大家一起玩转这个强大的高清人脸生成项目(不懂开源项目的可以理解为软件)。 目前规划了几个主题 1. 安装并运行 2. 虚拟人脸编辑,操控虚拟人物表情 3. 真实人脸编辑,操控任何人的表情。 4. 云端...

C++ 宏和模板简介

参考《21天学通C++》第14章节,对C++中的宏和模板进行了学习,总结起来其主要内容如下: (1) 预处理器简介 (2) 关键字#define与宏 (3) 模板简介 (4) 如何编写函数模板和模板类 (5) 宏和模板之间的区别 (6) 使用static_assert进行编译阶段检查 **********************************...

微服务架构介绍

作者:老刘链接:https://www.zhihu.com/question/55511712/answer/860169294来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 一、微服务架构介绍 微服务架构(Microservice Architecture)是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方...