======Install dCore on Hard-disk====== dCore may well be installed to hard-disk in the same frugal way as on a [[dcore:usb_installation_test-drive|USB-stick]]. Here we consider, though, a full-fledged installation with persistent '/home/' and '/opt/', //Syslog//, multiple TTYs and some more goodies. There are quite some choices made and this exposition will give a basic, functional desktop. All of it can later be adapted to one's liking. The persistent directories will reside directly on hard-disk instead of being included into 'mydata.gz'. The advantage over the frugal installation is that there is no need for packing and un-packing those two, possibly quite large directories. =====dCore-Partition===== For the sake of simplicity, let's assume that we have a partition that is entirely dedicated to dCore. This is not mandatory, as dCore does not scatter its file system over the partition. It may also be a data partition that is accessed by other file systems. Create a partition 'sdX#' where dCore should reside and give it a suitable label like e.g. "dCore". Format it with a POSIX compatible file system, e.g. ext{2,3,4}. Take note of the drive and partition number as well as of the label. ====dCore OS-files==== Create a directory 'boot/' in the root of that partition and copy the kernel and initrd files into it. They are available at the [[http://tinycorelinux.net/dCore/x86/release/|download repository]]. ====Base extensions for wireless connection (optional)==== The instructions for side-loading the base [[dcore:wireless_set-up#import_extensions|extensions for wireless connection]] can be applied in the following way: - Make the files available anywhere in the file system. - Upon first launching (cf. [[#First launch|below]]), copy the files into the tce-directory and proceed as [[dCore:Wireless set-up|instructed]]. =====Boot-loader===== The task of installing and configuring a boot-loader is a generic one. We shall not cover it in full breadth but simply point out a few special cases together and some general strategies. For the sake of simplicity, we assume that some Linux boot-loader is already installed in the MBR (master boot record) of the hard-disk. This is the case if another GNU/Linux-installation is used on the computer as well. If no boot-loader is installed on the hard-disk then the situation is too complex to give general recommendations. The reader is pointed to the [[https://wiki.archlinux.org/index.php/Boot_loaders|over-view page]] of the Archlinux-wiki for a starting point. ====Choice==== Let's name Grub, Grub2 and Extlinux (Syslinux) among the available boot-loaders. The original author of this article has a strong preference towards Extlinux, especially in combination with dCore. Grub2 comes as default boot-loader with Ubuntu as of 12.04. Unfortunately, its configuration files are dynamically handled by ''update-grub'' which must be triggered from the Ubuntu installation. Thus it is not so simple - but nevertheless possible as we shall see - to manipulate the configuration from outside the Ubuntu installation. [[http://en.wikipedia.org/wiki/SYSLINUX#EXTLINUX|Extlinux]] is a light-weight nonetheless very flexible boot-loader. Its main advantage over Grub2 is that its boot-menu configuration is contained in one single file 'extlinux.cfg'. Thus adapting the boot-menu is a simple task of editing entries. Since dCore works quite a lot with boot-codes, this can simplify the work-flow. Grub (legacy) is quite comparable to Extlinux; the main difference being that Grub, as well as Grub2, can also access files outside the partition it is installed on. ====Grub2 in MBR==== An ideal case would be to have one initial boot-loader installed in the MBR to chain-load boot-loaders installed in PBR (partition boot record) each. However there is a twist to it, namely that Grub [[https://sfxpt.wordpress.com/2014/02/17/chainloading-extlinux-from-grub/|cannot chain-load to Extlinux/Syslinux]](*). Thus if Grub is the main boot-loader then one would have to install Grub in the MBR of the dCore-partition to chain-load it (untested). (*) Contrary to what the source claims, this did not work for a primary partition either. As a much simpler method, we shall introduce a new menu point to launch dCore and then manipulate the configuration files from within dCore in a consistent way. ===Grub-menu=== Grub2 does not maintain a single configuration file like Grub legacy used to but instead keeps a bunch of configuration files. Upon request, i.e. by calling ''update-grub'', it pulls all the information together and generates the file '/boot/grub/grub.cfg' that is accessed by the boot-loader. The following steps are performed from the original Linux installation. The individual configuration files are located under '/etc/grub.d'. Adapt the following lines to your likings and add them to '40_custom'. menuentry "dCore Trusty" { search --label --set=root "dCore" linux /boot/vmlinuz-trusty tce=LABEL="dCore" home=LABEL="dCore" opt=LABEL="dCore" user= host= desktop=flwm_topside tz= syslog multivt initrd /boot/dCore-trusty.gz } *Instead of labels, one may also use the UUIDS of the partition with an equivalent syntax for the ''tce'', ''home'' and ''opt'' boot-codes. The first line must read search --fs-uuid --set=root *For the time zone, please refer to the wiki page about [[wiki:time_zone|time zone]] or the man-page of '[[http://manpages.ubuntu.com/manpages/trusty/en/man3/tzset.3.html|tzset]]', explaining the string format (e.g. "CET-1CEST,M3.5.0,M10.5.0/3" for central Europe). The BIOS-time needs to be set to [[http://en.wikipedia.org/wiki/Coordinated_Universal_Time|UTC]]. *If you intend to use a different window manager than Flwm, adapt the respective boot-code. For starters, however, Flwm is a good choice and it can be changed later on if desired. Finally, run ''sudo update-grub'' to up-date 'grub.cfg'. ===Handling=== There are two options for changing the boot menu later on. If one does not mind the hold-up then one can boot into the original Linux installation, change the file '40_custom' and update Grub. This is especially advisable if one wants to add new menu entries for e.g. specific configurations of boot-codes. From dCore itself, one may well change the file 'boot/grub.d/grub.cfg' after having made it writeable by ''chmod u+w''. This is especially useful for quickly adding or changing some boot-codes. However, these changes would get over-written by a subsequent ''update-grub'' from the original Linux installation. In order to prevent that from happening, one must add the //same// changes to the file '40_custom'. Running ''update-grub'' at a later point in time will then create a consistent 'grub.cfg'. =====First launch===== ====Checks==== First test if everything works fine. *''mount'' should show the dCore-partition mounted three times, once as '/mnt/sdX#/', '/home/' and '/opt/' each. *'/home/' and '/opt/' should contain a few files, some hidden *'/etc/sysconfig/tcedir' should be a symbolic link to '/mnt/sdX#/tce/' In case any of the above should not hold then ... *verify that the kernel and initrd files are in place. *check the label in the boot stanza by running ''blkid''. *verify that the essential boot stanza (containing only kernel and intird) works in principle by launching it from the shell of the boot-loader (Grub can use tab-completion which is helpful here). === Password === The specified user is given the hard-coded password "tcuser". In general, it does not make much sense to specify an individual password because it is not straight-forward to keep it safe. There are some suitable [[http://wiki.tinycorelinux.net/?do=search&id=password|boot-options]] available, though. =====Persistence===== In principle, files under '/home' or '/opt' do not have to be included into 'mydata.gz' anymore. Any persistent file outside these two directories, e.g. configuration files under '/etc/', must be listed in '/opt/.filetool.lst', however, and such files only are backed-up upon request. Thus it makes sense to clear out '/opt/.filetool.lst' (but leave the empty file in place!). However, the backup mechanism does not handle an empty 'mydata.gz' well. So it will automatically add "opt/.filetool.lst" to the file upon first occasion. Do not worry about that (but notice the omitted initial slash!). Launch ''backup'' for a first time then. ([[dcore:usb_installation_test-drive#backup|Recall]] that ''shutdown'' from the command line would not perform it on its own.) =====Wireless (preliminary set-up)===== Follow the outline about setting up a [[dcore:wireless_set-up?&#command-line|wireless connection from the command line]] if no Ethernet connection is available. =====X Server===== The extension //xorg-all// is a meta-package that will pull in all available X drivers. It is good for getting the system up and running; however due to its large size, one may later want to [[dcore:xorg-video_driver_packages|reduce to the necessary drivers]] for the specific system. The standard window manager ist [[https://en.wikipedia.org/wiki/FLWM|Flwm]] in the top-side variant as provided by the package "flwm_topside". Other than the original variant, it features a horizontal window bar. For smaller wide-screens, however, the original may be better suited. For the moment, import the extensions //graphics--tinycore//, //xorg-all// and //flwm// or //flwm_topside// with the option ''-b'' set, marking them for loading at boot-time. After a reboot, dCore starts a graphical desktop. =====Desktop environment===== Strictly speaking, the desktop environment is almost complete now. Getting acquainted with [[http://manpages.ubuntu.com/manpages/trusty/man1/flwm.1.html|Flwm]] may prove helpful. For instance, it provides a (compiled-in) set of [[wiki:flwm|keyboard short-cuts]]. For the standard [[http://www.linuceum.com/Distros/osDesktopTinyCore.php|*Core-desktop]], we shall add Wbar. Though, strictly speaking, there is no real need for it as everything can be accessed through the Flwm-menu. More important is the addition of a tray as there are some applications that do not run if they cannot detect any such; we use [[http://manpages.ubuntu.com/manpages/trusty/man1/trayer.1.html|Trayer]]. Simply importing //wbar// and //trayer// with the ''-b'' option will suffice for Wbar; for Trayer, create the following file '~/.X.d/trayer'. /usr/bin/trayer --edge right --align right --widthtype request --heighttype request & This will create an empty, almost invisible tray in the lower right corner of the screen that will grow as needed. =====Wireless (final set-up)===== Follow the outline about running [[dcore:wireless_set-up?&#graphical_desktop|wireless in the graphical desktop]] to switch from a preliminary to the final set-up. =====Outlook===== Now that one has a functional desktop, one can move on in different directions. The [[dcore:welcome|welcome page]] provides additional information. * Some hardware may require special attention which is provided in the page about [[dcore:system_software|system software]]. * One may want to adapt the desktop environment by exchanging window manager or even importing a complete desktop manager. Such topics are outlined in the page about the [[dcore:x-desktop|X-desktop]]. * Importing and loading desktop applications, e.g. a web-browser, an office suite etc., are discussed in the page about [[dcore:extensions|extensions]]. * Finally, [[dcore:installations#Localisation|localisation]] is a topic of its own that deserves special mention. * One most certainly wants to get rid of the [[dcore:usb_installation_test-drive#Note about black-listing kernel modules|bleepin' beeping]] on the console.