# Need EasyTether and Samsung Phone for Mobile Internet



## Gaming4JC (Mar 9, 2011)

Hello All,
I'm having a lot of trouble getting a Samsung cell and EasyTether to work on FreeBSD. It works fine on linux, but the little daemon just isn't working. x(

Also due to my hardware limitations, that's the only access I have to the internet currently, without a wvdial port which I could use for a serial modem.

Ok so here's what I've got.
EasyTether Binary: http://www.mobile-stream.com/easytether/drivers.html

```
pcbsd# brandelf -t Linux easytether
pcbsd# ./easytether
ELF binary type "3" not known.
./easytether: Exec format error. Binary file not executable.
pcbsd# sudo brandelf -t Linux easytether
pcbsd# ./easytether
ELF binary type "3" not known.
./easytether: Exec format error. Binary file not executable.
pcbsd# kldstat
Id Refs Address            Size     Name
 1   85 0xffffffff80100000 df7168   kernel
 2    1 0xffffffff80ef8000 5f38     nullfs.ko
 3    1 0xffffffff80efe000 1ad510   zfs.ko
 4    2 0xffffffff810ac000 3990     opensolaris.ko
 5    1 0xffffffff810b0000 1cbd0    geom_eli.ko
 6    2 0xffffffff810cd000 2ab80    crypto.ko
 7    3 0xffffffff810f8000 dc40     zlib.ko
 8    1 0xffffffff81106000 1e5f8    geom_journal.ko
 9    1 0xffffffff81125000 20fe0    geom_mirror.ko
10    1 0xffffffff81146000 3158     geom_uzip.ko
11    1 0xffffffff8114a000 e730     if_ipw.ko
12    1 0xffffffff81159000 13578    if_iwi.ko
13    1 0xffffffff8116d000 1ebf0    if_iwn.ko
14    1 0xffffffff8118c000 12498    if_wpi.ko
15    1 0xffffffff82cf7000 ad40     mmc.ko
16    1 0xffffffff82d02000 4010     mmcsd.ko
17    1 0xffffffff82d07000 ff88     ahci.ko
18    1 0xffffffff82d17000 a520     siis.ko
19    1 0xffffffff82d22000 8088     sdhci.ko
20    1 0xffffffff82d2b000 51e0     scd.ko
21    1 0xffffffff82d31000 65d0     mcd.ko
22    1 0xffffffff82e22000 14156    snd_hda.ko
23    1 0xffffffff82e37000 3901a    sound.ko
24    1 0xffffffff82e71000 1ca5e    linux.ko
25    1 0xffffffff82e8e000 224      msdosfs_iconv.ko
26    2 0xffffffff82e8f000 21ce     libiconv.ko
27    1 0xffffffff82e92000 220      cd9660_iconv.ko
pcbsd# readelf -e easytether
ELF Header:
  Magic:   7f 45 4c 46 02 01 01 03 00 00 00 00 00 00 00 00 
  Class:                             ELF64
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - Linux
  ABI Version:                       0
  Type:                              EXEC (Executable file)
  Machine:                           Advanced Micro Devices X86-64
  Version:                           0x1
  Entry point address:               0x401580
  Start of program headers:          64 (bytes into file)
  Start of section headers:          21120 (bytes into file)
  Flags:                             0x0
  Size of this header:               64 (bytes)
  Size of program headers:           56 (bytes)
  Number of program headers:         9
  Size of section headers:           64 (bytes)
  Number of section headers:         29
  Section header string table index: 28

Section Headers:
  [Nr] Name              Type             Address           Offset
       Size              EntSize          Flags  Link  Info  Align
  [ 0]                   NULL             0000000000000000  00000000
       0000000000000000  0000000000000000           0     0     0
  [ 1] .interp           PROGBITS         0000000000400238  00000238
       000000000000001c  0000000000000000   A       0     0     1
  [ 2] .note.ABI-tag     NOTE             0000000000400254  00000254
       0000000000000020  0000000000000000   A       0     0     4
  [ 3] .note.gnu.build-i NOTE             0000000000400274  00000274
       0000000000000024  0000000000000000   A       0     0     4
  [ 4] .hash             HASH             0000000000400298  00000298
       0000000000000190  0000000000000004   A       6     0     8
  [ 5] .gnu.hash         LOOS+ffffff6     0000000000400428  00000428
       0000000000000068  0000000000000000   A       6     0     8
  [ 6] .dynsym           DYNSYM           0000000000400490  00000490
       00000000000005b8  0000000000000018   A       7     1     8
  [ 7] .dynstr           STRTAB           0000000000400a48  00000a48
       000000000000035f  0000000000000000   A       0     0     1
  [ 8] .gnu.version      VERSYM           0000000000400da8  00000da8
       000000000000007a  0000000000000002   A       6     0     2
  [ 9] .gnu.version_r    VERNEED          0000000000400e28  00000e28
       0000000000000040  0000000000000000   A       7     1     8
  [10] .rela.dyn         RELA             0000000000400e68  00000e68
       0000000000000030  0000000000000018   A       6     0     8
  [11] .rela.plt         RELA             0000000000400e98  00000e98
       0000000000000408  0000000000000018   A       6     d     8
  [12] .init             PROGBITS         00000000004012a0  000012a0
       0000000000000018  0000000000000000  AX       0     0     4
  [13] .plt              PROGBITS         00000000004012b8  000012b8
       00000000000002c0  0000000000000010  AX       0     0     4
  [14] .text             PROGBITS         0000000000401580  00001580
       00000000000029f8  0000000000000000  AX       0     0     16
  [15] .fini             PROGBITS         0000000000403f78  00003f78
       000000000000000e  0000000000000000  AX       0     0     4
  [16] .rodata           PROGBITS         0000000000403fa0  00003fa0
       0000000000000396  0000000000000000   A       0     0     32
  [17] .eh_frame_hdr     PROGBITS         0000000000404338  00004338
       0000000000000094  0000000000000000   A       0     0     4
  [18] .eh_frame         PROGBITS         00000000004043d0  000043d0
       0000000000000294  0000000000000000   A       0     0     8
  [19] .ctors            PROGBITS         0000000000604e08  00004e08
       0000000000000010  0000000000000000  WA       0     0     8
  [20] .dtors            PROGBITS         0000000000604e18  00004e18
       0000000000000010  0000000000000000  WA       0     0     8
  [21] .jcr              PROGBITS         0000000000604e28  00004e28
       0000000000000008  0000000000000000  WA       0     0     8
  [22] .dynamic          DYNAMIC          0000000000604e30  00004e30
       00000000000001b0  0000000000000010  WA       7     0     8
  [23] .got              PROGBITS         0000000000604fe0  00004fe0
       0000000000000008  0000000000000008  WA       0     0     8
  [24] .got.plt          PROGBITS         0000000000604fe8  00004fe8
       0000000000000170  0000000000000008  WA       0     0     8
  [25] .data             PROGBITS         0000000000605158  00005158
       0000000000000010  0000000000000000  WA       0     0     8
  [26] .bss              NOBITS           0000000000605168  00005168
       0000000000000020  0000000000000000  WA       0     0     8
  [27] .comment          PROGBITS         0000000000000000  00005168
       0000000000000023  0000000000000001  MS       0     0     1
  [28] .shstrtab         STRTAB           0000000000000000  0000518b
       00000000000000ee  0000000000000000           0     0     1
Key to Flags:
  W (write), A (alloc), X (execute), M (merge), S (strings)
  I (info), L (link order), G (group), x (unknown)
  O (extra OS processing required) o (OS specific), p (processor specific)

Program Headers:
  Type           Offset             VirtAddr           PhysAddr
                 FileSiz            MemSiz              Flags  Align
  PHDR           0x0000000000000040 0x0000000000400040 0x0000000000400040
                 0x00000000000001f8 0x00000000000001f8  R E    8
  INTERP         0x0000000000000238 0x0000000000400238 0x0000000000400238
                 0x000000000000001c 0x000000000000001c  R      1
      [Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]
  LOAD           0x0000000000000000 0x0000000000400000 0x0000000000400000
                 0x0000000000004664 0x0000000000004664  R E    200000
  LOAD           0x0000000000004e08 0x0000000000604e08 0x0000000000604e08
                 0x0000000000000360 0x0000000000000380  RW     200000
  DYNAMIC        0x0000000000004e30 0x0000000000604e30 0x0000000000604e30
                 0x00000000000001b0 0x00000000000001b0  RW     8
  NOTE           0x0000000000000254 0x0000000000400254 0x0000000000400254
                 0x0000000000000044 0x0000000000000044  R      4
  GNU_EH_FRAME   0x0000000000004338 0x0000000000404338 0x0000000000404338
                 0x0000000000000094 0x0000000000000094  R      4
  STACK          0x0000000000000000 0x0000000000000000 0x0000000000000000
                 0x0000000000000000 0x0000000000000000  RW     8
  LOOS+474e552   0x0000000000004e08 0x0000000000604e08 0x0000000000604e08
                 0x00000000000001f8 0x00000000000001f8  R      1

 Section to Segment mapping:
  Segment Sections...
   00     
   01     .interp 
   02     .interp .note.ABI-tag .note.gnu.build-id .hash .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_r 
          .rela.dyn .rela.plt .init .plt .text .fini .rodata .eh_frame_hdr .eh_frame 
   03     .ctors .dtors .jcr .dynamic .got .got.plt .data .bss 
   04     .dynamic 
   05     .note.ABI-tag .note.gnu.build-id 
   06     .eh_frame_hdr 
   07     
   08     .ctors .dtors .jcr .dynamic .got 
pcbsd#
```

And information specific on the hardware:


			
				kate from konsole said:
			
		

> http://i.imgur.com/Fm2vE.jpg
> http://i.imgur.com/ORgX6.jpg



Ideas on getting this to work on BSD? Or should I just submit a bug report? And what info to include on it? :\

Thanks.


----------



## SirDice (Mar 9, 2011)

You're trying to use a 64 bit linux executable. The linux ABI layer currently only supports i386 (32 bit).


----------



## aragon (Mar 9, 2011)

What Samsung phone do you have?  If it's an Android device, upgrade to Froyo - FreeBSD supports USB tethering natively with Froyo.


----------



## Gaming4JC (Mar 9, 2011)

@SirDice: Hmm, maybe I'll look around for the i386 version then and see if I can't get it to boot. I still have my doubts... 

@aragon: I have an android. 2.1- update 1. My phone doesn't have an "official" update to 2.2 update, though I might be able to upgrade it through other means as long as I don't brick it.

Tell me more about the native tether, do I just plug it in with USB Debug mode on and FreeBSD magically does it? :e


----------



## aragon (Mar 9, 2011)

Gaming4JC said:
			
		

> Tell me more about the native tether, do I just plug it in with USB Debug mode on and FreeBSD magically does it? :e


No need for USB debug mode.  Just set your phone into "Kies" mode and plug it in with umodem(4) loaded.  FreeBSD will detect it as a CDC serial device which you configure in ppp(8).


----------



## Gaming4JC (Mar 9, 2011)

Okay, thanks. 

So you don't think there will be any problems with the phone being detected as a modem? Some one on ##freebsd had mentioned if it was ugen 7 (it's ugen7.2) it may not function properly if at all due to lack of driver support. Which would probably mean umodem won't dectect it.

