如果你有一台DM500的机顶盒,而且你对它的软件比较感兴趣的话,可以尝试着自己动手来构建一下它的升级镜像,玩过的人都知道,DM500的主应用程序是enigma, DM800的主应用程序是enigma2,当然enigma2要比enigma1复杂很多。刚开始找个简单的玩玩,这样更容易有成就感,像我前面的《C语言实现插件机制》就是从DM500学习来的。
我的主机系统是Ubuntu 10.04,其它系统编译过程会有什么问题我也就不知道了。
1. 下载代码
进入, 有一个Read me会告诉你怎么下载代码,方式有好几种,你选择一种就可以了,我用的是http方式:
# mkdir tuxbox
# cd tuxbox
# vim coc.sh
#!/bin/sh
REPLIST="apps boot cdk driver hostapps sandbox"
for f in $REPLIST ; do
git clone $f
done
# chmod a+x coc.sh
# ./coc.sh
这行执行下去要等一会,具体时间长短要看你的网络情况了。不过也很快了,相比android,enigma2的构建来说,这不算什么。
2. 根据盒子类型,生成Makefile
#cd cdk
#./prepare_dream dm500 # 如果prepare_dream没有可执行权限的话,chmod a+x prepare_dream就可以了
这行完了后会有一个Makefile文件产生,如果生成过程中提示有什么错误,那应该就是主机的某些包没有安装,我在这里没有遇到什么问题。
3. 准备编译构建,免得后面不停地输入命令
#vim build-image
#!/bin/sh
#make flash-enigma-squashfs # 这是构建基于enigma的GUI软件
make flash-neutrino-squashfs # 这是构建基于neutrino的GUI软件,相比enigma,这个更漂亮一些。
# chmod a+x build-image
# ./build-image # 这一句相当于你执行一句make flash-neutrino-squashfs,如果你想执行make flash-enigma-squashfs,将脚本里面的行打开就是了
好了,现在需要一个漫长的等待,构建系统会自动去下载内核源码,所以的依赖包等等。
4. 串口升级
升级方法就不说了,将tuxbox/root/cdkflash下面的complete-neutrino.img拷出来烧到盒子上就可以了。
如果你对串口打印感兴趣的话,可以尝试修改内核的配置来打开打印输出,具体方法是:
# vim tuxbox/cdk/linux/.config
将CONFIG_CMDLINE的值修改成"console=ttyS0,115200n8 root=/dev/mtdblock5 rootfstype=squashfs ro"
# ./build-image
结束后再将complete-neutrino.img重烧一下,接上串口线就可以看打印了。
*** 这几天卫星天线坏了,我还没有用生成的镜像去搜台,不知道结果会怎么样,如果有问题,以后再慢慢修改代码吧。
阅读(2382) | 评论(0) | 转发(0) |