[Ubuntu Maverick] Enable Wireshark capturing for non-root user

Monday, January 10, 2011
3 意見
When you tried to launch the wireshark capturing, you may encounter a problem: there's no network interfaces available for capturing. This is because the executable(/usr/bin/dumpcap) which is doing the indeed capturing job needs permission of root. Fortunately, I found the solution at wireshark wiki:CapturePrivileges, and I did some modification due to security concern. And I am going to keep a memo here in case someday someone may need this :-)
$sudo useradd -U -M -s /bin/false wireshark
$sudo chgrp wireshark /usr/bin/dumpcap
$sudo chmod 754 /usr/bin/dumpcap
$sudo setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/bin/dumpcap
$sudo gpasswd -a [username] wireshark

logout & login, and you're done!
p.s.
[1]. useradd: -U means "Create a group with the same name as the user, and add the user to this group."
[2]. useradd: -M means "Do no create the users home directory."
[3]. useradd: -s /bin/false means "Do no give the user a login shell."
[4]. chgrp: Change the group of each FILE to GROUP.

[Ubuntu Maverick] JDK5 Installation/Setup for building Android in x64 architecture

Friday, January 7, 2011
2 意見
Sun-JDK5 is one of those prerequisites that used to build android source successfully.
(According to official setup notes: Java 6 is not supported, because of incompatibilities with @Override.) The default JDK choose by Maverick was icedtea6, which is not recommended for building android, so, we're gonna install JDK5 instead of icedtea.

Unfortunately, JDK5 was abandoned by Ubuntu 10.10/10.04, but fortunately, Janty(9.04) still have JDK5 in its repository. So, let's move on.

Add packages sources to /etc/apt/sources.list:
deb http://archive.ubuntu.com/ubuntu dapper main multiverse
deb http://archive.ubuntu.com/ubuntu dapper-updates main multiverse

and then:
$sudo apt-get update
$sudo apt-get install sun-java5-jdk

after installation finished, use
$java -version
to check the current java version.

If you had JDK6 installed before JDK5, you probably need help from 'update-alternatives'.
First, list all Java installed,
$update-java-alternatives -l
Second, set the JDK5 as system default,
$sudo update-java-alternatives -s java-1.5.0-sun
You are ALL SET!

[Ubuntu Maverick] Get ubuntu/kernel version/code-name

0 意見
Sometimes, when you logged in a remote Ubuntu server, it will be easier to find out suitable packages if you know the version/code-name of it.
In gnome terminal, to get the Ubuntu version, use the following command:
  • $cat /etc/lsb-release
you will get some similar output as following:

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=10.10
DISTRIB_CODENAME=maverick
DISTRIB_DESCRIPTION="Ubuntu 10.10"

to get the kernel version, use the following command:
  • $uname -a
then you will get the following output:

Linux 2.6.35-generic #42-Ubuntu SMP Thu Dec 1 00:00:00 UTC 2000 x86_64 GNU/Linux

[Gentoo] X201 Black Screen Solution

Friday, October 29, 2010
0 意見
According to my experiments, while using kernel version between 2.6.32-gentoo-r10 and 2.6.35-gentoo-r9, my Thinkpad X201 always got a black screen, but by applying the following patch, I can boot into framebuffer console with KMS(Kernel ModSetting) on.
  1. Under $KERNEL_ROOT/drivers/gpu/drm/i915/intel_display.c
  2. 858 intel_g4x_find_best_PLL(const intel_limit_t *limit, struct drm_crtc *crtc,
    859 int target, int refclk, intel_clock_t *best_clock)
    860 {
    861 struct drm_device *dev = crtc->dev;
    862 struct drm_i915_private *dev_priv = dev->dev_private;
    863 intel_clock_t clock;
    864 int max_n;
    865 bool found;
    866 /* approximately equals target * 0.00585 */
    867 int err_most = (target >> 8) + (target >> 9)
    868 // patch for KMS black screen
    869 err_most += 50;
    870 found = false;

But now, this bug/issue seems to be fixed in kernel version 2.6.36, I just emerge the gentoo-sources-2.6.36 without applying above patch, and it works.

Keywords: ThinkPad, X201, Gentoo, Black Screen, KMS

[Gentoo] iBus broke Konsole "Ctrl+Shift+C/V"

Tuesday, August 24, 2010
0 意見
Situation:

After I upgrade my iBus to v1.3.7,the hotkey "Ctrl+Shift+C"(Copy) and "Ctrl+Shift+C"(Paste) in Konsole was broken. For example, I selected something in Konsole and pressed "Ctrl+Shift+C", and then switched the input focus to Chromium search bar and pressed "Ctrl+V", NOTHING pasted!

Enviroment:

gentoo-sources: 2.6.32-gentoo-r10 x86_64
kdebase-meta: 4.4.4
qt-core: 4.6.3
ibus: 1.3.7

Solution:

After trying few old version of ibus, I found the v1.3.4 works. I guess there might be something wrong with the "key-snooper" function, because ibus releases that came without "key-snooper" function enabled could work in my Gentoo box; however, I didn't spend much time on debugging this.
The following are just steps for a temporarily workaround:

  1. Download ibus-1.3.4.tar.gz from Google iBus Project.
  2. $ sudo cp ibus-1.3.4.tar.gz /usr/portage/distfiles
  3. $ cd /usr/portage/app-i18n/ibus/
  4. $ sudo cp ibus-1.3.7.ebuild ibus-1.3.4.ebuild
  5. $ sudo ebuild ibus-1.3.4.ebuild digest
  6. $ sudo ebuild ibus-1.3.4.ebuild merge

By using ebuild to install packages, we can still benefit from portage management (unmerge, gentoolkit…etc).

P.S.:

In the past, I usually put xx-input under /etc/X11/xinitrc/xinitrc.d/, but now I moved those variables settings to ~/.xprofile as suggestion during ibus installation.

export XMODIFIERS="@im=ibus"
export GTK_IM_MODULE="ibus"
export QT_IM_MODULE="xim"
ibus-daemon -d -x

Keywords: ibus, Gentoo, Copy&Paste Broken