My Own Made Little World

Aller au contenu | Aller au menu | Aller à la recherche

vendredi 27 mai 2011

HPET : faire de sa bête de course une machine à freeze

Symptôme : vous êtes sur votre bête de course (sous GNU Linux bien entendu) et vous copiez, chargez des gros fichiers. Puis, plus rien, l'écran se fige. Plus aucun périphérique ne réponds (clavier, souris, etc). Super, vous êtes tombé sur le Freeze machine comme on les aime. Par voie de conséquence, je fais un premier hard reboot explosif.

Cela faisait une éternité (genre + de 3 ans) que je n'ai pas réussi à geler une machine personnelle (hors celles de développement -_-). Je recommence la copie et BAM refreeze au bout d'1 à 2 minutes. (2ème Hard Reboot mode explosif)

Les lockups sont difficiles à cerner car généralement nous ne savons par où commencer. Comme tout à chacun, j'ai commencé par blâmer les disques et les systèmes de fichier. Du coup, je passe en mode secours "MacGyver" avec le Live CD et la commande e2fsck pour traquer l'anomalie sur les systèmes de fichiers mais rien. Fausse piste.

Du côté du journal d'événement, rien de miraculeux (attention c'est un peu verbeux) :

Les 5 premières secondes particulièrement pompeuses ont été retirées

May 27 11:42:35 home01 kernel: [    5.447313] usb usb10: No SuperSpeed endpoint companion for config 1  interface 0 altsetting 0 ep 129: using minimum values
May 27 11:42:35 home01 kernel: [    5.447404] xHCI xhci_add_endpoint called for root hub
May 27 11:42:35 home01 kernel: [    5.447409] xHCI xhci_check_bandwidth called for root hub
May 27 11:42:35 home01 kernel: [    5.447436] hub 10-0:1.0: USB hub found
May 27 11:42:35 home01 kernel: [    5.447440] hub 10-0:1.0: 4 ports detected
May 27 11:42:35 home01 kernel: [    5.500394] hda_codec: ALC889: BIOS auto-probing.
May 27 11:42:35 home01 kernel: [    5.509177] input: HDA Intel Headphone as /devices/pci0000:00/0000:00:1b.0/sound/card0/input5
May 27 11:42:35 home01 kernel: [    5.509276] HDA Intel 0000:01:00.1: PCI INT B -> GSI 17 (level, low) -> IRQ 17
May 27 11:42:35 home01 kernel: [    5.509278] hda_intel: Disable MSI for Nvidia chipset
May 27 11:42:35 home01 kernel: [    5.509313] HDA Intel 0000:01:00.1: setting latency timer to 64
May 27 11:42:35 home01 kernel: [    5.544666] EXT4-fs (sda1): warning: maximal mount count reached, running e2fsck is recommended
May 27 11:42:35 home01 kernel: [    5.557815] EXT4-fs (sda1): recovery complete
May 27 11:42:35 home01 kernel: [    5.567065] EXT4-fs (sda1): mounted filesystem with writeback data mode. Opts: data=writeback
May 27 11:42:35 home01 kernel: [    5.702843] type=1400 audit(1306489355.878:5): apparmor="STATUS" operation="profile_load" name="/usr/share/gdm/guest-session/Xsession" pid=948 comm="apparmor_parser"
May 27 11:42:35 home01 kernel: [    5.703854] type=1400 audit(1306489355.888:6): apparmor="STATUS" operation="profile_load" name="/usr/lib/cups/backend/cups-pdf" pid=952 comm="apparmor_parser"
May 27 11:42:35 home01 kernel: [    5.706014] type=1400 audit(1306489355.888:7): apparmor="STATUS" operation="profile_load" name="/usr/sbin/cupsd" pid=952 comm="apparmor_parser"
May 27 11:42:35 home01 kernel: [    5.706052] type=1400 audit(1306489355.888:8): apparmor="STATUS" operation="profile_replace" name="/sbin/dhclient" pid=949 comm="apparmor_parser"
May 27 11:42:35 home01 kernel: [    5.706585] type=1400 audit(1306489355.888:9): apparmor="STATUS" operation="profile_replace" name="/usr/lib/NetworkManager/nm-dhcp-client.action" pid=949 comm="apparmor_parser"
May 27 11:42:35 home01 kernel: [    5.706934] type=1400 audit(1306489355.888:10): apparmor="STATUS" operation="profile_replace" name="/usr/lib/connman/scripts/dhclient-script" pid=949 comm="apparmor_parser"
May 27 11:42:35 home01 kernel: [    5.764488] r8169 0000:06:00.0: eth0: link down
May 27 11:42:35 home01 kernel: [    5.764498] r8169 0000:06:00.0: eth0: link down
May 27 11:42:35 home01 kernel: [    5.764999] ADDRCONF(NETDEV_UP): eth0: link is not ready
May 27 11:42:36 home01 kernel: [    5.856723] vboxdrv: Found 8 processor cores.
May 27 11:42:36 home01 kernel: [    5.856919] vboxdrv: fAsync=0 offMin=0x1de offMax=0x427e
May 27 11:42:36 home01 kernel: [    5.856962] vboxdrv: TSC mode is 'synchronous', kernel timer mode is 'normal'.
May 27 11:42:36 home01 kernel: [    5.856964] vboxdrv: Successfully loaded version 4.0.4_OSE (interface 0x00160000).
May 27 11:42:36 home01 kernel: [    6.033727] EXT4-fs (sdb3): Ignoring deprecated nobh option
May 27 11:42:36 home01 kernel: [    6.033741] EXT4-fs (sdb3): re-mounted. Opts: data=writeback,barrier=0,nobh,errors=remount-ro,commit=0
May 27 11:42:36 home01 kernel: [    6.035912] EXT4-fs (sda1): re-mounted. Opts: data=writeback,commit=0
May 27 11:42:38 home01 kernel: [    7.941778] nvidia 0000:01:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
May 27 11:42:38 home01 kernel: [    7.941789] nvidia 0000:01:00.0: setting latency timer to 64
May 27 11:42:38 home01 kernel: [    7.941793] vgaarb: device changed decodes: PCI:0000:01:00.0,olddecodes=io+mem,decodes=none:owns=io+mem
May 27 11:42:38 home01 kernel: [    7.941925] NVRM: loading NVIDIA UNIX x86_64 Kernel Module  270.41.06  Mon Apr 18 14:53:56 PDT 2011
May 27 11:42:38 home01 kernel: [    7.975030] vesafb: framebuffer at 0xed000000, mapped to 0xffffc90008580000, using 1216k, total 1216k
May 27 11:42:38 home01 kernel: [    7.975034] vesafb: mode is 640x480x32, linelength=2560, pages=0
May 27 11:42:38 home01 kernel: [    7.975035] vesafb: scrolling: redraw
May 27 11:42:38 home01 kernel: [    7.975037] vesafb: Truecolor: size=8:8:8:8, shift=24:16:8:0
May 27 11:42:38 home01 kernel: [    7.975155] Console: switching to colour frame buffer device 80x30
May 27 11:42:38 home01 kernel: [    7.979522] audit_printk_skb: 12 callbacks suppressed
May 27 11:42:38 home01 kernel: [    7.979523] type=1400 audit(1306489358.158:15): apparmor="STATUS" operation="profile_replace" name="/usr/lib/cups/backend/cups-pdf" pid=1318 comm="apparmor_parser"
May 27 11:42:38 home01 kernel: [    7.980104] type=1400 audit(1306489358.158:16): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/cupsd" pid=1318 comm="apparmor_parser"
May 27 11:42:38 home01 kernel: [    8.013739] fb0: VESA VGA frame buffer device
May 27 11:42:38 home01 kernel: [    8.134566] ioremap error for 0xdf7d1000-0xdf7d2000, requested 0x10, got 0x0
May 27 11:42:39 home01 kernel: [    9.301019] EXT4-fs (sdb3): Ignoring deprecated nobh option
May 27 11:42:39 home01 kernel: [    9.301027] EXT4-fs (sdb3): re-mounted. Opts: data=writeback,barrier=0,nobh,errors=remount-ro,commit=0
May 27 11:42:39 home01 kernel: [    9.302877] EXT4-fs (sda1): re-mounted. Opts: data=writeback,commit=0
May 27 11:42:39 home01 kernel: [    9.559678] r8169 0000:06:00.0: eth0: link up
May 27 11:42:39 home01 kernel: [    9.560134] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
May 27 11:42:40 home01 kernel: [   10.795361] RPC: Registered udp transport module.
May 27 11:42:40 home01 kernel: [   10.795364] RPC: Registered tcp transport module.
May 27 11:42:40 home01 kernel: [   10.795365] RPC: Registered tcp NFSv4.1 backchannel transport module.
May 27 11:42:41 home01 kernel: [   10.802957] FS-Cache: Loaded
May 27 11:42:41 home01 kernel: [   10.814580] FS-Cache: Netfs 'nfs' registered for caching
May 27 11:42:41 home01 kernel: [   11.086066] svc: failed to register lockdv1 RPC service (errno 97).
May 27 11:42:41 home01 kernel: [   11.442578] hda-intel: IRQ timing workaround is activated for card #1. Suggest a bigger bdl_pos_adj.
May 27 11:42:50 home01 kernel: [   20.189693] eth0: no IPv6 routers present
May 27 11:42:52 home01 kernel: [   22.218461] CE: hpet2 increased min_delta_ns to 7500 nsec
May 27 11:42:52 home01 kernel: [   22.218469] CE: hpet2 increased min_delta_ns to 11250 nsec
May 27 11:42:52 home01 kernel: [   22.218472] hrtimer: interrupt took 4564 ns
May 27 11:42:54 home01 kernel: [   24.137550] CE: hpet6 increased min_delta_ns to 7500 nsec
May 27 11:42:54 home01 kernel: [   24.137556] CE: hpet6 increased min_delta_ns to 11250 nsec
May 27 11:42:56 home01 kernel: [   25.926711] CE: hpet3 increased min_delta_ns to 7500 nsec
May 27 11:42:56 home01 kernel: [   25.926721] CE: hpet3 increased min_delta_ns to 11250 nsec
May 27 11:42:57 home01 kernel: [   27.483274] CE: hpet5 increased min_delta_ns to 7500 nsec
May 27 11:42:57 home01 kernel: [   27.483282] CE: hpet5 increased min_delta_ns to 11250 nsec
May 27 11:43:02 home01 kernel: [   32.243730] CE: hpet4 increased min_delta_ns to 7500 nsec
May 27 11:43:02 home01 kernel: [   32.243738] CE: hpet4 increased min_delta_ns to 11250 nsec
May 27 11:44:25 home01 kernel: [  114.754945] r8169 0000:06:00.0: eth0: link up
May 27 11:44:25 home01 kernel: [  114.754961] NOHZ: local_softirq_pending 08
May 27 11:45:06 home01 kernel: [  156.135457] r8169 0000:06:00.0: eth0: link up
May 27 11:45:06 home01 kernel: [  156.135469] NOHZ: local_softirq_pending 08
May 27 11:45:06 home01 kernel: [  156.265357] r8169 0000:06:00.0: eth0: link up
May 27 11:45:06 home01 kernel: [  156.265373] NOHZ: local_softirq_pending 08
May 27 11:45:06 home01 kernel: [  156.271621] NOHZ: local_softirq_pending 08
May 27 11:45:07 home01 kernel: [  156.755147] r8169 0000:06:00.0: eth0: link up
May 27 11:45:08 home01 kernel: [  158.224469] r8169 0000:06:00.0: eth0: link up
May 27 11:45:08 home01 kernel: [  158.224485] NOHZ: local_softirq_pending 08
May 27 11:45:08 home01 kernel: [  158.294458] r8169 0000:06:00.0: eth0: link up
May 27 11:45:08 home01 kernel: [  158.294473] NOHZ: local_softirq_pending 08
May 27 11:45:09 home01 kernel: [  158.994106] r8169 0000:06:00.0: eth0: link up
May 27 11:45:09 home01 kernel: [  158.994121] NOHZ: local_softirq_pending 08
May 27 11:45:09 home01 kernel: [  159.263954] r8169 0000:06:00.0: eth0: link up
May 27 11:45:10 home01 kernel: [  160.163562] r8169 0000:06:00.0: eth0: link up
May 27 11:45:10 home01 kernel: [  160.163574] NOHZ: local_softirq_pending 08
May 27 11:45:10 home01 kernel: [  160.313501] r8169 0000:06:00.0: eth0: link up
May 27 11:45:10 home01 kernel: [  160.313517] NOHZ: local_softirq_pending 08
May 27 11:45:11 home01 kernel: [  160.763395] NOHZ: local_softirq_pending 08
May 27 11:45:12 home01 kernel: [  162.132681] net_ratelimit: 1 callbacks suppressed
May 27 11:45:12 home01 kernel: [  162.132687] r8169 0000:06:00.0: eth0: link up
May 27 11:45:12 home01 kernel: [  162.402502] r8169 0000:06:00.0: eth0: link up
May 27 11:45:12 home01 kernel: [  162.472410] r8169 0000:06:00.0: eth0: link up
May 27 11:45:13 home01 kernel: [  162.962189] r8169 0000:06:00.0: eth0: link up
May 27 11:45:13 home01 kernel: [  163.242066] r8169 0000:06:00.0: eth0: link up
May 27 11:45:13 home01 kernel: [  163.382005] r8169 0000:06:00.0: eth0: link up
May 27 11:45:13 home01 kernel: [  163.521966] r8169 0000:06:00.0: eth0: link up
May 27 11:45:14 home01 kernel: [  163.801795] r8169 0000:06:00.0: eth0: link up
May 27 11:45:14 home01 kernel: [  164.161684] r8169 0000:06:00.0: eth0: link up
May 27 11:45:14 home01 kernel: [  164.571430] r8169 0000:06:00.0: eth0: link up
May 27 11:45:19 home01 kernel: [  169.169269] net_ratelimit: 6 callbacks suppressed
May 27 11:45:19 home01 kernel: [  169.169276] r8169 0000:06:00.0: eth0: link up
May 27 11:45:19 home01 kernel: [  169.669074] r8169 0000:06:00.0: eth0: link up
May 27 11:45:20 home01 kernel: [  170.638657] r8169 0000:06:00.0: eth0: link up
May 27 11:45:21 home01 kernel: [  170.768551] r8169 0000:06:00.0: eth0: link up
May 27 11:45:21 home01 kernel: [  171.058362] r8169 0000:06:00.0: eth0: link up
May 27 11:45:21 home01 kernel: [  171.538208] r8169 0000:06:00.0: eth0: link up
May 27 11:45:22 home01 kernel: [  172.377840] r8169 0000:06:00.0: eth0: link up
May 27 11:45:22 home01 kernel: [  172.517662] r8169 0000:06:00.0: eth0: link up
May 27 11:45:23 home01 kernel: [  173.077423] r8169 0000:06:00.0: eth0: link up
May 27 11:45:24 home01 kernel: [  174.596723] r8169 0000:06:00.0: eth0: link up
May 27 11:45:26 home01 kernel: [  175.736249] r8169 0000:06:00.0: eth0: link up
May 27 11:45:27 home01 kernel: [  177.405393] r8169 0000:06:00.0: eth0: link up
May 27 11:45:27 home01 kernel: [  177.685257] r8169 0000:06:00.0: eth0: link up
May 27 11:45:28 home01 kernel: [  177.975117] r8169 0000:06:00.0: eth0: link up
May 27 11:45:28 home01 kernel: [  178.105151] r8169 0000:06:00.0: eth0: link up
May 27 11:45:28 home01 kernel: [  178.384988] r8169 0000:06:00.0: eth0: link up
May 27 11:45:28 home01 kernel: [  178.704755] r8169 0000:06:00.0: eth0: link up
May 27 11:45:29 home01 kernel: [  179.014860] r8169 0000:06:00.0: eth0: link up
May 27 11:45:29 home01 kernel: [  179.434455] r8169 0000:06:00.0: eth0: link up
May 27 11:45:29 home01 kernel: [  179.654480] r8169 0000:06:00.0: eth0: link up
May 27 11:45:32 home01 kernel: [  182.413126] net_ratelimit: 7 callbacks suppressed
May 27 11:45:32 home01 kernel: [  182.413133] r8169 0000:06:00.0: eth0: link up
May 27 11:45:33 home01 kernel: [  183.542481] r8169 0000:06:00.0: eth0: link up
May 27 11:45:34 home01 kernel: [  184.242176] r8169 0000:06:00.0: eth0: link up
May 27 11:45:35 home01 kernel: [  185.581600] r8169 0000:06:00.0: eth0: link up
May 27 11:45:36 home01 kernel: [  185.971446] r8169 0000:06:00.0: eth0: link up
May 27 11:45:36 home01 kernel: [  186.041435] r8169 0000:06:00.0: eth0: link up
May 27 11:45:36 home01 kernel: [  186.291355] r8169 0000:06:00.0: eth0: link up
May 27 11:45:36 home01 kernel: [  186.541117] r8169 0000:06:00.0: eth0: link up
May 27 11:45:37 home01 kernel: [  187.170877] r8169 0000:06:00.0: eth0: link up
May 27 11:45:37 home01 kernel: [  187.390805] r8169 0000:06:00.0: eth0: link up
May 27 11:45:39 home01 kernel: [  189.359872] net_ratelimit: 6 callbacks suppressed
May 27 11:45:39 home01 kernel: [  189.359879] r8169 0000:06:00.0: eth0: link up
May 27 11:45:40 home01 kernel: [  190.029434] r8169 0000:06:00.0: eth0: link up
May 27 11:45:40 home01 kernel: [  190.519276] r8169 0000:06:00.0: eth0: link up
May 27 11:45:40 home01 kernel: [  190.649129] r8169 0000:06:00.0: eth0: link up
May 27 11:45:41 home01 kernel: [  191.428869] r8169 0000:06:00.0: eth0: link up
May 27 11:45:42 home01 kernel: [  191.848575] r8169 0000:06:00.0: eth0: link up
May 27 11:45:42 home01 kernel: [  192.298432] r8169 0000:06:00.0: eth0: link up
May 27 11:45:43 home01 kernel: [  193.587759] r8169 0000:06:00.0: eth0: link up
May 27 11:45:43 home01 kernel: [  193.657813] r8169 0000:06:00.0: eth0: link up
May 27 11:45:44 home01 kernel: [  193.837937] r8169 0000:06:00.0: eth0: link up
May 27 11:45:45 home01 kernel: [  195.307164] net_ratelimit: 3 callbacks suppressed
May 27 11:45:45 home01 kernel: [  195.307171] r8169 0000:06:00.0: eth0: link up
May 27 11:45:45 home01 kernel: [  195.466971] r8169 0000:06:00.0: eth0: link up
May 27 11:45:46 home01 kernel: [  196.096693] r8169 0000:06:00.0: eth0: link up
May 27 11:45:47 home01 kernel: [  197.286001] r8169 0000:06:00.0: eth0: link up
May 27 11:45:47 home01 kernel: [  197.395946] r8169 0000:06:00.0: eth0: link up
May 27 11:45:49 home01 kernel: [  198.745369] r8169 0000:06:00.0: eth0: link up
May 27 11:45:49 home01 kernel: [  199.435125] r8169 0000:06:00.0: eth0: link up
May 27 11:45:49 home01 kernel: [  199.544995] r8169 0000:06:00.0: eth0: link up
May 27 11:45:49 home01 kernel: [  199.644936] r8169 0000:06:00.0: eth0: link up
May 27 11:45:50 home01 kernel: [  199.784821] r8169 0000:06:00.0: eth0: link up
May 27 11:45:51 home01 kernel: [  200.994345] net_ratelimit: 1 callbacks suppressed
May 27 11:45:51 home01 kernel: [  200.994351] r8169 0000:06:00.0: eth0: link up
May 27 11:45:51 home01 kernel: [  201.214195] r8169 0000:06:00.0: eth0: link up
May 27 11:45:51 home01 kernel: [  201.434195] r8169 0000:06:00.0: eth0: link up
May 27 11:45:53 home01 kernel: [  203.373323] r8169 0000:06:00.0: eth0: link up
May 27 11:45:53 home01 kernel: [  203.483165] r8169 0000:06:00.0: eth0: link up
May 27 11:45:53 home01 kernel: [  203.603131] r8169 0000:06:00.0: eth0: link up
May 27 11:45:54 home01 kernel: [  204.472628] r8169 0000:06:00.0: eth0: link up
May 27 11:45:54 home01 kernel: [  204.612646] r8169 0000:06:00.0: eth0: link up
May 27 11:45:55 home01 kernel: [  205.272309] r8169 0000:06:00.0: eth0: link up
May 27 11:45:55 home01 kernel: [  205.342344] r8169 0000:06:00.0: eth0: link up
May 27 11:45:56 home01 kernel: [  206.501724] net_ratelimit: 1 callbacks suppressed
May 27 11:45:56 home01 kernel: [  206.501731] r8169 0000:06:00.0: eth0: link up
May 27 11:45:57 home01 kernel: [  207.061401] r8169 0000:06:00.0: eth0: link up
May 27 11:45:57 home01 kernel: [  207.201335] r8169 0000:06:00.0: eth0: link up
May 27 11:45:57 home01 kernel: [  207.681118] r8169 0000:06:00.0: eth0: link up
May 27 11:45:59 home01 kernel: [  208.940520] r8169 0000:06:00.0: eth0: link up
May 27 11:45:59 home01 kernel: [  209.060504] r8169 0000:06:00.0: eth0: link up
May 27 11:45:59 home01 kernel: [  209.160533] r8169 0000:06:00.0: eth0: link up
May 27 11:45:59 home01 kernel: [  209.390487] r8169 0000:06:00.0: eth0: link up
May 27 11:46:00 home01 kernel: [  210.059983] r8169 0000:06:00.0: eth0: link up
May 27 11:46:01 home01 kernel: [  210.749668] r8169 0000:06:00.0: eth0: link up
May 27 11:46:02 home01 kernel: [  212.639067] net_ratelimit: 1 callbacks suppressed
May 27 11:46:02 home01 kernel: [  212.639071] r8169 0000:06:00.0: eth0: link up
May 27 11:46:04 home01 kernel: [  214.408054] r8169 0000:06:00.0: eth0: link up
May 27 11:46:05 home01 kernel: [  214.937765] r8169 0000:06:00.0: eth0: link up
May 27 11:46:06 home01 kernel: [  216.137189] r8169 0000:06:00.0: eth0: link up
May 27 11:46:06 home01 kernel: [  216.437041] r8169 0000:06:00.0: eth0: link up
May 27 11:46:06 home01 kernel: [  216.546989] r8169 0000:06:00.0: eth0: link up
May 27 11:46:07 home01 kernel: [  217.336717] r8169 0000:06:00.0: eth0: link up
May 27 11:46:09 home01 kernel: [  218.995889] r8169 0000:06:00.0: eth0: link up
May 27 11:46:09 home01 kernel: [  219.605539] r8169 0000:06:00.0: eth0: link up
May 27 11:46:10 home01 kernel: [  220.585029] r8169 0000:06:00.0: eth0: link up
May 27 11:46:14 home01 kernel: [  223.753670] r8169 0000:06:00.0: eth0: link up

