PowerPup! A project to port Puppy to PPC macs!

A home for all kinds of Puppy related projects
Post Reply
Message
Author
User avatar
PowerPup
Posts: 64
Joined: Wed 18 Mar 2009, 01:56
Location: Washington, USA.
Contact:

PowerPup! A project to port Puppy to PPC macs!

#1 Post by PowerPup »

I have always loved the fact that Puppy Linux runs completely in ram and being able to save changes without having to install it onto or modify your hard drive. And while their are a few live CDs out there for the PPC macs, none of them have the Puppy philosophy.

So as a way to better understand Linux, I have decided to try to fill this gap between Live CDs and PPC macs.

Updated: 10-10-2010
My latest attempts will be to use Debian as the base for PowerPup, maybe following something along the lines of Dpup.


The goal of this project is to make a Lightweight Linux System that works a lot like Puppy, runs completely in ram and can save changes to a hard drive or usb stick, all on a PPC machine. Because there are plenty of good G3 macs and such out there, but Mac OS 9 is too old, and sometimes Mac OS X is slow. Puppy is ideal for these kind of computers. :D

All those who want to contribute are welcome. I'll be using this topic to post updates and ask for help when looking for information and source code.
Because I'll be doing this in my spare time I do not know when I'll have a usable version released. If it gets too hard I may drop this project. Even though I don't plan to drop this project I don't want to get people's hopes high.

Thanks BarryK and to all the people who've made Puppy Linux possible!

For those who want to test what I have so far can download the beta here or at powerpup.yi.org


-PowerPup
Last edited by PowerPup on Sun 24 Apr 2011, 23:45, edited 17 times in total.

User avatar
technosaurus
Posts: 4853
Joined: Mon 19 May 2008, 01:24
Location: Blue Springs, MO
Contact:

#2 Post by technosaurus »

you may want to check into modifying Barry's woof script's for slackware to use slackintosh ... look for woof alpha2 or spup
... alpha3 should be out in a few days

also check out amigo's src2pkg program if you need extras that aren't in the slackintosh repo
Check out my [url=https://github.com/technosaurus]github repositories[/url]. I may eventually get around to updating my [url=http://bashismal.blogspot.com]blogspot[/url].

User avatar
Lobster
Official Crustacean
Posts: 15522
Joined: Wed 04 May 2005, 06:06
Location: Paradox Realm
Contact:

#3 Post by Lobster »

:) Certainly look at Woof.

However I would go at it or consider the attempt from another angle.
Take a working PPC Linux distro and modify to become more like Puppy.

Gradually substituting and recompiling more and more components

This way you can release and test (and be encouraged)
during the long cycle of development that may be required.

Just an idea :)

I have a Mac that would run any effort you make - so would be interested :)
Puppy Raspup 8.2Final 8)
Puppy Links Page http://www.smokey01.com/bruceb/puppy.html :D

User avatar
PowerPup
Posts: 64
Joined: Wed 18 Mar 2009, 01:56
Location: Washington, USA.
Contact:

#4 Post by PowerPup »

Thanks for the info technosaurus, I'll take a look into src2pkg.
Yeah, I am aware of Barry's Woof script project, I had thought about using it once it was more developed or something. But even with Woof, I or someone will need to figure out how to add HFS Plus file system support to the initrd scripts. That will probably be one of the harder parts. It's just the fact that Puppy wasn't originally designed for the PPC architecture. It would take some work to Woof and Puppy to get it working right.

Actually Lobster, that is practically what I am doing. :D I'm taking Slackintosh, a PPC port of Slackware, and modify it to become a Puppy Live CD. Since Puppy 3 was built with Slackware binary packages, I thought Slackintosh would be my best bet. (Plus I like Slackware more.)

Not being based on Puppy packages means that it won't have any of the special pup programs like Pupdial and such. Which reminds me, I not sure yet how to get the Xorg wizard included on the CD. It would be ideal to have it since different macs have different graphic cards.

Small update and spelling correction in first post. ;)

User avatar
PowerPup
Posts: 64
Joined: Wed 18 Mar 2009, 01:56
Location: Washington, USA.
Contact:

progress

#5 Post by PowerPup »

