-Still not working
-"lspci" output
-Installing linux (*)
-TV out
-LCD / CRT switching
-Wired LAN
-Wireless LAN
-ACPI & kernel (*)
-Suspend / hibernate
-Centrino's speedstep
-Battery life
-Keyboard, extra buttons & function buttons (*)
-3D (DRI)
-Optimizing your linux (*)
Benq Joybook 7000 & (K)Ubuntu linux (debian based)

Created 7/6/2005 by Joan Tur. Eivissa - Spain
Updated 19/03/2006 (*)

TuxMobil - Linux on Laptops, Notebooks, PDAs and Mobile Phones

Introduction (updated 30/07/05)
This page has been written for you to know about my experiences with linux on my brand new Benq JB7000 laptop. Feel free to contact me at joantur_AT_clubibosim.org if you have any question (espa˝ol, catalÓ, english, franšais & (ein bischen) deutsch) ;)

I found information about this laptop in the internet; there's one forum about this laptop (not about linux on this laptop), and good reviews here and here. Have a look at them if you'd like to know more about it (updated 30/07/05).

It's a well designed laptop; it's light (2 kg), strong (magnesium alloy casing), runs cool -in fact it's got the coolest keyboard I've found on a laptop-, it's got a very nice screen (bright and good resolution), and runs very quiet. Shame the battery doesn't last too much, only about 3 hours, and there's no way to avoid paying for a propietary OS.

You can find more info about linux on laptops at TuxMobil.org and Linux-laptop.net. There's also another web page about this laptop here made by Hauke.
Back to top.

Model details: Benq JB7000 (aka DH7000 & JB7000-S37)
  • Pentium-M 1,6Ghz (Dothan, 2MB, 400mhz fsb)
  • 60Gb 5.400 rpm Hitachi HTS548060M9AT00
  • 1x512MB DDR SoDimm PC2700 333mhz (I've added a second 512MB SoDimm)
  • 14" WXGA 200 nits display (1280x768)
  • DVD+/-RW 8x Matsushita UJ-831S
  • 4 USB 2.0 (1 left, 2 rear, 1 right)
  • Ati Radeon Mobility 9700 with 64MB (RV350)
  • Built in Realtek 8139c
  • Built in Intel Pro/Wireless LAN 2200BG
  • IrDA
  • Built-in modem
  • Firewire
  • 1 Pcmcia
  • VGA out
  • S-Video
  • 1,95 kg
  • 4 in 1 card reader
  • Remote control for viewing films & listening to music
Back to top.

Still not working (updated 06-12-05)
Feedback is welcome!! ;)
  • The 4 in 1 card reader is not supported. It's been made by Texas Instruments (have a look at the "lspci" output.
  • The battery does not show the real remaining time (bios version: 2.04). I guess it's because "cat /proc/acpi/battery/BAT1/state | grep rate" always shows "present rate: 850 mA".
  • Solved! (06/12/05): when plugging the headphones in, the integrated speakers were not muted; it's been solved in 2.6.15-rc1 kernel (remember that I use ck patches, so I'm not sure if the solution is in the kernel source or in the ck patches).
  • Solved! (8/7/05): IRQ11 is disabled at boot, making devices connected to that IRQ unusable... you can read the detailed explanation at the USB section; the affected devices are USBs 3 & 4 (added 7/7/05)
  • Despite Hauke says he has been able to stablish a connection with his Palm device using IRDA, my KUbuntu says no serial device is found. More info at the IrDA section (added 30/07/05).
Back to top.

"lspci" output
0000:00:00.0 Host bridge: Intel Corp. 82855PM Processor to I/O Controller (rev 21)
0000:00:01.0 PCI bridge: Intel Corp. 82855PM Processor to AGP Controller (rev 21)
0000:00:1d.0 USB Controller: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 03)
0000:00:1d.1 USB Controller: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 03)
0000:00:1d.2 USB Controller: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 03)
0000:00:1d.7 USB Controller: Intel Corp. 82801DB/DBM (ICH4/ICH4-M) USB 2.0 EHCI Controller (rev 03)
0000:00:1e.0 PCI bridge: Intel Corp. 82801 PCI Bridge (rev 83)
0000:00:1f.0 ISA bridge: Intel Corp. 82801DBM LPC Interface Controller (rev 03)
0000:00:1f.1 IDE interface: Intel Corp. 82801DBM (ICH4) Ultra ATA Storage Controller (rev 03)
0000:00:1f.5 Multimedia audio controller: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 03)
0000:00:1f.6 Modem: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 03)
0000:01:00.0 VGA compatible controller: ATI Technologies Inc RV350 [Mobility Radeon 9600 M10]
0000:02:04.0 Network controller: Intel Corp. PRO/Wireless 2200BG (rev 05)
0000:02:07.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
0000:02:09.0 CardBus bridge: Texas Instruments: Unknown device 8031
0000:02:09.2 FireWire (IEEE 1394): Texas Instruments: Unknown device 8032
0000:02:09.3 Unknown mass storage controller: Texas Instruments: Unknown device 8033
Back to top.

Installing linux (updated 19/03/06)
I've choosen KUbuntu (version 5.04) because it does most of the dirty work (speedstep, ease of use, latest kde, laptop mode). It has detected and configured automatically the lcd screen resolution.

After installation I've modified /etc/apt/sources.list to add universe, multiverse, backports and plf repositories; you can download it (breezy's) here (updated 19/03/06).

Here you can get the output from dmesg.
Back to top.

Xorg (updated 07/09/2005)
(K)Ubuntu uses Xorg instead of Xfree. By default, Xorg uses the ati driver, providing good 2D & DPMS. If you're interested in 3D, have a look at the 3D section.
The card the Benq uses is an Ati Radeon Mobility 9700 (RV350 chip), and it's got 64MB. You can download my Xorg config file here.
Back to top.

TV Out
Back to top.

LCD / CRT switching
Back to top.

Touchpad (updated 07/09/05)
It's got a synaptics touchpad (model 1, firmware 5.9). It works fine out of the box, and can be disabled using Fn+F6 to avoid errors when typing.
Back to top.

Wired LAN (updated 18/09/05)
Works fine (8139too module). You can use ifplugd (1) to set your wired nic up automatically when a cable is pluged; here you can get my /etc/default/ifplugd config file.

Note that it's been detected as eth1, as eth0 belongs to the wireless nic; this is an odd behaviour, but can easily be solved adding 8139too to the /etc/modules file (updated 18/09/05).

