小编Eng*_*999的帖子

将 Linux 移植到另一个平台要求

我知道 Linux 是可用的,并且已被移植到许多不同的平台,例如 X86、ARM、PowerPC 等。

但是,在移植方面,究竟需要什么?

我的理解是Linux是用C语言写的软件,所以把Linux原本从X86移植到ARM或者其他的时候,不就是为了特定的目标架构用编译器重新编译代码吗?

撇开不同外设的设备驱动程序不谈,在将 Linux 移植到新架构时还需要做什么。编译器不会为我们处理一切吗?

linux compiling arm x86 portability

28
推荐指数
2
解决办法
3232
查看次数

tmpfs从哪里来以及如何挂载

我正在使用带有 Linux 的 BeagleBone 板。

当我输入命令“ df -h ”时,我看到 tmpfs 被安装了几次。

这是否意味着所有这些条目都安装在同一位置,或者 tmpfs 的不同部分?

这让我想到了另一件事我不太明白。这个 tmpfs 文件系统实际上是在哪里创建的?我猜它是在 Linux 启动时发生的。我应该能够找到创建此文件系统的脚本吗?

tmpfs                   242.4M         0    242.4M   0% /dev/shm
tmpfs                   242.4M      8.3M    234.2M   3% /run
tmpfs                   242.4M         0    242.4M   0% /sys/fs/cgroup
tmpfs                   242.4M     36.0K    242.4M   0% /tmp
tmpfs                   242.4M     16.0K    242.4M   0% /var/volatile
tmpfs                   242.4M     16.0K    242.4M   0% /var/lib
Run Code Online (Sandbox Code Playgroud)

linux filesystems mount tmpfs ramdisk

13
推荐指数
1
解决办法
2万
查看次数

内核本身是否依赖于标准 C 库

我正在深入研究 Linux 的实际工作方式,尤其是在嵌入式设备上,以及构建功能齐全的系统所需的所有不同组件。

我知道标准 C 库实现(例如 glibc)是独立的,并且是我的用户空间应用程序进行通信并因此与 Linux 内核一起工作所必需的。

然而,Linux 代码本身真的依赖于这个标准库吗?Linux 可以在没有它的情况下自行执行吗?

libraries linux-kernel

5
推荐指数
1
解决办法
1024
查看次数

Linux 上的以太网转 USB 适配器

我最近买了一个以太网转 USB 适配器。

当我将它插入运行 Linux(在我的例子中是 Ubuntu)的计算机时,它会自动工作,我可以通过这个界面看到互联网连接,而无需做任何事情。

我想知道的是,在不安装任何特定驱动程序的情况下这是如何工作的?

我猜当这个设备插入时,udev 会设置它,但它怎么知道这个 USB 设备实际上是用作连接到以太网的接口,从而通过它路由流量?

检测和管理这个的代码在哪里?提前致谢

ubuntu usb udev ethernet hot-plug

5
推荐指数
2
解决办法
5336
查看次数

从 bash 脚本中的 bash 脚本重定向 stdout 和 stderr

我知道我可以将 stdout 和 stderr 从脚本重定向到如下文件,如果直接在命令行上执行:

sh myscript1.sh &>output.txt &
Run Code Online (Sandbox Code Playgroud)

但是,如果我将要执行的上述命令放在同一文件夹中的另一个 bash 脚本中,而不是使用命令行,则它不起作用。

我在终端上得到 stdout 和 stderr 并且 output.txt 永远不会被写入。这是为什么,我该如何解决?

linux bash shell-script stdout

2
推荐指数
1
解决办法
1953
查看次数

为什么 ifconfig 显示不同的 IP 地址

我有通过以太网电缆连接到本地网络的嵌入式 Linux 设备。我通过子网上的本地 IP 地址访问每台设备,192.168.34.0/24.例如,一台设备具有192.168.34.240.

ifconfig当我在设备内部的终端上运行时,我得到以 169 开头的不同 IP 地址,如下所示。我很困惑。为什么是这样?

eth0      Link encap:Ethernet  HWaddr 00:D0:91:4B:45:C9
          inet addr:169.254.253.217  Bcast:169.254.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:634513 errors:0 dropped:3 overruns:0 frame:0
          TX packets:1318475 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:78343668 (74.7 MiB)  TX bytes:399586128 (381.0 MiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:24085508 errors:0 dropped:0 overruns:0 frame:0
          TX packets:24085508 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1
          RX bytes:11614050334 …
Run Code Online (Sandbox Code Playgroud)

linux networking embedded ethernet ifconfig

1
推荐指数
1
解决办法
3141
查看次数

/sys 和 /dev 目录中填充了什么

我的理解是该/sys目录包含解释有关不同设备的信息的文件。该目录如何以及何时被填充?

例如,在这里探索 Linux 系统,我看到该/sys/bus/i2c/devices目录包含一些 I2C 设备的文件。

在这种情况下,I2C 设备驱动程序/模块的工作是在那里创建这些文件吗?

那么关于/dev目录,设备驱动程序/模块是否也填充该目录?提前致谢。

linux drivers udev kernel-modules devices

0
推荐指数
1
解决办法
866
查看次数