From 81ad0c3feb0199a1119c95c9a9a50b23d8ce34cb Mon Sep 17 00:00:00 2001 From: "R. Steve McKown" Date: Mon, 9 Jul 2012 13:07:00 -0600 Subject: [PATCH] Ubuntu 12.04, 4.5 updates, etc --- in/aptrepo.md | 138 +++++++++++++++++++++++++++++++++-------------- in/cp210x.md | 44 +++++++++------ in/git-utils.md | 26 ++++++--- in/msp430.md | 14 +++-- in/news.md | 8 +++ in/tinyos.md | 22 ++++---- in/tinyospkgs.md | 36 ++++++++----- 7 files changed, 196 insertions(+), 92 deletions(-) diff --git a/in/aptrepo.md b/in/aptrepo.md index 2e808d9..9e6302d 100644 --- a/in/aptrepo.md +++ b/in/aptrepo.md @@ -11,45 +11,103 @@ 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 8.04 (Hardy Heron), Ubuntu 9.10 (Karmic Koala), Ubuntu 10.04 LTS (Lucid Lynx), Ubuntu 10.10 -(Maverick Meerkat) and Ubuntu 11.04 (Natty Narwhal). Support for Ubuntu 12.04 -(Precise Pangolin) is in progress. +(Maverick Meerkat), Ubuntu 11.04 (Natty Narwhal), and Ubuntu 12.04 (Precise +Pangolin). Ubuntu derivatives, like Xubuntu (used at TMI), should work fine. -TMI actively uses this software stack for internal and customer development, but -does not at this time offer support. We will do our best to answer questions; -please use the e-mail address in the top-right corner of this web page. Look -for future deployment of these packages via PPA on Ubuntu Launchpad. +32-bit and 64-bit architectures are supported for all distributions except for +Ubuntu 12.04. Packages for 12.04 are only currently being built for the 32-bit +architecture. However, the [[cp210x]] driver package is distributed as a dkms +package that is compiled during installation and so does support 64-bit. + +TMI can provide support for this repository and TinyOS software development. +Please use the e-mail address in the top-right corner of this web page to ask +for more information about our services. + +TMI is currently using 12.04 32-bit internally for development. Support for +older distributions remains in the repository, but will no longer receive +updates. We will attempt to answer basic questions; please use the e-mail +address in the top right corner of this web page. TMI can be engaged for a host +of development and development support tasks. # Package inventory -Contents of the APT repostory, as of 2009-05-06 - - cp210x-module-dkms-0.11.3-5tmi - deputy-tinyos-1.1-2tmi - msp430-binutils-2.20-1tmi - msp430-gcc-4.4.3-1tmi - msp430-gdb-7.0.1-1tmi - msp430-libc-0.1~20100207-1tmi - nesc-1.3.2-1tmi - tinyos-2.1.1-4.4-1tmi - tinyos-avr-2.1.1-4.4-1tmi - tinyos-msp430-2.1.1-4.4-1tmi - tinyos-source-2.1.1-4.4-1tmi - tinyos-source-2.0.1-2.0.1-2tmi - tinyos-source-2.0.2.2-2.0.2.2-2tmi - tinyos-source-2.1.0-2.1.0-2tmi - tinyos-source-2.1.0-3-2.1.0-3-2tmi - tinyos-source-2.1.0-4-2.1.0-4-2tmi - tinyos-source-2.1.0-4.1-2.1.0-4.1-1tmi - tinyos-source-2.1.0-4.2-2.1.0-4.2-1tmi - tinyos-source-2.1.1-4.3-2.1.1-4.3-1tmi - tinyos-source-2.1.1-4.4-2.1.1-4.4-1tmi - tinyos-tools-2.1.1-4.4-1tmi - tmi-keyring-1.0-1tmi - topgit-0.8-2 +## Ubuntu Precise + +TMI is using Xubuntu 12.04 internally on its development workstations. As such, +the ubuntu-precise repository is the same as used internally. This repository +is just fine for most any Ubuntu derivative distribution, but only supports +32-bit versions. + +Contents of the APT repostory, as of 2012-07-09, for Ubuntu 12.04. Since the +standard Ubuntu repositories now include an recent GCC 4.5.3 msp430 cross +toolchain, the one built by TMI is no longer necessary or maintained. Note that +as of 2012-06-15 the gdb-msp430 apt package has an installation error, which is +likely to be fixed soon. tinyos-msp430 is a TMI meta package that incorporates +installation of the msp430 cross toolchain packages from the standard +repositories, but for the reason noted above the gdb-msp430 package, and by +extension the mspdebug package, is not automatically installed. + + cp210x-module-dkms_0.11.3-7tmi + deputy-tinyos_1.1-2tmi + doxygen-gui_1.7.6.1-2 + doxygen_1.7.6.1-2 + doxygen-latex_1.7.6.1-2 + doxygen-doc_1.7.6.1-2 + nesc_1.3.2-3tmi_i386.deb + tinyos_2.1.1-4.5-1tmi + tinyos-avr_2.1.1-4.5-1tmi + tinyos-msp430_2.1.1-4.5-1tmi + tinyos-source_2.1.1-4.5-1tmi + tinyos-source-2.1.1-4.5_2.1.1-4.5-1tmi + tinyos-source-2.1.1-4.4_2.1.1-4.4-6tmi + tinyos-source-2.1.1-4.3_2.1.1-4.3-1tmi + tinyos-source-2.1.0-4.2_2.1.0-4.2-1tmi + tinyos-source-2.1.0-4.1_2.1.0-4.1-1tmi + tinyos-source-2.1.0-3_2.1.0-3-2tmi + tinyos-source-2.1.0_2.1.0-2tmi + tinyos-source-2.0.2.2_2.0.2.2-2tmi + tinyos-tools_2.1.1-4.5-1tmi + tmi-keyring_1.0-1tmi + topgit_0.8-2 + +## Ubuntu Hardy + +Contents of the APT repostory, as of 2012-02-15, for Ubuntu 8.04 through 11.04. +This respository is retained for historical purposes and is no longer being +maintained by TMI. This repository includes a custom built msp430 cross +toolchain, in both 32-bit and 64-bit versions. + + cp210x-module-dkms_0.11.3-5tmi + deputy-tinyos_1.1-2tmi + doxygen-gui_1.7.6.1-2 + doxygen_1.7.6.1-2 + doxygen-latex_1.7.6.1-2 + doxygen-doc_1.7.6.1-2 + msp430-libc_0.1~20100207-1tmi + msp430-gdb_7.0.1-1tmi + msp430-gcc_4.4.3-1tmi + msp430-binutils_2.20-1tmi + nesc_1.3.2-1tmi + tinyos_2.1.1-4.4-1tmi + tinyos-avr_2.1.1-4.4-1tmi + tinyos-msp430_2.1.1-4.4-1tmi + tinyos-source_2.1.1-4.4-1tmi + tinyos-source-2.1.1-4.4_2.1.1-4.4-1tmi + tinyos-source-2.1.1-4.3_2.1.1-4.3-1tmi + tinyos-source-2.1.0-4.2_2.1.0-4.2-1tmi + tinyos-source-2.1.0-4_2.1.0-4-2tmi + tinyos-source-2.1.0-4.1_2.1.0-4.1-1tmi + tinyos-source-2.1.0-3_2.1.0-3-2tmi + tinyos-source-2.1.0_2.1.0-2tmi + tinyos-source-2.0.2.2_2.0.2.2-2tmi + tinyos-source-2.0.1_2.0.1-2tmi + tinyos-tools_2.1.1-4.4-1tmi + tmi-keyring_1.0-1tmi + topgit_0.8-2 # How to use -## Step 1 - Add the backports repository +## Step 1 - Add the backports repository (Ubuntu Hardy only) Ubuntu Hardy users need to activate the hardy-backports repository, as our `cp210x-module-dkms` package requires a newer `dkms` than is available @@ -63,10 +121,6 @@ hardy-backports from the GUI, or issue these commands: ## Step 2 - Adding the TMI repository to the sources list -Note: some maintenance is occurring in the apt repositories. Code for versions -older than precise have changed URLs -- please edit your sources.list.d/tmi.list -file. Sources for precise are still in flux but may work. - ### For 11.04 and earlier: cat <<+EOF+ | sudo tee /etc/apt/sources.list.d/tmi.list @@ -76,7 +130,11 @@ file. Sources for precise are still in flux but may work. +EOF+ sudo apt-get update -### For 12.04. Not really ready for prime time yet: +### For 12.04: + +12.04 support is working but in an early state. TMI needs to find some time to +clean things up a bit. TMI developers are currently using 12.04 i386. 64-bit +support is not yet available for 12.04. cat <<+EOF+ | sudo tee /etc/apt/sources.list.d/tmi.list # TMI repository @@ -99,12 +157,12 @@ and look for the following two lines, ensuring your output matches that below: pub 1024D/E9BE0373 2009-12-08 uid TMI Packages -The email address above is *com dot titaniummirror at pkgs*, in reverse. +The above is *com dot titaniummirror at pkgs*, in reverse. ## Step 3 - Install packages You can now install packages from the TMI repository. For example: -* Install our [[tinyos]] development suite: `sudo apt-get install tinyos` +* Install the TMI [[tinyos]] development suite: `sudo apt-get install tinyos` -* Install our [[cp210x]] driver: `sudo apt-get install cp210x-module-dkms` +* Install the TMI [[cp210x]] driver: `sudo apt-get install cp210x-module-dkms` diff --git a/in/cp210x.md b/in/cp210x.md index 11c8150..78034c6 100644 --- a/in/cp210x.md +++ b/in/cp210x.md @@ -8,31 +8,41 @@ Repositories: [cp210x](/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 for setting -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. +the +[cp210x](http://www.silabs.com/products/interface/usbtouart/Pages/default.aspx). +For windows platforms, Silicon Labs offers manufacturing support for setting 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 support from Silicon Labs, TMI has modified their GPLv2 licensed 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 invaluable -for those working on hardware designs using the cp2103. The code is released -under the GPLv2. +for those working on hardware designs using the cp2103. For example, TMI +enhancements to tos-bsl in [[tinyos]] allow programming of an MSP430 based +target using a USB/serial connection, by leveraging two of the four additional +GPIO pins present on the cp2103. -TMI completed these driver changes of a year ago and has since been maintaining -it. Silicon Labs was to push these changes through to the mainline kernel, but -this clearly has not happened yet. TMI has had some discussions with the +TMI completed these driver changes were originally completed in late 2007, but +have been periodically updated since then to track changes to the linux kernel +source. Silicon Labs was to push these changes through to the mainline kernel, +did not do so. In mid 2010, TMI had discussions with the linux-usb developers, and a decent number of changes need to be made before they will include our modifications upstream. Specifically, they want to see all -ioctl calls replaced with other mechanisms. We hope to allocate some time to +ioctl calls replaced with another mechanism. Perhaps we can allocate some time to work on these issues in the future. Meanwhile, TMI will continue to maintain -its branch of the cp210x driver. The `cp210x-module-dkms` package in the APT -repository has been tested on Ubuntu 8.04 LTS (Hardy Heron), 9.10 (Karmic +its branch of the cp210x driver. + +The `cp210x-module-dkms` package in the TMI APT +repository has been tested on (X)Ubuntu 8.04 LTS (Hardy Heron), 9.10 (Karmic Koala), 10.04 LTS (Lucid Lynx), 10.10 (Maverick Meerkat), 11.04 (Natty Narwhal), -and (soon) 12.04 (Precise Pangolin) systems, having both 32 and 64 bit x86 -(Intel/AMD) processors. +and 12.04 (Precise Pangolin). Because the driver uses the dkms facility, the +driver should build for both 32 and 64 bit systems. Some testing has happened +using older versions of 64-bit (X)Ubuntu, but TMI developers predominantly use +32-bit Xubuntu 12.04 at the moment (2012-07-09). -Note: Silicon Labs has introduced new USB/Serial chips, like the cp2104. This -driver is not compatible with the new parts. +Note: Silicon Labs has introduced new USB/Serial chips, like the cp2104. The +latest merge of the mainline cp210x driver, as present when used on 12.04 +systems, may be compatible with these newer parts. TMI has not tested for this +compatibility. diff --git a/in/git-utils.md b/in/git-utils.md index 6277a2a..a60f2cf 100644 --- a/in/git-utils.md +++ b/in/git-utils.md @@ -14,6 +14,9 @@ Read about [GIT](http://git-scm.com) here. TMI is starting to collect a number of small utilities for git. Each utility has a man page describing its operation. A few notables: +* `git-diffall`. Provides a facility for file-aware visual diff using an + external diff tool such as kdiff3, meld, or a similar tool. + * `git-empty-branch`. Create an empty branch in a local git repository. * `git-local`. Store local branches in a shared git repository under a private @@ -21,17 +24,26 @@ has a man page describing its operation. A few notables: use this tool to backup up local commits not yet suitable for pushing into a local shared branch. +* `git-overview`. A simple script that scans a directory tree for git repos, + showing the overall state of each. + * `git-publish-branch`. A shell version of the ruby script created by William Morgan. See his [git utilities page](http://git-wt-commit.rubyforge.org). We did not want to have to install ruby just for this one little utility. -* `update-mirror`. A work in progress script to automate mirroring of upstream - repositories hosted on various revision controls systems. Thanks to the - authors of [girocco](http://repo.or.cz/w/girocco.git), whose clone.sh script - forms the basis of this script. +* `git-push-public`. Used by TMI to replicate changes made to open source + projects hosted on TMI private servers to the TMI public server. + +* `server-gc`. A tool to run git-gc on each bare git repository found within a + given filesystem directory tree. Newest versions of git generally make this + utility redundant. + +* `update-mirror`. Used by TMI to update a local git mirror of an upstream git + or svn repository. Derived from the clone.sh script found at + [girocco](http://repo.or.cz/w/girocco.git). # Installation -To install the utilities, copy the scripts to `/usr/local/bin` and ensure they -have execute permission. Then copy the `*.1` files, which are the man pages, -to `/usr/local/man/man1`. +These scripts are not packaged in the [[aptrepo]]. To install the utilities, +copy the scripts to `/usr/local/bin` and ensure they have execute permission. +Then copy the `*.1` files, which are the man pages, to `/usr/local/man/man1`. diff --git a/in/msp430.md b/in/msp430.md index 9d0d11a..451407d 100644 --- a/in/msp430.md +++ b/in/msp430.md @@ -12,9 +12,13 @@ Repositories: TMI maintains an msp430 toolchain, including [[Ubuntu packages|aptrepo]], which works with newer members of the msp430 family including the popular MSP430F2x1x parts such as the MSP430F2618. This toolchain is properly patched for use in -[[TinyOS]] development. At the time of this writing, the official TinyOS -distribution uses an older msp430 toolchain that does not support these newer -msp430 parts. The msp430 toolchain is composed of binutils, gnu compiler, -and libc. +[[TinyOS]] development. -TMI is using the msp430 toolchain based on GCC version 4.4.3. +As of the release of Ubuntu 12.04 Precise Pangolin, an up-to-date version of the +MSP430 cross toolchain is available in the standard repositories. For this +reason, TMI is no longer maintaining its own packages, which ultimately use the +same upstream source as the new standard packages do. See the [[TMI +Repository|aptrepo]] page for more information. + +As of 2012-06-15, the msp430-gdb package does not install due to a file +conflict. This will likely be fixed soon. diff --git a/in/news.md b/in/news.md index dd27fc3..c489c75 100644 --- a/in/news.md +++ b/in/news.md @@ -1,6 +1,14 @@ title: News ctime: 2009-12-16 +### 2012-07-09 + +* TMI enhancements v4.5, based on TinyOS 2.1.1, are available in as [source + patches](http://oss.titaniummirror.com/gitweb/?p=tinyos-2.x.git;a=shortlog;h=4f057e14d46beedf64d643bebd06ca3e7e903d1f) + and as [[APT packages|aptrepo]] + +* Support for 32-bit (X)Ubuntu 12.04 + ### 2011-10-03 * Back in August when we migrated to the new server, we also began using nginx diff --git a/in/tinyos.md b/in/tinyos.md index 718a599..6b9d90d 100644 --- a/in/tinyos.md +++ b/in/tinyos.md @@ -16,10 +16,10 @@ internal and customer development efforts. TMI enhancements include: * Support for newer [[msp430]] chipsets, such as the MSP430F2618. -* An implementation of the USCI peripheral, supporting UART and SPI +* An implementation of the USCI peripheral, supporting UART, SPI and I2C communications. Both SPI slave and master modes are supported, with the driver knowing what to do in slave mode if the master unasserts the slave chip - select line. I2C is working internally and we will be posting it soon. + select line. * Enhanced clock framework supporting parts with the basic_clock+ peripheral and simplifying changing msp430 clock speeds on a per platform or per @@ -31,22 +31,24 @@ internal and customer development efforts. TMI enhancements include: * A modularized tos-bsl program that simplifies adding other msp430 boards using different mechanisms to access BSL programming features. Included is support - for boards using the cp2103 and its GPIO pins. + for boards using the cp2103 and its GPIO pins to effect BSL via USB. * Support for TMI reference platform design, [[tmicore]]. # About the TMI repository -The TMI TinyOS repository contains code imported from CVS upstream, our internal -working branches, and tags marking a series of commits that are a each a clean -patch series of the TMI enhancements against an official upstream release. +The TMI TinyOS repository is based upon code from the [official +repo](http://tinyos-main.googlecode.com/svn/). The TMI repository contains +various branches and tags representing current and past work. Most notably, the +tags beginning with `patchset/` are clean patches against a given official +upstream release. -* Current patchset tag: `patchset/2.1.1-4.4` -* Derived from official release tag: `tinyos/2.1.1` +* Current patchset tag: `patchset/2.1.1-4.5` +* TMI enhancements are based upon the upstream release tag: `tinyos/2.1.1` * The commits between the two above tags represent the series of patches in the - [latest patchset](/gitweb/?p=tinyos-2.x.git;a=shortlog;h=refs/tags/patchset/2.1.1-4.4). + [latest patchset](/gitweb/?p=tinyos-2.x.git;a=shortlog;h=refs/tags/patchset/2.1.1-4.5). -The TMI TinyOS code requires a newer [[msp430]] toolchain. +The TMI TinyOS code requires a GCC 4.4+ based [[msp430]] toolchain. # Using TMI TinyOS diff --git a/in/tinyospkgs.md b/in/tinyospkgs.md index e6c9368..789bfef 100644 --- a/in/tinyospkgs.md +++ b/in/tinyospkgs.md @@ -16,19 +16,19 @@ 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. Released APT package versions are associated with tags in the source code repository. Consider the latest -package version, 2.1.1-4.4, for which these tags exist in the repository: +package version, 2.1.1-4.5, for which these tags exist in the repository: -* `debian/2.1.1-4.4-1tmi` is the tag of the 'debianized' code from which the APT - packages version 2.1.1-4.4-1tmi were built. +* `debian/2.1.1-4.5-1tmi` is the tag of the 'debianized' code from which the APT + packages version 2.1.1-4.5-1tmi were built. -* `release/2.1.1-4.4` is the tag of the TinyOS code of which - `debian/2.1.1-4.4-1tmi` is a superset, the latter containing the debian +* `release/2.1.1-4.5` is the tag of the TinyOS code of which + `debian/2.1.1-4.5-1tmi` is a superset, the latter containing the debian packaging files. -* `tinyos/2.1.1` is the official upstream release on which `release/2.1.1-4.4` +* `tinyos/2.1.1` is the official upstream release on which `release/2.1.1-4.5` is based, the difference being the TMI enhancements. -* `patchset/2.1.1-4.4` is the head of a string of commits from the +* `patchset/2.1.1-4.5` is the head of a string of commits from the `tinyos/2.1.1` tag that represent a clean patch series that applies the TMI enhancements to the official upstream release. @@ -41,7 +41,7 @@ compiled against different TinyOS versions. The official TinyOS installs the source tree at `/opt/tinyos-2.x`. The TMI version installs source trees at `/opt/tinyos/VER`. For example, the latest -TMI tree is installed at `/opt/tinyos/2.1.1-4.4`. TMI also maintains in its +TMI tree is installed at `/opt/tinyos/2.1.1-4.5`. TMI also maintains in its repository the last few official source trees. At least one must be installed, and the developer may install others as needed. When installing or upgrading TMI TinyOS packages via APT, the latest TMI tree package is automatically @@ -49,20 +49,30 @@ installed. Source the script `/opt/tinyos/tinyos.sh` to set the tree you wish to use. This script also updates your shell rc file (if running bash, ksh or csh) so that your tree selection is persistent across logins. +Another option is to check out a TinyOS source tree at another location, +preferably in a user-private directory. This would allow development within the +TinyOS source in a saner manner than modifying a 'released' tree found in /opt/. +The tinyos.sh script in the TMI tinyos package also supports this capability. + This is the currently available trees as of this writing. You can use the command shown below to at any time view the available source trees. - $ sudo apt-cache search tinyos-source + $ 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, upstream release_2_1_0_0 + tinyos-source-2.0.1 - TinyOS source code tree, upstream release + tinyos-source-2.0.2.2 - TinyOS source code tree, upstream release + tinyos-source-2.1.0 - TinyOS source code tree, upstream release tinyos-source-2.1.0-3 - TinyOS source code tree tinyos-source-2.1.0-4 - TinyOS source code tree tinyos-source-2.1.0-4.1 - TinyOS source code tree - tinyos-source-2.1.1 - TinyOS source code tree, upstream release_2_1_1_3 + tinyos-source-2.1.0-4.2 - TinyOS source code tree tinyos-source-2.1.1-4.3 - TinyOS source code tree tinyos-source-2.1.1-4.4 - TinyOS source code tree + tinyos-source-2.1.1-4.5 - TinyOS source code tree + +TMI quit providing pristine packages after 2.1.0. Using any TinyOS source tree +not provided by TMI packages is easy. Simply source the `/opt/tinyos/tinyos.sh` +script with an argument of the directory containing the source tree. # Installing TinyOS -- 2.39.2