Monthly Archives: January 2014

Unity3D Web Player and Other Windows Plugins under Linux Browsers – Pipelight Project

Unity3D Web Player and Other Windows Plugins under Linux Browsers – Pipelight Project

Warning: When you see an option with –, please remember that it’s two hyphens (- and -), but WordPress makes them to be one dash! For example, –update.

Remember: When you are installing Pipelight, your browser should be closed. If not, you will have serious troubles with running the plugins. If you have still errors, just close your browser and install Pipelight again.

I could run Unity3D on Linux, but there’s a problem with Unity3D Web Player. Pipelight Project seems the best idea as to porting Windows Plugins to Linux browsers. It was started by FDS-Team from Germany.

http://fds-team.de/cms/index.html

Pipeline Project:

http://fds-team.de/cms/pipelight-installation.html

I tried with Unity3D Web Player in the past, but achieved nothing; however, there are people who were able to run it on Linux with use of Pipelight Project. FDS Team helped me, and Unity3D Web Player is running on my browser. You will be successful, too. Just follow the instructions:

Unity3D Web player on Linux

zypper ar –refresh http://download.opensuse.org/repositories/home:/rbos:/pipelight/<openSUSE version>/home:rbos:pipelight.repo

zypper ref

zypper install pipelight

<openSUSE version> – your openSUSE version. Packages are currently available for openSUSE_12.2, openSUSE_12.3 and openSUSE_Tumbleweed. Unfortunately, I use openSuse 13.1. So if you have the same problem, go to the website:

https://build.opensuse.org/package/show/home:rbos:pipelight/pipelight

But before you install the pieplight package, you should have some dependencies installed on your system:

wine-pipelight.ymp

mingw32-libgcc.ymp

You can download them from

http://software.opensuse.org/131/

Just write the package names you search.

Then, install the pipelight package:

pipelight-0.2.4.2-10.1.i586.rpm

from the repo:

https://build.opensuse.org/package/binaries/home:rbos:pipelight/pipelight?repository=openSUSE_13.1

The installation of the Windows plugins takes place when you start your browser the next time. However, you probably will need to install a User Agent Switcher (or User Agent Overrider) for some of the plugins so that they can work at all. In other words, sometimes, you should cheat websites that don’t support browsers installed on Linux. User Agent Switcher and User Agent Overrider can help you to do that. Sometimes, it’s troublesome, so seek information in the Internet.

I use User Agent Switcher for using Unity3D Web Player. User Agent Overrider doesn’t work for me. After having installed this extension in your browser, for Firefox, go to:

Tools -> Default User Agent -> Edit User Agent -> New

Description: Safari 534.55.3 (OS X 10_7_3 Intel)

User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/534.55.3 (KHTML, like Gecko) Version/5.1.3 Safari/534.53.10

All next lines empty

OK

Refresh the WWW page to use the new user agent and the plugin or just restart the browser. Remember, this user agent work well for Unity3D Web Player; for other Windows plugins, you probably have to change to other. To get more details, go to:

https://answers.launchpad.net/pipelight/+faq/2351

A full user agents list:

http://www.useragentstring.com/pages/useragentstring.php

Ok, so your pipeline is installed and works. You changed user agent to one that is welcome. All should work. Some of the Windows plugins will be installed automatically in your browser. But you have a control over them.

I need to test Unity3D Web Player. But there is a problem – the checksum of Unity3D has recently changed, and you have to update the checksums first:

poganin@linux-7tpy:~> sudo pipelight-plugin –update

Now, clear the plugin cache of your browser to be sure you will have no previous errors:

poganin@linux-7tpy:~> sudo pipelight-plugin –create-mozilla-plugins

Now, you are ready to install Unity3D Web Player plugin. Remember, you have to restart the browser to make the plugin work after enabling and to make the plugin clear out  after disabling.

To enable one of the plugins, run:

pipelight-plugin –enable the_plugin_name

for example:

poganin@linux-7tpy:~> sudo pipelight-plugin –enable unity3d

root’s password:

The following modules require a license confirmation before they can be enabled:

[*] Unity Web Player

By continuing the installation you agree that you’ve read and accepted the Web Player License Agreement:

