Netem error on beaglebone black. Need help with finding/compiling kernel module sch_netem.ko.

Hello,

I am fairly new to linux as well as beaglebone black. I am trying to use the beaglebone black with Angstrom Distribution 2012-06-20, linux kernel 3.8.13, to simulate real-world network behavior by utilizing the tc command included in the iproute2 package. The tc command is used to call the qdisc netem which is used to simulate network delay, packet loss/corruption, etc.

I am having trouble using the tc command on the beaglebone black. For Example, when I issue the command;

tc qdisc add dev eth0 root netem delay 100ms

The return is;
RTNETLINK answers: No such file or directory

I have spent many hours researching how to fix the error and have hit roadblock after roadblock. It seems that I may need the kernel-module sch_netem.ko.The Angstrom repository has this kernel module, however not for the armv7a, which is what I need. It would be extremely helpful if some one can point me to the source code to the kernel module so that I may compile it on my beaglebone or perhaps compile it for me :).

If anyone has solved this issue, your help would be greatly appreciated.

I’m in a similar situation. I am looking to set up RAID on the newest Angstrom Distribution build (June 2013), but the md kermel is not included. We were able to set it up on a previous Angstrom build on a “white”, but we would like to upgrade that device to a back.

The instructions how to rebuild the kernel are clear and work fine. The missing bit is how one enables building a kernel module that is not currently being built and configures any settings it may need.

– David

I am now trying to compile the source code for the netem module, sch_netem.c, however to do this I need the kernel headers package for kernel version 3.8.13.r22.a with armv7 architecture. I am unable to locate the package for this architecture on the angstrom repository.

If someone could help me to find the headers package that would be greatly appreciated.

A last resort to my problem would be to cross compile the entire linux kernel and as a linux noob, this will be no easy task. Please help!

SOLVED.

I was able to compile the kernel module sch_netem.ko and load it. The netem qdisc works perfectly now. If you are trying to locate the kernel-headers and kernel-dev packages in the angstrom repository using a web browser, you will never find it! These packages exist on the repo for many different kernel versions and architectures except for the latest beaglebone black kernel version (3.8.13), which I found to be frustrating.

I managed to connect my beaglebone black to the internet and ran the command opkg install kernel-headers and opkg install kernel-dev and the packages were downloaded and installed.

I then wrote a makefile to compile the sch_netem.c file to produce a loadable kernel module. which was loaded using insmod. All is well now, hope this post helps someone else!