OpenPCTV - 让你的HTPC拥有更全面的电视功能

通过linuxtoy了解到openPCTV是使用opkg打包的

获得源代码:git clone git://git.code.sf.net/p/openpctv/code openpctv-code

下载完后发现原来不是基于buildroot的,而是采用脚本和makefile方式结合实现的自动化编译,里面可以选择cubieboard板子来编译制作rootfs和iso等,粗略查看脚本,比较适合学习。

目前可参考学习opkg的有openembedded, buildroot外,就是openPCTV.

script/installdev 脚本

使用 --offline-root方式安装,指定rootfs的目标根目录

先建立 var/lib/opkg/info目录, 类似archlinux的pacman安装时需要建立 var/lib/pacman

$ROOT/$TOOLCHAIN/bin/opkg --offline-root $ROOT/$TOOLCHAIN \                          install $PACKAGE >&$VERBOSE_OUT需要先建立 目录
mkdir -p $ROOT/$TOOLCHAIN/var/lib/opkg/info/STAMP=$ROOT/$TOOLCHAIN/var/lib/opkg/info/$1.control

index文件用于生成 opkg仓库索引文件,这个跟OE里脚本是一样

通过 opkg-make-index参数说明即可, 如果Packages不存在可以先touch生成一个

#!/bin/sh. config/options$SCRIPTS/installdev opkg-utils[ "$VERBOSE" = yes ] && V="-v"opkg-make-index $V -l $PKGROOT/Packages.filelist -p $PKGROOT/Packages $PKGROOT

packagedev文件主要是用于生成opkg包

首先调用解析 package目录下包的一些meta信息,然后通过add_control 生成control文件,最后通过opkg-build -O -o root -g root $INSTALL  $DEVPKGROOT >&$VERBOSE_OUT

制作目标包文件, -O表示使用 opk后缀,-o, -g使用的是用户权限, 传递给tar压缩作为参数使用,

在 configs/目录下有funtions文件,即为通用函数库,比如像get_meta等的函数即可在里面查看到代码

build/build.host/toolchain/bin/ 目录主native的一些工具

opkg-build 通知制作contol, postinstall等文件后,压缩后即可生成opk, ipk等包文件

具体过程主要是参考debian打包系统,但要比它的更简洁些

  opkg-key 签名

yocto项目的一些工具对opkg打包很有帮助