JVC MP-XP3210 Sub-notebook
After my Vaio sub-notebook had worked faithfully for me for nearly four years it died on me while I was travelling. But I always liked the small format and wanted a similar computer again. After some searching around I found the JVC MP-XP3210 which costs only half of what the Sony Vaio costs. It doesn't have all the features and extras, but who needs them anyway... And I could see from some other web pages that it Linux should work on it.
Thanks to the other web pages on Linux on JVC out there for initial help. See the link list below for those pages.
This describes a Linux Debian installation the way I did it. There are some other ways to install Debian and there are, of course, other distributions. See the link list below for some other pages.
Linux installation is more or less straightforward. The JVC comes without any CD or floppy drives, but a network install works or you can attach a USB floppy.
First step ist to partition the hard drives. The MP-XP3210 comes preinstalled with Windows XP with three partitions: Windows system (C:), Windows data (D:) and a recovery DOS partition. If you hold down ALT-F8 while booting you boot into this partition and can recreate the Windows XP system.
With Partition Magic I added a Linux swap and a Linux root partition. After that I copied all files needed for a Debian install (linux.bin, root.bin, basedebs.tar, loadlin.exe) to the Windows data partition (D:) and rebooted into the DOS partition as follows:
Reboot. Press Alt-F8 when the JVC logo appears. Press Ctrl-C when the first question appears. Press 'y' when the seconds question appears. You should now see a DOS prompt. Be carefull not to start the recovery process as it will repartition your harddrive to the original configuration!
Now start the debian installation by calling loadlin from partition D:
loadlin linux.bin initrd=root.bin root=/dev/ram
Now just follow the Debian install as usual. I just installed the base system and rebooted into that and did everything else by hand. But it should be possible to do a real network install. You might have to load the SiS 900 Ethernet driver from drivers.tgz.
By the way: You can see the BIOS by holding down Esc while booting and then pressing Alt-F2.
The keyboard is very small, even smaller than the one on the Vaio. Nothing for people with big fingers, but it works for me. Too small for hours of work, but ok for reading and writing email etc. It is a complete keyboard and most keys are at the right position. Mine has a German layout. The only annoying thing is that the "> < |" key is not to the left of the letter 'Y' but on the letter "Y" and must be used with the Fn key. And I can never remember which modifier key to press to get the symbol that I want. The "^" key is moved between "Esc" and "F1" and the "#" key is above the Return key, but you don't use them that often, so thats no big deal. There is one Windows key on the left and one Menu key on the right.
The JVC has a little stick between the G, H, and B keys as a mouse. There are three mouse buttons! I sometimes use an additional USB mouse. The X11 configuration supports both mice at the same time.
SiS 7018 chip which is supported by the standard kernel. Just compile it in (CONFIG_SOUND_TRIDENT, trident.o module).
The USB chip SiS 7001 is supported by the OHCI driver. Works out of the box.
Works out of the box. From my Sony Vaio notebook I have an external CD-ROM drive (PCGA-CD5) with a PCMCIA card which also works.
SD card slot
The machine has a SD card slot. SD cards are an "improved" version of MMC cards with DRM support. They'll probably never work in Linux machines because a propriatary driver is needed and you don't get any information without signing an NDA and paying lots of money. But MMC cards should work in this slot. The Ricoh 476 or 576 chip that also does the PCMCIA stuff seems to be responsible for the SD/MMC support also. At the moment I can't find any Linux support for this chip.
The MP-XP3210 doesn't have builtin IrDA support.
The builtin winmodem works like a charm. You need the driver from www.smlink.com (Not available any more). (Click on "Download", agree to the licence and you'll be asked which driver you want.) See the README file in the distribution for instructions. I am using the version 2.7.8 of the driver, the newer version 2.7.24 didn't work for me. The modem has problems connecting to my older ZyXEL 14.400 modem, but this can be fixed by sending the following AT command: AT+MS=132,0,4800,14400 before dialling.
After installation you'll have a device /dev/ttySL0 which will work like a normal serial modem. You probably want a link from /dev/modem to /dev/ttySL0.
There will be four kernel modules, of which you need the following three: slmdm.o (modem core), slfax.o (fax), and slamrmo.o (hardware).
Add the following line to /etc/modules.conf (or create a file /etc/modutils/slmdm with this content and call update-modules if you are using Debian):
alias char-major-212 slamrmo
I always compile my own kernels. Make sure to include ACPI support and not APM support. I haven't tried it but other people reported problems with APM.
I don't like modules so most things I need all the time anyway are compiled in. Here is my config-2.4.20 file.
The stock kernel 2.4.20 doesn't have all the new ACPI stuff. I used the last patch from the ACPI sourceforge project for the 2.4.20 kernel (acpi-20021212). Newer kernels already come with these patches included. I enabled all ACPI options in the kernel as follows:
# # ACPI Support # CONFIG_ACPI=y # CONFIG_ACPI_HT_ONLY is not set CONFIG_ACPI_BOOT=y CONFIG_ACPI_BUS=y CONFIG_ACPI_INTERPRETER=y CONFIG_ACPI_EC=y CONFIG_ACPI_POWER=y CONFIG_ACPI_PCI=y CONFIG_ACPI_SLEEP=y CONFIG_ACPI_SYSTEM=y CONFIG_ACPI_AC=y CONFIG_ACPI_BATTERY=y CONFIG_ACPI_BUTTON=y CONFIG_ACPI_FAN=y CONFIG_ACPI_PROCESSOR=y CONFIG_ACPI_THERMAL=y # CONFIG_ACPI_TOSHIBA is not set CONFIG_ACPI_DEBUG=y
There is now a /proc/acpi with lots of information about the machine. You get information about the status of the ac adaptor, battery, thermal, CPU, buttons, etc.
BTW: The internal battery runs for about 1.5 hours, the small external one for about 2.5 hours and the large external for about 3.5-4 hours. These are very rough numbers, because they depend a lot on what you are doing.
acpid can be used to capture info about the pushing of the power button and lid closure to start some program. This can be used to shutdown the notebook gracefully if the power button is pressed.
The following buttons will be seen by the ACPI system: Power, Sleep (Fn+F3) and Lid. For some reason the lid button generates two identical events when closing and opening respectively, so there is no way to reliably figure out whether the lid was closed or opened. Looking at the ACPI developer mailing list this seems to be a know problem. Someone posted a workaround on the list. (Sorry, the links that used to be here don't work any more.)
The screen brightness buttons (Fn+F1, Fn+F2) work without generating any ACPI events. That is they work sometimes and sometimes not and I haven't figured out yet why that is. The three buttons to regulate sound (Fn+F5-F7) don't work at all. The suspend-to-disk button (Fn+F4) doesn't work.
You can throttle the processor by writing to /proc/acpi/processor/CPU0/throttling:
echo -n NUMBER >/proc/acpi/processor/CPU0/throttling
NUMBER is a value between 0 (no throttling) and 7 (maximal throttling). Use cat to read the current value from this file:
This makes the processor much slower, but I can't say whether it actually saves much battery.
The JVC can be put to sleep by writing a 1 to /proc/acpi/sleep:
echo -n 1 >/proc/acpi/sleep
This will sometimes blank the screen, sometimes not and sometimes it will show an ugly "broken" screen. The machine can be woken up by pressing the power button. Unfortunately the keyboard is messed up then, which can be fixed by calling kbdrate:
/sbin/kbdrate -r 30 -d 250 </dev/console
There are other sleep modes like suspend-to-disk, but they seem not to work in 2.4 kernels.
The subnotebook uses the somewhat strange resolution of 1024x600 which is no problem for the driver. The graphic chip is a SiS 630/730 which is theoretically supported by stock X11, but I needed the newest drivers for SiS VGA chipsets and Linux and I needed to recompile the kernel to get this to work!
Here are my two XF86Config-4 files:
You can use the "Virtual" feature of the X server with both files and scroll your real 1024x600 screen inside a virtual 1024x768 (or larger) screen. Also the dual head mode supports Xinerama or separate screens.