svn commit: r186979 - in head/tools/tools/nanobsd/gateworks: . Files Files/root cfg cfg/ssh

Sam Leffler sam at FreeBSD.org
Fri Jan 9 13:39:45 PST 2009


Author: sam
Date: Fri Jan  9 21:39:44 2009
New Revision: 186979
URL: http://svn.freebsd.org/changeset/base/186979

Log:
  example configurations for cross-building to Gateworks 2348 and 2358 boards;
  probably needs cleanups to be less specific to my needs/uses
  
  MFC after:	2 weeks

Added:
  head/tools/tools/nanobsd/gateworks/
  head/tools/tools/nanobsd/gateworks/Files/   (props changed)
  head/tools/tools/nanobsd/gateworks/Files/root/   (props changed)
  head/tools/tools/nanobsd/gateworks/Files/root/.profile   (contents, props changed)
  head/tools/tools/nanobsd/gateworks/G2348   (contents, props changed)
  head/tools/tools/nanobsd/gateworks/G2358   (contents, props changed)
  head/tools/tools/nanobsd/gateworks/avila   (contents, props changed)
  head/tools/tools/nanobsd/gateworks/cambria   (contents, props changed)
  head/tools/tools/nanobsd/gateworks/cfg/   (props changed)
  head/tools/tools/nanobsd/gateworks/cfg/motd   (contents, props changed)
  head/tools/tools/nanobsd/gateworks/cfg/rc.conf   (contents, props changed)
  head/tools/tools/nanobsd/gateworks/cfg/ssh/   (props changed)
  head/tools/tools/nanobsd/gateworks/cfg/ssh/sshd_config   (contents, props changed)
  head/tools/tools/nanobsd/gateworks/common   (contents, props changed)

Added: head/tools/tools/nanobsd/gateworks/Files/root/.profile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/tools/tools/nanobsd/gateworks/Files/root/.profile	Fri Jan  9 21:39:44 2009	(r186979)
@@ -0,0 +1,15 @@
+# $FreeBSD: src/etc/root/dot.profile,v 1.21 2007/05/29 06:33:10 dougb Exp $
+#
+PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:~/bin
+export PATH
+HOME=/root; export HOME
+TERM=${TERM:-cons25}; export TERM
+PAGER=more; export PAGER
+
+#set -o vi
+set -o emacs
+if [ `id -u` = 0 ]; then
+    PS1="`hostname -s`# "
+else
+    PS1="`hostname -s`% "
+fi

