kohler / click

The Click modular router: fast modular packet processing and analysis
Other
740 stars 321 forks source link

compile and run in ubuntu #384

Open cinhori opened 6 years ago

cinhori commented 6 years ago

hello, all I'm new on click. i want to know how to compile and run click on Ubuntu, and which ubuntu version ? Is there any tutorial for click on ubuntu?

peterrz commented 6 years ago

Hi, I use Ubuntu 15.4, it depends on which scenario you have, use Linux Kernel Module or User-Level. to get some info you can read doc file in this repository like INSTALL.md also there is some resource which is useful the click modular router.pdf. after getting click from~$ git clone git://github.com/kohler/click.git click go to directory click and set configure for example:./configure --prefix=$HOME there are other options too, like: --enable-local --enable-userlevel to see more option use ./configure --help at the end run command click$ make it will be compiled.

cinhori commented 6 years ago

@peterrz thanks for reply I am using ubuntu14.04 and i have installed linux 3.19 and linux 3.13, but i got this error:

configure:making c++-safe version of Linux kernel headers(may take a while) checking for c++-includable kernel header files ... no Your Linux kernel header files cause errors when included by a C++ program, so I won't try to compile the linuxmodule driver. Click modifies the Linux kernel's header files to make them work with C++, using the program 'linuxmodule/click-linuxtool.pl'. It looks like your kernel header files have features the tool doesn't know how to fix. You can report this error to us via a Github issue, or, even better, try to fix the error. See the config.log file for more information on the error.

thanks for helping me!

bcronje commented 6 years ago

I recommend to start with the user-level Click version. This should be fine in 99% of use cases. Just configure with ./configure --disable-linuxmodule and then sudo make install

ahenning commented 6 years ago

imho kernel mode is an advanced use case. Perhaps from the perspective of lowering the learning curve in getting familiar with click, userlevel should be the default and kernel mode optional during compile time?

cinhori commented 6 years ago

thanks, all now i install ubuntu 14.04 i386 and linux kernel is 4.4.0-31-generic, .configure is ./configure --with-linux=/usr/src/linux-headers-$LINUX_VERSION --with-linux-map=/boot/System.map-$LINUX_VERSION --enable-all-elements --disable-linuxmodule when i run dsdv,like ./conf/make-dsdv-config.pl -i eth0 -a 10.0.0.1 -u > /tmp/dsdv1.click ./userlevel/click /tmp/dsdv1.click

root@manet:/usr/local/click-master# ./conf/make-dsdv-config.pl -i eth0 -a 10.0.0.1 -u > /tmp/dsdv1.click
make-dsdv-config.pl: Using ethernet address 52:54:00:4e:91:3a
root@manet:/usr/local/click-master# ./userlevel/click /tmp/dsdv1.click 
/tmp/dsdv1.click:152: While configuring ‘CheckIPHeader@18 :: CheckIPHeader’:
  too many arguments
/tmp/dsdv1.click:90: While configuring ‘from_dev0/Print@7 :: Print’:
  NBYTES: warning: argument deprecated
Router could not be initialized!

when i run make && make install,there is no error.could you tell me why this happens? Thanks all again