http://unity3d.com/company/legal/webplayer-eula

To find out more click here:

http://unity3d.com/unity

Do you accept the 1 license(s) above? [Y/N] y

Plugin unity3d is now enabled

poganin@linux-7tpy:~>

To disable one of the plugins, run:

pipelight-plugin –disable the_plugin_name

for example:

poganin@linux-7tpy:~> sudo pipelight-plugin –disable unity3d

root’s password:

Plugin unity3d is now disabled

poganin@linux-7tpy:~>

More info at:

http://fds-team.de/cms/pipelight-installation.html#section_2

I hope you will be successful. Just try it out.

For people who use Pipelight (unity3D plugin) – Unity3D Web Player is often updated, and its checksum is changed. That’s why, you need to run a few commands every time. It’s really irritating. So I wrote the script. Copy it and paste to a new text file. Call it Pieplight. This file should be placed in your bin directory so that it can be on PATH. After Unity3D having updated, just run Pipelight in your console. All these commands will run, and Unity3D Web Player will be updated and running.

    #!/bin/bash

    #FDS-Team: Pipelight Project
    #Tomasz Zackiewicz, Pipelight.sh

    #update the checksum of Unity3D Web Player
    sudo pipelight-plugin --update
    #clear the plugin cache for Firefox
    sudo pipelight-plugin --create-mozilla-plugins
    #enabling Unity3D Web Player
    sudo pipelight-plugin --enable unity3d

It’s for Firefox; for other browsers, you probably shouldn’t use this command:

sudo pipelight-plugin –create-mozilla-plugins

Enjoy Unity3D games!

libGL error: unable to load driver: i965_dri.so – a Mesa 3D graphics library error

libGL error: unable to load driver: i965_dri.so – a Mesa 3D graphics library error

When you, for example, updated your Mesa 3D graphics library and you see such an error after having used the

linux-7tpy:~ # LIBGL_DEBUG=verbose glxinfo

command, you should know that’s something went wrong. Your DRI (Direct Rendering Infrastructure) driver doesn’t work. Consequently, you won’t start any game or other software that needs 3D acceleration.

I use openSuse 13.1 (32 bit) and Intel Corporation Mobile GM965/GL960 graphics card. I upgraded my Mesa 9.2.3 to Mesa 10.0.2. This wasn’t supported by the official repos; I just installed RPM from the X11:XOrg repo. I knew the there would be problems, but I did that. My Unity3D on PlayOnLinux and Wine was crashed. The 3D driver didn’t work. I had to fix it.

There are many threads on the topic in the Internet; however, none was good for me. I read the info I got form LIBGL_DEBUG=verbose glxinfo. And I found the solution – my driver was in a wrong directory!

My all DRI drivers were put after having been installed into:

/usr/lib/dri

Among them, there was i965_dri.so that I needed for my graphic card. I just copied this driver into:

/usr/lib/dri/updates

I ran the command:

linux-7tpy:~ # cp /usr/lib/dri/i965_dri.so /usr/lib/dri/updates/i965_dri.so

And when I ran glxinfo again, the error disappeared. To check if everything is OK, I also ran

linux-7tpy:~ # glxinfo | grep render
direct rendering: Yes
GLX_MESA_multithread_makecurrent, GLX_MESA_query_renderer,
GLX_MESA_multithread_makecurrent, GLX_MESA_query_renderer,
OpenGL renderer string: Mesa DRI Intel(R) 965GM x86/MMX/SSE2
GL_NV_conditional_render, GL_NV_depth_clamp, GL_NV_light_max_exponent,

Two things are important in this output:

direct rendering should be “yes

OpenGL renderer string: Mesa DRI Intel(R) 965GM x86/MMX/SSE2” – my driver is running!

Read more at:

http://dri.freedesktop.org/wiki/glxinfo/

Now, when I start Unity3D, it works great.

Command Line Wireless Tools on Linux

Command Line Wireless Tools on Linux

When you need check your wireless interface, you are able to use wireless tools. To know which tools you have installed on your operating system, just run the command

linux-7tpy:/home/poganin # compgen -abc -A function | grep iw
iwlist
iwgetid
iw
iwconfig
iwevent
iwpriv
iwspy
fliwheel
linux-7tpy:/home/poganin #
fliwheel has nothing to do with Wi-FI, so forget it.

