Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 11 Dec 2012 14:30:44 -0800
From:      Devin Teske <devin.teske@fisglobal.com>
To:        "xenophon\\+freebsd" <xenophon+freebsd@irtnog.org>
Cc:        freebsd-stable@FreeBSD.ORG
Subject:   Re: Custom Kernel for FreeBSD Installation
Message-ID:  <FB39BB13-534A-4C9F-970B-FF46A91D7A31@fisglobal.com>
In-Reply-To: <BABF8C57A778F04791343E5601659908236D35@cinip100ntsbs.irtnog.net>
References:  <BABF8C57A778F04791343E5601659908236D35@cinip100ntsbs.irtnog.net>

next in thread | previous in thread | raw e-mail | index | archive | help
I built this thing called the "Druid" to handle this (and other) problems.

Here's the idea=85

(a) need a custom kernel to install
(b) you need to install said custom kernel to the new distribution else fir=
st-boot fails

Enter Druid.

Here's how it works:

=3D=3D=3D

Step 1. Download the source code to the FreeBSD Druid so you can build a cu=
stom ISO with your custom kernel/kernel-distribution

$ cvs -d:pserver:anonymous@druidbsd.cvs.sourceforge.net:/cvsroot/druidbsd l=
ogin
# Simply press ENTER at the "CVS password:" prompt

If you want the FreeBSD-9 based sources:

$ cvs -z3 -d:pserver:anonymous@druidbsd.cvs.sourceforge.net:/cvsroot/druidb=
sd co -P druidbsd/druid

or, if you want the FreeBSD-8 based sources:

$ cvs -z3 -d:pserver:anonymous@druidbsd.cvs.sourceforge.net:/cvsroot/druidb=
sd co -P druidbsd/druid83

# Either of these will take approximately 15 minutes to download (so please=
 be patient)

# Simply try again if you get the following error:
# 	cvs [checkout aborted]: read lock failed - giving up

=3D=3D=3D

Step 2: Add your custom kernel

$ cd druidbsd/druid/
# or: cd druidbsd/druid83/

$ cp ~/YOURKERNEL mdroot/kernels/YOURKERNEL

$ vi mdroot/boot/menu.rc

# Find the below lines

\ Set kernel paths (see menu_caption[2] below)
set kernel_prefix=3D"kernels/"
set kernel[0]=3D"GENERIC-i386-9.0"
set kernel_suffix=3D""

# Change to (making YOURKERNEL the first kernel and GENERIC the second)

\ Set kernel paths (see menu_caption[2] below)
set kernel_prefix=3D"kernels/"
set kernel[0]=3D"YOURKERNEL"
set kernel[1]=3D"GENERIC-i386-9.0"
set kernel_suffix=3D""

# Save the file and exit

# NOTE: At this point, you *could* say "gmake freebsd" and you have FreeBSD=
-9 installation media that will use your custom kernel (YOURKERNEL) to boot=
 and perform the installation. However, you may have to on to step 3 if tha=
t kernel is required to boot your newly installed OS

# NOTE: For the 8.x based media, you'll notice that the "kernel_suffix" is =
".kgz" (you will have to kgzip your kernel and make sure it has this suffix=
 else you can modify the suffix; all kernels must have the same suffix, wha=
tever it is).

=3D=3D=3D

Step 3: Have the custom kernel installed as part of the OS

$ cd src/freebsd/repos/9.0-RELEASE/kernels/
# rest performed as root
$ mkdir distroot
$ cat generic.?? | tar zxf - -C distroot
$ cd distroot
$ cp YOURKERNEL GENERIC/kernel
# Optional: copy in any "*.symbols" files for debug or extra "*.ko" kernel =
modules into GENERIC/
$ ../../../../tools/distmtree > ../generic.mtree
$ tar czfo ../generic.tgz .
$ cd ..
$ rm -f generic.??
$ split -b 1425408 generic.tgz generic.
$ rm -Rf generic.tgz distroot
# rest performed as you (non-root)
$ ../../../tools/distsum
# This regenerates CHECKSUM.* and *.inf

=3D=3D=3D

Last, make the custom ISO=85

# in the druidbsd/druid or druidbsd/druid83 directory=85

./configure && gmake freebsd

# NOTE: GNU make is required. mkisofs is required. And, if you want the ISO=
 to work as-intended and support both burning to CD/DVD _and_ writing to US=
B thumb drive, you'll need Perl (which usually comes with the required Byte=
s.pm module -- otherwise, you can do ./configure --disable-isohybrid).

# NOTE: Don't forget that the DRUID installer has both i386 _and_ amd64 arc=
hitectures (so if you have a custom kernel for both, you'll need to do both=
 repositories in the above-described manner).
--=20
Devin



On Dec 11, 2012, at 6:26 AM, xenophon+freebsd wrote:

> How do I go about replacing the kernel on the FreeBSD installation CDs?
> I assume it's as simple as replacing the relevant files in the ISO
> image, and that if I look at "make release", I can figure out how the CD
> image gets generated.=20
>=20
> I'm trying to install FreeBSD onto a HP ProLiant DL380 G3 with a Smart
> Array 5i controller, for use as a file server.  Rather than use Smart
> Array's RAID features, I want to use ZFS's RAID-Z1/Z2, so I have
> configured 18 RAID-0 volumes, each consisting of a single drive attached
> to the Smart Array controller.  This totals 18 drives, so at boot time,
> the ciss(4) driver logs the following error:
>=20
> 	ciss0: <Compaq Smart Array 5i> port 0x3000-0x30ff mem
> 0xf05c0000-0xf05fffff,0xf04f0000-0xf04f3fff irq 10 at device 3.0 on pci1
> 	ciss0: PERFORMANT Transport
> 	ciss0: adapter claims to report absurd number of logical drives
> (18 > 15)
> 	device_attach: ciss0 attach returned 6=09
>=20
> According to Paul Saab
> (http://lserinol.blogspot.com/2012/03/freebsd-ciss-driver-logical-drive-
> limit.html), the constant CISS_MAX_LOGICAL limits the amount of memory
> used by the driver for DMA by default.
>=20
> Best wishes,
> Matthew
>=20
> --=20
> I FIGHT FOR THE USERS
>=20
> _______________________________________________
> freebsd-stable@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-stable
> To unsubscribe, send any mail to "freebsd-stable-unsubscribe@freebsd.org"

_____________
The information contained in this message is proprietary and/or confidentia=
l. If you are not the intended recipient, please: (i) delete the message an=
d all copies; (ii) do not disclose, distribute or use the message in any ma=
nner; and (iii) notify the sender immediately. In addition, please be aware=
 that any message addressed to our domain is subject to archiving and revie=
w by persons other than the intended recipient. Thank you.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?FB39BB13-534A-4C9F-970B-FF46A91D7A31>