Hamachi is a vpn client/server that allows router passthrough, i am not sure if anyone is familiar with it. A linux, windows, and mobile version are currently offered. You can read more about it at hamachi.cc. I would like to be able to install it on my world book, to allow VPN connections for file sharing. When trying to install the linux version I get an error that says can not strip… Must be linux version specific but not sure how to make the world book compatible. If anyone has any insights please share. Thanks.
I would assume that hamachi has been compiled for an i386 chip. The mybook runs on ARM926EJ-Sid(wb) [41069265] revision 5 (ARMv5TEJ).
to cure that you need to either
- obtain the source and compile it yourself. (not likely as hamachi is closed source)
- Or convince logmein to do it for you.
I've just located a version of Hamachi compiled for the Nokia770 ARM processor at http://files.hamachi.cc/linux/nokia-770/
the 770 combines the ARM architecture of the ARM926TEJ core with a TI processor. I haven't and won't try it on my box but perhaps it will work on the mybook?
I have tried the 770 version which is supposed to run on the ARM processor, i could not get it to run. I am relatively new to linux so i may be missing an arbitrary step in the installation process. I have my book behind a router/firewall at school which i do not admininster. I would like to be able to access it when away on my laptop, mionet is garbage. This program seems like the ideal solution. How would this build install on Nokia770 ARM but not my book? Where does the incompatibility lie?
the incompatibility is likely due to the fact that the nokia 770 build includes code for a TI processor which the mybook certainly doesn't have. it was a long shot.
Unless you can convince the folks at hamachi/logmein to build a version for mybook you're out of luck with this particular solution.
thank you for your responses. Are you familiar with OpenVPN? My biggest obstacle is the router located between me and the internet, so I do not have a public IP or capability to forward ports on the router to my My Book.
- Can you administrate the router? In other words is it at home where you're in charge or at work where you are not?
- What is the brand and model number of the router? (assuming you have access to it we might be able to provide some instructions.
- go to http://whatismyip.netand you'll see your external IP.
Finally, while I do know what openvpn is, I have no familiarity with the project.
The main advantage of hamachi is, that in runs behind NAT. So if you don't have public ip address it is the only solution for you. However it is true that its code is closed. I've made some progress with the "strip" error mentioned above. I've also added tun module that is necessary according to OPEN VPN howto on this pages. I've also successfully compiled hamachi's dependency tuncfg. So the only thing now is to ask hamachi to provide either source code or hamachi binary compiled for ARM926TEJ
1. add and insprobe tun module to your mybook .. see howto openvpn
mkdir /lib/modules/2.6.17.14/kernel/drivers/net
wget http://mybookworld.wikidot.com/local--files/openvpn/tun.ko -O /lib/modules/2.6.17.14/kernel/drivers/net/tun.ko
echo /lib/modules/2.6.17.14/kernel/drivers/net/tun.ko:>>/lib/modules/2.6.17.14/modules.dep
modprobe tun
2. install binutils (contains strip) and gcc to be able to compile tuncfg from source code (tuncfg is open source and its source code is provided by hamachi together with binary)
ipkg install openssl binutils gcc -force-overwrite
3. get hamachi, unpack, patch and install. By patch I mean to replace binary 'hamachi' in unpacked directory by the right one.
wget http://files.hamachi.cc/linux/hamachi-0.9.9.9-20-lnx.tar.gz
tar -zxvf hamachi-0.9.9.9-20-lnx.tar.gz
cd hamachi-0.9.9.9-20-lnx/tuncfg
gcc tuncfg.c -o tuncfg
cd ..
#patch before run this
make install
4. continue configuring hamachi http://ubuntuforums.org/showthread.php?t=135036
#Create the 'hamachi' group
sudo groupadd hamachi
#Add your user to the group
sudo gpasswd -a user hamachi
#Add root to the group
sudo gpasswd -a root hamachi
#Set socket permissions
sudo chmod 760 /var/run/tuncfg.sock
#Finally, changing the group of the file
sudo chgrp hamachi /var/run/tuncfg.sock
#base configuration
sudo hamachi-init -c /etc/hamachi
#start hamachi
sudo hamachi -c /etc/hamachi start
#set your unique nick
sudo hamachi -c /etc/hamachi set-nick "YourNickHere"
5. login, join, create …
#Login to Hamachi
sudo hamachi -c /etc/hamachi login
#To join an existing network
sudo hamachi -c /etc/hamachi join network password
#Or to create a new network
sudo hamachi -c /etc/hamachi create network password
#Lastly, to go online to the network you joined
sudo hamachi -c /etc/hamachi go-online network
6. startup script:
touch /etc/init.d/S78hamachi
sudo chmod +x /etc/init.d/hamachi
nano /etc/init.d/S78hamachi
paste:
#!/bin/sh
hamachi_start() {
echo "Starting hamachi..."
/sbin/tuncfg
/usr/bin/hamachi -c /etc/hamachi start
/bin/chmod 760 /var/run/tuncfg.sock
/bin/chgrp hamachi /var/run/tuncfg.sock
}
hamachi_stop() {
echo "Stopping hamachi..."
killall tuncfg
/usr/bin/hamachi -c /etc/hamachi stop
}
hamachi_restart() {
hamachi_stop
sleep 1
hamachi_start
}
case "$1" in
'start')
hamachi_start
;;
'stop')
hamachi_stop
;;
'restart')
hamachi_restart
;;
*)
hamachi_start
esac
The original tuncfg compiled for the Nokia770 ARM processor returned "-bash: ./tuncfg: No such file or directory". The same with hamachi compiled for Nokia770. After I compiled tuncfg it works fine, but we don't have source code for hamachi. Sala mentioned here that "you need to chroot into libc environment to use this binary", but I have no idea how to do that. Will somebody help me please?
compiled for Nokia770:
./tuncfg: No such file or directory
objdump -R tuncfg
DYNAMIC RELOCATION RECORDS
OFFSET TYPE VALUE
00011dec R_ARM_GLOB_DAT gmon_start
00011d68 R_ARM_JUMP_SLOT __xstat
00011d6c R_ARM_JUMP_SLOT accept
00011d70 R_ARM_JUMP_SLOT memset
00011d74 R_ARM_JUMP_SLOT bind
00011d78 R_ARM_JUMP_SLOT getuid
00011d7c R_ARM_JUMP_SLOT abort
00011d80 R_ARM_JUMP_SLOT socket
00011d84 R_ARM_JUMP_SLOT flock
00011d88 R_ARM_JUMP_SLOT __libc_start_main
00011d8c R_ARM_JUMP_SLOT memcpy
00011d90 R_ARM_JUMP_SLOT unlink
00011d94 R_ARM_JUMP_SLOT ioctl
00011d98 R_ARM_JUMP_SLOT setsid
00011d9c R_ARM_JUMP_SLOT strcmp
00011da0 R_ARM_JUMP_SLOT __errno_location
00011da4 R_ARM_JUMP_SLOT strncpy
00011da8 R_ARM_JUMP_SLOT strcpy
00011dac R_ARM_JUMP_SLOT sprintf
00011db0 R_ARM_JUMP_SLOT open
00011db4 R_ARM_JUMP_SLOT chmod
00011db8 R_ARM_JUMP_SLOT exit
00011dbc R_ARM_JUMP_SLOT strerror
00011dc0 R_ARM_JUMP_SLOT select
00011dc4 R_ARM_JUMP_SLOT fork
00011dc8 R_ARM_JUMP_SLOT close
00011dcc R_ARM_JUMP_SLOT chdir
00011dd0 R_ARM_JUMP_SLOT recv
00011dd4 R_ARM_JUMP_SLOT listen
00011dd8 R_ARM_JUMP_SLOT sendmsg
00011ddc R_ARM_JUMP_SLOT _Jv_RegisterClasses
00011de0 R_ARM_JUMP_SLOT system
00011de4 R_ARM_JUMP_SLOT printf
00011de8 R_ARM_JUMP_SLOT dup
compiled for mybook world and working:
objdump -R tuncfg
DYNAMIC RELOCATION RECORDS
OFFSET TYPE VALUE
00012150 R_ARM_GLOB_DAT _init
00012154 R_ARM_GLOB_DAT main
00012158 R_ARM_GLOB_DAT _fini
000120d0 R_ARM_JUMP_SLOT strcpy
000120d4 R_ARM_JUMP_SLOT ioctl
000120d8 R_ARM_JUMP_SLOT printf
000120dc R_ARM_JUMP_SLOT recv
000120e0 R_ARM_JUMP_SLOT strerror
000120e4 R_ARM_JUMP_SLOT memcpy
000120e8 R_ARM_JUMP_SLOT getuid
000120ec R_ARM_JUMP_SLOT system
000120f0 R_ARM_JUMP_SLOT socket
000120f4 R_ARM_JUMP_SLOT select
000120f8 R_ARM_JUMP_SLOT chmod
000120fc R_ARM_JUMP_SLOT accept
00012100 R_ARM_JUMP_SLOT bind
00012104 R_ARM_JUMP_SLOT chdir
00012108 R_ARM_JUMP_SLOT flock
0001210c R_ARM_JUMP_SLOT sendmsg
00012110 R_ARM_JUMP_SLOT strncpy
00012114 R_ARM_JUMP_SLOT unlink
00012118 R_ARM_JUMP_SLOT listen
0001211c R_ARM_JUMP_SLOT fork
00012120 R_ARM_JUMP_SLOT __uClibc_main
00012124 R_ARM_JUMP_SLOT memset
00012128 R_ARM_JUMP_SLOT strcmp
0001212c R_ARM_JUMP_SLOT dup
00012130 R_ARM_JUMP_SLOT sprintf
00012134 R_ARM_JUMP_SLOT stat
00012138 R_ARM_JUMP_SLOT __errno_location
0001213c R_ARM_JUMP_SLOT exit
00012140 R_ARM_JUMP_SLOT open
00012144 R_ARM_JUMP_SLOT setsid
00012148 R_ARM_JUMP_SLOT _Jv_RegisterClasses
0001214c R_ARM_JUMP_SLOT close
compiled for Nokia770:
./hamachi: No such file or directory
objdump -R hamachi
DYNAMIC RELOCATION RECORDS
OFFSET TYPE VALUE
0003f380 R_ARM_GLOB_DAT _ZTI9bad_state
0003f384 R_ARM_GLOB_DAT _ZTIN6parser3errE
0003f388 R_ARM_GLOB_DAT gmon_start
0003f578 R_ARM_COPY stdout
0003f580 R_ARM_COPY _ZNSs4_Rep20_S_empty_rep_storageE
0003f590 R_ARM_COPY optind
0003f594 R_ARM_COPY optarg
0003f598 R_ARM_COPY _ZTVN10cxxabiv121vmi_class_type_infoE
0003f5c8 R_ARM_COPY _ZTVSt9bad_alloc
0003f5e0 R_ARM_COPY _ZTISt9bad_alloc
0003f5f0 R_ARM_COPY _ZTVN10cxxabiv117class_type_infoE
0003f61c R_ARM_COPY opterr
0003f620 R_ARM_COPY _ZTVN10cxxabiv120si_class_type_infoE
0003f64c R_ARM_COPY _ZNSs4_Rep11_S_max_sizeE
0003f154 R_ARM_JUMP_SLOT recvfrom
0003f158 R_ARM_JUMP_SLOT cxa_end_catch
0003f15c R_ARM_JUMP_SLOT __cxa_rethrow
0003f160 R_ARM_JUMP_SLOT fflush
0003f164 R_ARM_JUMP_SLOT fgets
0003f168 R_ARM_JUMP_SLOT SHA_Final
0003f16c R_ARM_JUMP_SLOT __xstat
0003f170 R_ARM_JUMP_SLOT accept
0003f174 R_ARM_JUMP_SLOT _ZNSt15_List_node_base6unhookEv
0003f178 R_ARM_JUMP_SLOT memset
0003f17c R_ARM_JUMP_SLOT putchar
0003f180 R_ARM_JUMP_SLOT RSA_generate_key
0003f184 R_ARM_JUMP_SLOT _ZNSs6resizeEjc
0003f188 R_ARM_JUMP_SLOT connect
0003f18c R_ARM_JUMP_SLOT BN_bin2bn
0003f190 R_ARM_JUMP_SLOT strchr
0003f194 R_ARM_JUMP_SLOT puts
0003f198 R_ARM_JUMP_SLOT bind
0003f19c R_ARM_JUMP_SLOT _ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base
0003f1a0 R_ARM_JUMP_SLOT abort
0003f1a4 R_ARM_JUMP_SLOT BN_bn2bin
0003f1a8 R_ARM_JUMP_SLOT fcntl
0003f1ac R_ARM_JUMP_SLOT socket
0003f1b0 R_ARM_JUMP_SLOT _ZN9gnu_cxx12atomic_addEPVii
0003f1b4 R_ARM_JUMP_SLOT fileno
0003f1b8 R_ARM_JUMP_SLOT __aeabi_uidivmod
0003f1bc R_ARM_JUMP_SLOT flock
0003f1c0 R_ARM_JUMP_SLOT gethostbyname
0003f1c4 R_ARM_JUMP_SLOT getsockopt
0003f1c8 R_ARM_JUMP_SLOT _ZNSt9bad_allocD1Ev
0003f1cc R_ARM_JUMP_SLOT _ZNKSs7compareEPKc
0003f1d0 R_ARM_JUMP_SLOT __libc_start_main
0003f1d4 R_ARM_JUMP_SLOT sigaction
0003f1d8 R_ARM_JUMP_SLOT isalpha
0003f1dc R_ARM_JUMP_SLOT memcpy
0003f1e0 R_ARM_JUMP_SLOT sigemptyset
0003f1e4 R_ARM_JUMP_SLOT DH_generate_key
0003f1e8 R_ARM_JUMP_SLOT DH_size
0003f1ec R_ARM_JUMP_SLOT raise
0003f1f0 R_ARM_JUMP_SLOT unlink
0003f1f4 R_ARM_JUMP_SLOT RSA_public_decrypt
0003f1f8 R_ARM_JUMP_SLOT _ZSt28_Rb_tree_rebalance_for_erasePSt18_Rb_tree_node_baseRS_
0003f1fc R_ARM_JUMP_SLOT __cxa_call_unexpected
0003f200 R_ARM_JUMP_SLOT BN_num_bits
0003f204 R_ARM_JUMP_SLOT kill
0003f208 R_ARM_JUMP_SLOT signal
0003f20c R_ARM_JUMP_SLOT _ZNSs7reserveEj
0003f210 R_ARM_JUMP_SLOT tcsetattr
0003f214 R_ARM_JUMP_SLOT getopt
0003f218 R_ARM_JUMP_SLOT setsid
0003f21c R_ARM_JUMP_SLOT strcmp
0003f220 R_ARM_JUMP_SLOT DH_new
0003f224 R_ARM_JUMP_SLOT sendto
0003f228 R_ARM_JUMP_SLOT strrchr
0003f22c R_ARM_JUMP_SLOT getpid
0003f230 R_ARM_JUMP_SLOT DH_compute_key
0003f234 R_ARM_JUMP_SLOT write
0003f238 R_ARM_JUMP_SLOT gettimeofday
0003f23c R_ARM_JUMP_SLOT strlen
0003f240 R_ARM_JUMP_SLOT _ZNSs6appendERKSs
0003f244 R_ARM_JUMP_SLOT RSA_new
0003f248 R_ARM_JUMP_SLOT poll
0003f24c R_ARM_JUMP_SLOT _ZNSsD1Ev
0003f250 R_ARM_JUMP_SLOT __cxa_allocate_exception
0003f254 R_ARM_JUMP_SLOT send
0003f258 R_ARM_JUMP_SLOT __errno_location
0003f25c R_ARM_JUMP_SLOT _ZNSs4_Rep10_M_destroyERKSaIcE
0003f260 R_ARM_JUMP_SLOT getsockname
0003f264 R_ARM_JUMP_SLOT strcpy
0003f268 R_ARM_JUMP_SLOT BN_free
0003f26c R_ARM_JUMP_SLOT _ZNSsC1ERKSs
0003f270 R_ARM_JUMP_SLOT __assert_fail
0003f274 R_ARM_JUMP_SLOT __cxa_begin_catch
0003f278 R_ARM_JUMP_SLOT RAND_bytes
0003f27c R_ARM_JUMP_SLOT _Znaj
0003f280 R_ARM_JUMP_SLOT sprintf
0003f284 R_ARM_JUMP_SLOT _ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base
0003f288 R_ARM_JUMP_SLOT _ZNSsC1EPKcRKSaIcE
0003f28c R_ARM_JUMP_SLOT getenv
0003f290 R_ARM_JUMP_SLOT _ZNSs9_M_mutateEjjj
0003f294 R_ARM_JUMP_SLOT _ZNSt15_List_node_base4hookEPS_
0003f298 R_ARM_JUMP_SLOT fprintf
0003f29c R_ARM_JUMP_SLOT open
0003f2a0 R_ARM_JUMP_SLOT _ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base
0003f2a4 R_ARM_JUMP_SLOT umask
0003f2a8 R_ARM_JUMP_SLOT __cxa_end_cleanup
0003f2ac R_ARM_JUMP_SLOT tcgetattr
0003f2b0 R_ARM_JUMP_SLOT sscanf
0003f2b4 R_ARM_JUMP_SLOT _ZNSs6appendEPKcj
0003f2b8 R_ARM_JUMP_SLOT _Znwj
0003f2bc R_ARM_JUMP_SLOT DH_free
0003f2c0 R_ARM_JUMP_SLOT mkdir
0003f2c4 R_ARM_JUMP_SLOT _ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_
0003f2c8 R_ARM_JUMP_SLOT RSA_free
0003f2cc R_ARM_JUMP_SLOT localtime
0003f2d0 R_ARM_JUMP_SLOT memmove
0003f2d4 R_ARM_JUMP_SLOT __cxa_pure_virtual
0003f2d8 R_ARM_JUMP_SLOT exit
0003f2dc R_ARM_JUMP_SLOT setsockopt
0003f2e0 R_ARM_JUMP_SLOT _ZSt20throw_length_errorPKc
0003f2e4 R_ARM_JUMP_SLOT _ZdaPv
0003f2e8 R_ARM_JUMP_SLOT strerror
0003f2ec R_ARM_JUMP_SLOT BN_dup
0003f2f0 R_ARM_JUMP_SLOT _ZNSs6assignERKSs
0003f2f4 R_ARM_JUMP_SLOT aeabi_atexit
0003f2f8 R_ARM_JUMP_SLOT read
0003f2fc R_ARM_JUMP_SLOT recvmsg
0003f300 R_ARM_JUMP_SLOT time
0003f304 R_ARM_JUMP_SLOT vfprintf
0003f308 R_ARM_JUMP_SLOT fork
0003f30c R_ARM_JUMP_SLOT close
0003f310 R_ARM_JUMP_SLOT memcmp
0003f314 R_ARM_JUMP_SLOT _ZNSs12_M_leak_hardEv
0003f318 R_ARM_JUMP_SLOT RSA_private_encrypt
0003f31c R_ARM_JUMP_SLOT _ZSt20throw_out_of_rangePKc
0003f320 R_ARM_JUMP_SLOT _ZNSs6assignEPKcj
0003f324 R_ARM_JUMP_SLOT SHA_Init
0003f328 R_ARM_JUMP_SLOT SHA_Update
0003f32c R_ARM_JUMP_SLOT _ZN9gnu_cxx18exchange_and_addEPVii
0003f330 R_ARM_JUMP_SLOT recv
0003f334 R_ARM_JUMP_SLOT fclose
0003f338 R_ARM_JUMP_SLOT fopen
0003f33c R_ARM_JUMP_SLOT _ZNSs7replaceEjjPKcj
0003f340 R_ARM_JUMP_SLOT fread
0003f344 R_ARM_JUMP_SLOT listen
0003f348 R_ARM_JUMP_SLOT cxa_throw
0003f34c R_ARM_JUMP_SLOT usleep
0003f350 R_ARM_JUMP_SLOT pipe
0003f354 R_ARM_JUMP_SLOT _Jv_RegisterClasses
0003f358 R_ARM_JUMP_SLOT system
0003f35c R_ARM_JUMP_SLOT __gxx_personality_v0
0003f360 R_ARM_JUMP_SLOT creat
0003f364 R_ARM_JUMP_SLOT BN_new
0003f368 R_ARM_JUMP_SLOT printf
0003f36c R_ARM_JUMP_SLOT BN_cmp
0003f370 R_ARM_JUMP_SLOT wait
0003f374 R_ARM_JUMP_SLOT _ZdlPv
0003f378 R_ARM_JUMP_SLOT _ZSt19throw_logic_errorPKc
0003f37c R_ARM_JUMP_SLOT dup
So finnaly hamachi is'nt working?
What do you mean by:
...By patch I mean to replace binary 'hamachi' in unpacked directory by the right one.
This You can obtain after
ask hamachi to provide either source code or hamachi binary compiled for ARM926TEJ
???
Hi.
I went ahead with the installation .. I have now overcome the problems of gcc with cross-compiling! ;)
Now I have another problem with step 3: "#patch before run this make install" I don't konw what means… and when I try 'make install' I get the following error:
Copying hamachi into /usr/bin..
make: install: Command not found
make: *** [install] Error 127
What do I do now?? Please, help me…
Hello, I would like to get some advice please. I have a problem with hamachi on my WD Mybook WE (Blue ring). Everything is OK but the 4th step NO, when I have to apply different command to create group and add user and root to group. The problem is in the next step "sudo hamachi-init -c/etc/hamachi". I can't run Hamachi or Hamachi-init and another. System writes : "/usr/bin/hamachi-init: /usr/bin/hamachi-init: cannot execute binary file
". Do somebody know where is the problem? (Sorry, my english is not so good) Thanks