问题标签 [linux-from-scratch]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
137 浏览

ubuntu - 为什么使用 mke2fs -j 在 Ubuntu 中创建 ext3?

-j 创建带有 ext3 日志的文件系统。

为什么不是 ext4?

0 投票
1 回答
415 浏览

ubuntu - 挂载一个分区并给它一个目录(即挂载点)的目的是什么?

来自 LFS 说明: http ://www.linuxfromscratch.org/lfs/view/stable/chapter02/mounting.html

如果为 LFS 使用多个分区(例如,一个用于 /,另一个用于 /usr),请使用以下方式挂载它们:

我似乎无法理解挂载点是随机目录的概念。在这种情况下 LFS=/mnt/lfs

0 投票
1 回答
606 浏览

linux - 了解 LFS 环境设置

我对 LFS 建议的设置有一些疑问。

问题:

  • 这个命令到底在做什么

cat > ~/.bash_profile << "EOF" exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash EOF

  • 它提到“shell的新实例是非登录shell”所以我们必须设置.bashrc ....但是它并没有真正解释我们如何使用这个bashrc一旦创建。最后回到 bash_profile 。

其中大部分都得到了很好的解释,但对于本节而言,它可能比我预期的更具技术性,并且它还涉及一些我想更详细地理解的重要概念。我用粗体标记了一些我无法理解它们在做什么的命令。

来自:http ://www.linuxfromscratch.org/lfs/view/stable/chapter04/settingenvironment.html

通过为 bash shell 创建两个新的启动文件来设置良好的工作环境。以用户 lfs 身份登录时,发出以下命令以创建新的 .bash_profile:

当以用户 lfs 登录时,初始 shell 通常是一个登录 shell,它读取主机的 /etc/profile,然后读取 .bash_profile。.bash_profile 文件中的 exec env -i.../bin/bash 命令将正在运行的 shell 替换为具有完全空环境的新 shell,除了 HOME、TERM 和 PS1 变量。这可确保主机系统中的不需要和潜在危险的环境变量不会泄漏到构建环境中。

新的 shell 实例是一个非登录 shell,它不读取 /etc/profile 或 .bash_profile 文件,而是读取 .bashrc 文件。现在创建 .bashrc 文件:

set +h 命令关闭 bash 的哈希函数。散列通常是一个有用的特性——bash 使用散列表来记住可执行文件的完整路径,以避免一次又一次地搜索 PATH 以找到相同的可执行文件。但是,新工具应在安装后立即使用。通过关闭散列函数,shell 将始终在程序运行时搜索 PATH。因此,一旦新编译的工具可用,shell 就会在 $LFS/tools 中找到它们,而无需记住同一程序在不同位置的先前版本。

将用户文件创建掩码 (umask) 设置为 022 可确保新创建的文件和目录只能由其所有者写入,但任何人都可以读取和执行(假设 open(2) 系统调用使用默认模式,新文件将以权限模式 644 和具有模式 755 的目录结束)。

LFS 变量应该设置为选择的挂载点。

LC_ALL 变量控制某些程序的本地化,使它们的消息遵循指定国家的约定。如果主机系统使用早于 2.2.4 的 Glibc 版本,如果您退出 chroot 环境并希望稍后返回,将 LC_ALL 设置为“POSIX”或“C”以外的其他值(在本章中)可能会导致问题。将 LC_ALL 设置为“POSIX”或“C”(两者是等价的)确保一切都将在 chroot 环境中按预期工作。

LFS_TGT 变量设置了一个非默认但兼容的机器描述,用于构建我们的交叉编译器和链接器以及交叉编译我们的临时工具链时使用。更多信息包含在第 5.2 节“工具链技术说明”中。

最后,要让环境为构建临时工具做好充分准备,请获取刚刚创建的用户配置文件:

0 投票
1 回答
939 浏览

linux - Glibc 配置错误

当我在配置 Glibc 时遇到错误(步骤 5.7),我正在阅读 Linux 从零开始:

我在用:

到目前为止,我没有遇到任何麻烦。我的 $LFS_TGT=armv6l-lfs-linux-gnueabihf

0 投票
2 回答
2398 浏览

browser - 使用linux内核制作操作系统

过去几周我一直在寻找有关如何制作操作系统的信息。

我还阅读了有关如何制作像这样的操作系统的问题,操作系统开发入门有哪些资源?.

我想使用#Linux Kernel 制作一个操作系统,它可以启动并以全屏视图显示浏览器。基本上我想做类似#firefox OS 的东西。

有一些操作系统具有类似的概念,例如 #justbrowsing http://justbrowsing.info/ 和 #browserlinux

我还研究了#Linux From Scratch http://www.linuxfromscratch.org/index.html。但#LFS 不是我想要的。