------------------------------ CRASH -----------------------------

Deuxième fausse piste : faisant une copie depuis un répertoire NFS sur un NAS, je pense que le message "NOHZ: local_softirq_pending 08" est important. Après épluchage d'une bonne centaine de forums, il s'agit plus d'un vieux spam indésirable dans la log que d'une erreur "sérieuse".

La piste est venue du post suivant : http://kubuntuforums.net/forums/index.php?topic=3114285.0

Dans le post, la fonctionnalité HPET est mise en cause. Pour rappel, voici dans la log du kernel ci-dessus les entrées HPET ci référant :

May 27 11:42:54 home01 kernel: [   24.137550] CE: hpet6 increased min_delta_ns to 7500 nsec
May 27 11:42:54 home01 kernel: [   24.137556] CE: hpet6 increased min_delta_ns to 11250 nsec
May 27 11:42:56 home01 kernel: [   25.926711] CE: hpet3 increased min_delta_ns to 7500 nsec
May 27 11:42:56 home01 kernel: [   25.926721] CE: hpet3 increased min_delta_ns to 11250 nsec
May 27 11:42:57 home01 kernel: [   27.483274] CE: hpet5 increased min_delta_ns to 7500 nsec
May 27 11:42:57 home01 kernel: [   27.483282] CE: hpet5 increased min_delta_ns to 11250 nsec
May 27 11:43:02 home01 kernel: [   32.243730] CE: hpet4 increased min_delta_ns to 7500 nsec
May 27 11:43:02 home01 kernel: [   32.243738] CE: hpet4 increased min_delta_ns to 11250 nsec

