The JVC MP-XV841US Mini-Notebook


Introduction

Here are some notes on the only non-IBM notebook computer I've ever owned - the JVC MP-XV841US. It's a mini-notebook, and as you can see in the picture it's really tiny (and light - weighs 3 1/4 pounds with the battery attached). I prefer smaller notebooks because I seem to carry my notebook around everywhere and those 15 pounders with 17" screens are too much of a pain in the butt to lug around and work on while I'm having lunch.

[JVC mini notebook]
JVC mini-notebook (beside a compact disc for comparison)

Since I've gotten used to IBM notebooks, I prefer the JVC's setup of a trackpoint and three mouse buttons to touchpads. When working at a desk, I often attach a small USB mouse (Targus Optical Scroller Mini Mouse) to the laptop, as it makes working easier.

System specifications

Model MP-XV841US
Processor Intel Pentium M at 1 GHz
Hard Disk 40GB (hdparm gives transfer rates of about 25 MB/sec)
Memory 256 MB standard / 768 MB maximum
Video Card Intel Corp. 82852/855GM Integrated Graphics
Audio Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller
Ethernet Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+
Modem Conexant Winmodem
Wireless Intel Corp. PRO/Wireless 2200BG


Linux hardware support

Here's a list of drivers for the notebook's hardware.

