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/tag/ac100/.
Optimising power consumption
PowerTOP for ARM might provide more relevant information than the version from the distribution's repositories.
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.
Using side LEDs and WiFi LED
(This is for the 12.04 kernel) The LEDs on the side can be triggered by echoing values between 0 and 7 to
echo 7 > /sys/devices/platform/nvec.0/nvec-leds.0/leds/nvec-led/brightness
for different blinking-patterns (need to be root). Try
echo 0 > brightness ; sleep 1 ; echo 7 > brightness ; sleep .2;echo 1 > brightness
to 'allways-on' the side LEDs
You can also set different triggers for the WiFi LED. To see the available options do
cat /sys/devices/platform/nvec.0/leds-gpio/leds/wifi-led/trigger
then to change the trigger (temporarily) do for example
echo mmc0 > /sys/devices/platform/nvec.0/leds-gpio/leds/wifi-led/trigger
to get eMMC activity.
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+CGDCONT=1,"IP","internet.beeline.ru"' 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 (or do ifup wwan0 twice). 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
