Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision |
plan9front_terminal_on_a_raspberry_pi_2_b [2023/06/30 23:28] – [Least ambitious?:] hc9 | plan9front_terminal_on_a_raspberry_pi_2_b [2023/11/23 21:25] – %%:FIXME:%% m( hc9 |
---|
| ====== Plan 9 / 9Front, the namespace, and an interactive terminal ====== |
| |
| * This tutorial is intended for SDF Boot Camp participants, providing them and overview. |
| * It's an accompaniment to the SDF Plan 9 Boot Camp tutorials. |
| * And, a tutorial about the Raspberry Pi 2 B. |
| * An amd64 terminal (''term%'') is an optional topic. |
| |
| ===== DRAFT tutorial ===== |
| |
| //====== 9front terminal on a Raspberry Pi 2 B ======// |
| |
| |x|THIS IS A DRAFT| |
| |
| **About** |
| |
| This is a tutorial about setting-up the Plan 9 9front <sup>1</sup> operating system, as a terminal on a Raspberry Pi 2 Model B. The tutorial is aimed at participants in the SDF [[plan_9_9front|Plan 9 Boot Camp]] <sup>2</sup>, but should be useful to other SDF VPS users. |
| |
| The following steps assume that you have edited files while user “glenda”, have run '% fshalt' from the VPS console rc prompt (%) or Drawterm rio rc prompt (%), been able to “[s] - Force Shutdown”, “[r] - reset or start” from the VPS Maintenance Shell, and have used 9front Drawterm successfully. |
| |
| The [[sdf|SDF]] [[plan_9_9front|Plan 9 / 9Front]] [[sdf_virtual_private_server_service|VPS]], 9front Drawterm, and a 9front 9pi terminal are independent. This tutorial is for educational purposes, and provides additional information about a 9pi. The 9front [[vps_-_9front#front_drawterm|Drawterm]] works __very__ well. Yet, some participants may decide to read about a 9pi terminal. The SDF //Boot Camp// participants study virtualized //amd64 9front//. |
| |
| <sup>1</sup> [[http://fqa.9front.org/fqa1.html|Plan9front]] (or //9front//) is a fork of the //Plan 9// from [[ https://9p.io/plan9/index.html|Bell Labs operating system]]; [[wp>Plan_9_from_Bell_Labs#Derivatives_and_forks|Plan 9 Derivatives and forks]]. <sup>2</sup> [[wp>Booting|Booting]] |
| |
| |
| ==== Less ambitious: ==== |
| |
| ISO \\ [[http://9front.org/iso/]] \\ *pi.img.gz |
| |
| Nightly ISO \\ [[http://iso.only9fans.com/]] \\ *pi.img.gz |
| |
| **Note**: |
| |
| RELEASE \\ [[http://www.9front.org/releases/]] \\ The pi.img file can be used for Raspberry Pi 1, 2, and 3. \\ The pi3.img file can be used for Raspberry Pi 3 and 4 (11/18/2023; //9FRONT “DON’T TOUCH THE ARTWORK” RELEASED (2023/06/25)//). |
| |
| ^ //ISO// ((The //Raspberry Pi 2 Model B// available memory is limited, failing if there are too many updates, during an initial ''sysupdate''.)) or //Nightly ISO//? ^ 4 months 23 days ^ |
| | ✔ Nightly ISO ((A recent //Nightly ISO// may have an update, during an initial ''sysupdate''.)) | https://www.wolframalpha.com/input?i=11%2F18%2F2023+to+2023%2F06%2F25 | |
| |
| | <del>The pi3.img file can be used for Raspberry Pi 3 and 4 (1/27/2021; 9FRONT “EMAILSCHADEN” RELEASED 2020/10/19).</del> | |
| |
| OR |
| |
| ==== More ambitious: ==== |
| |
| Appendix J - Junk \\ Raspberry Pi \\ [[http://fqa.9front.org/appendixj.html]] |
| |
| |
| ==== CAUTION: ==== |
| |
| |[%%:!:%%] ((The [%%:!:%%] is interchangeable with a //[CAUTION]//, for the [[plan9front_-_acme_sam_abaco_mothra_and_man#abaco|abaco]], and [[plan9front_-_acme_sam_abaco_mothra_and_man#mothra|mothra]] browsers. :!:))|CAUTION||[%%:!:%%] ((The [%%:!:%%] is interchangeable with a //[CAUTION]//, for the [[plan9front_-_acme_sam_abaco_mothra_and_man#abaco|abaco]], and [[plan9front_-_acme_sam_abaco_mothra_and_man#mothra|mothra]] browsers. :!:))|CAUTION||[%%:!:%%] ((The [%%:!:%%] is interchangeable with a //[CAUTION]//, for the [[plan9front_-_acme_sam_abaco_mothra_and_man#abaco|abaco]], and [[plan9front_-_acme_sam_abaco_mothra_and_man#mothra|mothra]] browsers. :!:))|CAUTION|[%%:!:%%] ((The [%%:!:%%] is interchangeable with a //[CAUTION]//, for the [[plan9front_-_acme_sam_abaco_mothra_and_man#abaco|abaco]], and [[plan9front_-_acme_sam_abaco_mothra_and_man#mothra|mothra]] browsers. :!:))| |
| |
| Cautionary instructions for **working with SD cards** can be found here: |
| |
| Installing operating system images \\ [[https://web.archive.org/web/20210127164336/https://www.raspberrypi.org/documentation/installation/installing-images|https://www.raspberrypi.org/documentation/installation/installing-images/]] //(1/27/2021; external archive)//\\ "Writing the image" \\ "How you write the image to the SD card will depend on the operating system you are using." |
| |
| * Linux |
| * Mac OS |
| * Windows |
| * Chrome OS |
| |
| === The copy to an SD card process: === |
| |
| **Linux**: |
| |
| |[%%:!:%%] ((The [%%:!:%%] is interchangeable with a //[CAUTION]//, for the [[plan9front_-_acme_sam_abaco_mothra_and_man#abaco|abaco]], and [[plan9front_-_acme_sam_abaco_mothra_and_man#mothra|mothra]] browsers. :!:))|Run ''lsblk -p'' to see which devices are currently connected to **your machine**.| |
| |[%%:!:%%] ((The [%%:!:%%] is interchangeable with a //[CAUTION]//, for the [[plan9front_-_acme_sam_abaco_mothra_and_man#abaco|abaco]], and [[plan9front_-_acme_sam_abaco_mothra_and_man#mothra|mothra]] browsers. :!:))|The mentioned ''/dev/sdc'' may __not__ apply to **your machine**. Locate the proper SD card designation, first.| |
| |[%%:!:%%] ((The [%%:!:%%] is interchangeable with a //[CAUTION]//, for the [[plan9front_-_acme_sam_abaco_mothra_and_man#abaco|abaco]], and [[plan9front_-_acme_sam_abaco_mothra_and_man#mothra|mothra]] browsers. :!:))|Do not guess. Verify first.| |
| | **..**|Optionally, a separate computer can be used, where there is no danger of damaging a hard drive.| |
| |
| * Run ''lsblk -p'' to see which devices are currently connected to your machine. <code> lsblk -p |
| </code> |
| |
| * ( [%%:!:%%] ((The [%%:!:%%] is interchangeable with a //[CAUTION]//, for the [[plan9front_-_acme_sam_abaco_mothra_and_man#abaco|abaco]], and [[plan9front_-_acme_sam_abaco_mothra_and_man#mothra|mothra]] browsers. :!:)) CAUTION) ''/dev/sdc'' may __not__ apply to **your machine**. <code> |
| sudo dd bs=1M if=9pi.img of=/dev/sdc |
| lsblk -p |
| umount /dev/sdc1 |
| sync |
| </code> |
| |
| |x|THIS IS A DRAFT| |
| |
| === The copy image process: === |
| |
| * Insert the MicroSD card. |
| * Start the Raspberry Pi 2 B. |
| |
| <code> |
| % 9fs pidos |
| % cp /sys/src/9/bcm/9pi2 /n/pidos/9pi2 |
| </code> |
| |
| Edit **cmdline.txt** if needed: |
| |
| <code> |
| % cd /n/pidos/ |
| % lc cmdline.txt |
| % sam cmdline.txt |
| </code> |
| |
| |[%%:!:%%]((The [%%:!:%%] is interchangeable with a //[CAUTION]//, for the [[plan9front_-_acme_sam_abaco_mothra_and_man#abaco|abaco]], and [[plan9front_-_acme_sam_abaco_mothra_and_man#mothra|mothra]] browsers. :!:))|Add text with a single space separator, for example “mouseport=ps2intellimouse”; all “cmdline.txt” entries remain on a **single line**.| |
| |
| Example of additional **cmdline.txt** text: |
| |
| <file> |
| console=0 mouseport=ps2intellimouse |
| </file> |
| |
| * Optional ( [%%:!:%%] ((The [%%:!:%%] is interchangeable with a //[CAUTION]//, for the [[plan9front_-_acme_sam_abaco_mothra_and_man#abaco|abaco]], and [[plan9front_-_acme_sam_abaco_mothra_and_man#mothra|mothra]] browsers. :!:)) CAUTION) example: <file> console=0 mouseport=ps2intellimouse nobootprompt=local!#S/sdM0/fs user=glenda |
| </file> |
| * [%%:!:%%] ((The [%%:!:%%] is interchangeable with a //[CAUTION]//, for the [[plan9front_-_acme_sam_abaco_mothra_and_man#abaco|abaco]], and [[plan9front_-_acme_sam_abaco_mothra_and_man#mothra|mothra]] browsers. :!:)) //local!#S/sdM0/fs// is an **example** only. |
| * Boot the 9pi without the optional example. |
| * Replace //local!#S/sdM0/fs// with what is displayed during a successful boot. |
| |
| === An overclock the Pi 2 B process: === |
| |
| Modify (optional) the default ''config.txt'' file: <file config.txt> |
| [pi2] |
| kernel=9pi2 |
| gpu_mem=16 |
| disable_overscan=1 |
| arm_freq=900 |
| force_turbo=1 |
| </file> |
| |
| === A start networking process: === |
| |
| * The example is using [[wp>Dynamic_Host_Configuration_Protocol|DHCP]]. |
| |
| * [%%:!:%%] ((The [%%:!:%%] is interchangeable with a //[CAUTION]//, for the [[plan9front_-_acme_sam_abaco_mothra_and_man#abaco|abaco]], and [[plan9front_-_acme_sam_abaco_mothra_and_man#mothra|mothra]] browsers. :!:)) The ''ndb/dns'' example is __only__ applied initially, and __not__ required for //[[plan9front_terminal_on_a_raspberry_pi_2_b#less_ambitious|Less ambitious]]//. The results are retained. Entering it again will result in a message: “another dns instance is running”. <code> % ndb/dns |
| </code> |
| |
| * <code> % ip/ipconfig |
| </code> |
| |
| ==== Timezone: ==== |
| |
| **Configure a Time zone process**: |
| |
| * [[vps_-_9front#configure_a_time_zone|Configure a Time zone]] |
| |
| **The shutdown process**: |
| |
| * <code> % fshalt |
| </code> |
| |
| ==== The start network process: ==== |
| |
| * Start the Raspberry Pi. <code> |
| % ip/ipconfig |
| % date |
| </code> |
| * Check the ''date'' after waiting a minute, if needed for validating the network connection. <code> |
| % date |
| </code> |
| |
| **Note**: |
| |
| |The pi.img file can be used for Raspberry Pi 1, 2, and 3.| |
| |The pi3.img file can be used for Raspberry Pi 3 and 4. The “/sys/src/9/bcm/9pi2” is intended for the Raspberry Pi 2, or Raspberry Pi 3, only.| |
| |
| ====== A Plan 9 9front SDF Boot Camp tutorial application ====== |
| |
| - From the Plan 9 VPS Drawterm rio rc cpu prompt (%): <code> % aux/listen1 -t 'tcp!*!rcpu' /rc/bin/service/tcp17019 |
| </code> |
| - From the Plan 9 9front Raspberry Pi rio rc terminal prompt (%): <code> % rcpu -h YOUR_IP -u glenda |
| password: |
| ! |
| </code> |
| - (This __may__ take time.) |
| - From the Plan 9 VPS Drawterm rio rc prompt (%): |
| - Press the [Delete] key once. |
| - Enter the following to determine if any additional rcpu listening remains active. <code> % ps -a | grep rcpu |
| </code> |
| |
| * Note: Half the battle is figuring out where to place the mice, since two mice are the used in this tutorial. |
| * The mentioned 9pi terminal prompt (term%) [[vps_-_9front#at_the_rio_rc_prompt|features]] were absent until the 9pi was connected (''rcpu'') to a cpu. |
| * The mentioned 9pi terminal [[vps_-_9front#at_the_rio_rc_prompt|feature]] behavior may provide a topic for further discussion. |
| * The 9pi terminal example is not intended to replace Drawterm. |
| * Additional review is required to determine if a 9pi terminal is suitable. |
| * Further //study (([[https://9p.io/wiki/plan9/Configuring_a_standalone_CPU_server/index.html| Configuring a Standalone CPU Server]]))// is necessary to configure a 9pi cpu. |
| * The 9pi terminal may benefit from additional configuration (TBD). |
| |
| ==== Additional files: ==== |
| |
| * Create a file on the cpu (cpu%) machine. <file config invitemy9pi> |
| #!/bin/rc |
| echo 'invite 9pi .. please connect.' |
| aux/listen1 -t 'tcp!*!rcpu' /rc/bin/service/tcp17019 |
| |
| </file> |
| * <code> |
| chmod 755 invitemy9pi |
| </code> |
| |
| * Create a file on the 9pi term (term%) machine. <file config recmy9pi> |
| #!/bin/rc |
| echo 'receive 9pi .. please connect.' |
| rcpu -h YOUR_IP -u glenda |
| |
| </file> |
| * <code> |
| chmod 755 recmy9pi |
| </code> |
| |
| ====== A Plan 9 9front rcpu application ====== |
| |
| From the plan9front Raspberry Pi rio rc terminal prompt (%): |
| |
| === Edit the /lib/ndb/local file: === |
| |
| * The ''echo 'auth=9p.sdf.org authdom=9sdf' <nowiki>>></nowiki> /lib/ndb/local'' is __only__ applied initially. The results are retained. <code> % echo 'auth=9p.sdf.org authdom=9sdf' >> /lib/ndb/local |
| </code> |
| |
| === Check if factotum is running: === |
| |
| <code> |
| term% ps | grep factotum |
| glenda 100 0:00 0:00 168K Pread factotum |
| </code> |
| |
| * Start factotum if it is __not__ running. <code> |
| term% auth/factotum |
| </code> |
| |
| === RCPU to 9p.sdf.org === |
| |
| * A ''9p.sdf.org'' user name (''-u USER'') is required. <code> |
| % rcpu -h 9p.sdf.org -u USER |
| password: |
| ! |
| </code> |
| |
| * Once connected to //9p.sdf.org//: <code> |
| cpu% cd $home |
| </code> |
| |
| * Start the //rio (([[vps_-_9front#from_rio|Details about rio]])) (([[plan9front_-_drawterm_rio_and_stats|More details about rio]]))// window system: <code> |
| cpu% rio |
| </code> |
| |
| * Start ''[[vps_-_9front#command_reminder|stats -lmisce]]'' in a new //rio (([[vps_-_9front#from_rio|Details about rio]])) (([[plan9front_-_drawterm_rio_and_stats|More details about rio]]))// rc window: <code> |
| cpu% stats -lmisce |
| </code> |
| |
| === An incorrect password repair example: === |
| |
| <code> |
| % cat /mnt/factotum/ctl |
| key proto=dp9ik dom=9sdf user=USER !password? |
| % echo 'delkey proto=dp9ik dom=9sdf user=USER' > /mnt/factotum/ctl |
| % |
| </code> |
| |
| ===== Updating the 9pi ===== |
| |
| <file config /plan9-l/Have_fun/9pi_interactive_terminal> |
| |
| I.) Updating the 9pi system: |
| |
| 1. type 'sysupdate' - note if changes are brought in. |
| (you can 'cat /bin/sysupdate' to see how it works) |
| |
| 2. cd / |
| 3. . /sys/lib/rootstub (you can 'cat /sys/lib/rootstub' to see) |
| 4. cd /sys/src |
| 5. mk install |
| |
| II.) Updating the kernel: |
| |
| 1. cd /sys/src/9/bcm |
| 2. mk |
| |
| III.) Installing the new kernel: |
| |
| 1. type 9fs pidos |
| # be careful: |
| 2. cp /sys/src/9/bcm/9pi2 /n/pidos/9pi2 |
| 3. fshalt -r |
| |
| IV.) The 9pi should boot completely up-to-date. |
| </file> |
| |
| * Installing the new kernel: <code> |
| % cd |
| % |
| % 9fs pidos |
| % cp /sys/src/9/bcm/9pi2 /n/pidos/9pi2 |
| % fshalt -r |
| </code> |
| |
| * Start networking & check date: <code> |
| % ip/ipconfig |
| % date |
| </code> |
| |
| [[spreading_the_word_about_sdf|{{https://sdf.org/sdfbanner.png|Spreading the word about SDF}}]] |
| |
| |x|THIS IS A DRAFT| |
| |
| ===== 9fs link ===== |
| |
| |x|DRAFT [%%:FIXME:%%] ((The [%%:FIXME:%%] is interchangeable with a //[%%FIXME%%]//, for the [[plan9front_-_acme_sam_abaco_mothra_and_man#abaco|abaco]], and [[plan9front_-_acme_sam_abaco_mothra_and_man#mothra|mothra]] browsers. FIXME))| |
| |
| |x|<del>[[misc:newuser_raspberry_pi_2_b|newuser]]</del>; <del>//con -C /srv/hjfs.cmd//</del>|| |
| |x|<del>[[misc:newuser_raspberry_pi_2_b|sdflink]]</del>; <del>//...post//</del>|<sup>//com, bboard -s//</sup>| |
| |
| ===== To be determined ===== |
| |
| ==== Least ambitious?: ==== |
| |
| * It may be possible to use a 9front terminal (''term%'') from a CD-Rom boot [%%:FIXME:%%] ((The [%%:FIXME:%%] is interchangeable with a //[%%FIXME%%]//, for the [[plan9front_-_acme_sam_abaco_mothra_and_man#abaco|abaco]], and [[plan9front_-_acme_sam_abaco_mothra_and_man#mothra|mothra]] browsers. FIXME)). |
| * The hardware must support networking. |
| * Exclude timezone configuration step. |
| * To be determined |
| |