NayuOS is an ongoing project at Nexedi: since we mainly use Chromebooks as part of our development tools, we want to have more customizable, secure and privacy-compliant devices. We also love Free Softwares so we do want a Free alternative for Chrome OS that fits our needs.
Chromium OS is much more developer-friendly, since there is a large range of tools for development (Python2.7, gdb, ...) and networking (tcpdump, rsync, ...) that are not available in Chrome OS. Having Python2 means that it is easy to run an HTTP sever on the local network and develop web applications!
Chromium OS is fully Open Source. This is necessary for better privacy and security: you don't have to trust Google, you can look at the code and ensure that the software does what you expect from it! However, it requires you to switch to developer mode, which is by default less secure (no more boot verification, shell in the browser and VT2 access, available root access with no password, ssh daemon running, ...) but allows you to use your device without restriction.
Of course, you still have to be careful with the location of the storage of your personal data (file system, Google's servers or your own, ...).
NayuOS is a customization of Chromium OS that is going to be used at Nexedi and that we want to share since it can be useful to others.
We want to improve the development environment, the usability and configuration of the system and the privacy of the users. Right now, our technical goal is to:
rebase -i
)sudo grandenet
in the terminal, registry to get a token),Be aware that, at least for now, NayuOS disables the verification usually checking the root file system at each boot.
The build process based on Buildout in our decentralized cloud technology SlapOS makes possible to build many images for Chromium OS and our modified version NayuOS for specific boards using the latest releases of Chromium OS.
Old builds can be found in the images directory.
Verify the hash by checking in the hash.txt file (R47 latest, R48 latest) of the extracted image, and compare with the value of the freshly downloaded image.
zcat your_board.nayuos.img.gz | sha512sum
The values should be the same.
Before doing anything, it is safer to make a recovery USB stick, just in case...
In order to install Chromium OS on you Chromebook, you will have to create a bootable USB stick. To do this, you can use:
dd
command on any GNU/Linux (Chrome OS included)
after having unmouted the partitions of the USB stick: zcat
your_board.nayuos.img.gz | sudo dd of=/dev/somedevice
gunzip
the downloaded file and run the
UNetbootin graphical interface
(but you may have some troubles).
Once you have your image, you need to activate the developer mode on your device:
generally, you have to turn your Chromebook off and hit
ESC
+ F3
(the "reload" key) + POWER
button.
You should then get a screen saying that "Chrome OS is missing or damaged",
this is just an dissuasive message, hit CTRL
+ D
and confirm by hitting ENTER
that you want to enable the developer
mode.
Then, you need to allow your device to boot on USB. For that, get a shell:
CTRL
+ ALT
+ T
in the
browser to access to the "crosh" terminal, and writing the command
shell
CTRL
+ ALT
+ F2
(the "next" key), either as root
or chronos
and type:
sudo crossystem dev_boot_usb=1
Reboot and press CTRL
+ U
at boot time to boot on
USB. You will be on a live Chromium OS system. If you want to install it
for real, open a terminal and type:
/usr/sbin/chromeos-install
After that, don't try to turn the developer mode off (hitting SPACE
at boot time), or you will have to reinstall the original Chrome OS!
If it does not boot...
If you were in developer mode under Chrome OS, you may have to switch back
to normal mode (hitting space at boot time). Then, you can follow the
instructions above.
If you want to build the image yourself, you can find more informations on:
Some issues that may be fixed in the next versions.
gmerge
(yet?)./usr/
instead of /usr/local/
:
git
fail. The reason is that git
is looking for its files into /usr/something
but they
are located into the dev folder /usr/local/something
.
Solution: use git with --exec-path=/path/to/libexec/git-core/
,
for example:
git --exec-path=/usr/local/libexec/git-core/ clone https://lab.nexedi.com/isabelle/flaskdav.git
less
, but the path is wrong also, run:
git config --global core.pager '/usr/local/bin/less'
to set it correctly.
npm
is looking for node binary in /usr/bin/
instead of /usr/local/bin
.
/etc/hosts
(that is read-only) using the HOSTALIASES environment variable to have per-user customized IP/name conversionsre6st
, to get IPv6 over an IPv4 network, is easy: follow instructions with the script sudo grandenet
sudo chromeos-setdevpasswd
to change chronos
user's password so that password is asked when using sudo and passwordless root
console login is disabled.python -m zipfile -e myfile.zip outputpath