onesis-devel Mailing List for oneSIS (Page 3)
Brought to you by:
jjengla
You can subscribe to this list here.
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(32) |
Jul
(8) |
Aug
(3) |
Sep
|
Oct
(5) |
Nov
(5) |
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
(5) |
Aug
(4) |
Sep
(28) |
Oct
(10) |
Nov
(1) |
Dec
(1) |
2007 |
Jan
|
Feb
(2) |
Mar
(1) |
Apr
(2) |
May
(1) |
Jun
(3) |
Jul
|
Aug
|
Sep
(13) |
Oct
(3) |
Nov
|
Dec
(3) |
2008 |
Jan
(15) |
Feb
(9) |
Mar
(10) |
Apr
(2) |
May
(17) |
Jun
(2) |
Jul
(16) |
Aug
(5) |
Sep
(2) |
Oct
(11) |
Nov
(8) |
Dec
(2) |
2009 |
Jan
|
Feb
(10) |
Mar
(1) |
Apr
(1) |
May
(7) |
Jun
(3) |
Jul
(2) |
Aug
(1) |
Sep
(5) |
Oct
(5) |
Nov
(3) |
Dec
(1) |
2010 |
Jan
|
Feb
|
Mar
(1) |
Apr
(2) |
May
(10) |
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
(5) |
2011 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
(4) |
Jul
|
Aug
(2) |
Sep
(7) |
Oct
(5) |
Nov
|
Dec
|
2012 |
Jan
|
Feb
|
Mar
(5) |
Apr
(2) |
May
|
Jun
|
Jul
(12) |
Aug
(1) |
Sep
|
Oct
(1) |
Nov
|
Dec
|
2013 |
Jan
(1) |
Feb
(10) |
Mar
|
Apr
|
May
|
Jun
(3) |
Jul
(1) |
Aug
|
Sep
(1) |
Oct
(6) |
Nov
|
Dec
|
2014 |
Jan
|
Feb
|
Mar
|
Apr
(2) |
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
(2) |
Oct
(1) |
Nov
(1) |
Dec
|
2015 |
Jan
|
Feb
(23) |
Mar
(3) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2017 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
(3) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Josh E. <jj...@gm...> - 2013-02-14 00:48:59
|
This make running the command with no arguments complain about uninitialized variables (because of the END block). -JE On Wed, Feb 13, 2013 at 4:17 PM, Ryan Braithwaite <br...@gm...> wrote: > The attached patch makes mk-initramfs-oneSIS honor the --tempdir > command-line option. As it is now, $tempdir is set to '/tmp' no matter what > the command line argument is. > > -Ryan > > > ------------------------------------------------------------------------------ > Free Next-Gen Firewall Hardware Offer > Buy your Sophos next-gen firewall before the end March 2013 > and get the hardware for free! Learn more. > http://p.sf.net/sfu/sophos-d2d-feb > _______________________________________________ > oneSIS-devel mailing list > one...@li... > https://lists.sourceforge.net/lists/listinfo/onesis-devel > > |
From: Josh E. <jj...@gm...> - 2013-02-04 17:56:12
|
I think the native DHCP client in busybox is IPv4 only. You'll need to dig up a DHCP client for IPv6, add it the the ramfs image (maybe in an overlay for starters), and hack the init script to use it instead of udhcpc. I haven't played with IPv6 at all yet (it's got too many octets for my taste). Send in a patch if you get it going... :) -JE On Sat, Feb 2, 2013 at 9:05 PM, ron minnich <rmi...@gm...> wrote: > if someone can help me with suggestions on setting jup an > initramfs+dhcp+netboot+IPV6 cluster, I could use some hints. I am > *really* rusty. > > ron > > > ------------------------------------------------------------------------------ > Everyone hates slow websites. So do we. > Make your web apps faster with AppDynamics > Download AppDynamics Lite for free today: > http://p.sf.net/sfu/appdyn_d2d_jan > _______________________________________________ > oneSIS-devel mailing list > one...@li... > https://lists.sourceforge.net/lists/listinfo/onesis-devel > |
From: ron m. <rmi...@gm...> - 2013-02-04 17:23:52
|
systemd but this is in a chroot, I'll bbl once I now more ron |
From: Josh E. <jj...@gm...> - 2013-02-04 17:21:39
|
No one I know of has tied oneSIS into the Arch bootstrap yet. Do you know if Arch uses Upstart, sysvinit, or something else? -JE On Sat, Feb 2, 2013 at 4:07 PM, ron minnich <rmi...@gm...> wrote: > has anyone done this? I'm trying the simple tutorial and getting lots > of errors. Is the tutorial maybe out of date? > > NODECLASS_REGEXP: node\d+ compute > RAMSIZE 10m > LINKDIR /var/run > LINKDIR /var/lock/subsys > LINKDIR /var/log > LINKDIR /tmp > > I don't think these linkdirs are totally right for arch ... > > ron > > > ------------------------------------------------------------------------------ > Everyone hates slow websites. So do we. > Make your web apps faster with AppDynamics > Download AppDynamics Lite for free today: > http://p.sf.net/sfu/appdyn_d2d_jan > _______________________________________________ > oneSIS-devel mailing list > one...@li... > https://lists.sourceforge.net/lists/listinfo/onesis-devel > |
From: ron m. <rmi...@gm...> - 2013-02-03 05:05:38
|
if someone can help me with suggestions on setting jup an initramfs+dhcp+netboot+IPV6 cluster, I could use some hints. I am *really* rusty. ron |
From: ron m. <rmi...@gm...> - 2013-02-03 00:07:39
|
has anyone done this? I'm trying the simple tutorial and getting lots of errors. Is the tutorial maybe out of date? NODECLASS_REGEXP: node\d+ compute RAMSIZE 10m LINKDIR /var/run LINKDIR /var/lock/subsys LINKDIR /var/log LINKDIR /tmp I don't think these linkdirs are totally right for arch ... ron |
From: <jj...@us...> - 2013-01-25 22:47:53
|
Revision: 511 http://onesis.svn.sourceforge.net/onesis/?rev=511&view=rev Author: jjengla Date: 2013-01-25 22:47:40 +0000 (Fri, 25 Jan 2013) Log Message: ----------- Added software RAID support in initramfs. Extend oneSIS::expand_range() to allow for comma-seperated ranges Modified Paths: -------------- trunk/initramfs-templates/base-svn/init trunk/initramfs.conf trunk/mk-diskful trunk/mk-initramfs-oneSIS trunk/oneSIS.pm/lib/oneSIS.pm Modified: trunk/initramfs-templates/base-svn/init =================================================================== --- trunk/initramfs-templates/base-svn/init 2012-10-12 19:12:37 UTC (rev 510) +++ trunk/initramfs-templates/base-svn/init 2013-01-25 22:47:40 UTC (rev 511) @@ -543,6 +543,30 @@ fi } +raid_setup() { +# Desc: Assembles raid devices into a raid array +# Input: None +# Output: None + cat /proc/partitions | awk ' + { + if ($0 !~ /name/ && $0 ~ /./) { + dev="/dev/" $4; + cmd = "mdadm --examine --scan " dev; + while (( cmd | getline result ) > 0) { + split(result,tokens); + devices[tokens[2]] = devices[tokens[2]] " " dev; + } + close(cmd) + } + } + END { + for (i in devices) { + print "oneSIS: Assembling RAID array " i " from devices:" devices[i]; + system("/sbin/mdadm --assemble " i devices[i]); + } + }' +} + mount_local_root() { # Desc: Mounts the root filesystem from a local disk. # Input: 1) $ I block device pathname or disklabel @@ -558,6 +582,12 @@ exit 1 fi + # Set up and start raid devices if configured + setup_raid=`grep "^[[:space:]]*SETUP_RAID" /etc/initramfs.conf` + if [ -n "$setup_raid" ]; then + raid_setup + fi + # Mount the root partition -- try ext3 first ## FIXME echo "oneSIS: Mounting local filesystem: /" # Check if local partitions should be mounted read-write @@ -584,7 +614,6 @@ fi } - mount_all_labels() { # Desc: Mounts all partitions with disk labels unless configured not to # If a filesystem is already mounted, it is skipped Modified: trunk/initramfs.conf =================================================================== --- trunk/initramfs.conf 2012-10-12 19:12:37 UTC (rev 510) +++ trunk/initramfs.conf 2013-01-25 22:47:40 UTC (rev 511) @@ -166,6 +166,13 @@ ####-----------------------------------------------------------------------#### ####-----------------------------------------------------------------------#### +# SETUP_RAID: +# -- Discover and assemble any RAID arrays +# +# SETUP_RAID +####-----------------------------------------------------------------------#### + +####-----------------------------------------------------------------------#### # MOUNT_RW: <dir> # -- Directs the initrd/ramfs to mount the given directory read-write # Modified: trunk/mk-diskful =================================================================== --- trunk/mk-diskful 2012-10-12 19:12:37 UTC (rev 510) +++ trunk/mk-diskful 2013-01-25 22:47:40 UTC (rev 511) @@ -359,7 +359,7 @@ } } else { - my $count; + my $count = 0; while (defined ($_ = <RSYNC>)) { # Capture ten lines of output in case of error if ($count <= 10) { @@ -429,7 +429,7 @@ } # Run given --exec command -if (defined $exec) { +if (defined $exec && $part_count != 0) { # Attempt to run the given command system($exec); if ($? >> 8) { Modified: trunk/mk-initramfs-oneSIS =================================================================== --- trunk/mk-initramfs-oneSIS 2012-10-12 19:12:37 UTC (rev 510) +++ trunk/mk-initramfs-oneSIS 2013-01-25 22:47:40 UTC (rev 511) @@ -50,7 +50,7 @@ -d, --scsi Include scsi_hostadapter modules -p, --preload=STRING Add the specified module (loads before SCSI modules) -m, --module=STRING Add the specified module (loads after SCSI modules) --w, --with=STRING Add the specified module (deprecated) +-w, --with=STRING Add the specified module (deprecated) -c, --copy=PATH Copy given PATH to the ramfs image -rc, --recursecopy=PATH Recursively copy given PATH to the ramfs image -nl, --nolibs Do not copy library dependencies for files copied to ramfs @@ -89,6 +89,7 @@ -nn, --nonfs Do not attempt to mount an NFS root -nm, --nomods Do not copy any modules listed in modprobe.conf files, only those explicitly requested (and their deps) +-ra, --raid Attempt to assemble any existing raid arrays -re, --resume=DEVICE Attempt to resume from swsusp image on DEVICE report bugs to <onesis-users\@lists.sourceforge.net> @@ -111,7 +112,7 @@ my (@preload, @modules, %added, @readwrite, @overlays, @dhcp_ifs); my (@conf_copy_paths, @conf_recurse_paths, @copy_paths, @recurse_paths, @copy_objs); my ($initramfs,$configfile,$kver,$size,$ucsize) = (undef,undef,undef,undef,undef); -my ($dhcp_retry,$nfs_retry,$net_check,$bond_ifs) = (undef,undef,undef,undef); +my ($dhcp_retry,$nfs_retry,$net_check,$bond_ifs,$raid) = (undef,undef,undef,undef,undef); my ($show_readme,$buffer,$resume) = (undef,undef,undef); my $buffer_default = 1024; my $basedir = '/'; @@ -163,6 +164,7 @@ "with|w=s", \@modules, "module|m=s", \@modules, "nomods|nm", \$nomods, + "raid|ra", \$raid, "readme|r=s", \$show_readme, "resume|re=s", \$resume, "<>", \&addarg @@ -281,6 +283,8 @@ $quiet || print "Using initramfs config: $usedconfig\n"; } +# Get kernel module dependencies +my ($mod_map, $mod_deps) = get_module_deps($kver, $basedir); # Create initramfs config to use in the actual ramfs open(NEWCONF, ">$tmp_conf") or die "Could not open $tmp_conf: $!\n"; @@ -381,6 +385,19 @@ $readme .= "Initramfs will attempt to resume from software suspend image on $conf_resume\n"; print NEWCONF "RESUME_FROM: $conf_resume\n"; } +my $conf_setup_raid = $config->setup_raid(); +$conf_setup_raid = $raid if defined $raid; +if (defined $conf_setup_raid) { + # Set up RAID drives in the initramfs + $quiet || print "Initramfs will attempt to assemble any recognized RAID drives\n"; + $readme .= "Initramfs will attempt to assemble any recognized RAID drives\n"; + print NEWCONF "SETUP_RAID\n"; + add_module('raid0'); + add_module('raid1'); + add_module('raid10'); + add_module('raid456'); + push @copy_paths, '/sbin/mdadm'; +} close(NEWCONF); move($tmp_conf, "$staging_dir/etc/initramfs.conf") or warn "Error! Problem updating initramfs.conf from $tmp_conf: $!\n"; @@ -447,7 +464,7 @@ push @conf_recurse_paths, $tp; $added_path{$tp} = 1; unless ($copy_path->nodeplibs() || $nodeplibs) { - # Find any library dependencies inside of path to copy + # Find any library dependencies inside of path to copy our @deplibs; find({ wanted => sub { my $file = $File::Find::name; @@ -552,9 +569,6 @@ chdir $pwd; } -# Get kernel module dependencies -my ($mod_map, $mod_deps) = get_module_deps($kver, $basedir); - # Throw any 'preload' modules into the initramfs (including dependencies) foreach my $module (@{$config->get_preloads()}, @preload) { add_module($module); Modified: trunk/oneSIS.pm/lib/oneSIS.pm =================================================================== --- trunk/oneSIS.pm/lib/oneSIS.pm 2012-10-12 19:12:37 UTC (rev 510) +++ trunk/oneSIS.pm/lib/oneSIS.pm 2013-01-25 22:47:40 UTC (rev 511) @@ -1159,6 +1159,11 @@ $config->resume_from($device); $config->add_directive($line); } + elsif ($line =~ /^[\s\t]*SETUP_RAID + $/x) { + $config->setup_raid(1); + $config->add_directive($line); + } elsif ($line =~ /^[\s\t]*TEMPLATE:?[\s\t]+(\S+) $/x) { my ($template) = ($1); @@ -1458,7 +1463,7 @@ my @nodes; # Pick apart each range and create an array of hostnames - for my $range (split(/([^\[,]+(?:\[\d+(?:-\d+)?(?:,\d+(?:-\d+)?)*\])?),?/, $orig_range)) { + for my $range (split(/([^\[,]+(?:\[\d+(?:-\d+)?(?:,\d+(?:-\d+)?)*\])?(?:[^,]*)),?/, $orig_range)) { next if $range eq ''; if ($range =~ /^([^\[]+)\[(.*)\](.*)/o) { my ($prefix,$range,$suffix) = ($1,$2,$3); @@ -1878,9 +1883,11 @@ # Do a readdir to force a refresh of the NFS cache if ($linktarget =~ m|^(.*)/|) { my $dir = $1; - opendir(DIR, $dir); - readdir(DIR); - closedir DIR; + if (-d $dir) { + opendir(DIR, $dir); + readdir(DIR); + closedir DIR; + } } # Check if current target is still valid or linkback is forced @@ -1909,9 +1916,11 @@ # Do a readdir to force a refresh of the NFS cache if ($linktarget =~ m|^(.*)/|) { my $dir = $1; - opendir(DIR, $dir); - readdir(DIR); - closedir DIR; + if (-d $dir) { + opendir(DIR, $dir); + readdir(DIR); + closedir DIR; + } } # Check if current target is still valid or linkback is forced @@ -2041,9 +2050,11 @@ # Do a readdir to force a refresh of the NFS cache if ($linktarget =~ m|^(.*)/|) { my $dir = $1; - opendir(DIR, $dir); - readdir(DIR); - closedir DIR; + if (-d $dir) { + opendir(DIR, $dir); + readdir(DIR); + closedir DIR; + } } # Check if linkback target is valid or if linkback is forced @@ -7147,6 +7158,7 @@ $self->{MOUNT_ALL_RW} = 0; $self->{NOMODPROBE} = 0; $self->{SCSIMODS} = 0; + $self->{SETUP_RAID} = 0; $self->{PRELOADS} = []; $self->{MODULES} = []; $self->{OVERLAYS} = []; @@ -7264,7 +7276,7 @@ if (@_) { $self->{DHCP_RETRIES} = shift; } return $self->{DHCP_RETRIES}; } - + # ramfs_config->nfs_retries() method sub nfs_retries { # Desc: Gets or sets the number of nfs retries @@ -7411,6 +7423,17 @@ return $self->{INITRD_BUFFER}; } +# ramfs_config->setup_raid() method +sub setup_raid { +# Desc: Gets or sets the setup_raid flag +# Input: 1) $ I? Optional setup_raid flag +# The data is set to the value of the argument, if given. +# Returns: $ setup_raid flag + my $self = shift; + if (@_) { $self->{SETUP_RAID} = shift; } + return $self->{SETUP_RAID}; +} + # ramfs_config->resume_from() method sub resume_from { # Desc: Gets or sets the resume device @@ -12860,6 +12883,34 @@ B<---------------------------------------------------------------------> +B<oneSIS::ramfs_config-E<gt>setup_raid($setup_raid);> + +B<Description:> Gets or sets the setup_raid flag + +=over + +=item B<Parameters:> + +=over + +=item $setup_raid I? Optional setup_raid flag The data is set to the value + +=item ------- of the argument, if given. + +=back + +=item B<Return Values:> + +=over + +=item $ setup_raid flag + +=back + +=back + +B<---------------------------------------------------------------------> + B<oneSIS::ramfs_config-E<gt>resume_from($resume_from);> B<Description:> Gets or sets the resume device This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jj...@us...> - 2012-10-12 19:12:43
|
Revision: 510 http://onesis.svn.sourceforge.net/onesis/?rev=510&view=rev Author: jjengla Date: 2012-10-12 19:12:37 +0000 (Fri, 12 Oct 2012) Log Message: ----------- Removed xcpu stuff Modified Paths: -------------- trunk/Makefile Removed Paths: ------------- trunk/mk-xcpu-oneSIS trunk/xcpu-templates/ trunk/xcpu.conf Modified: trunk/Makefile =================================================================== --- trunk/Makefile 2012-08-31 00:50:59 UTC (rev 509) +++ trunk/Makefile 2012-10-12 19:12:37 UTC (rev 510) @@ -16,10 +16,6 @@ ramfs_base := initramfs-templates/base-svn ramfs_svn := $(wildcard ${srcdir}/initramfs-templates/*-svn) ramfs_stats := $(wildcard ${srcdir}/initramfs-templates/*-svn.stats) -xcpu_templates := $(wildcard ${srcdir}/xcpu-templates/*.gz) -xcpu_svn := $(wildcard ${srcdir}/xcpu-templates/*-svn) -xcpu_stats := $(wildcard ${srcdir}/xcpu-templates/*-svn.stats) -xcpu_repo := svn://xcpu.org/xcpu2/trunk delete_deb = oneSIS.pm/lib/oneSIS delete = oneSIS.pm/lib/oneSIS mk-pod genconf test-oneSIS delete += debian onesis.ebuild dhcp-config @@ -37,7 +33,6 @@ install -m 755 -d ${etcdir}; \ install -m 755 -d ${etcsubdir}; \ install -m 755 -d ${sharedir}/initramfs-templates; \ - install -m 755 -d ${sharedir}/xcpu-templates; \ install -m 755 -d ${sharedir}/distro-patches; \ install -m 755 -d ${sharedir}/includes; \ install -m 755 -d ${sharedir}/doc; \ @@ -45,7 +40,6 @@ ${srcdir}/mk-sysimage \ ${srcdir}/mk-initramfs-oneSIS \ ${srcdir}/mk-isoimage-oneSIS \ - ${srcdir}/mk-xcpu-oneSIS \ ${srcdir}/mk-diskful \ ${srcdir}/copy-rootfs \ ${srcdir}/pwr \ @@ -57,7 +51,6 @@ ${srcdir}/myprops \ ${sbindir}; \ install -m 644 ${ramfs_templates} ${sharedir}/initramfs-templates; \ - install -m 644 ${xcpu_templates} ${sharedir}/xcpu-templates; \ install -m 644 ${patches} ${sharedir}/distro-patches; \ install -m 644 ${includes} ${sharedir}/includes; \ install -m 644 doc/oneSIS-manual.pdf ${sharedir}/doc; \ @@ -68,9 +61,6 @@ if [ ! -e ${etcsubdir}/initramfs.conf ]; then \ install -m 644 ${srcdir}/initramfs.conf ${etcsubdir}/initramfs.conf; \ fi; \ - if [ ! -e ${etcsubdir}/xcpu.conf ]; then \ - install -m 644 ${srcdir}/xcpu.conf ${etcsubdir}/xcpu.conf; \ - fi; \ install -m 644 ${sysimage_includes} ${etcsubdir}; \ cd oneSIS.pm && make pure_install @@ -79,7 +69,6 @@ ${sbindir}/mk-sysimage \ ${sbindir}/mk-initramfs-oneSIS \ ${sbindir}/mk-isoimage-oneSIS \ - ${sbindir}/mk-xcpu-oneSIS \ ${sbindir}/mk-diskful \ ${sbindir}/sync-node \ ${sbindir}/update-node \ @@ -122,45 +111,6 @@ cd ..; \ done -xcpu-checkin: - @for i in ${xcpu_svn}; do \ - ./get-fs-stats $$i; \ - done - -# We need xcpu2 -xcpu-tarball: ${xcpu_svn}/bin/xcpufs ${xcpu_svn}/etc/xcpu/admin_key.pub - @for i in ${xcpu_stats}; do \ - ./set-fs-stats $$i; \ - done - @for i in ${xcpu_svn}; do \ - tmpl=`echo $$i |sed "s/-svn//"`; \ - rm -rf $$tmpl; \ - cp -a $$i $$tmpl; \ - cd $$tmpl; \ - tar xzf dev.tgz; \ - rm -f dev.tgz; \ - newtmpl=`echo $$tmpl |sed "s/xcpu-templates//"`; \ - tar czf ../$$newtmpl.tar.gz . --no-anchored --exclude .svn; \ - cd ..; \ - rm -rf $$newtmpl; \ - done - -${xcpu_svn}/bin/xcpufs: xcpu2/xcpufs/xcpufs.static - sh -c 'cp xcpu2/xcpufs/xcpufs.static ${xcpu_svn}/bin/xcpufs' - sh -c 'cp /lib/libnss_file* ${xcpu_svn}/lib' - -xcpu2/xcpufs/xcpufs.static: - svn co ${xcpu_repo} xcpu2 - sh -c 'cd xcpu2 && make' - -${xcpu_svn}/etc/xcpu/admin_key.pub: /etc/xcpu/admin_key.pub - sh -c 'mkdir -p ${xcpu_svn}/etc/xcpu' - sh -c 'cp /etc/xcpu/admin_key.pub ${xcpu_svn}/etc/xcpu/admin_key.pub' - - /etc/xcpu/admin_key.pub: - sh -c 'mkdir -p /etc/xcpu' - sh -c 'ssh-keygen -t rsa -f /etc/xcpu/admin_key' - oneSIS-${version}.tar.gz: clean docs @if [ -d ../oneSIS-${version} ]; then \ echo Directory exists: ../oneSIS-${version}; \ @@ -262,7 +212,6 @@ clean: @rm -f `find . -name \*~`; \ - rm -rf xcpu2 if [ -f oneSIS.pm/Makefile ]; then \ cd oneSIS.pm && make clean && rm -f Makefile.old; \ fi Deleted: trunk/mk-xcpu-oneSIS =================================================================== --- trunk/mk-xcpu-oneSIS 2012-08-31 00:50:59 UTC (rev 509) +++ trunk/mk-xcpu-oneSIS 2012-10-12 19:12:37 UTC (rev 510) @@ -1,2 +0,0 @@ -#!/bin/bash -mk-initramfs-oneSIS --template=/usr/share/oneSIS/xcpu-templates/xcpu-x86.tar.gz -p 9p -p 9pnet $* Deleted: trunk/xcpu.conf =================================================================== --- trunk/xcpu.conf 2012-08-31 00:50:59 UTC (rev 509) +++ trunk/xcpu.conf 2012-10-12 19:12:37 UTC (rev 510) @@ -1 +0,0 @@ -RAMDISK_ROOT This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mr...@us...> - 2012-08-31 00:51:06
|
Revision: 509 http://onesis.svn.sourceforge.net/onesis/?rev=509&view=rev Author: mr_ep Date: 2012-08-31 00:50:59 +0000 (Fri, 31 Aug 2012) Log Message: ----------- If we need to create a partition 2 TiB in size or larger, use GNU parted and GPT rather than sfdisk and DOS/MBR partition tables, which are limited to less than 2 TiB. (we'll probably end up using parted/GPT for all partitioning at some point, but this should work in the meantime) Modified Paths: -------------- trunk/oneSIS.pm/lib/oneSIS.pm Modified: trunk/oneSIS.pm/lib/oneSIS.pm =================================================================== --- trunk/oneSIS.pm/lib/oneSIS.pm 2012-04-03 23:23:53 UTC (rev 508) +++ trunk/oneSIS.pm/lib/oneSIS.pm 2012-08-31 00:50:59 UTC (rev 509) @@ -2420,7 +2420,7 @@ sub setup_localdisks { # Desc: Configures local disks specified in the config as swap space -# or mounted ext2 filesystems +# or mounted ext{2,3,4} filesystems # Input: 1) $ I oneSIS::config object # 2) \@ I array of localdisk_elem objects # 3) $ I hostname of this node @@ -2436,10 +2436,10 @@ # undef: on error my ($config, $localdisk_elems, $hostname, $classname, $action, $basedir) = @_; my (%partitions,%labels,@swap,%diskleft,%fastmount,%device,%partitioned); - my (%fstype,%sfdisk_input,%diskinfo,%order); + my (%fstype,%sfdisk_input,%parted_input,%diskinfo,%order); my ($mydisks,$label,$device,$partsize) = (undef,undef,undef,undef); my ($output) = (undef); - my ($disksize, $disks_already_checked, $order) = (0, 0, 0); + my ($disksize, $disks_already_checked, $order, $have_large_partitions) = (0, 0, 0, 0); our (%mounts); if (! defined $action) { @@ -2607,6 +2607,12 @@ $partsize = $diskleft{$device}; } + # sfdisk only does DOS/MBR partition tables, which have a (2 TiB - 512) partition size limit. + # GNU parted can do GPT, which supports partitions up to 8 ZiB (should last us a while). + if ($partsize >= 2*1024*1024*1024) { # 2 TiB in 1024-byte blocks + $have_large_partitions = 1; + } + # Keep track of free disk space $diskleft{$device} -= $partsize; @@ -2627,8 +2633,10 @@ } my $offset = 2048; # Allow initial space for embedding large bootloaders - # Build input for partitioning with sfdisk + # Build input for partitioning either with sfdisk or parted. DEVICE: foreach my $device (keys %partitions) { + # Have parted make a GPT partition table + push @{$parted_input{$device}}, "mklabel gpt"; # Handle either devfs or udev(regular) style device names my $dev_part = $device; @@ -2642,9 +2650,6 @@ my $diskObj = $localdisk_elem->disk(); $partnum++; - # Reserve 2048 bytes for embedding the bootloader - my $partstart = $part==0 ? 2048 : ''; - # Add extended partition if necessary if ($part == 3 && $num_parts >= 4) { my $ext_size = $diskObj->size(); @@ -2661,6 +2666,7 @@ # check for cciss devices $partname = "/dev/$dev_part" . "p$partnum" if $dev_part =~ /cciss/; $device{$partname} = $device; + push @{$parted_input{$device}}, sprintf "mkpart primary %dMiB %dMiB", int($offset/1024), int(($offset+$partsize)/1024)-1; if ($localdisk_elem->type() eq 'SWAP') { push @swap, $partname; $fastmount{$partname} = $localdisk_elem->fastmount(); @@ -2673,6 +2679,7 @@ $labels{$partname} = $localdisk_elem->label(); $fastmount{$partname} = $localdisk_elem->fastmount(); push @{$sfdisk_input{$device}}, "$offset,$partsize,L,*"; + push @{$parted_input{$device}}, sprintf "set %d boot on", $part+1; $offset += $partsize; } } @@ -2687,23 +2694,39 @@ foreach my $device (keys %sfdisk_input) { if ($#{$sfdisk_input{$device}} != -1) { my ($before, $after); - my $input = join("\\n", @{$sfdisk_input{$device}}); - $before = $after = `/bin/echo -e "$input" | /sbin/sfdisk -n -Lq -uB /dev/$device 2>&1`; - $before =~ s/(?:.*\n)+Old situation:(?:.*\n)+?((?:\/dev.*\n)+|No partitions found)(?:.*\n)+/$1/; - $after =~ s/(?:.*\n)+New situation:(?:.*\n)+?((?:\/dev.*\n)+)(?:.*\n)+/$1/; - if ($before eq $after) { - print "oneSIS: Partition layout of /dev/$device unchanged. Skipping partitioning ...\n"; + print "oneSIS: Partitioning /dev/$device ...\n"; + if ($have_large_partitions) { + # Use parted to make GPT partitions + # TODO: skip if already partitioned? + for my $parted_command (@{$parted_input{$device}}) { + $output = `/sbin/parted -s /dev/$device -- $parted_command 2>&1`; + if ($? >> 8) { + warn "oneSIS: Error creating partitions on /dev/$device: $output\n"; + } + else { + $partitioned{$device} = 1; + } + } + } else { + # Use sfdisk to make DOS/MBR partitions + my $sfdisk_input = join("\\n", @{$sfdisk_input{$device}}); + $before = $after = `/bin/echo -e "$sfdisk_input" | /sbin/sfdisk -n -Lq -uB /dev/$device 2>&1`; + $before =~ s/(?:.*\n)+Old situation:(?:.*\n)+?((?:\/dev.*\n)+|No partitions found)(?:.*\n)+/$1/; + $after =~ s/(?:.*\n)+New situation:(?:.*\n)+?((?:\/dev.*\n)+)(?:.*\n)+/$1/; + if ($before eq $after) { + print "oneSIS: Partition layout of /dev/$device unchanged. Skipping partitioning ...\n"; + } + else { + print "oneSIS: Partitioning /dev/$device ...\n"; + $output = `/bin/echo -e "$sfdisk_input" | /sbin/sfdisk --force -Lq -uB /dev/$device 2>&1`; + if ($? >> 8) { + warn "oneSIS: Error creating partitions on /dev/$device: $output\n"; + } + else { + $partitioned{$device} = 1; + } + } } - else { - print "oneSIS: Partitioning /dev/$device ...\n"; - $output = `/bin/echo -e "$input" | /sbin/sfdisk --force -Lq -uB /dev/$device 2>&1`; - if ($? >> 8) { - warn "oneSIS: Error creating partitions on /dev/$device: $output\n"; - } - else { - $partitioned{$device} = 1; - } - } } } @@ -3168,12 +3191,12 @@ my ($device) = @_; my ($diskinfo, $disksize); - $disksize = `/sbin/sfdisk -s /dev/$device 2>&1`; + $disksize = `/sbin/sfdisk -s /dev/$device 2>/dev/null`; if ($? >> 8) { warn "oneSIS: Error(1) running sfdisk: $disksize"; return undef; } - $diskinfo = `/sbin/sfdisk -l /dev/$device 2>&1`; + $diskinfo = `/sbin/sfdisk -l /dev/$device 2>/dev/null`; if ($? >> 8) { warn "oneSIS: Error(2) running sfdisk: $diskinfo"; return undef; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: ron m. <rmi...@gm...> - 2012-07-17 16:06:22
|
On Tue, Jul 17, 2012 at 8:58 AM, Josh England <jj...@gm...> wrote: > If you want to. It hadn't been doing any harm until now. it's always good to delete unused cruft :-) ron |
From: Josh E. <jj...@gm...> - 2012-07-17 15:58:56
|
If you want to. It hadn't been doing any harm until now. -JE On Mon, Jul 16, 2012 at 6:02 PM, ron minnich <rmi...@gm...> wrote: > I'm willing to submit a patch to remove xcpu. It never worked well enough. > > ron > |
From: ron m. <rmi...@gm...> - 2012-07-17 01:02:29
|
I'm willing to submit a patch to remove xcpu. It never worked well enough. ron |
From: ron m. <rmi...@gm...> - 2012-07-17 01:02:05
|
downloaded the most recent onesis, i'm on ubuntu as modifed by google ron |
From: Josh E. <jj...@gm...> - 2012-07-17 00:41:59
|
make 'xcpu-tarball' ? I usually don't have to do that though just to get stuff installed. What distro are you on? -JE On Mon, Jul 16, 2012 at 5:09 PM, ron minnich <rmi...@gm...> wrote: > cd oneSIS.pm && make pure_install > install: missing destination file operand after > `//usr/share/oneSIS/xcpu-templates' > > arg. > > ron > |
From: ron m. <rmi...@gm...> - 2012-07-17 00:09:44
|
cd oneSIS.pm && make pure_install install: missing destination file operand after `//usr/share/oneSIS/xcpu-templates' arg. ron |
From: ron m. <rmi...@gm...> - 2012-07-17 00:09:04
|
from there my memory fails. How do I build the minimal boot config usb stick? just with ramfs? ron |
From: Josh E. <jj...@gm...> - 2012-07-16 23:42:25
|
Nothing is pure when it comes to perl. If your build tree is a clean checkout, try running 'make ramfs-tarball'. -JE On Mon, Jul 16, 2012 at 3:58 PM, ron minnich <rmi...@gm...> wrote: > cd oneSIS.pm && make pure_install > install: missing destination file operand after > `//usr/share/oneSIS/initramfs-templates' > > > > could it at least tell me which one :-) > > ron > > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > oneSIS-devel mailing list > one...@li... > https://lists.sourceforge.net/lists/listinfo/onesis-devel > |
From: ron m. <rmi...@gm...> - 2012-07-16 22:58:11
|
cd oneSIS.pm && make pure_install install: missing destination file operand after `//usr/share/oneSIS/initramfs-templates' could it at least tell me which one :-) ron |
From: Gary M. <ga...@sh...> - 2012-07-06 17:10:55
|
Thanx for the feedback. Turns out the initramfs template I was using was based on an older version. Using the newer one, it works as everyone says. - Gary On 12-07-06 1:05 PM, Josh England wrote: > A full udev in the ramfs would be nice, but the mdev supplied with > busybox is actually fairly capable. It has support for loading firmware > files so all you really need to do is include them in the ramfs. You > can do this in a couple of ways: > > Run mk-initramfs-oneSIS with '-rc /lib/firmware/bnx2' to recursively > copy the bnx2 firmware to your ramfs. > or > Add 'COPY -r /lib/firmware/bnx2' to your etc/oneSIS/initramfs.conf file. > > -JE > > On Fri, Jul 6, 2012 at 6:09 AM, Gary Molenkamp <ga...@sh... > <mailto:ga...@sh...>> wrote: > > While testing oneSIS under Centos 6.2, I have run into an issue with > creating and using kernel network drivers in the initramfs that make use > of firmware blobs. > > My understanding is that, on 2.6.32+ based kernel, when a driver > requests a firmware blob, a hotplug event is triggered to udev, which > uses the /lib/udev/firmware.sh script to load in the requested blob. > > > The challenge then, is that the initramfs for oneSIS does not have udev > working on its behalf. The events are triggered, but the module load > errors out waiting for the blob. In the case of the latest 2.6.32 > kernel, this is the bnx2 driver. > > If you time it right, you can replicate the behavior in the initramfs by > including the firmware.sh script and watching the requests: > > > export DEVPATH=/devices/pci0000:00/0000:00:01.0/0000:01:00.0 > /firmware/0000:01:00.0 > > modprobe bnx2 & > > export FIRMWARE=bnx2/bnx2-mips-09-6.2.1a.fw > > /lib/udev/firmware.sh > > export FIRMWARE=bnx2/bnx2-rv2p-09-6.0.17.fw > > /lib/udev/firmware.sh > > This has been added to the initrc script on a custom template, but is > that the right/best way to accomplish this? ie. should udev be run > in the initramfs? > > > > > -- > Gary Molenkamp SHARCNET > Systems Administrator University of Western Ontario > Compute/Calcul Canada http://www.computecanada.org > ga...@sh... <mailto:ga...@sh...> > http://www.sharcnet.ca > (519) 661-2111 x88429 <tel:%28519%29%20661-2111%20x88429> > (519) 661-4000 <tel:%28519%29%20661-4000> > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. > Discussions > will include endpoint security, mobile security and the latest in > malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > oneSIS-devel mailing list > one...@li... > <mailto:one...@li...> > https://lists.sourceforge.net/lists/listinfo/onesis-devel > > -- Gary Molenkamp SHARCNET Systems Administrator University of Western Ontario Compute/Calcul Canada http://www.computecanada.org ga...@sh... http://www.sharcnet.ca (519) 661-2111 x88429 (519) 661-4000 |
From: Josh E. <jj...@gm...> - 2012-07-06 17:05:20
|
A full udev in the ramfs would be nice, but the mdev supplied with busybox is actually fairly capable. It has support for loading firmware files so all you really need to do is include them in the ramfs. You can do this in a couple of ways: Run mk-initramfs-oneSIS with '-rc /lib/firmware/bnx2' to recursively copy the bnx2 firmware to your ramfs. or Add 'COPY -r /lib/firmware/bnx2' to your etc/oneSIS/initramfs.conf file. -JE On Fri, Jul 6, 2012 at 6:09 AM, Gary Molenkamp <ga...@sh...> wrote: > While testing oneSIS under Centos 6.2, I have run into an issue with > creating and using kernel network drivers in the initramfs that make use > of firmware blobs. > > My understanding is that, on 2.6.32+ based kernel, when a driver > requests a firmware blob, a hotplug event is triggered to udev, which > uses the /lib/udev/firmware.sh script to load in the requested blob. > > > The challenge then, is that the initramfs for oneSIS does not have udev > working on its behalf. The events are triggered, but the module load > errors out waiting for the blob. In the case of the latest 2.6.32 > kernel, this is the bnx2 driver. > > If you time it right, you can replicate the behavior in the initramfs by > including the firmware.sh script and watching the requests: > > > export DEVPATH=/devices/pci0000:00/0000:00:01.0/0000:01:00.0 > /firmware/0000:01:00.0 > > modprobe bnx2 & > > export FIRMWARE=bnx2/bnx2-mips-09-6.2.1a.fw > > /lib/udev/firmware.sh > > export FIRMWARE=bnx2/bnx2-rv2p-09-6.0.17.fw > > /lib/udev/firmware.sh > > This has been added to the initrc script on a custom template, but is > that the right/best way to accomplish this? ie. should udev be run > in the initramfs? > > > > > -- > Gary Molenkamp SHARCNET > Systems Administrator University of Western Ontario > Compute/Calcul Canada http://www.computecanada.org > ga...@sh... http://www.sharcnet.ca > (519) 661-2111 x88429 (519) 661-4000 > > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > oneSIS-devel mailing list > one...@li... > https://lists.sourceforge.net/lists/listinfo/onesis-devel > |
From: Gary M. <ga...@sh...> - 2012-07-06 13:36:47
|
While testing oneSIS under Centos 6.2, I have run into an issue with creating and using kernel network drivers in the initramfs that make use of firmware blobs. My understanding is that, on 2.6.32+ based kernel, when a driver requests a firmware blob, a hotplug event is triggered to udev, which uses the /lib/udev/firmware.sh script to load in the requested blob. The challenge then, is that the initramfs for oneSIS does not have udev working on its behalf. The events are triggered, but the module load errors out waiting for the blob. In the case of the latest 2.6.32 kernel, this is the bnx2 driver. If you time it right, you can replicate the behavior in the initramfs by including the firmware.sh script and watching the requests: > export DEVPATH=/devices/pci0000:00/0000:00:01.0/0000:01:00.0 /firmware/0000:01:00.0 > modprobe bnx2 & > export FIRMWARE=bnx2/bnx2-mips-09-6.2.1a.fw > /lib/udev/firmware.sh > export FIRMWARE=bnx2/bnx2-rv2p-09-6.0.17.fw > /lib/udev/firmware.sh This has been added to the initrc script on a custom template, but is that the right/best way to accomplish this? ie. should udev be run in the initramfs? -- Gary Molenkamp SHARCNET Systems Administrator University of Western Ontario Compute/Calcul Canada http://www.computecanada.org ga...@sh... http://www.sharcnet.ca (519) 661-2111 x88429 (519) 661-4000 |
From: Josh E. <jj...@gm...> - 2012-04-03 23:39:16
|
System on a disk. Cool stuff... -JE On Tue, Apr 3, 2012 at 4:23 PM, <cas...@us...> wrote: > Revision: 508 > http://onesis.svn.sourceforge.net/onesis/?rev=508&view=rev > Author: cashmont > Date: 2012-04-03 23:23:53 +0000 (Tue, 03 Apr 2012) > Log Message: > ----------- > Add changes to support creation of an iso image that can be written to usb > stuck that boots a onesis image via a cramfs method. > > mk-isoimage-oneSIS --osimage /home/os/centos6.2-x86_64-devel-oneSIS > > the PCIMODS should be enabled in initramfs.conf for best usage of the iso > creation. > > The iso boot method has been tested via virtuablbox, kvm and a usbstick > boot. > > Will monitor for any other breakage in regular use, but none seen so far > in testing. > > Modified Paths: > -------------- > trunk/Makefile > trunk/initramfs-templates/base-svn/init > trunk/initramfs.conf > trunk/mk-isoimage-oneSIS > trunk/oneSIS.pm/lib/oneSIS.pm > > Modified: trunk/Makefile > =================================================================== > --- trunk/Makefile 2012-03-13 18:21:45 UTC (rev 507) > +++ trunk/Makefile 2012-04-03 23:23:53 UTC (rev 508) > @@ -44,6 +44,7 @@ > install -m 755 ${srcdir}/rc.preinit \ > ${srcdir}/mk-sysimage \ > ${srcdir}/mk-initramfs-oneSIS \ > + ${srcdir}/mk-isoimage-oneSIS \ > ${srcdir}/mk-xcpu-oneSIS \ > ${srcdir}/mk-diskful \ > ${srcdir}/copy-rootfs \ > @@ -77,6 +78,7 @@ > rm -rf ${sbindir}/rc.preinit \ > ${sbindir}/mk-sysimage \ > ${sbindir}/mk-initramfs-oneSIS \ > + ${sbindir}/mk-isoimage-oneSIS \ > ${sbindir}/mk-xcpu-oneSIS \ > ${sbindir}/mk-diskful \ > ${sbindir}/sync-node \ > > Modified: trunk/initramfs-templates/base-svn/init > =================================================================== > --- trunk/initramfs-templates/base-svn/init 2012-03-13 18:21:45 UTC > (rev 507) > +++ trunk/initramfs-templates/base-svn/init 2012-04-03 23:23:53 UTC > (rev 508) > @@ -51,11 +51,25 @@ > # Configure loopback interface > log ifconfig lo 127.0.0.1 > > + # load lspci modules > + pcimods=`grep "^[[:space:]]*PCIMODS" /etc/initramfs.conf` > + if [ -n $pcimods ]; then > + log echo oneSIS: Loading pci modules > + lspci | egrep -v 'VGA' | awk '{print $1}' | while read device; do > + find /sys -name modalias | grep :$device | xargs cat | xargs > modprobe 2> /dev/null > + done > + fi > + > # Load modules > for i in `cat /etc/modules.autoload`; do > log modprobe $i; > + # need to wait when loading usb-storage before moving along > + if [ $i = "usb-storage" ]; then > + log echo "Waiting for usb storage devices to detect ..." > + sleep 10 > + fi > done > - > + > # Create device files for all local disks/partitions > for device in `echo $(cat /proc/partitions |grep [0-9] |awk '{print > $4}')`; do > create_disk_device /dev/$device > @@ -348,12 +362,25 @@ > label=`echo $myroot |grep LABEL=` > nfs=`echo $myroot |grep "^[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+:.*"` > dir=`echo $myroot |grep "^/"` > + img=`echo $myroot |grep "\.img"` > if [ -n "$label" ]; then > # Mount local root filesystem via disklabel. > mount_local_root $label > elif [ -n "$dev" ]; then > # Mount local root filesystem from specified device. > mount_local_root $dev > + elif [ -n "$img" ]; then > + mkdir -p /.squashfs.media > + > + # try cd mount, then try to look for a usb device to mount > + mount /dev/sr0 /.squashfs.media > + if [ $? -ne 0 ]; then > + # wait 10 seconds for usb devices to get detected > + usbdev=`cat /proc/partitions | awk '{print $4}' | grep > sd[a-z]$ | sed -e 's/^/\/dev\//g' | xargs fdisk -l | grep Hidden | awk > '{print $1}'` > + mount $usbdev /.squashfs.media > + fi > + > + mount_squashfs_root /.squashfs.media/$img > elif [ -n "$nfs" -o -n "$dir" ]; then > # If rootpath contains no IP, assume the IP of the DHCP server > if [ -n "$dir" ]; then > @@ -502,6 +529,19 @@ > fi > } > > +mount_squashfs_root() { > +# Desc: Mounts the root filesystem from a squashfs filename.img > +# Input: 1) $ path/to/squashfsimagename.img > + local squashfsimage="$1" > + mount -n -t squashfs -o ro $1 /mnt > + if [ $? -ne 0 ]; then > + log echo > + log echo "oneSIS: Error! Failed to mount $squashfsimage on /mnt!" > + log echo "\*\ \ \*\ \ \* Dropping to a shell..." > + /bin/ash 2>&1 > + exit 1 > + fi > +} > > mount_local_root() { > # Desc: Mounts the root filesystem from a local disk. > > Modified: trunk/initramfs.conf > =================================================================== > --- trunk/initramfs.conf 2012-03-13 18:21:45 UTC (rev 507) > +++ trunk/initramfs.conf 2012-04-03 23:23:53 UTC (rev 508) > @@ -29,6 +29,14 @@ > > ####-----------------------------------------------------------------------#### > > > ####-----------------------------------------------------------------------#### > +# PCIMODS > +# -- automaticaly add any drivers that map to lspci /sys devices > +# suggest adding COPY /lib/modules/$(uname -r) because bacon is good > +# > +#PCIMODS > > +####-----------------------------------------------------------------------#### > + > > +####-----------------------------------------------------------------------#### > # SCSIMODS > # -- Add disk (scsi_hostadapter) modules from modprobe.conf > # > > Modified: trunk/mk-isoimage-oneSIS > =================================================================== > --- trunk/mk-isoimage-oneSIS 2012-03-13 18:21:45 UTC (rev 507) > +++ trunk/mk-isoimage-oneSIS 2012-04-03 23:23:53 UTC (rev 508) > @@ -37,9 +37,11 @@ > --initramfs_conf=/path/to/initramfs.conf > (default /etc/oneSIS/initramfs.conf) > > +--osimage /path/to/onesisimage > --noprompt Do not show a boot prompt when booting > --serialport=device The serial port to be used (default ttyS0) > --baudrate=rate The serial port baudrate (default 115200) > +-v, --verbose Verbose output > -d, --dryrun Show changes that would be made without making > them > -q, --quiet Suppress output > > @@ -50,17 +52,18 @@ > my $initramfs_bin="/sbin/mk-initramfs-oneSIS"; > my $kernelversion = undef; > my ($kernel, $initimg) = (undef, undef); > +my $osimage = undef; > my $isoimage = undef; > my $mkiso_bin="/usr/bin/mkisofs"; > > my ($initramfs_conf) = ("/etc/oneSIS/initramfs.conf"); > > my ($isolinux_bin, $isohybrid_bin) = (undef, "/usr/bin/isohybrid"); > -my ($isolinux_cfg, $noprompt, $timeout) = ("isolinux.cfg", 0, 10); > +my ($isolinux_cfg, $noprompt, $timeout) = (undef, 0, 10); > > -my ($serialport, $baudrate) = ("ttyS0", 115200); > +my ($serialport, $baudrate) = (undef, 115200); > > -my ($quiet, $dryrun, $debug, $gotarg) = (undef, undef, undef, 0); > +my ($quiet, $dryrun, $debug, $gotarg, $cmd) = (undef, undef, undef, 0, > undef); > > GetOptions("quiet", \$quiet, > "staging_dir=s", \$staging_dir, > @@ -69,12 +72,13 @@ > "isolinux_cfg=s", \$isolinux_cfg, > "initramfs_conf=s", \$initramfs_conf, > "kernelversion=s", \$kernelversion, > + "osimage=s", \$osimage, > "serialport=s", \$serialport, > "baudrate=i", \$baudrate, > "timeout=i", \$timeout, > "noprompt", \$noprompt, > "dryrun|d", \$dryrun, > - "debug", \$debug, > + "debug|v|verbose", \$debug, > ); > > # > @@ -94,9 +98,9 @@ > ##### TODO: add options to mk-initramfs-oneSIS not available in template > # > die "Cannot find oneSIS mk-initramfs-oneSIS $!" if ! -x $initramfs_bin; > -if (!defined $kernelversion ) { > +if (!$kernelversion ) { > $kernelversion = `uname -r`; chomp $kernelversion; > - warn "Warning! No kernel version supplied. Using version > $kernelversion\n"; > + ($debug || $dryrun) && print "Warning! No kernel version supplied. > Using version $kernelversion\n"; > } > > $kernel="/boot/vmlinuz-$kernelversion-generic"; > @@ -110,6 +114,7 @@ > $isolinux_bin="/usr/lib/syslinux/isolinux.bin" if ! -f $isolinux_bin; > die "Cannot find a valid isolinux.bin file" if ! -f $isolinux_bin; > > +print "Copying isolinux $isolinux_bin and kernel $kernel ...\n"; > if (!copy($isolinux_bin, "$staging_dir/isolinux")) { > die "Error! Unable to copy $isolinux_bin to $staging_dir/isolinux: $!\n"; > } > @@ -117,24 +122,20 @@ > die "Error! Unable to copy $kernel to $staging_dir/isolinux: $!\n"; > } > > -#open (MKONESISKERNEL, "$initramfs_bin -f -d -nd -rr > $staging_dir/oneSIS/initrd-$kernelversion-oneSIS.img $kernelversion|") or > die "Failed to create initramfs program for $kernelversion: $!"; > -($debug || $dryrun) && print "$initramfs_bin -f --config=$initramfs_conf > $staging_dir/isolinux/initrd.img $kernelversion\n"; > -my $b=`$initramfs_bin -f --config=$initramfs_conf > $staging_dir/isolinux/initrd.img $kernelversion`; > -die "Failed to create initrd.img" if ! -f > "$staging_dir/isolinux/initrd.img"; > - > # > # create or use the specified isolinux.cfg file > # 1) make helpful message to allow noramroot, nodhcp .... > nfsroot=.... > # 2) should read initramfs.conf from initramfs that was created > above when booted > # > -if (! -f $isolinux_cfg) { > - open (ISOLINUXCFG, ">$staging_dir/isolinux/$isolinux_cfg") > +if (!$isolinux_cfg) { > + print "Creating isolinux configuration ...\n"; > + open (ISOLINUXCFG, ">$staging_dir/isolinux/isolinux.cfg") > or die "Failed to create isolinux.cfg $!"; > > # timeout is 10ths of seconds > $timeout = $timeout*10; > > - print ISOLINUXCFG "SERIAL 0 $baudrate\n" if $baudrate; > + print ISOLINUXCFG "SERIAL 0 $baudrate\n" if $serialport and > $baudrate; > print ISOLINUXCFG "PROMPT 1\n" if !$noprompt; > print ISOLINUXCFG "TIMEOUT $timeout\n" if $timeout; > print ISOLINUXCFG "DEFAULT onesis\n"; > @@ -143,7 +144,13 @@ > > # need basename of kernel and initimg > print ISOLINUXCFG " kernel kernel\n"; > - print ISOLINUXCFG " append initrd=initrd.img console=tty0 > console=$serialport,$baudrate\n"; > + print ISOLINUXCFG " append initrd=initrd.img console=tty0 > nomodeset"; > + print ISOLINUXCFG " console=$serialport,$baudrate" if $serialport; > + if ($osimage) { > + my $osimagebasename = `basename $osimage`; chomp > $osimagebasename; > + print ISOLINUXCFG " root=$osimagebasename.img"; > + } > + print "\n"; > close (ISOLINUXCFG); > > open (ONESISDISPLAYMSF, ">$staging_dir/isolinux/oneSIS.msg") > @@ -154,28 +161,57 @@ > $timeout = $timeout / 10; > print ONESISDISPLAYMSF "Type onesis at the boot prompt or wait > $timeout seconds.\n\n"; > close (ONESISDISPLAYMSF); > -} elsif (!copy($isolinux_cfg, "$staging_dir/isolinux")) { > - die "Error! Unable to copy $isolinux_cfg to $staging_dir/isolinux: > $!\n"; > +} else { > + print "Creating isolinux configuration from $isolinux_cfg...\n"; > + copy($isolinux_cfg, "$staging_dir/isolinux") or die "Error! Unable > to copy $isolinux_cfg to $staging_dir/isolinux: $!\n"; > } > > +#my $cdmodules = "-m sr_mod -m ata_generic -m ata_piix"; > +#my $netmodules = "-m e1000 -m ne2k_pci -m pcnet -m 8139too -m 8139cp -m > virtio"; > +#my $hostnetmodules= qx(grep '[0-9]: eth[0-9]: ' /var/log/dmesg | awk > '{print \$1}' | uniq | sed -e 's/^/-m /g' | xargs echo) or die "Cannot find > system ethernet modules: $!"; > + > +my $ramroot = ""; > +$ramroot = "-rr" if !$osimage; > + > +print "Creating initramfs ...\n"; > +$cmd = qx($initramfs_bin --config=$initramfs_conf > $staging_dir/isolinux/initrd.img $kernelversion -f $ramroot -nd -nn -nm -rc > /lib/modules/$kernelversion -m sr_mod -m sd_mod -m usb-storage) or die "[ > FAIL ]: $!"; > +die "Failed to create initrd.img" if ! -f > "$staging_dir/isolinux/initrd.img"; > + > # > +# if $osimage is a directory, create a squashfs image from it for the CD > +# > +if ( $osimage ) { > + die "$osimage is not a directory $!" if ! -d $osimage; > + my $osimagebasename = `basename $osimage`; > + chomp $osimagebasename; > + print "Creating squashfs $osimagebasename.img from $osimage ...\n"; > + ($debug || $dryrun) && print "/sbin/mksquashfs $osimage > $staging_dir/$osimagebasename.img\n"; > + #open (MKSQUASHFS, "/sbin/mksquashfs $osimage > $staging_dir/$osimagebasename.img|") or die "Failed to create squashfs > image from $osimage $!"; > + #close MKSQUASHFS; > + $cmd=`/sbin/mksquashfs $osimage $staging_dir/$osimagebasename.img`; > + die "Failed to create squashfs image for $osimage" if ! -f > "$staging_dir/$osimagebasename.img"; > +} > + > +# > # run the following to create iso image > -# mkisofs -o <isoimage> \ > +# mkisofs -R -J -o <isoimage> \ > # -b isolinux/isolinux.bin -c isolinux/boot.cat \ > # -no-emul-boot -boot-load-size 4 -boot-info-table \ > # <root-of-iso-tree> > # > +print "Creating iso image /tmp/oneSIS-$kernelversion.iso ...\n"; > $isoimage="/tmp/oneSIS-$kernelversion.iso"; > die "$mkiso_bin is not defined: $!" if !$mkiso_bin; > chdir ($staging_dir); > -open (MKISOIMAGE, "$mkiso_bin -f -o $isoimage -b isolinux/isolinux.bin -c > isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table > $staging_dir|") or die "Failed to create isoimage $isoimage: $!"; > -close (MKISOIMAGE); > +$cmd = qx($mkiso_bin -quiet -R -J -f -o $isoimage -b > isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size > 4 -boot-info-table $staging_dir); > +$cmd = qx(file $isoimage | grep bootable) or die "$mkiso_bin -R -J -f -o > $isoimage -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot > -boot-load-size 4 -boot-info-table $staging_dir [ FAIL ]: $!"; > > # > # ensure the iso can be used for usb purposes as well too > # > -warn "Cannot find a valid isohybrid file" if ! -x $isohybrid_bin; > -open (ISOHYBRIDIZE, "$isohybrid_bin $isoimage|") or die "Failed to > hybridize $isoimage using $isohybrid_bin: $!"; > -close (ISOHYBRIDIZE); > +die "Cannot find a valid isohybrid file" if ! -x $isohybrid_bin; > +print "Hyrbridizing iso image (e.g. run dd > if=/tmp/oneSIS-$kernelversion.iso of=/dev/USBDRIVE) ...\n"; > +open(ISOHYBRID, "$isohybrid_bin $isoimage|") or die "$isohybrid_bin > $isoimage [ FAIL ]: $!"; > +close ISOHYBRID; > > print "oneSIS: iso image is in $isoimage\n"; > > Modified: trunk/oneSIS.pm/lib/oneSIS.pm > =================================================================== > --- trunk/oneSIS.pm/lib/oneSIS.pm 2012-03-13 18:21:45 UTC (rev 507) > +++ trunk/oneSIS.pm/lib/oneSIS.pm 2012-04-03 23:23:53 UTC (rev 508) > @@ -1108,6 +1108,11 @@ > $config->nomodprobe(1); > $config->add_directive($line); > } > + elsif ($line =~ /^[\s\t]*PCIMODS > + $/x) { > + $config->pcimods(1); > + $config->add_directive($line); > + } > elsif ($line =~ /^[\s\t]*SCSIMODS > $/x) { > $config->scsimods(1); > @@ -7339,6 +7344,17 @@ > return $self->{NOMODPROBE}; > } > > +# ramfs_config->pcimods() method > +sub pcimods { > +# Desc: Gets or sets the pcimods flag > +# Input: 1) $ I? Optional pcimods flag > +# The data is set to the value of the argument, if given. > +# Returns: $ pcimods flag > + my $self = shift; > + if (@_) { $self->{PCIMODS} = shift; } > + return $self->{PCIMODS}; > +} > + > # ramfs_config->scsimods() method > sub scsimods { > # Desc: Gets or sets the scsimods flag > @@ -12709,6 +12725,34 @@ > > B<---------------------------------------------------------------------> > > +B<oneSIS::ramfs_config-E<gt>pcimods($pcimods);> > + > +B<Description:> Gets or sets the pcimods flag > + > +=over > + > +=item B<Parameters:> > + > +=over > + > +=item $pcimods I? Optional pcimods flag The data is set to the > + > +=item --------- value of the argument, if given. > + > +=back > + > +=item B<Return Values:> > + > +=over > + > +=item $ pcimods flag > + > +=back > + > +=back > + > +B<---------------------------------------------------------------------> > + > B<oneSIS::ramfs_config-E<gt>scsimods($scsimods);> > > B<Description:> Gets or sets the scsimods flag > > This was sent by the SourceForge.net collaborative development platform, > the world's largest Open Source development site. > > > > ------------------------------------------------------------------------------ > Better than sec? Nothing is better than sec when it comes to > monitoring Big Data applications. Try Boundary one-second > resolution app monitoring today. Free. > http://p.sf.net/sfu/Boundary-dev2dev > _______________________________________________ > oneSIS-devel mailing list > one...@li... > https://lists.sourceforge.net/lists/listinfo/onesis-devel > |
From: <cas...@us...> - 2012-04-03 23:24:00
|
Revision: 508 http://onesis.svn.sourceforge.net/onesis/?rev=508&view=rev Author: cashmont Date: 2012-04-03 23:23:53 +0000 (Tue, 03 Apr 2012) Log Message: ----------- Add changes to support creation of an iso image that can be written to usb stuck that boots a onesis image via a cramfs method. mk-isoimage-oneSIS --osimage /home/os/centos6.2-x86_64-devel-oneSIS the PCIMODS should be enabled in initramfs.conf for best usage of the iso creation. The iso boot method has been tested via virtuablbox, kvm and a usbstick boot. Will monitor for any other breakage in regular use, but none seen so far in testing. Modified Paths: -------------- trunk/Makefile trunk/initramfs-templates/base-svn/init trunk/initramfs.conf trunk/mk-isoimage-oneSIS trunk/oneSIS.pm/lib/oneSIS.pm Modified: trunk/Makefile =================================================================== --- trunk/Makefile 2012-03-13 18:21:45 UTC (rev 507) +++ trunk/Makefile 2012-04-03 23:23:53 UTC (rev 508) @@ -44,6 +44,7 @@ install -m 755 ${srcdir}/rc.preinit \ ${srcdir}/mk-sysimage \ ${srcdir}/mk-initramfs-oneSIS \ + ${srcdir}/mk-isoimage-oneSIS \ ${srcdir}/mk-xcpu-oneSIS \ ${srcdir}/mk-diskful \ ${srcdir}/copy-rootfs \ @@ -77,6 +78,7 @@ rm -rf ${sbindir}/rc.preinit \ ${sbindir}/mk-sysimage \ ${sbindir}/mk-initramfs-oneSIS \ + ${sbindir}/mk-isoimage-oneSIS \ ${sbindir}/mk-xcpu-oneSIS \ ${sbindir}/mk-diskful \ ${sbindir}/sync-node \ Modified: trunk/initramfs-templates/base-svn/init =================================================================== --- trunk/initramfs-templates/base-svn/init 2012-03-13 18:21:45 UTC (rev 507) +++ trunk/initramfs-templates/base-svn/init 2012-04-03 23:23:53 UTC (rev 508) @@ -51,11 +51,25 @@ # Configure loopback interface log ifconfig lo 127.0.0.1 + # load lspci modules + pcimods=`grep "^[[:space:]]*PCIMODS" /etc/initramfs.conf` + if [ -n $pcimods ]; then + log echo oneSIS: Loading pci modules + lspci | egrep -v 'VGA' | awk '{print $1}' | while read device; do + find /sys -name modalias | grep :$device | xargs cat | xargs modprobe 2> /dev/null + done + fi + # Load modules for i in `cat /etc/modules.autoload`; do log modprobe $i; + # need to wait when loading usb-storage before moving along + if [ $i = "usb-storage" ]; then + log echo "Waiting for usb storage devices to detect ..." + sleep 10 + fi done - + # Create device files for all local disks/partitions for device in `echo $(cat /proc/partitions |grep [0-9] |awk '{print $4}')`; do create_disk_device /dev/$device @@ -348,12 +362,25 @@ label=`echo $myroot |grep LABEL=` nfs=`echo $myroot |grep "^[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+:.*"` dir=`echo $myroot |grep "^/"` + img=`echo $myroot |grep "\.img"` if [ -n "$label" ]; then # Mount local root filesystem via disklabel. mount_local_root $label elif [ -n "$dev" ]; then # Mount local root filesystem from specified device. mount_local_root $dev + elif [ -n "$img" ]; then + mkdir -p /.squashfs.media + + # try cd mount, then try to look for a usb device to mount + mount /dev/sr0 /.squashfs.media + if [ $? -ne 0 ]; then + # wait 10 seconds for usb devices to get detected + usbdev=`cat /proc/partitions | awk '{print $4}' | grep sd[a-z]$ | sed -e 's/^/\/dev\//g' | xargs fdisk -l | grep Hidden | awk '{print $1}'` + mount $usbdev /.squashfs.media + fi + + mount_squashfs_root /.squashfs.media/$img elif [ -n "$nfs" -o -n "$dir" ]; then # If rootpath contains no IP, assume the IP of the DHCP server if [ -n "$dir" ]; then @@ -502,6 +529,19 @@ fi } +mount_squashfs_root() { +# Desc: Mounts the root filesystem from a squashfs filename.img +# Input: 1) $ path/to/squashfsimagename.img + local squashfsimage="$1" + mount -n -t squashfs -o ro $1 /mnt + if [ $? -ne 0 ]; then + log echo + log echo "oneSIS: Error! Failed to mount $squashfsimage on /mnt!" + log echo "\*\ \ \*\ \ \* Dropping to a shell..." + /bin/ash 2>&1 + exit 1 + fi +} mount_local_root() { # Desc: Mounts the root filesystem from a local disk. Modified: trunk/initramfs.conf =================================================================== --- trunk/initramfs.conf 2012-03-13 18:21:45 UTC (rev 507) +++ trunk/initramfs.conf 2012-04-03 23:23:53 UTC (rev 508) @@ -29,6 +29,14 @@ ####-----------------------------------------------------------------------#### ####-----------------------------------------------------------------------#### +# PCIMODS +# -- automaticaly add any drivers that map to lspci /sys devices +# suggest adding COPY /lib/modules/$(uname -r) because bacon is good +# +#PCIMODS +####-----------------------------------------------------------------------#### + +####-----------------------------------------------------------------------#### # SCSIMODS # -- Add disk (scsi_hostadapter) modules from modprobe.conf # Modified: trunk/mk-isoimage-oneSIS =================================================================== --- trunk/mk-isoimage-oneSIS 2012-03-13 18:21:45 UTC (rev 507) +++ trunk/mk-isoimage-oneSIS 2012-04-03 23:23:53 UTC (rev 508) @@ -37,9 +37,11 @@ --initramfs_conf=/path/to/initramfs.conf (default /etc/oneSIS/initramfs.conf) +--osimage /path/to/onesisimage --noprompt Do not show a boot prompt when booting --serialport=device The serial port to be used (default ttyS0) --baudrate=rate The serial port baudrate (default 115200) +-v, --verbose Verbose output -d, --dryrun Show changes that would be made without making them -q, --quiet Suppress output @@ -50,17 +52,18 @@ my $initramfs_bin="/sbin/mk-initramfs-oneSIS"; my $kernelversion = undef; my ($kernel, $initimg) = (undef, undef); +my $osimage = undef; my $isoimage = undef; my $mkiso_bin="/usr/bin/mkisofs"; my ($initramfs_conf) = ("/etc/oneSIS/initramfs.conf"); my ($isolinux_bin, $isohybrid_bin) = (undef, "/usr/bin/isohybrid"); -my ($isolinux_cfg, $noprompt, $timeout) = ("isolinux.cfg", 0, 10); +my ($isolinux_cfg, $noprompt, $timeout) = (undef, 0, 10); -my ($serialport, $baudrate) = ("ttyS0", 115200); +my ($serialport, $baudrate) = (undef, 115200); -my ($quiet, $dryrun, $debug, $gotarg) = (undef, undef, undef, 0); +my ($quiet, $dryrun, $debug, $gotarg, $cmd) = (undef, undef, undef, 0, undef); GetOptions("quiet", \$quiet, "staging_dir=s", \$staging_dir, @@ -69,12 +72,13 @@ "isolinux_cfg=s", \$isolinux_cfg, "initramfs_conf=s", \$initramfs_conf, "kernelversion=s", \$kernelversion, + "osimage=s", \$osimage, "serialport=s", \$serialport, "baudrate=i", \$baudrate, "timeout=i", \$timeout, "noprompt", \$noprompt, "dryrun|d", \$dryrun, - "debug", \$debug, + "debug|v|verbose", \$debug, ); # @@ -94,9 +98,9 @@ ##### TODO: add options to mk-initramfs-oneSIS not available in template # die "Cannot find oneSIS mk-initramfs-oneSIS $!" if ! -x $initramfs_bin; -if (!defined $kernelversion ) { +if (!$kernelversion ) { $kernelversion = `uname -r`; chomp $kernelversion; - warn "Warning! No kernel version supplied. Using version $kernelversion\n"; + ($debug || $dryrun) && print "Warning! No kernel version supplied. Using version $kernelversion\n"; } $kernel="/boot/vmlinuz-$kernelversion-generic"; @@ -110,6 +114,7 @@ $isolinux_bin="/usr/lib/syslinux/isolinux.bin" if ! -f $isolinux_bin; die "Cannot find a valid isolinux.bin file" if ! -f $isolinux_bin; +print "Copying isolinux $isolinux_bin and kernel $kernel ...\n"; if (!copy($isolinux_bin, "$staging_dir/isolinux")) { die "Error! Unable to copy $isolinux_bin to $staging_dir/isolinux: $!\n"; } @@ -117,24 +122,20 @@ die "Error! Unable to copy $kernel to $staging_dir/isolinux: $!\n"; } -#open (MKONESISKERNEL, "$initramfs_bin -f -d -nd -rr $staging_dir/oneSIS/initrd-$kernelversion-oneSIS.img $kernelversion|") or die "Failed to create initramfs program for $kernelversion: $!"; -($debug || $dryrun) && print "$initramfs_bin -f --config=$initramfs_conf $staging_dir/isolinux/initrd.img $kernelversion\n"; -my $b=`$initramfs_bin -f --config=$initramfs_conf $staging_dir/isolinux/initrd.img $kernelversion`; -die "Failed to create initrd.img" if ! -f "$staging_dir/isolinux/initrd.img"; - # # create or use the specified isolinux.cfg file # 1) make helpful message to allow noramroot, nodhcp .... nfsroot=.... # 2) should read initramfs.conf from initramfs that was created above when booted # -if (! -f $isolinux_cfg) { - open (ISOLINUXCFG, ">$staging_dir/isolinux/$isolinux_cfg") +if (!$isolinux_cfg) { + print "Creating isolinux configuration ...\n"; + open (ISOLINUXCFG, ">$staging_dir/isolinux/isolinux.cfg") or die "Failed to create isolinux.cfg $!"; # timeout is 10ths of seconds $timeout = $timeout*10; - print ISOLINUXCFG "SERIAL 0 $baudrate\n" if $baudrate; + print ISOLINUXCFG "SERIAL 0 $baudrate\n" if $serialport and $baudrate; print ISOLINUXCFG "PROMPT 1\n" if !$noprompt; print ISOLINUXCFG "TIMEOUT $timeout\n" if $timeout; print ISOLINUXCFG "DEFAULT onesis\n"; @@ -143,7 +144,13 @@ # need basename of kernel and initimg print ISOLINUXCFG " kernel kernel\n"; - print ISOLINUXCFG " append initrd=initrd.img console=tty0 console=$serialport,$baudrate\n"; + print ISOLINUXCFG " append initrd=initrd.img console=tty0 nomodeset"; + print ISOLINUXCFG " console=$serialport,$baudrate" if $serialport; + if ($osimage) { + my $osimagebasename = `basename $osimage`; chomp $osimagebasename; + print ISOLINUXCFG " root=$osimagebasename.img"; + } + print "\n"; close (ISOLINUXCFG); open (ONESISDISPLAYMSF, ">$staging_dir/isolinux/oneSIS.msg") @@ -154,28 +161,57 @@ $timeout = $timeout / 10; print ONESISDISPLAYMSF "Type onesis at the boot prompt or wait $timeout seconds.\n\n"; close (ONESISDISPLAYMSF); -} elsif (!copy($isolinux_cfg, "$staging_dir/isolinux")) { - die "Error! Unable to copy $isolinux_cfg to $staging_dir/isolinux: $!\n"; +} else { + print "Creating isolinux configuration from $isolinux_cfg...\n"; + copy($isolinux_cfg, "$staging_dir/isolinux") or die "Error! Unable to copy $isolinux_cfg to $staging_dir/isolinux: $!\n"; } +#my $cdmodules = "-m sr_mod -m ata_generic -m ata_piix"; +#my $netmodules = "-m e1000 -m ne2k_pci -m pcnet -m 8139too -m 8139cp -m virtio"; +#my $hostnetmodules= qx(grep '[0-9]: eth[0-9]: ' /var/log/dmesg | awk '{print \$1}' | uniq | sed -e 's/^/-m /g' | xargs echo) or die "Cannot find system ethernet modules: $!"; + +my $ramroot = ""; +$ramroot = "-rr" if !$osimage; + +print "Creating initramfs ...\n"; +$cmd = qx($initramfs_bin --config=$initramfs_conf $staging_dir/isolinux/initrd.img $kernelversion -f $ramroot -nd -nn -nm -rc /lib/modules/$kernelversion -m sr_mod -m sd_mod -m usb-storage) or die "[ FAIL ]: $!"; +die "Failed to create initrd.img" if ! -f "$staging_dir/isolinux/initrd.img"; + # +# if $osimage is a directory, create a squashfs image from it for the CD +# +if ( $osimage ) { + die "$osimage is not a directory $!" if ! -d $osimage; + my $osimagebasename = `basename $osimage`; + chomp $osimagebasename; + print "Creating squashfs $osimagebasename.img from $osimage ...\n"; + ($debug || $dryrun) && print "/sbin/mksquashfs $osimage $staging_dir/$osimagebasename.img\n"; + #open (MKSQUASHFS, "/sbin/mksquashfs $osimage $staging_dir/$osimagebasename.img|") or die "Failed to create squashfs image from $osimage $!"; + #close MKSQUASHFS; + $cmd=`/sbin/mksquashfs $osimage $staging_dir/$osimagebasename.img`; + die "Failed to create squashfs image for $osimage" if ! -f "$staging_dir/$osimagebasename.img"; +} + +# # run the following to create iso image -# mkisofs -o <isoimage> \ +# mkisofs -R -J -o <isoimage> \ # -b isolinux/isolinux.bin -c isolinux/boot.cat \ # -no-emul-boot -boot-load-size 4 -boot-info-table \ # <root-of-iso-tree> # +print "Creating iso image /tmp/oneSIS-$kernelversion.iso ...\n"; $isoimage="/tmp/oneSIS-$kernelversion.iso"; die "$mkiso_bin is not defined: $!" if !$mkiso_bin; chdir ($staging_dir); -open (MKISOIMAGE, "$mkiso_bin -f -o $isoimage -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table $staging_dir|") or die "Failed to create isoimage $isoimage: $!"; -close (MKISOIMAGE); +$cmd = qx($mkiso_bin -quiet -R -J -f -o $isoimage -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table $staging_dir); +$cmd = qx(file $isoimage | grep bootable) or die "$mkiso_bin -R -J -f -o $isoimage -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table $staging_dir [ FAIL ]: $!"; # # ensure the iso can be used for usb purposes as well too # -warn "Cannot find a valid isohybrid file" if ! -x $isohybrid_bin; -open (ISOHYBRIDIZE, "$isohybrid_bin $isoimage|") or die "Failed to hybridize $isoimage using $isohybrid_bin: $!"; -close (ISOHYBRIDIZE); +die "Cannot find a valid isohybrid file" if ! -x $isohybrid_bin; +print "Hyrbridizing iso image (e.g. run dd if=/tmp/oneSIS-$kernelversion.iso of=/dev/USBDRIVE) ...\n"; +open(ISOHYBRID, "$isohybrid_bin $isoimage|") or die "$isohybrid_bin $isoimage [ FAIL ]: $!"; +close ISOHYBRID; print "oneSIS: iso image is in $isoimage\n"; Modified: trunk/oneSIS.pm/lib/oneSIS.pm =================================================================== --- trunk/oneSIS.pm/lib/oneSIS.pm 2012-03-13 18:21:45 UTC (rev 507) +++ trunk/oneSIS.pm/lib/oneSIS.pm 2012-04-03 23:23:53 UTC (rev 508) @@ -1108,6 +1108,11 @@ $config->nomodprobe(1); $config->add_directive($line); } + elsif ($line =~ /^[\s\t]*PCIMODS + $/x) { + $config->pcimods(1); + $config->add_directive($line); + } elsif ($line =~ /^[\s\t]*SCSIMODS $/x) { $config->scsimods(1); @@ -7339,6 +7344,17 @@ return $self->{NOMODPROBE}; } +# ramfs_config->pcimods() method +sub pcimods { +# Desc: Gets or sets the pcimods flag +# Input: 1) $ I? Optional pcimods flag +# The data is set to the value of the argument, if given. +# Returns: $ pcimods flag + my $self = shift; + if (@_) { $self->{PCIMODS} = shift; } + return $self->{PCIMODS}; +} + # ramfs_config->scsimods() method sub scsimods { # Desc: Gets or sets the scsimods flag @@ -12709,6 +12725,34 @@ B<---------------------------------------------------------------------> +B<oneSIS::ramfs_config-E<gt>pcimods($pcimods);> + +B<Description:> Gets or sets the pcimods flag + +=over + +=item B<Parameters:> + +=over + +=item $pcimods I? Optional pcimods flag The data is set to the + +=item --------- value of the argument, if given. + +=back + +=item B<Return Values:> + +=over + +=item $ pcimods flag + +=back + +=back + +B<---------------------------------------------------------------------> + B<oneSIS::ramfs_config-E<gt>scsimods($scsimods);> B<Description:> Gets or sets the scsimods flag This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: Josh E. <jj...@gm...> - 2012-03-16 16:32:51
|
No, but you can get it by running bbconfig in the ramfs image: chroot initramfs-templates/x86-uclibc-svn bbconfig -JE On Fri, Mar 16, 2012 at 8:39 AM, Christopher Maestas <cdm...@gm...>wrote: > Is the busybox config we use in svn somewhere? > > > > ------------------------------------------------------------------------------ > This SF email is sponsosred by: > Try Windows Azure free for 90 days Click Here > http://p.sf.net/sfu/sfd2d-msazure > _______________________________________________ > oneSIS-devel mailing list > one...@li... > https://lists.sourceforge.net/lists/listinfo/onesis-devel > > |
From: Christopher M. <cdm...@gm...> - 2012-03-16 16:02:06
|
Is the busybox config we use in svn somewhere? |