]> oss.titaniummirror.com Git - oss-web.git/commitdiff
Add in our OSS website page content.
authorR. Steve McKown <rsmckown@gmail.com>
Tue, 15 Dec 2009 20:01:14 +0000 (13:01 -0700)
committerR. Steve McKown <rsmckown@gmail.com>
Wed, 16 Dec 2009 01:55:13 +0000 (18:55 -0700)
15 files changed:
in/aptrepo.md [new file with mode: 0644]
in/cp210x.md [new file with mode: 0644]
in/firmware.md [new file with mode: 0644]
in/git-utils.md [new file with mode: 0644]
in/index.md
in/msp430.md [new file with mode: 0644]
in/oss-web.md [new file with mode: 0644]
in/ovzbpc.md [new file with mode: 0644]
in/style/default.tmpl
in/style/sitemap.tmpl
in/tinyos.md [new file with mode: 0644]
in/tinyospkgs.md [new file with mode: 0644]
in/tmicore.md [new file with mode: 0644]
in/webber.conf
in/webber.md [new file with mode: 0644]

diff --git a/in/aptrepo.md b/in/aptrepo.md
new file mode 100644 (file)
index 0000000..95f905b
--- /dev/null
@@ -0,0 +1,57 @@
+title: APT Repository
+linktitle: aptrepo
+parent: TOP
+ctime: 2009-12-10
+
+Repositories: [[aptrepo]].
+
+# Introduction
+
+TMI maintains an APT repository containing some of the code available from this
+website.  We use this repository in-house, and it is fairly well tested on 32
+and 64 bit Intel and AMD based workstations running Ubuntu Hardy and Ubuntu
+Karmic.
+
+# How to use
+
+## Step 1 - Add the backports repository
+
+Ubuntu Hardy users need to activate the hardy-backports repository to use our
+`cp210x-module-dkms` package.  Ubuntu Karmic users can skip this step.  Note,
+you can also activate hardy-backports from the GUI.
+
+    sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
+    cat <<+EOF+ | sudo tee -a /etc/apt/sources.list
+    deb http://us.archive.ubuntu.com/ubuntu hardy-backports main restricted universe multiverse
+    +EOF+
+
+## Step 2 - Adding the TMI repository to sources.list.d
+
+    cat <<+EOF+ | sudo tee /etc/apt/sources.list.d/tmi.list
+    # TMI repository
+    deb http://repo.titaniummirror.com/ubuntu hardy main
+    deb-src http://repo.titaniummirror.com/ubuntu hardy main
+    +EOF+
+    sudo apt-get update
+
+## Step 2 - Adding the TMI package key
+
+When you issued `apt-get update` above, you saw a key warning.  We solve this
+by installing a package from the TMI repository that contains our packaging
+key.
+
+    sudo apt-get install --yes --allow-unauthenticated tmi-keyring
+
+You should now verify the installed key.  Run the `sudo apt-key list | less`
+and look for the following two lines, ensuring your output matches that below:
+
+    pub   1024D/E9BE0373 2009-12-08
+    uid                  TMI Packages <pkgs@titaniummirror.com>
+
+## Step 3 - Install packages
+
+You can now install packages from the TMI repository.  For example:
+
+* Install our [[cp210x]] driver: `sudo apt-get install cp210x-module-dkms`
+
+* Install our [[tinyos]] development suite: `sudo apt-get install tinyos`
diff --git a/in/cp210x.md b/in/cp210x.md
new file mode 100644 (file)
index 0000000..e3ac958
--- /dev/null
@@ -0,0 +1,32 @@
+title: CP210X
+linktitle: cp210x
+parent: TOP
+ctime: 2009-12-10
+
+Repositories: [cp210x](http://repo/gitweb/?p=cp210x.git;a=summary), [[aptrepo]].
+
+# A USB to UART chip
+
+[Silicon Labs](http://www.silabs.com) sells a single-chip USB to UART bridge,
+the [cp210x](http://www.silabs.com/products/interface/usbtouart/Pages/default.aspx).
+For windows platforms, Silicon Labs offers manufacturing support, in the form
+of a DLL and a small utility, to set the various USB descriptor fields, port
+configurations, etc.  They also offer a DLL and example programs showing how
+to manipulate the GPIO pins available on the cp2103 part.
+
+With approval from Silicon Labs, TMI has modified their reference Linux driver
+to support all of the features their Windows DLLs and utilities provide.  This
+is accomplished via extended ioctl() calls from the kernel cp210x driver, and
+various utilities and sample code.  This code is really invaluable for those
+working on hardware device designs using the cp2103.  The code is released
+under the GPLv2.
+
+TMI sent the modified code back to Silicon Labs, who supposedly had someone
+in-house (or contracted) who regularly works with the maintainer of the cp210x
+(formerly cp2101) driver in the mainline Linux kernel.  That was over a year
+ago, and the code hasn't shown up.  We will be working with the maintainer
+directly to get this code available.  In the mean time, it is available
+[as source](http://repo/gitweb/?p=cp210x.git;a=summary) and from our
+[[aptrepo]].  The `cp210x-module-dkms` package in the APT repository has been
+tested on Ubuntu Hardy and Karmic systems with both 32 and 64 bit x86
+(Intel/AMD) processors.
diff --git a/in/firmware.md b/in/firmware.md
new file mode 100644 (file)
index 0000000..fcc13b0
--- /dev/null
@@ -0,0 +1,14 @@
+title: Router Firmware
+linktitle: firmware
+parent: TOP
+ctime: 2006-02-13
+
+Tarball: [gpl](http://www.titaniummirror.com/gpl).
+
+TMI has developed a fault tolerant internetworking platform composed of a set
+of proprietary cluster, event and web management applications running atop a
+GNU/Linux open source platform core.  Essentially, the core represents a
+customized Linux distribution geared specifically for network appliances. TMI's
+proprietary code does not link with any GPL components of the core.  Some
+minor changes have been made to the core components.  Those changes are
+available [here](http://www.titaniummirror.com/gpl).
diff --git a/in/git-utils.md b/in/git-utils.md
new file mode 100644 (file)
index 0000000..31e8f22
--- /dev/null
@@ -0,0 +1,27 @@
+title: GIT Utilities
+linktitle: git-utils
+parent: TOP
+ctime: 2009-12-10
+
+Repositories: [git-utils](TBD).
+
+# GIT
+
+Read about [GIT](http://git-scm.com) here.
+
+# Utilities
+
+Over time, TMI is starting to collect a number of small utilities for git.
+These are available from our [git-utils](TBD) repository.  Each utility has
+a man page describing its operation, so we'll only highlight the basics here.
+
+* git-empty-branch.  Create an empty branch in a local git repository.
+
+* git-local.  Store local branches temporarily in a shared git repository,
+  probably hosted on a server used by the local development team.  git-local
+  offers upload, download, remove and list operations.
+
+* git-publish-branch.  A shell version of a ruby script created by William
+  Morgan.  See his [git utilities page](http://git-wt-commit.rubyforge.org).
+  This has been a locally popular utility, and we did not want to see ruby
+  effectively become yet another pre-requisite for git.
index 6bc179a62c5fa0c95cd66572cc120a7546556bec..a4e999e3c22d8ac101807144a7cc662126e513d6 100644 (file)
@@ -1,21 +1,21 @@
-title: Webber
-ctime: 2009-06-24
+title: Our OSS Projects
+linktitle: TOP
+ctime: 2009-12-15
 
-* [[overview]]
-* [[pageformat]]
-* [[configuration]]
- * [[commandline]]
- * [[inheritance]]
-* [[plugins]]
- * [[read_rst]]
- * [[read_markdown]]
- * [[read_html]]
- * [[read_copyonly]] (e.g. images)
- * [[link]]
- * [[hierarchy]]
- * [[template_mako]]
- * [[skeleton]]
-* [[hooks]]
-* [[functions]]
-* [[macros]]
-* [[templates]]
+# Introduction
+
+[Titanium Mirror, Inc.](http://www.titaniummirror.com) (TMI) is a successful
+small business in part because we have can leverage the development work of
+other talented professionals who have opted to release the product of their
+labors as Open Source Software (OSS).  Over time, we have made our own changes
+to support our business and customers.  We publish our work to this website in
+case others find our contributions useful.
+
+Of course, we make an effort to contribute patches to the relevant upstream
+maintainers.  But it takes time for patches to migrate upstream, and there is
+no guarantee that something we find useful is general enough to be incorporated
+into an upstream project.  For these reasons, we publish this website.
+
+# The Projects
+
+Select a project to browse from the Navigation panel on the left.
diff --git a/in/msp430.md b/in/msp430.md
new file mode 100644 (file)
index 0000000..d342112
--- /dev/null
@@ -0,0 +1,18 @@
+title: MSP430
+linktitle: msp430
+parent: TOP
+ctime: 2008-01-03
+
+Repositories:
+[msp430-binutils](http://repo/gitweb/?p=msp430-binutils.git;a=summary),
+[msp430-gcc](http://repo/gitweb/?p=msp430-gcc.git;a=summary),
+[msp430-libc](http://repo/gitweb/?p=msp430-libc.git;a=summary),
+[[aptrepo]].
+
+TMI maintains an msp430 toolchain, including [[Ubuntu packages|aptrepo]], which
+work with newer members of the msp430 family, such as the popular
+MSP430F2618 part and is properly patched for use in
+[[TinyOS]] development.  The official TinyOS distribution
+provides an older msp430 toolchain that does not support some of the newer
+msp430 parts.  The msp430 toolchain is composed of: binutils, gnu compiler,
+and libc.
diff --git a/in/oss-web.md b/in/oss-web.md
new file mode 100644 (file)
index 0000000..6b4da20
--- /dev/null
@@ -0,0 +1,9 @@
+title: OSS Website Code
+linktitle: oss-web
+parent: TOP
+ctime: 2009-12-15
+
+Repositories: [oss-web](http://repo/gitweb/?p=oss-web.git;a=summary).
+
+This website is statically generated using [[Webber]] from the source code
+link above.
diff --git a/in/ovzbpc.md b/in/ovzbpc.md
new file mode 100644 (file)
index 0000000..abfc7c1
--- /dev/null
@@ -0,0 +1,108 @@
+title: OpenVZ + BackupPC
+linktitle: ovzbpc
+parent: TOP
+ctime: 2008-06-09
+
+Repositories: [backuppc](http://repo/gitweb/?p=backuppc.git;a=tree),
+[ovz](http://repo/gitweb/?p=ovz.git;a=tree),
+[esata](http://repo/gitweb/?p=esata.git;a=tree).
+
+# OpenVZ
+
+TMI hosts its compute resources on DELL PE1800 servers configured as a cluster
+of [OpenVZ](http://www.openvz.org) Hardware Nodes (HN's), which host multiple
+OpenVZ Virtual Environments (VE's).  Open VZ VE's are virtual machines
+virtualized at the operating system.  The downside is that all VE's must be
+Linux instances capable of running on the OpenVZ kernel.  The upside is that
+far more OS virtualized instances can reside on a given set of hardware
+compared to virtualizers like VMWare and Xen, which (para-)virtualize hardware.
+
+# BackupPC
+
+TMI uses [BackupPC](http://backuppc.sourceforge.net) for backup services across
+our company, including notebooks, workstations and servers (OpenVZ VE's).  We
+are especially happy with BackupPC and how it is integrated into our server
+environment.  Each HN is backed up as a separate host, but none of the data
+for any VE's it may be hosting.  Each VE is also backed up, each as a separate
+host.  Our HN's use LVM, and our add-on scripts allow for backup of any VE with
+minimal downtime.  The scripts actually shut down the VE, create a snapshot of
+the HN volume on which the VE's filesystem is stored, restarts the VE,
+completes the over-the-net BackupPC backup operation, then removes the snapshot.
+By shutting down the VE, we ensure the integrity of the backup without
+requiring application specific tools like database hotcopy scripts.  By using
+LVM, the VE downtime is typically less than 90 seconds.  We backup every system
+every evening.
+
+# Off-site backups
+
+BackupPC maintains an on-disk archive of de-duplicated backups for all hosts.
+We maintain off-site backups by cloning the BackupPC archive to removable
+eSATA disks.  For fastest recovery, we run BackupPC in a VE within our
+server infrastructure, so what we clone to an external disk is the entire
+BackupPC VE filesystem.  We also keep a second partition on each removable
+disk, which contains, essentially, our HN operating system.  eSATA connections
+make this backup operation very fast.  And because a human must connect an
+external drive prior to the backup, that person can also provide the necessary
+key that allows the external drive filesystems to be cryptographically secure.
+We clone the BackupPC archive once per week, and rotate several external
+drives through the off-site location.
+# Recovery
+
+A word about recovery: great.  This combination of technologies allows the
+recovery of any system, directory, or file stored within the BackupPC archive
+over the network.  The data need not be recovered to the same machine from
+which it was backed up, nor does it need to be placed in the same directory.
+Restore operations are done via a web interface, and the interface does not
+have to be accessed from the machine to which the data are to be restored.
+
+Disaster recovery is also a big plus.  The entire TMI infrastructure can be
+reconstructed onto new hardware from just one off-site archive drive.
+
+# TMI code
+
+TMI maintains a number of code repositories containing scripts, etc. for
+integrating OpenVZ and BackupPC.  Please be aware that these are formulated
+somewhat specifically for our environment.  But if you have a similar setup,
+they should be usable with minimal massaging.  Someday, someone here will take
+the time to merge this stuff into a single repo and document it better.
+
+# BackupPC scripts
+
+The [BackupPC scripts repository](http://repo/gitweb/?p=backuppc.git;a=tree)
+includes:
+
+* BackupPC_ovz.  Installed on an HN, it allows BackupPC to backup from and
+  restore to any VE hosted on any HN in the cluster.  When VE's are migrated
+  between HN's, the backup configuration does not need to change.
+
+* Holger Parplies' BackupPC_verifyPool.
+
+* See the [README](http://repo/gitweb/?p=backuppc.git;a=blob;f=README;hb=HEAD)
+  in the repository for more information.
+
+# OpenVZ scripts
+
+The [OpenVZ scripts repository](http://repo/gitweb/?p=ovz.git;a=tree)
+includes:
+
+* bpcdump.  Similar in concept to vzdump.  Although fairly general in nature,
+  we use it only for backing up the BackupPC VE, whose filesystem is on a
+  private LVM LV (logical volume), to an eSATA drive.
+
+* bpcbackup.  A script that runs from crontab on one or more HN's to launch
+  the bpcdump program.  Since all our HN's are configured the same, each has
+  an eSATA port and can be used to perform a backup of the BackupPC VE.
+
+* See the [README.recover](http://repo/gitweb/?p=ovz.git;a=blob;f=README.recover;hb=HEAD)
+  file for mroe information.
+
+# eSATA scripts
+
+The [eSATA scripts repository](http://repo/gitweb/?p=esata.git;a=tree)
+contains the esata script, which wraps the `scsiadd` utility for properly
+handling esternal drives on the Dell PE1800 and PE1900 platforms.  Newer
+hardware and better Linux kernel support should someday make scripts like this
+unnecessary.  See the included
+[README](http://repo/gitweb/?p=esata.git;a=blob;f=README;hb=HEAD) file for
+more information.
index 298e24f6435b18868751021cc5c72afd37df3c98..aa2f691d774ad0c6f86d9594eae285c73ce9b3a5 100644 (file)
@@ -79,7 +79,7 @@ ${self.contents()}
 <div class="articleListing">
 <h2>Navigation</h2>
 <ul class="directory">
-% for level, part_of_path, current, page, link in get_sidemenu('Webber'):
+% for level, part_of_path, current, page, link in get_sidemenu('TOP'):
 %    if current:
 <li class="active sidebar${level}">
 %    else:
index 3d1927401893d81c3f72033d82d148f08270a686..e60cfbfa5268085e2731dfa759d36c47b22b2743 100644 (file)
@@ -3,7 +3,7 @@
 <%def name="contents()">\
 ${body}
 <%
-  site = get_sitemap("Webber", True)
+  site = get_sitemap("TOP", True)
 %>
 <ul>
 % for level, page, link in site:
diff --git a/in/tinyos.md b/in/tinyos.md
new file mode 100644 (file)
index 0000000..1046095
--- /dev/null
@@ -0,0 +1,22 @@
+title: TinyOS
+linktitle: tinyos
+parent: TOP
+ctime: 2009-12-07
+
+Repositories: [tinyos](http://repo/gitweb/?p=tmi/tinyos-2.x.git;a=summary),
+[[aptrepo]].
+
+TMI uses [TinyOS](http://www.tinyos.net) for various data acquisition
+applications, and we maintain a modified tree that supports certain features
+not available in the official tree.  We maintain a
+[repository](http://repo/gitweb/?p=tmi/tinyos-2.x.git;a=summary) containing
+our TinyOS tree, in which we also maintain a cogent patchset against the
+official tree.
+
+* Current patchset tag: patchset/2.1.0-3
+* Build from official release tag: tinyos/2.1.0
+* View the patchset [here](http://repo/gitweb/?p=tmi/tinyos-2.x.git;a=shortlog;h=refs/tags/patchset/2.1.0-3).
+
+Our TinyOS requires a newer [[msp430]] toolchain.  A complete TinyOS
+development environment including a newer toolchain is available for
+installation from our [[APT repository|aptrepo]].
diff --git a/in/tinyospkgs.md b/in/tinyospkgs.md
new file mode 100644 (file)
index 0000000..b24ef4b
--- /dev/null
@@ -0,0 +1,102 @@
+title: TinyOS Packages
+linktitle: tinyospkgs
+parent: aptrepo
+ctime: 2009-12-10
+
+Repositories: [tinyos](http://repo/gitweb/?p=tmi/tinyos-2.x.git;a=summary),
+[[aptrepo]].
+
+## Package versioning
+
+The TinyOS packages are built from the TMI
+[TinyOS repository](http://repo/gitweb/?p=tmi/tinyos-2.x.git;a=summary).  The
+package version number is of the form `tosver-tmiver`, where `tosver` is the
+official TinyOS release version on which the code is based, and `tmiver` is the
+version of the modifications applied by TMI.
+
+These version numbers are present in the
+[repository](http://repo/gitweb/?p=tmi/tinyos-2.x.git;a=summary) in the form
+of release and patchset tags.  For example, the code from which package version
+`2.1.0-3` is built is tagged `release/2.1.0-3`.  This code is based on the
+upstream version `2.1.0`, which is tagged in the repository as `tinyos/2.1.0`.
+A clean patchset is tagged `patchset/2.1.0-3`, where the commits between these
+two tags represent a clean set of patches that apply the TMI modifications to
+the upstream version.
+
+## Git/CVS issues
+
+Because CVS and git tags are fundamentally incompatible, we cannot guarantee
+that a git repo using `git-cvs` and tracking the upstream CVS repository will
+result in the exact same checkout tree state at each tag.  We resolve this
+issue as follows:
+
+* TMI tracks the upstream CVS in a git mirror repository updated periodically
+  via a script using `git-cvsimport`.
+  
+* When TMI wants to rebase its local modifications on a newer version of
+  upstream TinyOS, it pulls changes in from this mirror git repo into the
+  [TMI TinyOS repository](http://repo/gitweb/?p=tmi/tinyos-2.x.git;a=summary)
+  onto the `upstream` branch.  Release tags, such as `release_tinyos_2_1_0_0`
+  from CVS are also pulled.
+
+* In git, a new release branch is created at the release tag.  In this example,
+  release tag `release_tinyos_2_1_0_0` is the branch point for the new branch
+  `release/2.1.0`.
+
+* The tag `tinyos/2.1.0` is the tag of git tree along the `release/2.1.0`
+  branch where the checkout of git at `tinyos/2.1.0` exactly matches the
+  checkout of upstream CVS at `release_tinyos_2_1_0_0`.
+
+** If the git and CVS tags checkout trees that match at tag
+  `release_tinyos_2_1_0_0`, then `tinyos/2.1.0` tags that same commit.
+
+** If the git and CVS checkouts diverge, then the first commit along the new
+   `release/2.1.0` branch contains the changes necessary to sync git with CVS
+   at the release tag.  This is accomplished by using `git_load_dirs`.  This
+   new commit to the release branch is tagged `tinyos/2.1.0`.
+
+## Multiple source trees
+
+TMI TinyOS packages allow for the installation of multiple TinyOS source trees.
+This allows us to maintain older programs built against older versions of
+TinyOS while simultaneously working on new applications.  It also allows us to
+compile code against the official TinyOS releases in addition to the TMI
+enhanced releases.
+
+This is accomplished by altering how TinyOS source is installed.  The standard
+convention is for the TinyOS source tree to be installed on a development
+workstation at `/opt/tinyos-2.x`.  The TMI packages install the source trees
+at `/opt/tinyos/VER`.  For example, the official TinyOS 2.0.2.2 source tree
+would install at `/opt/tinyos/2.0.2.2`, and the TMI enhanced TinyOS 2.1.0-3
+tree installs at `/opt/tinyos/2.1.0-3`.  A sourceable script,
+`/opt/tinyos/tinyos.sh`, is used to set which source tree is used by the
+TinyOS development tools and build system.  The script is also sourced in
+the user's profile to provide persistence of settings across logins and reboots.
+
+Each TinyOS source tree has its own package.  Here are the currently available
+trees as of this writing:
+
+    $ sudo apt-cache search tinyos-source
+    tinyos-source - TinyOS source meta package
+    tinyos-source-2.0.1 - TinyOS source code tree
+    tinyos-source-2.0.2.2 - TinyOS source code tree
+    tinyos-source-2.1.0 - TinyOS source code tree
+    tinyos-source-2.1.0-3 - TinyOS source code tree
+
+At least one tree must be installed, and the latest tree is installed each time
+the tinyos packages are installed or upgraded.  However, the developer may
+keep multiple trees installed if necessary.  The APT package upgrade
+mechanisms work properly.
+
+## Installing TinyOS
+
+To install TinyOS, perform the steps above to configure the TMI repository on
+the workstation, then type:
+
+    sudo apt-get install tinyos
+
+By default, the latest TinyOS source tree, with TMI enhancements, and the TMI
+[[msp430]] toolchain are installed.  At this point, additional tinyos source
+trees may be installed as required.  For example:
+
+    sudo apt-get install tinyos-source-2.1.0
diff --git a/in/tmicore.md b/in/tmicore.md
new file mode 100644 (file)
index 0000000..cadbaa5
--- /dev/null
@@ -0,0 +1,16 @@
+title: TMIcore
+linktitle: tmicore
+parent: TOP
+ctime: 2009-12-02
+
+Repositories: [tmicore](TBD).
+
+TMI has developed an [[msp430]] target board for low power data acquisition.
+Its design is not complete yet, but it is (SOON) available under an open
+source license.  The design was created using [Eagle](http://www.cadsoft.de).
+
+We call our target board TMIcore.  In actuality, the board shown in the design
+is the TMIrws board, which contains at its core the TMIcore design.  The PCB
+design shows where it can be 'cut' to build a stand-alone TMIcore board.
+The full TMIrws board is the heart of a solar powered remote weather station
+that reports its observations to an internet server via the cellular network.
index 4fb923afac3484802bedfff157dc9d974e91c316..f97ec64ca68a1bec14094dcb833d34000b7d0b28 100644 (file)
@@ -1,5 +1,5 @@
 template: default
-subtitle: "Webber"
+subtitle: "OSS"
 main_url: "www.holgerschurig.de/projects/webber"
 date_format: "%Y-%m-%d %H:%M:%S"
 input_encoding: "iso-8859-1"
diff --git a/in/webber.md b/in/webber.md
new file mode 100644 (file)
index 0000000..3269915
--- /dev/null
@@ -0,0 +1,12 @@
+title: Webber
+linktitle: webber
+parent: TOP
+ctime: 2009-12-15
+
+Repositories: [webber](http://repo/gitweb/?p=webber.git;a=summary).
+
+[Webber](http://gitorious.org/webber) is a great static website generator
+written in Python by
+[Holger Schurig](http://www.holgerschurig.de/projects/webber/).  We maintain
+a [local copy](http://repo/gitweb/?p=webber.git;a=summary) of his repository
+with a few changes.  This website is built using webber; see [[oss-web]].