QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9456|回复: 7

FanX2/SLAX6中的模块

[复制链接]
发表于 2008-7-3 16:36:42 | 显示全部楼层 |阅读模式
FanX/SLAX中的模块

模块的制作

0.
建议先将软件包安装到系统后(如何安装到系统见后面部分),在控制台输入程序的可执行程序名来启动软件,确保程序能正常启动,在确保程序能正常启动的情况下再进一步制作模块。如果程序不能正常启动,控制台会显示出缺少的库文件,根据显示结果将所缺库文件找到,并复制到对应的目录中,库文件的目录99%是/usr/lib/

1.
如果是单个slackware体系的tgz包,而且确保不存在库文件依赖问题,则直接使用tgz2lzm some.tgz some.lzm即可。
2.如果想要尝试redhat体系的rpm包,首先需将其转换成tgz包,用命令rpm2tgz some.rpm,然后同1。
3. 如果是debian体系的deb包,则可以使用deb2lzm some.deb some.lzm。
4.或许还会碰到ArchLinux的.pkg.tar.gz包,这个更简单一点,可以将该包的.pkg.tar.gz直接更名为.tgz后同步骤1。但是要注意ArchLinux的KDE及其相关程序是安装在/opt/kde下的,而SLAX的KDE则是安装在/usr下的,如果使用的是ArchLinux的KDE相关程序,则需要将.pkg.tar.gz包解压,调整目录后重新制作成tgz包后进行操作。
5.还有就是源码包了,需要先将其编译成二进制包,一般而言就是将源码包解压,进入文件夹,执行:
./configure
make
注意,make完毕且没有输出错误后,用命令make install DESTDIR=/tmp/somepkg 将安装文件安装到/tmp/somepkg下。进入/tmp/somepkg,执行命令makepkg somepkg.tgz所有的提示问题都输n(回答y也可),将编译好的软件打包成slackware的tgz包,由tgz包制作lzm模块方法同1。
大部分的程序都是这样编译的,但是也有少部分程序的安装会更简单或者更复杂,详细安装方法见软件包中的install说明。
6.
如果制作的模块涉及到多个tgz包和需要加入一些其它的文件,那就先用installpkg命令的root选项将所有tgz包安装到一个空目录下,文件夹名随意。
installpkg -root /tmp/modules
  *.tgz //安装当前目录下所有的tgz包到/tmp/modules下。
然后进入/tmp/modules文件夹中删除确认不需要的东西,需要做的任何更改也要在此时完成。
到tmp下目录下运行 dir2lzm modules mymodule.lzm 即可完成模块制作,模块的名字随意。
为了方便以后使用,可以将整理好的目录制作成tgz包供以后使用(此步也可以不做) 进入/tmp/modules目录下运行 makepkg mypack.tgz 所有问题都回答n即可(回答y也可)
注意:模块文件名的字母顺序。Slax按照模块名的字母顺序进行模块的加载。如果所制作的模块需要最后加载,则需要将其文件名的字母顺序尽量往后排。
模块的使用

在光盘目录base和modules文件夹中的所有模块在系统启动时会自动加载;在optional文件夹中的模块需要在光盘启动出现启动菜单时,点击Tab键,在已有字符后编辑输入 load=mymodule.lzm来启用模块;也可以在运行的系统中使用模块,使用桌面的情况下双击模块即可将模块载入系统,命令行下则可以用activate

mymodule.lzm命令。