Mais qu'est ce que le HPET ???

L'article de wikipedia (http://en.wikipedia.org/wiki/High_Precision_Event_Timer) est assez complet et bien écrit. Donc, comme le café Maxwel, pas la peine d'en rajouter.

Il s'agit d'une technologie développée par Intel pour améliorer la précision de requêtes d'interruption et du coup "en passant" alléger celles gérées par le CPU... enfin pas de quoi tricoter une nouille. Normalement le Kernel Linux le gère depuis le 2.6

Ca tombe bien, j'utilise un Ubuntu 11.04 (tout le monde a des défauts) avec un kernel 2.6.38-8-generic. J'essaie donc de désactiver cette fonctionnalité dans le BIOS de la carte mère. Et je m'aperçois que le HPET est mode 32bits (j'utilise un kernel 64bits)..... Pour m'épargner des galères, je décide de désactiver depuis le BIOS le HPET.

Enregistrement du BIOS. Redémarrage. Test de la copie de fichier. Réussi. Plus de freeze.

Mission accomplie.

vendredi 2 janvier 2009

Mise à jour du BIOS de sa carte mère, l'enfer a un nom : MS-DOS

Etant possesseur d'une carte mère ASUS A7N8X Deluxe, je souhaitais faire la mise à jour de son BIOS. Histoire de posséder les dernières "kikoos" fonctionnalités. Le bios actuellement sur la carte mère est en version 1007.

