File:  [NetBSD Developer Wiki] / wikisrc / ports / shark.mdwn
Revision 1.1: download - view: text, annotated - select for diffs
Sat Dec 22 04:03:19 2012 UTC (8 years, 11 months ago) by mspo
Branches: MAIN
CVS tags: HEAD
add a few more port pages, also testing html2markdown for vax-models.mdwn

    1: [[!template id=port
    2: port="shark"
    3: cur_rel="6.0"  
    4: future_rel="7.0"
    5: changes_cur="6.0"
    6: changes_future="7.0"
    7: thumbnail="http://www.netbsd.org/images/ports/shark/shark.gif"
    8: about="""
    9: NetBSD/shark is a port of NetBSD to StrongARM based Digital DNARD ("Shark")
   10: machines.
   11: 
   12: Up until the release of NetBSD 1.6, this port used to be part of the
   13: [NetBSD/arm32 port](/ports/arm32).
   14: """
   15: additional="""
   16: <div id="content"><div class="fullWidth"><div class="rowOfBoxes">
   17: <h1>NetBSD/shark Frequently Asked Questions</h1>
   18: <h3 class="title"><a name="hardware">Hardware Information</a></h3>
   19: <ul>
   20: <li><a href="#shark_memory">What type of memory does the Shark require?</a></li>
   21: <li><a href="#shark_extend_memory">How do I extend memory to more than 64MB?</a></li>
   22: <li><a href="#shark_firmware_upgrade">Should I upgrade my Shark's firmware, and if so, how do I do it?</a></li>
   23: <li><a href="#internal-power-supply">Where's the internal IDE power supply and mounting
   24: brackets?</a></li>
   25: <li><a href="#x_config">Is there a XF86config file that I can use on my shark?</a></li>
   26: </ul>
   27: <h3 class="title"><a name="">Booting</a></h3>
   28: <ul>
   29: <li><a href="#firmware">Gee, it looks a lot like a Sun boot monitor</a></li>
   30: <li><a href="#eeprom">My EEPROM somehow got hosed; my Ethernet shows
   31: ff:ff:ff:ff:ff:ff</a></li>
   32: <li><a href="#gen_shark_disk_boot">How do I boot a Shark from an internal disk?</a></li>
   33: <li><a href="#shark_boot">When installing NetBSD/shark on a Shark with an internal drive,
   34: do I need to install a boot loader?</a></li>
   35: <li><a href="#root-path">What do I have to feed my Shark as
   36: root-path?</a></li>
   37: <li><a href="#net_shark">I can't get my DNARD/Shark to netboot a new kernel!</a></li>
   38: <li><a href="#dhcp-config">Can you give me a sample DHCP configuration?</a></li>
   39: </ul>
   40: <h3 class="title"><a name="general">General questions</a></h3>
   41: <ul>
   42: <li><a href="#device-names">What are the device names?</a></li>
   43: <li><a href="#smartcard">How do I make use of the smart card or IR ports?</a></li>
   44: </ul>
   45: <hr>
   46: <h3 class="title">Hardware Information</h3>
   47: <p>Most of the information is on <a class="ulink" href="http://web.archive.org/web/20030626074859/www.research.compaq.com/SRC/iag/info/new-hard.html" target="_top">Digital's
   48: site</a>.</p>
   49: <h4 class="title">
   50: <a name="shark_memory"></a>What type of memory does the Shark require? (<a href="#hardware">top</a>)
   51:   </h4>
   52: <p>The <a class="ulink" href="http://www.feyrer.de/NetBSD/dnardug.pdf" target="_top">DNARD
   53: user guide</a> has information about this in section 4.5.1,
   54: <span class="quote">&#8220;<span class="quote">Supported DIMMs</span>&#8221;</span>.
   55: </p>
   56: 
   57: <h4 class="title">
   58: <a name="shark_extend_memory"></a>How do I extend memory to more than 64MB? (<a href="#hardware">top</a>)
   59:   </h4>
   60: <p>See the <a class="ulink" href="http://www.aprisoft.de/shark/" target="_top">Extending
   61: memory on your DNARD (shark) to more than 64MB</a> webpage for details.
   62: </p>
   63: 
   64: <h4 class="title">
   65: <a name="shark_firmware_upgrade"></a>Should I upgrade my Shark's firmware, and if so, how do I do it? (<a href="#hardware">top</a>)
   66:   </h4>
   67: <p>Upgrading the Shark's firmware can be somewhat frustrating, but
   68: in some cases, you may want (or need) to do it.
   69: these requests are incredibly busy right now.  Chris Demetriou
   70: volunteered to help them out with firmware image distribution, and
   71: they accepted his offer.
   72: </p>
   73: 
   74: <p>If you're looking for an update for Shark firmware, Chris Demetriou
   75: may be able to help you out.  Send him an e-mail at
   76: <code class="email">&lt;<a class="email" href="mailto:cgd@NetBSD.org">cgd@NetBSD.org</a>&gt;</code> with the subject <span class="quote">&#8220;<span class="quote">SHARK FIRMWARE
   77: REQUEST</span>&#8221;</span>, and then, after making you jump through a few hoops,
   78: he'll point you at the bits.</p>
   79: 
   80: <p>People should know that there are a few
   81: <span class="quote">&#8220;<span class="quote">interesting</span>&#8221;</span> versions of firmware that they might
   82: want:</p>
   83: 
   84: <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
   85: <li class="listitem">
   86:       <p>The 980225 image which is the minimum necessary to Shark
   87:       support integrated into the master NetBSD sources.  (The
   88:       1.3-based distribution from Digital could tolerate earlier
   89:       versions, but the integrated bits won't)</p>
   90:   </li>
   91: <li class="listitem">
   92:       <p>A version of the 980225 image hacked to use all of the
   93:       environment SEEPROM for OFW nvram storage.  (This is useful if
   94:       you want a large nvramrc, for instance)</p>
   95:   </li>
   96: <li class="listitem">
   97:       <p>An image dated 980908, which seems similar to the 980225,
   98:       but adds additional keymaps and changes the video chip bootstrap
   99:       initialization.</p>
  100:   </li>
  101: </ul></div>
  102: 
  103: <p>After you have the bits, you're ready to upgrade.</p>
  104: 
  105: <p>You should start by reading <a class="ulink" href="http://mail-index.NetBSD.org/port-arm32/1999/10/30/0003.html" target="_top">Chris'
  106: summary</a> on the subject, from the <a class="ulink" href="http://mail-index.NetBSD.org/port-arm32/" target="_top">port-arm32 mail
  107: archive</a>.</p>
  108: 
  109: 
  110: <h4 class="title">
  111: <a name="internal-power-supply"></a>Where's the internal IDE power supply and mounting
  112: brackets? (<a href="#hardware">top</a>)
  113:   </h4>
  114: <p>The DNARD does have an internal IDE port with a standard 0.100"
  115: spacing, 2-row, 40-pin header connector, as you see <a class="ulink" href="http://web.archive.org/web/20030730214011/www.research.compaq.com/SRC/iag/info/ide.html" target="_top">here</a>.
  116: </p>
  117: 
  118: <p>However, the DNARD has only +5V power coming from its power
  119: supply &#8212; and no DC-DC converter to produce +12V. Therefore, you will
  120: only be able to pull 5V power from the four-pin white header connector
  121: behind the IDE port. There are no mounting brackets shipped with the
  122: DNARDs that have no Iomega ZIP drive preinstalled.</p>
  123: 
  124: <div class="sect4">
  125: <div class="titlepage"><div><div><h5 class="title">
  126: <a name="laptop-size-HDD"></a>Using a 2.5" laptop size IDE HDD</h5></div></div></div>
  127: 
  128: 
  129: <p>It is possible to use a "standard" 2.5 inch IDE hard drive,
  130: usually intended for laptops, inside the Shark. You will need:</p>
  131: <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
  132: <li class="listitem">a 2.5" to 3.5" drive mounting bracket</li>
  133: <li class="listitem">a 44-pin, 0.075" spacing to 40-pin-plus-4-pin, 0.100"
  134: spacing, IDE adapter cable</li>
  135: <li class="listitem">3.5" mounting rails as described below in mounting a 3.5"
  136: drive</li>
  137: </ul></div>
  138: 
  139: <p>Fortunately, almost all 2.5" HDs require low power and only +5V,
  140: so they will run off of the existing Shark power supply.  This is the
  141: most ideal solution for adding an internal HD to the Shark for those
  142: models without the Zip drive.</p>
  143: 
  144: <p>Simply mount the 2.5" drive in the bracket, and attach the
  145: bracket as you would a 3.5" HD as described below. Connect the adapter
  146: cable from the hard drive to both the 40-pin IDE and the 4-pin power
  147: connectors on the motherboard.</p>
  148: 
  149: </div>
  150: 
  151: <div class="sect4">
  152: <div class="titlepage"><div><div><h5 class="title">
  153: <a name="internal-hdd"></a>Using a 3.5" internal IDE HDD</h5></div></div></div>
  154: 
  155: 
  156: <p>WARNING: Most 3.5" HDDs are relatively high on heat. If trying this
  157: out, we recommend that you check the temperature of the drive
  158: and the motherboard underneath it frequently.  You may also want to remove
  159: the front panel taken off and add an extra fan pointing directly at the hard
  160: disk opening.</p>
  161: 
  162: <p>The mounting holes for the internal HD are found at the front of
  163: the case on either side of the Zip drive recess (right above the
  164: ROMcard slot). Though this appears to need a special bracket, the
  165: "slide rails" used in some kinds of PCs (old Compaq, some Packard
  166: Hell, Gateway 2000) work perfectly for the task, even though they
  167: were intended for 5.25" drive bays.</p>
  168: 
  169: <p>For this task you will need:</p>
  170: 
  171: <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
  172: <li class="listitem">two PC drive slide rails</li>
  173: <li class="listitem">a 40-pin "standard" IDE cable, short</li>
  174: <li class="listitem">an external power supply to drive the HDD, with 4 pin Molex
  175: connector</li>
  176: <li class="listitem">(optional) a soft ferrite toroid or cylinder to thread the
  177: power cord through</li>
  178: </ul></div>
  179: 
  180: <p>Attach the slide rails to the sides of the 3.5" hard drive,
  181: preferably in such a way that the hard drive is no more than 1 cm
  182: inward from the front metal wall of the DNARD. For Gateway 2000 rails,
  183: use the lower and frontmost of the pairs of screw slots.</p>
  184: 
  185: <p>Attach the drive, with slide rails attached, to the front metal
  186: wall of the DNARD. The screw holes use the same type of screws as the
  187: rest of the DNARD unit; unfortunately, those screws do not hold most
  188: PC brackets in place, so you may need to use metal washers or screws
  189: from a hardware store to affix the brackets. (If you know what size
  190: screw the DNARD uses, please let us know).</p>
  191: 
  192: <p>Connect the IDE cable to both the drive and motherboard. String
  193: the external power supply's cable through one of the back panels of
  194: the DNARD, and connect it to the drive. It's preferable to have a
  195: ferrite toroid somewhere along this power line inside the DNARD case
  196: as it will reduce electromagnetic interference. (Suggested by
  197: ross@NetBSD.org.)</p>
  198: 
  199: <p>It still needs investigating whether the external power supply
  200: can drive the DNARD motherboard by feeding power into the hard drive
  201: power connector.</p>
  202: 
  203: <p><span class="quote">&#8220;<span class="quote">Oops</span>&#8221;</span> concerns: My unit has the HDD resting on a
  204: length of IDE cable, which also separates the drive from any
  205: electronic components on the motherboard. If your IDE cable is not
  206: <span class="quote">&#8220;<span class="quote">short</span>&#8221;</span>, this is a good idea to use, as there is at least
  207: one test jumper that could come in contact with the underside of the
  208: hard drive if the slide rails were to bend downward.</p>
  209: </div>
  210: 
  211: <div class="sect4">
  212: <div class="titlepage"><div><div><h5 class="title">
  213: <a name="underwatervideo"></a>My video looks like it is underwater &#8212; it shakes after warming
  214: up.</h5></div></div></div>
  215: 
  216: 
  217: <p>The common problem of "swimming" video observed on most &#8212;
  218: but not all &#8212; DNARD revision 5 units has a hardware fix involving
  219: some SMD soldering and very small pins. So, if you're dexterous enough
  220: for the job, <a class="ulink" href="http://web.archive.org/web/20030730220058/www.research.compaq.com/SRC/iag/info/DNARDfix/index.html" target="_top">here</a>'s
  221: the fix.
  222: </p>
  223: 
  224: <p>By some stroke of luck, some Rev5 boards do not have the
  225: problem, though they use identical parts.</p>
  226: </div>
  227: 
  228: <div class="sect4">
  229: <div class="titlepage"><div><div><h5 class="title">
  230: <a name="chiplevel-specs"></a>I want chip-level specs!</h5></div></div></div>
  231: 
  232: <p>Then have them: The Revision 5 specs are <a class="ulink" href="http://web.archive.org/web/20010603180429/www.research.compaq.com/SRC/iag/info/dnaext/hardrev5.html" target="_top">here</a>.
  233: </p>
  234: </div>
  235: 
  236: <div class="sect4">
  237: <div class="titlepage"><div><div><h5 class="title">
  238: <a name="cpu-position"></a> Where's the CPU?</h5></div></div></div>
  239: 
  240: 
  241: <p>Look carefully for the chip marked with a "233" under the
  242: ROMcard slot at the front right of the case. Don't be fooled about the
  243: size or lack of heatsink &#8212; that's it.</p>
  244: </div>
  245: 
  246: <h4 class="title">
  247: <a name="x_config"></a>Is there a XF86config file that I can use on my shark? (<a href="#hardware">top</a>)
  248:   </h4>
  249: <p>Yes, there's one at <a class="ulink" href="ftp://ftp.NetBSD.org/pub/NetBSD/arch/shark/DNARD/XF86Config" target="_top">ftp://ftp.NetBSD.org/pub/NetBSD/arch/shark/DNARD/XF86Config</a>.
  250: Put it into your Sharks' <code class="code">/etc</code> directory.</p>
  251: <hr>
  252: <h3 class="title">Booting</h3>
  253: <h4 class="title">
  254: <a name="firmware"></a>Gee, it looks a lot like a Sun boot monitor (<a href="#">top</a>)
  255:   </h4>
  256: 
  257: <p>This is called the OpenFirmware boot monitor. It originated at
  258: Sun Microsystems, hence the very similar look. The firmware was
  259: created by <a class="ulink" href="http://www.firmworks.com/" target="_top">FirmWorks</a>.</p>
  260: 
  261: <p>The DNARD binding for OpenFirmware is available in <a class="ulink" href="ftp://ftp.NetBSD.org/pub/NetBSD/arch/arm32/DNARD/dnard-ofw.pdf" target="_top">this
  262: FAQ's download area</a>.</p>
  263: 
  264: <p>You can also take a look at the actual <a class="ulink" href="http://playground.sun.com/1275/" target="_top">OpenFirmware working group web
  265: page</a>.</p>
  266: 
  267: <h4 class="title">
  268: <a name="eeprom"></a>My EEPROM somehow got hosed; my Ethernet shows
  269: ff:ff:ff:ff:ff:ff (<a href="#">top</a>)
  270:   </h4> 
  271: 
  272: <p>Todd Vierling figured this one out based on the information
  273: contained in the <a class="ulink" href="http://www.squirrel.com/squirrel/sun-nvram-hostid.faq.html" target="_top">Sun
  274: NVRAM/hostid FAQ</a> and the <a class="ulink" href="http://web.archive.org/web/20030730214203/www.research.compaq.com/SRC/iag/info/new-hostid.html" target="_top">DNARD
  275: Host ID information</a>. Believe it or not, mkp works on the
  276: DNARDs, though not quite like it does on the Suns. The mkpl shortcut
  277: does not work, however.</p>
  278: 
  279: <p>Assuming you know the Ethernet address of your unit
  280: (8:0:2b:AA:BB:CC where AA, BB, and CC are one or two digit hex
  281: numbers), use the following commands to reprogram your EEPROM. If you
  282: don't know what your machine's Ethernet address should be, pick one,
  283: but be wary of the MAC addresses elsewhere on your network.</p>
  284: <pre class="programlisting">
  285: ok 8 0 mkp 8 f mkp
  286: ok 0 1 mkp 0 e mkp
  287: ok 2b 2 mkp 2b d mkp
  288: ok AA 3 mkp AA c mkp
  289: ok BB 4 mkp BB b mkp
  290: ok CC 5 mkp CC a mkp
  291: ok reset-all
  292: </pre>
  293: 
  294: <p>If this doesn't help, try it again with the following additional
  295: mkp commands:</p>
  296: <pre class="programlisting">
  297: ok ff 18 mkp ff 1c mkp
  298: ok 0 19 mkp 0 1d mkp
  299: ok 55 1a mkp 55 1e mkp
  300: ok aa 1b mkp aa 1f mkp
  301: </pre>
  302: 
  303: <h4 class="title">
  304: <a name="gen_shark_disk_boot"></a>How do I boot a Shark from an internal disk? (<a href="#">top</a>)
  305:   </h4>
  306: <p>
  307: To setup a Shark to boot from an internal IDE disk you must aquire an IDE
  308: cable and power adapter, ensure that drive is void of any PC BIOS partition
  309: tables, install NetBSD, and update your firmware settings.
  310: </p>
  311: 
  312: <div class="sect4">
  313: <div class="titlepage"><div><div><h5 class="title">
  314: <a name="gen_shark_disk_boot_installhw"></a>a) Installing the hardware</h5></div></div></div>
  315:   
  316: <p>The shark has an internal IDE connector, but it does not have a
  317: large 4-pin 12V power connector used by most standard IDE drives.  In
  318: place of the large 4-pin 12V connector is a newer and smaller floppy
  319: drive style power connector.  These factors make a laptop drive with a
  320: laptop to standard IDE converter the best choice.  Depending on your
  321: converter, you may also need an adapter to convert the smaller floppy
  322: drive style power connector to the larger 12V connector required by
  323: your converter.  Once installed, the drive can be secured to the top
  324: of the ROM slot track using cable ties.  You can also use hook and
  325: fastener strips (also known by the brand name
  326: <span class="emphasis"><em>Velcro&reg;</em></span>) to secure the drive to the case.
  327: </p>
  328: </div>
  329: 
  330: 
  331: <div class="sect4">
  332: <div class="titlepage"><div><div><h5 class="title">
  333: <a name="gen_shark_disk_boot_format"></a>b) Formatting the drive</h5></div></div></div>
  334:   
  335: 
  336: <p>Your drive must be properly formatted to be recognized as a
  337: bootable disk by the Shark firmware.  The NetBSD/shark install will
  338: normally take care of most of the formatting for you, but in some
  339: cases your drive may have an IBM-PC style Master Boot Record (or
  340: <span class="emphasis"><em>MBR</em></span>).  This MBR must be erased before the Shark
  341: firmware will recognize the NetBSD filesystem on the drive.  To make
  342: sure that the MBR is erased, do the following:</p>
  343: 
  344: <div class="orderedlist"><ol class="orderedlist" type="1">
  345: <li class="listitem">
  346:     <p>Install NetBSD as normal.</p>
  347:   </li>
  348: <li class="listitem">
  349:     <p>Before rebooting, obtain a shell prompt and issue the
  350:     command <code class="code">dd if=/dev/zero of=/dev/wd0c bs=512
  351:     count=1</code></p>
  352:   </li>
  353: <li class="listitem">
  354:     <p>Reboot and update the firmware environment (below).</p>
  355:   </li>
  356: </ol></div>
  357: </div>
  358: 
  359: <div class="sect4">
  360: <div class="titlepage"><div><div><h5 class="title">
  361: <a name="gen_shark_disk_boot_firmware"></a>c) Updating the firmware environment</h5></div></div></div>
  362:   
  363: 
  364: <p>To autoboot from the disk you will need to install the
  365: <code class="code">wdboot</code> kernel and from the PROM type:</p>
  366: 
  367: <code class="code">setenv boot-device disk:\netbsd</code>
  368: </div>
  369: 
  370: <h4 class="title">
  371: <a name="shark_boot"></a>When installing NetBSD/shark on a Shark with an internal drive,
  372: do I need to install a boot loader? (<a href="#">top</a>)
  373:   </h4>
  374: <p>The Shark's firmware is capable of loading the NetBSD kernel
  375: directly from an FFS, provided that the drive does not have an IBM-PC
  376: style MBR.  (See the 'Booting a shark from an internal disk' question
  377: for instructions on removing an MBR.)  As such, it does not require an
  378: on-disk boot loader unlike many other computers.</p>
  379: 
  380: <p>Some Sharks are configured to load <code class="code">/boot</code> by default, in
  381: which case you can just link <code class="code">/netbsd</code> to that name.</p>
  382: 
  383: <h4 class="title">
  384: <a name="root-path"></a>What do I have to feed my Shark as
  385: <span class="quote">&#8220;<span class="quote">root-path</span>&#8221;</span>? (<a href="#">top</a>)
  386:   </h4>
  387: <p>Use <span class="quote">&#8220;<span class="quote"><code class="filename">/path/to/root</code></span>&#8221;</span> (ipaddr of NFS
  388: server is implied).</p>
  389: 
  390: <h4 class="title">
  391: <a name="net_shark"></a>I can't get my DNARD/Shark to netboot a new kernel! (<a href="#">top</a>)
  392:   </h4>
  393: <p>Chances are, you need to update your firmware. See the
  394: <a class="ulink" href="#shark_firmware_upgrade" target="_top">Shark firmware upgrade</a>
  395: question for more information on that.</p>
  396: 
  397: <h4 class="title">
  398: <a name="dhcp-config"></a>Can you give me a sample DHCP configuration? (<a href="#">top</a>)
  399:   </h4>
  400: 
  401: <p>These should be the minimum settings necessary to make dhcpd
  402: happy and to boot Sharks. You can find the Ethernet address by
  403: plugging a Shark in and looking at the console (a keyboard must be
  404: plugged in for the VGA console to work).</p>
  405: 
  406: <pre class="programlisting">
  407: option domain-name "home.duh.org";
  408: option domain-name-servers 10.69.1.3;
  409: subnet 10.69.1.0 netmask 255.255.255.0 {}
  410: host nc1 {
  411:   hardware ethernet 08:00:2b:81:60:b6;
  412:   fixed-address 10.69.1.5;
  413:   filename "netbsd";
  414:   option root-path "/export/nc/nc1root";
  415:   next-server tftpserver_name;
  416: }
  417: host nc2 {
  418:   hardware ethernet 08:00:2b:81:60:95;
  419:   fixed-address 10.69.1.6;
  420:   filename "netbsd";
  421:   option root-path "/export/nc/nc2root";
  422:   next-server tftpserver_name;
  423: 
  424: }
  425: </pre>
  426: <hr>
  427: <h3 class="title">General questions</h3>
  428: <h4 class="title">
  429: <a name="device-names"></a>What are the device names? (<a href="#general">top</a>)
  430:   </h4>
  431: 
  432: <p>The various ports are available on the following devices:</p>
  433: <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
  434: <li class="listitem">Printer (parallel Centronics 25-pin female):
  435: <code class="filename">/dev/lpt0</code>
  436: </li>
  437: <li class="listitem">Serial (DE9 male): <code class="filename">/dev/tty00</code>
  438: </li>
  439: <li class="listitem">Infrared controller: <code class="filename">/dev/tty01</code>
  440: </li>
  441: <li class="listitem">PS/2 style mouse: <code class="filename">/dev/pms0</code>
  442: </li>
  443: <li class="listitem">IDE drives: <code class="filename">/dev/[r]wd[01]*</code>
  444: </li>
  445: <li class="listitem">Ethernet: (device cs0)</li>
  446: </ul></div>
  447: 
  448: <h4 class="title">
  449: <a name="smartcard"></a>How do I make use of the smart card or IR ports? (<a href="#general">top</a>)
  450:   </h4>
  451: 
  452: <p>This is currently not unknown.</p>
  453: 
  454: <p>Under NetBSD, the smart card reader is on
  455: <code class="filename">/dev/scr0</code>, but it's not clear how to use the
  456: device.</p>
  457: 
  458: <p>The infrared controller, which is bidirectional, is implemented
  459: as a <span class="quote">&#8220;<span class="quote">serial</span>&#8221;</span> device on
  460: <code class="filename">/dev/tty01</code>. Its protocol probably needs
  461: documentation, and a willing soul could explore it and let us in on
  462: the secrets. Note that it is not irDA; rather, it is a slower
  463: consumer-grade IR device.</p>
  464: </div></div></div>
  465: 
  466: """
  467: 
  468: ]]
  469: [[!tag tier2port]]

CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb