Michael Sheldon's Stuff

Michael Sheldon (mike at mikeasoft dot com)

June 30, 2007

Im in ur Treo, Linuxin’ ur phonez…
Mike @ 7:42 pm

With much help from the chaps in #hackndev I managed to get Linux installed on my Treo 650:

Linux Treo 650

You can see a video of it booting and running a few applications here:

http://elleo.blip.tv/file/get/Elleo-LinuxOnATreo650996.ogg (Ogg Theora)

For anyone else wanting to do this, the steps are as follows:

  1. Download and unpack P3t3’s Treo image.
  2. Overwrite the zImage with my version. This is a more up-to-date kernel and has the initramfs built in to the kernel image (because of some buggyness in the MMC driver loading an initrd image from an SD card can be unreliable).
  3. Copy AngstromOPIE_t650-v01.ext2, linux.boot.cfg and zImage to the root of your SD card (make sure you unmount it cleanly after you’ve finished).
  4. Download P3t3’s Treo version of cocoboot and install it to your Treo.
  5. Run Cocoboot on your Treo, replace the line saying “init=/linuxrc” with “mem=32M”, then hit “Boot”.
  6. Enjoy the geeky goodness :).

For people asking about the 680, I don’t own one but you could try using the latest zImage and cocoboot version from: http://www.palmlinux.cz/p3t3/treo680/.

It’s still not amazingly fast, but adding the swap makes it just about usable (see update), and there’s still a lot of work needs doing before it can actually be used as a phone. I believe P3t3 has worked out how to switch the GSM chip in to AT mode (PalmOS uses some odd binary mode for talking to the chip), but I don’t think things have gone much further than that yet.

To get back in to PalmOS just hit the reset button. It shouldn’t touch any of your files in any way, but it might be a good idea to backup first just in case ;).

Update: The speed can be increased greatly by passing the parameter mem=32M in Cocoboot, for some reason without this the kernel only makes use of about 16MB of RAM.