Added: head/tools/tools/nanobsd/gateworks/G2348
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/tools/tools/nanobsd/gateworks/G2348	Fri Jan  9 21:39:44 2009	(r186979)
@@ -0,0 +1,120 @@
+#
+# Gateworks Avila IXP425 XScale board
+# kernel configuration file for FreeBSD/arm
+#
+# $FreeBSD$
+
+machine		arm
+ident		G2348
+
+include		"../xscale/ixp425/std.ixp425"
+include		"../xscale/ixp425/std.avila"
+options		XSCALE_CACHE_READ_WRITE_ALLOCATE
+#options	ARM_USE_SMALL_ALLOC
+hints		"AVILA.hints"
+makeoptions	MODULES_OVERRIDE=""
+
+# NB: patched by boot2 to reflect boot/root partition
+options		ROOTDEVNAME=\"ufs:ad0s1\"
+
+makeoptions	DEBUG=-g		#Build kernel with gdb(1) debug symbols
+makeoptions	CONF_CFLAGS=-mcpu=xscale
+
+options		HZ=100
+options		DEVICE_POLLING
+
+# Debugging for use in -current
+options		KDB
+options 	DDB			#Enable the kernel debugger
+#options 	INVARIANTS		#Enable calls of extra sanity checking
+#options 	INVARIANT_SUPPORT	#Extra sanity checks of internal structures, required by INVARIANTS
+#options 	WITNESS			#Enable checks to detect deadlocks and cycles
+#options 	WITNESS_SKIPSPIN	#Don't run witness on spinlocks for speed
+#options		DIAGNOSTIC
+
+options 	SCHED_4BSD		#4BSD scheduler
+#options		PREEMPTION
+
+options 	INET			#InterNETworking
+#options 	INET6			#IPv6 communications protocols
+options 	FFS			#Berkeley Fast Filesystem
+options 	SOFTUPDATES		#Enable FFS soft updates support
+#options 	UFS_ACL			#Support for access control lists
+options 	UFS_DIRHASH		#Improve performance on big directories
+options 	NFSCLIENT		#Network Filesystem Client
+options 	NFSLOCKD		#Network Lock Manager
+options 	KTRACE			#ktrace(1) support
+options 	SYSVSHM			#SYSV-style shared memory
+options 	SYSVMSG			#SYSV-style message queues
+options 	SYSVSEM			#SYSV-style semaphores
+options 	_KPOSIX_PRIORITY_SCHEDULING #Posix P1003_1B real-time extensions
+options 	KBD_INSTALL_CDEV	# install a CDEV entry in /dev
+#options		VERBOSE_SYSINIT
+
+#device		saarm
+
+device		pci
+device		uart
+
+# I2C Bus
+device		iicbus
+device		iicbb
+device		iic
+
+device		ixpiic
+device		ixpwdog		# watchdog timer
+device		ds1672		# DS1672 on I2C bus
+device		ad7418		# AD7418 on I2C bus
+
+device		avila_led
+
+device		ata
+device		atadisk         # ATA disk drives
+device		avila_ata	# Gateworks CF/IDE support
+
+device		npe		# Network Processing Engine
+device		npe_fw
+device		firmware
+device		qmgr		# Q Manager (required by npe)
+device		miibus		# NB: required by npe
+device		ether
+device		bpf
+
+device		pty
+device		loop
+device		if_bridge
+
+device		md
+device          random          # Entropy device
+
+# Wireless NIC cards
+device		wlan		# 802.11 support
+options		IEEE80211_DEBUG		# enable debugging msgs
+options		IEEE80211_AMPDU_AGE	# age frames in AMPDU reorder q's
+device		wlan_wep	# 802.11 WEP support
+device		wlan_ccmp	# 802.11 CCMP support
+device		wlan_tkip	# 802.11 TKIP support
+
+device		ath		# Atheros pci/cardbus NIC's
+device		ath_rate_sample	# SampleRate tx rate control for ath
+options		ATH_DEBUG	# enable athdebug msgs
+options		ATH_DIAGAPI	# enable api for athregs
+
+device		ath_hal		# Atheros HAL (includes binary component)
+options		AH_DEBUG
+#options		AH_ASSERT
+options		AH_SUPPORT_AR5416
+
+#device		crypto
+#device		cryptodev
+#device		hifn		# NB: Soekris minipci card known to work
+
+device		usb
+options 	USB_DEBUG
+device		uhci
+device		ohci
+device		ehci
+device		ugen
+device		umass
+device		scbus		# SCSI bus (required for SCSI)
+device		da		# Direct Access (disks)

Added: head/tools/tools/nanobsd/gateworks/G2358
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/tools/tools/nanobsd/gateworks/G2358	Fri Jan  9 21:39:44 2009	(r186979)
@@ -0,0 +1,121 @@
+#
+# Gateworks Cambria IXP435 XScale board
+# kernel configuration file for FreeBSD/arm
+#
+# $FreeBSD$
+
+machine		arm
+ident		G2358
+
+include		"../xscale/ixp425/std.ixp435"
+include		"../xscale/ixp425/std.avila"
+options		XSCALE_CACHE_READ_WRITE_ALLOCATE
+#options	ARM_USE_SMALL_ALLOC
+hints		"CAMBRIA.hints"
+makeoptions	MODULES_OVERRIDE=""
+
+# NB: patched by boot2 to reflect boot/root partition
+options		ROOTDEVNAME=\"ufs:ad0s1\"
+
+makeoptions	DEBUG=-g		#Build kernel with gdb(1) debug symbols
+makeoptions	CONF_CFLAGS=-mcpu=xscale
+
+options		HZ=100
+options		DEVICE_POLLING
+
+# Debugging for use in -current
+options		KDB
+options 	DDB			#Enable the kernel debugger
+#options 	INVARIANTS		#Enable calls of extra sanity checking
+#options 	INVARIANT_SUPPORT	#Extra sanity checks of internal structures, required by INVARIANTS
+#options 	WITNESS			#Enable checks to detect deadlocks and cycles
+#options 	WITNESS_SKIPSPIN	#Don't run witness on spinlocks for speed
+#options		DIAGNOSTIC
+
+options 	SCHED_4BSD		#4BSD scheduler
+#options		PREEMPTION
+
+options 	INET			#InterNETworking
+#options 	INET6			#IPv6 communications protocols
+options 	FFS			#Berkeley Fast Filesystem
+options 	SOFTUPDATES		#Enable FFS soft updates support
+#options 	UFS_ACL			#Support for access control lists
+options 	UFS_DIRHASH		#Improve performance on big directories
+options 	NFSCLIENT		#Network Filesystem Client
+options 	NFSLOCKD		#Network Lock Manager
+options 	KTRACE			#ktrace(1) support
+options 	SYSVSHM			#SYSV-style shared memory
+options 	SYSVMSG			#SYSV-style message queues
+options 	SYSVSEM			#SYSV-style semaphores
+options 	_KPOSIX_PRIORITY_SCHEDULING #Posix P1003_1B real-time extensions
+options 	KBD_INSTALL_CDEV	# install a CDEV entry in /dev
+#options		VERBOSE_SYSINIT
+
+#device		saarm
+
+device		pci
+device		uart
+
+# I2C Bus
+device		iicbus
+device		iicbb
+device		iic
+
+device		ixpiic
+device		ixpwdog		# watchdog timer
+device		ds1672		# DS1672 on I2C bus
+device		ad7418		# AD7418 on I2C bus
+
+device		cambria_led
+device		cambria_fled
+
+device		ata
+device		atadisk         # ATA disk drives
+device		avila_ata	# Gateworks CF/IDE support
+
+device		npe		# Network Processing Engine
+device		npe_fw
+device		firmware
+device		qmgr		# Q Manager (required by npe)
+device		miibus		# NB: required by npe
+device		ether
+device		bpf
+
+device		pty
+device		loop
+device		if_bridge
+
+device		md
+device          random          # Entropy device
+
+# Wireless NIC cards
+device		wlan		# 802.11 support
+options		IEEE80211_DEBUG		# enable debugging msgs
+options		IEEE80211_AMPDU_AGE	# age frames in AMPDU reorder q's
+device		wlan_wep	# 802.11 WEP support
+device		wlan_ccmp	# 802.11 CCMP support
+device		wlan_tkip	# 802.11 TKIP support
+
+device		ath		# Atheros pci/cardbus NIC's
+device		ath_rate_sample	# SampleRate tx rate control for ath
+options		ATH_DEBUG	# enable athdebug msgs
+options		ATH_DIAGAPI	# enable api for athregs
+
+device		ath_hal		# Atheros HAL (includes binary component)
+options		AH_DEBUG
+#options		AH_ASSERT
+options		AH_SUPPORT_AR5416
+
+#device		crypto
+#device		cryptodev
+#device		hifn		# NB: Soekris minipci card known to work
+
+device		usb
+options 	USB_DEBUG
+device		uhci
+device		ohci
+device		ehci
+device		ugen
+device		umass
+device		scbus		# SCSI bus (required for SCSI)
+device		da		# Direct Access (disks)

Added: head/tools/tools/nanobsd/gateworks/avila
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/tools/tools/nanobsd/gateworks/avila	Fri Jan  9 21:39:44 2009	(r186979)
@@ -0,0 +1,10 @@
+# $FreeBSD$
+
+NANO_NAME="avila"
+NANO_SRC=`pwd | sed 's/.tools.tools.nanobsd.*//'`
+NANO_KERNEL="G2348"
+
+NANO_IMAGES=1
+FlashDevice Sandisk 64
+
+. common

Added: head/tools/tools/nanobsd/gateworks/cambria
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/tools/tools/nanobsd/gateworks/cambria	Fri Jan  9 21:39:44 2009	(r186979)
@@ -0,0 +1,10 @@
+# $FreeBSD$
+
+NANO_NAME="cambria"
+NANO_SRC=`pwd | sed 's/.tools.tools.nanobsd.*//'`
+NANO_KERNEL="G2358"
+
+NANO_IMAGES=1
+FlashDevice Sandisk 64
+
+. common

Added: head/tools/tools/nanobsd/gateworks/cfg/motd
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/tools/tools/nanobsd/gateworks/cfg/motd	Fri Jan  9 21:39:44 2009	(r186979)
@@ -0,0 +1 @@
+FreeBSD 7.1-PRERELEASE (G2348) #1: Fri Sep 26 14:37:41 PDT 2008

Added: head/tools/tools/nanobsd/gateworks/cfg/rc.conf
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/tools/tools/nanobsd/gateworks/cfg/rc.conf	Fri Jan  9 21:39:44 2009	(r186979)
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+hostname="avila"
+ifconfig_npe0="DHCP"
+background_dhclient_npe0="YES"	# Start dhcp client in the background.
+#ifconfig_npe1="DHCP"
+background_dhclient_npe1="YES"	# Start dhcp client in the background.
+
+wlans_ath0="wlan0"
+
+sshd_enable="YES"
+nfs_client_enable="YES"
+
+sendmail_enable="NO"	# Run the sendmail inbound daemon (YES/NO).
+sendmail_submit_enable="NO"	# Start a localhost-only MTA for mail submission
+sendmail_outbound_enable="NO"	# Dequeue stuck mail (YES/NO).
+sendmail_msp_queue_enable="NO"	# Dequeue stuck clientmqueue mail (YES/NO).
+
+dumpdev="NO"		# Device to crashdump to (device name, AUTO, or NO).
+background_fsck="NO"
+
+harvest_interrupt="NO"	# Entropy device harvests interrupt randomness
+harvest_ethernet="NO"	# Entropy device harvests ethernet randomness
+harvest_p_to_p="NO"	# Entropy device harvests point-to-point randomness

Added: head/tools/tools/nanobsd/gateworks/cfg/ssh/sshd_config
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/tools/tools/nanobsd/gateworks/cfg/ssh/sshd_config	Fri Jan  9 21:39:44 2009	(r186979)
@@ -0,0 +1,126 @@
+#	$OpenBSD: sshd_config,v 1.80 2008/07/02 02:24:18 djm Exp $
+#	$FreeBSD: src/crypto/openssh/sshd_config,v 1.48 2008/08/01 02:48:36 des Exp $
+
+# This is the sshd server system-wide configuration file.  See
+# sshd_config(5) for more information.
+
+# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin
+
+# The strategy used for options in the default sshd_config shipped with
+# OpenSSH is to specify options with their default value where
+# possible, but leave them commented.  Uncommented options change a
+# default value.
+
+# Note that some of FreeBSD's defaults differ from OpenBSD's, and
+# FreeBSD has a few additional options.
+
+#VersionAddendum FreeBSD-20080801
+
+#Port 22
+#Protocol 2
+#AddressFamily any
+#ListenAddress 0.0.0.0
+#ListenAddress ::
+
+# Disable legacy (protocol version 1) support in the server for new
+# installations. In future the default will change to require explicit
+# activation of protocol 1
+Protocol 2
+
+# HostKey for protocol version 1
+#HostKey /etc/ssh/ssh_host_key
+# HostKeys for protocol version 2
+#HostKey /etc/ssh/ssh_host_rsa_key
+#HostKey /etc/ssh/ssh_host_dsa_key
+
+# Lifetime and size of ephemeral version 1 server key
+#KeyRegenerationInterval 1h
+#ServerKeyBits 1024
+
+# Logging
+# obsoletes QuietMode and FascistLogging
+#SyslogFacility AUTH
+#LogLevel INFO
+
+# Authentication:
+
+#LoginGraceTime 2m
+PermitRootLogin yes
+#StrictModes yes
+#MaxAuthTries 6
+#MaxSessions 10
+
+#RSAAuthentication yes
+#PubkeyAuthentication yes
+#AuthorizedKeysFile	.ssh/authorized_keys
+
+# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
+#RhostsRSAAuthentication no
+# similar for protocol version 2
+#HostbasedAuthentication no
+# Change to yes if you don't trust ~/.ssh/known_hosts for
+# RhostsRSAAuthentication and HostbasedAuthentication
+#IgnoreUserKnownHosts no
+# Don't read the user's ~/.rhosts and ~/.shosts files
+#IgnoreRhosts yes
+
+# Change to yes to enable built-in password authentication.
+PasswordAuthentication yes
+PermitEmptyPasswords yes
+
+# Change to no to disable PAM authentication
+ChallengeResponseAuthentication no
+
+# Kerberos options
+#KerberosAuthentication no
+#KerberosOrLocalPasswd yes
+#KerberosTicketCleanup yes
+#KerberosGetAFSToken no
+
+# GSSAPI options
+#GSSAPIAuthentication no
+#GSSAPICleanupCredentials yes
+
+# Set this to 'no' to disable PAM authentication, account processing,
+# and session processing. If this is enabled, PAM authentication will 
+# be allowed through the ChallengeResponseAuthentication and
+# PasswordAuthentication.  Depending on your PAM configuration,
+# PAM authentication via ChallengeResponseAuthentication may bypass
+# the setting of "PermitRootLogin without-password".
+# If you just want the PAM account and session checks to run without
+# PAM authentication, then enable this but set PasswordAuthentication
+# and ChallengeResponseAuthentication to 'no'.
+#UsePAM yes
+
+#AllowAgentForwarding yes
+#AllowTcpForwarding yes
+#GatewayPorts no
+#X11Forwarding yes
+#X11DisplayOffset 10
+#X11UseLocalhost yes
+#PrintMotd yes
+#PrintLastLog yes
+#TCPKeepAlive yes
+#UseLogin no
+#UsePrivilegeSeparation yes
+#PermitUserEnvironment no
+#Compression delayed
+#ClientAliveInterval 0
+#ClientAliveCountMax 3
+#UseDNS yes
+#PidFile /var/run/sshd.pid
+#MaxStartups 10
+#PermitTunnel no
+#ChrootDirectory none
+
+# no default banner path
+#Banner none
+
+# override default of no subsystems
+Subsystem	sftp	/usr/libexec/sftp-server
+
+# Example of overriding settings on a per-user basis
+#Match User anoncvs
+#	X11Forwarding no
+#	AllowTcpForwarding no
+#	ForceCommand cvs server

Added: head/tools/tools/nanobsd/gateworks/common
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/tools/tools/nanobsd/gateworks/common	Fri Jan  9 21:39:44 2009	(r186979)
@@ -0,0 +1,346 @@
+# $FreeBSD$
+
+NANO_CFGDIR=${NANO_SRC}/${NANO_TOOLS}/gateworks/cfg
+test -d ${NANO_CFGDIR} || NANO_CFGDIR=/var/empty
+NANO_PMAKE="make"					# NB: disable -j 3
+
+NANO_ARCH=arm
+TARGET_CPUTYPE=xscale; export TARGET_CPUTYPE		# XXX
+TARGET_BIG_ENDIAN=true; export TARGET_BIG_ENDIAN	# XXX
+
+NANO_CUSTOMIZE="cust_allow_ssh_root"
+
+clean_usr_local()
+{
+	LOCAL_DIR=${NANO_WORLDDIR}/usr/local
+	pprint 2 "Clean and create world directory (${LOCAL_DIR})"
+	if rm -rf ${LOCAL_DIR}/ > /dev/null 2>&1 ; then
+		true
+	else
+		chflags -R noschg ${LOCAL_DIR}/
+		rm -rf ${LOCAL_DIR}/
+	fi
+	for f in bin etc lib libdata libexec sbin share; do
+		mkdir -p ${LOCAL_DIR}/$f
+	done
+}
+NANO_CUSTOMIZE="$NANO_CUSTOMIZE clean_usr_local"
+
+cust_install_machine_files()
+{
+	echo "cd ${NANO_TOOLS}/gateworks/Files"
+	cd ${NANO_TOOLS}/gateworks/Files
+	find . -print | grep -Ev '/(CVS|\.svn)' | cpio -dumpv ${NANO_WORLDDIR}
+}
+NANO_CUSTOMIZE="$NANO_CUSTOMIZE cust_install_files cust_install_machine_files"
+
+buildenv()
+{
+	cd ${NANO_SRC}
+	env TARGET_ARCH=${NANO_ARCH} __MAKE_CONF=${NANO_MAKE_CONF} \
+	    DESTDIR=${NANO_WORLDDIR} make buildenv
+}
+
+net80211_tools()
+{
+	for f in wlanstats wlanwds wlanwatch; do 
+		echo "(cd tools/tools/net80211/$f; make $1)"; 
+	done | buildenv
+}
+net80211_clean_tools()
+{
+	net80211_tools "clean"
+}
+net80211_build_tools()
+{
+	net80211_tools ""
+}
+net80211_install_tools()
+{
+	net80211_tools "install"
+}
+NANO_CUSTOMIZE="$NANO_CUSTOMIZE net80211_clean_tools"
+NANO_CUSTOMIZE="$NANO_CUSTOMIZE net80211_build_tools"
+NANO_CUSTOMIZE="$NANO_CUSTOMIZE net80211_install_tools"
+
+ath_clean_tools()
+{
+	echo "cd tools/tools/ath; make clean" | buildenv
+}
+ath_build_tools()
+{
+	echo "cd tools/tools/ath; make" | buildenv
+}
+ath_install_tools()
+{
+	echo "cd tools/tools/ath; make install" | buildenv
+}
+NANO_CUSTOMIZE="$NANO_CUSTOMIZE ath_clean_tools"
+NANO_CUSTOMIZE="$NANO_CUSTOMIZE ath_build_tools"
+NANO_CUSTOMIZE="$NANO_CUSTOMIZE ath_install_tools"
+
+NANO_MAKEFS="makefs -B big \
+	-o bsize=4096,fsize=512,density=8192,optimization=space"
+export NANO_MAKEFS
+
+# NB: leave c++ enabled so devd can be built
+CONF_BUILD="
+WITHOUT_ACPI=true
+WITHOUT_ATM=true
+WITHOUT_AUDIT=true
+WITHOUT_BIND_DNSSEC=true
+WITHOUT_BIND_ETC=true
+WITHOUT_BIND_LIBS_LWRES=true
+WITHOUT_BLUETOOTH=true
+WITHOUT_CALENDAR=true
+WITHOUT_CDDL=true
+WITHOUT_CVS=true
+WITHOUT_DICT=true
+WITHOUT_EXAMPLES=true
+WITHOUT_FORTRAN=true
+WITHOUT_GAMES=true
+WITHOUT_GCOV=true
+WITHOUT_GPIB=true
+WITHOUT_HTML=true
+WITHOUT_I4B=true
+WITHOUT_INET6=true
+WITHOUT_INFO=true
+WITHOUT_IPFILTER=true
+WITHOUT_IPX=true
+WITHOUT_KERBEROS=true
+WITHOUT_LIBKSE=true
+WITHOUT_LOCALES=true
+WITHOUT_LPR=true
+WITHOUT_MAN=true
+WITHOUT_NETCAT=true
+WITHOUT_NIS=true
+WITHOUT_NLS=true
+WITHOUT_NS_CACHING=true
+WITHOUT_OBJC=true
+WITHOUT_PROFILE=true
+WITHOUT_RCMDS=true
+WITHOUT_RCS=true
+WITHOUT_RESCUE=true
+WITHOUT_SENDMAIL=true
+WITHOUT_SHAREDOCS=true
+WITHOUT_SSP=true
+WITHOUT_SYSCONS=true
+WITHOUT_TCSH=true
+"
+CONF_INSTALL="$CONF_BUILD
+WITHOUT_TOOLCHAIN=true
+WITHOUT_INSTALLLIB=true
+"
+
+# NB: override to suppress install of kernel.symbols
+install_kernel()
+{
+	pprint 2 "install kernel"
+	pprint 3 "log: ${MAKEOBJDIRPREFIX}/_.ik"
+
+	cd ${NANO_SRC}
+	env TARGET_ARCH=${NANO_ARCH} ${NANO_PMAKE} installkernel \
+		INSTALL_NODEBUG=true \
+		DESTDIR=${NANO_WORLDDIR} \
+		__MAKE_CONF=${NANO_MAKE_CONF} KERNCONF=`basename ${NANO_KERNEL}` \
+		> ${MAKEOBJDIRPREFIX}/_.ik 2>&1
+}
+
+# NB: override to force / on s1 instead of s1a
+setup_nanobsd_etc()
+{
+	pprint 2 "configure nanobsd /etc"
+
+	(
+	cd ${NANO_WORLDDIR}
+
+	# create diskless marker file
+	touch etc/diskless
+
+	# Make root filesystem R/O by default
+	echo "root_rw_mount=NO" >> etc/defaults/rc.conf
+
+	# save config file for scripts
+	echo "NANO_DRIVE=${NANO_DRIVE}" > etc/nanobsd.conf
+
+	echo "/dev/${NANO_DRIVE}s1 / ufs ro 1 1" > etc/fstab
+	echo "/dev/${NANO_DRIVE}s3 /cfg ufs rw,noauto 2 2" >> etc/fstab
+	mkdir -p cfg
+	)
+}
+
+create_arm_diskimage()
+{
+	pprint 2 "build diskimage"
+	pprint 3 "log: ${MAKEOBJDIRPREFIX}/_.di"
+
+	(
+	echo "NANO_MEDIASIZE:	$NANO_MEDIASIZE"
+	echo "NANO_IMAGES:	$NANO_IMAGES"
+	echo "NANO_SECTS:	$NANO_SECTS"
+	echo "NANO_HEADS:	$NANO_HEADS"
+	echo "NANO_CODESIZE:	$NANO_CODESIZE"
+	echo "NANO_CONFSIZE:	$NANO_CONFSIZE"
+	echo "NANO_DATASIZE:	$NANO_DATASIZE"
+
+	echo $NANO_MEDIASIZE $NANO_IMAGES \
+		$NANO_SECTS $NANO_HEADS \
+		$NANO_CODESIZE $NANO_CONFSIZE $NANO_DATASIZE |
+	awk '
+	{
+		printf "# %s\n", $0
+
+		# size of cylinder in sectors
+		cs = $3 * $4
+
+		# number of full cylinders on media
+		cyl = int ($1 / cs)
+
+		# output fdisk geometry spec, truncate cyls to 1023
+		if (cyl <= 1023)
+			print "g c" cyl " h" $4 " s" $3
+		else
+			print "g c" 1023 " h" $4 " s" $3
+
+		if ($7 > 0) { 
+			# size of data partition in full cylinders
+			dsl = int (($7 + cs - 1) / cs)
+		} else {
+			dsl = 0;
+		}
+
+		# size of config partition in full cylinders
+		csl = int (($6 + cs - 1) / cs)
+
+		if ($5 == 0) {
+			# size of image partition(s) in full cylinders
+			isl = int ((cyl - dsl - csl) / $2)
+		} else {
+			isl = int (($5 + cs - 1) / cs)
+		}
+
+		# First image partition start at second track
+		print "p 1 165 " $3, isl * cs - $3
+		c = isl * cs;
+
+		# Second image partition (if any) also starts offset one 
+		# track to keep them identical.
+		if ($2 > 1) {
+			print "p 2 165 " $3 + c, isl * cs - $3
+			c += isl * cs;
+		}
+
+		# Config partition starts at cylinder boundary.
+		print "p 3 165 " c, csl * cs
+		c += csl * cs
+
+		# Data partition (if any) starts at cylinder boundary.
+		if ($7 > 0) {
+			print "p 4 165 " c, dsl * cs
+		} else if ($7 < 0 && $1 > c) {
+			print "p 4 165 " c, $1 - c
+		} else if ($1 < c) {
+			print "Disk space overcommitted by", \
+			    c - $1, "sectors" > "/dev/stderr"
+			exit 2
+		}
+
+		# Force slice 1 to be marked active. This is necessary
+		# for booting the image from a USB device to work.
+		print "a 1"
+	}
+	' > ${MAKEOBJDIRPREFIX}/_.fdisk
+
+	IMG=${NANO_DISKIMGDIR}/${NANO_IMGNAME}
+	BS=${NANO_SECTS}b
+
+	if [ "${NANO_MD_BACKING}" = "swap" ] ; then
+		MD=`mdconfig -a -t swap -s ${NANO_MEDIASIZE} -x ${NANO_SECTS} \
+			-y ${NANO_HEADS}`
+	else
+		echo ""; echo "Creating md backing file ${IMG} ..."
+		_c=`expr ${NANO_MEDIASIZE} / ${NANO_SECTS}`
+		pprint 2 "dd if=/dev/zero of=${IMG} bs=${BS} count=${_c}"
+		dd if=/dev/zero of=${IMG} bs=${BS} count=${_c}
+		pprint 2 "mdconfig -a -t vnode -f ${IMG} -x ${NANO_SECTS} -y ${NANO_HEADS}"
+		MD=`mdconfig -a -t vnode -f ${IMG} -x ${NANO_SECTS} \
+			-y ${NANO_HEADS}`
+	fi
+
+	trap "mdconfig -d -u $MD" 1 2 15 EXIT
+
+	echo ""; echo "Write partition table ..."
+	FDISK=${MAKEOBJDIRPREFIX}/_.fdisk
+	pprint 2 "fdisk -i -f ${FDISK} ${MD}"
+	fdisk -i -f ${FDISK} ${MD}
+	pprint 2 "fdisk ${MD}"
+	fdisk ${MD}
+
+	# Create first image
+	IMG1=${NANO_DISKIMGDIR}/_.disk.image1
+	echo ""; echo "Create first image ${IMG1} ..."
+	SIZE=`awk '/^p 1/ { print $5 "b" }' ${FDISK}`
+	pprint 2 "${NANO_MAKEFS} -s ${SIZE} ${IMG1} ${NANO_WORLDDIR}"
+	${NANO_MAKEFS} -s ${SIZE} ${IMG1} ${NANO_WORLDDIR}
+	pprint 2 "dd if=${IMG1} of=/dev/${MD}s1 bs=${BS}"
+	dd if=${IMG1} of=/dev/${MD}s1 bs=${BS}
+
+	if [ $NANO_IMAGES -gt 1 -a $NANO_INIT_IMG2 -gt 0 ] ; then
+		IMG2=${NANO_DISKIMGDIR}/_.disk.image2
+		echo ""; echo "Create second image ${IMG2}..."
+		for f in ${NANO_WORLDDIR}/etc/fstab ${NANO_WORLDDIR}/conf/base/etc/fstab
+		do
+			sed -i "" "s/${NANO_DRIVE}s1/${NANO_DRIVE}s2/g" $f
+		done
+
+		SIZE=`awk '/^p 2/ { print $5 "b" }' ${FDISK}`
+		pprint 2 "${NANO_MAKEFS} -s ${SIZE} ${IMG2} ${NANO_WORLDDIR}"
+		${NANO_MAKEFS} -s ${SIZE} ${IMG2} ${NANO_WORLDDIR}
+		pprint 2 "dd if=${IMG2} of=/dev/${MD}s2 bs=${BS}"
+		dd if=${IMG2} of=/dev/${MD}s2 bs=${BS}
+	fi
+
+	# Create Config slice
+	CFG=${NANO_DISKIMGDIR}/_.disk.cfg
+	echo ""; echo "Creating config partition ${CFG}..."
+	SIZE=`awk '/^p 3/ { print $5 "b" }' ${FDISK}`
+	# XXX: fill from where ?
+	pprint 2 "${NANO_MAKEFS} -s ${SIZE} ${CFG} ${NANO_CFGDIR}"
+	${NANO_MAKEFS} -s ${SIZE} ${CFG} ${NANO_CFGDIR}
+	pprint 2 "dd if=${CFG} of=/dev/${MD}s3 bs=${BS}"
+	dd if=${CFG} of=/dev/${MD}s3 bs=${BS}
+	pprint 2 "rm ${CFG}"
+	rm ${CFG}; CFG=			# NB: disable printing below
+
+	# Create Data slice, if any.
+	if [ $NANO_DATASIZE -gt 0 ] ; then
+		DATA=${NANO_DISKIMGDIR}/_.disk.data
+		echo ""; echo "Creating data partition ${DATA}..."
+		SIZE=`awk '/^p 4/ { print $5 "b" }' ${FDISK}`
+		# XXX: fill from where ?
+		pprint 2 "${NANO_MAKEFS} -s ${SIZE} ${DATA} /var/empty"
+		${NANO_MAKEFS} -s ${SIZE} ${DATA} /var/empty
+		pprint 2 "dd if=${DATA} of=/dev/${MD}s4 bs=${BS}"
+		dd if=${DATA} of=/dev/${MD}s4 bs=${BS}
+		pprint 2 "rm ${DATA}"
+		rm ${DATA}; DATA=	# NB: disable printing below
+	fi
+
+	if [ "${NANO_MD_BACKING}" = "swap" ] ; then
+		echo "Writing out _.disk.full..."
+		dd if=/dev/${MD} of=${IMG} bs=${BS}
+	fi
+
+	echo ""
+	echo "Completed images in:"
+	echo ""
+	echo "Full disk:         ${IMG}"
+	echo "Primary partition: ${IMG1}"
+	test "${IMG2}" && echo "2ndary partition:  ${IMG2}"
+	test "${CFG}" &&  echo "/cfg partition:    ${CFG}"
+	test "${DATA}" && echo "/data partition:   ${DATA}"
+	echo ""
+	echo "Use dd if=<file> of=/dev/<somewhere> bs=${BS} to transfer an"
+	echo "image to bootable media /dev/<somewhere>."
+	) > ${MAKEOBJDIRPREFIX}/_.di 2>&1
+}


More information about the svn-src-all mailing list