And last but not least, doesn't ppp usually dial a phone? Technically I can't dial 3G, so I assume you just run "ppp -auto".

Sorry for any newbishness, not used to BSD yet. :stud


----------



## SirDice (Mar 9, 2011)

Gaming4JC said:
			
		

> And last but not least, doesn't ppp usually dial a phone? Technically I can't dial 3G, so I assume you just run "ppp -auto".


Technically you are actually using it as a modem (it will respond to the traditional AT commands). Normally you need to "dial" a special number, usually *99#. Some phones also require an initialisation command to switch it to 3G before dialing. Most of the time this is something like 
	
	



```
AT+CGDCONT=1,"IP","internet"
```
The "internet" in that line refers to the APN profile that's used to connect the phone to the internet.


----------



## aragon (Mar 9, 2011)

Gaming4JC said:
			
		

> So you don't think there will be any problems with the phone being detected as a modem? Some one on ##freebsd had mentioned if it was ugen 7 (it's ugen7.2) it may not function properly if at all due to lack of driver support. Which would probably mean umodem won't dectect it.


Upgrading to Froyo changes the way the phone identifies to the USB host in such a way that umodem will detect it.  If you have a Galaxy S like me, it will work.  I can only assume other Samsung Android phones will be the same.

For the rest, what SirDice said.


----------



## frodo (Feb 15, 2015)

This may be too late but iI have some info. I'm in the same boat. Mobile stream just released a bsd FreeBSD binary for your Android phone/Easytether however it uses libusb.so.2 so if your bsd FreeBSD is 10.1 or greater it won't work. I contacted Mobile stream and they told me they would update the binary to use libusb.so.3 soon. I was going to try a symlink but iI can wait. I hope this helps anyone using their phone for internet.


----------



## diizzy (Feb 26, 2015)

...or just use wifi hotspot like (almost) everyone else?
You also have Bluetooth PAN but I have no idea if its supported in FreeBSD.
//Danne


----------



## kpa (Feb 26, 2015)

I've been able to tether my Motorola Android phone using just the urndis(4) driver. It will make the phone appear on the system as an Ethernet NIC so that you don't need to use any sort of modem stuff to get it working. The driver should be available in FreeBSD 9.3 and 10.1.


----------

