IIAB/FAQ
This IIAB XSCE content does not reflect the opinion of OLPC. These pages were created by members of a volunteer community supporting OLPC and deployments.
How does Internet-in-a-Box (IIAB) help?
Bring the power of a free Digital Library of Alexandria into the hands of any school worldwide! Internet-in-a-Box is also used in medical clinics and libraries. Might you want to create your own Internet-in-a-Box? [1] [2]
If so, read about the original Internet-in-a-Box (rich open content often included with IIAB) to build up your community's very own 21st century digital library below.
An Internet-in-a-Box (IIAB) server brings your classroom/school laptops together, communicating & coordinating learning in ways that deeply empower kids, teachers and community.
IIAB is built by professional volunteers, inspired by One Laptop per Child's famous laptops and their innovative Sugar Learning Platform -- but with a wider vision of serving all!
Where is Internet-in-a-Box used?
Internet-in-a-Box (IIAB) was originally called the OLPC School Server Community Edition (XSCE) and is in use in more than a dozen countries, from smaller communities to large-scale deployments.
Examples include several orphanages and schools in Haiti to a youth community in Malaysia, to villages in Northern India, to a girls science school in Rwanda, to rural communities and libraries across southwest Ghana -- and more broad Central American deployments like Nicaragua, Costa Rica and 6 schools in the Dominican Republic beginning late 2015.
Libraries and rural medical clinics are also avid users of IIAB.
Of course, many contributors are using IIAB for other personal/community purposes as well, helping refine our community product for diverse/larger impact.
What can I do with E-books and Internet-in-a-Box?
Many quality gems are downloadable to your Internet-in-a-Box server. If however downloading is not feasible, sharing or purchasing a hard-drive packed full of incredible Wikipedia + Maps + Literature + Khan Academy learning resources is possible. Contact http://unleashkids.org volunteers should this be necessary.
If downloading is possible with a very fast Internet connection, follow the "Add Content" instructions.
Either way, entirely new opportunities are opening up for semi-connected schools and offline libraries worldwide, for the 1st time ever. Medical clinics and museums are also taking advantage in 2017, with prisons seriously considering Internet-in-a-Box too.
We'd like educators' suggestions especially -- how should kids best take advantage of these crown jewels of learning? Perhaps starting with OLPC/Sugar's laptop browser in places like:
http://box Your Internet-in-a-Box Library! http://box/usb Content from USB sticks/drives, that teachers can insert anytime http://box:3000 Kiwix (amazing content & videos, contained in searchable ZIM files) http://box:8008 KA Lite (Khan Academy videos & exercises, with its own content downloader) http://box:8080 E-book library, based on calibre-server (http://box:8010 is also possible) http://box/maps Future synonym for http://box/iiab/static/map.html or http://box/modules/en-worldmap/map.html http://box/docs Future synonym for http://box/nextcloud or http://box/owncloud http://box/wiki DokuWiki: collaborate on documents http://box/elgg Elgg social network for e-learning http://box/info IT support docs & eventually vids, offlined for all http://box/books Future synonym for http://box:8010 or http://box:8080 or http://box/pathagar http://box/moodle Moodle 3.1 LTS (learning management system) http://box/wordpress WordPress 4.8+ (blogging & community publishing) http://box/runestone Runestone Interactive Textbooks (example) http://box/sugarizer Sugar Learning Platform originally from One Laptop Per Child
http://box/admin Admin Console: operators log in here, to improve your Internet-in-a-Box server/system http://box/munin Network/Infra monitoring http://box/awstats/awstats.pl Usage statistics
In the future, we hope the Pathagar "E-book library" will begin to work much better with IIAB/XSCE!
See: Can teachers display their own content?
See: How do I customize my school server's start page?
See: What are the default passwords?
Can teachers display their own content?
Yes, teachers can spontaneously insert (and remove!) their own USB memory sticks and USB drives anytime. Somewhat like an informal projector, the teacher's content appears to students almost instantly at:
http://box/usb
Instructions:
- In advance, the teacher must create a folder called "usb" on their USB memory stick, placing audio/video materials, handouts, challenges or presentation(s) inside that folder.
- Then the teacher inserts their USB stick/drive into any one of the server's USB ports.
- Done! The "teacher content" is available (live) to students within seconds. WARNING: Older browsers and non-standard phones/devices cannot access http://box/usb, and so require that students type in http://box.lan/usb or http://172.18.96.1/usb
Note it's OK to insert multiple USB sticks/drives at the same time. If so, content from each USB stick/drive is visible within http://box/usb, e.g. in sub-folders that will be obvious, like the following:
http://box/usb/USB0 http://box/usb/USB1
More details in the Install Doc. Finally, if you have a screen attached to your server, and occasionally see an old error as follows, it is safe to ignore it:
Unable to mount 2.0 GB Volume Device /dev/sdb1 us already mounted at '/media/usb0'.
See: How do I customize my school server's start page?
What hardware should I use?
Internet-in-a-Box (IIAB) is free and open source software that runs on many different hardware platforms:
- Raspberry Pi 3 ($35 + parts) and the Raspberry Pi Zero W ($10 + parts): It continues to astonish us how powerful these 2 tiny "RPi" computers really are, able to serve 32 students simultaneously, with their powerful built-in Wi-Fi. We strongly recommend the RPi 3, for DIY implementers building their 1st digital library to serve a classroom. For smaller kiosk scenarios serving just a few people (Internet-in-a-Box is used in rural medical clinics and similar) definitely consider the RPi Zero W.
- Refurbished "Windows" Laptops: Quality donated laptops can sometimes work extremely well to install Internet-in-a-Box, ironically acting as a server for an entire developing world classroom or small school. However an external Wi-Fi router is usually required, making installation more complex than RPi and Mini PCs (whose internal Wi-Fi is generally capable of AP mode, so an external Wi-Fi router is not required in many/most classrooms!) Still, the spaghetti wiring of an external router may be worth it, if the laptop has a reasonably new battery, acting as a de facto UPS (critically important in developing world schools where electricity comes and goes). Of course quality used laptops with large hard disks and multiple GB of memory are better yet. Finally: make sure the laptop runs Linux well, and has a BIOS that permits it to run while the screen is closed.
- Intel NUC: Avoid classic/desktop PCs whenever possible, as they consume far too much electricity. However tough, well-rounded, low-power Mini PCs (such as the Intel NUC) world extremely well, have proven very effective as school servers in the developing world since 2014. We typically insist on NUC models that accept SATA (2.5 inch hard drives, HDD or SSD) and work with DC voltages up to 19V. Warning: low-end NUC models only work right near 12V, and so are not reliable using lead-acid batteries that you find in most solar installations. Finally: the NUC is not a fan-less device, but nevertheless has proved very reliable across diverse climates.
- Other Mini PC competitors: MSI units have proven very solid, and Zotac perhaps less so. Definitely consider Gigabyte BRIX (e.g. GB-BSI3H-6100) which is almost an exact clone of the NUC. As a bonus, the BRIX allows internal Wi-Fi to scale beyond the Intel NUC's annoying limitation of 12 connections maximum. To make this happen, insert an appropriate Atheros Wi-Fi module (typically < $10) into the BRIX. George Hunt can answer questions around which Atheros Wi-Fi modules have been tested to work, as of February 2017. Recap: scaling up internal Wi-Fi is sadly not possible with Intel NUCs since 2015 (5th generation NUCs and onwards) as Intel's Wi-Fi module is unfortunately soldered in.
- ARM Mini PCs: CPUs like TrimSlice / Utilite and Cubox by SolidRun might one day catch up, providing much-needed community momentum and packaging. To date however we have been disappointed with their firmware, and the availability of Linux kernels/drivers working with internal SATA / internal Wi-Fi (e.g. AP mode), to truly make teachers' lives easier. But check back as many more global deployments' experiences accumulate, and rugged low-end hardware increasingly emerges, on OrangePi or similar?
- One Laptop Per Child: We do NOT recommend the original XO-1 laptop as a server (256MB RAM is insufficient). However several have successfully deployed the very rugged XO-1.5, XO-1.75 (ARM) and XO-4 (ARM) as school servers in Haiti and Malaysia etc. Thanks to George Hunt's amazing work here over the years.
MEMORY: Some do fine with 512MB RAM (even in 2017!) serving static content from the RPi Zero W. Others do just fine serving dozens of simultaneous video streams from an RPi3 with 1GB RAM. Finally, certain others require 8GB or more within a Mini PC, when server-side loads become intensive. For example if you are running an LMS, experiencing a lot of OpenStreetMap traffic, or when fileserver-like capabilities are mandated for all students.
STORAGE: While there's increasing movement from hard disks to SSDs and MicroSDs every year, many others still swear by tried-and-true hard drives. Certainly rotating media are the clear winner when large-capacities are needed at a low price. In the end all storage technologies can fail, each in there own ways. So it's far more more important to start with the actual community's learning goals, engaging educators around their authentic content/interaction needs — and then narrow in on storage capacity/technologies later. Alternative: consider this earlier discussion of external USB hard disks and their possible risks.
HEAT/DIRT/DUST: Ensure your server is positioned with ample room around it for ventilation, away from direct sunlight. Dirt/dust will collect inside it almost regardless, and should certainly be removed from time to time.
Thank you for asking further hardware questions at http://iiab.io !
What OS should I use?
Our latest OS (Linux distribution) recommendations should always be posted within the IIAB Platforms document. Generally Raspbian on Raspberry Pi 3 is best for people getting their feet wet in 2017, regardless whether they prefer the full/graphical Raspbian Pixel (includes many amazing desktop apps for learning, on LXDE-pi) or Raspbian Lite (does not include X Windows) for a more classic/headless server.
Others like Reno McKenzie & Josh Dennis are experimenting successfully (some tweaks required!) with IIAB on the lean & mean http://DietPi.com in February/March 2017.
In recent years, Security/Maintenance/TCO concerns have caused deployments to step back from the (bleeding) edge, preferring LTS(*) multi-year support updates that accompany stable OS's like CentOS 7 (security updates until 30 June 2024), Debian GNU/Linux — or increasingly Ubuntu LTS (64-bit 16.04.2) which is newly supported as of IIAB 6.3.
(*) Many schools/libraries/clinics now believe LTS is necessary to avoid the rapid annual turnover of Fedora (inherited from OLPC in 2012, during the transition from XS to XSCE). Whereas in the past, deployments often preferred the cutting-edge features provided by a recent version of the Fedora OS, similar to OLPC OS 13.2.8.
Finally, if there are situations where porting to a new OS/distro will tangibly help schools/libraries/clinics across an entire region, don't hesitate to reach out (on our server-devel mailing list, on our http://iiab.io forums or contact holt @ laptop.org) as you assess the scope-of-work to complete such a job.
Is a quick installation possible?
Verify that your hardware and Linux OS are appropriate! Visual shortcuts to some of the more common installs can then be found at the top-right of http://schoolserver.org = http://wiki.iiab.io (please see http://download.iiab.io and the Install Doc for more!)
To install Internet-in-a-Box (IIAB) 6.3 onto Raspbian on a $35 Raspberry Pi 3 computer, run our 1-line installer:
curl download.iiab.io/6.3/rpi/load-lite.txt | sudo bash
This takes about an hour if you have a fast connection and modern microSD card. An Ethernet (live Internet) cable installed into the back of your Raspberry Pi 3 is very strongly recommended during installation!
If you want the Very Latest (master branch of IIAB 6.4) and are happy to face pre-release issues (we'll actively support you if so, get in touch!) then give this a shot instead:
curl download.iiab.io/6.4/rpi/load-lite.txt | sudo bash
In either above case, use "load.txt" instead of "load-lite.txt" if you want a more complete install (with more server apps!) noting this can take substantially more than an hour.
On classical PC hardware, follow the "Do Everything from Scratch" instructions. MBR was preferred in the past, but UEFI can work (as set in your PC/server's BIOS) if your Linux distribution supports that. Beware that partitioning is critical particularly with distros like CentOS that attempt to allocate all extra/surplus space to /home
by default (this won't work, as your most voluminous content will be placed in /library
instead!) Finally, avoid enabling LVM partitioning, especially if you'll later be needing Clonezilla to duplicate the disk.
Then, to get down to real business (education!) there are a variety of ways to add content to your IIAB/XSCE Internet-in-a-Box server.
After installation, please explore learning materials within your server's home page (http://box or http://box.lan) and also get to know the Admin Console (http://box/admin or http://box.lan/admin) which permits you to (1) configure your school server and (2) download new content. Example screenshots: (stale graphics from 2015, but that's the idea!)
Finally, to arrange an elegant portal/home page (typically http://box) for all your students or users to explore, we recommend you organize your chosen Content Packs using the Dynamic Menuing system. As explained just below, this allows you to rapidly prototype and iterate your portal/home page's presentation, tailoring it to your community/library or clinic's precise needs.
Legacy Install Techniques, many of which are deprecated as they long predate 2017, just for the record: Tom Gilliard's 6.0 Installation Notes & Screenshots and Tony Anderson's XSCE 6.0 Install Recipe. Jerry Vonau and others have demonstrated that UEFI support out-of-the-box may in fact be possible in future. Detailed install instructions for the older XSCE 5.1 can still be found here.
See: What hardware should I use?
See: What OS should I use?
See: What are the default passwords?
How do I customize my server's home page?
Starting April 2017, our install images often include sample content to more quickly springboard implementers into content curation, as outlined within Guidelines for Creating IIAB Images incl Sample Content Packs.
If you want to showcase your school or community logo/colors on the main portal/start page (what people see at http://box or http://box.lan), you can customize /library/www/html/home/index.html, where most standard HTML tags should work. Please create a backup copy of your ongoing index.html beautifications regularly!
Starting with IIAB/XSCE 6.1 and 6.2 especially, Dynamic Menuing is an alternative approach for those wanting far less hand-coding, that (as a bonus) auto-adjusts all http://SERVERNAMES:PORTS live using browser-side Javascript, for maximum deployment flexibility. To enable this on your server, please read about Menu Definitions and HTML Fragments within this page: https://github.com/iiab/iiab/wiki/IIAB-Menuing
Likewise as many educators want quick customizations on their portal/menuing beyond the logo, some may consider experimental WYSIWYG tools like DokuWiki, WordPress, or Moodle. For example you might lay out your content in an indigenous language, linking to content gems truly relevant to locals. To try these approaches, visit your server's Admin Console at http://box/admin -> Configure tab -> Server Portal -> Select Server Home Page. As of IIAB/XSCE 6.2, your choices include:
- /home
- /wordpress
- /wiki
Enable WordPress or DokuWiki correspondingly, at the top of that page. Then click "Save Configuration", click "Install Configured Options" then monitor the result (typically takes 15-25min on a Raspberry Pi 3) under "Utilities" tab -> "Display Job Status".
If you need further customization suggestions and tips, don't hesitate to post to our http://iiab.io forums and/or write to: https://groups.google.com/group/unleashkids !
See: What can I do with E-books and Internet-in-a-Box?
See: Can teachers display their own content?
See: What are the default passwords?
What are the default passwords?
For KA Lite, ownCloud, Moodle, Elgg, DokuWiki, etc the administrative user is Admin (don't forget the capital A) and the default/initial password is: changeme
For the Admin Console(*) at http://box/admin, http://box.lan/admin or http://172.18.96.1/admin, the username is iiab-admin and the default/initial password is: g0adm1n (note the numbers 0, 1)
Change iiab-admin's password before connecting your server to the Internet. You can do this within http://box/admin -> Utilities menu — or at the command line, if you type "passwd iiab-admin".
If your OS is Raspbian Pixel: also change the password for user "pi" from "raspberry" before connecting to the Internet. At the command line, type "passwd pi". Starting with IIAB/XSCE 6.2's standardized images (beginning April 2017) we removed the passwords for user "root" (and where possible for user "pi" too, within headless images), by setting their password fields to * (the asterisk character) within /etc/shadow. This prevents direct ssh access to such accounts.
Still, both users "iiab-admin" and "pi" (if they exist) have root (sudoer) powers. As such, advanced operators generally log in as iiab-admin and then escalate to root using "sudo su -".
(*) While the Admin Console can change iiab-admin's password instantly, it's important to understand that many Admin Console changes (within its Configure menu especially) require you click "Save Configuration" then "Install Configured Options" and then wait for this to complete. Monitor for Status "SUCCEEDED" under Utilities menu -> Display Job Status (takes 20-25 min on a Raspberry Pi 3!)
Finally, certain install-time passwords are listed in local_vars.yml which overrides passwords listed in default_vars.yml. If you must change any of these install-time passwords (by modifying local_vars.yml) don't forget to then run "Install Configured Options" above!
Warning: KA Lite's Admin password cannot be changed in a browser, so you need to run "kalite manage changepassword Admin" (http://box:8008 can only change KA Lite's user passwords). Help is available if you type "kalite manage help changepassword".
See: What can I do with E-books and Internet-in-a-Box?
See: What is local_vars.yml and how do I customize it?
See: What security tips exist?
See: How can I remotely manage my Internet-in-a-Box?
How do I provide Solar Power to my school, library or orphanage?
This is a very hard question depending on the growth path of your electrical needs, maintenance options within the country in question, price, theft, etc. Some experienced deployment voices provide concrete examples, typically involving a standard 12-volt deep-cycle battery. But don't hesitate to get your feet wet researching and designing a right-sized solar nanogrid for your own community:
http://wiki.laptop.org/go/XO_Solar
http://lists.laptop.org/listinfo/power
http://wiki.laptop.org/go/Battery_and_power
http://schoolserver.wordpress.com/training/power-when-its-not-always-available/
Thanks for taking solar engineering seriously, as we do wherever possible! (Engineers definitely subscribe to Richard Smith's "power" discussion list if you can.)
How do I provide Wi-Fi (wireless) to all my kids?
If you want a self-contained (single-unit) knowledge hotspot, consider Wi-Fi capability physically inside your server (despite its limited radio power?) If so, run "iw list" to determine if it is capable of Access Point (AP) mode, enabled by hostapd. Of course you may need to run "yum install iw" first, so the iw command is available on your server.
If you want higher-powered Wi-Fi equipment and antenna(e) fully external to the server itself, consider approaches from http://villagetelco.org where possible, detailed below. More experimentally, Anish Mangal has experimented successfully with cantenna(e) in India, between classrooms and schools.
Within classrooms, many deployments use the $20 TP-LINK TL-WR841N as these Wi-Fi Routers have proved generally reliable over the years.
We recommend deployments double the classroom capacity of these WR841 routers (to almost 40 simultaneous connections) by trying Terry Gillett's SECN-XSCE firmware here: (based on OpenWrt, but far simpler)
http://download.villagetelco.org/firmware/secn/unstable/tp-link/SECN-4/XSCE/
April 2016's RC3 firmware release is increasingly stable: strongly consider it or more recent. It should be followed shortly by a stable/official release we hope. There is firmware for all recent versions of WR841 hardware (v8, v9, v10 and v11) so be sure to select the correct one.
When flashing a TP-LINK with original factory firmware, install using a firmware file labelled "factory" from the RC1 or RC2 folders. Otherwise, use a firmware file labelled "sysupgrade" to upgrade from one OpenWrt-based version to another.
There is also a wiki page outlining how to use PoE (Power over Ethernet) and how to daisy-chain multiple such routers together:
http://wiki.villagetelco.org/Power_over_Ethernet_for_MP02_and_TP-Link_Routers
Most important: take advantage of community support, where volunteers are eager to help on the server-devel@lists.laptop.org and xsce-devel@googlegroups.com mailing lists. There's always tons to learn from the latest Wi-Fi fieldwork success stories.
Also consider IRC channel #schoolserver on http://webchat.freednode.net for live chat, and unleashkids@googlegroups.com, which is a great place to ask educators about various schools' filtering recommendations, across different age groups and cultures, whether your school is online or off!
Finally, don't hesitate to blog or write up your own specific recommendations, no matter how large or small your school. This vital engineering shop-talk upholds more schools, libraries and orphanages than we can count (building our community repertoire of Wi-Fi wisdom, often far from the Internet, creating "knowledge hotspots" in every sense) in turn allowing kids to take advantage of amazing free Digital Libraries like http://internet-in-a-box.org and Pathagar e-books.
How do I change the wireless network name?
The wireless network name is how people connect to your school server when they are using a Wi-Fi device. This name is also known as an SSID.
How to change it depends on whether your wireless access point is fully-external (such as a wireless router) or rather under direct OS control (e.g. internal, or a tiny USB-connected wireless adapter) :
- If it's fully-external, change its SSID (wireless name) using the documentation that came with the router.
- If it's under direct OS control, then the school server is the wireless access point. Earlier, George Hunt's command "xs-hotspot-on <SSID>" solved this on XO-1.5 and similar. Conversely "xs-hotspot-off" to turn the internal hotspot off entirely. You might also log into your server's Admin Console (http://box/admin) then change the SSID (wireless name) there, under Configure -> Internal WiFi AP -> Internal Wifi Access Point Name. This setting will not take effect until you click on Configure menu -> Install Configured Options (red button), and wait many minutes for all new settings to take effect (monitor status under Utilities menu -> Display Job Status).
WARNING: do not edit /etc/hostapd/hostapd.conf directly, unless you want these custom settings trashed upon updating IIAB! If you still insist on editing this file despite the danger, consider "systemctl restart hostapd.service" to avoid rebooting.
See: What are the default passwords?
Can I name my server something other than http://BOX.LAN ?
http://box.lan should work in ~99% of all cases, and http://box should work in ~90% of cases; there is no need to change these.
If however a custom name is desired, this can be implemented within each school/library/clinic by logging into Admin Console (http://box/admin) -> Configure menu -> Network Parameters -> Host Name, if you click "Save Configuration" then "Install Configured Options" (waiting patiently for that to complete under Utilities menu -> Display Job Status; which takes ~25min on a Raspberry Pi 3!)
Many different names have been used in the past, such as http://schoolserver.lan and http://school.lan -- anything that resolves locally to http://172.18.96.1 should be sufficient with standard networking. For the record, some of these older names are listed within the following links:
https://github.com/iiab/iiab/blob/master/roles/network/templates/named/school.external.zone.db
https://github.com/iiab/iiab/blob/master/roles/network/templates/named/school.internal.zone.db
https://github.com/iiab/iiab/blob/master/roles/network/templates/named/school.local.zone.db
Advanced implementers may want to change these 4 zone files too, all within the very same /var/named-xs directory:
school.internal.zone.16.in-addr.db
school.internal.zone.32.in-addr.db
school.internal.zone.48.in-addr.db
school.internal.zone.in-addr.db
See: What are the default passwords?
Any other networking tips?
See local_vars.yml just below.
If you use a USB-to-Ethernet dongle (for upstream Internet, generally) use a permanent marker on the server's correct USB port, so that it's not accidentally moved to another USB port!
Also, do not swap the dongle for another, as each dongle has a fixed/unique MAC address. Worst case if your dongle is lost or broken, you will later (after the new dongle is inserted) need to rerun "./runansible" from directory /opt/iiab/iiab when your Internet connection is live.
A high-level networking summary is here: https://github.com/iiab/iiab/wiki/IIAB-Networking-Overview
More advanced networking insights will follow from the stock instructions for setting up upstream and downsteam routers attached to Intel NUC hardware, just as an example.
NOTE: Some prefer Gigabyte BRIX (a drop-in replacement Mini PC, instead of the Intel NUC) as an Atheros internal Wi-Fi module can be inserted, to scale beyond Intel's soldered-in limit of 12 Wi-Fi connections maximum.
Classrooms within 100 meters of your school server can easily be connected using standard Ethernet wiring, or using Wi-Fi repeaters. Outdoor wiring is possible (preferably fiber optic cables below ground) but check with experts to avoid problems with lightning. Beyond 100 meters, a more deliberate tree and branch solution may be needed.
Please ask questions about your specific school's networking/wiring challenges at http://IIAB.io and on mailing list server-devel@lists.laptop.org !
What is local_vars.yml and how do I customize it?
Put variables within /opt/iiab/iiab/vars/local_vars.yml for all your Internet-in-a-Box installation(s), to override defaults, if use of the Admin Console (http://box/admin) is not possible.
Do NOT modify default_vars.yml, as explained in the IIAB Architecture and IIAB Variables docs.
An example local_vars.yml is posted for comparison. Also, a couple very practical networking variables are posted at the bottom of the IIAB Networking document.
Operators should place changes in local_vars.yml using a text editor such as vi, nano, or emacs. Remember to enact all variable changes by running "cd /opt/iiab/iiab" followed by "./runansible" (takes ~20 min to 2.5 hours on Raspberry Pi 3).
Or, the essential 1+6 "post-install" roles of Ansible's 9 overall roles can be run from Admin Console (log in to http://box/admin) -> Configure menu -> Install Configured Options button. Then monitor the progress (typically ~20 min on Raspberry Pi 3) within Utilities menu -> Display Job Status. PRO TIP: monitor live progress using "tail -f /tmp/job-<JOB NUMBER>"
PRO TIP: if you've accidentally made changes that prevent "cd /opt/iiab/iiab; git pull" from merging GitHub's repo cleanly onto your local machine, consider backing up local_vars.yml and starting completely fresh. Starting fresh (after you've backed up everything as a precaution) means removing all of /opt/iiab/iiab, recloning from GitHub, and then restoring your local_vars.yml into /opt/iiab/iiab/vars
See: What are the default passwords?
Is a "Rapid Power Off" button possible for low-electricity environments?
Yes. Small medical clinics and electricity-starved remote libraries typically require this, given that Raspberry Pi computers do not have a physical Power Off button, and it is asking too much for non-technical users to use the Admin Console.
Set "allow_apache_sudo: True" in local_vars.yml and then run "cd /opt/iiab/iiab; ./runansible" (runs for ~20min on Raspberry Pi 3).
To power off, any user can then click on a URL like: http://box/services/power_off.php
(Whereas schools do not want this, for obvious reasons — a mischievous student could shut down the Internet-in-a-Box at any time! This is the reason that "allow_apache_sudo: False" is the default.)
See: What is local_vars.yml and how do I customize it?
What security tips exist?
NOTE: Many install images include ssh keys which permit developers to log into your machine, to enable remote support during Beta programs and similar. You can disable this feature by running terminal command "rm -f /home/iiab-admin/.ssh/authorized_keys".
Whether running your server online or offline, please see IIAB/Security and help us contribute to this evolving knowledge & repertoire of 21st century hygiene, thanks to professional volunteers from many backgrounds.
See: What are the default passwords?
See: How can I remotely manage my Internet-in-a-Box?
Can my XO-based server boot with a unique startup sound?
Yes, when using an XO as a server, it is easy to mistake it for a child's laptop, when it has been detached from storage and networking components.
Here are instructions for adding a unique startup sound.
How do I get Internet-in-a-Box updates every few months or semester?
Great question: the magicians behind http://internet-in-a-box.org anticipated this would be critical, despite the near-impossibility of downloading large Content Packs to remote locations in the developing world. Certainly, Internet-in-a-Box improved its Wikipedia full-text-search in 2014/2015 (which remains compatible with XSCE 0.4, 5.x and IIAB/XSCE 6.x) and some remote upgrades are occasionally possible.
And yet an honest calculation of terabyte download costs and frustrations explains why drop-shipped hard drives' "content catalogs" are more economic and efficient than overweight monolithic download torrents.
On the high end, IIAB's Admin Console (http://box/admin -> Install Content) supports piecewise incremental content updates for those schools with extremely high/affordable bandwidth. As of early 2017, note that Content Packs must be manually removed, when space is needed (e.g. after that content is no longer in use). An exception is KA Lite, whose administrative interface (log in as "Admin" to http://box:8008) supports deletion of lessons/videos, as well as downloading new ones.
As a practical matter, remote schools may receive updates via hard drive or USB memory stick every semester or so, flown/driven in by a partner, bringing new maps/encyclopedias/E-books and video lessons.
Keep in touch as new options evolve! Make contact with http://unleashkids.org if you want to order a copy of the latest Internet-in-a-Box content from these volunteers' community effort.
See: What are the default passwords?
How do I know what version of IIAB/XSCE I'm running?
Log into your school server's Admin Console (http://box/admin) and click "About" in the top-right. Look at both fields "Version" and "Commit ID".
The "Version" field should show something like "release-6.3" or something else if you're running an earlier pre-release from https://github.com/iiab/iiab/commits (= https://github.com/iiab/iiab/commits/master)
Compare the 40-character string "Commit ID" to "Latest commit" at https://github.com/iiab/iiab/releases (e.g. https://github.com/iiab/iiab/tree/release-6.3) to reconfirm you have IIAB 6.3 (e.g. it should begin with bf9c09a if you're running the official IIAB 6.3 from July 13, 2017.
Caution: The letter 'g' is sometimes added in front of 7-character githash (abbreviated from 40-character as above) within "install image" filenames, in places like http://download.iiab.io/6.2/rpi/ and http://download.iiab.io/6.2/x86/
See: What are the default passwords?
What technical documentation exists?
Core IIAB/XSCE 6.2 Docs were migrated to https://github.com/xsce/xsce/wiki for IIAB/XSCE 6.2 in early 2017, and then to https://github.com/iiab/iiab/wiki in June 2017 (for IIAB 6.3 and beyond!)
Implementers should start with April 2017's new Install Doc, focusing on the "Take a Short Cut" section!
Living Docs are ever-evolving for great reasons, as technical progress is rapid, so you may want to bookmark our http://IIAB.io community forums as well.
Offline operators should check our growing collection of Internet-in-a-Box technical support docs (and eventually videos!) being made available at http://box/info. Some operators prefer to download the very latest tech support documentation every few months when their server is briefly online, by running "cd /opt/iiab/iiab/scripts; ./refresh-wiki-docs.sh". [1]
The earlier XSCE 5.1 + Internet-in-a-Box Install Doc for Intel NUC from 2015 can sometimes be very useful for hardware implementers.
Also see George Hunt's foundational collection of XSCE (School Server Community Edition) docs from 2012-2015 at http://schoolserver.wordpress.com
Finally, Anish Mangal hopes to formally write up his deployment recommendations / 8-part training materials based on his experiences setting up IIAB/XSCE in Northern India, while http://unleashkids.org with http://kidsoncomputers.org document the human experience around Haiti/Mexico deployments and beyond.
Please suggest improvements to this FAQ where you can, and check back to reread at a later date, Thank You!
How can I remotely manage my Internet-in-a-Box?
Large-scale implementers should consider rolling their own OpenVPN for all remote administration needs, or paying a management service like remot3.it (formerly known as Weaved).
Small-scale implementers may consider XSCENET, which is a minimal remote management solution (with a much more basic remote console, enabling ssh and http among a trusted group). Contact holt @ laptop.org for details. If you are using XSCENET, the "iiab-remote-on" command is generally equivalent to "systemctl enable openvpn@xscenet; systemctl start openvpn@xscenet" and the "iiab-remote-off" command is generally equivalent to "systemctl disable openvpn@xscenet; systemctl stop openvpn@xscenet". If you do not yet have these commands, you can implement them as aliases within /root/.bashrc
NOTE: Developers' ssh keys come included with several install images, to enable remote support during Beta programs and similar. Read "What security tips exist?" if you want instructions to remove these keys.
Those with a graphical environment (X Windows) on their Internet-in-a-Box often take advantage of TeamViewer for full visual/remote control. This can be priceless when mentoring/learning at a distance, thanks to TeamViewer's screen-sharing, keyboard-sharing and mouse-sharing. Simply install TeamViewer, which by default randomizes TeamViewer's password (needed for remote access) every time TeamViewer is launched, preserving local operator control.
You can also enable TeamViewer's fully "unattended access" by setting a "permanent" password for remote access within: Settings/Extras/Options -> Security -> Password.
Raspberry Pi: If you have the full Raspbian Pixel (OS with full graphical environment) on an RPi3, you want the minimal "TeamViewer Host" (e.g. https://download.teamviewer.com/download/linux/teamviewer-host_armhf.deb was version 12.0.78433 Preview H as of June 2017). It works as a single-click install (or "dpkg -i teamviewer-host_armhf.deb; apt-get -f install") and is more robust than the 2016 version (unattended access is now far more reliable!) It also now includes seamless ongoing upgrades via apt-get. Bonus: headless installation/configuration is also now supported, with "teamviewer info" "teamviewer passwd <ACTUAL-PASSWORD>" and "teamviewer help" per https://community.teamviewer.com/t5/Knowledge-Base/How-to-install-TeamViewer-Host-for-Linux/ta-p/6318 In future, it might even be possible to install directly with "apt-get install teamviewer-host" ?
See: What are the default passwords?
See: What security tips exist?
KA Lite Administration: What tips & tricks exist?
Khan Academy videos and exercises are extremely popular within KA Lite, and the videos within /library/ka-lite (etc) can be structureded in different ways.
For starters, log into http://box:8008 as the Admin user, learn how to install language packs and then download/delete videos in different languages.
Run "/root/iiab-factory/content/khan/ka-scan" to remove obsolete videos, which will be moved to /library/ka-videos/obsolete to help you free up space!
Click "Scan content folder for videos" within http://box:8008/updates/videos/ (when logged in as user Admin) if KA Lite's DB gets out of sync from the video collection on your disk.
Multilingual? Consider running 2 or 3 instances of KA Lite on the same Internet-in-a-Box server, e.g. we sometimes put English on port 8008, Spanish on port 8007, and French on port 8006. Examine the mk-other-kalite script if you too want *direct* access to Spanish videos in /library/ka-lite-es, *direct* access to French videos in /library/ka-lite-fr, etc. If you do this, you may need to modify iian-gen-iptables to open ports below 8008, if you want "campus-wide" (WAN) access to these materials.
See: What are the default passwords?
What are the best places for community support?
Start with http://IIAB.io forums, live chat on irc, or post to one of these 2 mailing lists:
- https://groups.google.com/group/unleashkids FOCUS: teachers/content/learning/libraries
- http://lists.laptop.org/pipermail/server-devel/ FOCUS: technology/networking/upgrading
Describe your issue in full (with context) so that others may help — including screenshots if possible, Thanks!
If you need live (irc) chat support from global volunteers, but have intermittent Internet, consider an intermediary computer (irc bouncer). An irc bouncer accumulates irc responses when you're offline. This enables you to follow the flow of conversations that are ongoing 24x7, when you return online. Finally, if you're a regular contributor to Internet-in-a-Box, we can help arrange an irc bouncer for you. If so please get in touch, and please see Reno McKenzie's irc instructions.
CONTACT: if need to get in touch regarding strategic alliances or partnerships with Internet-in-a-Box, please email Adam Holt (holt @ laptop.org).
See: What are the default passwords?
How can I help?
Great you asked, this is the question!
Take a look at our quasiweekly Agenda/Minutes to see what others are working on, after getting to know http://iiab.io forums, as we prepare to refresh out list of volunteer microtasks in 2017!
Serious digital librarians are invited us to join us during our content engineering calls, typically on the 1st and 3rd Saturday of each month.
Note this section below will be overhauled in 2017, as our work accelerates into important new areas.
Take seriously the "Features Planned" section of our Features page helping schools globally getting their highest priorities implemented.
Schools greatly benefit from testing on diverse hardware if you can help! Online contribution are strongly welcome, with in-person human interaction at our quasi-quarterly face-to-face meetups advancing our education efforts faster yet.
Finally, organizing everyone's many ideas, use cases and docs is real work, and as such we very strongly welcome savvy communicators!
Please also suggest your own ideas on mailing list server-devel@lists.laptop.org, or contact Adam Holt (holt @ laptop.org), thanks!
Where can older versions of IIAB/XSCE be found?
Since May 2017, IIAB code has been available at: http://github.com/iiab
Prior to May 2017, XSCE code was available at: http://github.com/xsce/xsce
Release History:
- IIAB 6.3 is expected in July 2017.
- IIAB/XSCE 6.2 was released April 19, 2017.
- XSCE 6.1 was released September 22, 2016.
- XSCE 6.0 was released March 27, 2016, following our Toronto Summit, including many new features for educators and administrators. For example Elgg for students and ownCloud for teachers, were tested in Malaysia starting March 2015.
- XSCE 5.1 was released July 27, 2014. Official release notes outlined significant steps forward: Samba filesharing, XOVis visualization of student work patterns, vnStat traffic-monitoring console, better Internet-in-a-Box searchability, customizable web-filtering requested by many schools, OpenVPN remote access, and a new module for automated field-testing.
- XSCE 5.0 was released Jan 22, 2014 introducing Ansible progress for developers especially (announcement). Compare XSCE 5.0 RC 1 which was released Dec 17, 2013, formerly known as 0.5 RC 1.
- XSCE 0.4 was released Oct 3, 2013.
- XSCE 0.3 was released June 6, 2013.
Such older RPM builds from 2013 might be available from http://archive.org and similar, at your own risk, using their original URLs: http://xsce.activitycentral.com/repos/xsce/devel.
Or consider main repo definition: http://xsce.activitycentral.com/repos/xsce-devel.repo
How did IIAB/XSCE's design evolve?
Here's our brief-but-growing participatory design archive / lineage:
- Our earliest work is based on One Laptop Per Child's original XS design and implementation which arose in January 2007 to be used in many countries, thanks to John Watlington and Daniel Drake.
- Jerry Vonau greatly cleaned up XS(CE) networking, from approximately 2010 onwards, so that vital new hardware and networking topologies became possible.
- After the XS Community Edition grassroots team came together during the middle of 2012, using the XSCE name selected by George Hunt, Sridhar Dhanapalan wrote the Design Document in September 2012.
- Field implementer Tony Anderson expanded on these ideas laying out some Use Cases in October 2012, while many others contributed to a broadening roadmap of features.
- Internet-in-a-Box (also built by volunteer professional, including Caltech and JPL software engineers) was founded separately by Braddock Gaskill in this same mid-2012 timeframe, in Southern California.
- David Farning's Activity Central team supported several developers to work on XSCE during the 2013 and 2014 timeframe, including Anish Mangal, Anna Schoolfield and others!
- German Ruiz at Fundación Zamora Terán expanded support for XSCE in Nicaragua, Columbia, Dominican Republic and Honduras (etc), as the natural successor to OLPC's original XS.
- The XSCE project embraced the Internet-in-a-Box name and IIAB's underlying OpenStreetMap work increasingly from 2013 onwards, until formally adopting the Internet-in-a-Box name (IIAB) in early 2017.
- Beginning in 2014, the XSCE project greatly increased its content collaboration with Internet-in-a-Box (hence our new name), with Kiwix.org, and with RACHEL (Remote Area Hotspot for Educational and Learning) -- in each case greatly assisted by Tim Moody.
Community history is vital to all seeking to avoid reinventing mistakes of the past, thanks to Everyone's thoughtful input past & present!