Background to my problem:
I’m using a python package (Hologram-Python CLI) that uses pyroute2, which tries to open /proc/net/psched. When I run the Hologram-Python CLI on target, it simply crashes as /proc/net/psched doesn’t exist.
What I’ve tried to fix this:
So I’ve tried to include it in my kernel build, through “bitbake virtual/kernel -c menuconfig”. In menuconfig, I have set the following configurations (copied from my fragment.cfg file generated with diffconfig):
CONFIG_NET_SCHED=y
CONFIG_NET_SCH_FIFO=y
CONFIG_PROC_CHILDREN=y
I set these because I read the following Help page on CONFIG_NET_SCHED, in menuconfig. (More specifically, the bold text.)
CONFIG_NET_SCHED:
│
│ When the kernel has several packets to send out over a network
│ device, it has to decide which ones to send first, which ones to
│ delay, and which ones to drop. This is the job of the queueing
│ disciplines, several different algorithms for how to do this
│ “fairly” have been proposed.
│
│ If you say N here, you will get the standard packet scheduler, which
│ is a FIFO (first come, first served). If you say Y here, you will be
│ able to choose from among several alternative algorithms which can
│ then be attached to different network devices. This is useful for
│ example if some of your network devices are real time devices that
│ need a certain minimum data flow rate, or if you need to limit the
│ maximum data flow rate for traffic which matches specified criteria.
│ This code is considered to be experimental.
│
│ To administer these schedulers, you’ll need the user-level utilities
│ from the package iproute2+tc at
│ . That package
│ also contains some documentation; for more, check out
│ .
│
│ This Quality of Service (QoS) support will enable you to use
│ Differentiated Services (diffserv) and Resource Reservation Protocol
│ (RSVP) on your Linux router if you also say Y to the corresponding
│ classifiers below. Documentation and software is at
│ .
│
│ If you say Y here and to “/proc file system” below, you will be able
│ to read status information about packet schedulers from the file
│ /proc/net/psched.
│
│ The available schedulers are listed in the following questions; you
│ can say Y to as many as you like. If unsure, say N now.
│
│ Symbol: NET_SCHED [=n]
│ Type : boolean
│ Prompt: QoS and/or fair queueing
│ Location:
│ → Networking support (NET [=y])
│ → Networking options
│ Defined at net/sched/Kconfig:5
│ Depends on: NET [=y]
│ Selects: NET_SCH_FIFO [=n]
I then used my fragment.cfg file in a linux-toradex_%.bbappend recipe. I build my image and deploy it to target, but /proc/net/psched is still missing.
This leads to my questions:
-
Am I doing something wrong here?
-
Is there another (correct) way to do this?
-
Is it simply impossible to make psched present in my rootfs?
-
Does anyone else have the psched file present?
Thank you!
/Mike