Update 2: Fixed dead links, added links for Treo 680, removed swap info (not needed with the mem=32M parameter).


  1. I wouldn’t like to start that phone in a hurry 😉

    Comment by Alasdair MacLeod — July 1, 2007 @ 11:53 am

  2. Hi there! this is good news! is it possible to install this into a T|X?

    Comment by Bertrand Son Kintanar — July 1, 2007 @ 12:42 pm

  3. Hi Bertrand,

    Yes, Linux for the T|X has been around for a while and should be a fair bit more mature than Linux for the Treo. Take a look at http://hackndev.com/palm/tx for more information for more information.

    Comment by Mike — July 1, 2007 @ 1:17 pm

  4. Oh, and I’ve managed to more than halve the boot time now; down from about 3 minutes to 1 minute 20 seconds. Which still isn’t great, but it’s more bearable 🙂 .

    Comment by Mike — July 1, 2007 @ 1:27 pm

  5. Can this work on a Treo 600? (I tried the published kernels and root image w/ no luck.) Any idea what changes would be needed?

    Comment by Eric — July 1, 2007 @ 5:54 pm

  6. Sorry, as far as I’m aware no one’s really put anywork in to getting Linux to boot on the 600. I’m not sure it’d really be very usable since the 600 only has a 160×160 screen (compared to the 650’s 320×320 screen) and a much slower processor (144Mhz compared to 312Mhz); although it does have twice the RAM (but you’d lose anything you had stored on the device when you booted Linux, since it doesn’t have NVFS).

    Comment by Mike — July 1, 2007 @ 6:08 pm

  7. Thanks Mike! I haven’t heard of it and I’d really want to try. Thanks again! PalmTX Project here i come!

    Comment by Bertrand Son Kintanar — July 2, 2007 @ 4:12 am

  8. […] Michael Sheldon nel suo blog fornisce le istruzioni per installare Linux, sembrano abbastanza lineari da seguire ma ovviamente non avendo un treo non le ho seguite 🙂 Invece niente istruzioni per installare OpenMoko, ma vorrei segnalare che al momento la parte “telefonica” del Treo non funziona. […]

    Pingback by Linux e OpenMoko su un Treo 650 « pollycoke :) — July 2, 2007 @ 2:53 pm

  9. […] He has also been able to install a version of OpenEmbedded and has posted instructions and a video demo of it in action. […]

    Pingback by OpenMoko & OpenEmbedded on a Treo 650 — July 6, 2007 @ 2:36 am

  10. Hey, I got open embedded running on my treo 650 following your instructions and i’m very excited about it (I’m more excited about open moko, but decided against it because of your advice)

    but my questions are:

    1. In Opie, is there a way to use my Internet from my phone?
    2. If I want to develop for opie, where should I start?

    Comment by John Anderson — July 11, 2007 @ 8:35 am

  11. Hi John,

    Currently it’s not really possible to get internet access from the phone; I haven’t been able to get the USB or bluetooth systems working yet and the GSM side of things (GPRS) still needs a fair deal of work.

    In terms of developing for Opie your first step would be to set up an Open Embedded build environment. You might find it simplest to start off writing programs in Python using the QT/Embedded bindings (you’ll need to build the relevant packages with open embedded first).

    Comment by Mike — July 13, 2007 @ 9:55 pm

  12. This may be stupid, but where do I run the following command?
    “# Run the following command: dd if=/dev/zero of=swap.swapfs bs=1024 count=32768”

    I run windows normally, still fussing with Linux on my laptop. I booted Knoppix from CD and tried running it from Root Terminal and it didn’t like it. Also what is the purpose of running this string?

    Comment by Michael — August 2, 2007 @ 5:53 pm

  13. I finally got the command to run in Ubuntu from a root term. However when I run cocoboot I get the following error:
    FtrPtrNew failed
    Any Ideas?

    Comment by Michael — August 2, 2007 @ 6:46 pm

  14. dd if=/dev/zero of=swap.swapfs bs=1024 count=32768

    creates a 32Mb SWAP partition filled with 0’s so that (presumably) later it can be mounted via the loopback device?

    Comment by ddman — August 2, 2007 @ 6:59 pm

  15. I followed the instructions without a hitch and it is wonderful to have Linux run on my Verizon 650! Thanks!

    I’ve been googling and poking around for a while and wondered if you can point me in the right directions, I can’t seem to figure out which of the dozen or so places I should go are (maybe all). I’m afraid I only read/write English:
    1 – where can I get the most up to date info about what hardware is supported? my usb/bluetooth/sound/suspend/phone don’t work
    2 – where can I go to help start developing/enhancing? (I’m a good Linux programmer C/C++/php/mysql/shell/etc)
    3 – are there more up to date images available now? these appear to be from several months ago

    I still use my Verizon 650, but a friend gave me his Sprint 650 that he did not want so I can really go to town on it 🙂

    Thanks for helping me get into Linux on my Treo instead of waiting for Palm to release a Linux one!!

    Comment by Mike — August 4, 2007 @ 3:40 pm

  16. I was able to create the swap file on the Treo using Console. Just cd to /media/hdd first. I also had to run mkswap -f swap.swapfs before the phone would recognize and use it.

    Comment by Kevin — August 4, 2007 @ 3:49 pm

  17. […] Michael Sheldon’s Stuff » Im in ur Treo, Linuxin’ ur phonez… Still have my Treo 650. Slapping linux on it sounds like fun. (tags: linux treo embedded) […]

    Pingback by Phil Nelson – links for 2007-08-06 — August 6, 2007 @ 1:20 pm

  18. I THINK I was able create the swap via console. I cd’d to the SD card and ran the command. However I still have the same issue. When I run Cocoboot my screen slowly greys out or garbles and then just sits there. I have waited a good five minutes and it never does anything. Any ideas??

    Comment by Michael — August 7, 2007 @ 7:13 pm

  19. […] Ao ler a notícia no br-linux fiquei me coçando para rodar o linux em meu treo650 também, mesmo sabendo que há o risco de perda de todos os dados eu meti as caras e fiz o que o Michael Sheldon mostra em seu blog, um passo-a-passo muito simples, e não é que FUNCIONOU muito bem, o opie ficou muito chic no meu treo650 e o melhor, eu, particularmente não perdi nenhum dado, apenas o meu relógio que ficou parado enquanto eu rodava o linux. […]

    Pingback by That’s all folks » Blog Archive » Rodando Linux no seu treo650 — August 9, 2007 @ 4:32 pm

  20. I’m getting the same issue Michael is, my screen just turns grey… weird.

    Comment by Chris D — August 9, 2007 @ 10:11 pm

  21. Hi… someone know if exist a linux for Nokia cellphone? I have a nokia 6230i. Tks! 😀

    Now i need buy a Treo to run linux too! 😀

    Comment by Pipo — August 10, 2007 @ 8:11 pm

  22. […] Zelf snel proberen? Kijk dan op deze site: Michael Sheldon’s Stuff » Im in ur Treo, Linuxin’ ur phonez… Helaas niet de nieuwste OPIE versie, maar het geeft wel een impressie van de mogelijkheden. Om een reactie te plaatsen moet je geregistreerd en ingelogd zijn. Home | Nieuws | Reviews | Tips | Shop | Channel Navigator | Nieuwsbrief | Forums © Copyright Nederlandse Palmclub Stichting   Over deze site _uacct = “UA-345702-1”; urchinTracker(); […]

    Pingback by Palmclub: [Nieuws] Hackers uit Oekraïne zetten Opie Linux op een Palm - alles over je Treo, Zire, Tungsten & Lifedrive pda en smartphone met PalmOS — August 13, 2007 @ 9:41 am

  23. dd if=/dev/zero of=swap.swapfs bs=1024 count=32768, i’m a newbie, where can i put this command on?

    Comment by pope — August 21, 2007 @ 1:46 am

  24. Will these versions, Opie and OE, make calls? Or is it just for the Operating System that everyone is upgrading to it?

    Comment by David Tenney — August 28, 2007 @ 9:19 pm

  25. I just tried it, it works pretty good.

    Comment by ksom — September 3, 2007 @ 6:50 pm

  26. Hello Mike
    I was waiting for the release of Linux in Palm, I followed the instructions to boot it in my 650, all was done correct, but when It starts at the bottom of the screen appear the following message and then freeze it.

    Kernel panic – not syncing: Attempted to kill init!

    Comment by bengar — September 30, 2007 @ 2:33 am

  27. Worked like a charm !!!
    One correction to your instructions…
    You forgot to mention that in addition to copy the files: AngstromOPIE_t650-v01.ext2, linux.boot.cfg and zImage to the root of your SD card you also need to copy the file: initrd
    Without initrd the boot cannot be completed.
    Hope to be able to have the GSM operational soon !

    Comment by ZX81 — November 4, 2007 @ 4:02 pm

  28. One more thing… in order to substitute the file zImage:
    Download the file as per instructions using the “right click” and “save target as” method.
    The file will be saved as a .txt file on your computer.
    You need to delete the extension .txt – in order to do that you need to disable the “Hide extensions for known file types” option.
    Now that you have the zImage without the .txt extension you can substitute to the zImage file included in the AngstromOPIE_t650-v01.zip file that you have previously downloaded.
    Glad to help you folks !

    Comment by ZX81 — November 4, 2007 @ 4:14 pm

  29. I purchased a 2GB San Disk card today, followed steps 1 through 6 and it works like a charm. The only problems I encountered are already know, Bluetooth, sound and battery monitor don’t work. It’s amazing to see Linux running in graphics mode on the Treo 650.

    Getting to this point took some time. There are many dead links on the net related to Linux on the Treo. I bookmarked this page and hope to see more progress.

    Comment by jjrowan — November 9, 2007 @ 2:43 am

  30. […] Basic Tutorial, Goto : http://blog.mikeasoft.com/2007/06/30/im-in-ur-treo-linuxin-ur-phonez/ […]

    Pingback by xWinGs’ Blog » Blog Archive » Treo 650 : Running on Linux — November 13, 2007 @ 7:00 pm

  31. […] yamaların gerekliliÄŸi sebebiyle fazla uÄŸraÅŸmak istemedim (ki cidden uÄŸraÅŸtıracaktı) ve Michael Sheldon‘un kendi Tero 650’si için hazırladığı imajı […]

    Pingback by trlinux » Blog ArÅŸivi » Palm Treo 650 üzerinde Linux — December 6, 2007 @ 8:11 am

  32. Sorry, just a question:
    why my treo650 can run into graphic UI.

    Comment by harvie — December 10, 2007 @ 4:13 pm

  33. Sorry, just a question:
    why my treo650 can not run into graphic UI.

    Comment by harvie — December 10, 2007 @ 4:13 pm

  34. can i use the device as a phone too?

    Comment by chris — December 13, 2007 @ 4:53 am

  35. You cannot use the treo 650 running Opie (linux) as a phone… 🙁
    Hope somebody will find some way to do it.

    Comment by ZX81 — December 21, 2007 @ 11:46 pm

  36. I just try the Treo 680 version & it works perfect!
    This is great!
    I hope you can activate the phone apps sometimes.

    Tkz a lot for this great achievement.

    Comment by Eric Notar — January 5, 2008 @ 5:30 pm

  37. Quick question when I substitute your zimage file I get a grey out screen when I boot up, but when I boot with the default image from the zip file i get to a prompt but no further. I have everything from the zip file on my 2G SD card and I am unable to get past the initial boot process. I am pretty familiar with Linux but unable to understand why I am stalling after boot.

    To be specific I only make it to the busy box command shell. Do I just need to wait longer and boot process will continue?


    Comment by Chuck — January 10, 2008 @ 4:38 am

  38. I figured out my own problem. I thought it was the 2GB card it was what I put in to start up. The newer image that was referrenced would not work but the original zip works fine just add mem=32M to the existing default text and it boots fine.

    Thanks for the information above.

    Comment by Chuck — January 10, 2008 @ 10:09 pm

  39. really weird that it doesnt work wth his zimage or amtbe im useing it wrong

    Comment by vinnie — January 12, 2008 @ 9:59 am

  40. for some reason i cant get pass the int set up as it wont let me click next

    Comment by vinnie — January 12, 2008 @ 10:12 am

  41. Thanx a lot, I was able to run it on Treo 680 fine (looks perfect, much better than PalmOS) but how to get at least USB support to be able to connect phone from desktop? Has anyboby managed this?

    Comment by iNetLab — January 19, 2008 @ 9:23 am

  42. i get this error

    RAMDISK: Couldn find valid RAM image starting at 0
    No filesystem could mount root, tried:
    ext2 squashfs msdos vfat
    Kernel panic – not syncing: VFS: Unable to mount root fs on unknown-block(1,0)

    can u help me plz?

    Comment by Charls — February 16, 2008 @ 11:14 pm

  43. i had the same problem!you should try another zimage

    Comment by Linux — February 17, 2008 @ 7:16 am

  44. Hi, I’m new here. I have a Palm Treo 680. My problem is I getting another error message. Please help. Thank you. It reads…

    RAMDISK: Couldn’t find valid RAM disk image starting at 0.
    VFS: Mounted root (ext2 filesystem) read only.
    Freeing init memory: 100K
    Warning: unable to open an initial console.
    Kernel panic – not syncing: No init found. Try passing init= option to kernel.

    Comment by KloudSwift — February 29, 2008 @ 10:50 pm

  45. Is there any hope of getting qnc to work over Verizon?

    Comment by Ball — April 18, 2008 @ 4:55 am

  46. […] http://blog.mikeasoft.com/2007/06/30/im-in-ur-treo-linuxin-ur-phonez/ […]

    Pingback by Digital Media, Internet and Tech stuff » Blog Archive » Linux on Treo 650 — May 15, 2008 @ 4:20 am

  47. hola tengo un problema cuanto comienza con el proceso de instalacion me dice Pánico del kernel – no sincronizar: Intento de matar de inicio! y ya copie todos los archivos incluido el initrd.

    no se que hacer ya que no tengo mucha experiencia con linux.

    agradesco su colaboracion

    Comment by jorge vargas — January 30, 2009 @ 10:29 pm

  48. Hey, I´m looking for the zImage.t680 and initrd-menu.gz, wich are missing from the source (http://www.palmlinux.cz/p3t3/treo680/), anybody knows where to find those?


    Comment by Juggernaut — March 2, 2009 @ 3:14 am

  49. you can dowload the initrd.gx from any site and rename it at least is the best “solution” that I know…

    for the ones who gets: “No filesystem could mount root, tried:
    ext2 squashfs msdos vfat
    Kernel panic – not syncing: VFS: Unable to mount root fs on unknown-block(1,0)”

    you’ve to put in the command line: “root=/dev/mmcblk0p1” the number that is after the “p” is the number of the partition…

    now that I’ve got the partition mounted I still can resolve the init problem…

    I would thanks some help with this I’m trying to boot on a treo 680

    Comment by Edwin — March 14, 2009 @ 1:14 am


    Comment by Stephe — June 22, 2009 @ 11:56 pm

  51. Great OS For the 650 now trying to get it to run on the 700w

    Comment by Brian — August 28, 2009 @ 2:10 pm

  52. It’s very good…

    Comment by Edu — September 23, 2009 @ 1:06 pm

  53. where AngstromOPIE_t650-v01.ext2 store in sd card

    Comment by deshbir — September 26, 2009 @ 2:40 am

  54. cocoboot is not working when i give command they show failed
    please sir help me how i can use the cocoboat to install linux

    Comment by deshbir — September 26, 2009 @ 2:51 am

  55. la configuracion para calls cdma requerida no es aplicable a este sistema^

    Comment by one — January 3, 2010 @ 4:23 am

  56. tengo un problema me dice kernel panic y no puede seguir con la instalacion en mi treo 680 necesito ayuda tengo el cocoboot del pingüinito hehe muchas gracias

    Comment by pipe — January 29, 2010 @ 7:45 pm

  57. has anyone gotten this to work…I got the thing to load the zimage but it won’t go any farther… i tried just using what he told me tried using what the other guy had nothing works….little assistance if its not too much trouble

    Comment by Belgadro — March 1, 2010 @ 9:10 am

  58. Man, thanks for this.

    You’re my damn hero!

    Comment by Framp — March 4, 2010 @ 4:47 pm

  59. Hi guys, has anyone ever had the strange behaviour i had on my treo 650? I put all files where they belong, installed cocoboot and when i tapped on “boot!” it loaded the zimage and then the screen just faded slowly to white beginning at the top of the screen to the bottom, until the screen was completely white! Then, after a minute or so the leds at the top left of the device flashed one time, the vibration once buzzed and then nothing… sounds very strange but that was what it did… lucky enough after a soft reset everything was working as it should in palmOS, so at least i didn’t brick the device…

    Comment by dcp — March 25, 2010 @ 1:43 am

  60. Links are dead. Can anybody upload image file?

    Comment by Vaganovitz — December 24, 2010 @ 2:11 pm

  61. hello, i want to bue treo 750, how adout linux on it? its real? because i’m moder of linux community of uzbekistan and my phone on winmo )) its strange)
    sorry for my english, im russian

    Comment by chestr — February 18, 2011 @ 6:28 pm

  62. oh mean… lot of mistakes…

    Comment by chestr — February 18, 2011 @ 6:30 pm

  63. Hello Mike,Greetings from India. Can i use the linux solution as above for palm treo 750 which now has windows 6.1.thanks.shiv

    Comment by kumar shiv — April 7, 2011 @ 7:47 am

  64. […] on from yesterday’s post I now have have OpenMoko running on my […]

    Pingback by Michael Sheldon's Stuff » OpenMoko on a Treo 650 — June 23, 2012 @ 7:37 pm

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress