# [PC-BSD] Google Hangout on PC-BSD



## btomza (Jun 17, 2013)

Hi *a*ll,

I'm using PC-BSD since some months ago (9.1 release), so I'm not an expert. Probably my comments are not very good... anyway. I know, this forum is for FreeBSD not for PC-BSD, but I've had good answers here, also I read good answer here, so for that I want to ask it here. (Please, If you think that it ins't good feel free to remove my comment) I was trying to configure Hangout into PC-BSD (FreeBSD), using Google Chrome. 

The first problem was try to install GoogleTalkPlugin. When you go to https://www.google.com/tools/dlpage/hangoutplugin the file to download will be *.exe, of course this isn't the right file. So, you can use Google Chrome and change the "user-agent" to simulate a Linux, after that you can download an RPM file with the plugin.

If you try to execute the plugin you will see some errors. It's because it needs Glibc 2.11 and GLIBCXX_3.4.11.

The Linux compatibility for Linux is supported over Fedora 10 (it's too old). So, to update this files I did:

Make a backup of /compat/linux/*.
Go to: http://archives.fedoraproject.org/pub/archive/fedora/linux/releases/12/Fedora/i386/os/Packages/.
Download two RPMs: glibc-2.11-2.i686.rpm and libstdc++-4.4.2-7.fc12.i686.rpm (probably you want to download other as: glibc-common-2.11-2.i686.rpm and libgcc-4.4.2-7.fc12.i686.rpm).
Extract: glibc-2.11-2.i686.rpm and libstdc++-4.4.2-7.fc12.i686.rpm and copy all the files into /compat/linux/*.(DO NOT COPY THE FILES: /etc/lib/libcrypt.so.1 and /etc/lib/libresolv.so.2)
Change the OS version (`# sysctl compat.linux.osrelease=2.6.18`).
Extract the files into the RPM GoogleTalkPlugin and copy the files into /compat/linux (they will be: /compat/linux/opt/google/talkplugin/*).
Make symbolic links:
/home//.mozilla/plugins/libgoogletalkremoting.so/compat/linux/opt/google/talkplugin/libgoogletalkremoting.so
/home//.mozilla/plugins/libnpgoogletalk.so/compat/linux/opt/google/talkplugin/libnpgoogletalk.so
/home//.mozilla/plugins/libnpgtpo3dautoplugin.so/compat/linux/opt/google/talkplugin/libnpgtpo3dautoplugin.so
/home//.mozilla/plugins/libnpo1d.so/compat/linux/opt/google/talkplugin/libnpo1d.so
Update wrappers: run `nspluginwrapper -a -v -i` (http://forums.freebsd.org/showthread.php?t=12630).
[*]I made an extra step (probably it isn't necessary):
http://pl.it-usenet.org/thread/11146/599/./"> -> /compat/linux/opt/google/talkplugin/libnpo1d.so
Update wrappers: run `nspluginwrapper -a -v -i` (http://forums.freebsd.org/showthread.php?t=12630).
[*]I made an extra step (probably it isn't necessary):
http://pl.it-usenet.org/thread/11146/599/./"> -> /compat/linux/opt/google/talkplugin/libnpgtpo3dautoplugin.so
/home//.mozilla/plugins/libnpo1d.so/compat/linux/opt/google/talkplugin/libnpo1d.so
Update wrappers: run `nspluginwrapper -a -v -i` (http://forums.freebsd.org/showthread.php?t=12630).
[*]I made an extra step (probably it isn't necessary):
http://pl.it-usenet.org/thread/11146/599/./"> -> /compat/linux/opt/google/talkplugin/libnpo1d.so
Update wrappers: run `nspluginwrapper -a -v -i` (http://forums.freebsd.org/showthread.php?t=12630).
[*]I made an extra step (probably it isn't necessary):
http://pl.it-usenet.org/thread/11146/599/./"> -> /compat/linux/opt/google/talkplugin/libnpgoogletalk.so
/home//.mozilla/plugins/libnpgtpo3dautoplugin.so/compat/linux/opt/google/talkplugin/libnpgtpo3dautoplugin.so
/home//.mozilla/plugins/libnpo1d.so/compat/linux/opt/google/talkplugin/libnpo1d.so
Update wrappers: run `nspluginwrapper -a -v -i` (http://forums.freebsd.org/showthread.php?t=12630).
[*]I made an extra step (probably it isn't necessary):
http://pl.it-usenet.org/thread/11146/599/./"> -> /compat/linux/opt/google/talkplugin/libnpo1d.so
Update wrappers: run `nspluginwrapper -a -v -i` (http://forums.freebsd.org/showthread.php?t=12630).
[*]I made an extra step (probably it isn't necessary):
http://pl.it-usenet.org/thread/11146/599/./"> -> /compat/linux/opt/google/talkplugin/libnpgtpo3dautoplugin.so
/home//.mozilla/plugins/libnpo1d.so/compat/linux/opt/google/talkplugin/libnpo1d.so
Update wrappers: run `nspluginwrapper -a -v -i` (http://forums.freebsd.org/showthread.php?t=12630).
[*]I made an extra step (probably it isn't necessary):
http://pl.it-usenet.org/thread/11146/599/./"> -> /compat/linux/opt/google/talkplugin/libnpo1d.so
Update wrappers: run `nspluginwrapper -a -v -i` (http://forums.freebsd.org/showthread.php?t=12630).
[*]I made an extra step (probably it isn't necessary):
http://pl.it-usenet.org/thread/11146/599/./"> -> /compat/linux/opt/google/talkplugin/libgoogletalkremoting.so
/home//.mozilla/plugins/libnpgoogletalk.so/compat/linux/opt/google/talkplugin/libnpgoogletalk.so
/home//.mozilla/plugins/libnpgtpo3dautoplugin.so/compat/linux/opt/google/talkplugin/libnpgtpo3dautoplugin.so
/home//.mozilla/plugins/libnpo1d.so/compat/linux/opt/google/talkplugin/libnpo1d.so
Update wrappers: run `nspluginwrapper -a -v -i` (http://forums.freebsd.org/showthread.php?t=12630).
[*]I made an extra step (probably it isn't necessary):
http://pl.it-usenet.org/thread/11146/599/./"> -> /compat/linux/opt/google/talkplugin/libnpo1d.so
Update wrappers: run `nspluginwrapper -a -v -i` (http://forums.freebsd.org/showthread.php?t=12630).
[*]I made an extra step (probably it isn't necessary):
http://pl.it-usenet.org/thread/11146/599/./"> -> /compat/linux/opt/google/talkplugin/libnpgtpo3dautoplugin.so
/home//.mozilla/plugins/libnpo1d.so/compat/linux/opt/google/talkplugin/libnpo1d.so
Update wrappers: run `nspluginwrapper -a -v -i` (http://forums.freebsd.org/showthread.php?t=12630).
[*]I made an extra step (probably it isn't necessary):
http://pl.it-usenet.org/thread/11146/599/./"> -> /compat/linux/opt/google/talkplugin/libnpo1d.so
Update wrappers: run `nspluginwrapper -a -v -i` (http://forums.freebsd.org/showthread.php?t=12630).
[*]I made an extra step (probably it isn't necessary):
http://pl.it-usenet.org/thread/11146/599/./"> -> /compat/linux/opt/google/talkplugin/libnpgoogletalk.so
/home//.mozilla/plugins/libnpgtpo3dautoplugin.so/compat/linux/opt/google/talkplugin/libnpgtpo3dautoplugin.so
/home//.mozilla/plugins/libnpo1d.so/compat/linux/opt/google/talkplugin/libnpo1d.so
Update wrappers: run `nspluginwrapper -a -v -i` (http://forums.freebsd.org/showthread.php?t=12630).
[*]I made an extra step (probably it isn't necessary):
http://pl.it-usenet.org/thread/11146/599/./"> -> /compat/linux/opt/google/talkplugin/libnpo1d.so
Update wrappers: run `nspluginwrapper -a -v -i` (http://forums.freebsd.org/showthread.php?t=12630).
[*]I made an extra step (probably it isn't necessary):
http://pl.it-usenet.org/thread/11146/599/./"> -> /compat/linux/opt/google/talkplugin/libnpgtpo3dautoplugin.so
/home//.mozilla/plugins/libnpo1d.so/compat/linux/opt/google/talkplugin/libnpo1d.so
Update wrappers: run `nspluginwrapper -a -v -i` (http://forums.freebsd.org/showthread.php?t=12630).
[*]I made an extra step (probably it isn't necessary):
http://pl.it-usenet.org/thread/11146/599/./"> -> /compat/linux/opt/google/talkplugin/libnpo1d.so
Update wrappers: run `nspluginwrapper -a -v -i` (http://forums.freebsd.org/showthread.php?t=12630).
[*]I made an extra step (probably it isn't necessary):
http://pl.it-usenet.org/thread/11146/599/


		Code:
	

`(process:35112): Gtk-WARNING **: Locale not supported by C library.
        Using the fallback 'C' locale.
No bp log location saved, using default.
[000] Browser XEmbed support present: 1
[000] Browser toolkit is Gtk2.
[000] Using Gtk2 toolkit

(npviewer.bin:35112): GLib-CRITICAL **: g_hash_table_insert_internal: assertion `hash_table != NULL' failed

(npviewer.bin:35112): GLib-WARNING **: getpwuid_r(): failed due to unknown user id (1001)

(npviewer.bin:35112): Gtk-WARNING **: Unable to locate theme engine in module_path: "qtcurve",
[000] Starting client channel.
[000] Warning(clientchannel.cc:436): Unreadable or no port file.  Could not initiate GoogleTalkPlugin connection
[000] Warning(clientchannel.cc:411): Could not initiate GoogleTalkPlugin connection
[000] GoogleTalkPlugin not running. Starting new process...
[000] Warning(pluginutils.cc:251): Failed to get GoogleTalkPlugin path. Trying default.
[000] Started GoogleTalkPlugin, path=/opt/google/talkplugin/GoogleTalkPlugin
[000] Waiting for GoogleTalkPlugin to start...
STARTING GoogleTalkPlugin-bin with ALSA_CONFIG_PATH=/compat/linux/opt/google/talkplugin/GoogleTalkPlugin.conf
sh: lsb_release: command not found

(npviewer.bin:35112): GLib-CRITICAL **: g_hash_table_insert_internal: assertion `hash_table != NULL' failed
[001] Starting client channel.
[001] Read port file, port=54407
[001] Initiated connection to GoogleTalkPlugin
[001] Socket connection established
[001] ScheduleOnlineCheck: Online check in 5000ms
[001] Attempting to connect to GoogleTalkPlugin...
[001] Read port file, port=54407
[001] Initiated connection to GoogleTalkPlugin
[001] Got cookie response, socket is authorized
[001] AUTHORIZED; socket handshake complete
[001] F->C: ["fs",{"pr":"a"}]
[001] F->C: ["mf","mf3.19","3.19.1.0",2,{"audioCodecs":[[103,"ISAC",1,0,16000],......[006] HandleOnlineCheck: Starting check
[006] HandleOnlineCheck: OK; current state: 3`


----------



## sossego (Jun 19, 2013)

If you use Firefox with Pederick's UserAgentSwitcher being set to a Linux useragent, you can download the talk plugin from Google as an RPM file.

I received a permission denied when trying the `ln -s GOOGLE_TALK_PATH`.


----------



## btomza (Jun 20, 2013)

Hi sossego,

Weird about ln. I run:
`/usr/home/[user]/.mozilla/plugins% ln -s /compat/linux/opt/google/talkplugin/libgoogletalkremoting.so`
`/usr/home/[user]/.mozilla/plugins% ln -s /compat/linux/opt/google/talkplugin/libnpgoogletalk.so`
`/usr/home/[user]/.mozilla/plugins% ln -s /compat/linux/opt/google/talkplugin/libnpgtpo3dautoplugin.so`
`/usr/home/[user]/.mozilla/plugins% ln -s /compat/linux/opt/google/talkplugin/libnpo1d.so`

I didn't have _a_ problem. Anyway, you can try as root, and after change the owner if it's necessary.

Thanks,
Alberto


----------



## sossego (Jun 20, 2013)

The  $USER/.mozilla/firefox/$DIRECTORY/plugins folder does not exist in either my privileged or unprivileged users directories. I'm assuming that both need to be created or will that cause a possible problem?

Okay. Folder was created and `ln -s $STUFFS` was done.

De-edited: No reaction in Firefox. The dialpad comes up and does not dial.


----------



## btomza (Jun 23, 2013)

Hi @sosssego,

The folder is /.mozilla/plugins/.mozilla/firefox/plugins.

Thanks,
Alberto./"> not /.mozilla/firefox/plugins.

Thanks,
Alberto


----------



## btomza (Jun 23, 2013)

I was looking a bit more around that and we found new things:

GoogleTalkPlugins makes log into: /home//.config/google-googletalkplugin. *H*ere you can see the following files:

gtbplugin.log
o1dplugin.log
gtalkplugin-c8420237871200291905.log.bz2  (of course the numbers change): extract the content, it has a log.

In the last log file I see other errors, the main are:

```
[006] ### Start [Sat Jun 22 21:12:45 2013] ###
[006] Current time is 2013-06-23 01:12:51.945 UTC
[006] Google Talk Plugin Version: 3.19.1.0
[006] Process ID: 65284
[006] Error(linux.cc:260): Incorrect number of lines in stream
[006] Linux distribution: 
[006] Linux kernel: Linux 2.6.18 FreeBSD 9.1-RELEASE #2: Tue Nov 27 03:45:16 UTC 2012 i686
[006] Cpu: 15.4.3, x2, 0Mhz, 6120MB
[006] Computer model: Not available
[006] Gpu: device-name='', description='', vendor-id=0, device-id=0, driver='', driver-version=
[006] Error(network.cc:254): getifaddrs failed to gather interface data: -1 : [0x00000061] Address family not supported by protocol
[006] NetworkManager detected 0 networks:
[006] Initiating new session c8420237871200291905 with .....................................
[006] Setting max video codec H264-SVC/320x180x30 num_threads=-1 cpu_profile=1
[006] Sending ..........................................................
[006] WebRtcVoiceEngine::Init
[006] Warning(webrtcvideoengine.cc:1439): webrtc: Can't load libpulse.so.0 : libasyncns.so.0: cannot open shared object file: No such file or directory
[006] Error(webrtcvideoengine.cc:1439): webrtc:   failed to load symbol table
[006] Warning(webrtcvideoengine.cc:1439): webrtc: Linux PulseAudio is *not* supported => ALSA APIs will be utilized instead
[006] Error(webrtcvideoengine.cc:1439): webrtc: GetDevicesInfo - Could not find device name or numbers
[006] Error(webrtcvideoengine.cc:1439): webrtc:      snd_mixer_attach(_outputMixerHandle, ) error: No such file or directory
[006] Error(webrtcvideoengine.cc:1439): webrtc: GetDevicesInfo - Could not find device name or numbers
[006] Error(webrtcvideoengine.cc:1439): webrtc:      snd_mixer_attach(_outputMixerHandle, ) error: No such file or directory
[006] Error(webrtcvideoengine.cc:1439): webrtc: GetDevicesInfo - Could not find device name or numbers
[006] Error(webrtcvideoengine.cc:1439): webrtc:      snd_mixer_attach(_inputMixerHandle, ) error: No such file or directory
[006] Error(webrtcvideoengine.cc:1439): webrtc: GetDevicesInfo - Could not find device name or numbers
[006] Error(webrtcvideoengine.cc:1439): webrtc:      snd_mixer_attach(_inputMixerHandle, ) error: No such file or directory
[006] Error(webrtcvideoengine.cc:1439): webrtc: GetDevicesInfo - Could not find device name or numbers
[006] Error(webrtcvideoengine.cc:1439): webrtc:      snd_mixer_attach(_outputMixerHandle, ) error: No such file or directory
[006] Warning(webrtcvideoengine.cc:1439): webrtc:   InitSpeaker() failed
[006] Error(webrtcvideoengine.cc:1439): webrtc: GetDevicesInfo - Could not find device name or numbers
[006] Error(webrtcvideoengine.cc:1439): webrtc:      unable to open playback device: No such file or directory (-2)
[006] Error(webrtcvideoengine.cc:1439): webrtc: GetDevicesInfo - Could not find device name or numbers
[006] Error(webrtcvideoengine.cc:1439): webrtc:      snd_mixer_attach(_inputMixerHandle, ) error: No such file or directory
[006] Warning(webrtcvideoengine.cc:1439): webrtc:   InitMicrophone() failed
[006] Error(webrtcvideoengine.cc:1439): webrtc: GetDevicesInfo - Could not find device name or numbers
[006] Error(webrtcvideoengine.cc:1439): webrtc:     unable to open record device: No such file or directory
....
....
....
```
The last error messages could be seen into these files:

http://webrtc.googlecode.com/svn-hi...ource/linux/audio_mixer_manager_alsa_linux.cc
http://webrtc.googlecode.com/svn-hi.../main/source/linux/audio_device_alsa_linux.cc
I wanted to enable a complete log, but I couldn't. I did these steps: http://support.google.com/a/bin/answer.py?hl=en&hlrm=en&answer=2978955 (I've installed GNUStep ports, to make that, but it's the same).

Anyway, from the error messages and seeing the source file, I'm guessing that maybe it won't be fixed easily.

Thanks,
Alberto./">*.* *H*ere you can see the following files:

gtbplugin.log
o1dplugin.log
gtalkplugin-c8420237871200291905.log.bz2  (of course the numbers change): extract the content, it has a log.

In the last log file I see other errors, the main are:

```
[006] ### Start [Sat Jun 22 21:12:45 2013] ###
[006] Current time is 2013-06-23 01:12:51.945 UTC
[006] Google Talk Plugin Version: 3.19.1.0
[006] Process ID: 65284
[006] Error(linux.cc:260): Incorrect number of lines in stream
[006] Linux distribution: 
[006] Linux kernel: Linux 2.6.18 FreeBSD 9.1-RELEASE #2: Tue Nov 27 03:45:16 UTC 2012 i686
[006] Cpu: 15.4.3, x2, 0Mhz, 6120MB
[006] Computer model: Not available
[006] Gpu: device-name='', description='', vendor-id=0, device-id=0, driver='', driver-version=
[006] Error(network.cc:254): getifaddrs failed to gather interface data: -1 : [0x00000061] Address family not supported by protocol
[006] NetworkManager detected 0 networks:
[006] Initiating new session c8420237871200291905 with .....................................
[006] Setting max video codec H264-SVC/320x180x30 num_threads=-1 cpu_profile=1
[006] Sending ..........................................................
[006] WebRtcVoiceEngine::Init
[006] Warning(webrtcvideoengine.cc:1439): webrtc: Can't load libpulse.so.0 : libasyncns.so.0: cannot open shared object file: No such file or directory
[006] Error(webrtcvideoengine.cc:1439): webrtc:   failed to load symbol table
[006] Warning(webrtcvideoengine.cc:1439): webrtc: Linux PulseAudio is *not* supported => ALSA APIs will be utilized instead
[006] Error(webrtcvideoengine.cc:1439): webrtc: GetDevicesInfo - Could not find device name or numbers
[006] Error(webrtcvideoengine.cc:1439): webrtc:      snd_mixer_attach(_outputMixerHandle, ) error: No such file or directory
[006] Error(webrtcvideoengine.cc:1439): webrtc: GetDevicesInfo - Could not find device name or numbers
[006] Error(webrtcvideoengine.cc:1439): webrtc:      snd_mixer_attach(_outputMixerHandle, ) error: No such file or directory
[006] Error(webrtcvideoengine.cc:1439): webrtc: GetDevicesInfo - Could not find device name or numbers
[006] Error(webrtcvideoengine.cc:1439): webrtc:      snd_mixer_attach(_inputMixerHandle, ) error: No such file or directory
[006] Error(webrtcvideoengine.cc:1439): webrtc: GetDevicesInfo - Could not find device name or numbers
[006] Error(webrtcvideoengine.cc:1439): webrtc:      snd_mixer_attach(_inputMixerHandle, ) error: No such file or directory
[006] Error(webrtcvideoengine.cc:1439): webrtc: GetDevicesInfo - Could not find device name or numbers
[006] Error(webrtcvideoengine.cc:1439): webrtc:      snd_mixer_attach(_outputMixerHandle, ) error: No such file or directory
[006] Warning(webrtcvideoengine.cc:1439): webrtc:   InitSpeaker() failed
[006] Error(webrtcvideoengine.cc:1439): webrtc: GetDevicesInfo - Could not find device name or numbers
[006] Error(webrtcvideoengine.cc:1439): webrtc:      unable to open playback device: No such file or directory (-2)
[006] Error(webrtcvideoengine.cc:1439): webrtc: GetDevicesInfo - Could not find device name or numbers
[006] Error(webrtcvideoengine.cc:1439): webrtc:      snd_mixer_attach(_inputMixerHandle, ) error: No such file or directory
[006] Warning(webrtcvideoengine.cc:1439): webrtc:   InitMicrophone() failed
[006] Error(webrtcvideoengine.cc:1439): webrtc: GetDevicesInfo - Could not find device name or numbers
[006] Error(webrtcvideoengine.cc:1439): webrtc:     unable to open record device: No such file or directory
....
....
....
```
The last error messages could be seen into these files:

http://webrtc.googlecode.com/svn-hi...ource/linux/audio_mixer_manager_alsa_linux.cc
http://webrtc.googlecode.com/svn-hi.../main/source/linux/audio_device_alsa_linux.cc
I wanted to enable a complete log, but I couldn't. I did these steps: http://support.google.com/a/bin/answer.py?hl=en&hlrm=en&answer=2978955 (I've installed GNUStep ports, to make that, but it's the same).

Anyway, from the error messages and seeing the source file, I'm guessing that maybe it won't be fixed easily.

Thanks,
Alberto


----------

