Upgrading the BIOS on an EEE PC (with Linux)

This took me a while to figure out, so I wrote directions to hopefully make it easier for other people.

  1. First, you need to get the proper firmware for the EEE PC you are going to flash. Go to http://www.asus.com/ and find the latest firmware for your model.
  2. Extract the *.ROM file from the *.zip file, and place it on your Desktop.
  3. Rename the *.ROM file to [MODEL].ROM. (For example, the EEE PC 1000 would be named “1000.ROM”, 1000H would be “1000H.ROM”) Due to how the boot block was written, the name is case sensitive apparently.
  4. Insert your flash device, unmount it (if it gets automatically mouted,) and open it with fdisk. Set it up like the following:
    #fdisk /dev/sdd
    
    Command (m for help): p
    
    Disk /dev/sdd: 129 MB, 129499136 bytes
    17 heads, 32 sectors/track, 464 cylinders
    Units = cylinders of 544 * 512 = 278528 bytes
    Disk identifier: 0xc3072e18
    
    Device Boot      Start         End      Blocks    Id   System
    /dev/sdd1               1         465      126448    6  FAT16
  5. Now that you have the drive properly partitioned, we need to format it.
    #mkfs.msdos -F 16 /dev/sdd1
  6. After the format completes (and your device activity comes to a halt), unplug the flash drive, plug it back in, and if necessary, unmount the device if it automatically mounts.
  7. Mount it with the following command:
    #mount /dev/sdd1 /mnt/temp/ -o rw,flush,uid=1000,utf8,shortname=win95
  8. Now, copy the renamed *.ROM file to the flash device. After you copy it, refresh the listings to make sure everything is in uppercase. If not, rename it, and try again.
  9. If everything is good, then we can unmount the device.
    #umount /dev/sdd1
  10. Now we can start the flashing process. With the flash device still plugged into the system, restart the system. As soon as you see the BIOS screen, hold down Alt, and hit F2. This should load up the BIOS updater from the boot block.
  11. Now just wait for it to find your flash device, and the *.ROM file on it. If it halts at “Reading file 1000.ROM”, or similar, you did something wrong. Otherwise, it should look similiar to this:
    Boot Block Compatible Version Ver.026
    Please do NOT insert any disc into CD-ROM or Floppy drive
    if you want to recovery with an USB device.
    EZ-Flash starting BIOS update.....
    DO KEEP the power supply on and NOT touch the system while performing BIOS
    update.
    Checking for USB Device...
    USB Device found.
    Reading file "1000.ROM".  Completed.
    Start Erasing...\
    Start Programming.../
    Start Erasing EC Firmware...
    Start Programming EC Firmware...
    
    The BIOS update is finished.
    Please press power button to shut down the system.
  12. After the BIOS update is completed, your BIOS settings will revert back to factory defaults. It will prompt you when you restart that the settings were lost, and everything was reverted. It will ask you to hit F1 to enter Setup. Do that.
  13. Change everything back to how it was. One thing I should note: It disables the Wireless, Camera, and Bluetooth for some reason. Enable these again in the BIOS if you want them.

