Set Up Your Classroom from Scratch
This guide takes a classroom from a pile of computers to a working TechLit lab: network, first computer, updates, curriculum, and languages. It is written for teachers. Each setup step has a Step by Step tab. Where there are extra commands or configuration, open the More Detail tab beside it. Use whichever you need.
A TechLit classroom runs on its own local network (LAN). Setting up the network never needs internet. A few later steps do use it: installing languages and updating from Bastion. Those guides say so.
Only here for one task? Jump straight to it:
- Update working computers: Updates
- Fix Wi-Fi or cables: Network troubleshooting
- Set up languages for the
codecurriculum: Setting Up Programming Languages - Add games: Installing Games
What you’ll need
Section titled “What you’ll need”- One computer to act as the server: the fastest one that has an Ethernet port
- The remaining computers (clients)
- One or two routers, plus Ethernet Cables (the grey or white cables)
- A TechLit installer USB. If you don’t have one, follow Create an Installer USB first.
Connect the hardware
Section titled “Connect the hardware”-
Choose and connect the server
Pick the fastest computer with an Ethernet port. Connect it directly to the main router with an Ethernet cable.
-
Place and connect the routers
- One router: place it in the middle of the room for best signal.
- 2 routers: connect the second one to the first with a cable, and keep them as far apart as possible.
-
Connect the other computers
Whenever possible, connect the remaining computers to a router with cables instead of Wi-Fi. It is much faster and more reliable.
- Wire everything you can; Wi-Fi is the fallback, not the default.
- The server must never use Wi-Fi. After setup, switch its Wi-Fi off.
Set the network roles
Section titled “Set the network roles”Every computer gets a Role (server or client), set
with the tl-sys-configure tool (logged in as admin).
-
Set up the server
On the server, run
tl-sys-configureand set the Role toserver. -
Set up the clients
On each computer configured as a client, run
tl-sys-configureand:- Set the Role to
client. - Set the Wi-Fi Name (SSID) to match the network.
- Set the Role to
-
Turn off Wi-Fi on wired machines
On the server and any computer with a cable, switch Wi-Fi off using the network icon at the bottom right of the screen, next to the volume and battery icons.
-
tl-sys-configurewritesrole,hostname,wifi_name, andwifi_passwordto/srv/secure/config.json. Re-run it any time to change those values. -
Check the address server (DHCP) is running:
It should show
run. If it showsdown, restart it withsudo rsv restart dhcpd4. -
2 routers? Split the load: give half the clients one SSID and half the other.
-
Re-check that no other computer is set to
server. 2 servers break the whole network.
For cable diagrams and the full setup, see the Network & Wi-Fi.
Prepare the installer USB
Section titled “Prepare the installer USB”The installer USB boots a computer into the recovery environment used in the next step. Create one with the Create an Installer USB guide. It erases the USB drive completely. Skip this step if you already have a working installer.
Provision the first computer
Section titled “Provision the first computer”-
Boot from the USB
Restart the computer and boot from the TechLit USB drive.
-
Identify the internal drive
Look for the drive that is much larger than your USB. Common names are
/dev/sda,/dev/nvme0n1, or/dev/mmcblk0. This is your Target Drive. -
Install the system
Replace
/dev/sdXwith your drive andtl-xxxxwith the computer’s tag: -
Finish and reboot
When you see the success message, type
rebootand pull the USB out as the computer restarts.
2 commands exist. Choose by situation:
- New or wiped computer:
tl-hw-prepare /dev/sdX tl-xxxxcreates the partitions and installs everything. - Existing computer, keep the data:
tl-hw-update-desktop /dev/sdXunpacks a desktop image over the current system. Pin a version by adding it:tl-hw-update-desktop /dev/sda 26.6.0.
You can set the Wi-Fi name during the install:
Typed the wrong tag or Wi-Fi name? Let the install finish, then fix it
with tl-sys-configure. See
Troubleshooting Provisioning.
Update the classroom
Section titled “Update the classroom”Once one computer has the update files, spread them through the room.
For standard desktop computers, update from a prepared USB drive. See Standard Desktop Computers:
- Plug the USB in and open “Update Components” (or run
tl-comp-update). - Choose Update → Update Desktop (Using USB).
- Pick your USB drive and wait for it to finish, then unplug the USB.
- Reboot when prompted.
To patch computers over the LAN, without a USB stick:
-
Get the update files onto one machine: bring them in on a USB drive or use a computer that already has them (Get and Install Updates).
-
Copy them to the computer that needs them:
The command changes with the component. Check the rule in Get and Install Updates.
-
Apply them with Installing Local Updates:
tl-archive-install adminfor components,tl-img-unpackplustl-img-restorefor desktop patches.
Major version jumps from one major version to the next should always use the USB guide in the Step by Step tab. It is the most reliable method.
Install curriculum, apps, and languages
Section titled “Install curriculum, apps, and languages”- Curriculum and components: apply them with the update guides
above; the
docscurriculum installs withtl-curriculum-install docs(see Installing Local Patches). - Free up space: the “Manage Components” tool
(
tl-comp-manage) removes old Btrfs Snapshots and unused components. See Using the Computer. - Games:Installing Games copies bundles from another computer on the LAN.
- The
codecurriculum: how TechLit teaches programming. Students read written instructions and turn them into working programs. The languages it uses (Python, JavaScript, and friends) are managed with asdf: Setting Up Programming Languages.
Healthy-classroom checklist
Section titled “Healthy-classroom checklist”- One server only: exactly one computer has Role
server, and it is wired with Wi-Fi switched off. - Clients configured: every computer configured as a client shows
Role
clientand the right Wi-Fi name. - Address server running: on the server,
rsv status dhcpd4showsrun. - Network visible: client computers can see the Wi-Fi network and connect to it.
codelanguages work (if installed):asdf currentlists the languages, andpython --versionruns without errors.
When something goes wrong
Section titled “When something goes wrong”| Symptom | Go to |
|---|---|
| No Wi-Fi or cabling | Network troubleshooting |
| Will not boot | Hardware & Device FAQ |
| Setup or USB failed | Troubleshooting Provisioning |
| Slow, disk full, TTY | Software & System FAQ |
| Router or DHCP | Router Configuration |
| Update files missing | Get and Install Updates |
Command quick-reference
Section titled “Command quick-reference”| Command | What it does |
|---|---|
tl-sys-configure |
Set computer name, Role, and Wi-Fi name |
tl-comp-manage |
View components, free up disk space |
tl-comp-update |
Install component updates from USB |
tl-comp-pull <name> <remote> |
Copy a component from a source computer |
tl-comp-latest <name> |
Show the newest version available |
tl-archive-install <name> |
Install a downloaded component |
tl-curriculum-install <subject> |
Install the curriculum |
tl-usb-prepare /dev/sdX |
Create an installer USB (erases it) |
tl-hw-prepare /dev/sdX tl-xxxx |
Install the system (erases the drive) |
tl-hw-update-desktop /dev/sdX |
Update the system, keeping the data |
lsblk |
List connected drives |
rsv status dhcpd4 |
Check the address server (DHCP) |
asdf current |
List the languages for the code curriculum |