NX 7010
From FrugalWiki
i18n |
---|
English |
Français |
Magyar |
Contents |
Introduction
I'm fond of the frugalware linux distribution, for many reasons, especially the -current branch which is very often updated and provide latest versions of linux.
Frugalware is easy to install for the user that knows what is a partition. The harder step yet (at the beginning of the year 2008) is that we have to manually setup the partition table. Less harder is to assign partitions to mount points. The rest is only a question of ability to press the enter key :-).
I'm going to share my experience on the Compaq Nx7010 laptop.
Typo conventions
Two quite important things on what is following:
# Line starting by # are some command entered when logged as root. $ Line starting by a dollar are those entered when logged as any user.
Software information
- Frugalware current (was 0.6 at the time I wrote this wiki)
Works well, with minimal hardware detection/installation. I have to setup the wifi, and the X server first.
- Note
I really likkke frugalware, even if a lot of job is to be done to install all the hardware. This is the price I'm really ready to pay in order to work with this great distro. I hope this wiki will help others.
Hardware information
- Laptop : Compaq nx 7010
- Vendor : Hewlett-Packard
- Bios
- Cpu : Pentium(R) M 1600 Mhz (100Mhz bus)
- Memory : 512MB (256MB added) (1GB max)
- Graphic : ATI Radeon R250 Mobility FireGL 9000 (66Mhz)
- FireWire IEEE 1394 interface
- Network
- Ethernet Realteak 8139, 100MB/s
- Wireless Intel Pro wireless 2100 3B
- PCMCIA : 1 slot
- Hard drive : 40Go IDE (replaced the old one)
- Audio : Intel AC'97
- Modem : Intel AC'97 modem
- Mmc card reader
- Screen : Flat LCD screen (1280x800)
- Touchpad
Audio configuration
- Hardware : Intel 82801DB (A'C 97)
The cards is well configured, but the audio output is muted... (what a crazy choice alsa guys !...). We just have to enable the output, with alsamixer for example.
# pacman -S alsa-utils sox (sox is here for the play utility) # alsamixer
Then you can raise PCM, Master and Master M volume and ... Mute the Headphone (MM must appear over <Headphon>) Mute Line Jac (MM over <Line Jac>).
- Testing the sound
# cd /usr/share/sounds # ls *.wav ( select one wav file) # play ???.wav (the first wav file found).
- See also : The Multimedia keys section of this page.
Video installation
Installing the driver
The ATI chip works well, using the radeon driver, just replace the default installed driver (vesa for me) with the more performant radeon one :
Configuration file is /etc/X11/xorg.conf I've started with the default configuration file.
# pacman -S xf86-video-ati
Section "Device" #Option "ShadowFB" # [<bool>] #Option "DefaultRefresh" # [<bool>] #Option "ModeSetClearScreen" # [<bool>] Identifier "Card0" Driver "radeon" VendorName "ATI Technologies Inc" BoardName "Radeon R250 [Mobility FireGL 9000]" BusID "PCI:1:0:0" EndSection
Setting the resolution
On this laptop, the lcd flatpanel screen has a 1280x800 resolution. So you have to edit your /etc/X11/xorg.conf in order to setup an adapted screen resolution. Search for the screen section of your xorg.conf file :
Section "Screen" Identifier "Screen0" Device "Card0" Monitor "Monitor0" DefaultDepth 24 SubSection "Display" Viewport 0 0 Depth 16 Modes "1280x800" "1024x768" "800x600" "640x480" EndSubSection SubSection "Display" Viewport 0 0 Depth 24 Modes "1280x800" "1024x768" "800x600" "640x480" EndSubSection EndSection
$ glxgears 5037 frames in 5.0 seconds = 1007.336 FPS
1007 fps... not so bad. The opengl layer works. I may add here some more information about games and fps if needed.
Installing Radeon Tools
Video is ok, but I cannot anymore view my DVD's on my video projector :-( I would like to use external DAC and to switch off the LCD panel while looking a DVD or a Divx...
See how the frugalware team is cool : I've proposed them to include radeon tool to there distro and this has been done quite quickly. You can now skip the rpm step and use this step instead of the rpm installation :
# pacman -S radeontool
This tool could be removed from the distro, so you may still be able to install the rpm : Go to this url http://fdd.com/software/radeon. and download the latest rpm package. it was the radeontool-1.5-1.i386.rpm when I wrote this wiki.
Then, install the rpm :
# rpm -Uvh radeontool-1.5-1.i386.rpm
Now it is possible to duplicate the screen on the external video connector:
# radeontool dac on
And if you really want to be in the dark, and switch off the LCD screen while watching your movie :
# radeontool light off
Network
Introduction
There is two interfaces : - The Ethernet interface (eth0) - The wireless interface (wlan0, ipw2100).
For the first one, there is nothing to configure, all has been setup by the installer. The default network configuration is to use the Ethernet interface (eth0 for me).
But I want to use the wireless one...
First of all, we have to install wireless_tools, and ipw2100 things:
# pacman -S ipw2100-firmware wireless_tools
At this point, issuing a iwconfig shows that no wireless interface is detected :-(
# iwconfig lo no wireless extensions. eth0 no wireless extensions. eth1 no wireless extensions.
This is probably because I've just installed the firmware package. So I have to reload the module :
# rmmod ipw2100 # rmmod ieee80211 # modprobe ipw2100 # iwconfig ... eth2 unassociated ESSID:off/any Nickname:"ipw2100" ...
That's better ! No I have to setup the ESSID and the KEY
At this point, there are three solutions
- Do it manually
- Use netconfig (easy way)
- Use gnetconfig
# pacman -S gnetconfig
I'll explain here the two first methods, manually and netconfig. My preference goes to netconfig. I've wrote how to do it manually because this is interresting in my point of view to know how to do. This can be also a falldown step if the netconfig way does not work.
You may skip the manual method describe after so...
Setup the wireless card using the command line
- Quick readers:
# iwconfig your_interface essid YOUR_ESSID key FADA824323423FE.... # dhclient your_interface # ifconfig eth0 down # route add default gw ip_of_gateway your_interface
- Long explanation
This is interesting to do this quick test. My wireless access point has a WEP key. Keep in mind that WEP is very weak (I've cracked my own WEP in 7 minutes...). WPA is more strong, and seems to be supported by frugalware. I'll try to add info about WPA here a day...
So at this point, the firmware has been uploaded into the wireless card, iwconfig tells that eth2 supports wireless extensions, but ifconfig eth2 shows that eth2 is not connected. Of course, we did not entered yet any ESSID nor a wep key ! Here is how to do, you may replace eth2 by your own wireless interface :
# iwconfig eth2 essid YOUR_ESSID key FADA824323423FE.... Replace YOUR_ESSID and the fake key with yours.
# ifconfig eth2
eth2 Link encap:Ethernet HWaddr 00:0C:F1:10:04:12 inet6 addr: fe80::20c:f1ff:fe10:412/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:12 dropped:0 overruns:0 frame:0 TX packets:3 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 b) TX bytes:220 (220.0 b) Interrupt:5 Base address:0x2000 Memory:90000000-90000fff
Hum... Still no IP address... We have to ask one to the router
# dhclient eth2 Internet Systems Consortium DHCP Client V3.0.5 Copyright 2004-2006 Internet Systems Consortium. All rights reserved. For info, please visit http://www.isc.org/sw/dhcp/ Listening on LPF/eth2/00:0c:f1:10:04:12 Sending on LPF/eth2/00:0c:f1:10:04:12 Sending on Socket/fallback DHCPDISCOVER on eth2 to 255.255.255.255 port 67 interval 8 DHCPOFFER from 192.168.0.254 DHCPREQUEST on eth2 to 255.255.255.255 port 67 DHCPACK from 192.168.0.254 SIOCADDRT: File exists bound to 192.168.0.20 -- renewal in 415454 seconds.
Yes !!! See the last line, I have a IP address. Next step : shut down eth0 (the Ethernet cable) and see if I'm still connected to internet :
# ifconfig eth2 (ensure we have an IP address with Wifi) ... net addr:192.168.0.20 Bcast:192.168.0.255 Mask:255.255.255.0 ...
We have an IP address (192.168.0.20), let see where IP packets are going through :
# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.0.0 * 255.255.255.0 U 0 0 0 eth0 192.168.0.0 * 255.255.255.0 U 0 0 0 eth2 loopback * 255.0.0.0 U 0 0 0 lo default 192.168.0.254 0.0.0.0 UG 0 0 0 eth0
We can see here that the default gateway is eth0 (UG), and that IP packets can go out through eth2. We are going to force eth2 to be the default route. First read the default line above, and keep the same IP address (192.168.0.254).
# ifconfig eth0 down (replace by your Ethernet interface) # route add default gw 192.168.0.254 eth2 (replace the IP address and eth2) # route 192.168.0.0 * 255.255.255.0 U 0 0 0 eth2 loopback * 255.0.0.0 U 0 0 0 lo default 192.168.0.254 0.0.0.0 UG 0 0 0 eth2
Ok, the gateway is now eth2 (wireless). eth0 is down. So if internet is still working, the wireless is ok !
# ping www.google.com 64 bytes from nf-in-f103.google.com (64.233.183.103): icmp_seq=1 ttl=245 time=56.2 ms ...
Hourra !!!! But this configuration is volatile. Next time you boot, no wireless...
# cat /etc/sysconfig/network/default [eth0] options = dhcp
Yes, eth0 is the only interface to be setup during the boot... Let see the netconfig method.
Using Netconfig to setup the network
If you have successfully setup your wireless card with the manually method described above, your are ready to setup the card with netconfig and all will probably work ! Of course you can use netconfig without testing first if the manual method works...
# netconfig ...
Now just fill the correct interface, with your ESSID and provide the correct key. All other field should be left with their default value, except the frugalware.net thing if you like (and if you have a domain).
Now let's have a look on what netconfig did on the default configuration file :
# cat /etc/sysconfig/network/default [eth2] essid = YOUR_ESSID key = ...ada7e... (your key) options = dhcp
eth0 has disappeared... We can just re-enter it manually using vim
# pacman -S vim (in case vim is not installed) # vim /etc/sysconfig/network/default And add this [eth0] options = dhcp
Now both eth0 and eth2 will be setup at the next boot. I'm going to boot and finish this network wiki...See you in few minutes...
Back after one boot.
Wireless is ok ! good point, but I missed the modification of default. If forgot to save the file, so, only eth2 was in the default file. Once re-edited and with the eth0 added, with the dhcp option, I do not want to boot one more time. This mistake will show for some of you how to restart only the network, not the computer:
# service interfaces restart # ifconfig ... eth0 and eth2 stuff
All is ok now. Both interfaces are setup, and will be after the boot.
Touchpad
The touchpad works well. But do not features things such as vertical / horizontal slider etc... I'll try to fix this and add information here.
ACPI
TODO :-)
Extra hardware information
Here is the output of lspci
# lspci
00:00.0 Host bridge: Intel Corporation 82855PM Processor to I/O Controller (rev 03) 00:01.0 PCI bridge: Intel Corporation 82855PM Processor to AGP Controller (rev 03) 00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 01) 00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 01) 00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 01) 00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 01) 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 81) 00:1f.0 ISA bridge: Intel Corporation 82801DBM (ICH4-M) LPC Interface Bridge (rev 01) 00:1f.1 IDE interface: Intel Corporation 82801DBM (ICH4-M) IDE Controller (rev 01) 00:1f.3 SMBus: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 01) 00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 01) 00:1f.6 Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 01) 01:00.0 VGA compatible controller: ATI Technologies Inc Radeon R250 [Radeon Mobility 9200] (rev 01) 02:00.0 FireWire (IEEE 1394): VIA Technologies, Inc. IEEE 1394 Host Controller (rev 80) 02:01.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 20) 02:02.0 Network controller: Intel Corporation PRO/Wireless LAN 2100 3B Mini PCI Adapter (rev 04) 02:04.0 CardBus bridge: ENE Technology Inc CB1410 Cardbus Controller (rev 01)
And the output of more verbose lswh
# lshw compaq description: Notebook product: Compaq nx7010 (DJ342T#ABF) vendor: Hewlett-Packard version: F.55 serial: CND4090BPX width: 32 bits capabilities: smbios-2.3 dmi-2.3 configuration: boot=normal chassis=notebook uuid=947FF8E6-D269-D811-0BA4-6699080BF529 *-core description: Motherboard product: 0860 vendor: COMPAL physical id: 0 version: 8051 Version 24.56 *-firmware description: BIOS vendor: Hewlett-Packard physical id: 0 version: 68BAL Ver. F.55 (07/14/2005) size: 128KB capacity: 448KB capabilities: pci pcmcia pnp apm upgrade shadowing cdboot bootselect edd int13floppy720 int5printscreen int9keyboard int14serial int17printer acpi usb agp ls120boot smartbattery biosbootspecification netboot *-cpu description: CPU product: Intel(R) Pentium(R) M processor 1400MHz vendor: Intel Corp. physical id: 4 bus info: cpu@0 version: 6.9.5 slot: U10 size: 1400MHz capacity: 1400MHz width: 32 bits clock: 100MHz capabilities: fpu fpu_exception wp vme de pse tsc msr mce cx8 sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 tm pbe up est tm2 *-cache:0 description: L1 cache physical id: 5 slot: Internal L1 Cache size: 64KB capacity: 64KB capabilities: burst internal write-back unified *-cache:1 description: L2 cache physical id: 6 slot: Internal L2 Cache size: 1MB capacity: 1MB capabilities: burst external write-back unified *-memory description: System Memory physical id: 9 slot: System board or motherboard size: 512MB capacity: 1GB *-bank:0 description: SODIMM DDR Synchronous physical id: 0 slot: DIMM #1 size: 256MB width: 64 bits *-bank:1 description: SODIMM DDR Synchronous physical id: 1 slot: DIMM #2 size: 256MB width: 64 bits *-pci description: Host bridge product: 82855PM Processor to I/O Controller vendor: Intel Corporation physical id: 100 bus info: pci@0000:00:00.0 version: 03 width: 32 bits clock: 33MHz configuration: driver=agpgart-intel module=intel_agp *-pci:0 description: PCI bridge product: 82855PM Processor to AGP Controller vendor: Intel Corporation physical id: 1 bus info: pci@0000:00:01.0 version: 03 width: 32 bits clock: 66MHz capabilities: pci normal_decode bus_master *-display description: VGA compatible controller product: Radeon R250 [Mobility FireGL 9000] vendor: ATI Technologies Inc physical id: 0 bus info: pci@0000:01:00.0 version: 01 width: 32 bits clock: 66MHz capabilities: agp agp-2.0 pm vga bus_master cap_list configuration: latency=128 mingnt=8 *-usb:0 description: USB Controller product: 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 vendor: Intel Corporation physical id: 1d bus info: pci@0000:00:1d.0 version: 01 width: 32 bits clock: 33MHz capabilities: uhci bus_master configuration: driver=uhci_hcd latency=0 module=uhci_hcd *-usbhost product: UHCI Host Controller vendor: Linux 2.6.20-fw4 uhci_hcd physical id: 1 bus info: usb@2 logical name: usb2 version: 2.06 capabilities: usb-1.10 configuration: driver=hub maxpower=0mA slots=2 speed=12.0MB/s *-usb:1 description: USB Controller product: 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 vendor: Intel Corporation physical id: 1d.1 bus info: pci@0000:00:1d.1 version: 01 width: 32 bits clock: 33MHz capabilities: uhci bus_master configuration: driver=uhci_hcd latency=0 module=uhci_hcd *-usbhost product: UHCI Host Controller vendor: Linux 2.6.20-fw4 uhci_hcd physical id: 1 bus info: usb@3 logical name: usb3 version: 2.06 capabilities: usb-1.10 configuration: driver=hub maxpower=0mA slots=2 speed=12.0MB/s *-usb:2 description: USB Controller product: 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 vendor: Intel Corporation physical id: 1d.2 bus info: pci@0000:00:1d.2 version: 01 width: 32 bits clock: 33MHz capabilities: uhci bus_master configuration: driver=uhci_hcd latency=0 module=uhci_hcd *-usbhost product: UHCI Host Controller vendor: Linux 2.6.20-fw4 uhci_hcd physical id: 1 bus info: usb@4 logical name: usb4 version: 2.06 capabilities: usb-1.10 configuration: driver=hub maxpower=0mA slots=2 speed=12.0MB/s *-usb description: Mouse product: USB Receiver vendor: Logitech physical id: 1 bus info: usb@4:1 version: 9.10 capabilities: usb-1.10 configuration: driver=usbhid maxpower=50mA speed=1.5MB/s *-usb:3 description: USB Controller product: 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller vendor: Intel Corporation physical id: 1d.7 bus info: pci@0000:00:1d.7 version: 01 width: 32 bits clock: 33MHz capabilities: pm debug ehci bus_master cap_list configuration: driver=ehci_hcd latency=0 module=ehci_hcd *-usbhost product: EHCI Host Controller vendor: Linux 2.6.20-fw4 ehci_hcd physical id: 1 bus info: usb@1 logical name: usb1 version: 2.06 capabilities: usb-2.00 configuration: driver=hub maxpower=0mA slots=6 speed=480.0MB/s *-pci:1 description: PCI bridge product: 82801 Mobile PCI Bridge vendor: Intel Corporation physical id: 1e bus info: pci@0000:00:1e.0 version: 81 width: 32 bits clock: 33MHz capabilities: pci normal_decode bus_master *-firewire description: FireWire (IEEE 1394) product: IEEE 1394 Host Controller vendor: VIA Technologies, Inc. physical id: 0 bus info: pci@0000:02:00.0 version: 80 width: 32 bits clock: 33MHz capabilities: pm ohci bus_master cap_list configuration: driver=ohci1394 latency=128 maxlatency=32 module=ohci1394 *-network:0 description: Ethernet interface product: RTL-8139/8139C/8139C+ vendor: Realtek Semiconductor Co., Ltd. physical id: 1 bus info: pci@0000:02:01.0 logical name: eth0 version: 20 serial: 00:02:3f:6b:c8:66 size: 100MB/s capacity: 100MB/s width: 32 bits clock: 33MHz capabilities: pm bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd autonegotiation configuration: autonegotiation=on broadcast=yes driver=8139cp driverversion=1.3 duplex=full ip=192.168.0.5 latency=128 link=yes maxlatency=64 mingnt=32 module=8139cp multicast=yes port=MII speed=100MB/s *-network:1 UNCLAIMED description: Network controller product: PRO/Wireless LAN 2100 3B Mini PCI Adapter vendor: Intel Corporation physical id: 2 bus info: pci@0000:02:02.0 version: 04 width: 32 bits clock: 33MHz capabilities: pm cap_list configuration: latency=128 maxlatency=34 mingnt=2 *-pcmcia description: CardBus bridge product: CB1410 Cardbus Controller vendor: ENE Technology Inc physical id: 4 bus info: pci@0000:02:04.0 version: 01 width: 32 bits clock: 33MHz capabilities: pcmcia bus_master cap_list configuration: driver=yenta_cardbus latency=176 maxlatency=5 mingnt=192 module=yenta_socket *-isa description: ISA bridge product: 82801DBM (ICH4-M) LPC Interface Bridge vendor: Intel Corporation physical id: 1f bus info: pci@0000:00:1f.0 version: 01 width: 32 bits clock: 33MHz capabilities: isa bus_master configuration: latency=0 *-ide description: IDE interface product: 82801DBM (ICH4-M) IDE Controller vendor: Intel Corporation physical id: 1f.1 bus info: pci@0000:00:1f.1 version: 01 width: 32 bits clock: 33MHz capabilities: ide bus_master configuration: driver=PIIX_IDE latency=0 *-ide:0 description: IDE Channel 0 physical id: 0 bus info: ide@0 logical name: ide0 clock: 33MHz *-disk description: ATA Disk product: HITACHI_DK23FA-40 vendor: Hitachi physical id: 0 bus info: ide@0.0 logical name: /dev/hda version: 00M5A0A0 serial: 2SH719 size: 37GB capacity: 37GB capabilities: ata dma lba iordy smart security pm apm partitioned partitioned:dos configuration: apm=off mode=udma5 smart=on *-volume:0 description: Linux filesystem partition physical id: 1 bus info: ide@0.0,1 logical name: /dev/hda1 capacity: 14GB capabilities: primary *-volume:1 description: Extended partition physical id: 2 bus info: ide@0.0,2 logical name: /dev/hda2 size: 1474MB capacity: 1474MB capabilities: primary extended partitioned partitioned:extended *-logicalvolume description: Linux swap / Solaris partition physical id: 5 logical name: /dev/hda5 capacity: 1474MB capabilities: nofs *-volume:2 description: Linux filesystem partition physical id: 3 bus info: ide@0.0,3 logical name: /dev/hda3 capacity: 20GB capabilities: primary *-ide:1 description: IDE Channel 1 physical id: 1 bus info: ide@1 logical name: ide1 clock: 33MHz *-cdrom description: DVD reader product: SD-R2512 physical id: 0 bus info: ide@1.0 logical name: /dev/hdc version: 1A04 serial: 144F302125 capabilities: packet atapi cdrom removable nonmagnetic dma lba iordy audio cd-r cd-rw dvd configuration: status=ready *-disc physical id: 0 logical name: /dev/hdc *-serial description: SMBus product: 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller vendor: Intel Corporation physical id: 1f.3 bus info: pci@0000:00:1f.3 version: 01 width: 32 bits clock: 33MHz configuration: driver=i801_smbus latency=0 module=i2c_i801 *-multimedia description: Multimedia audio controller product: 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller vendor: Intel Corporation physical id: 1f.5 bus info: pci@0000:00:1f.5 version: 01 width: 32 bits clock: 33MHz capabilities: pm bus_master cap_list configuration: driver=Intel ICH latency=0 module=snd_intel8x0 *-communication description: Modem product: 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller vendor: Intel Corporation physical id: 1f.6 bus info: pci@0000:00:1f.6 version: 01 width: 32 bits clock: 33MHz capabilities: pm generic bus_master cap_list configuration: driver=Intel ICH Modem latency=0 module=snd_intel8x0m *-network DISABLED description: IEEE1394 interface physical id: 1 logical name: eth1 serial: 00:02:3f:41:4a:00 capabilities: ieee1394 physical configuration: broadcast=yes driver=eth1394 multicast=yes
Multimedia Keys
Once again, there is more than one way to setup your multimedia keys under linux. I'll show you three way to achieve this. 1 - under KDE, fast but not complete. 2 - hard way, for those who wants to know low level commands etc. 3 - keytouchd, easier and we can configure almost all multimedia keys.
Under KDE
There is a user level very easy way to configure the multimedia keyboard : Open the KDE control center, then select regional settings / keyboard. There, you can choose a keyboard. I don't know which one is the most appropriate, but for the sound (mute, level up and down) almost every multimedia model is ok. For example, I've choosen 'Super power multimedia keyboard', and Volume keys works well. File:Frug-mulkeys-fr.png
Preparation
French people may have a first look here http://lea-linux.org/cached/index/Hardware-hard_autres-clavier_multimedia.html
We have to install xev in order to learn keycodes of multimedia keys :
# pacman -S xev xmodmap
Now let's have a log to those keycodes
# xev | grep keycode | uniq | tee xevents
Run this command, then press some multimedia keys in a given order. Don't forget to position the mouse pointer on the small window that has appeared. When finished, close this window. For the nx7010, I press VolumeIncrease, VolumeDecrease, Mute keys in that order and had this result :
# cat xevents
.
state 0x0, keycode 176 (keysym 0x0, NoSymbol), same_screen YES, state 0x0, keycode 176 (keysym 0x0, NoSymbol), same_screen YES, state 0x0, keycode 174 (keysym 0x0, NoSymbol), same_screen YES, state 0x0, keycode 174 (keysym 0x0, NoSymbol), same_screen YES, state 0x0, keycode 160 (keysym 0x0, NoSymbol), same_screen YES, state 0x0, keycode 160 (keysym 0x0, NoSymbol), same_screen YES,
What is interresting here are the keycodes, here are the ones I've fetch for the nx7010 laptop :
176 : Volume Increase 174 : Volume Decrease 160 : Mute 162 : Play 144 : Prev 153 : Next 223 : Sleep
Then, we have to edit a xmodmaprc file and add the symbolic name of these keys. A file containing all known symbols is /usr/share/X11/XKeysymDB (found with a search on XKeysymDB on frugalware packages page). Select only symbols starting by XF86.
In my case, the name of the keys are
176 : XF86AudioRaiseVolume 174 : XF86AudioLowerVolume 160 : XF86AudioMute
In case you cannot find a valuable name in XKeysymDB, just select a unused symbol.
Installation of the mapping (for users)
Now you have all information to edit your ~/.xmodmaprc file
$ vim ~/.xmodmaprc
And here the content of this file in my case (nx7010 laptop).
keycode 176 = XF86AudioRaiseVolume keycode 174 = XF86AudioLowerVolume keycode 160 = XF86AudioMute
Here we are. We now can install the new mapping :
$ xmodmap ~/.xmodmaprc
Yeah !! When I press any of the volume keys, that works !
A simpler way to do this
Frugalware includes, at least in the -current branch, the keytouch tool :
# pacman -S keytouch
Unfortunately, there is no definition file for this Laptop, so I've take the closest file and after some minor changes, wrote a specific file for this laptop. You want to save this file at this place (filename is important) :
"/usr/share/keytouch/keyboards/Compaq Nx7010 Integrated keyboard.Hp"
Now open a graphic session using any user, and run this :
# keytouch
You will now find the Compaq nx7010 keyboard. Select it, configure actions, and make some tests. Almost all default actions is relevant, except for WWW in my case (I prefer firefox). This can be easilly change. As an exercice, I let you find the tab where to change the default :-).
Once all that is done, the last step is to install keytouch as a service for the next reboot (untested yet).
# service keytouch add
Now enjoy !
The XML keybord configuration file
Copy this in the XML file mentionned above (as root) :
<keyboard> <file-info> <syntax-version>1.0</syntax-version> <last-change format="%d-%m-%Y">05-04-2007</last-change> <author>Biot Francois (from France)</author> </file-info> <keyboard-info> <keyboard-name> <manufacturer>Hp</manufacturer> <model>Compaq Nx7010 Integrated keyboard</model> </keyboard-name> </keyboard-info> <key-list> <key> <name>Lock Screen</name> <scancode>223</scancode> <keycode>SLEEP</keycode> <default-action action-type="plugin"> <plugin-name>Lock Screen</plugin-name> <plugin-function>Lock Screen</plugin-function> </default-action> </key> <key> <name>My Home</name> <scancode>178</scancode> <keycode>HOMEPAGE</keycode> <default-action action-type="plugin"> <plugin-name>WWW Browser</plugin-name> <plugin-function>Home</plugin-function> </default-action> </key> <key> <name>Mute</name> <scancode>160</scancode> <keycode>MUTE</keycode> <default-action action-type="plugin"> <plugin-name>Amixer</plugin-name> <plugin-function>Mute</plugin-function> </default-action> </key> <key> <name>Volume Down</name> <scancode>174</scancode> <keycode>VOLUMEDOWN</keycode> <default-action action-type="plugin"> <plugin-name>Amixer</plugin-name> <plugin-function>Volume decrease</plugin-function> </default-action> </key> <key> <name>Volume Up</name> <scancode>176</scancode> <keycode>VOLUMEUP</keycode> <default-action action-type="plugin"> <plugin-name>Amixer</plugin-name> <plugin-function>Volume increase</plugin-function> </default-action> </key> <key> <name>Audio play/pause</name> <scancode>162</scancode> <keycode>PLAYPAUSE</keycode> <default-action action-type="plugin"> <plugin-name>XMMS</plugin-name> <plugin-function>Play/Pause</plugin-function> </default-action> </key> <key> <name>Audio stop</name> <scancode>164</scancode> <keycode>STOP</keycode> <default-action action-type="plugin"> <plugin-name>XMMS</plugin-name> <plugin-function>Stop</plugin-function> </default-action> </key> <key> <name>Audio previous</name> <scancode>144</scancode> <keycode>PREVIOUSSONG</keycode> <default-action action-type="plugin"> <plugin-name>XMMS</plugin-name> <plugin-function>Previous</plugin-function> </default-action> </key> <key> <name>Audio next</name> <scancode>153</scancode> <keycode>NEXTSONG</keycode> <default-action action-type="plugin"> <plugin-name>XMMS</plugin-name> <plugin-function>Next</plugin-function> </default-action> </key> </key-list> </keyboard>
Testing all those new functions
I'm going to play with amarok in order to test the keys
# pacman -S amarok
Miscelaneous
Ntp
I like to keep my computer at the right time using ntp :
# pacman -S ntp Pacman asks to remove openntp, the open source ntp server which is not needed for me, and then installs ntp.
# ntpdate ntp-sop.inria.fr This command set the time (french) correctly on my computer. It is possible to add this command during the initialization of frugalware linux, right after the network is up.
User notes
Add your comments here
For convenience, if you have remarks or questions, you may put them here. I'll try to find any solution and merge with this page (you may of course edit the page yourself !!!).
| | |