En me rendant sur le site d'ASUS, je decouvris les nombreuses mises à jours de ce BIOS, la version 1008 et même la 1009 en béta !

Première difficulté mais pas des moindres avant de faire la moindre mise à jour : connaître la version correcte de sa carte mère. Petite subtilité; l'ASUS A7N8X posséde un numéro de version majeure (A7N8X) mais aussi un numéro de version mineure (1.04, 1.06, 2.0 et supérieure). Le site ASUS vous indique comme maigre consolation de vous reporter au numéro indiquer dans le boot du BIOS : la bonne blague, le numéro est A7N8X et ne comporte pas le numéro de version mineure. Pour ceux qui disposent d'un cerveau, d'un bon tournevis, et d'une loupe grossissante, vous pouvez lire directement le numéro de révision sur la carte mère entre deux ports PCI.

Après avoir mis 20 bonnes minutes pour trouver ma loupe et à peu près autant pour lire le numéro de révision, je commencais à télécharger le BIOS 1009 pour l'A7N8X v1.04 ainsi que son outil d'installation Awdflash BIOS update tool V8.24B.

Je dézippe les deux archives et j'obtiens deux fichiers : AN8D1009.BIN pour le bios et AWDFLASH.EXE pour l'utilitaire. Aïe ! Mon linux favori m'indique que l'exe est un exécutable DOS/Windows (application/x-ms-dos-executable). Je me reporte sur le site d'ASUS pour connaître leur façon d'installer ce bouzin. A la lecture de la page au doux nom "Comment mettre à jour votre BIOS?", je m'aperçois qu'ils sont un peu à la ramasse chez ASUS. Je vois passer des phrases grossières comme "Veuillez insérer une disquette non formatée dans le lecteur A:\ et démarrer le système en mode DOS". Pour ceux qui n'auraient pas compris, redémarrez de suite votre windows 98 en mode dos !! C'est du pur bonheur cette page, je sais pas depuis quand elle a été écrite mais elle survit toujours !

