Chinaunix首页 | 论坛 | 博客
  • 博客访问: 220502
  • 博文数量: 53
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1506
  • 用 户 组: 普通用户
  • 注册时间: 2013-07-25 10:52
文章分类
文章存档

2014年(22)

2013年(31)

我的朋友

分类: 网络与安全

2013-09-12 11:59:35

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


1
2
3
    
$ROOT/$TOOLCHAIN/bin/opkg --offline-root $ROOT/$TOOLCHAIN \
                          install $PACKAGE >&$VERBOSE_OUT
需要先建立 目录
1
2
    
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生成一个
1
2
3
4
5
    
#!/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打包系统,但要比它的更简洁些
阅读(2332) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~