[parisc-linux] boot-floppies (installer)

Richard Hirst rhirst@linuxcare.com
Tue, 8 May 2001 07:53:25 +0100


Hi,
  Paul L, Paul B and I are working on the installer.  This is where
we are currently at...

I'm posting these diffs here rather than just dopping them in cvs because
I know they are not quite right, but hopefully others will pick them up
and try building.

First debootstrap, latest source is 0.1.7, and my diff is

================================== cut ===============================
diff -ur debootstrap-0.1.7.ori/functions debootstrap-0.1.7/functions
--- debootstrap-0.1.7.ori/functions	Tue May  1 01:01:07 2001
+++ debootstrap-0.1.7/functions	Fri May  4 10:13:05 2001
@@ -69,6 +69,8 @@
 
 check_md5 () {
   # args: dest md5 size
+  # always succeed, until busybox md5sum is fixed
+  return 0
   local expmd5="$2"
   local expsize="$3"
   relmd5=`md5sum < "$1"`
diff -ur debootstrap-0.1.7.ori/woody debootstrap-0.1.7/woody
--- debootstrap-0.1.7.ori/woody	Tue May  1 01:47:26 2001
+++ debootstrap-0.1.7/woody	Mon May  7 22:11:56 2001
@@ -18,6 +18,22 @@
 	"arm")
 		base="$base setserial libgpmg1"
 		;;
+	"hppa")
+		base="$(without_package "apt-utils" "$base")"
+		base="$(without_package "console-common" "$base")"
+		base="$(without_package "console-data" "$base")"
+		base="$(without_package "console-tools" "$base")"
+		base="$(without_package "console-tools-libs" "$base")"
+		base="$(without_package "fdutils" "$base")"
+		base="$(without_package "liblockfile1" "$base")"
+		base="$base palo"
+		base="$base libstdc++3.0"
+		base="$base gcc-3.0-base"
+		required="$required libterm-stool-perl"
+		required="$required libterm-slang-perl"
+		required="$required base-config"
+		required="$(without_package "libstdc++2.10-glibc2.2" "$required")"
+		;;
 	"i386")
 		required="$(without_package "libperl5.6" "$required") mbr"
 		base="$base lilo pciutils setserial syslinux"   # pcmcia-cs
================================== cut ===============================

busybox md5sum is fixed in its master cvs, but that hasn't rippled down
to us yet.  Paul L built a .deb with the fix, on pehc:~pjlahaie.  Havn't
checked to see if I can now enable the md5sum tests.

The big list of things removed from base are more because I didn't have
.debs of them than because they were not needed.  libterm* are probably
not actually needed.

Can't get this lot upstream until we figure out what the package list
should really be.



There is a file /sbin/termwrap needed in the root.bin produced from building
the boot-floppies, which doesn't appear to belong to any package.  A quick
search showed other ports had hit the same problem.  Here it is; add it to
your root.bin before trying to use it, and don't forget to chmod +x it.

================================== cut ===============================
#!/bin/sh
######################################################################
##	Ignore some signals.
######################################################################
trap fail SIGTERM SIGINT

######################################################################
##	Set some environment variables.
######################################################################
# reads /etc/environment.
test -f /etc/environment && . /etc/environment

# Set all locale related environment variables.
LC_ALL=$LANG
export LANG LC_ALL

######################################################################
##	Display usage if no argument.
######################################################################
if [ -z "$1" ]; then
	echo "usage: $0 [-nnt] <command> [...]"
	echo "-nnt: don't run another terminal"
	exit 0
fi

######################################################################
##	Recognize terminal type.
######################################################################
case `/usr/bin/tty` in
/dev/tty|/dev/console|/dev/tty[1-9]*)
	TERMINAL=console
	;;
/dev/tty[p-za-e]*)
	TERMINAL=pseudo
	if [ ! -z "$DISPLAY" ]; then
		TERMINAL=x
	else
		case $TERM in
		rxvt|xterm*|kterm)	TERMINAL=x;;
		esac
	fi
	;;
/dev/tty[A-Z]*|/dev/cu*)
	TERMINAL=serial
	;;
esac

case $TERM in
dumb)	TERMINAL=dumb
esac

export TERMINAL

# Why don't we use dpkg-architecture? 
# Because it isn't in the base archive.

case $HOSTTYPE in 
i386)	/bin/grep -q 9800 /proc/version && SUBARCH=pc9800 ;;
esac

######################################################################
##	Select suitable terminal as wrapper.
######################################################################
WRAPPER=""

case $LANG in
ja*)	
	case $TERMINAL in
	x)
		#WRAPPER="/usr/X11R6/bin/kterm -e"
		WRAPPER="/usr/X11R6/bin/krxvt -e"
		;;
	console)
		if [ "$SUBARCH" != pc9800 -a "$TERMINAL" = console ]; then
			# Any plathome except PC9800 require jfbterm
			# to display japanese fonts on console.
			WRAPPER="/usr/bin/jfbterm -e"
		fi
		;;
	# On pseudo and serial, we couldn't know
	# that terminal can display japanese fonts...
	esac
	;;
esac

if [ "$1" = "-nnt" ]; then
	WRAPPER=""
	shift
fi

######################################################################
##	Execute Wrapper.
######################################################################
if [ ! -z "$WRAPPER" -a -x "$WRAPPER" ]; then
	$WRAPPER /bin/true && exec $WRAPPER $@
fi

exec $@

================================== cut ===============================


Next are my diffs to the boot-floppies package itself.  These are against
pehc cvs.  Some things will change - this hardwires it for serial
console, for example.  If we can handle gzipped kernel images, we
maybe don't need the enw resc3700 size, for example.

================================== cut ===============================
diff -ur -x CVS boot-floppies.ori/Makefile boot-floppies/Makefile
--- boot-floppies.ori/Makefile	Tue May  1 17:57:12 2001
+++ boot-floppies/Makefile	Mon May  7 20:29:56 2001
@@ -147,7 +147,7 @@
 	$(MAKE) root.tar.gz
 else
 ifeq ($(architecture), hppa)
-	$(MAKE) root.tar.gz
+	$(MAKE) root.tar.gz resc3700.bin drivers.tgz
 else
 	echo unsupported architecture: $(architecture); false
 endif
diff -ur -x CVS boot-floppies.ori/kernel.sh boot-floppies/kernel.sh
--- boot-floppies.ori/kernel.sh	Tue May  1 17:19:00 2001
+++ boot-floppies/kernel.sh	Mon May  7 18:05:49 2001
@@ -101,7 +101,7 @@
     cp $extractdir/boot/vmlinux-* linux$subarch
     cp $extractdir/boot/vmlinux.coff-* linux$subarch.coff
 else
-    cp $extractdir/boot/vmlinuz* linux$subarch
+    cp $extractdir/boot/vmlinuz* linux$subarch || cp $extractdir/boot/vmlinux* linux$subarch
 fi
 
 info "creating sys_map$subarch.gz"
diff -ur -x CVS boot-floppies.ori/make/hppa.vars boot-floppies/make/hppa.vars
--- boot-floppies.ori/make/hppa.vars	Tue May  1 18:17:02 2001
+++ boot-floppies/make/hppa.vars	Mon May  7 18:55:22 2001
@@ -5,6 +5,8 @@
 # see 'checks'
 tools_checks		:=
 
+arch_rootdisk_deps	:= drivers.tgz resc3700.bin
+
 # additional check rules to run, see 'checks'
 arch_addl_checks	:= 
 
diff -ur -x CVS boot-floppies.ori/make/rescue boot-floppies/make/rescue
--- boot-floppies.ori/make/rescue	Tue May  1 17:19:01 2001
+++ boot-floppies/make/rescue	Mon May  7 18:45:04 2001
@@ -40,6 +40,14 @@
 	$(ROOTCMD) ./rescue.sh $(archive) "$*" $(kver) $< \
 		2880 $(debianversion) "" $(LINGUA) $(SFONT)
 
+resc3700%.bin:	$(root_for_rescue) linux% rescue.sh $(arch_rescue_deps)
+	$(ROOTCMD) ./rescue.sh $(archive) "$*" $(kver) $< \
+		3700 $(debianversion) "" $(LINGUA) $(SFONT)
+
+resc3700.bin:	root.bin linux rescue.sh $(arch_rescue_deps)
+	$(ROOTCMD) ./rescue.sh $(archive) "$*" $(kver) $< \
+		3700 $(debianversion) "" $(LINGUA) $(SFONT)
+
 resc2880%.bin:	$(root_for_rescue) linux% rescue.sh $(arch_rescue_deps)
 	$(ROOTCMD) ./rescue.sh $(archive) "$*" $(kver) $< \
 		2880 $(debianversion) "" $(LINGUA) $(SFONT)