我不想要一个可以处理所有情况、情况和错误的完整操作系统。只是为了开始我的项目,我想用#Linux Kernel 制作一个浏览器操作系统。

0 投票
0 回答
225 浏览

linux - 如何让 Linux 内核 3.18 rc4 主线使用 oom_score_adj lib

不确定这是否是两个问题,但我想从这里开始,以防它们相关。我以各种方式使用 Linux PXE 和 grub 进行 dos 引导。我使用了相同的文件系统,在这里和那里添加了一些脚本,但主要是为新硬件更新内核。从内核 3.12.xxx 和最新的 3.18 rc4 主线开始,我不推荐使用“oom_adj”和一些 wait_for_sysfs 错误。由于无知,我的 Linux 技能水平有点基本。我已经观察并学到了很多东西,所以仅仅因为我使用了一个术语并不意味着我知道我在说什么:-)

背景:
我首先从 windowsdream 重新制作 PING。http://www.windowsdream.com/ping.html这是一个很酷的 ISO,可以将硬盘映像备份和还原到共享。它基本上是一个大的 Pearl 脚本,它使用 Linux 命令来创建共享、保存分区、清除并恢复它们。所以我开始做一个 intrd.gz 文件系统。所以我想我的很多问题可能是库过时了,我的 udev 规则需要更新,或者我的内核 make 文件 (.config) 是错误的。此外,有时,并非总是如此,我的鼠标 USB 会在断开/重新连接时循环。它似乎非常从引导到引导。这次启动可能会这样做,而下一次启动不会。我将附上一些屏幕截图和我的 .config 文件。顺便说一句,PING 基于 Linux From Scratch (LFS)。

问题:
开放式问题是如何解决它?
以下问题是否相关?
.config 中是否有从 oom_adj 切换到 oom_score_adj 的设置?
/proc/2000 是 lib 问题吗?
是waiting_for_sysfs udev规则有问题吗?
截屏 对于 USB 断开/重新连接,我在某处读到英特尔对某些时间和一些更便宜的硬件提出了一些问题,这可能会稍微推动规范。我再也找不到它了。我确实在 .config 中找到了有关使用 uHCI 的内容,但我在某处看到了有关 xHCI 的信息。我认为它与 USB 2.0 与 USB 3.0 有关,但我不确定。另外,这是USB 1吗? 截屏 有什么想法吗?

.config 的行似乎太多了,我不知道如何附加它。如果有人想看,请告诉我如何发布或发送给他们。

0 投票
1 回答
427 浏览

linux - 从源代码构建 glibc 不编译 ldconfig

我之前已经下载、构建和安装了 glibc 很多次,一切正常,这次ldconfig没有创建二进制文件,因此我无法正确更新 /etc/ld.so.cache 文件,导致查找共享对象时出现问题。具有这种行为的 glibc 版本是glibc-2.20,我使用的是最初在Linux From Scractch Book的帮助下构建的自定义 linux 发行版,还有自定义 linux 和 x86_64 架构。

我尝试过更改configure选项,也尝试在没有任何选项的情况下进行编译。

0 投票
2 回答
1037 浏览

linux - glibc make 在 chroot 环境中失败

所以今天我正在使用稳定版 7.7 版本的 LFS 系统。在对 LFS 目录执行 chroot 后,我​​已经到了构建 glibc 包的地步。包配置成功,但是当我运行时make,终端说Segment fault (core dumped)。是什么原因造成的,我该如何解决?我在 VMWare 的虚拟机中运行 Ubuntu 14.04

0 投票
1 回答
731 浏览

installation - LFS 第 6.20 章 Ncurses 安装错误

我一直在一步一步地走到午夜,然后我关掉了笔记本电脑(待机)——我有Ubuntu 14.04 LTS作为操作系统。当我醒来时,我想继续,所以我再次启动我的笔记本电脑,但屏幕一直黑。我关掉它,然后启动它。

我必须安装所有东西,所以我执行了这个:

当我进入/source/ncurses-5.9/并执行./configure --prefix=/usr --mandir=/usr/share/man --with-shared --without-debug --enable-pc-files --enable-widec它给我回来:

当我尝试运行时make,它只是说:

我该如何解决?或者您需要更多信息?

0 投票
1 回答
1039 浏览

linux - LFS 7.2:glibc make check 中的数百个错误

我在LFS 书的第 6.9 节。本节之前的一切似乎都很好。

当我运行时,我遇到make check了大量错误。我的make check跑步记录可以在 Pastebin上找到。

我想知道,如果查看成绩单,任何人都可以推断出我做错了明显的事情。我想我是逐字逐句地照着书的,但在此过程中我可能遗漏了一些东西。