User Tools

Site Tools


plan9front_terminal_on_a_raspberry_pi_2_b

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
plan9front_terminal_on_a_raspberry_pi_2_b [2023/06/30 23:29] – [Least ambitious?:] hc9plan9front_terminal_on_a_raspberry_pi_2_b [2023/11/23 21:25] – %%:FIXME:%% m( hc9
Line 1: Line 1:
 +====== 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
  
plan9front_terminal_on_a_raspberry_pi_2_b.txt · Last modified: 2023/11/24 03:30 by hc9