标签: kernel

/dev 目录中的项目到底是什么?

我一直在用 C++ 编写一个应用程序,它通过写入连接到串行端口的调制解调器来传输无线电消息。为此,我需要使用以下形式的代码获取文件描述符

fd1=open(“/dev/ttyS0?, O_RDWR | O_NOCTTY | O_NDELAY);
Run Code Online (Sandbox Code Playgroud)

这让我对 /dev 中项目的性质感到好奇。为了尝试了解这些项目的内容,我尝试了

sudo cat /dev/ttyS0
Run Code Online (Sandbox Code Playgroud)

只为得到消息

cat: /dev/ttyS0: Input/output error
Run Code Online (Sandbox Code Playgroud)

这根本没有帮助我的理解。这些项目实际上是一个文件还是只是一种允许访问驱动程序功能的链接?

hardware kernel application-development drivers

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

只有 3.2GB RAM(4GB 中)可用于 64 位安装。戴尔 XPS 13

可能的重复:
为什么 Ubuntu 只显示 3GB 的内存?

前几天买了戴尔XPS 13。安装了 64 位版本的 ubuntu,并将内核更改为:

3.2.0-29-generic #46+kamal5~DellXPS-Ubuntu SMP Sun Jul 29 18:49:08 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

我的系统只能看到 3.2GB (3275MB) 的 4GB 内存。我检查了股票的 ubuntu 内核,情况是一样的。显卡是Intel HD3000。

pmd@daftbook:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          3275       2580        695          0        321       1100
-/+ buffers/cache:       1158       2117
Swap:         2047          0       2047
Run Code Online (Sandbox Code Playgroud)

来自 lshw:

     *-memory
      description: System Memory
      physical id: 4
      slot: System board or motherboard
      size: 4GiB
    *-bank:0
         description: DIMM DDR3 Synchronous 1333 MHz …
Run Code Online (Sandbox Code Playgroud)

kernel dell ram

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

环回设备是如何实现的?

环回网络接口

是一种完全用软件实现的虚拟网络设备。

但是这个实现实际上是如何完成的,你如何操作它呢?

据我所知,IP在本地路由表中被标记为本地:

ip route show table local  
Run Code Online (Sandbox Code Playgroud)

发送到标记为本地的 IP 将触发环回设备。 但是这种检测是完全由路由表完成的还是由其他一些内核操作完成的?

编辑:我的最终目标是操纵循环设备配置,以便在我的笔记本电脑上的接口(两个 wlan 适配器)之间发送数据报将导致网络中的真实流量/数据报,而不是本地循环。接口 1 -> WLAN -> 接口 2 而不是:接口 1 -> LOOP -> 接口 2

kernel networking routing interface

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

升级到内核 3.13.0-43 后启动挂起

我刚刚从 3.13.0-40 升级到 3.13.0-43,现在我无法启动 - 我的系统挂在带有五个橙色点的 ubuntu 闪屏上。我的粉丝都在全倾斜运行,系统完全没有响应 - 我无法按 ctrl-alt-f1 进入命令提示符。

我确定这与升级有关,因为我仍然可以启动到 3.13.0-40 就好了。我试过重新安装 linux-generic 和 linux-image-generic,它没有改变任何东西。

当我查看 syslog 时,似乎没有任何来自失败启动的条目。

我如何解决导致我的系统挂起的内核版本的问题?

系统规格:Ubuntu 14.04,AMD Radeon HD 7750 显卡,使用开源驱动

upgrade boot kernel

9
推荐指数
2
解决办法
3712
查看次数

在启动时运行 modprobe

我需要sudo modprobe wacom在启动时运行以防止在将标准 Wacom Intous (CTH-480) 平板电脑插入库存 Xubuntu 14.04 LTS 上的 USB 端口时发生不可恢复的内核恐慌(黑屏掉到终端,重复 1 秒音频循环和零响应) . 我相信主线内核前段时间解决了这个问题。

此配置的首选位置在哪里?它必须作为root.

我看过这个 如何在启动时运行脚本?但我不确定哪个答案适用于modprobe.

startup kernel wacom

9
推荐指数
3
解决办法
2万
查看次数

内核 3.19 的“无法构建 vmnet”

