On Sat, May 15, 2010 at 12:14 AM, Ken Smith <kensm...@buffalo.edu> wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > On 5/14/10 1:16 PM, none none wrote: >> I've read it, all. >> What he is proposing, is about building our own image flavor. >> (make-memstick.sh) >> Exactly, that act, is an issue here, as it confuses sysinstall's USB >> detection. > > This part of what you say confuses me. I use make-memstick.sh to build > the .img files people are downloading and using to do installs with. > So if you are using it correctly any machine that can use the .img > files I build and we distribute should be able to use what you > produce.
Ah, I was unclear. When I've put "make-memstick.sh", in bracket, I was referring to similarity of steps. Not to the usage, of actual make-memstick.sh script. There are 2 types of customizations: A) Content (All in UFS) B) Layout (MBR, slices, boot code, bsdlabel,...) make-memstick.sh script is limited only to customization of A), so I am not using it. And shell command which I utilize are far more complex. I do A) and B) customizations, where B) is a culprit, that confuses sysinstall. Focus on this: Official FreeBSD memstick.img once 'dd'-ed appears as da0a My edition appears as da0s2a ( because of me doing B) ) Once I turn on my machine, at boot time I select USB as a boot device. Then: BIOS -> MBR of da0 -> slice 2 -> boot loader -> sysinstall Now, while in sysinstall, I decide to go in Fixit mode. When I select a USB device, I get an error msg: "No USB devices found!" Other parts of sysinstall, DO list ad4 (my HDD) and da0 (my USB stick) correctly. >> There are 2 remedies: >> 1) After loader prompt, INSTEAD of starting sysinstall (as I don't >> need it at all), immediately START Fixit >> 2) Edit /usr/src/usr.sbin/sysinstall/devices.c, at the code lines, >> posted below and compile sysinstall, so it could recognize USB device, >> on non default USB img layout. >> >> I favor FIRST solution 1). > > There are issues with us doing (1) in a widespread way because there > are hooks in sysinstall that check to see if it is running as init > and it makes lots of decisions based on that. Booting off the install > media results in sysinstall running as init, while if you run it later > (post-install) it's not running as init. So then 2) /usr/src/usr.sbin/sysinstall/devices.c: Code: /* * Find all devices that match the criteria, allowing "wildcarding" as well * by allowing NULL or ANY values to match all. The array returned is static * and may be used until the next invocation of deviceFind(). */ Device ** deviceFind(char *name, DeviceType class) { static Device *found[DEV_MAX]; int i, j; j = 0; for (i = 0; i < numDevs; i++) { if ((!name || !strcmp(Devices[i]->name, name)) && (class == DEVICE_TYPE_ANY || class == Devices[i]->type)) found[j++] = Devices[i]; } found[j] = NULL; return j ? found : NULL; } _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"