Top / FuguIta / FAQ / SelfBuild

Building my own LiveCD

Requisites and Conditions

  • Requisites
    • Normal OpenBSD Installation ... same version as target ISO
      • extracted kernel source tree (in case of rebuild kernel)
    • The build tool of FuguIta
    • Whole OpenBSD file tree which will be burned in the ISO image.
  • Conditions
    • OpenBSD version of build and target environment must be the same.
    • All operations should be done by root.

Build instructions

Following example takes working directory as /tools-5.8 .

Extracting build tools

# cd /root
# ftp http://mirror.ginzado.ne.jp/pub/FuguIta/tools/tools-5.8.tar.xz
Trying 110.92.1.251...
Requesting http://mirror.ginzado.ne.jp/pub/FuguIta/tools/tools-5.8.tar.xz
100% |**************************************************| 12091 KB    00:06    
12381448 bytes received in 6.20 seconds (1.90 MB/s)
# export PKG_PATH=ftp://ftp.jaist.ac.jp/pub/OpenBSD/5.8/packages/i386/
# pkg_add xz
quirks-2.54 signed on 2015-03-09T11:04:08Z
quirks-2.54 (extracting)|*************************************************|100%
quirks-2.54 (installing)|*************************************************|100%
   xz-5.2.0 (extracting)|*************************************************|100%
   xz-5.2.0 (installing)|*************************************************|100%
# xz -dc tools-5.8.tar.xz  | tar xf -
# mv tools-5.8  /tools-5.8
# cd /tools-5.8
# ls -l
total 51264
-rw-r--r--   1 root  wheel       5366 Apr  4 06:18 Makefile
lrwxr-xr-x   1 root  1000          35 Oct 21  2013 bsd.mp.orig -> sys/arch/i386/compile/RDROOT.MP/bsd
lrwxr-xr-x   1 root  1000          32 Oct 21  2013 bsd.orig -> sys/arch/i386/compile/RDROOT/bsd
drwxr-xr-x   2 root  wheel        512 May  1 16:43 fuguita
drwxr-xr-x   5 root  wheel        512 Apr  6 14:51 lib
drwxr-xr-x   2 root  wheel        512 Sep 28  2012 media
-rw-r--r--   1 root  wheel  734003200 May 11 17:57 media.img
drwxr-xr-x   2 root  wheel        512 Oct  6  2010 rdroot
-rw-r--r--   1 root  wheel    1945600 Apr 28 23:47 rdroot.img
drwxr-xr-x  26 root  wheel        512 May 12 10:56 sys

Rebuilding kenrel (optional)

If you wish modify LiveCD's kernel, perform steps described in this section;

Extract and compile kernels (SP and MP)

# cd /usr/src
# ftp ftp://ftp.jaist.ac.jp/pub/OpenBSD/5.8/sys.tar.gz
Connected to ftp.jaist.ac.jp.
220 (vsFTPd 3.0.2)
331 Please specify the password.
230-Welcome to JAIST Public Mirror Service (ftp.jaist.ac.jp).
230-If you have any problem, please contact ftp-admin@jaist.ac.jp.
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
200 Switching to Binary mode.
250 Directory successfully changed.
Retrieving pub/OpenBSD/5.8/sys.tar.gz
local: sys.tar.gz remote: sys.tar.gz
150 Opening BINARY mode data connection for sys.tar.gz (20483072 bytes).
100% |**************************************************| 20003 KB    00:05    
226 Transfer complete.
20483072 bytes received in 5.51 seconds (3.55 MB/s)
221 Goodbye.
# tar xzf sys.tar.gz
# cd /tools-5.8/sys/arch/i386/conf
# ls -l
total 0
lrwxr-xr-x  1 root  wheel  35 May 12 10:55 GENERIC -> /usr/src/sys/arch/i386/conf/GENERIC
lrwxr-xr-x  1 root  wheel  38 May 12 10:55 GENERIC.MP -> /usr/src/sys/arch/i386/conf/GENERIC.MP
lrwxr-xr-x  1 root  wheel  41 May 12 10:55 Makefile.i386 -> /usr/src/sys/arch/i386/conf/Makefile.i386
lrwxr-xr-x  1 root  wheel  35 May 12 10:55 RAMDISK -> /usr/src/sys/arch/i386/conf/RAMDISK
lrwxr-xr-x  1 root  wheel  38 May 12 10:55 RAMDISK_CD -> /usr/src/sys/arch/i386/conf/RAMDISK_CD
lrwxr-xr-x  1 root  wheel  22 May 11 16:07 RDROOT -> ../../../../lib/RDROOT
lrwxr-xr-x  1 root  wheel  25 May 11 16:07 RDROOT.MP -> ../../../../lib/RDROOT.MP
lrwxr-xr-x  1 root  wheel  38 May 12 10:55 files.i386 -> /usr/src/sys/arch/i386/conf/files.i386
# config RDROOT 
Kernel options have changed -- you must run "make clean"
# config RDROOT.MP  
Kernel options have changed -- you must run "make clean"
# cd ../compile/RDROOT 
# make clean; make depend; make
# cd ../RDROOT.MP
# make clean; make depend; make

