Motorola v195 with T-Mobile on Gentoo Linux

The Motorola_v195 can be used as a modem to connect a laptop to the internet wherever cell phone reception is good enough given the right provider plan. I have the internet plan as an add-on to my T-Mobile account..

kernel

A mini-usb cable will connect the phone to the laptop. Before connecting, build it a driver. Set

...
CONFIG_USB_ACM=m
...

in /usr/src/linux/.config (I am using kernel 2.6.20)

then recompile the kernel:

mount /boot
cd /usr/src/linux
make && make modules_install && make install
umount /boot 

Make sure the phone is on and connect the cable. Wait a second or two..

dmesg | tail

should mumble something to the effect of

...
usb 2-2: new full speed USB device using uhci_hcd and address 3
usb 2-2: configuration #1 chosen from 2 choices
cdc_acm 2-2:1.0: ttyACM0: USB ACM device
usbcore: registered new driver cdc_acm
drivers/usb/class/cdc-acm.c: v0.25:USB Abstract Control Model driver for USB modems and ISDN adapters
...

You can also check if the new device exists

ls /dev/ttyACM*

Dial-Up using PPP

The gentoo init script method worked for getting the connection to the GPRS network. I plucked the configuration settings from T-Mobile’s Mac_OS_X_guide. You might want to keep an eye on their settings in case they change.

If you don’t already have PPP:

emerge -av ppp

Create a link for the init script:

ln -s /etc/init.d/net.lo /etc/init.d/net.ppp0

Here is my /etc/conf.d/net:

 # /etc/conf.d/net:
 # $Header: /home/cvsroot/gentoo-src/rc-scripts/etc/conf.d/net,v 1.7 2002/11/18 19:39:22 azarah Exp $
 config_eth0=( "null" )
 config_eth1=( "dhcp" )
 dhcpcd_eth1="-t 10"
 gateways_eth1="192.168.0.1"
 dhcp_eth1="release nontp nonis nosendhost"
 #-----------------------------------------------------------------------------
 # PPP
 config_ppp0=( "ppp" )
 #
 # Each PPP interface requires an interface to use as a "Link"
 link_ppp0="/dev/ttyACM0"   # Most PPP links will use a serial port
 #
 # PPP requires at least a username. You can optionally set a password here too
 # If you don't, then it will use the password specified in /etc/ppp/*-secrets
 # against the specified username
 #username_ppp0='user'
 #password_ppp0='password'
 # NOTE: You can set a blank password like so
 #password_ppp0=
 #
 # The PPP daemon has many options you can specify - although there are many
 # and may seem daunting, it is recommended that you read the pppd man page
 # before enabling any of them
 pppd_ppp0=(
 # "maxfail 0" # WARNING: It's not recommended you use this
 #   # if you don't specify maxfail then we assume 0
  "updetach"  # If not set, "/etc/init.d/net.ppp0 start" will return
 #   # immediately,  without waiting the link to come up
 #   # for the first time.
 #   # Do not use it for dial-on-demand links!
  "debug"  # Enables syslog debugging
  "noauth" # Do not require the peer to authenticate itself
  "defaultroute" # Make this PPP interface the default route
  "usepeerdns" # Use the DNS settings provided by PPP
 #
 # On demand options
 # "demand"  # Enable dial on demand
 # "idle 30"  # Link goes down after 30 seconds of inactivity
 # "10.112.112.112:10.112.112.113" # Phony IP addresses
  "ipcp-accept-remote" # Accept the peers idea of remote address
  "ipcp-accept-local" # Accept the peers idea of local address
  "holdoff 3"  # Wait 3 seconds after link dies before re-starting
 #
 # Dead peer detection
 # "lcp-echo-interval 15" # Send a LCP echo every 15 seconds
 # "lcp-echo-failure 3" # Make peer dead after 3 consective
 #    # echo-requests
 # 
 # Compression options - use these to completely disable compression
 # novj
  noaccomp noccp nobsdcomp nodeflate nopcomp novjccomp
 #
 # Dial-up settings
 # "lock"    # Lock serial port
  "115200"   # Set the serial port baud rate
 # "modem crtscts"   # Enable hardware flow control
 # "192.168.0.1:192.168.0.2" # Local and remote IP addresses
 )
 #
 # Dial-up PPP users need to specify at least one telephone number
 phone_number_ppp0=( "*99#" ) # Maximum 2 phone numbers are supported
 # They will also need a chat script - here's a good one
 chat_ppp0=(
 # 'ABORT' 'BUSY'
  'ABORT' 'ERROR'
 # 'ABORT' 'NO ANSWER'
 # 'ABORT' 'NO CARRIER'
 # 'ABORT' 'NO DIALTONE'
 # 'ABORT' 'Invalid Login'
 # 'ABORT' 'Login incorrect'
  'TIMEOUT' '5'
  '' 'AT+IPR=115200'
  'OK' 'ATZ'
  'OK' 'AT+cgdcont=1,"IP","internet3.voicestream.com"' # Put your modem initialization string here
  'OK' 'ATDT\T'
  'TIMEOUT' '60'
  'CONNECT' ''
  'TIMEOUT' '5'
  '~--' ''
 )