Okay, I have some progress! :D I have finished compiling all the programs for the initrd image, generated the iso and booted it up!

These pictures show it running on a PowerBook G3.
Yaboot: boot loader for Openfirmware.

As far as it got...
The kernel panic shown in this picture was due to improper initrd= setting in the boot loader's config file. Fixed that but now I get:

Code: Select all

NET: Registered protocol family 1
NET: Registered protocol family 17
Freeing unused kernel memory: 212k init
Failed to execute /init
Failed to execute init. Attempting defaults
Kernel panic - not syncing: no init found. Try passing init= option to kernel.
Rebooting in 180 seconds.
I assume I'm getting this error either because:
It's not reading the cpio initrd image properly. I've tried both cpio and ext2 images with proper boot setting in the boot loader.
Or, it's not being pointed to the init properly. The only init files I can find in the initrd-tree before making the image is the init soft link to busybox in /bin and the init shell script in / .

I've been trying to correct this with no luck yet. :( Any help would be appreciated.

User avatar
Lobster
Official Crustacean
Posts: 15522
Joined: Wed 04 May 2005, 06:06
Location: Paradox Realm
Contact:

#6 Post by Lobster »

Good start

have emailed the creators of Slackintosh to see if they can advise you
(Adrian and Marco) :D
Puppy Raspup 8.2Final 8)
Puppy Links Page http://www.smokey01.com/bruceb/puppy.html :D

User avatar
Lobster
Official Crustacean
Posts: 15522
Joined: Wed 04 May 2005, 06:06
Location: Paradox Realm
Contact:

#7 Post by Lobster »

Adrain writes:
Uhm,

As you can see in http://dpoapw.bay.livefilestore.com/y1p ... 300558.JPG the kernel fails to mount the initrd (err=1)

Well, i have no idea what err=1 is (in userland its EPERM/Operation not permitted but i don't know if this error is also errno.h based) but something is wrong with the initrd.

Maybe the bootloader failed to load it (it should complain, shouldn't it?) or the initrd is compressed in an invalid/unsupported format
Puppy Raspup 8.2Final 8)
Puppy Links Page http://www.smokey01.com/bruceb/puppy.html :D

User avatar
PowerPup
Posts: 64
Joined: Wed 18 Mar 2009, 01:56
Location: Washington, USA.
Contact:

Success!

#8 Post by PowerPup »

As the word of a song from a favorite movie of mine goes: "From the ashes of disaster grow the roses of success!" :D

Thanks for your help Lobster. :) After a lot of trial and error I found out what was wrong. (btw: that pic in the quote was an older picture, I had the init= option pointing to image.gz instead of initrd.gz . fixed that shortly after taking the picture.)

It wasn't working because I was using busybox 1.4, when Puppy 3.01 itself used 1.6. So I found 1.7 in slackintosh itself and used it in the initrd image. And now:

"For up from the ashes, up from the ashes, grow the roses of success!"
Puppy started. No sfs files found.

browsing the ramdisk's folders.

Now that I have this done, I can take it easy before I create the new partition that I'll be using to create the sfs file, I'll also take a look at puppy-unleashed file to see if it'll make things easier. But with this step done it shouldn't take much more. (I hope. :P )

Update: Well, I think I found out why it's having those "Unable to load NLS charset UTF-8 errors. (in pic 1 of this post.)
It's a kernel module needed by HFS Plus to recognize case-sensitive files. I've been able to mount the CD Rom with those same errors.

But I haven't figured out why I'm getting:

Code: Select all

/bin/sh: can't access tty: job control turned off


When I try running ash, I get the same error.
When I try to run a certain programs. like guess_fstype, I get:

Code: Select all

ash: guess_fstype: not found
So I gotta work on this before It can detect pup_301.sfs, because I burned the PC version on the CD for test and it still couldn't find it. My guess it has something to do with the CD image being a Hybrid Cd. (Meaning it has HFS and iso9660 formats)

User avatar
PowerPup
Posts: 64
Joined: Wed 18 Mar 2009, 01:56
Location: Washington, USA.
Contact:

#9 Post by PowerPup »

Well, as far as i can tell it's definitely something with the init scripts. My guess it the fact that they weren't written with Mac hardware in mind.