diff -ur -x CVS boot-floppies.ori/release.sh boot-floppies/release.sh
--- boot-floppies.ori/release.sh	Tue May  1 17:19:00 2001
+++ boot-floppies/release.sh	Mon May  7 18:53:34 2001
@@ -68,10 +68,15 @@
 
   cd $release
 
+  mkdir images-3.70
   mkdir images-2.88
   mkdir images-1.44
   mkdir images-1.20
 
+  for f in resc3700*.bin; do
+    [ ! -f $f ] || mv $f images-3.70/rescue${f#resc3700}
+  done
+
   for f in resc2880*.bin; do
     [ ! -f $f ] || mv $f images-2.88/rescue${f#resc2880}
   done
@@ -96,6 +101,7 @@
     [ ! -f $f ] || mv $f images-1.20/driver${f#drv12}
   done
 
+  rmdir images-3.70 2>/dev/null || true	# in case empty
   rmdir images-2.88 2>/dev/null || true	# in case empty
   rmdir images-1.44 2>/dev/null || true	# in case empty
   rmdir images-1.20 2>/dev/null || true	# in case empty
@@ -145,6 +151,9 @@
   ia64)
 	do_arch_ia64 $otherargs
 	;;
+  hppa)
+	do_arch_hppa $otherargs
+	;;
   *)
   	echo "Unsupported arch $arch"
 	exit 1
@@ -898,6 +907,11 @@
 }
 
 do_arch_ia64()
+{
+	echo "Nothing here yet!"
+}
+	
+do_arch_hppa()
 {
 	echo "Nothing here yet!"
 }
diff -ur -x CVS boot-floppies.ori/scripts/rootdisk/SMALL_BASE_LIST_all boot-floppies/scripts/rootdisk/SMALL_BASE_LIST_all
--- boot-floppies.ori/scripts/rootdisk/SMALL_BASE_LIST_all	Tue May  1 19:29:07 2001
+++ boot-floppies/scripts/rootdisk/SMALL_BASE_LIST_all	Mon May  7 14:44:02 2001
@@ -1,6 +1,6 @@
 bin/ash
 bin/busybox
-usr/bin/nano
+bin/nano-tiny
 etc/protocols
 sbin/MAKEDEV
 sbin/badblocks
diff -ur -x CVS boot-floppies.ori/utilities/dbootstrap/baseconfig.c boot-floppies/utilities/dbootstrap/baseconfig.c
--- boot-floppies.ori/utilities/dbootstrap/baseconfig.c	Tue May  1 17:19:01 2001
+++ boot-floppies/utilities/dbootstrap/baseconfig.c	Mon May  7 20:44:51 2001
@@ -412,6 +412,11 @@
     update_console_info();
 #endif
 
+/* Hmm, some are serial, some are graphical */
+#if #cpu (hppa)
+    update_console_info();
+#endif
+
   /* If on serial console, get rid of kbd files and setserial startup.
      The kbd package will be purged during final configuration. */
   if (serialConsole >= 0)
diff -ur -x CVS boot-floppies.ori/utilities/dbootstrap/dbootstrap.h boot-floppies/utilities/dbootstrap/dbootstrap.h
--- boot-floppies.ori/utilities/dbootstrap/dbootstrap.h	Tue May  1 17:19:01 2001
+++ boot-floppies/utilities/dbootstrap/dbootstrap.h	Mon May  7 20:47:23 2001
@@ -298,6 +298,10 @@
 # define NFSROOT                /* network boot */
 # define LOCALTIME              /* ask for GMT or localtime clock setup */
 
+#elif #cpu (hppa)
+
+# define SERIAL_CONSOLE         /* serial console recognized */
+
 #endif
 
 #ifdef DO_EJECT
================================== cut ===============================


One last thing, you need to grab debiandoc.decl from somewhere (I
found it on an x86 debian box) and put it in

boot-floppies/documentation/declaration/debiandoc.decl

so that the documentation part of the build works.


So, with that lot, and some luck, you should be able to build the
boot-floppies package.

Richard