A few things to note:

  • The eth0 and eth1 settings (top of file) are irrelevant, but the gateway is set only for eth1, so as long as ppp0 is the only device that is started (up,) the gateway will come from the PPP connection. This is because routing problems will likely be related to interference from other interfaces.
  • Username and password are not specified
  • The only compression option not disabled is “novj” because the T-Mobile instructions ask to use TCP Header Compression
  • The serial port baud rate is set to “115200”
  • The chat script has most of the ABORT lines commented out — e.g.; we’re not looking for a dial tone
  • The
        '' 'AT+IPR=115200'
    

    chat line will ask the v195 to set it’s baud rate to match PPP (115,200)

Start and stop the connection with the usual suspects:

/etc/init.d/net.ppp0 start
/etc/init.d/net.ppp0 stop

The start script should reply with

 * Starting ppp0
 *   Bringing up ppp0
 *     ppp
 *       Running pppd ...
 *       ppp0 received address xxx.xxx.xxx.xxx/yy

ifconfig ppp0 should confirm this. Go ahead and check your spam,err.. email while you’re out in Coldspot, Saskatchewan.

Posted in Uncategorized | Leave a comment

Dell Latitude d510

This HowTo drew from several other HowTos:

HARDWARE Dell Latitude D610

HARDWARE Dell Latitude D810

HARDWARE ipw2200

HARDWARE Dell Inspiron 600m

The X Server Configuration HOWTO

For more laptop guides check out Linux-On-Laptops !

The d510 is probably closest to the d610. There may be slight variations in hardware on individual machines even for this model. There are things I haven’t tried to get working yet ’cause I haven’t needed them… (and I’m lazy)

make.conf

Intel Pentium-M processor at 1.73 GHz
Intel 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC’97 Audio Controller
Intel Mobile 915GM/GMS/910GML Express Graphics Controller

so /etc/make.conf includes:

...
CHOST="i686-pc-linux-gnu"
CFLAGS="-march=pentium-m -O2 -pipe -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"
ACCEPT_KEYWORDS="~x86"
VIDEO_CARDS="i810 i915"
ALSA_CARDS="intel8x0" 
...

Graphics

Xorg 7.0

emerge -av xorg-x11

and a few other core drivers (keyboard,mouse,etc) nothing special.

Intel i915GM driver

emerge -av xf86-video-i810

My Kernel Config has i810 and i915 as modules, not compiled into the kernel:

CONFIG_DRM_I810=m
CONFIG_DRM_I915=m

lsmod shows i915 is loaded and used, although it is not in “/etc/modules.autoload.d/kernel-2.6”.

xorgcfg as root does a pretty good job setting up an xorg.conf, with a couple of adjustments. mouse is at “/dev/input/mice” and I added the Synaptics Touchpad section. Touchpad driver:

emerge x11-drivers/synaptics

a couple more edits get HW acceleration going. glxgears is reporting ~722 FPS.

I added a virtual line to the modes section because although the higher resolutions (1280 x 1024) display on the LCD, everything is too small.. Not sure if this is the best approach but it works for me:

       SubSection "Display"
               Viewport   0 0
               Depth     15
               Virtual 1024 768
       EndSubSection
       SubSection "Display"
               Viewport   0 0
               Depth     16
               Virtual 1024 768
       EndSubSection
       SubSection "Display"
               Viewport   0 0
               Depth     24
               Virtual 1024 768
       EndSubSection

there are other ebuilds – i810switch, 855resolution, and 915resolution that I haven’t tried. So far switching back & forth between LCD and VGA output works fine with the CRT/LCD button on the keyboard. Getting the 1440x(?) resolution would be cool though.

Disks

Hard Drive is SATA. (shows up as /dev/sda — so watch out when working with external drives which probably show up as /dev/sdb, /dev/sdc, etc..)

Device Drivers  --->
 SCSI device support  --->
     SCSI disk support
  SCSI low-level drivers  --->
    Serial ATA (SATA) support
       Intel PIIX/ICH SATA support

The CD-RW/DVD-ROM on my d510 is IDE (/dev/hdc).

LAN

This works out of the box with kernel config

Ethernet (1000 Mbit)  --->
  Broadcom Tigon3 support

Wifi

