(This text was written 2012-08-26.) In this text, I explain how to update the BIOS of an ACER computer, Aspire Timeline X, model 5820TZG, when you only have a gnu/linux based system. INSTRUCTIONS ============ 1. Get the data --------------- Get Freedos/Balder at http://ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/unofficial/balder/balder10.img Get memdisk from /usr/lib/syslinux/memdisk (if you don't have that, dig the web for "syslinux"). Get the latest BIOS from ACER. For me it was ZQ1_125.EXE, found in BIOS_Acer_1.25_A_A.zip, downloaded from http://www.acer.fr/ac/fr/FR/content/drivers Copy those three files (balder10.img, memdisk, ZQ1_125.EXE) in a directory. 2. Create a DOS harddisk image with QEMU ---------------------------------------- Run: dd if=/dev/zero of=disk bs=4096 count=1024 Then: qemu -hda disk -fda balder10.img -boot a In qemu (choose option 3, it's fine), run: fdisk and create a DOS partition (1 in the menu), a primary DOS partition (1 again), say Y to use maximum available size, quit fdisk. (We don't care about FAT32.) Stop qemu (ctrl+c in your terminal) (I suppose a qemu with SDL). Run qemu again, still with: qemu -hda disk -fda balder10.img -boot a This time, in qemu, do: format c: /S And quit qemu. Verify things work, by running: qemu -hda disk Do nothing (don't enter the date), simply quit qemu. If you are not asked for the date, then there is a problem. For the following you need to be root. Do (in the directory with the three files): sudo bash As root: mkdir floppy hd losetup /dev/loop0 balder10.img mount /dev/loop0 floppy losetup /dev/loop1 -o 32256 disk mount /dev/loop1 hd cp floppy/* hd cp ZQ1_125.EXE hd umount floppy umount hd losetup -d /dev/loop0 /dev/loop1 rmdir floppy hd Quit root (ctrl+d). Verify things work, again: qemu -hda disk This time, it should boot as from the floppy. Do a "dir" to check that ZQ1_125.EXE is right there. Quit qemu. You have a DOS disk ready. 3. Boot DOS ----------- Reboot your computer. In grub, launch a command line (type 'c') and do: linux16 (hd0,msdos1)/homedir/bios/memdisk initrd16 (hd0,msdos1)/homedir/bios/disk boot "(hd0,msdos1)/homedir/bios/memdisk" and "(hd0,msdos1)/homedir/bios/disk" must be adapted to your case. You can type TAB after "linux16 (" and see what pops up. Find your partition and your directories. 4. Update the BIOS ------------------ In DOS, just run ZQ1_125.EXE. Once done, reboot (ctrl+alt+del). 5. Problems? ------------ I have ubuntu and grub. If you have something else, things might not work. Get in touch with me (mailto:sed@free.fr), or dig the web. There are some overkill steps in there (the file transfer from balder10.img to disk, and the use of qemu simply to create a bootable harddisk image). If you know of simpler methods, share. SOME NOISE (FOR I CAN) ====================== Enough with HTML. Back to text. It's 2012, time for some simplicity. I have enough. Bloat must die. So what? So I have an ACER computer, Aspire Timeline X, model 5820TZG, which I kept from my last job. (What? I stole it? No, they didn't ask it back, so it's perfectly clean.) And I have an issue with the battery. Linux won't see it. ACPI or whatever is buggy. I first thought of a bug in the linux kernel. But digging the web leads to a problem with the BIOS. Okay, let's change that beast. How do I do that? And the web explains that (if you don't have a Windows or DOS system) you must create a file named XXX, extracted from the official binary and blablabla. But nothing about how to extract it. Hum, very complicated. So only solution: run the official binary, which is a... DOS program. Woo! How do I run a DOS program? I DON'T HAVE DOS AND I DON'T HAVE WINDOWS EITHER! Acer, you are a gang of suckers. Okay, okay, calm down. There is freedos out there, what about putting it, I don't know, on a USB key or something and boot from that, huh? I tried, but no luck. All I could do is the grub command line as explained above. Except I didn't create a 'disk' file, but put ZQ1_125.EXE on the USB key, then plug it, then reboot, and then in DOS I have a C:/ drive, which is the USB key. But hell, can I not get rid of the key completely? So, I wondered if I could put ZQ1_125.EXE directly in balder10.img. Answer is: NO. Why? Because that file is 2659327 bytes long, which is more than what allowed on a floppy (1.44MiB) (you like international units?). So, hum, what about a harddisk then? Can 'memdisk' work with harddisk images? Ah, yes. Okay, let's go. I tried to make the image in gnu/linux, without qemu and DOS. Failure. I can't create a bootable disk. At least without grub. mkdosfs won't do that. Why? I don't know and I don't care, but that forces us to go through the qemu thing, which is a bit overkill just to throw what? 512 bytes in the MBR of a fake harddisk? Hell... Anyway, there it is. I can now look in /sys/class/power_supply/BAT1 and /sys/class/power_supply/ACAD and have real status about those things. Life is beautiful, no? No. (And I still don't have a working internal microphone, for whatever reason...) This computer is a shit, don't buy it.