Motorola Defy+ : back from CyanogenMod 11 (unofficial) to stock ROM

Why

I am currently not satifsfied with the stability of the unofficial CyanogenMod 11 port on this device (but anyway, props to the developers who are doing a very hard job to improve this!)

So I decided to have a look back at the Android 2.3.6 stock rom which was rather stable (but not flawlessly stable…)

I could have had a try at CyanogenMod 7.2, maybe later.

Currently, I only use this device without SIM card, but mainly :

- wifi only
– offline GPS with OsmAnd~ from F-Droid repos
– picture/video taking (with gps tagging)
– (voice) note taking
etc…

So I like my device not to randomly reboot and loose everything when I’m hiking/driving/etc…

How

Disclaimer : USE AT YOUR OWN RISK!

Needed :

RSD Lite (for windows)

http://www.andromods.com/download-files/install-rsd-lite-latest-version-flashing-tool-motorola.html

USB drivers for windows

http://singledrivers.blogspot.fr/2014/01/motorola-defy-usb-driver-for-windows_17.html

Finally you can find stock roms here

http://sbf.droid-developers.org/phone.php?device=28

(be sure to select the right one for your device)

How to flash stock rom (youtube video)

Flash to stock went OK? But likely your device (if you had a custom ROM previouisly installed) will boot loop.

If this is the case, pull out the battery, put it back, power on the phone with VOL- pressed (go to recovery).
On the next screen, showing the Android logo with an exclamation, press both VOL+ and VOL-
The recovery menu entries should appear.
Select “Wipe to factory”. Once done, reboot device. Should be ok!

Now root your device

http://forum.xda-developers.com/wiki/Motorola_Defy#How_to_root_your_DEFY.2FDEFY.2B_with_Framaroot

Install F-droid

https://f-droid.org/FDroid.apk

Enable Archive repository in F-Droid, so that some older apps will be available for our good old Gingerbread 2.3.6 system.

Install some apps :

- AdAway
– OsmAnd~
– OsmTracker
– Barcode Scanner
– Ghost Commander (so that when rooted, you’ll be able to delete pre-installed crappy vendor apps)
– etc..

Bugs :

- GPS does not work?

Even without SIM card, even in PLANE mode, be sure to enable DATA synchronization. Then the GPS will fix!
(connect to a WIFI access point if it still doesn’t fix)

- OsmAnd~ 1.8.3 : app crashed when changing device orientation
Quick fix : lock screen orientation to landscape or portrait, in OsmAnd settings

Other useful links

The XDA Wiki page is very complete

http://forum.xda-developers.com/wiki/Motorola_Defy

XDA forums for Defy

http://forum.xda-developers.com/motorola-defy

Transferring files between an Android device and a Linux system via USB cable

debian_android_logo

Some newer Android devices do not offer regular USB-drive like connection. Instead they use the MTP protocol.

In order to easily transfer files between your Android device and your favorite Linux distro (yes, Debian!) with a USB cable, via MTP transfer protocol :
As root

apt-get install jmtpfs

Make sure your regular user belongs to the “fuse” group

usermod -a -G fuse username

(you need to logout and login again)

Connect your Android device to your computer with your USB cable, then as a regular user :

mkdir -p ~/Android_transfer
jmtpfs Android_transfer/

After a few seconds, files on the Android device should appear in the mount point :)

To properly unmount :

fusermount -u ~/Android_transfer

For more info, as always :

man jmtpfs
jmtpfs -h

Mageia 4 Xen Server

mageia logo

A quick guide for a working Xen hypervisor (Dom0) on a Mageia 4 host.

Minimal installation for a server

Fetch a network install iso (64 bit!)

http://www.mageia.org/en/downloads/

I chose a Text installer, but do a graphical install if you prefer. We are doing a minimal install.

  • Install from HTTP (choose your favorite mirror)
  • Desktop : custom
  • uncheck everything
  • next screen (“Type of install”), use default choices
  • bootloader : I prefer GRUB2

Installation finished, reboot, login as root.

Continue reading

xorg.conf snippet for Samsung SyncMaster 2253LW monitor

xorg.conf snippet for a Samsung SyncMaster 2253LW monitor.

Full specs here : http://downloadcenter.samsung.com/content/UM/200801/20080105125513265_BN59-00671A-Eng.pdf

Section "Monitor"
        Identifier "Monitor0"
        VendorName "Samsung"
        ModelName "SyncMaster 2253LW"
        Option  "DPMS"
        HorizSync       30-81
        VertRefresh     56-75

  # 1680x1050 @ 60.00 Hz (GTF) hsync: 65.22 kHz; pclk: 147.14 MHz
  Modeline "1680x1050_60.00"  147.14  1680 1784 1968 2256  1050 1051 1054 1087  -HSync +Vsync

  # 1280x1024 @ 60.00 Hz (GTF) hsync: 63.60 kHz; pclk: 108.88 MHz
  Modeline "1280x1024_60.00"  108.88  1280 1360 1496 1712  1024 1025 1028 1060  -HSync +Vsync
EndSection

Section "Screen"
        Identifier "Screen0"
        Device  "Card0"
        Monitor "Monitor0"
        DefaultDepth    24
        Subsection      "Display"
                ViewPort        0 0
                Depth   24
                Modes   "1680x1050_60.00" "1280x1024_60.00" "1024x768"
        EndSubSection
EndSection

Wifi repeater/range extender script

Updated September 17, 2014 : updated, improved and should be working! (Use at your own risk!). Thanks to AL for pointing errors!

#!/bin/bash
#
# Wireless Repeater/Range extender script
#
# Last changes:
#   - 20/Apr/2014 : added ad filtering (uses an additional hosts file)
#   - 12/Apr/2013 : adapted for Debian (tested under 7.0 Wheezy)
#
# http://agentoss.wordpress.com / fredo696@gmail.com
#
# thanks to : http://www.aerospacesoftware.com/howtos/Laptop-NAT-Howto.html
#
# hardware requirements : 2 wireless NICs
# software requirements : iptables, wpa_supplicant, hostapd, dnsmasq, dhcpcd (or dhclient)
#
# This is a standalone script, it will not use your existing configuration files
# (wpa_supplicant/hostapd)
#
# Both wireless interfaces will use WPA/WPA2 encryption.
#
# BEFORE STARTING THIS SCRIPT :
# - you must have root rights
# - stop your wireless connection manager (networkmanager, wicd, etc...)
# - disable your firewall
# - disable power management (prevent the computer to go into suspend mode when unused)
#
# This script has been tested on OpenSUSE 12.2, Debian 7.0
# but should work on other Linux systems with minor adaptations.
#
# USE AT YOUR OWN RISK!
#
# TODO : repeater with 1 wireless NIC + 1 ethernet NIC

# this is the wireless interface we use to connect to our existing Access Point
WLAN_STA="wlan0"

# enter here your existing SSID and WPA passphrase
WLAN_STA_SSID="YOUR_EXISTING_SSID"
WLAN_STA_PASSPHRASE="your$existing$passphrase"

# this is the wireless interface we use to create our new AP (the "repeater" AP)
WLAN_AP="wlan1"

# your new AP's SSID (change the name eventually)
WLAN_AP_SSID="REPEAT_$WLAN_STA_SSID"
# Be sure to use different channels for the 2 AP's for best performance
WLAN_AP_CHANNEL=3
WLAN_AP_IP="192.168.9.1"
WLAN_AP_DHCP_RANGE="192.168.9.10,192.168.9.20"
# we can use the same passphrase (or not)
WLAN_AP_PASSPHRASE=$WLAN_STA_PASSPHRASE

# temp files (will contain passphrases in clear text, so make sure they are not world readable)
HOSTAP_TEMP_CONF="/root/hostap_temp.conf"
WPASUPPLICANT_TEMP_CONF="/root/wpasupplicant_temp.conf"

# URL and filename to download for the ad filter hosts file
# Thanks to winhelp2002.mvps.org
# just comment the two variables if you don't want to use ad filtering
HOSTS_FILE="hosts.zip"
HOSTS_URL="http://winhelp2002.mvps.org/$HOSTS_FILE"

# log file for dnsmasq
DNSMASQ_LOG="/root/dnsmasq.log"

# Path for used commands (adapt to your system)
#DHCPCD="/sbin/dhcpcd"
#for Debian we use dhclient (installed by default)
DHCPCD=$(which dhclient)
HOSTAPD=$(which hostapd)
WPASUPPLICANT=$(which wpa_supplicant)
DNSMASQ=$(which dnsmasq)
IPTABLES=$(which iptables)

PIDFILE="/var/run/repeater.pid"
IPTABLES_SAVE_FILE="/root/iptables.save"

USAGE="Usage : `basename $0` \
\n\nWireless repeater/extender script."

MSG_STOP="Repeater has been stopped."

# sub-routines
show_notification()
{
 xmessage -center -timeout $2 "$1"
}