My machine uses “Intel PRO/Wireless 2200BG (rev 05)”.

Since newer versions of the driver are working well, I decided to get the latest kernel source (on gentoo) and use kernel modules. (2.6.20 as of 3/3/07)

emerge --sync
emerge gentoo-sources
cd /usr/src/
rm -i linux
ln -s linux-2.6.20-gentoo linux 
cp 2.6.19-r2-gentoo/.config linux/
make oldconfig
make menuconfig

Selected Kernel Configs:

 Networking   --->
    Generic IEEE 802.11 Networking Stack
   [ ] Enable full debugging output
    IEEE 802.11 WEP encryption (802.1x)
    IEEE 802.11i CCMP support
    IEEE 802.11i TKIP encryption
 Device Drivers  --->
   Network device support   --->
     [*] Network device support
     Wireless LAN (non-hamradio)   --->
       [*] Wireless LAN drivers (non-hamradio) & Wireless Extensions
        Intel PRO/Wireless 2100 Network Connection
        Intel PRO/Wireless 2200BG and 2915ABG Network Connection
 Cryptographic options  --->
    MD5 digest algorithm
    AES cipher algorighms (i586)
    ARC4 cipher algorithm
    Michael MIC keyed digest algorithm

Watched a couple of commercials on t.v.

make && make modules_install && make install
rm -Rf 2.6.19-r2-gentoo

Even with the kernel modules, you still need the firmware:

emerge -av net-wireless/ipw2100-firmware
echo "ipw2200" >> /etc/modules.autoload.d/kernel-2.6
reboot

On reboot found eth1, configurable by iwconfig or whatever.

dmesg | grep ipw
...
ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.2.0kdq
ipw2200: Copyright(c) 2003-2006 Intel Corporation
ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection
...
modprobe ieee80211_crypt_wep

Connected to my insecure WEP network. Some gotchas: Make sure BIOS settings leave wireless on, they are o.k. by default. If it’s on the “bluetooth” light will be lit… A kernel upgrade usually also means rebuilding other modules such as for alsa.

Noise

There used to be a high-pitched noise, apparently generated by the processor entering energy-saving idle states. My kernel config has the acpi module “processor” compiled into the kernel so the noise went away after adding “processor.max_cstate=2” to the kernel options (in grub.conf):

...
kernel /vmlinuz root=/dev/sda7 processor.max_cstate=2
...

CPU Frequency Scaling

Kernel Configs:

CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_TABLE=y
CONFIG_CPU_FREQ_DEBUG=y
CONFIG_CPU_FREQ_STAT=y
# CONFIG_CPU_FREQ_STAT_DETAILS is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
CONFIG_CPU_FREQ_GOV_USERSPACE=y
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
# CONFIG_CPU_FREQ_GOV_ CONSERVATIVE is not set

To auto-regulate CPU frequency according to system load:

emerge sys-power/cpudyn sys-power/cpufrequtils
rc-update add cpudyn default
rc-update add cpufrequtils default

In /etc/conf.d/cpufrequtils I have

GOVERNOR="ondemand"

The GNOME CPU Frequency Monitor widget shows the processor idling at 800MHz but scaling up to 1.07, 1.33, or 1.73MHz according to system load.

Posted in Uncategorized | Leave a comment

HP PSC 1610 All-In-One on Gentoo

HPLIP

Seems to work well: HP Linux Imaging and Printing

Gentoo will emerge older version (0.97 as of 2-24-07,) but it worked fine:

emerge -av hplip

Afterwards start hplip:

/etc/init.d/hplip start

Add to run-level if you plan on using often:

rc-update add hplip default

CUPS

Grab the PostScript Printer Description (PPD) file from here or here. As root move it to /usr/share/cups/model/

Restart CUPS Daemon:

/etc/init.d/cupsd restart

Open the delightful a href=”http://localhost:631/” CUPS Configuration utility /a in your favorite browser.

Follow the HOWto or basically follow menus through

 "Manage Printers" -> 
   "Add a Printer" -> 
     LogIn as Root -> 
       Give the Printer a Name (at least) ->
         Select the Device that says something similar to "hp:/usb/PSC_1600_series?serial=..." ->
           Select Make "HP" and Model - then new PPD - "HP PSC 1600 Series"

If all went well CUPS will utter a cheerful message and the new printer should show up under “Printers”. If it is plugged in, calibrated, and powered-up should say it is Ready to accept jobs, so go ahead, print that test page.

Applications

OpenOffice

OpenOffice Writer Version 2.1 just found the default printer and printed up color documents including images. Not sure about previous versions (?).

 emerge app-office/openoffice

ou si vous préférez

 emerge app-office/openoffice-bin
Posted in Uncategorized | Leave a comment