Merge mini root filesystem into compiled kernels

# cd /tools-5.8
# make open-media
# make boot
# make close-all

Copy and setup all files and directories burned in

Note: For usbfadm utility, rsync and rlwrap might be package-added at them.

# cd /tools-5.8
# make open-media
vnconfig vnd1 media.img
mount /dev/vnd1a media
# make open-fuguita
vnconfig vnd2 media/fuguita.ffsimg
mount /dev/vnd2a fuguita
# df -h
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/wd0a     17.4G    703M   15.8G     4%    /
/dev/vnd1a     700M    697M    2.7M   100%    /tools-5.8/media
/dev/vnd2a     676M    512B    676M     0%    /tools-5.8/fuguita
# cd TOP-OF-FILETREE-TO-BE-BURNED-IN
# pax -rwpe . /tools-5.8/fuguita/.
./tools-5.8/fuguita/./.cshrc
./tools-5.8/fuguita/./.profile
./tools-5.8/fuguita/./altroot
./tools-5.8/fuguita/./bin
./tools-5.8/fuguita/./bin/[
      :
    (snip)
      :
./tools-5.8/fuguita/./var/cache/fontconfig/CACHEDIR.TAG
./tools-5.8/fuguita/./var/cache/fontconfig/a1a78d9c18cd095d3829c724810e6ffb-le32d8.cache-4
./tools-5.8/fuguita/./var/cache/fontconfig/ba022efc551c75e21c690774bbcf5304-le32d8.cache-4
./tools-5.8/fuguita/./var/cache/fontconfig/bc06c1eea3e636f72101cafc3fb39508-le32d8.cache-4
./tools-5.8/fuguita/./var/cache/fontconfig/c5f5d66d15c24edc3e863c27139db87e-le32d8.cache-4
./tools-5.8/fuguita/./var/cache/fontconfig/f22309b238134d3cca63435f528976cd-le32d8.cache-4
# cd /tools-5.8/fuguita
# ls -l
total 56
-rw-r--r--   1 root  wheel    578 Mar  9 01:51 .cshrc
-rw-r--r--   1 root  wheel    468 Mar  9 01:51 .profile
drwxr-xr-x   2 root  wheel    512 Mar  9 01:51 altroot
drwxr-xr-x   2 root  wheel   1024 Mar  9 01:52 bin
drwxr-xr-x   3 root  wheel  19456 Jun  3 00:27 dev
drwxr-xr-x  22 root  wheel   1536 Jun  3 00:18 etc
drwxr-xr-x   2 root  wheel    512 Mar  9 01:51 home
drwxr-xr-x   2 root  wheel    512 Mar  9 01:51 mnt
drwx------   2 root  wheel    512 Jun  3 00:37 root
drwxr-xr-x   2 root  wheel   1536 Mar  9 01:52 sbin
drwxrwxrwt   6 root  wheel    512 Jun  3 00:37 tmp
drwxr-xr-x  16 root  wheel    512 Mar  7 20:04 usr
drwxr-xr-x  21 root  wheel    512 Mar  7 20:04 var

Remove unused files

# (remove stale files ... for example ... /tmp/*, /home/*, /var/run/*.pid, etc...)
# (zeroed log files under /var/log/*)

Make /usr/fuguita/* directories ... They are required that FuguIta can detect himself.

# mkdir -p /tools-5.8/fuguita/usr/fuguita/{bin,doc,include,lib,libexec,sbin,share,var}
# cp -p /tools-5.8/lib/{compress_man.sh,gen_mode0sldir}  /tools-5.8/fuguita/usr/fuguita/sbin/.
# ln -s /boottmp/usbfadm /tools-5.8/fuguita/usr/fuguita/sbin/usbfadm
# ln -s /boottmp/fdadm /tools-5.8/fuguita/usr/fuguita/sbin/fdadm

Create the ISO image

# cd /tools-5.8
# ls -l
total 1087485
-rw-r--r--   1 root  wheel       5366 Apr  4 06:18 Makefile
lrwxr-xr-x   1 root  1000          35 Oct 21  2013 bsd.mp.orig -> sys/arch/i386/compile/RDROOT.MP/bsd
lrwxr-xr-x   1 root  1000          32 Oct 21  2013 bsd.orig -> sys/arch/i386/compile/RDROOT/bsd
drwxr-xr-x  13 root  wheel        512 Jun  3 00:56 fuguita
drwxr-xr-x   5 root  wheel        512 Apr  6 14:51 lib
drwxr-xr-x   3 root  wheel        512 Apr 14  2012 media
-rw-r--r--   1 root  wheel  734003200 Jun  3 00:59 media.img
drwxr-xr-x   2 root  wheel        512 Oct  6  2010 rdroot
-rw-r--r--   1 root  wheel    1945600 Apr 28 23:47 rdroot.img
drwxr-xr-x  26 root  wheel        512 May 12 10:56 sys
# ls -l /tools-5.8/media 
total 1427752
-r-xr-xr-x  1 root  bin        71452 Apr  4 09:52 boot
-rwxr--r--  1 root  wheel       2048 May 11 02:08 boot.catalog
-rw-r--r--  1 root  wheel    5605482 May  9 19:52 bsd-fi
-rw-r--r--  1 root  wheel    5614117 May  9 19:53 bsd-fi.mp
-r-xr-xr-x  1 root  wheel      72328 May  9 19:53 cdboot
-r-xr-xr-x  1 root  wheel       2048 May  9 19:53 cdbr
drwxr-xr-x  2 root  wheel        512 Apr 18  2014 etc
-rw-r--r--  1 root  wheel  719388672 Jun  3 00:59 fuguita.ffsimg
# cd /tools-5.8
# ls -l fuguita
total 56
-rw-r--r--   1 root  wheel    578 Mar  9 01:51 .cshrc
-rw-r--r--   1 root  wheel    468 Mar  9 01:51 .profile
drwxr-xr-x   2 root  wheel    512 Mar  9 01:51 altroot
drwxr-xr-x   2 root  wheel   1024 Mar  9 01:52 bin
drwxr-xr-x   3 root  wheel  19456 Jun  3 00:27 dev
drwxr-xr-x  22 root  wheel   1536 Jun  3 00:18 etc
drwxr-xr-x   2 root  wheel    512 Mar  9 01:51 home
drwxr-xr-x   2 root  wheel    512 Mar  9 01:51 mnt
drwx------   2 root  wheel    512 Jun  3 00:57 root
drwxr-xr-x   2 root  wheel   1536 Mar  9 01:52 sbin
drwxrwxrwt   6 root  wheel    512 Jun  3 00:37 tmp
drwxr-xr-x  16 root  wheel    512 Mar  7 20:04 usr
drwxr-xr-x  21 root  wheel    512 Mar  7 20:04 var

Close filetree on FuguIta Live System

# make close-fuguita
umount fuguita
vnconfig -u vnd2

Do mkhybrid

# make hyb
make open-fuguita
vnconfig vnd2 media/fuguita.ffsimg
mount /dev/vnd2a fuguita
echo "5.8-20150603$((0+1))" > fuguita/usr/fuguita/version
make close-fuguita
umount fuguita
vnconfig -u vnd2
mkhybrid -a -R -L -l -d -D -N  -o livecd.iso  -v -v  -A "FuguIta - OpenBSD LiveCD"  -P "Copyright (c)
`date +%Y` KAWAMATA Yoshihiro"  -p "KAWAMATA Yoshihiro, http://fuguita.org/?FuguIta"  -V "FuguIta-5.8
-20150603$((0+1))"  -b cdbr  -c boot.catalog  media  && echo $((0+1)) > revcount_cdmaster
mkhybrid 1.12b5.1
Scanning media
Scanning media/etc
  23  1202 
  24   456 etc
Cache hit for /..
26 60 media/boot
61 61 media/boot.catalog
62 2799 media/bsd-fi
2800 5541 media/bsd-fi.mp
5542 5577 media/cdboot
5578 5578 media/cdbr
5579 356842 media/fuguita.ffsimg
Cache hit for etc/.
Cache hit for etc/..
356843 356843 media/etc/boot.conf
356844 356844 media/etc/random.seed

Size of boot image is 4 sectors -> No-emulation CD boot sector
Total extents scheduled to be written = 356845
  1.40% done, estimate finish Wed Jun  3 01:10:36 2015
  2.81% done, estimate finish Wed Jun  3 01:08:14 2015
    :
  (snip)
    :
 98.08% done, estimate finish Wed Jun  3 01:14:35 2015
 99.48% done, estimate finish Wed Jun  3 01:14:27 2015
Total translation table size: 0
Total rockridge attributes bytes: 1101
Total directory bytes: 2048
Path table size(bytes): 22
Max brk space used 0
356845 extents written (696 Mb)

Close all image files

# make close-all
umount fuguita
umount: fuguita: not currently mounted
*** Error 1 in target 'close-fuguita' (ignored)
vnconfig -u vnd2
vnconfig: VNDIOCCLR: Device not configured
*** Error 1 in target 'close-fuguita' (ignored)
umount media
vnconfig -u vnd1
umount rdroot
umount: rdroot: not currently mounted
*** Error 1 in target 'close-rdroot' (ignored)
vnconfig -u vnd0
vnconfig: VNDIOCCLR: Device not configured
*** Error 1 in target 'close-rdroot' (ignored)
# ls -l
total 2515268
-rw-r--r--   1 root  wheel       5366 Apr  4 06:18 Makefile
lrwxr-xr-x   1 root  1000          35 Oct 21  2013 bsd.mp.orig -> sys/arch/i386/compile/RDROOT.MP/bsd
lrwxr-xr-x   1 root  1000          32 Oct 21  2013 bsd.orig -> sys/arch/i386/compile/RDROOT/bsd
drwxr-xr-x   2 root  wheel        512 May  1 16:43 fuguita
drwxr-xr-x   5 root  wheel        512 Apr  6 14:51 lib
-rw-r--r--   1 root  wheel  730818560 Jun  3 01:14 livecd.iso
drwxr-xr-x   2 root  wheel        512 Sep 28  2012 media
-rw-r--r--   1 root  wheel  734003200 Jun  3 01:21 media.img
drwxr-xr-x   2 root  wheel        512 Oct  6  2010 rdroot
-rw-r--r--   1 root  wheel    1945600 Apr 28 23:47 rdroot.img
-rw-r--r--   1 root  wheel          2 Jun  3 01:14 revcount_cdmaster
drwxr-xr-x  26 root  wheel        512 May 12 10:56 sys

That's all.
livecd.iso is the ISO image file.


Top / FuguIta / FAQ / SelfBuild

Reload  New Edit Freeze Diff Attach Copy Rename  Top Index Search Recent Backups  Help  RSS
Last-modified: 2015-11-06 (Fri) 05:03:34 (961d)