【问题标题】:RTNETLINK answers: No such file or directoryRTNETLINK 回答:没有这样的文件或目录
【发布时间】:2011-06-15 17:47:40
【问题描述】:

当我运行这个 cmd 时:

tc qdisc add dev eth0 root red limit 51200000 min 128000 max 512000 avpkt 1024 burst 200 ecn probability 0.5

我明白了

RTNETLINK answers: No such file or directory

我已经为netfilters 配置了内核,以及menuconfig 中的所有网络选项。

我不明白为什么会发生此错误。我正在使用iproute2-2.6.23 和 Fedora 8。

这在我的笔记本电脑上运行良好,但在我的台式电脑上却不行?

【问题讨论】:

  • 检查dmesg 输出?那里可能有错误消息。还要检查 SELinux 日志,我可以想象一个 shell 可能没有 Netlink 的权限。
  • kjournald 开始。提交间隔 5 秒 sda1 上的 EXT3 FS,内部日志 EXT3-fs:以有序数据模式挂载的文件系统。在 /dev/mapper/VolGroup00-LogVol01 上添加 1835000k 交换。优先级:-1 范围:1 跨:1835000k NET:已注册协议系列 10 lo:禁用隐私扩展时钟源 tsc 不稳定(delta = -117591543 ns) eth0:没有 IPv6 路由器这是我作为 Demesd 输出得到的,我有一个更疑惑,是不是因为SELINUX状态???
  • 使用 Fedora 19 和 selinux 激活了这项工作“tc qdisc add dev p4p1 root red limit 51200000 min 128000 max 512000 avpkt 1024 burst 200 ecn 概率 0.5”

标签: linux netlink


【解决方案1】:

在我的系统上,您的命令会自动加载 sch_red 模块。这个问题相当老了,所以在现代系统上,如果你有所需的模块,自动加载应该可以正常工作。通过运行检查您是否错过了内核模块:

modprobe sch_red

如果没有打印,则重试运行tc 命令,看看是否有帮助。

如果没有,请确保在内核中编译了 CONFIG_NET_SCH_RED(随机早期检测)。 More info at kernel documentation.

【讨论】:

    【解决方案2】:

    该错误可能是由于 Linux 内核中缺乏对流量控制的支持。

    以下是文档摘录,其中列出了在 Linux 中正确运行流量控制功能所需的内核编译选项:

    来源:Traffic Control HOWTO - Kernel requirements

    #
    # QoS and/or fair queueing
    #
    CONFIG_NET_SCHED=y
    CONFIG_NET_SCH_CBQ=m
    CONFIG_NET_SCH_HTB=m
    CONFIG_NET_SCH_CSZ=m
    CONFIG_NET_SCH_PRIO=m
    CONFIG_NET_SCH_RED=m
    CONFIG_NET_SCH_SFQ=m
    CONFIG_NET_SCH_TEQL=m
    CONFIG_NET_SCH_TBF=m
    CONFIG_NET_SCH_GRED=m
    CONFIG_NET_SCH_DSMARK=m
    CONFIG_NET_SCH_INGRESS=m
    CONFIG_NET_QOS=y
    CONFIG_NET_ESTIMATOR=y
    CONFIG_NET_CLS=y
    CONFIG_NET_CLS_TCINDEX=m
    CONFIG_NET_CLS_ROUTE4=m
    CONFIG_NET_CLS_ROUTE=y
    CONFIG_NET_CLS_FW=m
    CONFIG_NET_CLS_U32=m
    CONFIG_NET_CLS_RSVP=m
    CONFIG_NET_CLS_RSVP6=m
    CONFIG_NET_CLS_POLICE=y
    

    使用上述选项集编译的内核将提供模块化 支持本文档中讨论的几乎所有内容。这 用户可能需要modprobe module 才能使用给定的功能。

    【讨论】:

      【解决方案3】:

      我在一个不包含通常的预构建模块数组的系统上编译(in-tree)ralink wifi 驱动程序后得到了这个。模块已加载,界面存在,但无法设置:

      ip link set wlanB up
      RTNETLINK answers: No such file or directory
      

      (是的,wlanB 是正确的。)最终发现系统还缺少/lib/firmware 中通常的 firmware 数组。这已通过apt install firmware-ralink 修复。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-08-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-24
        • 1970-01-01
        • 2015-02-20
        相关资源
        最近更新 更多