58 thoughts on “Upgrading the BIOS on an EEE PC (with Linux)”

  1. Thanks for eeePC 900 flash notes, worked perfectly.
    btw, Enjoying xubuntu with array’s kernel, works great on eeePC 900.
    -phil

  2. Thank you Blake!
    Your tutorial worked very well with a few minor changes (used gparted for partitioning + formatting).
    Works perfectly on my eee PC S101 using Ubuntu 8.10

    You saved me from having to do some trickery with freedos / flashbios 🙂

    -Rhubarb

  3. Thanks Blake.

    Just to note a difference in what I did …

    * Skipped steps 1-9, as I have a WinXP system on which I formatted a USB Drive (FAT, not FAT32) and copied my 901-ASUS-1808.ROM to it.

    Also, when the BIOS was being updated, I saw messages about the “Boot”:
    Start Erasing…\
    Start Programming…/
    Start Erasing Boot …
    Start Programming Boot …
    Start Erasing EC Firmware…
    Start Programming EC Firmware…

    In the end, it all looks dandy!!

  4. On my 1000HE, I couldn’t get it to read from the internal card reader no matter what. Solution was to stick in an external card reader with the flash card, while the BIOS updater was scanning for USB devices.

    No problems otherwise. Thanks.

  5. I have a Asus EeePc 1000HD with GNU/Linux Debian Breeze and the BIOS upgrade to 1401 version was fine… Thanks for your help!!!

  6. good work thanks for this. you’d think that asus would be kind enough to at least include a readme with this info, but nothing. just a single rom file that won’t even work the way it’s named. had I not found this I would be staring at “searching for usb device” looping forever wondering wtf is going on.

  7. Hi I have issue with EeePC 1000H. Following the procedure instead to read file 1000H.ROM the error message occurs and repeats:

    Checking for USB Device…
    USB Device not found!
    Checking for USB Device…
    USB Device not found!
    Checking for USB Device…
    USB Device not found!

    Any Ideas?

  8. Hi good work thanks for this.
    I had the same problem like the posting before…

    Checking for USB Device
    USB Device not found!
    Checking for USB Device
    USB Device not found!

    after changing to a other USB Device SanDisk 2GB formated like this:
    cfdisk (util-linux-ng 2.13.1.1)

    Disk Drive: /dev/sdc
    Size: 2055021056 bytes, 2055 MB
    Heads: 63 Sectors per Track: 62 Cylinders: 1027

    Name Flags Part Type FS Type [Label] Size (MB)
    ———————————————————————————————————————————————
    sdc1 Primary FAT16 [EEEPC ] 1401.92
    Pri/Log Free Space 651.96

    it works :-)))

  9. Heya, Thank you so much for the guide, finally managed to do a bios update with my asus eee pc s101, forgot it has to be formated as fat16, fat32 or ext3 does not work.

    // Patrick, Sweden.

  10. Thank you. After some of the missteps identified in the previous comments, I scrounged up an old 512 MB thumb drive, reformated it on my MacBook to MS-DOS, and then copied over the new BIOS file and renamed it both 1000HE and 1000H. Rebooted my ASUS eeePC 1000HE as per your guide and the new BIOS was read without a hitch, the BIOS-Flash picked the correct file. No problem with camera, wireless or Bluetooth. Again, thnx. Sandy

  11. is there a video somewhere how to do this, ’cause I have no idea how to work with linux, formatting an doing all of the steps, can somebody please tell me step by step how to do this where do I enter #fdisk/ dev/sdd and all of that

    thanx 🙂

  12. @Manny: I never made a video, but maybe you can find one on YouTube or something. As far as the commands that need to be entered though, you just need to open up a terminal window.

  13. @Mike: Couple seconds. If it gets stuck there, that means you are doing something wrong. It could be that you are trying to use an SD card in the side slot, which can not be done, or it could mean that you have improperly formatted your flash drive.

  14. if it gets stuck at the “Reading file” stage your disk is formatted with FAT32 filesystem!

    You should create a FAT16 parition (which needs to be smaller than 4Gb).

    Use GParted to do that.

  15. Thanks a million… worked for me on Asus Eee PC 900 with Ubuntu 9.04. I did a bios update to version 1006.

    A note to others: I did step 1 to 9 on another computer. But that will not work. You have to do all steps on the computer with the bios to update.

    Again, thanks a lot, you saved me a lot of time.

  16. This is wat did the trick for me:

    plugin usb stick (4GB in my case)

    open a terminal

    sudo cfdisk /dev/sdb

    delete all partitions

    make a 512MB partition set bootable flag, set type to fat16 (0B) then quit

    copy nameofmmodel.rom to stick

    hit alt-f2

    reading file “1000he.rom” took only 2 sec or so, if it takes much more, maybe your partition is to big (it was at first in my case which is why I made a 512MB one)

    Good luck!

  17. Oops forgot to add, after you hit quit in cfdisk do:

    sudo mkdosfs -F 16 /dev/sdb

    OFF COURSE replace /dev/sdb with whatever your disk is (you can get a hint by typing dmesg in the terminal)

  18. Doesn’t seem to be working for me. I have a 1015PED. It hangs at the reading phase. I’m using a 320GB external drive, though I only made a 128MB FAT16 partition in it. Maybe it’s reading the whole drive and just taking a long time, for some reason? There is constant disk access while it seems to be hung. I don’t have a USB stick on hand to try.

    I named the BIOS file “1015PED.ROM”. However, it says it’s trying to read “1015PE.ROM.” This makes me think that the PED variant isn’t a significant enough change from the PE one, and the BIOS doesn’t care. This is compounded by the fact that the name ASUS name for the 1015PED BIOS is “1015PE-ASUS-0801.ROM”. However, I have tried the name “1015PE.ROM” and that didn’t work either. Ideas?

  19. Thank you for this post.

    I have an Asus 1015-PED-PU17, and the updated BIOS, after unzipping, was named 1015PE-ASUS-0801.ROM.

    Per your instructions I renamed it to 1015PE.ROM

    I only made a slight change: my flash drive holds more than 4GB, so I repartitioned it with gparted, creating a 2GB FAT 16 partition containing the renamed 1015PE.ROM file.

    Everything worked perfectly after that, thanks again! I updated the BIOS because the 0502 version that came with the machine (purchased from Amazon in August, 2010) did not recognized the 2GB memory chip that I subsequently purchased from Crucial. I’m posting this note in case others have a similar issue.

  20. Cheers dude, this gave me the confidence to update the bios on my aging eee PC 900. worked like a charm, am just hoping I get some more battery life, it was still on Bios 0501 :-0

    Much Appreciated 🙂

  21. so I’m doin this now, and here are the messages I got

    USB Device found.
    Reading file”1015PE.ROM”.
    Start Programming…

    It has been hung up there for quite a while, never got the Start Erasing step, and at this point it has been taking way too long, any ideas?

  22. I need help…
    while it was in the middle of programming the BIOS, the battery went dead and made the power to go down,after plugging it back on ac I got a completely black screen. I have all the lights on and still. I’ve waited but nothing shows up. Ive also tried resetting the CMOS but still got blackscreen.

    Hope someone could help me

  23. Thanks Teek! I was using a 2gb stick on a 1000HE, and it always hung on “Reading 1000HE.ROM”.

    I used your technique to make a 512mb partition, and installed bios v1104 perfectly.

    -John

  24. just out of curiosity, has anyone tried to add cpu support into a BIOS successfully, in this case AMI BIOS?
    there is plenty of forums out there that talking about it, however, it doesn’t mean that all the stuff they saying really works.

  25. hey folks, got a e900 and i got the .rom file, renamed it to 900.ROM, gparted my 4gb to just over 500mb.

    then it gets stuck at “reading file ‘900.ROM'”

    any suggestions?

  26. I tried these steps a number of times with a fresh usb stick. It got stuck at “Checking for USB Device” and also at “Reading file”. Various people seem to get stuck at various stages and then it works for them after a seemingly random change e.g. setting the bootable flag for the partition or plugging in their power cable. What seemed to help in my case was blanking the usb stick with dd if=/dev/null before following your instructions.

  27. Thanks.

    BIOS was successfuly updated on ASUS Eee PC 1000 from 0803 to 1003 version by using 1GB Kingston flash-drive.

    Many thanks from Russia, Moscow.

    – Alexey

  28. Thanks.

    BIOS was successfuly updated on ASUS Eee PC 1011PX from 1301 to 1401 version.
    The update only works from the sd card reader of the Netboot.
    >>> And not with the usb stick. <<<

    On my pc is installed only Ubuntu 11.04

    Many thanks from Italy, Spoleto.

  29. Something that may be of use to others.

    When I was performing a bios update on the eeepc 901 and formatting the usb flash stick with gparted these are the settings I used that eventually worked:

    1. run gparted
    2. unmount partition on usb flash stick if it’s mounted (not safely remove, just unmount).
    3. (device) > (create partition table) type:”MSDOS”
    4. right-click the unpartitioned space and select “new”
    new size: 128
    align to: cylinder
    create as: primary partition
    file system: FAT16
    label: 128MB
    5. hit “add” and then the green checkmark to apply
    6. right-click the partition you just made, manage flags, and turn on “boot” (I don’t know if this makes any difference)

    after trying this several different ways I think the align partition to cylinder may have been what finally did it. also it shouldn’t matter but I was using the usb port closest the vga port.

  30. Thanks for this useful post! And also to Drew Woodard’s comment of 2011-12-28! I just upgraded my 900 from BIOS 802 to 1006.

    I was careless the first time and didn’t make the partition sufficiently small so the Asus failed to find/read it. Later times failed due to the USB stick being flaky, I believe (it had given me occasional trouble in the past) – changing to a different USB stick made it work the first try.

    So if anyone else has trouble despite seeming to follow the procedures here, you might try changing to a different USB stick. 🙂

  31. Awesome. I’m on Win7 here, but you gave me the universal key: make sure the stick is formatted, in my case, to plain FAT. Immediately the file was read. Funny how the Asus site didn’t offer that solution. Thank you.

  32. I’ve tried w/ a 16g SanDisk Micro Cruzer & it all went fine until I tried to mount it AFTER the formatting in FAT16. I can’t do that much less copy the ROM I d/l’d from ASUS.

    I thought it might be a balky thumb drive, though I’ve had no probs w/ it before, & tried a Kingston 4G, Class 4, SDHC card in a card reader. My ASUS Eee PC901 sees it & will mount it, but when I go to partition it w/ GParted, as I did w/ the 16G thumb drive, it won’t do it …

    I have a really nice paperweight @ the moment. I’m running Ubuntu Netbook 10.10 off of another Kingston SDHC, Class 4, 2G card. Can’t install until I reformat both SSDs (the standard config).

    One more thing. Not sure if it’s relevant but this netbook came loaded w/ Win XP & my IT son installed Ubuntu 9.10 on it when he bought it for me. I’ve nvr upgraded the BIOS on it &, other than restarting, not sure how to find out what ver it’s running.

  33. Thanks, Blake. This worked. I especially appreciate how comprehensive your instructions are.

    I understand that formatting FAT16/msdos is optimal. However, I left my 256MB Lexar Jumpdrive formatted to VFAT, and was successful upgrading from BIOS 0802 to 1006 on Asus Eee PC 900.

    What I double-checked before running the upgrade, is the file naming. I mounted my VFAT formatted JumpDrive as type msdos, rather than vfat.

    The files are shown in a directory listing, but are all lower case in Linux. This is just Linux’s display deal for FAT16/msdos filesystems, not the physical name of the files.

    But I knew I had an all-uppercase-named 900.ROM file before I copied it over to the USB drive; your instructions imply that necessity.

    So, I felt confident enough to try it in the Eee, and the Eee accepted the file name, read the file, and flashed the BIOS.

    All is well, and thanks again.

  34. Hey, thank you. I updated the Bios of a little Asus Eeepc 1005-HA very well with following all the steps each step by each step. Also, very good/helpful comment from Teek.

  35. Works great, thanks! Even easier if you have a windows PC and old 1GB usb drive handy: download the file, rename the ROM file, copy it to USB drive, alt+F2.

  36. The key on a Windows PC is to format the usb pen as FAT (Which will format as FAT16 upto 2gb of storage)and not FAT32.

    I appreciated this is a post for Linux but it did show me where I was going wrong.

  37. This is driving me crazy. I have tried with two different USB drives, both formatted to FAT16 not FAT 32, with the USB drives in either the side or the back USB ports (but never more than one plugged in) and yet still my machine stalls on “Reading file “T101MT.ROM” (that is the model number of my machine). I have downloaded the bios file from Asus several times, I have tried everything I can think of. First I just formatted using the disk utility that pops up when you right click on the USB icon in the launcher, then I got GPARTED and tried and nothing works. Both of the drives I have are almost 2 GB, I don’t have anything smaller, maybe that is the problem? Any help would be super appreciated.

Leave a Reply

Your email address will not be published. Required fields are marked *