因为这个答案仅适用于内核 3.13,所以我想分享Failed to build vmnet内核 3.19 及更早版本的问题的解决方案。因此,这不是我的实际问题,只是为了帮助未来的读者。

当我第一次想运行 VMware Workstation 或 VMware Player 时,它需要在内核级别部署一些包,但它失败并出现这行错误。

无法构建 vmnet。无法执行构建命令。

我应该怎么做才能解决这个问题?

vmware kernel

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

如何在使用旧内核启动时删除新内核?

我的系统上安装了两个内核。3.16... 和 3.19.3...我正在运行 Ubuntu 14.10,它带有 3.16...内核。我决定尝试最新的内核(3.19.3...),但我有时会出错并且系统感觉不稳定。我认为没有理由保留这个新内核。如果我选择启动到较旧的内核,然后使用 Synaptic 删除较新的内核,是否会遇到任何问题?一旦我重新启动,我会遇到问题,还是 Ubuntu 会自动启动到旧内核而不大惊小怪?

任何有关正确程序以及最能实现我的目标的方法的建议将不胜感激。谢谢。

uninstall kernel 14.10

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

是否可以删除正在运行的系统上的 /boot/initrd.img 文件

我有一个带有 RAID1 根分区的服务器,但它在两个驱动器中的每一个上都有一个用于 /boot 的小分区:每当进行更新时,我都会将一个“dd”到另一个。

不幸的是 /boot 分区太小 - 当内核更新时 initramfs 没有空间将新的 initrd.img 写入该分区。修复分区大小意味着暂时剥夺公司的关键服务,我想避免这种情况。

据我了解 grub 启动,initrd.img 只在真正的分区被挂载之前使用。是否可以在系统运行时删除现有的 initrd.img 并释放空间来构建新的?

boot grub2 kernel

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

如何确保老式 shell 服务器上的用户分离

我想为几个人运行一个老式的 shell 服务器,即。一种用户可以获得 ssh 访问权限,以便他们可以运行软件(他们自己的或提供的)。我关心的是用户之间的适当分离。

我不希望他们查看彼此的进程、访问彼此的文件(除非明确允许)等。最好不要被每个权限提升错误所困扰,或者每次小内核更新时都不会重新启动服务器。在这些安全措施到位的情况下,保留运行公共服务(如网络和邮件托管)的选项将是完美的。

回到我使用 grsec 的那一天,但这需要使用较旧的内核并处理自己编译的麻烦。是否有更现代、更 Ubuntu 的方式来确保共享服务器上的用户分离?

也许你可以用 AppArmor 做点什么来达到这个效果?或者也许有一个为共享环境预先配置的内核存储库?还是基于容器的解决方案?这些最近很流行。

server ssh security kernel multi-user

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

更新用旧的不正确版本填充 /boot

每当我更新 Linux 时,例如从 4.4.0.65 到 4.4.0.66 :

  1. initrd.img-4.4.0.XX-generic在尝试最新版本之前,软件更新工具会下载大约 40 个以前的版本
  2. /boot 填上
  3. 当前版本无法加载,因为启动空间不足
  4. 系统(有时)配置为不存在的版本,并尝试在启动时引导它

从版本 29 开始,我已经处理了很长时间。

我发现的唯一解决方法每次更新需要我一个小时。我在更新期间打开命令行,并在下载版本时删除它们。最终,更新工具满意它已下载所有以前的版本、下载最新版本并配置系统。

这是来自的输出 dpkg -l | grep linux-image

rc  linux-image-3.19.0-15-generic                        3.19.0-15.15                                  amd64        Linux kernel image for version 3.19.0 on 64 bit x86 SMP
rc  linux-image-4.2.0-34-generic                         4.2.0-34.39                                   amd64        Linux kernel image for version 4.2.0 on 64 bit x86 SMP
ii  linux-image-4.2.0-35-generic                         4.2.0-35.40                                   amd64        Linux kernel image for version 4.2.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-21-generic                         4.4.0-21.37                                   amd64        Linux kernel image for version 4.4.0 …
Run Code Online (Sandbox Code Playgroud)

updates boot grub2 kernel

9
推荐指数
2
解决办法
3969
查看次数