(1) It only works if "ifconfig eth0 down" is run at startup (don't know why).
Back to top.

Wireless LAN (updated 18/9/05)
It's got an Intel ipw2200BG wireless nic, supported by linux; you can get latest version of the driver here (*).
This Benq has got a hardware radio kill switch, so it works out of the box (tested with v.1.0.4).
I'm using waproamd to manage connections to wep protected ap's (*).

Note that it's been detected as eth0, as eth1 belongs to the wired nic; I strongly recommend you to force the wired nic to become eth0, as explained in the Wired LAN section (updated 18/09/05).

Added 1/8/05: if you cannot get it working back from suspend, and you get messages similar to ipw2200: failed to send TX_POWER command, the solution is to remove the usb related modules, as explained in the suspend section.

(*) I'm using waproamd because my router only supports WEP, but since 1.0.5 has been splitted in 2 packages, ieee80211 & ipw2200, Waproamd is only working for me with ieee80211-1.0.1 & ipw2200-1.0.5 when using 2.6.12-ck6 kernel (the most stable suspending to ram to date), but 1.0.5 & 2.6.13 kernel or 1.0.6 with any version of kernel makes waproamd to stop working silently... do any of you have other solution? 8-? Added 11/9/05
Back to top.

I've read at Hauke's site that this winmodem has got drivers for linux, but I haven't tested it (no need).
Back to top.

ACPI & kernel (updated 19/03/06)
I'm now using vanilla kernel 2.6.15 with archck7 patch; here you can get my .config file (updated 19/03/06).

I'm also using a modified speedstep-centrino.c file, with lower speeds & voltages; more info at the optimizing your linux section.

Important: the above kernel config file has reiserfs built into the kernel (as I'm using it for "/") and 1G patch=y (it breaks vmware); change any of those settings if they don't match your configuration.
Back to top.

Suspend / hibernate (updated 18/09/05)
Both suspend and hibernate work, and now you don't have to unplug usb devices prior to suspend (updated 1/8/05); you only have to unload usbhid, uhci_hcd & ehci_hcd before suspending (thanks to Marius Gedminas, read in his post at ubuntu-users list). Here you can download my /etc/default/acpi-support file (note that it belongs to Ubuntu acpi-support package!).

-Suspend to ram: I've read a vaio's user need to append acpi_sleep=s3_bios to kernel boot; i've tryed the same, and it works.
Updated 11/9/05: the wifi connection, at least at home (I'm using dhcp, wep is enabled), no longer needs to be restarted after resume (ieee80211-1.0.1, ipw2200-1.0.5, kernel 2.6.12 + ck6 patch, waproamd + ifplugd).
Note: Fn+F2 (shown as Zz) suspends to ram out of the box with (K)Ubuntu.
Also note that choosing suspend from the klaptop menu doesn't work for me, probably because they don't use the same suspending scripts (why?!).

-Suspend to disk: you have to append resume=/dev/XXX to kernel boot; of course you'll have to match your swap space, and it has to be at least the same size as your ram. In this configuration wifi still works fine for me, so no restart is needed.
Back to top.

Centrino's speedstep (updated 8/7/05)
It seems that Dothan processors are not supported by the centrino-speedstep module, so the default driver is acpi-speedstep (1)... anyway I've found an unnoficial patch to add support for our processor. You can download the patch here, or the already updated speedstep-centrino.c here.

Updated: I've read in the internet about minimum PentiumM speeds & voltages, and you can probably spend some watts here. Have a look at the Optimizing your linux section (added 8/7/05).

KUbuntu uses powernow to manage Centrino's SpeedStep support, and you can choose it to be at full throttle (performance), minimum speed (powersave), or userspace/ondemand, where powernow will switch to a higher speed if needed. Of course you can use any of the other options available, like cpudyn.

(1) I've read at the internet that acpi-speedstep uses more energy, and you can only use the maximum and minimum cpu speed, so 800, 1000, 1200 & 1400 mhz are not available.
Back to top.

Battery life (updated 10/7/05)
Battery information is wrong (bios version is 2.04), because "cat /proc/acpi/battery/BAT1/state | grep rate" always shows "present rate: 850 mA". That would be perfect, because the battery capacity is 4.300 mAh (that means 4.300/850 = 5 hours battery life)...

... but it is not... mine lasts a maximum of 3 hours, using powernow set to powersave, laptop-mode on (hd is stopped after 20" of inactivity, lcd is off after 2 minutes & readahead is set to 8MB) and using lower lcd brightness (also tricks described in "optimizing your linux").

Have a look at Optimizing your linux to get more info about laptop mode & other tricks to make the battery last more (updated 10/7/05).
Back to top.

DVD+/-RW (updated 12/6/05)
Works fine (I'm using k3b to burn cds/dvds).
Back to top.

Works fine out of the box (tested with a Prism based 802.11b card).
Back to top.

USB (updated 8/7/05)
It's got 4 usb2 connectors, 1 on the left, 1 on the right and 2 on the back side; the left one and one of the two at the back (the one at the bottom) work fine with both usb1 & usb2 devices.

The other two are managed through IRQ11, and it is disabled at boot showing some errors, making all devices connected to usbs 3 & 4 unusable (the mouse hasn't got a smooth movement for instance). Here you can see the error logs:

Solved! (8/7/05): thanks to feedback got from Eduard Bloch I've compiled 2.6.13-rc2-mm1, booted with "irqpoll" kernel parameter and... the usbs that did not work now do work!! Note that the error messages still appear, but it works 8-)

irq 11: nobody cared!
[] __report_bad_irq+0x2a/0xa0
[] handle_IRQ_event+0x30/0x70
[] note_interrupt+0x70/0xb0
[] __do_IRQ+0x110/0x120
[] do_IRQ+0x19/0x30
[] common_interrupt+0x1a/0x20
[] handle_IRQ_event+0x20/0x70
[] __do_IRQ+0xb4/0x120
[] ohci_devctl+0x76/0x650 [ohci1394]
[] do_IRQ+0x19/0x30
[] common_interrupt+0x1a/0x20
[] hpsb_reset_bus+0x18/0x40 [ieee1394]
[] delayed_reset_bus+0xbf/0xe0 [ieee1394]
[] worker_thread+0x1d9/0x2a0
[] delayed_reset_bus+0x0/0xe0 [ieee1394]
[] default_wake_function+0x0/0x20
[] schedule+0x32b/0x610
[] default_wake_function+0x0/0x20
[] worker_thread+0x0/0x2a0
[] kthread+0xaa/0xb0
[] kthread+0x0/0xb0
[] kernel_thread_helper+0x5/0x18
[] (usb_hcd_irq+0x0/0x70 [usbcore])
[] (usb_hcd_irq+0x0/0x70 [usbcore])
Disabling IRQ #11
Back to top.

Back to top.

IrDA (updated 18/09/05)
Despite Hauke says he has been able to stablish a connection with his Palm device using IRDA, my KUbuntu says no serial device is found. Here's the dmesg output after loading the serial driver:
Serial: 8250/16550 driver $Revision: 1.90 $ 8 ports, IRQ sharing enabled
As no tty* line appears after loading the driver I may be missing some module, but I don't know which one 8-? Any idea? (new 30/07/05).

Updated 18/09/05: As Hauke is using Suse, I've booted the 9.3 live DVD to know if this distro could detect and use my irda port... no luck, it seems both laptops, Hauke's and mine, have got different irda hardware 8-(
Back to top.

Keyboard, extra buttons & function buttons (updated 19/03/06)
Keyboard is bigger than usual (laptop measures 34 cm long) and works fine. I'd personally prefer the Fn & Ctrl keys to be swapped.

Working fine:
-brightness control keys work (Fn+F4 & F5),
-Fn+F6 enables & disables the touchpad (it's useful!),
-"Blq Num" key enables & disables the numeric keypad,
-Fn+F2 = sleep is configured automatically by KUbuntu,
-from the following keys we get a keycode (I've used xev), so they can be given a function with e.g. lineakd:
-Internet & mail function keys,
-Fn+F7, F8 & F9 = mute, volume down, volume up,

Not working Now working (1):
-P1 & P2 function keys,
-Fn+F1 = "?"... help? 8-?
-Fn+F10 = power?
-Fn+F11 = irda on/off,
-Fn+F12 = wifi on/off.

Not tested:
-Fn+F3 = lcd/crt switching,

(1) Ewan Colsell has had success with hotkey-setup Ubuntu package; replace /usr/share/hotkey-setup/default.hk with his modified version (added 19/03/06); thanks, Ewan! ;)
Back to top.

Sound (updated 06/12/05)
The intel integrated sound card works fine with alsa, but I've had to play with the mixer, as it seemed to be muted. You can download my kmix config files here and here (1)

(1) I've changed something in kmix and lost sound again... and it's been a pain to get it back to work, so I've added the 2 configuration files above for any of you interested ;) Remember they are located in the usual place: ~/.kde/share/config/
Back to top.

3D (DRI) (updated 07/09/2005)
With Xorg's "ati" driver there's no 3D, so I've tryed Ati's fglrx v.8.16.20 driver successfully... shame it does not suspend to ram with Ati's driver 8-/
Back to top.

Optimizing your linux (updated 19/03/06)
I'm going to post here all tricks you're sending me:
  • I use to type on a text console very often, and I'm also used to the tab's behaviour when autocompleting commnads, but a long time ago I tryed a Knoppix live and noticed that autocompletion worked on this distro also with the commands' parameters !!
    F.i. after typing apt-get I can autocomplete the parameter install by typing a single "i" followed by one tab; and I can also get the name of the package I'm going to install autocompleted!! You can add this behaviour to your working linux by overwriting the file /etc/bash_completion with Knoppix one (you can download it from here). Added 22/09/05.

  • Thanks to acpi we can modify things like the temperature we like the fan to start/stop working. Our Benq has a very low trip point: 40║. I've set this trip point to 60║ when on battery, but you can give it any value:
    # echo 102:0:88:88:60 > /proc/acpi/thermal_zone/THZN/trip_points changes the trip point (*); you can modify /etc/acpi/power.sh acording to your needs.
    You can also change the fan from active to passive mode using # echo 1 > /proc/acpi/thermal_zone/THZN/cooling_mode (and back to active using 0 instead of 1 !!) (updated 07/09/05).
    (*) in an sudo only system (like Ubuntu), you can first get a root shell by typing sudo -s before following my instructions (thanks to Ivo Creusen & Gerardo Santove˝a, added 20/09/05).

  • Are you a Pentium-M owner? Did you know that you can lower the mhz down to 100 & the voltage down to 6,9v ??!! Here (updated 19/03/06) you can download the modified speedstep-centrino.c (it works fine with 2.6.15-archck7).
    The modifications made only apply to Dothan 725 processor:
    -all voltages are lower (and of course they work for me, but maybe not for you!) ;)
    -I've added a 300mhz speed at 6,9v.
    Also note that "Use ACPI tables to decode valid frequency/voltage pairs" has to be set to off (thanks to Luca Manganelli ;) ).

  • Syslogd writes to disk every 20 minutes by default (it's a "MARK" message to prove that it's still alive); you can disable this by changing SYSLOGD="" to SYSLOGD="-m 0" in /etc/init.d/sysklogd. Thanks to Matthias Friedrich (23/02/04).

  • Since kernel 2.6.6 we've got a new utility for laptops; it's called laptop mode, and it concentrates disk writings every amount of time (default is set to 10 minutes).
    This new feature, in addition to setting the HD spindown to, for instance, 20 to 60 seconds, makes your battery last longer. To make it work you have to use a script you can find at B. Samwel's page, or it can be in your distribution (look for something like laptop-mode package).
    It's installed by default in KUbuntu 5.04.

  • Using tmpfs for /tmp could also improve battery life and system performance; a wider explanation can be found at LinuxQuestions.org. Thanks to Sebastian Mangelkramer for the idea (new 01/07/04).

Help / suggestions are appreciated ;)
Back to top.