将模块植入FanX/SLAX ISO 镜像中
如果做好的模块我们希望植入到FanX/SLAX的ISO中永久刻盘使用,则解压ISO到一个文件夹中,比如一个解压到一个名称为slax6的文件夹中,如果希望模块在启动中自动加载,就把模块复制到slax6\slax\base或者slax6\slax\modules
[WINDOWS]下,运行cmd,将目录定位到slax文件夹下,比如是C:\slax,运行make_iso.bat d:\slax.iso即可生成新的iso
[LINUX]下用root用户登录,也定位到slax的文件夹下,运行make_iso.sh /tmp/slax.iso命令即可。

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
如何寻找软件包依赖的库文件
SLAX/FanX中添加一个软件常常会遇到这种情况,就是安装在系统中的软件在控制台中输入命令后启动不起来,会提示缺少库文件,那么如何寻找这些库文件呢?
1.
将得到的软件包,rpm包用rpm2tgz转换成tgz包,如果是deb包,可以直接用tar命令解压缩,得到data.tar.gz,一个control.tar.gz,继续解压data.tar.gz,解开后根据目录结构用makepkg打包成tgz包,用installpkg命令安装到系统中。
2.
打开控制台,KDE下有kconsole,输入该软件包的执行文件名运行,看控制台输出什么,要是能启动起来,那么说明该软件包不需要解决依赖问题;如果提示缺少什么库文件那么就用下面的方法将需要的库文件都找齐。
3.
毫无疑问,我们首先应该想到的是googlebaidu,搜索缺少的库文件的文件名,一般根据搜索结果就可以知道此库文件属于哪个软件包了。如果搜索结果不是很明了的话就上 www.rpmfind.net上,在打开首页的搜索框内输入缺少的库文件的文件名进行搜索,就能搜到文件所属于的软件包了,当然搜到的结果一般都是rpm包,看好平台(i386,i486,i586,i686的一般都可)和版本将其下载回来。为了方便文件提取,可先用rpm2tgz命令将下载回来的rpm包转换成tgz包。
4.
怎么从tgz包中提取文件就不多说了,那就是一个tar.gz的压缩包了,KDE的文件管理器可以直接提取。稍微注意一下,比如碰到需要的库文件是 libcdao.so.0.1,可是你解开相同版本号的压缩包后发现只有libcdao.so 那么你可以直接将这个文件改名为 libcdao.so.0.1就可以了使用了,还有就是这些文件99%都是处于/usr/lib下。
5. windows
下,不管是tgz包,还是deb包,还是rpm包,都可以用7-zip解开提取文件。

顺便提供一些资源网站:
www.slackware.com/getslack  Slackware
的官方下载镜像,找到其中的一个镜像进入后能看到slackware的各个版本,根据需要进入寻找,最新的软件包到 slackware-current目录下寻找;
www.linuxpackages.net    slackware
的社区tgz包集合,需要的软件如果官方没有的话先来这儿瞧瞧,90%的软件包都能在这儿找到。
www.rpmfind.net   
顾名思义,找rpm包,因为rpm包可以很容易转换成tgz包,所以rpm包我们不应该拒绝;
发表于 2008-7-4 07:33:28 | 显示全部楼层
终于看到最全面的lzm模块制作教程
回复

使用道具 举报

 楼主| 发表于 2008-7-5 17:04:05 | 显示全部楼层
有疑问的请跟帖询问,我会一一作答。稍后会奉上中文模块的制作全过程。
回复

使用道具 举报

发表于 2008-7-5 22:07:54 | 显示全部楼层
能不能写个将ATI官方驱动*.run格式转换为*.lzm的教程?谢谢老大。
回复

使用道具 举报

发表于 2008-7-26 23:35:49 | 显示全部楼层
fanx2/slax6.0.7基于slackware12.1,制作*.lzm模块其实没什么难度呀,直接把slackware的软件包拿来tgz2lzm就可以了。

不过我觉得fanx2/slax6.0.7使用了slackware12.1的基系统、2.6.24.5内核后,虽然有更多的特性、支持更多的硬件,但明显比fanx1.2/slax5.1.8慢了不少,所以我不太喜欢。
回复

使用道具 举报

发表于 2008-9-10 00:34:04 | 显示全部楼层
小平,辛苦了!
回复

使用道具 举报

发表于 2009-3-19 20:40:18 | 显示全部楼层
楼主辛苦了,需要用到,做个记号。
回复

使用道具 举报

发表于 2011-1-28 19:14:26 | 显示全部楼层
期待中文模块的制作全过程
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-4-19 06:26 , Processed in 0.097096 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表