Jump to content

OS X Live: Developers' Private Discussion


REVENGE
 Share

136 posts in this topic

Recommended Posts

Cool. will have a look. so you guys dont mind if I join the team?

 

We're perfectly fine with it. I know skyhighmac for quite a while, and I think I can speak for all of us that you're a welcome member to the team.

Link to comment
Share on other sites

I like the idea of an xml/plist file from which to load custom drivers a bit onwards in the boot. People could easily add on more devices before building the dvd(if we haven't included them), even tho the kexts would already be there. I'd rather not prompt the user unless it is absolutely necessary, and would rather not write any files to a persistent storage device because that would build differences between liveDVD and usb. Hopefully we can keep them similar.

Let's keep in mind that the auto-detection is really only necessary for graphics and sound(and a few random things), so it can be run pretty far on in the boot, loading via kextload calls from a script.

I'm a bit concerned about the other facets of the boot however, especially what happens after a compressed dmg is mounted after boot-132. I'm not sure how OSX will handle that as a root filesystem, so we should probably see what kind of errors it throws when we try. I'd like to get those worked out...I really want to use a system like that...it'll make life really nice.

Link to comment
Share on other sites

thanks MoC :(

 

spartango: I get where you are coming from. I think an xml file with device ids & kext names for audio & graphics would be good, with automatic detection and maybe a boot option in case the dvd cant get the kext right?

 

For the dmg i have no idea...

Link to comment
Share on other sites

skyhighmac: your input is much appreciated!

for the dmg...I have an idea but wanna try it some time... In THEORY it SHOULD work, but according to rammjet it doesn't, and i'd like to find out y. My suspicion is that it has to do with the read-only state of the image, considering the fact that when they moved to a full install dmg, it broke...but then again, the modbin approach also was read only until ramdisk is up, and i also know that kernel has special procedures that it does when it finds that the rootfs is readonly...gotta find out what those are.

Link to comment
Share on other sites

Thanks. I hope that guys will let me be a full part of the team.

 

THEORY - mean it should work but never does ;)

 

Well I can help look through that pdf above. Is there a way to mount it sometime using command line? I mean there is a command, but where would it be possible to execute?

Link to comment
Share on other sites

So, hdiutil is normally the tool that will mount a disk image, but its a userland tool, and we'll run something at the Boot-132 level(ie very low level) to mount the compressed diskimage. Rammjet leads me to believe that this function is already present in some form in boot-132...he did try it..

I'm betting this is akin to the feature that lets you load a ramdisk image with your custom kexts before really loading the os, by using syslinux/[GRUB?], but that loads stuff into memory, which is kinda bad for us. Let's get some feedback from him on how he did it with the install DVD...

 

Btw, i looked through that paper. and while it is definitely a good thing to be familiar with, I believe there is something more pressing to be understood:

please read this if you get a moment, we'll need to maximize our use of it.

http://tgwbd.org/darwin/boot.html

 

 

Aiight...

This is from [user] himself:

"

25 seconds from Darwin boot prompt to Language selection dialog box.

 

Files placed outside the compressed image:

/.Spotlight-V100

/.Trashes

/.com.apple.timemachine.supported

/.fseventsd

/Library/Preferences/SystemConfiguration/com.apple.Boot.plist

/System/Library/Extensions.mkext

/mach_kernel

/test.dmg (the compressed image)

Place "-f -v rp=file:///test.dmg" in the Boot.plist.

 

The dot files/dirs can be deleted but they will be regenerated. That wouldn't happen on a DVD.

 

I modified the IOHDIXController.kext and built a new mkext. Because of the unique mkext, when the installer boots, I have full video and partial wireless.

 

The files are from an early 9A581 installation and the test.dmg is the 9A581 installer"

 

Let's try this. It turns out he exploits not a functionality of Boot-132, but of the darwin loader itself...Netbooting. This works great because the install disk is always read only, so booting has no problems...

I'm gonna try this soon. Once we've tried this we can progress to using a normal install image as opposed to an installer. That'll bring up the read-write issue, but i've got an idea for that.

gnite for now

Link to comment
Share on other sites

sounds good ill be doing a trail live dvd but it wont be for two days have to fly out for convention good luck guys ;) ihave to leave soon so ill take my laptop lol never leave home without it will try some more work while im flying ps good work spartango good luck

Link to comment
Share on other sites

Yeah hey skyhigh, just speak your mind here, you seem to have good ideas to share. :) You don't need my "approval" to be on the team, just your own action and the acceptance of the other devs. :unsure:

 

The auto detection ideas sound good in concept, put them in practice and make a judgment regarding which solution is best.

Link to comment
Share on other sites

Just a quick butt-in, if I may.. I have been trying out booting compressed dmg's from usb sticks with Rammjet's method and it works fine for install dvd images. Combining this technique with a prelinked kernel works too, so if a default image can be made to work as a live dvd, the hardware configurations can be dealt with by typing the name of the prelinked kernel at boot? I made an image of a minimal unmodified 10.5.4 retail install (it's 3.07GB as a compressed .dmg) and booted it this way, (with appledecrypt & disabler in the prelinked kernel) but naturally it failed due to being on a read-only image.

 

so all you have on the stick is:

 

/Library/Preferences/SystemConfiguration/com.apple.Boot.plist

/mach_kernel.prelinked

/whatever.dmg

/boot

- in case it's useful

 

oh, P.S. can anyone confirm that this method doesn't work with Tiger? It doesn't for me.

Link to comment
Share on other sites

Just a quick butt-in, if I may.. I have been trying out booting compressed dmg's from usb sticks with Rammjet's method and it works fine for install dvd images. Combining this technique with a prelinked kernel works too, so if a default image can be made to work as a live dvd, the hardware configurations can be dealt with by typing the name of the prelinked kernel at boot? I made an image of a minimal unmodified 10.5.4 retail install (it's 3.07GB as a compressed .dmg) and booted it this way, (with appledecrypt & disabler in the prelinked kernel) but naturally it failed due to being on a read-only image.

 

so all you have on the stick is:

 

/Library/Preferences/SystemConfiguration/com.apple.Boot.plist

/mach_kernel.prelinked <- can have loads of these called anything, contain kernel & kext cocktail for various setups

/whatever.dmg <- the clever bit

/boot

- in case it's useful

 

oh, P.S. can anyone confirm that this method doesn't work with Tiger? It doesn't for me.

 

 

Heya guys sorry for not popping in yesterday I had clinics ;) Fail!

 

Hagar I have to say this would make life much much easier. Good find :)

 