Let’s start with iwconfig that displays current settings for wireless cards on your system. It’s a similar tool to ifconfig but used for Wi-Fi interfaces. It uses the statistics from /proc/net/wireless. In the beginning, it’s good to know the version:

linux-7tpy:/home/poganin # iwconfig –version
iwconfig  Wireless-Tools version 30
          Compatible with Wireless Extension v11 to v22.

Kernel    Currently compiled with Wireless Extension v22.

wlan0     Recommend Wireless Extension v21 or later,
          Currently compiled with Wireless Extension v22.

linux-7tpy:/home/poganin #

Wireless Extension (WE) are special extension for Linux kernels. Now, it’s not being under development because this idea is outdated but still used. In the man page for iwconfig, we can read.

“All  these parameters and statistics are device dependent. Each driver
will provide only some of them depending on hardware support, and  the
range  of  values  may  change.  Please  refer to the man page of each
device for details.”

So be aware that the output on your console may be different or even you will see nothing.

iwconfig

This shows and  configures our wireless network interfaces.

Let’s start:

linux-7tpy:/home/poganin # iwconfig
wlan0     IEEE 802.11bg  ESSID:”XXXXXXXXX” 
          Mode:Managed  Frequency:2.412 GHz  Access Point: XXXXXXXXXXXXX  
          Bit Rate=48 Mb/s   Tx-Power=20 dBm  
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Encryption key:on
          Power Management:on
          Link Quality=61/70  Signal level=-49 dBm 
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:1   Missed beacon:0

lo        no wireless extensions.

eth0      no wireless extensions.

linux-7tpy:/home/poganin #

So the output shows us that we have one wireless interface, and there are two interfaces that aren’t wireless. We are interested in wlan0.

Also, we can run:

linux-7tpy:/home/poganin # iwconfig wlan0
wlan0     IEEE 802.11bg  ESSID:”XXXXXXXXX” 
          Mode:Managed  Frequency:2.412 GHz  Access Point: XXXXXXXXXXXXX  
          Bit Rate=48 Mb/s   Tx-Power=20 dBm  
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Encryption key:on
          Power Management:on
          Link Quality=61/70  Signal level=-49 dBm 
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:1   Missed beacon:0

linux-7tpy:/home/poganin #

However, we have got no more information. To get more, just use other commands. With using iwconfig, we can not only show the information, but also manipulate them.Refer to the man page to get more info. The synopsis is:

iwconfig interface parameter value

For example:

iwconfig wlan0 mode Managed

With this command, we will set our wlan0 interface to manged mode. In other words, our computer connects to a network composed of many Access Points with roaming.

iwlist

This showing lists of parameters your wireless card supports.

linux-7tpy:/home/poganin # iwlist
Usage: iwlist [interface] scanning [essid NNN] [last]
              [interface] frequency
              [interface] channel
              [interface] bitrate
              [interface] rate
              [interface] encryption
              [interface] keys
              [interface] power
              [interface] txpower
              [interface] retry
              [interface] ap
              [interface] accesspoints
              [interface] peers
              [interface] event
              [interface] auth
              [interface] wpakeys
              [interface] genie
              [interface] modulation
linux-7tpy:/home/poganin #

So let’s use the scanning parameter:

linux-7tpy:/home/poganin # iwlist wlan0 scanning
wlan0     Scan completed :
          Cell 01 – Address: XXXXXXXXXXXXXXXXX
                    Channel:1
                    Frequency:2.412 GHz (Channel 1)
                    Quality=58/70  Signal level=-52 dBm  
                    Encryption key:on
                    ESSID:”XXXXXXXX”
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
                              9 Mb/s; 12 Mb/s; 18 Mb/s
                    Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s
                    Mode:Master
                    Extra:tsf=XXXXXXXXXXXXXXXX
                    Extra: Last beacon: 5056ms ago
                    IE: Unknown: XXXXXXXXXXXXXXXXXXXX
                    IE: Unknown: XXXXXXXXXXXXXXXXXXXX
                    IE: Unknown: XXXXXXXX
                    IE: Unknown: XXXXXXXX
                    IE: Unknown: XXXXXXXXXXXXXXXXXXXXXX
                    IE: WPA Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (1) : TKIP
                        Authentication Suites (1) : PSK
                    IE: Unknown: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

