<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="http://www.datenfreihafen.org/~stefan/weblog/"?>
<rss version="2.0" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:admin="http://webns.net/mvcb/" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Filed under: Thinkpad X200s | My place to share some bits and bytes</title>
<atom:link href="http://www.datenfreihafen.org/~stefan/weblog/archives/thinkpad_x200s/index-rss.xml" rel="self" type="application/rss+xml" />
<link>http://www.datenfreihafen.org/~stefan/weblog</link>
<description>datenfreihafen.org, linux, and computer science.</description>
<dc:language>en-us</dc:language>
<dc:creator>Stefan Schmidt</dc:creator>
<dc:date>2010-03-01T02:02:16+01:00</dc:date>
<admin:generatorAgent rdf:resource="http://nanoblogger.sourceforge.net" />
<item>
<link>http://www.datenfreihafen.org/~stefan/weblog/archives/2009/12/index.html#e2009-12-15T15_00_23.txt</link>
<guid isPermaLink="true">http://www.datenfreihafen.org/~stefan/weblog/archives/2009/12/index.html#e2009-12-15T15_00_23.txt</guid>
<title>Linux support for Intel Corporation Turbo Memory Controller, ever?</title>
<dc:date>2009-12-15T15:00:23+01:00</dc:date>
<dc:creator>Stefan Schmidt</dc:creator>
<dc:subject>Thinkpad X200s, linux</dc:subject>
<description>
<![CDATA[<p>Over a year ago I wrote a
<a href="http://lkml.indiana.edu/hypermail/linux/kernel/0812.0/01887.html">mail</a> to LKML
asking about Linux support for the turbo memory controller. All I got was
silence.</p>
<p>It really should not be more then a NAND flash controller with the flash
attached to it. I wonder what the problem is here. Neither the really active
kernel hackers form the Intel Open Source Labs are giving any comment on it nor
is any kind of documentation available for it. At least none that I was able to
find.</p>
<p>I'm well aware that it is marketed as Windows Vista, and now Windows 7, only,
but to be frank, its hardware. There is no technical limitation to write a
driver for it.</p>
<p>Given that I heard once that Intel has a great rule in place that there needs to
be a good reason if <em>no</em> GPL driver is available for Intel hardware I wonder
what is the blocker here. If it is no technical reason it must be something
else. A completely wild guess would be that Microsoft is paying for the
exclusive rights and active harm of other systems. I thought we were behind such
things. Anyone knows more and wants to enlighten me?</p>]]>
</description>
</item>
<item>
<link>http://www.datenfreihafen.org/~stefan/weblog/archives/2008/12/index.html#e2008-12-13T03_46_41.txt</link>
<guid isPermaLink="true">http://www.datenfreihafen.org/~stefan/weblog/archives/2008/12/index.html#e2008-12-13T03_46_41.txt</guid>
<title>Using HSPA and GPS on my X200s</title>
<dc:date>2008-12-13T03:46:41+01:00</dc:date>
<dc:creator>Stefan Schmidt</dc:creator>
<dc:subject>Thinkpad X200s, linux</dc:subject>
<description>
<![CDATA[<p>Since some days I replaced my old Thinkpad T40p mobile workstation with a new
Thinkpad X200s. Higher performance, smaller form-factor, lighter, I'm happy with
it. :)</p>
<p>One feature that I wanted to have in my new notebook was a built-in 3G data
card. What I got was the Ericsson F3507g. It does not only have HSPA, with 7,2
MBit down and 2,0MBit up, but also a GPS reciever on the same MiniPCIe card.</p>
<p>The control of the GPS is done via AT commands. For this the card offer three serial
channels. Once you enabled GPS on one it will only act as NMEA channel after
this. Given you have three channels the logical way was to have one for the HSPA
data transfers, one for the GPS and the last one as control channel.</p>
<p>The basic commands for configuration and enabling the GPS can be found
<a href="http://www.thinkwiki.org/wiki/Ericsson_F3507g_Mobile_Broadband_Module">here</a>.
Sadly there seem to be no public documentation from Ericson on the proprietary AT
commands for the GPS. Ericson, can you please offer a description or even better
a datasheet for the chip it?</p>
<p>Anyone else can help out with more informations on this card? I'm interested in
all kind of details about configuration options for the GPS.</p>
<p>For now I'm using the following script to handle the gps and hspa enable and
disable. Not nice but working. FSO support is on the way and will get finished
when I find a spare cycle for it.</p>
<pre>
#!/bin/sh

# We have /dev/ttyACM{0,1,2}
# 0 is used from wvdial for the HSPA connection
NMEADEVICE=/dev/ttyACM1
CONTROLDEVICE=/dev/ttyACM2

## Check we have appropriate permissions
if [ `whoami` != "root" ]; then
    echo Run this script as root
    exit 0
fi

init_modem() {
    echo -n "Powering up WWAN device .."
    echo 1 > /sys/devices/platform/thinkpad_acpi/wwan_enable
    while [ ! -c $CONTROLDEVICE ]; do sleep 0.5; echo -n "."; done
    echo " OK"

echo -n "Initialising WWAN modem ..."
    /usr/sbin/chat -v "" "AT+CFUN=1" "+PACSP0" "AT" "OK" > $CONTROLDEVICE < $CONTROLDEVICE
    echo " OK"
}

exit_modem() {
    echo -n "Shutting down WWAN modem ..."
    /usr/sbin/chat -v "" "AT+CFUN=4" "OK" > $CONTROLDEVICE < $CONTROLDEVICE
    echo " OK"

## Disable the WWAN hardware, save power
    echo -n "Powering down WWAN device .."
    echo 0 > /sys/devices/platform/thinkpad_acpi/wwan_enable
    while [ -c $CONTROLDEVICE ]; do sleep 0.5; echo -n "."; done
    echo " OK"
}

start_hspa() {
    echo "Starting PPP -- hit Ctrl+C when finished"
    /usr/bin/wvdial 3G
    #/usr/bin/wvdial Vodafone
}

start_gps() {
    # Enable NMEA, every 3 seconds, enable DGPS
    echo -n "Configure GPS ..."
    /usr/sbin/chat -v "" "AT*E2GPSCTL=1,3,1" "OK" > $CONTROLDEVICE < $CONTROLDEVICE
    echo " OK"

echo "Starting GPS -- hit Ctrl+C when finished"

# Fire up NMEA stream
    #/usr/sbin/chat -v "" "AT*E2GPSNPD" "FOOBAR" > $CONTROLDEVICE < $CONTROLDEVICE
    echo -en 'AT*E2GPSNPD\r\n' > $NMEADEVICE

/etc/init.d/gpsd stop
    /etc/init.d/gpsd start
}

stop_gps() {
    echo -n "Shutting down GPS..."
    /usr/sbin/chat -v "" "AT*E2GPSCTL=0,3,1" "OK" > $CONTROLDEVICE < $CONTROLDEVICE
    echo " OK"
}

case "$1" in
    hspa)
        init_modem
        start_hspa
        exit_modem
        ;;
    gps)
        init_modem
        start_gps
        # A bit hacky to wait for a ^C
        sleep 7d
        stop_gps
        exit_modem
        ;;
    both)
        init_modem
        start_gps
        start_hspa
        stop_gps
        exit_modem
        ;;
    *)
        echo "Use hspa, gps or both as param" >&2
        exit 1
        ;;
esac

exit 0
</pre>]]>
</description>
</item>
</channel>
</rss>