Bon, je me creuse la tête 5 secondes. A la sixième seconde, je decidais de faire la mise à jour à l'aide d'un freeDOS (http://www.freedos.org/).

D'abord, commencer par télécharger l'image iso du projet. Mon choix s'est porté sur le CD complet (fdfullcd.iso). La seconde opération va consister à intégrer le fichier de mise à jour ainsi que le précieux utilitaire fournis par ASUS dans l'image iso fraîchement téléchargée. Pour se faire, j'utilise une superbe application isoMaster (package sous debian/ubuntu), permettant d'éditer ou d'extraire des fichiers dans une image iso.

J'intégre les fichiers dans l'image ISO à l'endroit suivant : /freedos/bios/

Enregistrement de la nouvelle ISO et passage au four. 5 minutes plus tard, j'ai une super galette prête à être utilisée.

Superbe, je lance le CD de boot obtenu précédemment. "Enter" et je lance freedos.

Je choisis le mode "lancer freedos à l'aide du CDROM". Me voilà désormais avec un prompt au nom évocateur :

X:\

Pas de soucis, je me sens en terrain connu...

X:\cd freedos\bios

X:\dir

Une commande Dir pour m'assurer que les fichiers sont là, tout est ok.

Je lance l'utilitaire : X:\awdflash

Je me retrouve en mode graphique, je tape le nom du fichier de mise à jour AN8D1009.BIN et je me laisse guider par l'interface. Surtout zapper l'étape "taper un nom de fichier de sauvegarde", celui-ci serait sauvegardé sur le CDROM.... qui est en lecture seule, le drame.

La mise à jour se termine et me demande de redémarrer en appuyant sur F1. La touche ne répond pas. Mon clavier ne répond plus ... étrange. Qu'à cela ne tienne, je fais un hard reboot sur le boitier du PC. Au démarrage, je vois que le numéro du BIOS à changer... en 1008 au lieu de 1007. Je m'attendais à voir 1009. Je pense que cela doit venir du mode béta du BIOS. Le numéro n'a pas été mis en jour par les équipes ASUS.

Encore un plan qui s'est déroulé sans accroc !