Looking in the init scripts I noticed that Puppy uses either aufs or unionfs, whichever specified. I haven't applied either of those patches to the kernel and not sure where to get them.

And the fact that the CD is a Hybrid doesn't seem to be a problem. Because I can mount it as hfsplus or iso9660 and it works. :)

So if anyone out there who knows a good amount about Puppy's init scripts and wants to help I'd sure appreciate it. :D In the meantime I'm going to have to learn how to decipher it and figure out how to load the mac's hardware. :P It's going to be somewhat difficult because the init uses modprobe to load the ide drivers. while the mac drives (pmac ide) is built in to the kernel with no option to compile as a module. Not sure if this is part of the problem, but at this point I'm on a back country road with a map in a foreign language. :P

Dweomergod
Posts: 3
Joined: Sat 21 Mar 2009, 03:24
Location: St Louis Missouri

lost in a foreign country without a map

#10 Post by Dweomergod »

keep up the good work :D :D I have a slew of macs that i would love to revive with puppy........ :twisted:

User avatar
technosaurus
Posts: 4853
Joined: Mon 19 May 2008, 01:24
Location: Blue Springs, MO
Contact:

#11 Post by technosaurus »

kernel 2.6.29 is out and has support for unionfs and squashfs... thus if you specify unionfs, you can use a vanilla kernel with no patches... use the kernel config from slackintosh as a starting point and make sure you enable union and squash (not enabled by default if I remember correctly)... also there are now additional drivers that can be enabled that are in common use but not considered stable enough for the main tree... not sure if any of those are mac specific

also check other distros with a ppc live cd & check their init

Active ppc live cds from Distrowatch
Check out my [url=https://github.com/technosaurus]github repositories[/url]. I may eventually get around to updating my [url=http://bashismal.blogspot.com]blogspot[/url].

User avatar
PowerPup
Posts: 64
Joined: Wed 18 Mar 2009, 01:56
Location: Washington, USA.
Contact:

#12 Post by PowerPup »

Thanks technosaurus. :D I was wondering when 2.6.29 would come out. This will help make sure that unionfs is installed correctly. ;) (At least I hope. :P )

I had forgotten about Finnix, Yeah I'll take a look at it's init scripts. At least now I have some possibilities to try out.

Thanks. ;) I'll keep you all posted on any progress.

-PowerPup.

brymway
Posts: 407
Joined: Sun 09 Dec 2007, 01:08

#13 Post by brymway »

PowerPup-

If this works you could be nominated for the Nobel Peace Prize. I have an old emac; ppc. I don't rightly know how to do any of the stuff required to accomplish this but if there is any way I can help, lemme know. I'm more than happy to be a test subject.

Great work!
[url]http://wellminded.com/puppy/pupsearch.html[/url]

issarad
Posts: 36
Joined: Sat 24 Jun 2006, 22:44

#14 Post by issarad »

I'm with Brymway on that! I also have 2 unused iMacs (blueberry 350mhz G3 and 400mhz G4 tower) that I would gladly put to task for testing purposes.

It would be great to bring another set of folks with "obsolete" PC's into the fold. I'm all for Puppy on Macs, if it can be done.

User avatar
PowerPup
Posts: 64
Joined: Wed 18 Mar 2009, 01:56
Location: Washington, USA.
Contact:

#15 Post by PowerPup »

Thanks for the encouragement. ;) After looking at Linux 2.6.29 I found out it didn't have unionfs included, it did have squashfs though.

But anyway, I think I found the culprit..... Man it's been hard trying to find 'em. :P I went and looked in the bootinit.log file and found out that every time it tried loading a module it got:

modprobe: not found

This is the same kind of error I get whenever I try to run a program that isn't built into busybox. Or at least, modprobe, disktype, and guess_fstype .

Modprobe I got from slackintosh itself while disktype and guess_fstype I compiled myself for PPC. Is there some sort of library file that these programs need or something?

I assume that the culprits are the kernel and busybox. Something not turned on or something. Probably the easiest solution would be to have all the modules built into the kernel all ready to go rather then loading them up with modprobe, or using busybox's internal modprobe which I tested and does work.

