LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 3214|回复: 47

在i686上做的lfs能用到i586上么?

[复制链接]
发表于 2008-1-7 10:24:16 | 显示全部楼层 |阅读模式
想作个用在pc104上的系统
i586 300Mhz   128MRAM

无奈直接lfs编译太慢

想用
机子A: p4 1.7
or
机子B: cy D 2.66

在cf卡上作lfs,然后插到104上用
可以吗?

不能clfs
原因:找不到手册,下不到cd(上不了外网)....
发表于 2008-1-7 13:01:51 | 显示全部楼层
可以的。不过内核编译选项必须对目标机正确。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-7 16:07:44 | 显示全部楼层
是按 lfs 手册的步骤就可以么?

可是什么时候设置内和参数呢?

看手册中没有设置内核参数阿....
回复 支持 反对

使用道具 举报

发表于 2008-1-7 21:11:00 | 显示全部楼层
如果你使用的 LFS 手册上的方法在 i686 的机器上做 LFS ,这时的 uname -m 为 i686 ,echo $MACHTYPE 为 i686-pc-linux-gnu 。这样的拿到 i586 的机器上是用不了的。

你用 CLFS 的方法吧。
cross-lfs.org/view
如果你要做 Intel/AMD x86 的, i486 / i586 / i686 下载 这手册就可以了:
wget -rcnp cross-lfs.org/view/svn/x86
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-7 22:34:21 | 显示全部楼层
谢谢:)

svn 是什么?

我手头只有lfs livecd 6.2-5

用这个cd作那种clfs好呢?(clfs应该没有专门的livecd吧)
回复 支持 反对

使用道具 举报

发表于 2008-1-8 03:40:43 | 显示全部楼层
Post by updavy;1804201
谢谢:)

svn 是什么?

我手头只有lfs livecd 6.2-5

用这个cd作那种clfs好呢?(clfs应该没有专门的livecd吧)


svn的就是开发版本。用的是最新的源码包,包括内核(非测试版本)。
这里说的 svn 专指CLFS的手册中的 svn 版本。CLFS中使用的源码包都是正式发布版本,svn版的手册每几天或一星期左右会修改一次。

GNU/Linux发行版:
  Slackware的32位版 , echo $MACHTYPE 输出结果为 i486-xxx-linux-gnu ,uname -m 不记得了。
  openSUSE 的32位版,echo $MACHTYPE 输出结果为 i586-suse-linux-gnu , uname -m 输出为 i686 。
  Fedora 的32位版,echo $MACHTYPE 输出结果为 i386-xxx-linux-gnu , uname -m 输出为 i686 。
所以,我想这里的几种系统架构还是有关系的,虽然我并不清楚什么叫“架构”。
因为我没有 i586 或更老的机器,也无法试验我做的 i686 能不能在 i586 的机器上使用。如果你有兴趣可以试试 i686 的拷贝到 i586的机器上能不能正常运行?

livecd 用 lfslivecd 就可以了,只要满足开发环境的要求。
一般 LFS 或 CLFS 手册的首页都有个 Host System Requirements 的。如果是做CLFS,只要这些开发工具的版本不是过旧或过新的就成。至于主系统的系统架构,以及内核是x86 的32位或64位等均无特别要求。
http://cross-lfs.org/view/svn/x86
http://cross-lfs.org/view/svn/x86/prologue/hostreqs.html

lfslivecd-6.2-5 应该还能够胜任。
你只需要下载手册和需要的文件就可以了:
下载x86手册:
mkdir -v CLFS
wget -rcnp cross-lfs.org/view/svn/x86
读手册:
lynx cross-lfs.org/view/svn/x86/index.html

下载 需要的文件:
http://cross-lfs.org/files/wget/svn
上面这个链接中 all.list 是所有的链接列表(含 x86 , x86_64 , x86_64-64 以及 MIPS 的 32/64bit 等等)。其实,x86 以及 x86_64 ,x86_64-64 和 MIPS 等,他们需要的源码包相差只有几个,差别较多的是补丁(主要用于制作交叉编译环境),所以不妨选all.list一并下载了。

wget -c http://cross-lfs.org/files/wget/svn/all.list
查看这个 all.list
more all.list
备份一份,因为准备修改它,防出错:
cp -av all.list{,_bak}
将 all.list 文件中的所有以 http: 和 ftp 开头的替换为 wget -c http: 或 wget -c ftp:
sed -i 's@httpwget -c httpg' all.list
sed -i 's@ftpwget -c ftpg' all.list
创建存放 svn 软件包的目录
mkdir -v svn
cd svn
sh ../all.list

上面的软件包也可以在 cross-lfs.org/files/packages/svn 中下载到。

另外,gpm这个控制台下的鼠标,需要 linux-headers-2.6.22.6 或更新的内核头文件。而现在的内核头文件是从内核源代码中提取的。
解决,新版本内核头文件gpm编译不通过的问题:
临时换 2.6.22.6 的头文件

在 CLFS 完成基础系统之后,如果需要编译 gpm 可以这样做:
mv -v /usr/include{,_$(uname -r)}
cp -av /usr/include{_$(uname -r),}