linux-7tpy:/home/poganin #
A lot of useful information.

iwspy

This shows us the quality-of-link information from specific nodes.

linux-7tpy:/home/poganin # iwspy
wlan0     Interface doesn’t support wireless statistic collection

lo        Interface doesn’t support wireless statistic collection

eth0      Interface doesn’t support wireless statistic collection

linux-7tpy:/home/poganin #

Alas, we can’t get the information form our wireless interface. No support! but your interface can support that, so try it out.

iwpriv

This configures optionals (private) parameters of our wireless interface
linux-7tpy:/home/poganin # iwpriv
wlan0     no private ioctls.

lo        no private ioctls.

eth0      no private ioctls.

linux-7tpy:/home/poganin #
Alas, we have no input/output control for our wireless interface because it’s an outdated tool and my openSuse is a modern operating system.

iwgetid

This shows ESSID, NWID or AP/Cell Address of our wireless network

linux-7tpy:/home/poganin # iwgetid
wlan0     ESSID:”XXXXXXXX”
linux-7tpy:/home/poganin #

iwevent

Display Wireless Events generated by drivers and setting changes.

linux-7tpy:/home/poganin # iwevent
Waiting for Wireless Events from interfaces…
14:47:02.119793   wlan0    Scan request completed
14:49:02.123418   wlan0    Scan request completed
^C
linux-7tpy:/home/poganin #
We can see all events. In this case, we got two evens Scan request completed. They are the results of the scan because of running iwlist (iwlist wlan0 scanning).
We can interrupt the command by using Ctrl+C.

At the end, we can also check the /proc/net/wireless file.

linux-7tpy:/home/poganin # cat /proc/net/wireless

Inter- |    sta-  | Quality             |  Discarded packets             | Missed | WE

face   |   tus    | link level noise | nwid crypt frag retry misc | beacon | 22

wlan0:   0000      65. -45. -256         0        0       0      0      2           0

linux-7tpy:/home/poganin #

Many details.

I can’t start Samba on Linux – it’s blocked by Apparmor

I can’t start Samba on Linux – it’s blocked by Apparmor

You can’t start Samba on Linux, and you have Samba installed on your system. It’s because of Apparmor!

First, let’s look at our Samba installation.

linux-7tpy:/home/poganin # smbstatus

Samba version 4.1.3-3.12.1-3127-SUSE-oS13.1-i386

PID Username Group Machine

——————————————————————-

Service pid machine Connected at

——————————————————-

No locked files

You can’t even start nmb and smb daemons manually. They failed to be active, and you see errors. They are blocked by Apparmor.

Let’s configure Apparmor to allow Samba daemons to run (it’s in Polish, sorry, but you will get this information in your language). We are going to use the logprof command. It’s an utility program for managing AppArmor security profiles. Remember, write on Console “A” for Allow to allow those daemons start. And then, at the end, write “S” for Save to save the Apparmor profile.

linux-7tpy:/home/poganin # logprof

Odczytywanie wpisów dziennika z /var/log/messages.

Aktualizacja profilów w /etc/apparmor.d.

Zmiany w trybie wymuszania:

Profil: /usr/sbin/nmbd

Ścieżka: /var/run/samba/

Tryb: w

Poziom: nieznany

[1 – /var/run/samba/]

(A)llow / [(D)eny] / (G)lob / Glob w/(E)xt / (N)ew / Abo(r)t / (F)inish / (O)pts

Dodawanie /var/run/samba/ w do profilu.

Profil: /usr/sbin/smbd

Ścieżka: /var/run/samba/

Tryb: w

Poziom: nieznany

[1 – /var/run/samba/]

(A)llow / [(D)eny] / (G)lob / Glob w/(E)xt / (N)ew / Abo(r)t / (F)inish / (O)pts

Dodawanie /var/run/samba/ w do profilu.

= Changed Local Profiles =

Następujące profile lokalne zostały zmienione. Czy zapisać je?

