Custom USB layout & sysinstall (Starting FIXIT)

none none rank1seeker at gmail.com
Fri May 14 17:16:54 UTC 2010


----- Original Message -----
From: "Julian H. Stacey" <jhs at berklix.com>
To: rank1seeker at gmail.com
Cc: freebsd-hackers at freebsd.org, "Ken Smith" <kensmith at buffalo.edu>
Date: Fri, 14 May 2010 00:11:04 +0200
Subject: Re: Custom USB layout & sysinstall (Starting FIXIT)

> Hi,
> rank1seeker at gmail.com wrote:
>
> > So, I downloaded USB stick .img
> > Instead of just writing it with dd, I've mounted and dumped it, as I wanted
> > custom USB stick, layout.
> >
> > To cut it short.
> > Bootable img file appears as ad0s2a instead of ad0a.
> > Once I boot from BIOS->USB stick->slice 2, I enter sysinstall successfully.
> >
> > Now I wana enter into FIXIT, from sysinstall.
> > And I get "No USB devices found!", as well as, at all other parts, of
> > sysinstall, that search for USB device.
>
> I reported the same thing as you a month back.
>
>     http://lists.freebsd.org/pipermail/freebsd-hackers/2010-April/031534.html
>
> I didn't get as far analysing as you did below.
> Ken Smith (cc'd) posted ideas, but I got distracted on to other things.
> Ken's post is here:
>     http://lists.freebsd.org/pipermail/freebsd-hackers/2010-April/031620.html
>


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.

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).


>
> > Other parts of sysinstall, DO list ad4 (my HDD) and da0 (my USB stick)
> > correctly.
> >
> >
> > I think sysinstall has hardcoded command, to mount da0a and doesn't see
> > da0sxa, at all.
> >
> > So how do I do it manually?
> > Emergency Holo Sh is no go.
> >
> >
> > Maybe this part of code is responsible, from file
> > /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;
> > }
> >
> > PS:
> > Options --> Rescan Devices, in sysinstall don't work.
> >
> > Could I start fixit, from loader prompt directly, so I wouldn't even have
> > to eneter sysinstall, as I don't need it at all to install FreeBSD?
>
> Cheers,
> Julian
> --
> Julian Stacey: BSD Unix Linux C Sys Eng Consultants Munich http://berklix.com
> Mail plain text,  Not HTML quoted-printable Base64 http://www.asciiribbon.org
>


More information about the freebsd-hackers mailing list