安装 linux-headers-2.6.22.6 覆盖 cp -av 的头文件目录:
文件的下载链接在先前版本比如 2.0 中找,或在 cross-lfs.org/files/packages/ 找

wget -c http://cross-lfs.org/files/packages/sysroot-0.0.1/linux-headers-2.6.22.6-09032007.tar.bz2

tar xvf linux-headers-2.6.22.6-09032007.tar.bz
cd linux-headers*

install -dv /usr/include
cp -av include/{asm-generic,linux,mtd,scsi,sound} /usr/include/
cp -av include/asm-i386 /usr/include/asm

如上法安装 2.6.22.6 的内核头文件之后可以编译 gpm 了,编译完gpm这个控制台下的鼠标支持之后,再换回先前的新版本内核头文件:
将现在的改名,后面加上 _2.6.22.6 版本号:
mv -v /usr/include{,_2.6.22.6}
再将先前的改加来:
mv -v /usr/include{_$(uname -r),}

如有软件编译不能通过,仍然可以用较旧的内核头文件,或更旧的。
回复 支持 反对

使用道具 举报

发表于 2008-1-8 09:00:50 | 显示全部楼层
楼上的这位兄弟看来对lfs还是挺有研究的`~~支持一个,学习了
回复 支持 反对

使用道具 举报

发表于 2008-1-8 09:30:47 | 显示全部楼层
svn 是版本控制程序吧,以前是 cvs 比较流行。一般用 svn 得到的东西,是属于开发中的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-8 10:17:57 | 显示全部楼层
Post by tfkdmwmqtr;1804243
svn的就是开发版本。用的是最新的源码包,包括内核(非测试版本)。

GNU/Linux发行版:
  Slackware的32位版 , echo $MACHTYPE 输出结果为 i386-xxx-linux-gnu ,uname -m 不记得了。
  openSUSE 的32位版,echo $MACHTYPE 输出结果为 i586-suse-linux-gnu , uname -m 输出为 i686 。
  Fedora 的32位版,echo $MACHTYPE 输出结果为 i386-xxx-linux-gnu , uname -m 输出为 i686 。
所以,我想这里的几种系统架构还是有关系的,虽然我并不清楚什么叫“架构”。
因为我没有 i586 或更老的机器,也无法试验我做的 i686 能不能在 i586 的机器上使用。如果你有兴趣可以试试 i686 的拷贝到 i586的机器上能不能正常运行?

livecd 用 lfslivecd 就可以了,只要满足开发环境的要求。
一般 LFS 或 CLFS 手册的首页都有个 Host System Requirements 的,只要这些开发工具的版本不是过旧或过新的就成。至于主系统的系统架构,以及内核是x86 的32位或64位等均无特别要求。
http://cross-lfs.org/view/svn/x86
http://cross-lfs.org/view/svn/x86/prologue/hostreqs.html

lfslivecd-6.2-5 应该还能够胜任。
你只需要下载手册和需要的文件就可以了:
下载x86手册:
mkdir -v CLFS
wget -rcnp cross-lfs.org/view/svn/x86
读手册:
lynx cross-lfs.org/view/svn/x86/index.html

下载 需要的文件:
http://cross-lfs.org/files/wget/svn
上面这个链接中 all.list 是所有的链接列表(含 x86 , x86_64 , x86_64-64 以及 MIPS 的 32/64bit 等等)。其实,x86 以及 x86_64 ,x86_64-64 和 MIPS 等,他们需要的源码包相差只有几个,差别较多的是补丁(主要用于制作交叉编译环境),所以不妨选all.list一并下载了。

wget -c http://cross-lfs.org/files/wget/svn/all.list
查看这个 all.list
more all.list
备份一份,因为准备修改它,防出错:
cp -av all.list{,_bak}
将 all.list 文件中的所有以 http: 和 ftp 开头的替换为 wget -c http: 或 wget -c ftp:
sed -i 's@httpwget -c httpg' all.list
sed -i 's@ftpwget -c ftpg' all.list
创建存放 svn 软件包的目录
mkdir -v svn
cd svn
sh ../all.list

上面的软件包也可以在 cross-lfs.org/files/packages/svn 中下载到。

另外,gpm这个控制台下的鼠标,需要 linux-headers-2.6.22.6 或更新的内核头文件。而现在的内核头文件是从内核源代码中提取的。
解决,新版本内核头文件gpm编译不通过的问题:
临时换 2.6.22.6 的头文件

非常感谢!

我想用6.2的livcd尝试一下clfs1.0
毕竟正式版bug少,还有就是自己解决系统问题的能力弱

再次谢谢您的指教
回复 支持 反对

使用道具 举报

发表于 2008-1-8 15:24:25 | 显示全部楼层
Post by updavy;1804297
非常感谢!

我想用6.2的livcd尝试一下clfs1.0
毕竟正式版bug少,还有就是自己解决系统问题的能力弱

再次谢谢您的指教


用 svn 版。CLFS-1.0 太古老了。1.0 和 2.0 的手册可以下载来看看,做系统就不合算了。1.0和2.0的软件包和补丁可以下载备用。
这一期的CLFS的SVN版很顺利的。
回复 支持 反对

使用道具 举报

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

本版积分规则

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