cpu


Tue Mar 3 03:58:56 PST 2026, jrmu@inter9.org (104.167.242.140)
update ndb/dns link

CONFIGURING CPU SERVER

First, add your user to the adm group. If using fossil, see instructions.

Afterwards, set your timezone.

Next, prepare the rc scripts that run on system bootup.

It is then necessary to configure networking.

Networking must be configured before running ndb/dns. Otherwise, you might see errors like:

ndb/dns: can't read my ip address

Configure network information with ndb/dns.

; auth/wrkey
bad authentication password
bad authentication id
bad authentication domain
authid: glenda
authdom: example.com
auth password:
secstore password:

Make sure to configure the auth server.

Build the cpu kernel for x86:

; cd /sys/src/9/pc
; mk 'CONF=pccpuf'
; 9fat:
; cp /sys/src/9/pc/9pccpuf /n/9fat/

Add these lines to the beginning of /n/9fat/plan9.ini

[menu]
menuitem=cpu, Plan 9 CPU Kernel
menuitem=terminal, Plan 9 Terminal Kernel
menudefault=cpu, 10

[cpu]
bootfile=sdC0/!9fat!9pccpuf

[terminal]
bootfile=sdC0!9fat!9pcf

[common]
nobootprompt=local!#S/sdC0/fossil

Make sure to replace sdC0 with your actual disk. Make sure also to delete the pre-existing line:

bootfile=sdC0!9fat!9pcf

Clear nvram and then set a new password:

; echo garbage >/dev/sdC0/nvram

Remember to replace sdC0 with your actual hard disk.

Set the password:

; auth/keyfs

Add the hostowner bootes to sys and adm groups:

; con -Cl /srv/fscons
prompt: uname bootes bootes
prompt: uname sys +bootes
prompt: uname adm +bootes
prompt: fsys main
main: create /active/cron/bootes bootes bootes d775
main: create /active/sys/log/cron bootes bootes a664

Append these lines to the bottom of /lib/ndb/auth:

hostid=bootes
	uid=!sys uid=!adm uid=*

You may need to reboot and login as hostowner (bootes) in order for the next step to work.

If you do reboot, select 1 for Plan 9 CPU Kernel:

Plan 9 Startup Menu:
====================
   1. Plan 9 CPU Kernel
   2. Plan 9 Terminal Kernel
Selection[default==1 (10s timeout)]: 1

When prompted, fill in the following values:

authid: bootes
authdom: example.com
auth password:
secstore password:

Change the hostowner's password:

; auth/keyfs
; auth/changeuser bootes

If you are using 9front drawterm and want to connect in text-only mode (no graphics) with the -G flag, you will need to edit $home/lib/profile to remove calls to rio. Comment out line 31:

# exec rio

You can run the below command:

; mv (/usr/$user/lib/)^(profile profile.bak)
; sed '31s/^/#/' /usr/$user/lib/profile.bak > /usr/$user/lib/profile

Then afterwards, you will be able to connect with drawterm -G as follow:

$ drawterm -u $USER -h $SYSNAME -G

After connecting, it is recommended you run /sys/lib/newuser so that rio can work.

See also:

https://plan9.io/wiki/plan9/Configuring_a_Standalone_CPU_Server/index.html https://9p.io/wiki/plan9/Drawterm_to_your_terminal/index.html http://mirror.9grid.fr/mirror.9grid.fr/plan9-cpu-auth-server-howto.html


Tue Mar 3 03:27:42 PST 2026, jrmu@inter9.org (104.167.242.140)
remove instructions factored out into cpurc

CONFIGURING CPU SERVER

First, add your user to the adm group. If using fossil, see instructions.

Afterwards, set your timezone.

Next, prepare the rc scripts that run on system bootup.

It is then necessary to configure networking.

Networking must be configured before running ndb/dns. Otherwise, you might see errors like:

ndb/dns: can't read my ip address

Configure network information with ndb.

; auth/wrkey
bad authentication password
bad authentication id
bad authentication domain
authid: glenda
authdom: example.com
auth password:
secstore password:

Make sure to configure the auth server.

Build the cpu kernel for x86:

; cd /sys/src/9/pc
; mk 'CONF=pccpuf'
; 9fat:
; cp /sys/src/9/pc/9pccpuf /n/9fat/

Add these lines to the beginning of /n/9fat/plan9.ini

[menu]
menuitem=cpu, Plan 9 CPU Kernel
menuitem=terminal, Plan 9 Terminal Kernel
menudefault=cpu, 10

[cpu]
bootfile=sdC0/!9fat!9pccpuf

[terminal]
bootfile=sdC0!9fat!9pcf

[common]
nobootprompt=local!#S/sdC0/fossil

Make sure to replace sdC0 with your actual disk. Make sure also to delete the pre-existing line:

bootfile=sdC0!9fat!9pcf

Clear nvram and then set a new password:

; echo garbage >/dev/sdC0/nvram

Remember to replace sdC0 with your actual hard disk.

Set the password:

; auth/keyfs

Add the hostowner bootes to sys and adm groups:

; con -Cl /srv/fscons
prompt: uname bootes bootes
prompt: uname sys +bootes
prompt: uname adm +bootes
prompt: fsys main
main: create /active/cron/bootes bootes bootes d775
main: create /active/sys/log/cron bootes bootes a664

Append these lines to the bottom of /lib/ndb/auth:

hostid=bootes
	uid=!sys uid=!adm uid=*

You may need to reboot and login as hostowner (bootes) in order for the next step to work.

If you do reboot, select 1 for Plan 9 CPU Kernel:

Plan 9 Startup Menu:
====================
   1. Plan 9 CPU Kernel
   2. Plan 9 Terminal Kernel
Selection[default==1 (10s timeout)]: 1

When prompted, fill in the following values:

authid: bootes
authdom: example.com
auth password:
secstore password:

Change the hostowner's password:

; auth/keyfs
; auth/changeuser bootes

If you are using 9front drawterm and want to connect in text-only mode (no graphics) with the -G flag, you will need to edit $home/lib/profile to remove calls to rio. Comment out line 31:

# exec rio

You can run the below command:

; mv (/usr/$user/lib/)^(profile profile.bak)
; sed '31s/^/#/' /usr/$user/lib/profile.bak > /usr/$user/lib/profile

Then afterwards, you will be able to connect with drawterm -G as follow:

$ drawterm -u $USER -h $SYSNAME -G

After connecting, it is recommended you run /sys/lib/newuser so that rio can work.

See also:

https://plan9.io/wiki/plan9/Configuring_a_Standalone_CPU_Server/index.html https://9p.io/wiki/plan9/Drawterm_to_your_terminal/index.html http://mirror.9grid.fr/mirror.9grid.fr/plan9-cpu-auth-server-howto.html


Tue Mar 3 03:20:23 PST 2026, jrmu@inter9.org (104.167.242.140)
Factor out cpurc scripts

CONFIGURING CPU SERVER

First, add your user to the adm group. If using fossil, see instructions.

Afterwards, set your timezone.

Next, prepare the rc scripts that run on system bootup.

It is then necessary to configure networking.

Networking must be configured before running ndb/dns. Otherwise, you might see errors like:

ndb/dns: can't read my ip address

Configure network information with ndb.

Note: You may also want to copy these lines to /cfg/$sysname/termrc and also to run the command manually, because by default, plan 9 runs as a terminal service. It will not run as a cpu service until the cpu kernel has been compiled as described below.

; auth/wrkey
bad authentication password
bad authentication id
bad authentication domain
authid: glenda
authdom: example.com
auth password:
secstore password:

Make sure to configure the auth server.

Build the cpu kernel for x86:

; cd /sys/src/9/pc
; mk 'CONF=pccpuf'
; 9fat:
; cp /sys/src/9/pc/9pccpuf /n/9fat/

Add these lines to the beginning of /n/9fat/plan9.ini

[menu]
menuitem=cpu, Plan 9 CPU Kernel
menuitem=terminal, Plan 9 Terminal Kernel
menudefault=cpu, 10

[cpu]
bootfile=sdC0/!9fat!9pccpuf

[terminal]
bootfile=sdC0!9fat!9pcf

[common]
nobootprompt=local!#S/sdC0/fossil

Make sure to replace sdC0 with your actual disk. Make sure also to delete the pre-existing line:

bootfile=sdC0!9fat!9pcf

Clear nvram and then set a new password:

; echo garbage >/dev/sdC0/nvram

Remember to replace sdC0 with your actual hard disk.

Set the password:

; auth/keyfs

Add the hostowner bootes to sys and adm groups:

; con -Cl /srv/fscons
prompt: uname bootes bootes
prompt: uname sys +bootes
prompt: uname adm +bootes
prompt: fsys main
main: create /active/cron/bootes bootes bootes d775
main: create /active/sys/log/cron bootes bootes a664

Append these lines to the bottom of /lib/ndb/auth:

hostid=bootes
	uid=!sys uid=!adm uid=*

You may need to reboot and login as hostowner (bootes) in order for the next step to work.

If you do reboot, select 1 for Plan 9 CPU Kernel:

Plan 9 Startup Menu:
====================
   1. Plan 9 CPU Kernel
   2. Plan 9 Terminal Kernel
Selection[default==1 (10s timeout)]: 1

When prompted, fill in the following values:

authid: bootes
authdom: example.com
auth password:
secstore password:

Change the hostowner's password:

; auth/keyfs
; auth/changeuser bootes

If you are using 9front drawterm and want to connect in text-only mode (no graphics) with the -G flag, you will need to edit $home/lib/profile to remove calls to rio. Comment out line 31:

# exec rio

You can run the below command:

; mv (/usr/$user/lib/)^(profile profile.bak)
; sed '31s/^/#/' /usr/$user/lib/profile.bak > /usr/$user/lib/profile

Then afterwards, you will be able to connect with drawterm -G as follow:

$ drawterm -u $USER -h $SYSNAME -G

After connecting, it is recommended you run /sys/lib/newuser so that rio can work.

See also:

https://plan9.io/wiki/plan9/Configuring_a_Standalone_CPU_Server/index.html https://9p.io/wiki/plan9/Drawterm_to_your_terminal/index.html http://mirror.9grid.fr/mirror.9grid.fr/plan9-cpu-auth-server-howto.html


Tue Mar 3 03:08:57 PST 2026, jrmu@inter9.org (104.167.242.140)
factor out ipconfig and reorganize

CONFIGURING CPU SERVER

First, add your user to the adm group. If using fossil, see instructions.

Afterwards, set your timezone.

Next, prepare rc scripts that run on system bootup:

; mkdir /cfg/$sysname/
; dircp /cfg/example /cfg/$sysname/

Replace $sysname with the desired system name (see sysname(2))

Next, it is necessary to configure networking.

Networking must be configured before running ndb/dns. Otherwise, you might see errors like:

ndb/dns: can't read my ip address

Configure network information with ndb.

Note: You may also want to copy these lines to /cfg/$sysname/termrc and also to run the command manually, because by default, plan 9 runs as a terminal service. It will not run as a cpu service until the cpu kernel has been compiled as described below.

; auth/wrkey
bad authentication password
bad authentication id
bad authentication domain
authid: glenda
authdom: example.com
auth password:
secstore password:

Make sure to configure the auth server.

Build the cpu kernel for x86:

; cd /sys/src/9/pc
; mk 'CONF=pccpuf'
; 9fat:
; cp /sys/src/9/pc/9pccpuf /n/9fat/

Add these lines to the beginning of /n/9fat/plan9.ini

[menu]
menuitem=cpu, Plan 9 CPU Kernel
menuitem=terminal, Plan 9 Terminal Kernel
menudefault=cpu, 10

[cpu]
bootfile=sdC0/!9fat!9pccpuf

[terminal]
bootfile=sdC0!9fat!9pcf

[common]
nobootprompt=local!#S/sdC0/fossil

Make sure to replace sdC0 with your actual disk. Make sure also to delete the pre-existing line:

bootfile=sdC0!9fat!9pcf

Clear nvram and then set a new password:

; echo garbage >/dev/sdC0/nvram

Remember to replace sdC0 with your actual hard disk.

Set the password:

; auth/keyfs

Add the hostowner bootes to sys and adm groups:

; con -Cl /srv/fscons
prompt: uname bootes bootes
prompt: uname sys +bootes
prompt: uname adm +bootes
prompt: fsys main
main: create /active/cron/bootes bootes bootes d775
main: create /active/sys/log/cron bootes bootes a664

Append these lines to the bottom of /lib/ndb/auth:

hostid=bootes
	uid=!sys uid=!adm uid=*

You may need to reboot and login as hostowner (bootes) in order for the next step to work.

If you do reboot, select 1 for Plan 9 CPU Kernel:

Plan 9 Startup Menu:
====================
   1. Plan 9 CPU Kernel
   2. Plan 9 Terminal Kernel
Selection[default==1 (10s timeout)]: 1

When prompted, fill in the following values:

authid: bootes
authdom: example.com
auth password:
secstore password:

Change the hostowner's password:

; auth/keyfs
; auth/changeuser bootes

If you are using 9front drawterm and want to connect in text-only mode (no graphics) with the -G flag, you will need to edit $home/lib/profile to remove calls to rio. Comment out line 31:

# exec rio

You can run the below command:

; mv (/usr/$user/lib/)^(profile profile.bak)
; sed '31s/^/#/' /usr/$user/lib/profile.bak > /usr/$user/lib/profile

Then afterwards, you will be able to connect with drawterm -G as follow:

$ drawterm -u $USER -h $SYSNAME -G

After connecting, it is recommended you run /sys/lib/newuser so that rio can work.

See also:

https://plan9.io/wiki/plan9/Configuring_a_Standalone_CPU_Server/index.html https://9p.io/wiki/plan9/Drawterm_to_your_terminal/index.html http://mirror.9grid.fr/mirror.9grid.fr/plan9-cpu-auth-server-howto.html


Tue Mar 3 02:42:16 PST 2026, jrmu@inter9.org (104.167.242.140)
rearrange step for preparing rc script

CONFIGURING CPU SERVER

First, add your user to the adm group. If using fossil, see instructions.

Afterwards, set your timezone.

Next, prepare rc scripts that run on system bootup:

; mkdir /cfg/$sysname/
; dircp /cfg/example /cfg/$sysname/

Replace $sysname with the desired system name (see sysname(2))

Configure network information with ndb.

Now, we need to configure networking:

If you have static networking (such as for a server), edit /cfg/$sysname/cpurc to uncomment this line:

ip/ipconfig -g your-gateway ether /net/ether0 your-ip-address your-subnet-mask

If you are using wifi and dynamic networking, you may need to add these lines:

bind -a '#l1' /net
echo 'key proto=wpapsk essid=ESSID !password='^`{cat /lib/wpa/ESSID} > /mnt/factotum/ctl
aux/wpa -2 -s 'ESSID' /net/ether1
ip/ipconfig ether /net/ether1

Replace ESSID and make sure to store the wifi password in /lib/wpa/ESSID.

Note: You may also want to copy these lines to /cfg/$sysname/termrc and also to run the command manually, because by default, plan 9 runs as a terminal service. It will not run as a cpu service until the cpu kernel has been compiled as described below.

Note: You *must* run ip/ipconfig before running ndb/dns (and possibly other network services). Otherwise, you might see errors like:

ndb/dns: can't read my ip address
; auth/wrkey
bad authentication password
bad authentication id
bad authentication domain
authid: glenda
authdom: example.com
auth password:
secstore password:

Make sure to configure the auth server.

Build the cpu kernel for x86:

; cd /sys/src/9/pc
; mk 'CONF=pccpuf'
; 9fat:
; cp /sys/src/9/pc/9pccpuf /n/9fat/

Add these lines to the beginning of /n/9fat/plan9.ini

[menu]
menuitem=cpu, Plan 9 CPU Kernel
menuitem=terminal, Plan 9 Terminal Kernel
menudefault=cpu, 10

[cpu]
bootfile=sdC0/!9fat!9pccpuf

[terminal]
bootfile=sdC0!9fat!9pcf

[common]
nobootprompt=local!#S/sdC0/fossil

Make sure to replace sdC0 with your actual disk. Make sure also to delete the pre-existing line:

bootfile=sdC0!9fat!9pcf

Clear nvram and then set a new password:

; echo garbage >/dev/sdC0/nvram

Remember to replace sdC0 with your actual hard disk.

Set the password:

; auth/keyfs

Add the hostowner bootes to sys and adm groups:

; con -Cl /srv/fscons
prompt: uname bootes bootes
prompt: uname sys +bootes
prompt: uname adm +bootes
prompt: fsys main
main: create /active/cron/bootes bootes bootes d775
main: create /active/sys/log/cron bootes bootes a664

Append these lines to the bottom of /lib/ndb/auth:

hostid=bootes
	uid=!sys uid=!adm uid=*

You may need to reboot and login as hostowner (bootes) in order for the next step to work.

If you do reboot, select 1 for Plan 9 CPU Kernel:

Plan 9 Startup Menu:
====================
   1. Plan 9 CPU Kernel
   2. Plan 9 Terminal Kernel
Selection[default==1 (10s timeout)]: 1

When prompted, fill in the following values:

authid: bootes
authdom: example.com
auth password:
secstore password:

Change the hostowner's password:

; auth/keyfs
; auth/changeuser bootes

If you are using 9front drawterm and want to connect in text-only mode (no graphics) with the -G flag, you will need to edit $home/lib/profile to remove calls to rio. Comment out line 31:

# exec rio

You can run the below command:

; mv (/usr/$user/lib/)^(profile profile.bak)
; sed '31s/^/#/' /usr/$user/lib/profile.bak > /usr/$user/lib/profile

Then afterwards, you will be able to connect with drawterm -G as follow:

$ drawterm -u $USER -h $SYSNAME -G

After connecting, it is recommended you run /sys/lib/newuser so that rio can work.

See also:

https://plan9.io/wiki/plan9/Configuring_a_Standalone_CPU_Server/index.html https://9p.io/wiki/plan9/Drawterm_to_your_terminal/index.html http://mirror.9grid.fr/mirror.9grid.fr/plan9-cpu-auth-server-howto.html


Fri Feb 27 21:22:48 PST 2026, jrmu@inter9.org (104.167.242.140)
fix syntax/formatting

CONFIGURING CPU SERVER

First, add your user to the adm group. If using fossil, see instructions.

Afterwards, set your timezone.

Next, make sure to configure your network information with ndb.

Now, we prepare rc scripts that must run on system bootup:

; mkdir /cfg/$sysname/
; dircp /cfg/example /cfg/$sysname/

Now, we need to configure networking:

If you have static networking (such as for a server), edit /cfg/$sysname/cpurc to uncomment this line:

ip/ipconfig -g your-gateway ether /net/ether0 your-ip-address your-subnet-mask

If you are using wifi and dynamic networking, you may need to add these lines:

bind -a '#l1' /net
echo 'key proto=wpapsk essid=ESSID !password='^`{cat /lib/wpa/ESSID} > /mnt/factotum/ctl
aux/wpa -2 -s 'ESSID' /net/ether1
ip/ipconfig ether /net/ether1

Replace ESSID and make sure to store the wifi password in /lib/wpa/ESSID.

Note: You may also want to copy these lines to /cfg/$sysname/termrc and also to run the command manually, because by default, plan 9 runs as a terminal service. It will not run as a cpu service until the cpu kernel has been compiled as described below.

Note: You *must* run ip/ipconfig before running ndb/dns (and possibly other network services). Otherwise, you might see errors like:

ndb/dns: can't read my ip address
; auth/wrkey
bad authentication password
bad authentication id
bad authentication domain
authid: glenda
authdom: example.com
auth password:
secstore password:

Make sure to configure the auth server.

Build the cpu kernel for x86:

; cd /sys/src/9/pc
; mk 'CONF=pccpuf'
; 9fat:
; cp /sys/src/9/pc/9pccpuf /n/9fat/

Add these lines to the beginning of /n/9fat/plan9.ini

[menu]
menuitem=cpu, Plan 9 CPU Kernel
menuitem=terminal, Plan 9 Terminal Kernel
menudefault=cpu, 10

[cpu]
bootfile=sdC0/!9fat!9pccpuf

[terminal]
bootfile=sdC0!9fat!9pcf

[common]
nobootprompt=local!#S/sdC0/fossil

Make sure to replace sdC0 with your actual disk. Make sure also to delete the pre-existing line:

bootfile=sdC0!9fat!9pcf

Clear nvram and then set a new password:

; echo garbage >/dev/sdC0/nvram

Remember to replace sdC0 with your actual hard disk.

Set the password:

; auth/keyfs

Add the hostowner bootes to sys and adm groups:

; con -Cl /srv/fscons
prompt: uname bootes bootes
prompt: uname sys +bootes
prompt: uname adm +bootes
prompt: fsys main
main: create /active/cron/bootes bootes bootes d775
main: create /active/sys/log/cron bootes bootes a664

Append these lines to the bottom of /lib/ndb/auth:

hostid=bootes
	uid=!sys uid=!adm uid=*

You may need to reboot and login as hostowner (bootes) in order for the next step to work.

If you do reboot, select 1 for Plan 9 CPU Kernel:

Plan 9 Startup Menu:
====================
   1. Plan 9 CPU Kernel
   2. Plan 9 Terminal Kernel
Selection[default==1 (10s timeout)]: 1

When prompted, fill in the following values:

authid: bootes
authdom: example.com
auth password:
secstore password:

Change the hostowner's password:

; auth/keyfs
; auth/changeuser bootes

If you are using 9front drawterm and want to connect in text-only mode (no graphics) with the -G flag, you will need to edit $home/lib/profile to remove calls to rio. Comment out line 31:

# exec rio

You can run the below command:

; mv (/usr/$user/lib/)^(profile profile.bak)
; sed '31s/^/#/' /usr/$user/lib/profile.bak > /usr/$user/lib/profile

Then afterwards, you will be able to connect with drawterm -G as follow:

$ drawterm -u $USER -h $SYSNAME -G

After connecting, it is recommended you run /sys/lib/newuser so that rio can work.

See also:

https://plan9.io/wiki/plan9/Configuring_a_Standalone_CPU_Server/index.html https://9p.io/wiki/plan9/Drawterm_to_your_terminal/index.html http://mirror.9grid.fr/mirror.9grid.fr/plan9-cpu-auth-server-howto.html


Fri Feb 27 20:41:58 PST 2026, jrmu@inter9.org (104.167.242.140)
Fix fossil link

CONFIGURING CPU SERVER

First, add your user to the adm group. If using fossil, see instructions.

Afterwards, set your timezone, see timezone-p9.ms.

Next, make sure to configure your network information. See ndb-p9.ms.

Now, we prepare rc scripts that must run on system bootup:

term% mkdir /cfg/$sysname/ term% dircp /cfg/example /cfg/$sysname/

Now, we need to configure networking:

If you have static networking (eg, you have a virtual private server), edit /cfg/$sysname/cpurc to uncomment this line:

ip/ipconfig -g your-gateway ether /net/ether0 your-ip-address your-subnet-mask

If you are using wifi and dynamic networking, you may need to add these lines:

bind -a '#l1' /net echo 'key proto=wpapsk essid=ESSID

password='^`{cat /lib/wpa/ESSID} > /mnt/factotum/ctl aux/wpa -2 -s
'ESSID' /net/ether1 ip/ipconfig ether /net/ether1

Replace ESSID and make sure to store the wifi password in /lib/wpa/ESSID.

Note: You may also want to copy these lines to /cfg/$sysname/termrc and also to run the command manually, because by default, plan 9 runs as a terminal service. It will not run as a cpu service until the cpu kernel has been compiled as described below.

Note: You *must* run ip/ipconfig before running ndb/dns (and possibly other network services). Otherwise, you might see errors like:

ndb/dns: can't read my ip address

term% auth/wrkey bad authentication password bad authentication id bad authentication domain authid: glenda authdom: example.com auth password: secstore password:

Make sure to configure the auth server, see auth-p9.ms.

Build the cpu kernel for x86:

cd /sys/src/9/pc mk 'CONF=pccpuf' term% 9fat: term% cp /sys/src/9/pc/9pccpuf /n/9fat/ Add these lines to the beginning of /n/9fat/plan9.ini

menu menuitem=cpu, Plan 9 CPU Kernel menuitem=terminal, Plan 9 Terminal Kernel menudefault=cpu, 10

cpu bootfile=sdC0/!9fat!9pccpuf

terminal bootfile=sdC0!9fat!9pcf

common nobootprompt=local!#S/sdC0/fossil

Make sure to replace sdC0 with your actual disk. Make sure also to delete the pre-existing line:

bootfile=sdC0!9fat!9pcf

Clear nvram and then set a new password:

term% echo garbage >/dev/sdC0/nvram

Remember to replace sdC0 with your actual hard disk.

Set the password:

term% auth/keyfs

Add the hostowner bootes to sys and adm groups:

term% con -Cl /srv/fscons prompt: uname bootes bootes prompt: uname sys +bootes prompt: uname adm +bootes prompt: fsys main main: create /active/cron/bootes bootes bootes d775 main: create /active/sys/log/cron bootes bootes a664

Append these lines to the bottom of /lib/ndb/auth:

hostid=bootes uid=!sys uid=!adm uid=*

You may need to reboot and login as hostowner (bootes) in order for the next step to work.

If you do reboot, select 1 for Plan 9 CPU Kernel:

Plan 9 Startup Menu: ==================== 1. Plan 9 CPU Kernel 2. Plan 9 Terminal Kernel Selectiondefault==1 (10s timeout): 1

When prompted, fill in the following values:

authid: bootes authdom: example.com auth password: secstore password:

Change the hostowner's password:

term% auth/keyfs term% auth/changeuser bootes

If you are using 9front drawterm and want to connect in text-only mode (no graphics) with the -G flag, you will need to edit $home/lib/profile to remove calls to rio. Comment out line 31:

# exec rio

You can run the below command:

term% mv (/usr/$user/lib/)^(profile profile.bak) term% sed '31s/^/#/' /usr/$user/lib/profile.bak > /usr/$user/lib/profile

Then afterwards, you will be able to connect with drawterm -G as follow:

$ drawterm -u $USER -h $SYSNAME -G

After connecting, it is recommended you run /sys/lib/newuser so that rio can work.

See also:

https://plan9.io/wiki/plan9/Configuring_a_Standalone_CPU_Server/index.html https://9p.io/wiki/plan9/Drawterm_to_your_terminal/index.html http://mirror.9grid.fr/mirror.9grid.fr/plan9-cpu-auth-server-howto.html


Fri Feb 27 20:41:22 PST 2026, jrmu@inter9.org (104.167.242.140)
fix fossil link

CONFIGURING CPU SERVER

First, add your user to the adm group. If using fossil, see instructions.

Afterwards, set your timezone, see timezone-p9.ms.

Next, make sure to configure your network information. See ndb-p9.ms.

Now, we prepare rc scripts that must run on system bootup:

term% mkdir /cfg/$sysname/ term% dircp /cfg/example /cfg/$sysname/

Now, we need to configure networking:

If you have static networking (eg, you have a virtual private server), edit /cfg/$sysname/cpurc to uncomment this line:

ip/ipconfig -g your-gateway ether /net/ether0 your-ip-address your-subnet-mask

If you are using wifi and dynamic networking, you may need to add these lines:

bind -a '#l1' /net echo 'key proto=wpapsk essid=ESSID

password='^`{cat /lib/wpa/ESSID} > /mnt/factotum/ctl aux/wpa -2 -s
'ESSID' /net/ether1 ip/ipconfig ether /net/ether1

Replace ESSID and make sure to store the wifi password in /lib/wpa/ESSID.

Note: You may also want to copy these lines to /cfg/$sysname/termrc and also to run the command manually, because by default, plan 9 runs as a terminal service. It will not run as a cpu service until the cpu kernel has been compiled as described below.

Note: You *must* run ip/ipconfig before running ndb/dns (and possibly other network services). Otherwise, you might see errors like:

ndb/dns: can't read my ip address

term% auth/wrkey bad authentication password bad authentication id bad authentication domain authid: glenda authdom: example.com auth password: secstore password:

Make sure to configure the auth server, see auth-p9.ms.

Build the cpu kernel for x86:

cd /sys/src/9/pc mk 'CONF=pccpuf' term% 9fat: term% cp /sys/src/9/pc/9pccpuf /n/9fat/ Add these lines to the beginning of /n/9fat/plan9.ini

menu menuitem=cpu, Plan 9 CPU Kernel menuitem=terminal, Plan 9 Terminal Kernel menudefault=cpu, 10

cpu bootfile=sdC0/!9fat!9pccpuf

terminal bootfile=sdC0!9fat!9pcf

common nobootprompt=local!#S/sdC0/fossil

Make sure to replace sdC0 with your actual disk. Make sure also to delete the pre-existing line:

bootfile=sdC0!9fat!9pcf

Clear nvram and then set a new password:

term% echo garbage >/dev/sdC0/nvram

Remember to replace sdC0 with your actual hard disk.

Set the password:

term% auth/keyfs

Add the hostowner bootes to sys and adm groups:

term% con -Cl /srv/fscons prompt: uname bootes bootes prompt: uname sys +bootes prompt: uname adm +bootes prompt: fsys main main: create /active/cron/bootes bootes bootes d775 main: create /active/sys/log/cron bootes bootes a664

Append these lines to the bottom of /lib/ndb/auth:

hostid=bootes uid=!sys uid=!adm uid=*

You may need to reboot and login as hostowner (bootes) in order for the next step to work.

If you do reboot, select 1 for Plan 9 CPU Kernel:

Plan 9 Startup Menu: ==================== 1. Plan 9 CPU Kernel 2. Plan 9 Terminal Kernel Selectiondefault==1 (10s timeout): 1

When prompted, fill in the following values:

authid: bootes authdom: example.com auth password: secstore password:

Change the hostowner's password:

term% auth/keyfs term% auth/changeuser bootes

If you are using 9front drawterm and want to connect in text-only mode (no graphics) with the -G flag, you will need to edit $home/lib/profile to remove calls to rio. Comment out line 31:

# exec rio

You can run the below command:

term% mv (/usr/$user/lib/)^(profile profile.bak) term% sed '31s/^/#/' /usr/$user/lib/profile.bak > /usr/$user/lib/profile

Then afterwards, you will be able to connect with drawterm -G as follow:

$ drawterm -u $USER -h $SYSNAME -G

After connecting, it is recommended you run /sys/lib/newuser so that rio can work.

See also:

https://plan9.io/wiki/plan9/Configuring_a_Standalone_CPU_Server/index.html https://9p.io/wiki/plan9/Drawterm_to_your_terminal/index.html http://mirror.9grid.fr/mirror.9grid.fr/plan9-cpu-auth-server-howto.html


Fri Feb 27 20:40:19 PST 2026, jrmu@inter9.org (104.167.242.140)
Fix heading formatting and fossil link

CONFIGURING CPU SERVER

First, add your user to the adm group. If using fossil, see instructions.

Afterwards, set your timezone, see timezone-p9.ms.

Next, make sure to configure your network information. See ndb-p9.ms.

Now, we prepare rc scripts that must run on system bootup:

term% mkdir /cfg/$sysname/ term% dircp /cfg/example /cfg/$sysname/

Now, we need to configure networking:

If you have static networking (eg, you have a virtual private server), edit /cfg/$sysname/cpurc to uncomment this line:

ip/ipconfig -g your-gateway ether /net/ether0 your-ip-address your-subnet-mask

If you are using wifi and dynamic networking, you may need to add these lines:

bind -a '#l1' /net echo 'key proto=wpapsk essid=ESSID

password='^`{cat /lib/wpa/ESSID} > /mnt/factotum/ctl aux/wpa -2 -s
'ESSID' /net/ether1 ip/ipconfig ether /net/ether1

Replace ESSID and make sure to store the wifi password in /lib/wpa/ESSID.

Note: You may also want to copy these lines to /cfg/$sysname/termrc and also to run the command manually, because by default, plan 9 runs as a terminal service. It will not run as a cpu service until the cpu kernel has been compiled as described below.

Note: You *must* run ip/ipconfig before running ndb/dns (and possibly other network services). Otherwise, you might see errors like:

ndb/dns: can't read my ip address

term% auth/wrkey bad authentication password bad authentication id bad authentication domain authid: glenda authdom: example.com auth password: secstore password:

Make sure to configure the auth server, see auth-p9.ms.

Build the cpu kernel for x86:

cd /sys/src/9/pc mk 'CONF=pccpuf' term% 9fat: term% cp /sys/src/9/pc/9pccpuf /n/9fat/ Add these lines to the beginning of /n/9fat/plan9.ini

menu menuitem=cpu, Plan 9 CPU Kernel menuitem=terminal, Plan 9 Terminal Kernel menudefault=cpu, 10

cpu bootfile=sdC0/!9fat!9pccpuf

terminal bootfile=sdC0!9fat!9pcf

common nobootprompt=local!#S/sdC0/fossil

Make sure to replace sdC0 with your actual disk. Make sure also to delete the pre-existing line:

bootfile=sdC0!9fat!9pcf

Clear nvram and then set a new password:

term% echo garbage >/dev/sdC0/nvram

Remember to replace sdC0 with your actual hard disk.

Set the password:

term% auth/keyfs

Add the hostowner bootes to sys and adm groups:

term% con -Cl /srv/fscons prompt: uname bootes bootes prompt: uname sys +bootes prompt: uname adm +bootes prompt: fsys main main: create /active/cron/bootes bootes bootes d775 main: create /active/sys/log/cron bootes bootes a664

Append these lines to the bottom of /lib/ndb/auth:

hostid=bootes uid=!sys uid=!adm uid=*

You may need to reboot and login as hostowner (bootes) in order for the next step to work.

If you do reboot, select 1 for Plan 9 CPU Kernel:

Plan 9 Startup Menu: ==================== 1. Plan 9 CPU Kernel 2. Plan 9 Terminal Kernel Selectiondefault==1 (10s timeout): 1

When prompted, fill in the following values:

authid: bootes authdom: example.com auth password: secstore password:

Change the hostowner's password:

term% auth/keyfs term% auth/changeuser bootes

If you are using 9front drawterm and want to connect in text-only mode (no graphics) with the -G flag, you will need to edit $home/lib/profile to remove calls to rio. Comment out line 31:

# exec rio

You can run the below command:

term% mv (/usr/$user/lib/)^(profile profile.bak) term% sed '31s/^/#/' /usr/$user/lib/profile.bak > /usr/$user/lib/profile

Then afterwards, you will be able to connect with drawterm -G as follow:

$ drawterm -u $USER -h $SYSNAME -G

After connecting, it is recommended you run /sys/lib/newuser so that rio can work.

See also:

https://plan9.io/wiki/plan9/Configuring_a_Standalone_CPU_Server/index.html https://9p.io/wiki/plan9/Drawterm_to_your_terminal/index.html http://mirror.9grid.fr/mirror.9grid.fr/plan9-cpu-auth-server-howto.html


Mon Feb 16 23:21:20 PST 2026, jrmu@inter9.org (104.167.242.140)
configure cpu server

Configuring the cpu server for plan 9

First add your user to the adm group. See fossil-p9.

Afterwards, set your timezone, see timezone-p9.ms.

Next, make sure to configure your network information. See ndb-p9.ms.

Now, we prepare rc scripts that must run on system bootup:

term% mkdir /cfg/$sysname/ term% dircp /cfg/example /cfg/$sysname/

Now, we need to configure networking:

If you have static networking (eg, you have a virtual private server), edit /cfg/$sysname/cpurc to uncomment this line:

ip/ipconfig -g your-gateway ether /net/ether0 your-ip-address your-subnet-mask

If you are using wifi and dynamic networking, you may need to add these lines:

bind -a '#l1' /net echo 'key proto=wpapsk essid=ESSID

password='^`{cat /lib/wpa/ESSID} > /mnt/factotum/ctl aux/wpa -2 -s
'ESSID' /net/ether1 ip/ipconfig ether /net/ether1

Replace ESSID and make sure to store the wifi password in /lib/wpa/ESSID.

Note: You may also want to copy these lines to /cfg/$sysname/termrc and also to run the command manually, because by default, plan 9 runs as a terminal service. It will not run as a cpu service until the cpu kernel has been compiled as described below.

Note: You *must* run ip/ipconfig before running ndb/dns (and possibly other network services). Otherwise, you might see errors like:

ndb/dns: can't read my ip address

term% auth/wrkey bad authentication password bad authentication id bad authentication domain authid: glenda authdom: example.com auth password: secstore password:

Make sure to configure the auth server, see auth-p9.ms.

Build the cpu kernel for x86:

cd /sys/src/9/pc mk 'CONF=pccpuf' term% 9fat: term% cp /sys/src/9/pc/9pccpuf /n/9fat/ Add these lines to the beginning of /n/9fat/plan9.ini

menu menuitem=cpu, Plan 9 CPU Kernel menuitem=terminal, Plan 9 Terminal Kernel menudefault=cpu, 10

cpu bootfile=sdC0/!9fat!9pccpuf

terminal bootfile=sdC0!9fat!9pcf

common nobootprompt=local!#S/sdC0/fossil

Make sure to replace sdC0 with your actual disk. Make sure also to delete the pre-existing line:

bootfile=sdC0!9fat!9pcf

Clear nvram and then set a new password:

term% echo garbage >/dev/sdC0/nvram

Remember to replace sdC0 with your actual hard disk.

Set the password:

term% auth/keyfs

Add the hostowner bootes to sys and adm groups:

term% con -Cl /srv/fscons prompt: uname bootes bootes prompt: uname sys +bootes prompt: uname adm +bootes prompt: fsys main main: create /active/cron/bootes bootes bootes d775 main: create /active/sys/log/cron bootes bootes a664

Append these lines to the bottom of /lib/ndb/auth:

hostid=bootes uid=!sys uid=!adm uid=*

You may need to reboot and login as hostowner (bootes) in order for the next step to work.

If you do reboot, select 1 for Plan 9 CPU Kernel:

Plan 9 Startup Menu: ==================== 1. Plan 9 CPU Kernel 2. Plan 9 Terminal Kernel Selectiondefault==1 (10s timeout): 1

When prompted, fill in the following values:

authid: bootes authdom: example.com auth password: secstore password:

Change the hostowner's password:

term% auth/keyfs term% auth/changeuser bootes

If you are using 9front drawterm and want to connect in text-only mode (no graphics) with the -G flag, you will need to edit $home/lib/profile to remove calls to rio. Comment out line 31:

# exec rio

You can run the below command:

term% mv (/usr/$user/lib/)^(profile profile.bak) term% sed '31s/^/#/' /usr/$user/lib/profile.bak > /usr/$user/lib/profile

Then afterwards, you will be able to connect with drawterm -G as follow:

$ drawterm -u $USER -h $SYSNAME -G

After connecting, it is recommended you run /sys/lib/newuser so that rio can work.

See also:

https://plan9.io/wiki/plan9/Configuring_a_Standalone_CPU_Server/index.html https://9p.io/wiki/plan9/Drawterm_to_your_terminal/index.html http://mirror.9grid.fr/mirror.9grid.fr/plan9-cpu-auth-server-howto.html



Last modified Mon Feb 16 23:21:20 PST 2026 [ Current version | History | Create a new page ] About the server | Powered by Plan 9