We could do a poll to start off with and see what the most common set ups are then make loads of these prelinked mach_kernels. (probably 50+) though I'm sure it can't take too long. I'm off to have a go.

 

Then at boot just type in the one they want and hey presto its done.

Link to comment
Share on other sites

Just a quick butt-in, if I may.. I have been trying out booting compressed dmg's from usb sticks with Rammjet's method and it works fine for install dvd images. Combining this technique with a prelinked kernel works too, so if a default image can be made to work as a live dvd, the hardware configurations can be dealt with by typing the name of the prelinked kernel at boot? I made an image of a minimal unmodified 10.5.4 retail install (it's 3.07GB as a compressed .dmg) and booted it this way, (with appledecrypt & disabler in the prelinked kernel) but naturally it failed due to being on a read-only image.

 

so all you have on the stick is:

 

/Library/Preferences/SystemConfiguration/com.apple.Boot.plist

/mach_kernel.prelinked <- can have loads of these called anything, contain kernel & kext cocktail for various setups

/whatever.dmg <- the clever bit

/boot

- in case it's useful

 

oh, P.S. can anyone confirm that this method doesn't work with Tiger? It doesn't for me.

 

In theory it should work on Tiger. Let me try that now and get back to you ;)

 

(Oh, and sorry if we had any hard feelings before, I was a complete idiot for calling you out) :)

Link to comment
Share on other sites

ooo...interesting concept...ima reserve my judgement on this for the moment, we should definitely see how far it can get us...

 

umm...@Hagar, can you give us an idea of what your output looked like when you tried the minimal install image? I wanna see where exactly its choking to get an idea of how long we have in the boot before we absolutely need a tmpfs or something..

 

looking good tho

Link to comment
Share on other sites

ooo...interesting concept...ima reserve my judgement on this for the moment, we should definitely see how far it can get us...

 

umm...@Hagar, can you give us an idea of what your output looked like when you tried the minimal install image? I wanna see where exactly its choking to get an idea of how long we have in the boot before we absolutely need a tmpfs or something..

 

looking good tho

 

I had to rebuild the stick, but here are 2 screenshots:

installdmgbi7.th.jpg finalbootel1.th.jpg

 

in the first you can see the .dmg being identified as the root device, then comes a load of spam simiar to the top of picture 2 & finally it repeats the last line of picture 2 forever.

Link to comment
Share on other sites

Verrry nice!

first a random note:

So the first error(image 2) about being unable to write to the Journal can be fixed by turning journaling off in the installation(quite easy actually)...I suppose this'll incur some cost, but nbd for now.

 

Ok, now to the beef(or lettuce if you vegetarian):

 

This output shows us that kernel gets very far along before actually complaining that it can't do things to a read-only filesystem...

This may be a good place to implement a linux-like strategy of overlaying tmpfs and unionfs(which os x actually has for dmgs!) or some other remounting scheme to work around these errors...We're deep into userland at this point--Login window is actually started!

I'm going to ponder a solid solution and get back tomorrow(need to sleep). ideas?

Link to comment
Share on other sites

Aiight...i've had a simple idea..

 

What if we have some script that starts pretty late into the boot(but before kernel tries to write anything important to disk) that creates/loads a ramdisk image and then loopback & union mounts that over / (or something else if that doesn't work). That way when we try to write things like the pids and states and other random bits, they'll be written safely to the ramdisk image!

Link to comment
Share on other sites

I would just make users go through a simple initialization program like some Linux distro's do.

 

1. Boot

--The kernel will load a script that tells which drivers to load

2. Load LoginWindow then prompt our application

--Our Application launches and tries to detect the hardware and asks us to confirm and correct.

--Our Application writes the settings to that script/file and reboots the computer

3. User boots again, now into OS X, and has an icon on the desktop that says "install to disk" just like the *buntu's

 

~MoC

Link to comment
Share on other sites

spartango: sounds good, but how would the system know to write to that mounted disk instead of the mounted dmg?

 

MoC: That sounds like a good idea, but we still need to get the ram disk part worked out..

 

A question for everyone: Would everyone want some type of wiki that we could work on? I could set up one if we wanted...

 

Edit: Found this on creating a ramdisk:

hdid -nomount ram://52428800
newfs_hfs /dev/disk1
mkdir /tmp/ramdisk1
mount -t hfs /dev/disk1 /tmp/ramdisk1

 

http://osxdaily.com/2007/03/23/create-a-ra...sk-in-mac-os-x/

Link to comment
Share on other sites

Hello

 

Not to rush things, but when can we expect a release?

 

Panarchy

I'm not going to be the one who sets the release date, as it will be when this team is comfortable to release. You will see an announcement on Frontpage News when we do.

Link to comment
Share on other sites

 Share

×
×
  • Create New...