[1 – /usr/sbin/nmbd]

2 – /usr/sbin/smbd

(S)ave Changes / [(V)iew Changes] / Abo(r)t

Zapisywanie zaktualizowanego profilu dla /usr/sbin/nmbd.

Zapisywanie zaktualizowanego profilu dla /usr/sbin/smbd.

linux-7tpy:/home/poganin #

AppArmor security profiles have been updated. Now, Apparmor will let the Samba daemons run. Just restart the system and try it out.

I hope it’s clear!

List All Commands in Bash

List All Commands in Bash

Sometimes, we wish to see all commands in Bash. There are many tricks to do that, but they are rather complicated. However, we can do that in a simple way. We can use compgen that is a command for generating possible completion matches for word. But we can use it to list all commands in Bash. Let’s do that:

linux-7tpy:/home/poganin # compgen -abc -A function

But there are a lot of commands, so better use this way:

linux-7tpy:/home/poganin # compgen -abc -A function | less

Thousands commands to use in Bash. 8319 in my operating system. Let’s look at the options:

-a – aliases

-b – builtins

-c – commands

-A function – shell functions

So you don have to list all of them. For example, you can see all aliases by running:

linux-7tpy:/home/poganin # compgen -a
+

..

beep
cd..
dir
egrep
fgrep
grep
l
la
ll
ls
ls-l
md
o
rd
rehash
unmount
you
It’s a very useful command, isn’t it?

If we wish to find one in these all commands, just run:

linux-7tpy:/home/poganin # compgen -abc -A function | grep wc
wc
b43-fwcutter
showchar
wcgrep
showconsolefont
hwclock
showconsole
pwconv
hwclock
iwconfig
pwck
showconsolefont
wc
b43-fwcutter
showchar
wcgrep
showconsolefont
We have got all commands that can be associated with our wc.

We can also sort our commands:

linux-7tpy:/home/poganin # compgen -abc -A function | sort | less

Now our commands are sorted in a fine way.

Orphaned Main Menu Entries in KDE

Orphaned Main Menu Entries in KDE

Sometimes, when you uninstall programs from your Linux, you see that some things remain in your KDE menu. There’s no software, but you see its remnants.

Right click on the Start Button (Main Menu Button) and choose the item for modifying programs from the context menu. You will get the window for editing programs in KDE menu. In the list, search for the program you have uninstalled and left some remnants. Right click and choose Remove.

Save new configuration and close the window.

Maybe it won’t be enough to get rid of remnants. So run the Console, be the root, then for openSuse go to the

/usr/share/applications

directory using the cd command. Here, you can find all applications you have installed on your operating system. I had troubles with TeamViewer 8 that was still in my menu after having unistalled. Instead, I wished to install TeamViewer 9. So I run:

linux-7tpy:/usr/share/applications # ls

to get all items in the applications directory. I found

teamviewer-teamviewer8.desktop

Then,  I run:

linux-7tpy:/usr/share/applications # rm teamviewer-teamviewer8.desktop

It removed the item.

If you still see the orphaned item in your KDE menu, be a normal user and go to the

.config

subdirectory in your home directory.

poganin@linux-7tpy:~> cd .config
poganin@linux-7tpy:~/.config> ls
akonadi              gtk-2.0        MonoDevelop-2.8  tracker
autostart            gtk-3.0        oxygen-gtk       Trolltech.conf
BitDefender-scanner  gtk-qt-engine  pulse            unity3d
bleachbit            ibus           q4wine           user-dirs.dirs
blender              ilcontrast     qtcurve          user-dirs.locale
dconf                kde.org        Skype            vlc
enchant              libreoffice    stetic           xbuild
fontconfig           menus          synaptiks
goa-1.0              midori         teamviewer8
google-chrome        MonoDevelop    teamviewer9
poganin@linux-7tpy:~/.config>

You see the teamviewer8 directory. Remove it with option -r to do that recursively.

poganin@linux-7tpy:~/.config> rm -r teamviewer8

I restarted the operating system to be sure everything will be working well. The item for TeamViewer 8 disappeared from the KDE menu. There was TeamViewer 9 only. I made a shortcut on the desktop, and started TeamViewer 9. It worked.