免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1857 | 回复: 0
打印 上一主题 下一主题

把软件安装到sd卡上 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-18 14:56 |只看该作者 |倒序浏览
(为社区做点贡献,翻译了一篇openmoko wiki上的文章,官方wiki见这里
http://wiki.openmoko.org/wiki/Ipkg

备注:记得以前的包管理工具叫做ipkg,后来变成了opkg。如果你的系统上是opkg,那么以下内容里的都是opkg,请把ipkg替换成opkg,或者有的包里的还是ipkg,大家请自己试一试就知道了。
跟debian的apt-get类似,需要添加源地址,将以下内容:
src/gz all
http://buildhost.openmoko.org/OM2007.2/tmp/deploy/glibc/ipk/all/
src/gz armv4t
http://buildhost.openmoko.org/OM2007.2/tmp/deploy/glibc/ipk/armv4t/
src/gz fic-gta01
http://buildhost.openmoko.org/OM2007.2/tmp/deploy/glibc/ipk/fic-gta01
添加到/etc/ipkg/base-feed.conf中
然后:跟debian类似
opkg update  #更新源上包的列表
opkg upgrade #下载安装所有更新的包
opkg install name #安装包名为name的软件包

=========可以利用opkg把软件包安装到存储卡上,由于机器所带nand flash实在不够,这下好了====
1、将卡格式化为ext2:
umount /media/card
fdisk /dev/mmcblk0
mkfs.ext2 -m1 /dev/mmcblk0p1  (-m1 的意思是只把1%的空间留做super user备用,这部分空间我们是无权用的,所有把他设的小一点,那么我们实际可以使用的空间就多一点了)
mount /media/card
2、
a、在/etc/opkg.conf中"dest root /"后面 添加如下内容:
   dest   card   /media/card/opkg
b、然后在卡上创建/media/card/opkg目录
c、将一个名为pack-name的软件包安装到卡上:opkg install -d card pack-name

3、以上所作的工作是把软件包安装到了卡上,接下还要做的是让系统知道去哪儿找安装了的文件。
   有2中方法:
   a、opkg-utils包里面的opkg-link工具,他能把你安装到卡上的每个包里的每个文件,都做一个连接到主系统,即nand flash上面,步骤:
    ===安装opkg-utils包:    opkg install opkg-utils
    ===为你安装的p名为packname软件包,创建符号链接到rootfs,即nand flash上:opkg add packname
    ===为所有安装的软件包都穿件符号链接:opkg-link  mount /media/card/opkg


   ===opkg-link remove packname 为packname软件包移除符号链接
   ===opkg-link umount 移除所有已安装包的符号链接
http://handhelds.org/moin/moin.cgi/Ipkg
这里是opkg(ipkg)的详细用法

  ******************
   b,第二种方法是把card的路径和lib库目录添加到系统的path环境变量中
     *把以下内容添加到/etc/profile中:
     export PATH=$PATH:/usr/local/sbin:/usr/sbin:/sbin:/media/card/opkg/usr/bin
     exprot LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/media/card/opkg/usr/lib
   由于用这个方法,只能告诉系统我们安装到卡上的包的bin路径和lib路径,其他的例如图片,配置文件等等系统都无法找到,所以,opkg-link这种方法相比来说,稍好一点。

=======================================================
以上需要注意的还有一点,用opkg upgrade来升级系统的时候,会升级安装内核,但是在openmoko上,内核是放在一个不同的分区上,而这个分区又是未被挂载的,所有升级的时候,升级了内核模块,但是没有真正升级内核,所以下次启动时,系统还是会读取放在另一分区上的内核,系统会由于内核 和内核模块不匹配而导致一些问题。
所以解决方法是,当你用opkg upgrade升级内核后,查看升级了的内核模块版本,然后手动去openmoko下载相匹配的内核,手动进入dfu模式,用dfu-util刷内核。
  等到有人可以开发出opkg可以写kernel分区,flash新的内核时,这个问题就可以被完美解决了。至少现在还没有。















本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/12679/showart_692842.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP