<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta name="keywords" content="9p, 9p2000, research, Plan 9, Inferno, Unix, Open Source, Bell Labs" /> <meta name="description" content="Open source distributed operating system Plan 9 from Bell Labs." /> <link rel="stylesheet" href="/wiki-style.css" media="all" type="text/css" /> <title>Guruplug (Diff)</title></head><body><h1><a name="top"></a>Guruplug <i>-Diff-</i></h1> <div class='body'> <!-- ***************************** --> <hr /><div class='diff_head'><a href="index.html">Tue Apr 12 10:24:54 EDT 2011</a>, djc</div><hr />ThisdocumentisbasedonthenotesItookandfoundaround9fansandvariousPlan9relatedsiteswithrespecttogettingtheGlobalscaleGuruplugplatformbootingPlan9.<a name="STEP_1_-_SET_UP_A_CPU/FS/AUTH_SERVER" /><h3>STEP 1 - SET UP A CPU/FS/AUTH SERVER</h3> <p class='para'>Directionsforhowtodothisarelistedinthe<a href="../Configuring_a_standalone_CPU_server">ConfiguringastandaloneCPUserver</a>sectionofthiswiki.</p> <p class='para'>Youmayalreadyhaveoneoftheserunning,butI'vefoundthatinsomecases,whentryingtocompileforARM,certainpackagesmaybeinstalledthatdonotworkverywell.TheyhavetobeaddedtotheBUGGEREDlistin/sys/src/cmd/mkfile.</p> <p class='para'>Example:</p> <pre> BUGGERED=unix|postscript|upas</pre> <p class='para'>Notethatupasisnotmalfunctioning,norisittruetosaythatitwouldnotcompileonmysystem.Ijustdidnothaveupasprivilegesandcouldnotcompletetheupasinstallation.SinceIwasnotconcernedwithemail,IskippeditbyplacingitontheBUGGEREDlist.</p> <p class='para'>Itispossibletoturnoffpermissionscheckingortheuseryou'reloggedinastotheupasgroupifneeded,butthat'sbeyondthescopeofthiswikipage.</p> <a name="STEP_2_-_BUILD_YOUR_ARM_TOOLCHAIN" /><h3>STEP 2 - BUILD YOUR ARM TOOLCHAIN</h3> <p class='para'>FollowGeoff'sdirectionsfromthe9fanspostinghere:<a href="http://9fans.net/archive/2009/11/225">sheevaplugportavailable</a></p> <p class='para'>Aslightmodificationofthoseinstructionsisbelow:</p> <pre> cd /sys/src/cmd for(i in ?c ?a ?l) { if(! ~ $i cc rc) @{ cd $i mk clean objtype=$cputype mk install mk clean } }</pre> <a name="STEP_3_-_POPULATE_YOUR_ARM_TREE" /><h3>STEP 3 - POPULATE YOUR ARM TREE</h3> <pre> cd /sys/src objtype=arm mk install</pre> <p class='para'>IfyoufailtoinstallsomethinginthisstepyoucantrytoaddnamestotheBUGGEREDlistasaboveandretrythemkinstall.</p> <a name="STEP_4_-_COPY_NVRAM_FROM_YOUR_CPU_SERVER_FOR_THE_GURUPLUG_IMAGE" /><h3>STEP 4 - COPY NVRAM FROM YOUR CPU SERVER FOR THE GURUPLUG IMAGE</h3> <p class='para'>PartofsettingupaCPUserverissettingupthenvramofyourmachine.Youshouldhavean"nvram"partitiononyourbootdiskifyoufollowedthestandardwikiCPUsetupinstructions.</p> <p class='para'>Copythisfileinto/sys/src/9/kw</p> <pre> dd -if /dev/sdC0/nvram -of /sys/src/9/kw/nvram</pre> <p class='para'>Nowwhenyoucompileyourkernel,you'llhaveavalidnvramfile.</p> <a name="STEP_5_-_COMPILE_THE_KW_KERNEL" /><h3>STEP 5 - COMPILE THE KW KERNEL</h3> <pre> cd /sys/src/9/kw mk 'CONF=plug' install</pre> <p class='para'>AfterthisstepyounowhaveallthepiecesyouneedtorunPlan9onanARMsystem.</p> <a name="STEP_6_-_CONFIGURE_PXE_TO_BOOT_YOUR_GURUPLUG" /><h3>STEP 6 - CONFIGURE PXE TO BOOT YOUR GURUPLUG</h3> <p class='para'>In/lib/ndb/localyou'llneedanentrylikethefollowing</p> <pre> ip=192.168.1.77 sys=bunnyplug dom=bunnyplug.homework.net bootf=/arm/9plug gw=192.168.1.1 dns=192.168.1.1 fs=<YOUR-FS-SERVER> auth=<YOUR-AUTH-SERVER></pre> <p class='para'>I'musingavmwareplan9CPUAUTHandFSserversoIjustusethesameIPaddressforthefsandauthitems.</p> <p class='para'>PXEneedstobeconfiguredaswell.In/cfg/pxeyoushouldseeafile"example-kw".Youmaycopythisto/cfg/pxe/<your-guruplug-mac-address></p> <p class='para'>Thissamefilenamewillbespecifiedasaparameterintheu-bootloaderofyourguruplug.</p> <a name="STEP_7_-_ENSURE_FOSSIL_IS_LISTENING" /><h3>STEP 7 - ENSURE FOSSIL IS LISTENING</h3> <p class='para'>NOTE:thisstepwillmakefossillistenonport564withoutencryption!</p> <pre> fossil/conf /dev/sdC0/fossil > flproto cat >> flproto << EOF listen tcp!*!564 EOF fossil/conf -w /dev/sdC0/fossil flproto</pre>Lines 1–500 of 679. Load more
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta name="keywords" content="9p, 9p2000, research, Plan 9, Inferno, Unix, Open Source, Bell Labs" /> <meta name="description" content="Open source distributed operating system Plan 9 from Bell Labs." /> <link rel="stylesheet" href="/wiki-style.css" media="all" type="text/css" /> <title>Guruplug (Diff)</title> </head> <body> <h1><a name="top"></a> Guruplug <i>-Diff-</i></h1> <div class='body'> <!-- ***************************** --> <hr /><div class='diff_head'> <a href="index.html">Tue Apr 12 10:24:54 EDT 2011</a>, djc </div><hr />This document is based on the notes I took and found around 9fans and various Plan 9 related sites with respect to getting the Globalscale Guruplug platform booting Plan 9. <a name="STEP_1_-_SET_UP_A_CPU/FS/AUTH_SERVER" /><h3>STEP 1 - SET UP A CPU/FS/AUTH SERVER</h3> <p class='para'> Directions for how to do this are listed in the <a href="../Configuring_a_standalone_CPU_server">Configuring a standalone CPU server</a> section of this wiki. </p> <p class='para'> You may already have one of these running, but I've found that in some cases, when trying to compile for ARM, certain packages may be installed that do not work very well. They have to be added to the BUGGERED list in /sys/src/cmd/mkfile. </p> <p class='para'> Example: </p> <pre> BUGGERED=unix|postscript|upas </pre> <p class='para'> Note that upas is not malfunctioning, nor is it true to say that it would not compile on my system. I just did not have upas privileges and could not complete the upas installation. Since I was not concerned with email, I skipped it by placing it on the BUGGERED list. </p> <p class='para'> It is possible to turn off permissions checking or the user you're logged in as to the upas group if needed, but that's beyond the scope of this wiki page. </p> <a name="STEP_2_-_BUILD_YOUR_ARM_TOOLCHAIN" /><h3>STEP 2 - BUILD YOUR ARM TOOLCHAIN</h3> <p class='para'> Follow Geoff's directions from the 9fans posting here: <a href="http://9fans.net/archive/2009/11/225">sheevaplug port available</a> </p> <p class='para'> A slight modification of those instructions is below: </p> <pre> cd /sys/src/cmd for(i in ?c ?a ?l) { if(! ~ $i cc rc) @{ cd $i mk clean objtype=$cputype mk install mk clean } } </pre> <a name="STEP_3_-_POPULATE_YOUR_ARM_TREE" /><h3>STEP 3 - POPULATE YOUR ARM TREE</h3> <pre> cd /sys/src objtype=arm mk install </pre> <p class='para'> If you fail to install something in this step you can try to add names to the BUGGERED list as above and retry the mk install. </p> <a name="STEP_4_-_COPY_NVRAM_FROM_YOUR_CPU_SERVER_FOR_THE_GURUPLUG_IMAGE" /><h3>STEP 4 - COPY NVRAM FROM YOUR CPU SERVER FOR THE GURUPLUG IMAGE</h3> <p class='para'> Part of setting up a CPU server is setting up the nvram of your machine. You should have an "nvram" partition on your boot disk if you followed the standard wiki CPU setup instructions. </p> <p class='para'> Copy this file into /sys/src/9/kw </p> <pre> dd -if /dev/sdC0/nvram -of /sys/src/9/kw/nvram </pre> <p class='para'> Now when you compile your kernel, you'll have a valid nvram file. </p> <a name="STEP_5_-_COMPILE_THE_KW_KERNEL" /><h3>STEP 5 - COMPILE THE KW KERNEL</h3> <pre> cd /sys/src/9/kw mk 'CONF=plug' install </pre> <p class='para'> After this step you now have all the pieces you need to run Plan 9 on an ARM system. </p> <a name="STEP_6_-_CONFIGURE_PXE_TO_BOOT_YOUR_GURUPLUG" /><h3>STEP 6 - CONFIGURE PXE TO BOOT YOUR GURUPLUG</h3> <p class='para'> In /lib/ndb/local you'll need an entry like the following </p> <pre> ip=192.168.1.77 sys=bunnyplug dom=bunnyplug.homework.net bootf=/arm/9plug gw=192.168.1.1 dns=192.168.1.1 fs=<YOUR-FS-SERVER> auth=<YOUR-AUTH-SERVER> </pre> <p class='para'> I'm using a vmware plan 9 CPU AUTH and FS server so I just use the same IP address for the fs and auth items. </p> <p class='para'> PXE needs to be configured as well. In /cfg/pxe you should see a file "example-kw". You may copy this to /cfg/pxe/<your-guruplug-mac-address> </p> <p class='para'> This same filename will be specified as a parameter in the u-boot loader of your guruplug. </p> <a name="STEP_7_-_ENSURE_FOSSIL_IS_LISTENING" /><h3>STEP 7 - ENSURE FOSSIL IS LISTENING</h3> <p class='para'> NOTE: this step will make fossil listen on port 564 without encryption! </p> <pre> fossil/conf /dev/sdC0/fossil > flproto cat >> flproto << EOF listen tcp!*!564 EOF fossil/conf -w /dev/sdC0/fossil flproto </pre>