[[!meta title="PC Installation"]] This guide explains how to use the interactive installer program distributed with prokit to install ProteanOS on a PC platform. It is assumed that you have already [[built_and_optionally_installed_prokit|doc/install/prokit]]. Preparation =========== Make sure you have a computer supported by ProteanOS. Currently, the Acer Aspire One AO751h, Dell Dimension 2400, and Lenovo ThinkPad X60/X60s/X60t are supported. If your computer is not supported, you can [[port_ProteanOS_to_run_on_it|doc/plat/porting]]. 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. 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 device to a different computer (easiest in the case of a USB flash drive) or run a live GNU/Linux system on the computer on which you plan to install ProteanOS. Installation ============ Run the `installers/pc` script as the superuser to begin the installation. Answer the installer's questions and it will install and configure ProteanOS for you. Sample Installation ------------------- Following is an installation of ProteanOS for the Dell Dimension 2400 to a hard disk drive connected to a laptop by a SATA to USB adapter: $ sudo installers/pc.sh Select a platorm ================ Select a platform: 1) Acer Aspire One AO751h 2) Dell Dimension 2400 #? 2 Select a block device ===================== Select a block device: 1) SD32G (mmcblk0) - 31.49 GB (29.32 GiB) 2) ATA WDC WD3200BEKT-6 (sda) - 320.07 GB (298.09 GiB) 3) ST316021 5ACE (sdd) - 160.04 GB (149.05 GiB) #? 3 Making partition table and file system ====================================== 1+0 records in 1+0 records out 512 bytes (512 B) copied, 0.00984386 s, 52.0 kB/s Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel with disk identifier 0x8a39a80e. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable. Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) Command (m for help): Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): Partition number (1-4, default 1): First sector (2048-312581807, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-312581807, default 312581807): Using default value 312581807 Command (m for help): Selected partition 1 Hex code (type L to list codes): Command (m for help): Partition number (1-4): Command (m for help): The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. mke2fs 1.42.9 (28-Dec-2013) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 9773056 inodes, 39072470 blocks 1953623 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=4294967296 1193 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done Installing base system ====================== Using architecture i686-linux-glibc Using platform dimension2400 Using mirror http://mirror.gnu.dk/pub/proteanos Setting up root... Configuring opkg and retrieving Packages... Downloading proteanos-branding... Unpacking proteanos-branding... Downloading libc-bin... Unpacking libc-bin... Downloading libc.6... Unpacking libc.6... Downloading libopkg.1... Unpacking libopkg.1... Downloading opkg... Unpacking opkg... Downloading base-files... Unpacking base-files... Downloading busybox... Unpacking busybox... Downloading linux-image... Unpacking linux-image... Configuring packages... Package base-files (1.0.2) installed in root is up to date. Package busybox (1.21.1-8) installed in root is up to date. Package libc-bin (2.19~r25243+sip1-3) installed in root is up to date. Package libc.6 (2.19~r25243+sip1-3) installed in root is up to date. Package libopkg.1 (0.2.2-1) installed in root is up to date. Package linux-image (3.10.48~gnu-1) installed in root is up to date. Package opkg (0.2.2-1) installed in root is up to date. Package proteanos-branding (0.1) installed in root is up to date. Configuring libopkg.1. Configuring opkg. Configuring busybox. update-alternatives: Linking //usr/bin/awk to /usr/bin/awk.busybox update-alternatives: Linking //usr/bin/dc to /usr/bin/dc.busybox update-alternatives: Linking //usr/bin/bzip2 to /usr/bin/bzip2.busybox update-alternatives: Linking //usr/bin/bunzip2 to /usr/bin/bunzip2.busybox update-alternatives: Linking //usr/bin/bzcat to /usr/bin/bzcat.busybox update-alternatives: Linking //usr/bin/xz to /usr/bin/xz.busybox update-alternatives: Linking //usr/bin/unxz to /usr/bin/unxz.busybox update-alternatives: Linking //usr/bin/xzcat to /usr/bin/xzcat.busybox update-alternatives: Linking //usr/bin/lzma to /usr/bin/lzma.busybox update-alternatives: Linking //usr/bin/unlzma to /usr/bin/unlzma.busybox update-alternatives: Linking //usr/bin/lzcat to /usr/bin/lzcat.busybox update-alternatives: Linking //usr/bin/ar to /usr/bin/ar.busybox update-alternatives: Linking //usr/bin/strings to /usr/bin/strings.busybox update-alternatives: Linking //usr/bin/clear to /usr/bin/clear.busybox update-alternatives: Linking //usr/bin/reset to /usr/bin/reset.busybox update-alternatives: Linking //usr/bin/mkpasswd to /usr/bin/mkpasswd.busybox Configuring base-files. Configuring libc.6. Configuring linux-image. Configuring proteanos-branding. Configuring libc-bin. Configure the network ===================== Network configuration method: 1) Static 2) DHCP #? 2 Set up users and passwords ========================== Changing password for root New password: Bad password: too short Retype password: Password for root changed by root Installing tzcode (2014c-1) on root. Downloading http://mirror.gnu.dk/pub/proteanos/feeds/dev/trunk/i686-linux-glibc/all/base/../../../../../../pool/t/tzcode/tzcode_2014c-1_i686-linux-glibc_all.opk. Installing tzdata (2014c-1) on root. Downloading http://mirror.gnu.dk/pub/proteanos/feeds/dev/trunk/all/all/base/../../../../../../pool/t/tzdata/tzdata_2014c-1_all_all.opk. Package tzdata (2014c-1) installed in root is up to date. Installing tzdata-factory (2014c-1) on root. Downloading http://mirror.gnu.dk/pub/proteanos/feeds/dev/trunk/all/all/base/../../../../../../pool/t/tzdata/tzdata-factory_2014c-1_all_all.opk. Installing tzdata-northamerica (2014c-1) on root. Downloading http://mirror.gnu.dk/pub/proteanos/feeds/dev/trunk/all/all/base/../../../../../../pool/t/tzdata/tzdata-northamerica_2014c-1_all_all.opk. Installing tzdata-africa (2014c-1) on root. Downloading http://mirror.gnu.dk/pub/proteanos/feeds/dev/trunk/all/all/base/../../../../../../pool/t/tzdata/tzdata-africa_2014c-1_all_all.opk. Installing tzdata-etcetera (2014c-1) on root. Downloading http://mirror.gnu.dk/pub/proteanos/feeds/dev/trunk/all/all/base/../../../../../../pool/t/tzdata/tzdata-etcetera_2014c-1_all_all.opk. Installing tzdata-australasia (2014c-1) on root. Downloading http://mirror.gnu.dk/pub/proteanos/feeds/dev/trunk/all/all/base/../../../../../../pool/t/tzdata/tzdata-australasia_2014c-1_all_all.opk. Installing tzdata-europe (2014c-1) on root. Downloading http://mirror.gnu.dk/pub/proteanos/feeds/dev/trunk/all/all/base/../../../../../../pool/t/tzdata/tzdata-europe_2014c-1_all_all.opk. Installing tzdata-southamerica (2014c-1) on root. Downloading http://mirror.gnu.dk/pub/proteanos/feeds/dev/trunk/all/all/base/../../../../../../pool/t/tzdata/tzdata-southamerica_2014c-1_all_all.opk. Installing tzdata-antarctica (2014c-1) on root. Downloading http://mirror.gnu.dk/pub/proteanos/feeds/dev/trunk/all/all/base/../../../../../../pool/t/tzdata/tzdata-antarctica_2014c-1_all_all.opk. Installing tzdata-asia (2014c-1) on root. Downloading http://mirror.gnu.dk/pub/proteanos/feeds/dev/trunk/all/all/base/../../../../../../pool/t/tzdata/tzdata-asia_2014c-1_all_all.opk. Configuring tzdata. Configuring tzdata-factory. Configuring tzdata-northamerica. Configuring tzdata-africa. Configuring tzcode. Configuring tzdata-etcetera. Configuring tzdata-australasia. Configuring tzdata-europe. Configuring tzdata-southamerica. Configuring tzdata-antarctica. Configuring tzdata-asia. Configure the time zone ======================= Please identify a location so that time zone rules can be set correctly. Please select a continent, ocean, "coord", or "TZ". 1) Africa 2) Americas 3) Antarctica 4) Arctic Ocean 5) Asia 6) Atlantic Ocean 7) Australia 8) Europe 9) Indian Ocean 10) Pacific Ocean 11) coord - I want to use geographical coordinates. 12) TZ - I want to specify the time zone using the Posix TZ format. #? 2 Please select a country whose clocks agree with yours. 1) Anguilla 2) Antigua & Barbuda 3) Argentina 4) Aruba 5) Bahamas 6) Barbados 7) Belize 8) Bolivia 9) Brazil 10) Canada 11) Caribbean Netherlands 12) Cayman Islands 13) Chile 14) Colombia 15) Costa Rica 16) Cuba 17) Curacao 18) Dominica 19) Dominican Republic 20) Ecuador 21) El Salvador 22) French Guiana 23) Greenland 24) Grenada 25) Guadeloupe 26) Guatemala 27) Guyana 28) Haiti 29) Honduras 30) Jamaica 31) Martinique 32) Mexico 33) Montserrat 34) Nicaragua 35) Panama 36) Paraguay 37) Peru 38) Puerto Rico 39) St Barthelemy 40) St Kitts & Nevis 41) St Lucia 42) St Maarten (Dutch part) 43) St Martin (French part) 44) St Pierre & Miquelon 45) St Vincent 46) Suriname 47) Trinidad & Tobago 48) Turks & Caicos Is 49) United States 50) Uruguay 51) Venezuela 52) Virgin Islands (UK) 53) Virgin Islands (US) #? 49 Please select one of the following time zone regions. 1) Eastern Time 2) Eastern Time - Michigan - most locations 3) Eastern Time - Kentucky - Louisville area 4) Eastern Time - Kentucky - Wayne County 5) Eastern Time - Indiana - most locations 6) Eastern Time - Indiana - Daviess, Dubois, Knox & Martin Counties 7) Eastern Time - Indiana - Pulaski County 8) Eastern Time - Indiana - Crawford County 9) Eastern Time - Indiana - Pike County 10) Eastern Time - Indiana - Switzerland County 11) Central Time 12) Central Time - Indiana - Perry County 13) Central Time - Indiana - Starke County 14) Central Time - Michigan - Dickinson, Gogebic, Iron & Menominee Counties 15) Central Time - North Dakota - Oliver County 16) Central Time - North Dakota - Morton County (except Mandan area) 17) Central Time - North Dakota - Mercer County 18) Mountain Time 19) Mountain Time - south Idaho & east Oregon 20) Mountain Standard Time - Arizona (except Navajo) 21) Pacific Time 22) Alaska Time 23) Alaska Time - Alaska panhandle 24) Alaska Time - southeast Alaska panhandle 25) Alaska Time - Alaska panhandle neck 26) Alaska Time - west Alaska 27) Aleutian Islands 28) Metlakatla Time - Annette Island 29) Hawaii #? 1 The following information has been given: United States Eastern Time Therefore TZ='America/New_York' will be used. Local time is now: Wed Jul 23 12:42:06 EDT 2014. Universal Time is now: Wed Jul 23 16:42:06 UTC 2014. Is the above information OK? 1) Yes 2) No #? 1 You can make this change permanent for yourself by appending the line TZ='America/New_York'; export TZ to the file '.profile' in your home directory; then log out and log in again. Here is that TZ value again, this time on standard output so that you can use the /usr/sbin/tzselect command in shell scripts: Removing package tzcode from root... Removing package tzdata-factory from root... Removing package tzdata-africa from root... Removing package tzdata-etcetera from root... Removing package tzdata-australasia from root... Removing package tzdata-europe from root... Removing package tzdata-southamerica from root... Removing package tzdata-antarctica from root... Removing package tzdata-asia from root... Installing lilo (24.0-2) on root. Downloading http://mirror.gnu.dk/pub/proteanos/feeds/dev/trunk/i686-linux-glibc/all/base/../../../../../../pool/l/lilo/lilo_24.0-2_i686-linux-glibc_all.opk. Installing config-lilo (1.2) on root. Downloading http://mirror.gnu.dk/pub/proteanos/feeds/dev/trunk/all/dimension2400/base/../../../../../../pool/c/config-dimension2400/config-lilo_1.2_all_dimension2400.opk. Installing config-dimension2400-common (1.2) on root. Downloading http://mirror.gnu.dk/pub/proteanos/feeds/dev/trunk/all/all/base/../../../../../../pool/c/config-dimension2400/config-dimension2400-common_1.2_all_all.opk. Configuring config-dimension2400-common. Configuring config-lilo. Configuring lilo. Install the boot loader ======================= Name of root partition on running system (e.g. "sda1"): sda1 Reading boot sector from /dev/sdd Warning: /dev/sdd is not on the first disk Warning: Unable to determine video adapter in use in the present system. Using BITMAP secondary loader Calling map_insert_data Mapping bitmap file /boot/tuxlogo.bmp Warning: Video adapter does not support VESA BIOS extensions needed for display of 256 colors. Boot loader will fall back to TEXT only operation. Calling map_insert_file Boot image: /boot/vmlinuz Added ProteanOS_1.0 * Boot image: /boot/vmlinuz.old Added ProteanOS_1.0_~ Boot image: /boot/vmlinuz Added ProteanOS_1.0_+ Writing boot sector. Backup copy of boot sector in /boot/boot.0830 3 warnings were issued. Installation complete! Exiting...