Results 1 to 3 of 3
I would like to know how would you enable the Congestion Control Algorithm correctly (lets call it Tcp_quic or quic).
My code is almost exactly like the tcp_veno.c file. Just ...
Enjoy an ad free experience by logging in. Not a member yet? Register.
- 07-17-2012 #1Just Joined!
- Join Date
- May 2012
- Posts
- 9
How to add .o file in the Linux Kernel
I would like to know how would you enable the Congestion Control Algorithm correctly (lets call it Tcp_quic or quic).
My code is almost exactly like the tcp_veno.c file. Just the algorithm in the tcp_veno_cong_avoid() function changed.
I would like to attached the code on here, but I got an upload error. I would post it as well, but it is pretty long.
I have successfully compile the Linux Kernel with the C file (in the directory linux-3.4-rc7\net\ipv4\tcp_quic.c)
I just need to enable it, so I can use my algorithm and add it to the Kernel.
I realize that in the Linux Kernel folder(kernel\linux-3.3.6\net\ipv4), where I added the tcp_quic.c file, does not have .mod.o or .o file. With means that the tcp_quic.c did not compile successfully, right? However why did the compile in the terminal compile successfully? I read on one forum that may be I need to change something in the MAKEFILE to have .o file, is this true? I am not sure how I would do this if it is so.
I know that most people said that you should not mess with the Kernel, but it is something I would like to try.
The code below is how I want to enable the Congestion Control Algorithm.
Also this is how I compile the Linux Kernel:Code:echo quic > /proc/sys/net/ipv4/tcp_congestion_control
Code:make-kpkg clean fakeroot make-kpkg --initrd --append-to-version=-geekernel kernel_image kernel_headers (this takes about 2 hours to compile)
- 07-17-2012 #2Just Joined!
- Join Date
- May 2012
- Posts
- 9
So far I have done that steps on editing the MAKEFILE and the Kconfig file. Where I see veno, I copy and paste another line(s) of code and replace it with the word "quic".
What I put in the MAKEFILE is
What I put in the Kconfig file is:Code:obj-$(CONFIG_TCP_CONG_QUIC) += tcp_quic.o
(there is a lot of editing in this one I wont list them because I basically search for "vegas/veno" to copy and paste a new one for "quic"
I did get an error when I try using the code you have recommended, but I got an Error
This is the errorCode:fakeroot CONFIG_TCP_CONG_QUIC=m make-kpkg --initrd --append-to-version=-geekernel kernel_image kernel_headers
Here is the code in the fakeroot file around line 176:/usr/bin/fakeroot: line 176: CONFIG_TCP_QUIC=m: command not found
Did I miss something when I edit in the MAKEFILE or Kconfig file?Code:export FAKEROOT_FD_BASE if test -z "$*"; then FAKEROOTKEY=$FAKEROOTKEY LD_LIBRARY_PATH="$PATHS" LD_PRELOAD="$LIB" ${SHELL:-/bin/sh} RESULT=$? else (LINE 176) FAKEROOTKEY=$FAKEROOTKEY LD_LIBRARY_PATH="$PATHS" LD_PRELOAD="$LIB" "$@" RESULT=$? fi exit $RESULT
Thanks
- 07-21-2012 #3Just Joined!
- Join Date
- May 2012
- Posts
- 9
I am waiting for the person who has helped me, but he/she hasn't responded for awhile so may be someone knows this.
Someone mention me something about the .config file, is that referring to kconfig file?
I ask because I do not know what that person mean by that below.
At the end of kernel configuration, "make (x|menu|whatever)config" generates a .config file which is built using all the Kconfig segments.
When that person mention this part:
Is that person talking about the kconfig file the lines around hereYou can simply edit .config and add CONFIG_TCP_CONG_QUIC=m to it. Then reconfigure using "make oldconfig" and then build the kernel using your regular "make-kpkg ..." command.
ThanksCode:config DEFAULT_CUBIC bool "Cubic" if TCP_CONG_CUBIC=y config DEFAULT_HTCP bool "Htcp" if TCP_CONG_HTCP=y config DEFAULT_HYBLA bool "Hybla" if TCP_CONG_HYBLA=y config DEFAULT_VEGAS bool "Vegas" if TCP_CONG_VEGAS=y config DEFAULT_VENO bool "Veno" if TCP_CONG_VENO=y config DEFAULT_QUIC bool "Quic" if TCP_CONG_QUIC=m


Reply With Quote
