Page 1 of 1

SoftEther vpn client for 32 bit ARM

Posted: Thu Feb 27, 2020 12:53 am
by ratin3
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

Re: SoftEther vpn client for 32 bit ARM

Posted: Sat Feb 29, 2020 9:30 am
by ratin3
Bump

Re: SoftEther vpn client for 32 bit ARM

Posted: Sat Feb 29, 2020 10:08 am
by sky59
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

Re: SoftEther vpn client for 32 bit ARM

Posted: Thu Mar 05, 2020 5:13 am
by ratin3
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

Re: SoftEther vpn client for 32 bit ARM

Posted: Thu Mar 05, 2020 12:25 pm
by sky59
Just have a look into the log why it failed, if it is missing iconv or libiconv

Yes, openvpn is normally served without limitations

Re: SoftEther vpn client for 32 bit ARM

Posted: Fri Mar 06, 2020 3:21 am
by ratin3
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.

Re: SoftEther vpn client for 32 bit ARM

Posted: Mon Mar 09, 2020 7:16 am
by scottbarry
I checked the file. Nothing is missing but I still get the issue.

Re: SoftEther vpn client for 32 bit ARM

Posted: Mon Mar 09, 2020 11:04 am
by sky59
I checked my notes and I had to edit file Internat.c (SE source) where all iconv needed to be changed to libiconv

Re: SoftEther vpn client for 32 bit ARM

Posted: Thu Mar 18, 2021 2:17 pm
by flimbar
sky59 wrote:
Mon Mar 09, 2020 11:04 am
I checked my notes and I had to edit file Internat.c (SE source) where all iconv needed to be changed to libiconv
I don't follow this.

It sounds like you mean replace every instance of the string "iconv" with "libiconv"?
Is that what you mean?

Thanks
Nick

Re: SoftEther vpn client for 32 bit ARM

Posted: Thu Mar 18, 2021 2:48 pm
by sky59
flimbar wrote:
Thu Mar 18, 2021 2:17 pm
sky59 wrote:
Mon Mar 09, 2020 11:04 am
I checked my notes and I had to edit file Internat.c (SE source) where all iconv needed to be changed to libiconv
I don't follow this.

It sounds like you mean replace every instance of the string "iconv" with "libiconv"?
Is that what you mean?

Thanks
Nick
yes, I use version 4.25, may be for newer version not necessary

Re: SoftEther vpn client for 32 bit ARM

Posted: Fri Mar 19, 2021 9:15 am
by flimbar
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"