moji

moji

plan9 cheat sheet

glenda by Renée French

glenda by Renée French

monitor and screen resolution for Thinkpad T500

˜ 9fs 9fat ˜ acme /n/9fat/plan9.ini ˜ add -> monitor=t43p ˜ add -> vgasize=1680x1050x32 ˜ add -> mouseport=ps2intellimouse

for mouses with scroll bar / wheel and notebooks

change keyboard layout

To chneg the keyboardmap you can use the command

˜ kbmap

The you are able to select the map by a right clock, e.g sg for swiss german. Now the selected map will be highlighted. To keep that chnages press q for exit. To permanentely change the map:

˜ 9fs 9fat ˜ echo 'kbmap=sg' >> /n/9fat/plan9.ini

mount usb stick

There are several ways to mount a ubs brive or stick. on 9front the device is mounted automaticallz (see below) of zou are working on plan9 the some work is needed. Fiorst insert the stick and get its name by

˜ ls /dev | grep sd

The to mount the drive run the following command, e.g. to mount the memory stick in /n/dos:

˜ mount <{dossrv -s} /n/dos /dev/sd[your device number]/dos

Now you can acces the content at the gioben mount point. For unmounting the drive use the following comments

˜ unmount /n/dos

In 9front USB sticks are then automatically mounted in

˜ /shr/[your device name]

installing wifi drivers and connecting to wifi

In most cases the wifi drivers are not installes on the systems but have to be added. Thereafter the kernel has to be recompiled and copied to the boot partition. To find out if you have an issue with the wifi firmware run

˜ cat /dev/kmesg

The you will maybe find a line similar to

˜ l1: '/lib/firmware/iwn-5000' does not exist

In that case got to [firmware.openbsd.org](https://firmware.openbsd.org/firmware/) and

download the latest firmware, e.g. iwn-firmware-5.11p1.tgz in /7.4. If you have

wired internet on the machine run

˜ hget https://firmware.openbsd.org/firmware/7.4/iwn-firmware-5.11p1.tgz

else download it to a usb stick. On 9front usbsticks are automatically mounted in /shr/. Untar and copy the file, i.e. iwn-5000 to /lib/firmware

˜ tar xzf iwn-firmware-5.11p1.tgz

then you need to recompile the kernel. For 386:

˜ cd /sys/src/9/pc ˜ mk install

The kernel is copied to /386/9p. For 386 and amd64 machines with local disk, it may be desired to install the new bootloader and kernels onto the 9fat partition, in order to boot directly from disk. Note: The bootloader needs to be continuous on disk, so simply copying over the original file does not produce the desired effect. Instead:

˜ 9fs 9fat ˜ rm /n/9fat/9bootfat ˜ cp /386/9bootfat /n/9fat/ ˜ chmod +al /n/9fat/9bootfat # defrag magic

then copy the desired kernels. For 386:

˜ cp /386/9pc /n/9fat/

then reboot the system. Then you have to bind the new ether1 to the /net folder

to get acces to the wifi port (automate that in future). Then start the wifi

˜ reboot ˜ bind -a '#l1' /net ˜ aux/wpa -s mynetwork -p /net/ether1 ˜ !Adding key: proto=wpapsk essid=mynetwork ˜ password:--- ˜ ! ˜ ip/ipconfig ether /net/ether1

You can easily automate the last two steps with a short script, and thus

connect to a wireless network with wifi mynetwork:

˜ fn wifi{ ˜ aux/wpa -s $1 -p /net/ether1 ˜ ip/ipconfig ether /net/ether1 ˜ }

battery status

the battery charge status can be ckecked trough the acpi services fo this zou sould start the one for the battery

˜ aux/acpi -s battery

It is the possible to read the status in

˜ /dev/battery

by cat it in the terminal. You will then get all the informations. best is to start the acpi service in the prorile file. In addition you can run

˜ bar

which will add a status bar at the bottom of the screen containing baterz charge % as well as date and time.

new user on hjfs

the new user is creats by sending commands to the file system. you can com into

the filesystem (not sure how this works, some deoms for fossil are on the web)

or you can echo commands int the file system:

˜ echo newuser >> /srv/hjfs.cmd

probably you also need:

˜ echo newuser adm + >> /srv/hjfs.cmd ˜ echo newuser sys + >> /srv/hjfs.cmd ˜ echo newuser upas + >> /srv/hjfs.cmd

this will create a new user in /auth/user. Next time log in with thei user and

˜ sys/lib/newuser

this will create the directiries and start into rio next time. now you can edit

your lib/profile and create also a riostart in your bin/rc folder. make

riostart executable (not ure if necessary)

˜ ˜ chmod +x riostart

in your profile change

˜ acme lib/profile

change rio -> rio -si riostart, where the -s will set the scroll option by default

timezone

You may also want to edit/change the TIMESYNCARGS in your /rc/bin/termrc or

/rc/bin/cpurc; for example, to use an NTP service, set it to:

˜ TIMESYNCARGS=(-n pool.ntp.org)

updating the system

first make sure that you are connecte to the internetr and then download the latest release with

˜ sysupdate

Now you can compile and install:

˜ cd /sys/src ˜ mk install

patch rio fro theming

as described on sigrids page (https://ftrv.se/14)

˜ bind -ac /dist/plan9front / ˜ cd /sys/src/cmd/rio ˜ hget https://ftrv.se/_/9/patches/rio-themes.patch | patch -p5 ˜ mk install

setup ssh for git etc

RSA is an asymmetric key. Keep your private key secret, but you can

share the public key for people to encrypt messages that only you can

decode with the private key. First generate private key

˜ auth/rsagen -t 'service=ssh' > $home/lib/sshkey

generate public key, if you need to share it:

˜ auth/rsa2ssh $home/lib/sshkey > $home/lib/sshkey.pub

Put the private key in the password manager

˜ cat $home/lib/sshkey > /mnt/factotum/ctl

Add this last line in your profile such to load the key atomatically. After adding your publik key to the git instance you should be able to use git. The first time you clone you will get an error as the host is not in your list. Just follow the suggested echo command from the error output to add the thumbkey to your system.

using git

If you like you should add your user info to the system

˜ mkdir -p $home/lib/git ˜ touch $home/lib/git/config

add the following lines to the config

˜ [user] ˜ name=YOUR NAME ˜ email=YOUR EMAIL

for cloning use

˜ git/clone

for adding all files use

˜ git/add ./

For commiting all files you need to specify the files compared to the typical git.

˜ git/commit -m "YOUR MESSAGE" ./

9p.sdf.org

For connecting to sdf you need to add the following to /lib/nbd/local

˜ authdom=9sdf auth=9p.sdf.org

if you add to the end for the file dont forget the new line else the commend wont execute

To add your face to the faces/neinbook upload a jpg (512x512 or so) and tranfoprm it:

˜ jpg -c myface.jpg | iconv -c m8 | resample -x 48 -y 48 > myface.1

check the resutlt:

˜ tweak myface.1

If you are happy copy to $home/lin/face and setup

˜ mkdir $home/lib/face # if not aleady there ˜ cp ./myface.1 $home/lin/face/$user.1 ˜ cd $home/lin/face/ ˜ faceoff

starting neinbook

˜ plumber ˜ neinbook

starting mail on 9p.sdf.org

More info here [9p.sdf.org wiki](https://wiki.sdf.org/doku.php?id=plan9front_-_mailing_and_faces)

˜ plumber ˜ mail -c

this creates folders, needed ony once for new user

˜ upas/fs ˜ acme

Then add the word Mail in the top menu and middle klick it.

To mount an ftp drive to sdf.prg (anonymous)

˜ ftpfs -a ftp.sdf.org -m /mnt/sdf ftp.sdf.org

setup auth and filserver from fresh install

edit plan9.ini:

specify the nvram to the add the hostowner to it in the next step

add this to plan9.ini

˜ nvram=/dev/sdE?/nvram ˜ the reboot

setup authserver / hostowner:

˜ auth/wrkey ˜ authid: glenda ˜ authdomain: Somewhere (thewall) ˜ secstore key: (blank) ˜ password: password for glenda ˜ confirm: ˜ enable legacy: no ˜ auth/keyfs ˜ auth/changuser glenda ˜ Password: same as above ˜ Confirm Password: ˜ secret: y ˜ make it: y ˜ then use defaults aor something ˜ auth/enable glenda

add a regular user:

˜ auth/changeuser icoon

the same as above then:

˜ auth/enable icoon

also you need to add the user to the filesystem

˜ echo newuser icoon >>/srv/cwfs.cmd

setup the net database:

˜ cd /lib/ndb ˜ edit local ˜ sys = somehost ˜ auth = the ip adress (asako) authdom = Somewhere (asako.thewell) ˜ ipnet=asako.thewell ip= 10.10.0.0 ipmask=255.255.255.0 ipgw=10.10.0.1 ˜ dns=10.10.0.1 ˜ dnsdom=asako.thewell ˜ auth=asako ˜ fs=asako ˜ cpu=asako ˜ sys=asako ether=... ip=10.10.0.3 ipmask=255.255.255.0 ipgw=10.10.0.1 dns=10.10.0.1

->get the real ip from cat /net/nbd

edit again plan9.ini:

˜ mount 9fat or esp

make a copy -> old.plan9.ini

make a copy -> new.plan9.ini

get ip adress with cat /net/ndb

set the ip adresses in the plan9.ini

edit plan9.ini:

add service=cpu

bootargs add -c at the end

edit new.plan9.ini:

add service=cpu

bootargs add -a tcp!*564

change bootargs to nobootprompt (once it works)

activate auth:

reboot

now you can press enter to start with the -c arg

˜ config: noauth ˜ auth disabled ˜ config:noauth ˜ auth enabled ˜ config:end

switch the plan9.ini:

˜ mv plan9.ini config.plan9.ini ˜ mv new.plan9.ini plan9.ini

reboot et voilà. login from drawterm or other.