SoftEther vpn client for 32 bit ARM
-
- Posts: 9
- Joined: Mon Feb 24, 2020 5:14 am
SoftEther vpn client for 32 bit ARM
Hi, I buil a test version of the 32 bit arm executable of the vpnclient and vpncmd on a Ubunu 16.04 host (cross compiler) using the following makefile. But when I run the client, I get this error:
zynq> ./vpncmd
-- Alert: SoftEther VPN Kernel --
String Library Init Failed.
Please check your locale settings and iconv() libraries.
Wondering how to solve this issue. I tried to export the locales (as i pasted below). Looks like the issue is the libiconv.a but its distributed as part of the arm eabi installer so I am kind of confused why would there be an issue (since these libraries are static and I am building static, so there should not be dependency issues)
My Makefile:
SoftEther VPN Client (Ver 4.32, Build 9731, ARM EABI) for Linux
# Makefile
#
# Copyright (c) SoftEther VPN Project at University of Tsukuba, Japan. All Rights Reserved.
# Platform: linux-armeabi-32bit
CC:=gcc
CROSS_COMPILER:=arm-linux-gnueabi-
CFLAGS := -static -msoft-float --disable-shared
OPTIONS=-fPIE -O2 -fsigned-char -pthread -lm -lrt -Wl,--no-warn-mismatch -lpthread -L./ lib/libssl.a lib/libcrypto.a lib/libiconv.a lib/libcharset.a lib/libedit.a lib/libncurses.a lib/libz.a -$
default:
@./.install.sh
# NOTE:
# You have to read and agree the license agreement at the same directory
# before using this software.
i_read_and_agree_the_license_agreement:
@echo "Preparing SoftEther VPN Client..."
-arm-linux-gnueabi-ranlib lib/libcharset.a
-arm-linux-gnueabi-ranlib lib/libcrypto.a
-arm-linux-gnueabi-ranlib lib/libedit.a
-arm-linux-gnueabi-ranlib lib/libiconv.a
-arm-linux-gnueabi-ranlib lib/libncurses.a
-arm-linux-gnueabi-ranlib lib/libssl.a
-arm-linux-gnueabi-ranlib lib/libz.a
-arm-linux-gnueabi-ranlib code/vpnclient.a
$(CROSS_COMPILER)$(CC) $(CFLAGS) code/vpnclient.a $(OPTIONS) -o vpnclient
-arm-linux-gnueabi-ranlib code/vpncmd.a
$(CROSS_COMPILER)$(CC) $(CFLAGS) code/vpncmd.a $(OPTIONS) -o vpncmd
Here is my LOCALE settings:
export LANG='en_US.UTF-8'
export LANGUAGE='en_US'
export LC_ALL='en_US'
Here is my cpu info:
processor : 0
model name : ARMv7 Processor rev 0 (v7l)
Features : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpd32
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x3
CPU part : 0xc09
CPU revision : 0
processor : 1
model name : ARMv7 Processor rev 0 (v7l)
Features : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpd32
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x3
CPU part : 0xc09
CPU revision : 0
Hardware : Xilinx Zynq Platform
Revision : 0000
Serial : 0000000000000000
zynq> ./vpncmd
-- Alert: SoftEther VPN Kernel --
String Library Init Failed.
Please check your locale settings and iconv() libraries.
Wondering how to solve this issue. I tried to export the locales (as i pasted below). Looks like the issue is the libiconv.a but its distributed as part of the arm eabi installer so I am kind of confused why would there be an issue (since these libraries are static and I am building static, so there should not be dependency issues)
My Makefile:
SoftEther VPN Client (Ver 4.32, Build 9731, ARM EABI) for Linux
# Makefile
#
# Copyright (c) SoftEther VPN Project at University of Tsukuba, Japan. All Rights Reserved.
# Platform: linux-armeabi-32bit
CC:=gcc
CROSS_COMPILER:=arm-linux-gnueabi-
CFLAGS := -static -msoft-float --disable-shared
OPTIONS=-fPIE -O2 -fsigned-char -pthread -lm -lrt -Wl,--no-warn-mismatch -lpthread -L./ lib/libssl.a lib/libcrypto.a lib/libiconv.a lib/libcharset.a lib/libedit.a lib/libncurses.a lib/libz.a -$
default:
@./.install.sh
# NOTE:
# You have to read and agree the license agreement at the same directory
# before using this software.
i_read_and_agree_the_license_agreement:
@echo "Preparing SoftEther VPN Client..."
-arm-linux-gnueabi-ranlib lib/libcharset.a
-arm-linux-gnueabi-ranlib lib/libcrypto.a
-arm-linux-gnueabi-ranlib lib/libedit.a
-arm-linux-gnueabi-ranlib lib/libiconv.a
-arm-linux-gnueabi-ranlib lib/libncurses.a
-arm-linux-gnueabi-ranlib lib/libssl.a
-arm-linux-gnueabi-ranlib lib/libz.a
-arm-linux-gnueabi-ranlib code/vpnclient.a
$(CROSS_COMPILER)$(CC) $(CFLAGS) code/vpnclient.a $(OPTIONS) -o vpnclient
-arm-linux-gnueabi-ranlib code/vpncmd.a
$(CROSS_COMPILER)$(CC) $(CFLAGS) code/vpncmd.a $(OPTIONS) -o vpncmd
Here is my LOCALE settings:
export LANG='en_US.UTF-8'
export LANGUAGE='en_US'
export LC_ALL='en_US'
Here is my cpu info:
processor : 0
model name : ARMv7 Processor rev 0 (v7l)
Features : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpd32
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x3
CPU part : 0xc09
CPU revision : 0
processor : 1
model name : ARMv7 Processor rev 0 (v7l)
Features : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpd32
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x3
CPU part : 0xc09
CPU revision : 0
Hardware : Xilinx Zynq Platform
Revision : 0000
Serial : 0000000000000000
-
- Posts: 477
- Joined: Tue Sep 11, 2018 5:58 pm
Re: SoftEther vpn client for 32 bit ARM
If i remember well, it was one of many problems
I think name is either libiconv or iconv
When you solve this you might expect another dozen of problems
I think name is either libiconv or iconv
When you solve this you might expect another dozen of problems
-
- Posts: 9
- Joined: Mon Feb 24, 2020 5:14 am
Re: SoftEther vpn client for 32 bit ARM
Hi Sky59, Thanks a lot for your reply,
How did you fix the issue? libiconv is provided with the downloaded tar file, so the linker just links all the libraries (i am building statically) to produce a large client binary. But did you fix it by locally building libiconv? And Once you got it going, were you able to use openVPN as the vpn protocol?
Thanks, Ratin
How did you fix the issue? libiconv is provided with the downloaded tar file, so the linker just links all the libraries (i am building statically) to produce a large client binary. But did you fix it by locally building libiconv? And Once you got it going, were you able to use openVPN as the vpn protocol?
Thanks, Ratin
-
- Posts: 477
- Joined: Tue Sep 11, 2018 5:58 pm
Re: SoftEther vpn client for 32 bit ARM
Just have a look into the log why it failed, if it is missing iconv or libiconv
Yes, openvpn is normally served without limitations
Yes, openvpn is normally served without limitations
-
- Posts: 9
- Joined: Mon Feb 24, 2020 5:14 am
Re: SoftEther vpn client for 32 bit ARM
I compiled all the companion libraries from source and still had the same issue. At this point I am going to go with another client, while trying to see if SoftETher VPN server can still be used.
Thanks for your help.
Thanks for your help.
-
- Posts: 1
- Joined: Mon Mar 09, 2020 7:13 am
Re: SoftEther vpn client for 32 bit ARM
I checked the file. Nothing is missing but I still get the issue.
-
- Posts: 477
- Joined: Tue Sep 11, 2018 5:58 pm
Re: SoftEther vpn client for 32 bit ARM
I checked my notes and I had to edit file Internat.c (SE source) where all iconv needed to be changed to libiconv
-
- Posts: 10
- Joined: Sat Mar 13, 2021 8:04 am
-
- Posts: 477
- Joined: Tue Sep 11, 2018 5:58 pm
Re: SoftEther vpn client for 32 bit ARM
-
- Posts: 10
- Joined: Sat Mar 13, 2021 8:04 am
Re: SoftEther vpn client for 32 bit ARM
I don't understand how this will work because all these types and functions in iconv.h
typedef void *iconv_t;
extern iconv_t iconv_open (__const char *__tocode, __const char *__fromcode);
extern size_t iconv (iconv_t __cd, char **__restrict __inbuf,
extern int iconv_close (iconv_t __cd);
will be broken if you change every instance of "iconv" to "libiconv"
typedef void *iconv_t;
extern iconv_t iconv_open (__const char *__tocode, __const char *__fromcode);
extern size_t iconv (iconv_t __cd, char **__restrict __inbuf,
extern int iconv_close (iconv_t __cd);
will be broken if you change every instance of "iconv" to "libiconv"