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打包很有帮助