I need to find out why busybox is not letting me execute outside programs. Disktype and guess_fstype are used by the init script to determine which partitions it can look for puppy files. This is leaving really stumped.

Any ideas would be appreciated. :D

-PowerPup.

User avatar
PowerPup
Posts: 64
Joined: Wed 18 Mar 2009, 01:56
Location: Washington, USA.
Contact:

#16 Post by PowerPup »

Well, after some help with the ldd command. I was able to determine that it WAS missing lib file causing disktype and guess_fstype and others not to work. So now I'm going to have to find out how to build them, I think the term is Static. Like using dietlibc to compile them so they don't need the lib files. or just include them in the initrd. I could do the latter just to get the beta working for now.

So busybox and the kernel are okay, at least for now. :P

I think I'll try to upload a working beta up for other to see the progress.
It won't include the mac SFS file because I haven't made it yet. But if they know enough linux sh/bash commands and such they can at least mount the cdrom or hard disk and explore them through the command line. :)

Oh yeah, any information on how to compile programs statically would help. Because at the moment I don't know how to do that. :P
-PowerPup

User avatar
Aitch
Posts: 6518
Joined: Wed 04 Apr 2007, 15:57
Location: Chatham, Kent, UK

#17 Post by Aitch »

perhaps you need to have a look at the construct of yellow dog?

http://us.fixstars.com/products/ydl/

It's a dvd I believe, as it has loads of software, but I've read that Terrasoft were brought in as they had succeeded in porting to PS3, involving a live video accelerator, & which is still being developed....

I, too, have a couple of G3s and a fair few friends with MACs who'd love PPCPUP :D

Good luck

Aitch :)

User avatar
Lobster
Official Crustacean
Posts: 15522
Joined: Wed 04 May 2005, 06:06
Location: Paradox Realm
Contact:

#18 Post by Lobster »

Oh yeah, any information on how to compile programs statically
Pretty sure you don't mean
going into a full lotus and meditating whilst compiling but just in case
http://tmxxine.com/w/MindTraining

. . . you could also read these posters whilst compiling
that might keep you still for a while
http://www.funnyordie.com/blog/posts/14305

More importantly (when you pull this off) I hope you can be added to the Puppy 5 Kennels
http://pupweb.org/wikka/PuppyKennel/
Puppy Raspup 8.2Final 8)
Puppy Links Page http://www.smokey01.com/bruceb/puppy.html :D

User avatar
PowerPup
Posts: 64
Joined: Wed 18 Mar 2009, 01:56
Location: Washington, USA.
Contact:

#19 Post by PowerPup »

Well, I've got some of the program to compile with dietlibc. Need to work on getting the others to compile statically. Meaning that are independent of any library files.

Thought I'd now share what I currently have so far. :D
PowerPup_beta.iso
I recommend using a CD-RW so you don't waste a good CD-R. :P

Wow Lobster, that's so cool! :D About maybe being added to the Puppy 5 Kennels. While I am trying to keep as close as possible to the original Puppy coding as possible, I'm probably going to have to go back and clean it up after I get it working.
Last edited by PowerPup on Wed 08 Apr 2009, 20:04, edited 2 times in total.

brymway
Posts: 407
Joined: Sun 09 Dec 2007, 01:08

#20 Post by brymway »

I downloaded the iso and burned it. I booted my emac up with it by pressing 'c' during the boot up and got to boot prompt. I pressed enter and it started booting the kernel, went thru a few screens and then went black. I booted again, pressed 'tab', found out the commands and typed failsafe and it booted into the command line perfectly. (I have to admit my heart was racing at the anticipation, this is gonna be huge if you pull it off) I moved and poked around for a while, even made three directories and moved a file between them. The 'cp' command wasn't found though? I saw it in /bin but it didn't work. Anyway, rock and roll! What's next? I gotta new stack of cd's just for testing this if you want subjects PowerPup. Great work!

As to compiling statically, can't you copy some programs off of Puppy 3 and throw them in? I have been playing around with minor, easy compiling for my own usage. I can just as easy go and build a Puppy 3 system on a partition and download the devx file and play with a few small programs. Am I understanding you correctly?
[url]http://wellminded.com/puppy/pupsearch.html[/url]

Post Reply