# Main program
if [[ "$#" -ne 1 || "$1" == "help" ]]; then
 # show program help
 echo -e "$USAGE"
 exit 0
fi

# check if we are root
if [ $EUID -ne 0 ]; then
   echo `basename $0` ": this script must be run as root!" 1>&2
   exit 1
fi
# check for software we need
if [ ! -x $DHCPCD ]; then
 echo "FATAL: $DHCPCD not found!"; exit 1
fi
if [ ! -x $HOSTAPD ]; then
 echo "FATAL: $HOSTAPD not found!"; exit 1
fi
if [ ! -x $WPASUPPLICANT ]; then
 echo "FATAL: $WPASUPPLICANT not found!"; exit 1
fi
if [ ! -x $DNSMASQ ]; then
 echo "FATAL: $DNSMASQ not found!"; exit 1
fi
if [ ! -x $IPTABLES ]; then
 echo "FATAL: $IPTABLES not found!"; exit 1
fi
# check for wireless interfaces
ifconfig $WLAN_STA 1>&2>/dev/null
if [[ $? -ne 0 ]]; then
 echo "FATAL: Wireless interface $WLAN_STA unavailable!"; exit 1
fi
ifconfig $WLAN_AP 1>&2>/dev/null
if [[ $? -ne 0 ]]; then
 echo "FATAL: Wireless interface $WLAN_AP unavailable!"; exit 1
fi


# stop the repeater?
if [ "$1" == "stop" ]; then
 # be sure the repeater is already running
 if [ -f "$PIDFILE" ]; then
 # kill existing wireless connections from previous execution of this script
 echo -n -e "Stopping... "
 $DHCPCD -x $WLAN_STA 2>/dev/null
 $DHCPCD -x $WLAN_AP 2>/dev/null
 killall wpa_supplicant 2>/dev/null

 # kill running hostapd daemon if it exists
 killall hostapd 2>/dev/null

 # kill dnsmasq dhcp
 killall dnsmasq 2>/dev/null

 # empty existing temp.conf files, for security
 >$HOSTAP_TEMP_CONF
 >$WPASUPPLICANT_TEMP_CONF

 echo "OK"

 # restore firewall rules
 echo -n -e "Restoring firewall... "
 iptables-restore /dev/null
service wicd stop 2>/dev/null

# create temp wpa_supplicant.conf file for our STA interface
cat >$WPASUPPLICANT_TEMP_CONF <$HOSTAP_TEMP_CONF <"$IPTABLES_SAVE_FILE" && echo "OK"

# enable packet forwarding and add firewall rules to allow forwarding packets
# between our 2 network interfaces.
IF_IN=$WLAN_STA
IF_OUT=$WLAN_AP

sysctl -w net.ipv4.ip_forward=1
$IPTABLES -F
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -t nat -A POSTROUTING -o $IF_IN -j MASQUERADE
$IPTABLES -A FORWARD -i $IF_IN -o $IF_OUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPTABLES -A FORWARD -i $IF_OUT -o $IF_IN -j ACCEPT

# create pid file
echo $$ >"$PIDFILE"

echo -e "\nWireless repeater access point \"$WLAN_AP_SSID\" is *up* and running!\n"
echo -e "To stop it : `basename $0` stop"
show_notification "Wireless repeater access point \"$WLAN_AP_SSID\" is *up* and running!" 3

# optional : open a new xterm which displays the DNS log in realtime
xterm -e "tail -f $DNSMASQ_LOG" &

exit 0
fi

# unknown command, show usage
echo -e "$USAGE"
exit 1

Debian 6.0 (Squeeze) on the Xplore iX104C3 rugged Tablet PC

productid-1444-sku-IX104C3

System specs

A nice review here : http://www.ruggedpcreview.com/3_slates_xplore_ix104c3.html

Users handbook : ftp://Support:Xplore@ftp.xploretech.com/Reports%20and%20Handbooks/iX104C3%20USERS%20HANDBOOK.pdf

Note: my model only has a digitizer (tablet PC model), no touchscreen (dual mode version)

Debian stable to the rescue

First I wanted to install Arch Linux on this system, but soon I encountered a severe setback : the Wacom stylus would not work. Then I tried Ubuntu 12.04 (Precise), everything worked out of the box, except the stylus!
Explanation : it seems the support for this older, serial Wacom tablet has been removed from the X.Org Wacom input drivers, since the 0.10.6 version and up.
(more info can be found here : http://ubuntuforums.org/showthread.php?t=1780154 )

Fortunately Debian Squeeze still uses a working 0.10.5 driver version!

Continue reading