本帖最后由 兔巴哥 于 2019-11-7 17:23 编辑
先放出安装包,这是我前一个帖子OSCAM交叉编译详细步骤,参考论坛上各位高手的经验(一并致谢!),以及网上的介绍,终于搞定oscam的ipk打包,过段时间放出教程。下一步再打算学习怎么移植到安卓设备上。适当收点辛苦费哈!
2016-3-16 03:00 上传
点击文件名下载附件
售价: 4 nb恩山币 [记录]
折腾OSCAM之二---打包成ipk安装包
一、配置编译环境
1.安装Ubuntu系统。这个网上一大把,物理机和虚拟机皆可,我自己是安装的64位虚拟机。
2.下载openwrt源代码到用户主目录下,比如openwrt。
配置好的编译环境如图:
请注意其中红框中的目录,接下来的操作会用到其中的一个。
配置好的编译环境.jpg (48.59 KB, 下载次数: 1)
2016-3-18 11:18 上传
二、准备编译oscam
上图中的2个目录,package是openwrt系统自带的软件包目录,feeds则是俗称的第三方软件包目录。我们的编译操作使用其中的任何一个目录都是可以的,但是从规范出发,我是选择的feeds目录。
1.还是从规范出发,在feeds...目录下的utils目录中新建一个oscam目录,把编译时要使用的Makefile文件复制到这个目录中,如图:
oscam目录.jpg (18.48 KB, 下载次数: 1)
2016-3-18 11:20 上传
这个Makefile内容如下。关于Makefile比较详细的写法可以参考创建软件包
include $(TOPDIR)/rules.mk
PKG_BRANCH:=trunk
PKG_SOURCE_URL:=http://www.streamboard.tv/svn/oscam/trunk
PKG_REV:=$(shell LC_ALL=C svn info ${PKG_SOURCE_URL} | sed -ne's/^Last Changed Rev: //p') #编译时获取最新源代码
#PKG_REV:=10940 #编译指定版本
PKG_NAME:=oscam
PKG_VERSION:=1.20-svn-r$(PKG_REV)
PKG_RELEASE:=MT7620
PKG_SOURCE_PROTO:=svn
PKG_SOURCE_VERSION:=$(PKG_REV)
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE:=$(PKG_SOURCE_SUBDIR).tar.bz2
PKG_MAINTAINER:=OSCam developers
PKG_LICENSE:=GPL-3.0
PKG_LICENSE_FILES:=COPYING
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_BUILD_PARALLEL:=1
PKG_USE_MIPS16:=0
PKG_BUILD_DEPENDS:=+libopenssl +libusb-1.0 +pcsc-lite
include $(INCLUDE_DIR)/package.mk
define Package/oscam
SECTION:=utils #编译前在openwrt的图形配置界面中的位置
CATEGORY:=Utilities #同上
DEPENDS:=+libopenssl +libusb-1.0 +kmod-usb-serial-ftdi +libpcsclite #这里的依赖关系在编译时会自动选中,在安装时会检查依赖
TITLE:=OSCam is an Open Source Conditional Access Module software #图形配置界面中的名称
URL:=http://www.streamboard.tv/oscam/
MAINTAINER:=OSCam developers
endef
define Package/oscam/description #这个软件包的说明
OSCam is an Open Source Conditional Access Module software
endef
CONFIGURE_ARGS += --with-ssl=openssl
MAKE_FLAGS += \ #编译oscam以及相关的依赖包
CROSS=$(TOOLCHAIN_DIR)/bin/$(TARGET_CROSS) \
CROSS_DIR=$(TOOLCHAIN_DIR)/bin/ \
$(TARGET_CONFIGURE_OPTS) \
CFLAGS="$(TARGET_CFLAGS) $(FPIC) $(TARGET_CPPFLAGS)" \
LDFLAGS="$(TARGET_LDFLAGS)" \
OSCAM_BIN=Distribution/oscam \
SVN_REV=$(PKG_REV) \
CONF_DIR=/etc/oscam \
USE_LIBCRYPTO=1 \
USE_LIBUSB=1 \
USE_PCSC=1 \ #如果不需要这种读卡器就注释掉,以此类推
USE_SSL=1
define Package/oscam/conffiles #卸载和重新安装时需要保留的文件
/etc/oscam/oscam.conf
/etc/oscam/oscam.user
/etc/oscam/oscam.server
/etc/oscam/oscam.srvid
endef
define Package/oscam/install
$(INSTALL_DIR) $(1)/etc/init.d #复制开机启动脚本文件oscam。$(1)表示路由器的根目录
$(INSTALL_BIN) ./files/oscam.init $(1)/etc/init.d/oscam
#$(INSTALL_DIR) $(1)/etc/rc.d #确保开机启动脚本起作用
#$(INSTALL_BIN) ./files/S99oscam $(1)/etc/rc.d/
$(INSTALL_DIR) $(1)/usr/bin #复制编译好的主程序
$(INSTALL_BIN) $(PKG_BUILD_DIR)/Distribution/oscam $(1)/usr/bin/oscam
$(INSTALL_DIR) $(1)/etc/oscam #新建oscam目录并复制配置文件
$(INSTALL_BIN) ./files/oscam/* $(1)/etc/oscam/
endef
define Package/$(PKG_NAME)/prerm #这以下是安装前、后的处理过程,不配置则无法卸载
#!/bin/sh
# if run within buildroot exit
[ -n "${IPKG_INSTROOT}" ] && exit 0
# stop running scripts
/etc/init.d/oscam disable
/etc/init.d/oscam stop
exit 0
endef
$(eval $(call BuildPackage,oscam))复制代码2.在oscam目录下新建一个files目录,把oscam.init和S99oscam复制到这里;再在files目录下新建一个oscam目录,并把配置文件复制到这里,如图:
配置文件等.jpg (33.55 KB, 下载次数: 2)
2016-3-18 11:24 上传
其中oscam.init和S99oscam的内容是相同的,如下:
#!/bin/sh /etc/rc.common
# Copyright (C) 2011 OpenWrt.org
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
START=99
start() {
/usr/bin/oscam -b -u #-u支持中文
echo "runing!"
}
stop() {
killall oscam
killall -9 oscam
echo "stop!"
}复制代码
三、编译OSCAM
以上的准备工作做完后,现在就可以正式开始编译oscam并打包成ipk包了。打开Ubuntu的终端窗口
终端窗口.jpg (1.52 KB, 下载次数: 1)
2016-3-18 11:26 上传
进入openwrt目录,输入make menuconfig打开openwrt的图形配置界面,先在这里选择你要编译哪种芯片的oscam,如图:
配置界面1.jpg (25.45 KB, 下载次数: 3)
2016-3-18 11:27 上传
选择cpu.jpg (13.75 KB, 下载次数: 2)
2016-3-18 12:14 上传
按你自己路由器的cpu进行选择吧。
拉到下面的
配置界面2.jpg (1.9 KB, 下载次数: 1)
2016-3-18 11:29 上传
进入,找到oscam按空格键选中为M,其他都不用动,保持默认就好。然后保存、退出图形配置界面
配置界面3.jpg (7.73 KB, 下载次数: 2)
2016-3-18 11:29 上传
生成oscam的ipk包有2种方法:
1.单独编译oscam包
输入make package/oscam/compile V=s
单独编译.jpg (7.87 KB, 下载次数: 2)
2016-3-18 11:31 上传
这种方法最快,因为只编译并生成oscam以及相关的依赖包,大约10分钟左右就可以完成。
2.编译oscam和系统默认选中的所有包输入make V=s
如果你的编译环境是全新的,则这个过程相当漫长,可能需要几个小时 。因为编译过程中会实时从网上下载所有dl文件,稍微偷懒一点的方法是预先把dl文件下载到openwrt目录下的dl目录中......
以上2种方法能否成功的前提是你的一、二部分没有错误。
四 、最终结果和一点经验
1.编译过程中系统会从网上下载特定版本的oscam源代码并以压缩文档的格式保存在openwrt目录下的dl目录中
dl.jpg (18.05 KB, 下载次数: 1)
2016-3-18 11:32 上传
并同时解压到编译目录下,下次编译时如果存在所需版本的dl文件,则不再下载而是直接解压编译
解压的编译目录.jpg (31.19 KB, 下载次数: 1)
2016-3-18 11:33 上传
编译完成后,在下图所示的目录中会生成相应的ipk 包:
ipk包.jpg (24.09 KB, 下载次数: 1)
2016-3-18 11:34 上传
2.把ipk通过WinSCP复制到路由器的tmp目录下进行安装并启动oscam
安装ipk.jpg (64.18 KB, 下载次数: 2)
2016-3-18 11:37 上传
启动oscam.jpg (16.77 KB, 下载次数: 1)
2016-3-18 11:38 上传
如果不出意外,oscam应该就已经启动了。
3.然后浏览器中输入ip:8888
8888.jpg (24.55 KB, 下载次数: 2)
2016-3-18 11:39 上传
进入oscam.jpg (77.87 KB, 下载次数: 2)
2016-3-18 11:40 上传
如果你是用的360浏览器,请使用极速模式,不要使用兼容模式,否则很悲哀的。ie不存在这个问题
360.jpg (70.69 KB, 下载次数: 2)
2016-3-18 11:41 上传
4.注意,最后生成的oscam安装包默认是不支持camd33和ip6的,如果需要支持,则要预先在dl目录下的oscam压缩文件中打开config.h进行修改,如图:
修改支持.jpg (24.05 KB, 下载次数: 2)
2016-3-18 11:43 上传
去掉其中的双斜杠再打包回去进行编译。如此大功告成!
五、在路由器上安装oscam时的注意事项
有2种安装方法:1、安装前先配置好路由器的软件源,然后再安装opkg install /tmp/oscam.ipk。
2、或者是采用强制安装方法:opkginstall /tmp/oscam.ipk--force-depends
2种安装方法都需要确保系统中有kmod-usb-serial和kmod-usb-ohci以及相应的读卡器驱动(如kmod-usb-serial-pl2303),oscam要正常工作,还需要系统里有libpthread这个软件包,一般都集成得有。
可以先采用第一种方法,如果软件源正确(链接地址和版本都没有问题),那么在安装oscam时会自动从网上下载相关的软件包(包括必须的和不是必须的-比如PCSC驱动)并安装。如果安装时提示缺少的不是关键软件-比如你不使用PCSC读卡器,则可以采用第二种方法。
附:软件源信息(PandoraBox-潘多拉)
dest root /
dest ram /tmp
lists_dir ext /var/opkg-lists
option overlay_root /overlay
arch all 100
arch noarch 200
arch ralink 300
arch ramips 400
arch ramips_24kec 500
--------------------------------------------------------------------------
写在后面:
这个帖子中的Makefile是我参考了论坛中各位高手的经验以及网上的零碎资料,然后东拼西凑出来的,其中肯定还有很多的不足之处,希望各位能够给与补充并完善之。
比如我现在就存在图中的问题:就是在这里无法选择把oscam集成进固件中,不知道是哪里的问题!而openwrt-dreambox系统在编译时就可以随意选择,希望有知道的不吝指教,本人在此先行谢过!!!
本文使用到的文件
oscam.zip
(4.54 KB, 下载次数: 196)
2016-3-18 12:06 上传
点击文件名下载附件
本文使用到的文件