This is an old revision of the document!
Table of Contents
Tips and tricks
Gordan's blog
Plenty of inspirational tricks including screen upgrade, overclocking, installing additional internal storage and more can be found at http://www.altechnative.net/.
Lid and jack insertion events
You can use a lightweight https://github.com/gandro/input-event-daemon, it should listen on /dev/input/event4 for LID:0 and LID:1 events.
Video playback
To get maximum of the unaccelerated framebuffer driver you can use mplayer2 (it uses libraries with SMP support) and this ~/.mplayer/config
ao=alsa mixer-channel=Master vo=x11 zoom=1 sws=0 hardframedrop=1 lavdopts=fast=1:skiploopfilter=all
Watching Youtube
#!/bin/sh cookies_file=`mktemp /tmp/youtube-cookies.XXXXXX` rm $cookies_file url="`youtube-dl --cookies=$cookies_file -g --max-quality 35 $1`" mplayer -cookies -cookies-file $cookies_file -cache 2048 $url rm $cookies_file
Software sound mixing
To be able to hear simultaneous playback from different programs
copy this to /usr/share/alsa/cards/tegra-alc5632.conf:
# default with dmix/dsnoop
tegra-alc5632.pcm.default {
@args [ CARD ]
@args.CARD {
type string
}
type asym
playback.pcm {
type plug
slave.pcm {
@func concat
strings [ "dmix:CARD=" $CARD ",RATE=44100" ]
}
}
capture.pcm {
type plug
slave.pcm {
@func concat
strings [ "dsnoop:CARD=" $CARD ",RATE=44100" ]
}
}
}
Dedicated volume controls without PulseAudio
Add this to ~/.asoundrc:
pcm.softvol {
@args [ NAME ]
@args.NAME.type string
type softvol
slave.pcm "default"
control.name $NAME
}
And use softvol:<custom name> for the ALSA device, like this: aplay -Dsoftvol:“Aplay Dedicated” testmusic.wav
Handling bell events
You can use xkbevd to play an arbitrary sound when an XkbBell event is generated. For URvxt you need to tell it to use xkbbell for bellCommand. A better solution would be to extend input-events-daemon to create a virtual input device capable of receiving a system bell, that way it'd work equally well for all programs even without X.
Wireless performance
- compat-wireless provides newer wireless drivers that work better but wireless extensions (only needed for some specific programs using this deprecated interface, e.g. aircrack-ng) will not be enabled until the kernel is compiled with support for some old pre-mac80211 driver (to select
CONFIG_WIRELESS_EXT). iw dev wlan0 set power_save offto improve interactivity when a power-saving compatible AP is used
Wireless connectivity without NetworkManager
Place this in /etc/network/interfaces (on a Debian-like system) to have automatic wifi roaming controllable with wpa_cli and support for the GSM/UMTS modem:
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
allow-hotplug wlan0
iface wlan0 inet manual
wpa-driver nl80211
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
iface home inet dhcp
iface wwan0 inet dhcp
pre-up stty -F /dev/ttyACM1 1:0:80001cb2:0:3:1c:7f:15:4:5:1:0:11:13:1a:0:12:f:17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0 2> /dev/null || \
stty -F /dev/ttyACM1 1:0:80001cb2:0:3:1c:7f:15:4:5:1:0:11:13:1a:0:12:f:17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
pre-up chat -v TIMEOUT 30 "" \
AT OK \
AT+CGREG=1 OK \
AT+CFUN=1 "+CGREG: 1"-AT+CFUN=1-"+CGREG: 1" \
"" ABORT ERROR "" \
AT*ENAPDBG=1 OK \
"AT*ENAP=1,1" "*ENAPDBG: 1,1"-"AT*ENAP=1,1"-"*ENAPDBG: 1,1" < /dev/ttyACM1 > /dev/ttyACM1 || \
! chat -v "" AT*E2RESET < /dev/ttyACM1 > /dev/ttyACM1
post-down chat -v "" AT+CFUN=4 OK < /dev/ttyACM1 > /dev/ttyACM1
This assumes your card has PIN disabled, if it's not, you should be able to add AT+CPIN=“abcde” command where appropriate. If you hot-swap the SIM card you might need to issue the AT*E2RESET command manually. The modem supports messaging via SMS and USSD requests, e.g. this works with Beeline to see the amount of money left:
#!/bin/sh /usr/sbin/chat -vs "" "AT+CUSD=1,\"*102#\",15" "OK" < /dev/ttyACM1 > /dev/ttyACM1
