summaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/install.mdwn8
-rw-r--r--doc/install/chroot.mdwn47
-rw-r--r--doc/install/jail.mdwn44
-rw-r--r--doc/install/pc.mdwn22
-rw-r--r--doc/install/prokit.mdwn81
-rw-r--r--doc/plat/porting.mdwn74
6 files changed, 153 insertions, 123 deletions
diff --git a/doc/install.mdwn b/doc/install.mdwn
index 45b9c8d..11b364a 100644
--- a/doc/install.mdwn
+++ b/doc/install.mdwn
@@ -8,9 +8,15 @@ install and manage ProteanOS systems. [[Get_started!_→|doc/install/prokit]]
Then, choose how and where to install ProteanOS:
- * [[In_an_isolated_file_system_environment_→|doc/install/jail]]
+ * [[On_an_existing_host_system_under_an_isolated_file_system_environment_→|doc/install/chroot]]
* [[On_a_supported_PC_→|doc/install/pc]]
+ProteanOS package development is typically done on an different host system.
+Running ProteanOS on actual hardware is only necessary for testing things like
+hardware-specific features (e.g. booting with a new `linux-image-*` package),
+network configuration, or system services (e.g. a logging daemon or a Web
+server).
+
See the [[legal_and_technical_notices|doc/legal]] to learn how to find copyright
information for ProteanOS packages and how to build ProteanOS packages from
source code.
diff --git a/doc/install/chroot.mdwn b/doc/install/chroot.mdwn
new file mode 100644
index 0000000..0b27ffe
--- /dev/null
+++ b/doc/install/chroot.mdwn
@@ -0,0 +1,47 @@
+[[!meta title="Isolated File System Environment Installation"]]
+
+[[←_Back_to_Installing_ProteanOS|doc/install]]
+
+These instructions explain how to install ProteanOS into a directory on an
+existing host system to run under an isolated file system environment, or
+"jail", using prokit, the ProteanOS Development Kit. prokit will run ProteanOS
+using the **chroot**(2) system call via the **chroot**(8) wrapper program.
+
+It is assumed that you have already
+[[built_and_optionally_installed_prokit|doc/install/prokit]].
+
+
+Installing ProteanOS
+====================
+
+First decide which "suite" of ProteanOS you wish to install. `rel/trunk` is a
+rolling release that receives updates free of known new bugs; it is recommended
+for regular users. `dev/trunk` receives direct package uploads and should be
+used by ProteanOS developers. Replace `$suite` below with your chosen suite.
+
+Next decide where to install ProteanOS. Replace `$root` below with the path to
+which you want ProteanOS installed.
+
+If you installed prokit to your system, simply run:
+
+ $ sudo prokit install $suite $root
+
+Otherwise, from your prokit build directory, run:
+
+ $ sudo ./prokit install $suite $root
+
+Next Steps
+==========
+
+Familiarize yourself with the ProteanOS Development Kit Manual, if you haven't
+already. The **prokit-shell**(8) and **prokit-opkg**(8) commands are used to
+manage installed ProteanOS systems.
+
+If you'd like to develop packages for ProteanOS, you need to install the
+`build-essential` package (again replacing `prokit` with `./prokit` if you
+haven't installed prokit):
+
+ $ sudo prokit opkg $root install build-essential
+
+This may take a while, depending on your network connection. Then you can start
+[[learning_how_to_prepare_packages|doc/pkg]]!
diff --git a/doc/install/jail.mdwn b/doc/install/jail.mdwn
index 35020b0..1a07fd1 100644
--- a/doc/install/jail.mdwn
+++ b/doc/install/jail.mdwn
@@ -1,45 +1,3 @@
[[!meta title="Isolated File System Environment Installation"]]
-[[←_Back_to_Installing_ProteanOS|doc/install]]
-
-These instructions explain how to install ProteanOS into a directory on an
-existing host system to run under an isolated file system environment, or
-"jail", using prokit, the ProteanOS Development Kit. prokit will run ProteanOS
-using the **chroot**(2) system call via the **chroot**(8) wrapper program.
-
-It is assumed that you have already
-[[built_and_optionally_installed_prokit|doc/install/prokit]].
-
-
-Installing ProteanOS
-====================
-
-First decide which "suite" of ProteanOS you wish to install. Currently only one
-suite is available: `dev/trunk`.
-
-Next decide where to install ProteanOS. Replace `$root` below with the path to
-which you want ProteanOS installed.
-
-If you installed prokit to your system, simply run:
-
- $ sudo prokit install dev/trunk $root
-
-Otherwise, from your prokit build directory, run:
-
- $ sudo src/prokit install dev/trunk $root
-
-Next Steps
-==========
-
-Familiarize yourself with the ProteanOS Development Kit Manual, if you haven't
-already. The **prokit-shell**(8) and **prokit-opkg**(8) commands are used to
-manage installed ProteanOS systems.
-
-If you'd like to develop packages for ProteanOS, you need to install the
-`build-essential` package (again replacing `prokit` with `src/prokit` if you
-haven't installed prokit):
-
- $ sudo prokit opkg $root install build-essential
-
-This may take a while, depending on your network connection. Then you can start
-[[learning_how_to_prepare_packages|doc/pkg]]!
+Moved to [[doc/install/chroot]].
diff --git a/doc/install/pc.mdwn b/doc/install/pc.mdwn
index 619ab60..663a05c 100644
--- a/doc/install/pc.mdwn
+++ b/doc/install/pc.mdwn
@@ -2,10 +2,6 @@
[[←_Back_to_Installing_ProteanOS|doc/install]]
-**NOTE:** These instructions use a feature in an unreleased version of the
-ProteanOS Development Kit. You'll need to have built prokit from its Git
-repository to use the PC installer.
-
This guide explains how to use the interactive installer program distributed
with prokit, the ProteanOS Development Kit, to install ProteanOS on a PC
platform.
@@ -21,9 +17,6 @@ Make sure you have a computer supported by ProteanOS. If your computer is not
supported, you can [[port_ProteanOS_to_run_on_it|doc/plat/porting]]. Currently
supported are:
- * Acer Aspire One AO751h (architecture `i686-linux-glibc`, platform `ao751h`)
- * Dell Dimension 2400 (architecture `i686-linux-glibc`, platform
- `dimension2400`)
* Lenovo ThinkPad X60, X60s, X60t, T60 (architecture `i686-linux-glibc`,
platform `x60`)
* Lenovo ThinkPad X200, X200s, X200 Tablet, R400, T400, R500, T500, etc.
@@ -31,10 +24,8 @@ supported are:
* Libiquity Taurinus X200 and Gluglug Libreboot X200 (architecture
`i686-linux-glibc`, platform `x60`)
-Determine the devices from which your computer can boot. For example, the Acer
-Aspire One AO751h can boot from an internal 2.5" SATA drive or from a storage
-device connected over USB (e.g. a flash drive), while the Dell Dimension 2400
-can only boot from an internal PATA drive.
+Determine the devices from which your computer can boot, for example an internal
+SATA drive or a USB mass storage device (e.g. a flash drive).
Pick a storage device on which you want to install ProteanOS and connect it to
the computer on which you plan to run the installer. You can either connect the
@@ -46,13 +37,18 @@ system on the computer on which you plan to install ProteanOS.
Installation
============
+Decide which "suite" of ProteanOS you wish to install. `rel/trunk` is a rolling
+release that receives updates free of known new bugs; it is recommended for
+regular users. `dev/trunk` receives direct package uploads and should be used
+by ProteanOS developers. Replace `$suite` below with your chosen suite.
+
If you installed prokit to your system, run:
- $ sudo prokit installer-pc -a $arch -p $plat dev/trunk $device
+ $ sudo prokit installer-pc -a $arch -p $plat $suite $device
Otherwise, from your prokit build directory, run:
- $ sudo src/prokit installer-pc -a $arch -p $plat dev/trunk $device
+ $ sudo ./prokit installer-pc -a $arch -p $plat $suite $device
Replace `$arch` with the architecture (e.g. `i686-linux-glibc`), `$plat` with
the platform (e.g. `x60`), and `$device` with the device file name (e.g.
diff --git a/doc/install/prokit.mdwn b/doc/install/prokit.mdwn
index 3e32017..828075c 100644
--- a/doc/install/prokit.mdwn
+++ b/doc/install/prokit.mdwn
@@ -8,40 +8,76 @@ to install a ProteanOS system, run a ProteanOS shell and other commands, manage
software packages on an installed ProteanOS system, and build packages for
ProteanOS.
-Building and installing prokit is easy. Ensure you have a **make**(1) utility
-such as GNU Make installed. No C or C++ compiler or other development tools are
-necessary to build prokit. To install and manage ProteanOS systems you need a
-host system running Linux 3.4 or later.
-The ProteanOS Development Kit uses the **chroot**(8) and **mount**(8) commands,
-which on Linux require superuser access. This guide assumes the use of
-**sudo**(8) for running commands with superuser privileges. Adjust where
-necessary if you don't use **sudo**(8).
+Dependencies
+============
+
+Building prokit requires make, a POSIX-conformant shell with `local`, and basic
+standard utilities. Git and GNU Autoconf and Automake are currently also
+required.
+
+Running prokit requires the following utilities:
+
+ * A POSIX-conformant shell with `local` and standard utilities
+ * gunzip
+ * Either sfdisk or fdisk
+ * mke2fs
+ * cpio
+ * xz from XZ Utils
+ * mount
+ * umount
+ * chroot
+
+prokit also requires OpenWrt's usign utility to verify archive signatures. A
+system copy of usign can be used, however few distributions provide one. An
+embedded copy of usign is included, building of which additionally requires:
+
+ * CMake
+ * A C compiler such as GCC and standard C library headers
+
+On a Debian-based distribution such as Trisquel, `sudo apt-get install
+build-essential cmake` is sufficient.
+
+To install and manage ProteanOS systems you need a host system running Linux 3.4
+or later.
+
+The ProteanOS Development Kit uses the **mount**(8) , **umount**(8), and
+**chroot**(8) commands, which on Linux require superuser access. This guide
+assumes the use of **sudo**(8) for running commands with superuser privileges.
+Adjust where necessary if you don't use **sudo**(8).
Downloading the ProteanOS Development Kit
=========================================
-Clone prokit from the [Git repository][prokit-git]:
+prokit release archives since version 1.1.0 and Git commits since
+2.0.1-55-g545e082 are signed with the maintainer's OpenPGP 4096-bit RSA key.
+Import the key from a key server (available on the SKS network and on
+keys.openpgp.org). Finding a signature path from trusted keys in your keyring
+to this key is recommended if possible.
+
+ $ gpg --recv-keys 0x225031F047FFE51663ED516F1A459ECDE4D604BE
+
+The current released version (2.0.1) of prokit lacks features now used by the
+ProteanOS package archive. Clone prokit from the [Git repository][prokit-git]:
$ git clone git://git.proteanos.com/prokit/prokit.git
$ cd prokit/
-*(Using the current released version, 1.1.0, is not recommended at this time, as
-the Git repository contains numerous major [improvements][prokit-news] including
-use of an updated mirrors list and installer commands for PC block devices and
-initramfs images. The head of the Git master branch is stable, with no known
-bugs. Version 2.0.0 will be released soon, pending some additional new
-features.)*
+Check for signatures on the recent commits. Either run:
+
+ $ git log --show-signature
-Users of Parabola GNU/Linux-libre and Arch [GNU/]Linux can find prokit packages
-in the AUR (thanks to Serge Victor):
+Or configure Git to always show signatures in the log (requires Git 2.10 or
+later):
- * [prokit-git][aur-prokit-git]
+ $ git config log.showSignature true
+ $ git log
+
+Either way, look for a `Good signature` made `using RSA key
+225031F047FFE51663ED516F1A459ECDE4D604BE` in at least the top-most commits.
[prokit-git]: http://git.proteanos.com/prokit/prokit.git/
-[prokit-news]: http://git.proteanos.com/prokit/prokit.git/tree/NEWS/
-[aur-prokit-git]: https://aur.archlinux.org/packages/prokit-git/
Building the ProteanOS Development Kit
@@ -52,9 +88,6 @@ Configure and build prokit:
$ ./autogen.sh
$ make
-To build from the repository you'll need to have GNU Autoconf and Automake
-installed.
-
Installing the ProteanOS Development Kit
========================================
@@ -78,3 +111,5 @@ prokit comes with a manual, starting with the **prokit**(1) page:
Or, if you didn't install prokit, you can find the manual by running:
$ man man/prokit.1
+
+The manual is also available from the [[prokit_homepage|dev/prokit]].
diff --git a/doc/plat/porting.mdwn b/doc/plat/porting.mdwn
index fe83706..c9d0e5d 100644
--- a/doc/plat/porting.mdwn
+++ b/doc/plat/porting.mdwn
@@ -16,23 +16,15 @@ So read on to port ProteanOS to your computer!
Set Up a ProteanOS System
=========================
-Get miniprokit, the "Mini ProteanOS Development Kit", as instructed on the
-[[download_page|get]].
+[[Get_prokit|doc/install/prokit]], the ProteanOS Development Kit.
-Connect the storage medium (e.g. a hard disk drive connected using a USB
-adapter/dock or a USB flash drive). On it, create one primary partition of type
-0x83 (Linux) and mark it as bootable. cfdisk, sfdisk, or fdisk can be used for
-this.
+Connect a storage medium (e.g. a hard disk drive connected using a USB
+adapter/dock or a USB flash drive). Run the following commands (replacing
+`/dev/sdb` with the path to storage device and `i686-linux-glibc` with the
+architecture of the target system) to create a partition layout and file system
+and install ProteanOS into it:
-Run the following commands (replacing `/dev/sdc1` with the path to the newly
-created partition and `i686-linux-glibc` with the architecture of the target
-system) to make and mount an ext4 file system, install ProteanOS into it, and
-enter a ProteanOS shell:
-
- # mke2fs -t ext4 /dev/sdc1
- # mount /dev/sdc1 /mnt
- # /path/to/miniprokit.sh install -a i686-linux-glibc -P dev /mnt
- # /path/to/miniprokit.sh shell /mnt
+ # prokit installer-pc -a i686-linux-glibc -p dev dev/trunk /dev/sdb
Install, Configure, and Build the `linux-libre` Source Package
@@ -43,31 +35,32 @@ Choose a platform on which this new platform will be based. In this tutorial,
Install toolchain packages, the source package, and build dependencies:
- / # opkg install build-essential-$(cat /etc/proteanos_arch) \
- > src-linux-libre config-linux-libre-ao751h bc xz \
- > libncursesw.5-dev libtinfo-dev terminfo
+ # prokit opkg /dev/sdb1 install build-essential src-linux-libre \
+ > config-linux-libre-ao751h bc xz libncursesw.5-dev libtinfo-dev terminfo
-Change to the source package directory and use opkbuild to unpack the upstream
-sources and install platform configuration files:
+Start a ProteanOS shell, change to the source package directory, and use
+opkbuild to unpack the upstream sources and install platform configuration
+files:
- / # cd /usr/src/linux-libre_3.10.40~gnu-2/
- /usr/src/linux-libre_3.10.40~gnu-2 # opkbuild -bcT nop -P ao751h
+ # prokit shell /dev/sdb1
+ # cd /usr/src/linux-libre_*/
+ # opkbuild -bcT nop -p ao751h
Hide the list of platform configuration files from opkbuild, so the modified
configuration won't get overwritten:
- /usr/src/linux-libre_3.10.40~gnu-2 # mv platconf platconf.no
+ # mv platconf platconf.no
Enter the upstream source tree and configure Linux-libre:
- /usr/src/linux-libre_3.10.40~gnu-2 # cd tmp/src/
- /usr/src/linux-libre_3.10.40~gnu-2/tmp/src # make menuconfig
+ # cd tmp/src/
+ # make menuconfig
Return to the source package directory and build the package for a platform
other than `dev`:
- /usr/src/linux-libre_3.10.40~gnu-2/tmp/src # cd ../../
- /usr/src/linux-libre_3.10.40~gnu-2 # opkbuild -bcdP dimension2400
+ # cd ../../
+ # opkbuild -bcdp dimension2400
Make the System Bootable
@@ -75,22 +68,16 @@ Make the System Bootable
Install the newly built linux-image package:
- /usr/src/linux-libre_3.10.40~gnu-2 # opkg install \
- > ../linux-image_3.10.40~gnu-2_i686-linux-glibc_dimension2400.opk
+ # opkg install ../linux-image_*_i686-linux-glibc_dimension2400.opk
Set a hostname and enable initialization of services:
- /usr/src/linux-libre_3.10.40~gnu-2 # cd /
- / # printf 'proteanos\n' >/etc/hostname
- / # printf 'enabled\n' >/etc/rc.policy
+ # printf 'proteanos\n' >/etc/hostname
+ # printf 'enabled\n' >/etc/rc.policy
Exit the ProteanOS shell:
- / # exit
-
-Back on the host system, unmount the file system:
-
- # umount /mnt
+ # exit
The storage medium can then be removed and connected to the target computer.
@@ -104,8 +91,8 @@ Once the `linux-libre` configuration is tested to boot and support all the
relevant hardware and features, a configuration package should be made.
Download the `config-*` package for the base platform you chose, either by
-running, for example, `opkg install src-config-ao751h` on ProteanOS or by
-cloning the relevant Git repository, e.g. `git clone
+running, for example, `prokit opkg install src-config-ao751h` or by cloning the
+relevant Git repository, e.g. `git clone
git://git.proteanos.com/pkg/config-ao751h.git`.
Set the `Maintainer` field in the `control` file.
@@ -125,8 +112,9 @@ Regenerate the metadata for the binary packages:
$ ./config
Copy the `linux-libre` configuration file (`tmp/src/.config` under the source
-package directory) into `src/linux-libre/*/`.
+package directory) into `src/linux-libre/*/` in your new configuration source
+package.
-The `config-*` package can then be built, e.g. `opkbuild -S` to build the source
-package. Please notify the ProteanOS community of your porting work, if you
-haven't already, and offer to upload and maintain the `config-*` package.
+Your configuration package can then be built, e.g. `prokit build -S .` to build
+the source package. Please notify the ProteanOS community of your porting work,
+if you haven't already, and offer to upload and maintain the `config-*` package.