Video XFree86 / XOrg i810 driver (3D support works)
Audio ALSA: supported with snd_intel8x0 module.
Ethernet 8139too module
Modem Linuxant commercial drivers (hsfmodem)
SD Media reader Does not work in Linux. No drivers. (If anyone can get this to work in Linux, let me know so I can update this page.
Wireless ipw2200 driver, requires firmware download. Get it from freshrpms.net.
Firewire Untested. I don't have any Firewire devices


The hardware in the JVC Mini is, for the most part, well-supported in Linux. Everything I use regularly appears to work, though you must purchase a (payware) driver to use the modem at 56K. For free, you can only use the modem at 14.4K speeds.

The only thing that simply does not work at all in Linux is the SD media reader. It's no big deal to me, since all my digital cameras uss compact flash cards. I borrowed an SD card for a few minutes just to try the SD reader, and it was a no-go.

January 17th - Installation of Ubuntu 5.10 (Breezy)

The install

After fiddling around with Fedora Core for several months and being less than impressed with all the pain associated with that distribution, I decided to try out a distribution that seemed a lot more laptop-friendly - Ubuntu Linux. While Fedora Core can be made to work (see below for Fedora Core 3 notes), it was annoying. Plus, it's somewhat easier to install the software I need for work (xdrawchem, ghemical, gperiodic, etc.) with Ubuntu than it is with Fedora.

I don't use Windows on the machine at all, so I just booted with the Breezy install CD and did a default installation, letting Ubuntu repartition the drive as it saw fit. This gave me about 1.5 gigs of swap (I have 768M RAM), and 38+ gigs in the / partition. For a laptop with a single internal hard disk, I don't much see the need to be fancier with partitioning.

The installer detected both the wireless and wired network interfaces and let me choose the default. The intaller had a bit of trouble actually configuring the wireless interface because my home network doesn't use DHCP. I just set it up after the installation was done using Ubuntu's network tool.

The screen resolution was properly configured (1024x600), and 3D support was enabled by default. Ubuntu configured X by default to use 24-bit color, which you might want to change if you want faster graphics.

Making it work right

A lot of things worked properly out-of-the-box. Hibernation works (haven't yet tried suspend) - and the 3D drivers don't die over a suspend-resume cycle. The volume control knob even worked!

As with any distribution, though, there were some glitches to fix. First up - compact flash cards. My camera uses compact flash cards, and while they are recognized and automounted by default, they are also by default immediately unmounted again by hal. How annoying! Here's the fix.

cd /etc/dev.d/block
sudo gedit hal-unmount.dev

Right after the line that says #!/bin/sh, add the line in bold.

#!/bin/sh
exit

This effectively disables the script that immediately unmounts the compact flash card. The only side-effect that I notice from this change is that you must unmount USB drives manuially before removing them or the system will get confused. I always do this anyway on Linux and on Windows, so I don't see this as a problem.

Next, I noticed that system bootup takes too long - mainly because Ubuntu's trying to do some things that are silly to do on a laptop which may as often as not be turned on where there's no network connection. I downloaded sysv-rc-conf, which lets me turn off system services at bootup and by runlevel, much like Fedora's tools do. Ubuntu comes with a seemingly similar tool already, but it doesn't really work as it should. Turning off ntpdate, for instance, with Ubuntu's System/Administration/Services tool doesn't actually prevent it from running (and hanging while waiting for a network connection that doesn't exist) at boot.

sudo apt-get install sysv-rc-conf
sudo sysv-rc-conf

Using sysv-rc-conf, I turned off bluez-utils (no bluetooth devices), lvm (I don't use it on the laptop), mdadm, mdadm-raid (RAID arrays in a subnotebook?), ntpdate (hangs up booting), and rsync. Now the system boots up quickly for those few times I actually do reboot).

The other Ubuntu issue was getting the network set up the way I wanted it. I want the wireless to be controlled by the notebook's wireless on/off switch, not to automatically be brought up at boot when I'm probably not going to be on the network. I also wanted to be able to control the wired ethernet, since I use it while at work. This isn't too difficult to do with Fedora's tools, but the Ubuntu tools (System/Administration/Networking) are rather primitive by comparison. For example, I don't see an option to configure an interface and have it be inactive at boot time. Also, I don't see an option for an ethernet interface to be under user control, so I can have my home and work networks easily usable without typing in additional passwords.

The tool modifies a file: /etc/network/interfaces. Editing this file by hand gets me the behavior I desire. Mainly, I needed to comment out some things (the stuff in bold):

If there's a better way to get the behavior I need, Ubuntu gurus feel free to enlighten me.

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# This is a list of hotpluggable network interfaces.
# They will be activated automatically by the hotplug subsystem.
#mapping hotplug
#    script grep
#    map eth1

# The primary network interface
iface eth1 inet static
    address ###.###.###.###
    netmask ###.###.###.###
    gateway ###.###.###.###
    wireless-essid #########
    dns-nameservers ###.###.###.###
    wireless-key s:###########

# auto eth1

iface eth0 inet dhcp

Now, the system doesn't try to bring up all the network interfaces at boot time. I still need to be able to bring up the interfaces when I want to. First is the wireless. The wireless on/off switch generates ACPI events, so we just need to tie the events to a couple of scripts.

/etc/acpi/events/wireon :

# wireless on
event=hotkey ATKD 0000005e
action=/etc/acpi/wireon.sh

/etc/acpi/events/wireoff :

# wireless off
event=hotkey ATKD 0000005f
action=/etc/acpi/wireoff.sh

/etc/acpi/wireon.sh :

#!/bin/bash
#
# turn on wireless
#
/sbin/modprobe ipw2200
/sbin/ifup eth1

/etc/acpi/wireoff.sh :

#!/bin/bash
#
# turn off wireless
#
/sbin/ifdown eth1
/sbin/modprobe -r ipw2200

After adding these scripts and either rebooting or restarting acpid, the wireless switch will bring the wireless connection up or shut it down.

Now for the wired ethernet. Since there's no switch for the wired ethernet, it's a bit trickier. I wanted to bring up the interface without having to enter a password, so I had to use sudo. But its configuration file needed modification first.

[This is a work in progress - more informtion will be added when I get a chance to type it in!]

Installation of Fedora Core 3

Installation of Fedora Core 3 was uneventful. I first used the included Windows XP Pro to make some restore CDs - in case I wanted to sell the laptop later with its original operating system. This requires 3 CDRs, and was painless. I burned an extra set-of-three just to be safe. I then completely wiped the 40GB drive clean of Windows XP and installed Fedora Core using the default install for laptops plus some development tools, because I'm always compiling stuff. I also deselected the "rhgb" package, since it almost always causes me trouble post-install.

After installing, I added multimedia stuff and downloaded the current FC3 updates from FreshRPMs. With the latest Fedora Core 3 kernel, you get the ipw2200 driver - necessary for the internal wireless card to work and not included in the installation kernel. I then downloaded the hsfmodem drivers from Linuxant. and installed them for modem support.

Configuration of Fedora Core 3

Video configuration

This notebook has a 1024x600 display, which Fedora Core 3 will not cope with out of the box. The screen is set up as 800x600, which wastes perfectly good pixels. To fix this, you need to use the gtf utility:

gtf 1024 600 60

You'll get a modeline to put in your /etc/X11/xorg.conf file.

# 1024x600 @ 60.00 Hz (GTF) hsync: 37.32 kHz; pclk: 48.96 MHz
Modeline "1024x600_60.00" 48.96 1024 1064 1168 1312 600 601 604 622 -HSync +Vsync

Delete the _60.00 from the modeline, and put this in the Monitor section of your /etc/X11/xorg.conf file. Also add "1024x600" to the Screen section. Log out, then kill the X server with control-alt-backspace. The server will restart in 1024x600 mode.

ACPI power management

With no changes to kernel parameters, ACPI suspend locks up on resume. Booting with acpi_sleep=s3_bios lets the notebook suspend and resume correctly. You will also have to stop the Conexant modem drivers (if you are using them) using hsfstop before suspending, otherwise the laptop will refuse to suspend. It's also necessary to switch to a text-mode console before the suspend, otherwise you will end up with a frozen/garbled X display on resume. Sound like a pain in the butt? Not really, since all of this can be scripted via ACPI events.

The only way I've found to wake the laptop from suspend is to press the power button. This is a bit of a problem on a default Fedora Core 3 setup, since Red Hat thoughtfully provides an ACPI script that shuts down the laptop when the power button is pressed. So, with a default setup, the laptop will wake up, then immediately execute shutdown -h now! To prevent this, either delete or disable /etc/acpi/events/sample.conf.

I've since switched from ACPI suspend-to-disk to exclusiovely using software suspend (to disk), so I'm not messing with the sleep scripts anymore.

The silver buttons on the laptop, the labelled function-key combinations, and the volume "knob" all trigger ACPI events. This let me tell the laptop to go into suspend mode by pressing Fn-F3, adjust the volume up or down with the volume knob, and reset the mixer to sane settings by using the silver "surround" button. Without setting up any ACPI scripts, the only silver buttons that work are the screen brightness controls.

Volume scripts

To make the volume up/down work, add these scripts to /etc/acpi/events:

/etc/acpi/events/volup:

# Volume dial up raises master volume

event=hotkey ATKD 00000030
action=/usr/bin/amixer set Master 5+ unmute

/etc/acpi/events/voldown:

# Volume dial down lowers master volume

event=hotkey ATKD 00000031
action=/usr/bin/amixer set Master 5-

ACPI suspend scripts

You need two scripts in /etc/acpi/events and three in /etc/acpi/actions to get ACPI sleep working.

/etc/acpi/events/sleepbtn:

# Suspend the machine with Fn-F3 (sleep button)

event=hotkey ATKD 0000006c
action=/etc/acpi/actions/sleep.sh

/etc/acpi/events/power:

# Power on/off button

# The MP-XV481 only wakes from suspend with the power button, so
# we don't want the computer to immediately shut down when
# it's awakened!

event=button/power.*
action=/etc/acpi/actions/power.sh

These scripts should all be executable.

/etc/acpi/actions/sleep.sh:

#!/bin/bash

# For use by the power button script
rm -f /tmp/suspend
touch /tmp/suspend

# cpuspeed
/sbin/service cpuspeed stop

# kill conexant modem
/usr/sbin/hsfstop

# get rid of wireless
/sbin/modprobe -r ipw2200

# usb sometimes causes problems
/sbin/modprobe -r ehci_hcd
/sbin/modprobe -r uhci_hcd

# sync drives
/bin/sync

# switch to a text terminal
/usr/bin/chvt 1

# suspend
echo mem > /sys/power/state

# wake up
/sbin/hwclock --hctosys
/usr/bin/chvt 7
/sbin/modprobe ehci_hcd
/sbin/modprobe uhci_hcd
/sbin/service cpuspeed restart

# Done, but run another script to delay
# deletion of our temporary file. This
# prevents the laptop from shutting
# down after we wake it up.

/etc/acpi/actions/finishsuspend.sh&
exit

/etc/acpi/actions/finishsuspend.sh:

#!/bin/bash

# Wait a minute, so the power.sh script will notice we've just
# suspended.

sleep 1m
rm -f /tmp/suspend

/etc/acpi/actions/power.sh:

#!/bin/bash

if [ -e /tmp/suspend ]; then

# We're in the middle of returning from suspend - don't
# power down!

exit
else

# Otherwise, we assume that the user wants to shut down
# the machine.

/sbin/shutdown -h now

fi

You can ignote the power and power.sh scripts if you don't want the power button to shut the machine down. You do have to delete Fedora's /etc/acpi/events/sample.conf script if you want to use suspend.

More ACPI fun

I need to make the other buttons on the laptop do something.

Here's a list of things and what ACPI events they generate, for future event scripts.

Wireless switch on hotkey ATKD 0000005e
Wireless switch off hotkey ATKD 0000005f
Surround button hotkey ATKD 00000073
Key lock button No event, but enables/disables the four keys listed below
Stop button hotkey ATKD 00000043
Play/pause button hotkey ATKD 00000045
Track backwards button hotkey ATKD 00000040
Track forwards button hotkey ATKD 00000041
Fn-F10 (Display switch) hotkey ATKD 00000061, hotkey ATKD 00000062, hotkey ATKD 00000063 (this sequence repeats)

ACPI suspend/resume video problems: Updated June 16th, 2005

On Fedora Core 3, 3D graphics (DRI/DRM) will not work after a suspend/resume cycle. To make them work, you will probably have to wait for Red Hat to fix this bug (Bug #159960), which from Googling probably affects everyone with Intel 855-based video cards. I've learned that apparently the Ubuntu deveolpers have fixed the problem, so if you have a JVC MiniNote (or another notebook with Intel-based video), you might want to isntall Ububtu instead of Fedora Core. Since I'm in the middle of ten weeks of teaching summer classes, I don't have the time to completely reinstall my machine, so I'm trying to make Fedora behave for the time being.

This is likely still a problem with Fedora Core 4 (among its many X-related problems...). If you have an Intell 855 or similar graphics card in your machine that shows this problem under FC3 but not FC4, please let me know!

Since trying to use a DRI application after a resume will sometimes cause the X server to crash in such a way that you have to reboot to get the display back, I've been looking for a solution to the problem aside from disabling 3D (which I need). So far, the best solution I've found that does not require rebuilding X and the kernel is to compile this C program and run it after resuming from suspend. This will reactivate 3D (and most importantly, prevent the X server from crashing if you try to use 3D). There's a catch, though. Until you actually close and restart the entire X server, 3D applications will run, but up to 1/3 slower than normal (depending on the application). Still, it beats a crash or no 3D at all.

I've found another trick that works. Install these updated X drivers.

Don't suspend yet, or the kernel will panic. The Fedora kernels don't like these new drm modules (but you need the xorg driver updates for suspending to work). Then, install the source RPM for your Fedora kernel and edit the drivers/char/drm/i915_drv.h file. Change the line #define DRIVER_MINOR 1 to #define DRIVER_MINOR 2 . Rebuild the i915.ko module, install it, and suspend and resume should work with no further hacks and with full-speed 3D.

These instructions are in very rough form at the moment, but I'm hoping the Fedora deveolopers will finally catch up to the Ubuntu developers and fix this bug. Given the state of Fedora Core 4, though, they've got a whole ton of other video-related bugs to fix, too.

Modem

Not much to say here. Download the appropriate driver RPM for the current Fedora kernel, install it, and you're set. Red Hat's internet connection wizard won't see the modem, but using /dev/modem for the modem will work.

If you delay inserting the hsf modules (or need to re-insert them after a suspend), make sure that you're not currently running an application that's using the sound card. If you are, the machine will completely lock up, and you'll have to hold down the power button to turn it off. Linuxant mentions this bug on their web site, but doesn't mention any solution other than making sure the sound hardware isn't being used before starting the hsf drivers.

Printing

Fedora Core 3 will autodetect and automatically set up a print queue for USB printers when they're plugged in. This is quite nice. Unfortunately, when FC3 sees my Samsung ML-1430 laser printer, the queue added defaults to a page size of A4. This makes all printouts the wrong size. Changing the page size with system-config-printer works, but only until the printer is disconnected. When reconnected, FC3 sets up the printer with A4 paper again. I've worked around the problem by manually creating a print queue for the Samsung printer, but it'd be nice to fix the automatic system.

Oddly, when I manually created the print queue for the Samsung, the default paper size was set to US Letter, and not A4.

USB

This laptop has two USB2 ports on the left side.

No configuration required. The two USB2 ports work out of the box. You might have to unload the USB modules when suspending, though. The USB ports also remain powered during suspend, so unplug any USB devices before suspending unless you want them to suck battery power..

I've noticed that using the USB ports also prevents the CPU from going into power-saving mode when using the machine normally. This is no big deal when on AC, except the machine will get noticably warmer with a USB device plugge4d in than it does without one.



TuxMobil - Linux on laptops, notebooks, PDAs and mobile phones
Click this link to go back to the top
This web site was last updated December 19, 2009.