Package Details: netatop 3.1-1

Git Clone URL: https://aur.archlinux.org/netatop.git (read-only, click to copy)
Package Base: netatop
Description: Atop network kernel module, enables network statistics in atop
Upstream URL: http://www.atoptool.nl/
Keywords: atop kernel module netatop
Licenses: GPL
Groups: modules
Submitter: Spider.007
Maintainer: batot
Last Packager: Spider.007
Votes: 27
Popularity: 0.010921
First Submitted: 2013-02-16 11:58 (UTC)
Last Updated: 2020-05-30 09:43 (UTC)

Dependencies (2)

Required by (0)

Sources (1)

Latest Comments

« First ‹ Previous 1 2 3 4 5 6 Next › Last »

valandil commented on 2020-02-25 02:06 (UTC) (edited on 2020-02-25 02:06 (UTC) by valandil)

Hi,

I also did a bit of digging, and it seems that the real_start_time was renamed to start_boottime in v5.5.0 of the kernel. You can verify that either by running

git diff v5.4.15-arch1:include/linux/sched.h v5.5-arch1:include/linux/sched.h

on the Arch linux kernel repo, or just check the change on the kernel repo itself: https://github.com/torvalds/linux/commit/cf25e24db61cc9df42c47485a2ec2bff4e9a3692.

Here are some links to a fixed PKGBUILD with a patch.

Contents of PKGBUILD: https://hastebin.com/cakewikuqi.bash

Contents of the patch: https://hastebin.com/nomoxunati.diff

Cheers,

3ndymion commented on 2020-02-13 20:03 (UTC)

Oh, that would certainly make it much easier. Thanks for that.

frankspace commented on 2020-02-13 03:05 (UTC)

3ndymion, that's nice detective work, but there's a vastly easier way to implement the "real_start_time" to "start_time" fix. Just add the following line to build() before invoking make:

sed -ri 's|real_start_time|start_time|g' module/netatop.c

And that'll handle the editing without needing to tamper with the source tarball.

3ndymion commented on 2020-02-11 13:02 (UTC)

As a bonus, you can have makepkg insert the kernel module immediately instead of having to reboot yet again to make it work. Edit the file depmod.install & add "modprobe netatop ;" to each line.

post_install(){ depmod -a ; modprobe netatop ; }
post_upgrade(){ depmod -a ; modprobe netatop ; }

That way, when you build the file, modprobe will insert the kernel module automatically, & netatop will work without having to reboot again.

3ndymion commented on 2020-02-11 12:40 (UTC) (edited on 2020-02-11 12:54 (UTC) by 3ndymion)

Hello again. The module fails to build as of kernel version 5.5.1. This time, the problem is in the source code. I sent a message to the maintainer on the website, though I'm not totally sure if it actually went through. In the meantime, the problem can be fixed temporarily. Here's how to do it:

PROBLEM

It seems that an old variable named "real_start_time" has been renamed "start_time".

make[2]: Entering directory '/usr/lib/modules/5.5.2-arch2-2/build'
  CC [M]  /tmp/makepkg/netatop/src/netatop-2.0/module/netatop.o
/tmp/makepkg/netatop/src/netatop-2.0/module/netatop.c: In function ‘get_taskinfo’:
/tmp/makepkg/netatop/src/netatop-2.0/module/netatop.c:969:33: error: ‘struct task_struct’ has no member named ‘real_start_time’; did you mean ‘start_time’?
969 |  tip->btime = div_u64((current->real_start_time +
  |                                 ^~~~~~~~~~~~~~~
  |                                 start_time

SOLUTION

We must change the variable name in the source code. We will unzip the source directory, change the variable name, then zip the source directory again. Finally, we will get the sha256 hash of the new zip file & inform makepkg to use that for verification.

-Unzip the source code.
   tar -xvf netatop-2.0.tar.gz
-Move the zipped file netatop-2.0.tar.gz to the trash to get it out of the way.
-Go into netatop-2.0/module/ and open the file netatop.c for editing.
-Find 4 instances of "real_start_time" between lines 969 - 976.
-Change them to "start_time", then save the file & close it.
-Go back to the folder where netatop-2.0 is located.
-Zip the netatop-2.0 source code folder again with tar using gzip compression.
   tar -czvf netatop-2.0.tar.gz netatop-2.0
-Get the sha256 hash of the new zipped file.
   sha256sum netatop-2.0.tar.gz
-Copy the long hash number, then go to wherever you have the netatop PKGBUILD file & open it for editing.
-Find the line that says sha256sums, & replace the old hash number with the new one.  Save & close.

Building the file should work now.

makepkg -sic

Edit: Trying to get markdown formatting to work.

Kurtoid commented on 2020-01-16 16:51 (UTC)

For those reading the comments, the fix listed below has been applied to the latest PKGBUILD

3ndymion commented on 2019-11-14 10:36 (UTC)

Confirmed after a few more kernel updates. For anyone who may be running into this issue, there is a very simple temporary solution. You only need to change 1 line in the PKGBUILD file to make the build work like normal again.

Simply CHANGE THIS LINE: install -Dm 0744 module/netatop.ko $pkgdir/usr/lib/modules/extramodules-ARCH/netatop.ko

TO THIS: install -Dm 0744 module/netatop.ko $pkgdir/usr/lib/modules/$(uname -r)/extramodules/netatop.ko

With this simple fix, the build will work like normal again.

3ndymion commented on 2019-10-21 11:09 (UTC) (edited on 2019-10-21 11:13 (UTC) by 3ndymion)

Hi. Please note that as of 2019-10, this fails to install. I'm not sure if the issue is with the kernel update, or the Arch Linux firmware update, but the current install location ( /usr/lib/modules/extramodules-ARCH/ ) does not seem to be used anymore. The command depmod -a no longer looks in there, & with that, netatop is not inserted as a kernel module. The new & correct location to install the file into is /usr/lib/modules/$(uname -r)/extramodules. With the file in that new location, depmod -a will correctly insert the kernel module.

This began in October 2019, with the kernel 5.3.6. I have now confirmed it on kernel 5.3.7 as well. Building & installing netatop like normal (makepkg -sic) will not insert the kernel module, & there will always be fail messages on bootup. Fail messages are Failed to find module 'netatop', & Failed to start Load Kernel Modules.

Simply moving the netatop.ko file from /usr/lib/modules/extramodules-ARCH/ to /usr/lib/modules/$(uname -r)/extramodules/ & then running depmod -a to insert it solve the problem. Netatop works again.

IN SUMMARY

PROBLEM: The install location has changed. Old Install Location = /usr/lib/modules/extramodules-ARCH New Install Location = /usr/lib/modules/$(uname -r)/extramodules/

SOLUTION: Have pacman install the netatop.ko file into the new location. depmod -a will find the file when it is in the new install location.

sameer commented on 2018-09-13 19:13 (UTC)

For those using the zen kernel: building fails due to the word "zen" appearing in the output of uname -r. It can be fixed by adding "a-z" in the last group of "[0-9]" so the word zen is matched.

kgunders commented on 2016-06-08 20:02 (UTC)

Head's Up: broken on 4.6.1 kernel. Whether upstream issue or not, package is broken. No offence. Just a head's up so others will know since there is no issue tracker, nor does upstream respond to email regarding issues.