https://wiki.archlinux.org/api.php?action=feedcontributions&user=Jf&feedformat=atomArchWiki - User contributions [en]2024-03-28T14:22:04ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=Installing_VMware_Server_on_Arch64&diff=22432Installing VMware Server on Arch642007-03-30T17:35:01Z<p>Jf: /* '''Installing VMware Server on an Arch64 System''' */ backout previous notes for doing a "quick upgrade" - apparently it's not that simple!</p>
<hr />
<div>[[Category: Arch64 (English)]]<br />
[[Category: Emulators (English)]]<br />
[[Category:HOWTOs (English)]]<br />
= '''Installing VMware Server on an Arch64 System''' =<br />
<br />
'''''(***NOTE for upgrading, pls refer to [[Upgrading_VMWare_Server_on_Arch64]] instead!!!)'''''<br />
<br />
This document will cover how to get VMware Server (as of initial writing of this document, Version "1.0.1 | 8/14/06 | Build 29996", but will also cover version "1.0.2 | 2/28/07 | Build 39867") up and running on your Arch64 system, using an Arch32 chroot method ''(*I assume, for the sake of this document, that your chroot will be in '/32root')''. A multi-lib approach will not be covered here (feel free to come up with your own method, and then write the wiki document).<br />
<br />
== "Prerequisites", or Preparation ==<br />
<br />
1. Get your Arch32 chroot set up (you can refer to [[Arch64_Install_bundled_32bit_system]] for some help).<br />
<br />
2. Go to [http://register.vmware.com/content/registration.html vmware.com] to register to receive your free serial number(s) (from there, go to their [http://www.vmware.com/vmwarestore/privacy.html privacy policy page], look briefly at its (length), think... "heck it"... and then go back to registration :)) ''('''*TIP''' - the serial number(s) that you request for will only be provided for you on-screen/-browser - and will not be sent to you via your provided email. So be sure to note your serial numbers before you navigate away, or close your browser tab!)''<br />
<br />
3. Now go to [http://register.vmware.com/content/eula.html this vmware.com page] to "view" their EULA, "skip-scroll" all the way to the end... and just go ahead and click "Yes", you mindless nut. Now scroll down to the "(for Linux systems)" section, and download the tar.gz version!!! (RPMs 'R Not Us) ''('''*TIP''' - if you're expecting to use VMware Server the way you've seen/used Workstation, then all you need is the main server itself - no need for the 'Management Interface', or the client package ('VMware Server Console', + APIs); the 'VMware Server Console' is already included in the Server package)''<br />
<br />
4. Wait for the VMware ''Server'' tarball to download... ''wait''.... (101M) Say a silent prayer for Bill Gates, and his Virtual PC drones while you're still there.<br />
<br />
== Preparing the 'vmmon', and 'vmnet' modules for our running 64-bit kernel ==<br />
<br />
1. Unpack the VMware Server tarball you just downloaded ''('''*'''in your /32root/ chroot directory, pls....)''. (This will unzip into a 'vmware-server-distrib' directory)<br />
<br />
tar zxvf VMware-server-1.0.1-29996.tar.gz<br />
<br />
2. Now we go to search for the 'vmmon', and 'vmnet' module sources, and unpack those.<br />
<br />
cd vmware-server-distrib/lib/modules/source<br />
<br />
tar xvf vmmon.tar<br />
tar xvf vmnet.tar<br />
<br />
'''*Note''' (jf: not verified by me so I can't vouch for this): Using vmware server 1.0.1-29996 on linux 2.6.19 requires the following additional steps at this point:<br />
<br />
touch /usr/src/linux-`uname -r`/include/linux/config.h<br />
sed -i 's/CHECKSUM_HW/CHECKSUM_PARTIAL/' vmnet-only/bridge.c<br />
sed -i 's/CHECKSUM_HW/CHECKSUM_PARTIAL/' vmnet-only/userif.c<br />
<br />
3. Now we 'make'<br />
<br />
make -C vmmon-only auto-build HEADER_DIR=/usr/src/linux-`uname -r`/include CC=gcc SUPPORT_SMP=1 GREP=grep IS_GCC_3=no<br />
make -C vmnet-only auto-build HEADER_DIR=/usr/src/linux-`uname -r`/include CC=gcc SUPPORT_SMP=1 GREP=grep IS_GCC_3=no<br />
<br />
'''*Note''' that I assume here that your current '''64'''-bit kernel ''(your kernel is still 64-bit, even in the ''32''-bit chroot)'' will have SMP support ''('''*'''you should be able to see this from `uname -v`)''. If not, just simply use 'SUPPORT_SMP=0' instead of 'SUPPORT_SMP=1'.<br />
<br />
(''Other assumptions'' - ''(good to know, but which you won't have to worry about if you're running a "standard" Arch)'' - your kernel headers are installed in '/usr/src/linux-`uname -r`/include', your 'gcc' is in your path (if not, point 'CC' directly to it like as in 'CC=/usr/bin/gcc'), and you're ''not'' using gcc version 3 (see 'gcc --version')).<br />
<br />
4. Now that the modules have been compiled, we resort to some sort of "trickery" in order to get the vmware install process (actually, the 'vmware-config.pl' script) to think that the modules have been pre-built already, and not prompt us to compile them again (we can't) during the install. ''('''*'''This is necessary as we will be installing the vmware binaries in the '''32'''-bit chroot - while needing to compile them in/for the '''64'''-bit environment)''<br />
<br />
cd /32root/vmware-server-distrib/lib/modules/binary # (*or 'cd ../binary')<br />
mkdir -p `uname -r`/objects<br />
cd `uname -r`<br />
<br />
echo UtsRelease `uname -r` > properties<br />
echo SMP yes >> properties<br />
# (-> only these 2 lines are necessary - the rest are not)<br />
<br />
cp /32root/vmware-server-distrib/lib/modules/source/vmmon.o objects<br />
cp /32root/vmware-server-distrib/lib/modules/source/vmnet.o objects<br />
# (*or 'cp ../../source/*.o objects')<br />
<br />
5. Now we're all set to do the actual install of the VMware Server!!!<br />
<br />
== Installing VMware Server into our 32root ==<br />
<br />
1. 'chroot' into your chroot<br />
<br />
chroot /32root<br />
<br />
2. Some preliminaries for the script before we begin our actual install....<br />
<br />
cd /etc<br />
for i in `seq 0 6`; do ln -s rc.d rc$i.d; done<br />
<br />
ln -s /bin/lsmod /sbin/lsmod<br />
<br />
mkdir /lib/modules/`uname -r`<br />
<br />
pacman -S libxtst libxt libxrender libxi # (*note these are the ''absolute essential libraries'' (where X is concerned) which we cannot do without)<br />
pacman -S xinetd<br />
<br />
''('''*'''Take note that we only install 'xinetd' to satisfy the installation requirements(/script) - we won't be using the installed 'vmware-authd' xinetd service at all if all we're going to be doing is only running and controlling the VMs from the local machine! We'll disable this service later on.)''<br />
<br />
3. Now run the actual install<br />
<br />
cd vmware-server-distrib<br />
./vmware-install.pl<br />
<br />
'''*NOTE''' that for the ''third'' question<br />
<br />
What is the directory that contains the init scripts? [/etc]<br />
<br />
you should specify '/etc/rc.d'. There is only one other question for which you might like to specify something other than the default, but this comes much later... (see below) But for the rest of the questions, you can pretty much accept the default - unless you want to change something.<br />
<br />
In which directory do you want to keep your virtual machine files?<br />
[/var/lib/vmware/Virtual Machines]<br />
<br />
For this, you might like to specify something like '/home/Virtual Machines' (don't worry, spaces in the name are ok), so that you can get access to/manipulate your virtual machines files from both inside, and outside the chroot.<br />
<br />
Continue on with the rest of the installation until the end.<br />
<br />
4. That's it!!! We're all set to run and play with our VMs now. :))<br />
<br />
== Miscellaneous, / "Notes" ==<br />
<br />
*you might want to "clean up a bit" after the installation in order to make things "neater",/"simpler",/"easier to handle", and to make things more Arch-like. Consider, for example, deleting the useless S*vmware, and K*vmware symlinks in /etc/rc.d. And consider editting the /etc/rc.d/vmware script too, to touch '/var/run/daemons' instead of '/var/lock/subsys'.<br />
<br />
*the "containing directory" for your Virtual Machine directories ''('''*'''if you followed the recommendation, '/home/Virtual Machines')'' is (as per the installation process) set to chmod 1777. For security's sake, if you want to prevent others from taking a look at your VM directories, consider doing a 'chmod' of this containing directory to something else more secure.<br />
<br />
*as mentioned, if you're only going to be using one machine (as both "client", and "host",/"server") for running, and controlling VMware Server, then there is no need for the 'vmware-authd' xinetd service which will be installed by the installation script. You can simply disable it by either stopping xinetd outright.... or by removing the 'vmware-authd' file in /etc/xinetd.d, and then restarting xinetd. ''This is for your security as well.''<br />
<br />
*(see previous point as well) since it appears that the xinetd service will not be used, I can only conclude that (after taking a look at 'netstat') a socket will be used instead for internal communication between "client" and "host" when both are on the same machine. One might conclude then, that in order to save on the processing requirements, as well as the time for communication, one would do well to disable the SSL requirement for communication with the host (start vmware in the chroot as root, and click on Host -> Settings -> 'Connection' tab). Perhaps somebody more familiar with the workings of VMware Server might be able to comment on this???<br />
<br />
*(an observation) - it appears, that despite whatever "missing libraries" we may have from VMware Server's dependencies (see 'ldd /usr/lib/vmware/bin/vmware' within the chroot), that we will still be able to run just fine?!!! (the binary will just be set up to use the replacement libraries from /usr/lib/vmware/lib) I just wonder, though, if we will experience any slowdowns from using these replacements????<br />
<br />
*(last note): to ''uninstall'' VMware Server from your system, run '/usr/bin/vmware-uninstall.pl' within the chroot.<br />
<br />
*'''Question:''' [[Installing_VMware]] (the old guide I used to install VMware Workstation) mentions a problem of [http://wiki.archlinux.org/index.php/Installing_VMware#slow_networking_between_host_and_guest 'slow networking between host and guest'] - is this problem still relevant to VMware Server???? somebody pls comment.<br />
<br />
*'''Further improvements to this document, or to this knowledge base:''' I haven't done anything about the VMware Tools yet. Anybody want to do up this document?</div>Jfhttps://wiki.archlinux.org/index.php?title=Persistent_block_device_naming&diff=22423Persistent block device naming2007-03-30T09:28:32Z<p>Jf: /* by-id and by-path */ added some clarifications about finding out more about 'by-path' for usb drives</p>
<hr />
<div>[[Category:Boot process (English)]]<br />
[[Category:Hardware detection and troubleshooting (English)]]<br />
[[Category:HOWTOs (English)]]<br />
This article describes how to use persistent names for your block devices. This has been made possible by the introduction of udev and has some advantages over bus-based naming.<br />
=Why persistent naming?=<br />
While Linux distributions and udev are evolving and hardware detection is becoming more reliable, there are also a number of new problems and changes:<br />
<br />
* If you have more than one sata/scsi or ide disk controller, the order in which they are added is random. This may result in device names like ''hdX'' and ''hdY'' switching around randomly on each boot. The same goes for ''sdX'' and ''sdY''. Persistent naming allows you not to worry about this at all.<br />
* With the introduction of the new libata pata support, all your ide ''hdX'' devices will become ''sdX'' devices at some point in the future. Again, with persistent naming, you won't even notice.<br />
* Machines with both sata and ide controllers are quite common these days. With the libata changes mentioned above, the first problem will become even more common, as sata and ide hard drives will both have ''sdX'' names.<br />
* Persistent naming just looks prettier.<br />
<br />
There are more reasons, but these are the most critical ones now and in the near future. That's why this wiki wants to encourage you to change your setup to persistent naming schemes.<br />
<br />
=Which name should I use?=<br />
<br />
There are four different schemes for persistent naming:<br />
==by-label==<br />
Almost every filesystem type can have a label. All your partitions that have one are listed in the ''/dev/disk/by-label'' directory ('''''***NOTE!!!''''' - ''this directory'' (plus entries) is created ''(and destroyed)'' dynamically, depending on whether you have partitions with labels attached!):<br />
<br />
$ ls -lF /dev/disk/by-label<br />
total 0<br />
lrwxrwxrwx 1 root root 10 Oct 16 10:27 data -> ../../sdb2<br />
lrwxrwxrwx 1 root root 10 Oct 16 10:27 data2 -> ../../sda2<br />
lrwxrwxrwx 1 root root 10 Oct 16 10:27 fat -> ../../sda6<br />
lrwxrwxrwx 1 root root 10 Oct 16 10:27 home -> ../../sda7<br />
lrwxrwxrwx 1 root root 10 Oct 16 10:27 root -> ../../sda1<br />
lrwxrwxrwx 1 root root 10 Oct 16 10:27 swap -> ../../sda5<br />
lrwxrwxrwx 1 root root 10 Oct 16 10:27 windows -> ../../sdb1<br />
<br />
You can change the labels of your filesystems using these commands:<br />
<br />
* swap: Create a new swapspace like this: ''mkswap -L <label> /dev/XXX''<br />
* ext2/ext3: ''e2label /dev/XXX <label>''<br />
* reiserfs: ''reiserfstune -l <label> /dev/XXX''<br />
* jfs: ''jfs_tune -L <label> /dev/XXX''<br />
* xfs: ''xfs_admin -L <label> /dev/XXX''<br />
* reiser4: ''???'' (are reiser4 labels even recognized?)<br />
* fat/vfat: There is no tool to change the label using Linux, but when you create the filesystem, use ''mkdosfs -n <label> <other options>''. You may also change the label of an existing filesystem using Windows.<br />
* ntfs: ''ntfslabel /dev/XXX <label>'' or change it using Windows.<br />
<br />
Be careful: The labels have to be unique to make this work, so make sure they are.<br />
<br />
==by-uuid==<br />
<br />
[http://en.wikipedia.org/wiki/UUID UUID] stands for ''Universally Unique Identifier'' and is a mechanism to give each filesystem a unique identifier. It is designed so that collisions are unlikely. All Linux filesystems (including swap) support UUID. FAT and NTFS filesystems don't support UUID, but are still listed in by-uuid with a unique identifier:<br />
<br />
$ /bin/ls -lF /dev/disk/by-uuid/<br />
total 0<br />
lrwxrwxrwx 1 root root 10 Oct 16 10:27 2d781b26-0285-421a-b9d0-d4a0d3b55680 -> ../../sda1<br />
lrwxrwxrwx 1 root root 10 Oct 16 10:27 31f8eb0d-612b-4805-835e-0e6d8b8c5591 -> ../../sda7<br />
lrwxrwxrwx 1 root root 10 Oct 16 10:27 3FC2-3DDB -> ../../sda6<br />
lrwxrwxrwx 1 root root 10 Oct 16 10:27 5090093f-e023-4a93-b2b6-8a9568dd23dc -> ../../sda2<br />
lrwxrwxrwx 1 root root 10 Oct 16 10:27 912c7844-5430-4eea-b55c-e23f8959a8ee -> ../../sda5<br />
lrwxrwxrwx 1 root root 10 Oct 16 10:27 B0DC1977DC193954 -> ../../sdb1<br />
lrwxrwxrwx 1 root root 10 Oct 16 10:27 bae98338-ec29-4beb-aacf-107e44599b2e -> ../../sdb2<br />
<br />
As you can see, the fat and ntfs partitions (''fat'' and ''windows'' labels above) have shorter names, but are still listed. The advantage about using the uuid method is that it is less likely that you have name collisions than with labels; the disadvantage is that they are more difficult to memorize.<br />
<br />
==by-id and by-path==<br />
<br />
by-id creates a unique name depending on the hardware serial number. by-path creates a unique name depending on the shortest physical path (according to sysfs). Both contain strings to indicate which subsystem they belong to ''(ie., "-ide-", for 'by-path', and "ata-" for 'by-id')'' and thus are not suitable for solving the problems mentioned in the beginning of this article. They won't be discussed any further here.<br />
<br />
'''''Question:''' but what about usb drives? they should be reasonably safe, unless there is a subsystem change as well for this? although yes, for futureproofing, 'by-uuid', and 'by-label' would probably be better?)''<br />
<br />
'''''Answer:''' it seems like for 'by-id', it looks ok, but for 'by-path', you will necessarily find yourself getting "stuck" to a physical port description for the path, and so this will not work... ie. if you take that same usb drive out, and plug it to '''another''' usb port, you will end up with a different 'by-path' for that drive....''<br />
<br />
=Enabling persistent naming=<br />
<br />
Having chosen which naming method you'd like to use, let's now enable persistent naming for your system:<br />
<br />
==In fstab==<br />
<br />
Enabling persistent naming in ''/etc/fstab'' is easy, just replace the device name in the first column by the new persistent name. In my example I would replace ''/dev/sda7'' by one of the following:<br />
<br />
* ''/dev/disk/by-label/home'' or<br />
* ''/dev/disk/by-uuid/31f8eb0d-612b-4805-835e-0e6d8b8c5591''<br />
<br />
Do so for all the partitions in your fstab file.<br />
<br />
Instead of giving the device explicitly, one may indicate the filesystem that is to be mounted by its UUID or volume label, writing LABEL=<label> or UUID=<uuid>, e.g., `LABEL=Boot' or `UUID=3e6be9de-8139-11d1-9106-a43f08d823a6'.<br />
<br />
==In your boot manager==<br />
<br />
To use persistent names in your boot manager, all of the the following prerequisites have to be met:<br />
<br />
* You are using a ''[[Configuring mkinitcpio|mkinitcpio]]'' initramfs image<br />
* You have udev enabled in ''/etc/mkinitcpio.conf''<br />
* When your initramfs image was generated, version ''101-3'' or greater of ''klibc-udev'' was installed ('''persistent naming is broken in any earlier version'''). If you are updating ''klibc-udev'' from an earlier version and want to use persistent naming, regenerate your initramfs image before you reboot.<br />
<br />
In the above example, ''/dev/sda1'' is the root partition. In the grub ''menu.lst'' file, the ''kernel'' line looks like this:<br />
<br />
kernel /boot/vmlinuz26 root=/dev/hda1 vga=0x318 ro<br />
<br />
Depending on which naming scheme I would prefer, I'd change it to one of the following<br />
<br />
kernel /boot/vmlinuz26 root=/dev/disk/by-label/root vga=0x318 ro<br />
or<br />
kernel /boot/vmlinuz26 root=/dev/disk/by-uuid/2d781b26-0285-421a-b9d0-d4a0d3b55680 vga=0x318 ro<br />
<br />
If you are using lilo, then do not try this with the ''root=...'' configuration option, it will not work. Use ''append="root=..."'' or ''addappend="root=.."'' instead. Read the lilo manpage for more information on ''append'' and ''addappend''.<br />
<br />
There is an alternative way to use the label embedded in the filesystem. For example if (as above) the filesystem in /dev/hda1 is labelled "root", you would give this line to grub:<br />
kernel /boot/vmlinuz26 root=LABEL=root vga=0x318 ro<br />
(source: http://marc.theaimsgroup.com/?l=linux-hotplug-devel&m=114795097514527&w=2 )<br />
<br />
One users experience (10MAR07):<br />
root=LABEL=root did not work for me (ARCH 2.6.20.2-1 kernel), /dev/disk/by-label/root worked just fine.</div>Jfhttps://wiki.archlinux.org/index.php?title=Persistent_block_device_naming&diff=22422Persistent block device naming2007-03-30T09:18:39Z<p>Jf: /* by-id and by-path */ add clarification and question for why, or why not</p>
<hr />
<div>[[Category:Boot process (English)]]<br />
[[Category:Hardware detection and troubleshooting (English)]]<br />
[[Category:HOWTOs (English)]]<br />
This article describes how to use persistent names for your block devices. This has been made possible by the introduction of udev and has some advantages over bus-based naming.<br />
=Why persistent naming?=<br />
While Linux distributions and udev are evolving and hardware detection is becoming more reliable, there are also a number of new problems and changes:<br />
<br />
* If you have more than one sata/scsi or ide disk controller, the order in which they are added is random. This may result in device names like ''hdX'' and ''hdY'' switching around randomly on each boot. The same goes for ''sdX'' and ''sdY''. Persistent naming allows you not to worry about this at all.<br />
* With the introduction of the new libata pata support, all your ide ''hdX'' devices will become ''sdX'' devices at some point in the future. Again, with persistent naming, you won't even notice.<br />
* Machines with both sata and ide controllers are quite common these days. With the libata changes mentioned above, the first problem will become even more common, as sata and ide hard drives will both have ''sdX'' names.<br />
* Persistent naming just looks prettier.<br />
<br />
There are more reasons, but these are the most critical ones now and in the near future. That's why this wiki wants to encourage you to change your setup to persistent naming schemes.<br />
<br />
=Which name should I use?=<br />
<br />
There are four different schemes for persistent naming:<br />
==by-label==<br />
Almost every filesystem type can have a label. All your partitions that have one are listed in the ''/dev/disk/by-label'' directory ('''''***NOTE!!!''''' - ''this directory'' (plus entries) is created ''(and destroyed)'' dynamically, depending on whether you have partitions with labels attached!):<br />
<br />
$ ls -lF /dev/disk/by-label<br />
total 0<br />
lrwxrwxrwx 1 root root 10 Oct 16 10:27 data -> ../../sdb2<br />
lrwxrwxrwx 1 root root 10 Oct 16 10:27 data2 -> ../../sda2<br />
lrwxrwxrwx 1 root root 10 Oct 16 10:27 fat -> ../../sda6<br />
lrwxrwxrwx 1 root root 10 Oct 16 10:27 home -> ../../sda7<br />
lrwxrwxrwx 1 root root 10 Oct 16 10:27 root -> ../../sda1<br />
lrwxrwxrwx 1 root root 10 Oct 16 10:27 swap -> ../../sda5<br />
lrwxrwxrwx 1 root root 10 Oct 16 10:27 windows -> ../../sdb1<br />
<br />
You can change the labels of your filesystems using these commands:<br />
<br />
* swap: Create a new swapspace like this: ''mkswap -L <label> /dev/XXX''<br />
* ext2/ext3: ''e2label /dev/XXX <label>''<br />
* reiserfs: ''reiserfstune -l <label> /dev/XXX''<br />
* jfs: ''jfs_tune -L <label> /dev/XXX''<br />
* xfs: ''xfs_admin -L <label> /dev/XXX''<br />
* reiser4: ''???'' (are reiser4 labels even recognized?)<br />
* fat/vfat: There is no tool to change the label using Linux, but when you create the filesystem, use ''mkdosfs -n <label> <other options>''. You may also change the label of an existing filesystem using Windows.<br />
* ntfs: ''ntfslabel /dev/XXX <label>'' or change it using Windows.<br />
<br />
Be careful: The labels have to be unique to make this work, so make sure they are.<br />
<br />
==by-uuid==<br />
<br />
[http://en.wikipedia.org/wiki/UUID UUID] stands for ''Universally Unique Identifier'' and is a mechanism to give each filesystem a unique identifier. It is designed so that collisions are unlikely. All Linux filesystems (including swap) support UUID. FAT and NTFS filesystems don't support UUID, but are still listed in by-uuid with a unique identifier:<br />
<br />
$ /bin/ls -lF /dev/disk/by-uuid/<br />
total 0<br />
lrwxrwxrwx 1 root root 10 Oct 16 10:27 2d781b26-0285-421a-b9d0-d4a0d3b55680 -> ../../sda1<br />
lrwxrwxrwx 1 root root 10 Oct 16 10:27 31f8eb0d-612b-4805-835e-0e6d8b8c5591 -> ../../sda7<br />
lrwxrwxrwx 1 root root 10 Oct 16 10:27 3FC2-3DDB -> ../../sda6<br />
lrwxrwxrwx 1 root root 10 Oct 16 10:27 5090093f-e023-4a93-b2b6-8a9568dd23dc -> ../../sda2<br />
lrwxrwxrwx 1 root root 10 Oct 16 10:27 912c7844-5430-4eea-b55c-e23f8959a8ee -> ../../sda5<br />
lrwxrwxrwx 1 root root 10 Oct 16 10:27 B0DC1977DC193954 -> ../../sdb1<br />
lrwxrwxrwx 1 root root 10 Oct 16 10:27 bae98338-ec29-4beb-aacf-107e44599b2e -> ../../sdb2<br />
<br />
As you can see, the fat and ntfs partitions (''fat'' and ''windows'' labels above) have shorter names, but are still listed. The advantage about using the uuid method is that it is less likely that you have name collisions than with labels; the disadvantage is that they are more difficult to memorize.<br />
<br />
==by-id and by-path==<br />
<br />
by-id creates a unique name depending on the hardware serial number. by-path creates a unique name depending on the shortest physical path (according to sysfs). Both contain strings to indicate which subsystem they belong to ''(ie., "-ide-", for 'by-path', and "ata-" for 'by-id'. '''Question:''' but what about usb drives? they should be reasonably safe, unless there is a subsystem change as well for this? although yes, for futureproofing, 'by-uuid', and 'by-label' would probably be better?)'' and thus are not suitable for solving the problems mentioned in the beginning of this article. They won't be discussed any further here.<br />
<br />
=Enabling persistent naming=<br />
<br />
Having chosen which naming method you'd like to use, let's now enable persistent naming for your system:<br />
<br />
==In fstab==<br />
<br />
Enabling persistent naming in ''/etc/fstab'' is easy, just replace the device name in the first column by the new persistent name. In my example I would replace ''/dev/sda7'' by one of the following:<br />
<br />
* ''/dev/disk/by-label/home'' or<br />
* ''/dev/disk/by-uuid/31f8eb0d-612b-4805-835e-0e6d8b8c5591''<br />
<br />
Do so for all the partitions in your fstab file.<br />
<br />
Instead of giving the device explicitly, one may indicate the filesystem that is to be mounted by its UUID or volume label, writing LABEL=<label> or UUID=<uuid>, e.g., `LABEL=Boot' or `UUID=3e6be9de-8139-11d1-9106-a43f08d823a6'.<br />
<br />
==In your boot manager==<br />
<br />
To use persistent names in your boot manager, all of the the following prerequisites have to be met:<br />
<br />
* You are using a ''[[Configuring mkinitcpio|mkinitcpio]]'' initramfs image<br />
* You have udev enabled in ''/etc/mkinitcpio.conf''<br />
* When your initramfs image was generated, version ''101-3'' or greater of ''klibc-udev'' was installed ('''persistent naming is broken in any earlier version'''). If you are updating ''klibc-udev'' from an earlier version and want to use persistent naming, regenerate your initramfs image before you reboot.<br />
<br />
In the above example, ''/dev/sda1'' is the root partition. In the grub ''menu.lst'' file, the ''kernel'' line looks like this:<br />
<br />
kernel /boot/vmlinuz26 root=/dev/hda1 vga=0x318 ro<br />
<br />
Depending on which naming scheme I would prefer, I'd change it to one of the following<br />
<br />
kernel /boot/vmlinuz26 root=/dev/disk/by-label/root vga=0x318 ro<br />
or<br />
kernel /boot/vmlinuz26 root=/dev/disk/by-uuid/2d781b26-0285-421a-b9d0-d4a0d3b55680 vga=0x318 ro<br />
<br />
If you are using lilo, then do not try this with the ''root=...'' configuration option, it will not work. Use ''append="root=..."'' or ''addappend="root=.."'' instead. Read the lilo manpage for more information on ''append'' and ''addappend''.<br />
<br />
There is an alternative way to use the label embedded in the filesystem. For example if (as above) the filesystem in /dev/hda1 is labelled "root", you would give this line to grub:<br />
kernel /boot/vmlinuz26 root=LABEL=root vga=0x318 ro<br />
(source: http://marc.theaimsgroup.com/?l=linux-hotplug-devel&m=114795097514527&w=2 )<br />
<br />
One users experience (10MAR07):<br />
root=LABEL=root did not work for me (ARCH 2.6.20.2-1 kernel), /dev/disk/by-label/root worked just fine.</div>Jfhttps://wiki.archlinux.org/index.php?title=Installing_VMware_Server_on_Arch64&diff=22386Installing VMware Server on Arch642007-03-29T18:24:20Z<p>Jf: added special note for how to "quick upgrade".... Also shifted the "1.0.1 on 2.6.19 note" to the correct place, + place a cautionary note</p>
<hr />
<div>[[Category: Arch64 (English)]]<br />
[[Category: Emulators (English)]]<br />
[[Category:HOWTOs (English)]]<br />
= '''Installing VMware Server on an Arch64 System''' =<br />
<br />
This document will cover how to get ''(*as well as upgrade, if you've followed this same set of instructions previously)'' VMware Server (as of initial writing of this document, Version "1.0.1 | 8/14/06 | Build 29996", but will also cover version "1.0.2 | 2/28/07 | Build 39867") up and running on your Arch64 system, using an Arch32 chroot method ''(*I assume, for the sake of this document, that your chroot will be in '/32root')''. A multi-lib approach will not be covered here (feel free to come up with your own method, and then write the wiki document).<br />
<br />
== "Prerequisites", or Preparation ==<br />
<br />
1. Get your Arch32 chroot set up (you can refer to [[Arch64_Install_bundled_32bit_system]] for some help).<br />
<br />
2. Go to [http://register.vmware.com/content/registration.html vmware.com] to register to receive your free serial number(s) (from there, go to their [http://www.vmware.com/vmwarestore/privacy.html privacy policy page], look briefly at its (length), think... "heck it"... and then go back to registration :)) ''('''*TIP''' - the serial number(s) that you request for will only be provided for you on-screen/-browser - and will not be sent to you via your provided email. So be sure to note your serial numbers before you navigate away, or close your browser tab!)''<br />
<br />
3. Now go to [http://register.vmware.com/content/eula.html this vmware.com page] to "view" their EULA, "skip-scroll" all the way to the end... and just go ahead and click "Yes", you mindless nut. Now scroll down to the "(for Linux systems)" section, and download the tar.gz version!!! (RPMs 'R Not Us) ''('''*TIP''' - if you're expecting to use VMware Server the way you've seen/used Workstation, then all you need is the main server itself - no need for the 'Management Interface', or the client package ('VMware Server Console', + APIs); the 'VMware Server Console' is already included in the Server package)''<br />
<br />
4. Wait for the VMware ''Server'' tarball to download... ''wait''.... (101M) Say a silent prayer for Bill Gates, and his Virtual PC drones while you're still there.<br />
<br />
== Preparing the 'vmmon', and 'vmnet' modules for our running 64-bit kernel ==<br />
<br />
1. Unpack the VMware Server tarball you just downloaded ''('''*'''in your /32root/ chroot directory, pls....)''. (This will unzip into a 'vmware-server-distrib' directory)<br />
<br />
tar zxvf VMware-server-1.0.1-29996.tar.gz<br />
<br />
2. Now we go to search for the 'vmmon', and 'vmnet' module sources, and unpack those.<br />
<br />
cd vmware-server-distrib/lib/modules/source<br />
<br />
tar xvf vmmon.tar<br />
tar xvf vmnet.tar<br />
<br />
'''*Note''' (jf: not verified by me so I can't vouch for this): Using vmware server 1.0.1-29996 on linux 2.6.19 requires the following additional steps at this point:<br />
<br />
touch /usr/src/linux-`uname -r`/include/linux/config.h<br />
sed -i 's/CHECKSUM_HW/CHECKSUM_PARTIAL/' vmnet-only/bridge.c<br />
sed -i 's/CHECKSUM_HW/CHECKSUM_PARTIAL/' vmnet-only/userif.c<br />
<br />
3. Now we 'make'<br />
<br />
make -C vmmon-only auto-build HEADER_DIR=/usr/src/linux-`uname -r`/include CC=gcc SUPPORT_SMP=1 GREP=grep IS_GCC_3=no<br />
make -C vmnet-only auto-build HEADER_DIR=/usr/src/linux-`uname -r`/include CC=gcc SUPPORT_SMP=1 GREP=grep IS_GCC_3=no<br />
<br />
'''*Note''' that I assume here that your current '''64'''-bit kernel ''(your kernel is still 64-bit, even in the ''32''-bit chroot)'' will have SMP support ''('''*'''you should be able to see this from `uname -v`)''. If not, just simply use 'SUPPORT_SMP=0' instead of 'SUPPORT_SMP=1'.<br />
<br />
'''***SPECIAL UPGRADING SHORTCUT NOTE!''' - if you have been following so far, and are upgrading from VMWare Server 1.0.1 to 1.0.2 (instead of doing a fresh install), well congratulations! You can skip the rest of the stuff below (since we've already done that during the last install), and be done with just the following...<br />
<br />
mkdir -p /lib/modules/`uname -r`/misc<br />
cp *.o /lib/modules/`uname -r`/misc<br />
<br />
(''Other assumptions'' - ''(good to know, but which you won't have to worry about if you're running a "standard" Arch)'' - your kernel headers are installed in '/usr/src/linux-`uname -r`/include', your 'gcc' is in your path (if not, point 'CC' directly to it like as in 'CC=/usr/bin/gcc'), and you're ''not'' using gcc version 3 (see 'gcc --version')).<br />
<br />
4. Now that the modules have been compiled, we resort to some sort of "trickery" in order to get the vmware install process (actually, the 'vmware-config.pl' script) to think that the modules have been pre-built already, and not prompt us to compile them again (we can't) during the install. ''('''*'''This is necessary as we will be installing the vmware binaries in the '''32'''-bit chroot - while needing to compile them in/for the '''64'''-bit environment)''<br />
<br />
cd /32root/vmware-server-distrib/lib/modules/binary # (*or 'cd ../binary')<br />
mkdir -p `uname -r`/objects<br />
cd `uname -r`<br />
<br />
echo UtsRelease `uname -r` > properties<br />
echo SMP yes >> properties<br />
# (-> only these 2 lines are necessary - the rest are not)<br />
<br />
cp /32root/vmware-server-distrib/lib/modules/source/vmmon.o objects<br />
cp /32root/vmware-server-distrib/lib/modules/source/vmnet.o objects<br />
# (*or 'cp ../../source/*.o objects')<br />
<br />
5. Now we're all set to do the actual install of the VMware Server!!!<br />
<br />
== Installing VMware Server into our 32root ==<br />
<br />
1. 'chroot' into your chroot<br />
<br />
chroot /32root<br />
<br />
2. Some preliminaries for the script before we begin our actual install....<br />
<br />
cd /etc<br />
for i in `seq 0 6`; do ln -s rc.d rc$i.d; done<br />
<br />
ln -s /bin/lsmod /sbin/lsmod<br />
<br />
mkdir /lib/modules/`uname -r`<br />
<br />
pacman -S libxtst libxt libxrender libxi # (*note these are the ''absolute essential libraries'' (where X is concerned) which we cannot do without)<br />
pacman -S xinetd<br />
<br />
''('''*'''Take note that we only install 'xinetd' to satisfy the installation requirements(/script) - we won't be using the installed 'vmware-authd' xinetd service at all if all we're going to be doing is only running and controlling the VMs from the local machine! We'll disable this service later on.)''<br />
<br />
3. Now run the actual install<br />
<br />
cd vmware-server-distrib<br />
./vmware-install.pl<br />
<br />
'''*NOTE''' that for the ''third'' question<br />
<br />
What is the directory that contains the init scripts? [/etc]<br />
<br />
you should specify '/etc/rc.d'. There is only one other question for which you might like to specify something other than the default, but this comes much later... (see below) But for the rest of the questions, you can pretty much accept the default - unless you want to change something.<br />
<br />
In which directory do you want to keep your virtual machine files?<br />
[/var/lib/vmware/Virtual Machines]<br />
<br />
For this, you might like to specify something like '/home/Virtual Machines' (don't worry, spaces in the name are ok), so that you can get access to/manipulate your virtual machines files from both inside, and outside the chroot.<br />
<br />
Continue on with the rest of the installation until the end.<br />
<br />
4. That's it!!! We're all set to run and play with our VMs now. :))<br />
<br />
== Miscellaneous, / "Notes" ==<br />
<br />
*you might want to "clean up a bit" after the installation in order to make things "neater",/"simpler",/"easier to handle", and to make things more Arch-like. Consider, for example, deleting the useless S*vmware, and K*vmware symlinks in /etc/rc.d. And consider editting the /etc/rc.d/vmware script too, to touch '/var/run/daemons' instead of '/var/lock/subsys'.<br />
<br />
*the "containing directory" for your Virtual Machine directories ''('''*'''if you followed the recommendation, '/home/Virtual Machines')'' is (as per the installation process) set to chmod 1777. For security's sake, if you want to prevent others from taking a look at your VM directories, consider doing a 'chmod' of this containing directory to something else more secure.<br />
<br />
*as mentioned, if you're only going to be using one machine (as both "client", and "host",/"server") for running, and controlling VMware Server, then there is no need for the 'vmware-authd' xinetd service which will be installed by the installation script. You can simply disable it by either stopping xinetd outright.... or by removing the 'vmware-authd' file in /etc/xinetd.d, and then restarting xinetd. ''This is for your security as well.''<br />
<br />
*(see previous point as well) since it appears that the xinetd service will not be used, I can only conclude that (after taking a look at 'netstat') a socket will be used instead for internal communication between "client" and "host" when both are on the same machine. One might conclude then, that in order to save on the processing requirements, as well as the time for communication, one would do well to disable the SSL requirement for communication with the host (start vmware in the chroot as root, and click on Host -> Settings -> 'Connection' tab). Perhaps somebody more familiar with the workings of VMware Server might be able to comment on this???<br />
<br />
*(an observation) - it appears, that despite whatever "missing libraries" we may have from VMware Server's dependencies (see 'ldd /usr/lib/vmware/bin/vmware' within the chroot), that we will still be able to run just fine?!!! (the binary will just be set up to use the replacement libraries from /usr/lib/vmware/lib) I just wonder, though, if we will experience any slowdowns from using these replacements????<br />
<br />
*(last note): to ''uninstall'' VMware Server from your system, run '/usr/bin/vmware-uninstall.pl' within the chroot.<br />
<br />
*'''Question:''' [[Installing_VMware]] (the old guide I used to install VMware Workstation) mentions a problem of [http://wiki.archlinux.org/index.php/Installing_VMware#slow_networking_between_host_and_guest 'slow networking between host and guest'] - is this problem still relevant to VMware Server???? somebody pls comment.<br />
<br />
*'''Further improvements to this document, or to this knowledge base:''' I haven't done anything about the VMware Tools yet. Anybody want to do up this document?</div>Jfhttps://wiki.archlinux.org/index.php?title=Installing_VMware_Server_on_Arch64&diff=22383Installing VMware Server on Arch642007-03-29T16:22:04Z<p>Jf: /* '''Installing VMware Server on an Arch64 System''' */ updated to reflect latest vmware server version as well (1.0.2)</p>
<hr />
<div>[[Category: Arch64 (English)]]<br />
[[Category: Emulators (English)]]<br />
[[Category:HOWTOs (English)]]<br />
= '''Installing VMware Server on an Arch64 System''' =<br />
<br />
This document will cover how to get VMware Server (as of initial writing of this document, Version "1.0.1 | 8/14/06 | Build 29996", but will also cover version "1.0.2 | 2/28/07 | Build 39867") up and running on your Arch64 system, using an Arch32 chroot method ''(*I assume, for the sake of this document, that your chroot will be in '/32root')''. A multi-lib approach will not be covered here (feel free to come up with your own method, and then write the wiki document).<br />
<br />
== "Prerequisites", or Preparation ==<br />
<br />
1. Get your Arch32 chroot set up (you can refer to [[Arch64_Install_bundled_32bit_system]] for some help).<br />
<br />
2. Go to [http://register.vmware.com/content/registration.html vmware.com] to register to receive your free serial number(s) (from there, go to their [http://www.vmware.com/vmwarestore/privacy.html privacy policy page], look briefly at its (length), think... "heck it"... and then go back to registration :)) ''('''*TIP''' - the serial number(s) that you request for will only be provided for you on-screen/-browser - and will not be sent to you via your provided email. So be sure to note your serial numbers before you navigate away, or close your browser tab!)''<br />
<br />
3. Now go to [http://register.vmware.com/content/eula.html this vmware.com page] to "view" their EULA, "skip-scroll" all the way to the end... and just go ahead and click "Yes", you mindless nut. Now scroll down to the "(for Linux systems)" section, and download the tar.gz version!!! (RPMs 'R Not Us) ''('''*TIP''' - if you're expecting to use VMware Server the way you've seen/used Workstation, then all you need is the main server itself - no need for the 'Management Interface', or the client package ('VMware Server Console', + APIs); the 'VMware Server Console' is already included in the Server package)''<br />
<br />
4. Wait for the VMware ''Server'' tarball to download... ''wait''.... (101M) Say a silent prayer for Bill Gates, and his Virtual PC drones while you're still there.<br />
<br />
== Preparing the 'vmmon', and 'vmnet' modules for our running 64-bit kernel ==<br />
<br />
1. Unpack the VMware Server tarball you just downloaded ''('''*'''in your /32root/ chroot directory, pls....)''. (This will unzip into a 'vmware-server-distrib' directory)<br />
<br />
tar zxvf VMware-server-1.0.1-29996.tar.gz<br />
<br />
2. Now we go to search for the 'vmmon', and 'vmnet' module sources, and unpack those.<br />
<br />
cd vmware-server-distrib/lib/modules/source<br />
<br />
tar xvf vmmon.tar<br />
tar xvf vmnet.tar<br />
<br />
3. Now we 'make'<br />
<br />
make -C vmmon-only auto-build HEADER_DIR=/usr/src/linux-`uname -r`/include CC=gcc SUPPORT_SMP=1 GREP=grep IS_GCC_3=no<br />
make -C vmnet-only auto-build HEADER_DIR=/usr/src/linux-`uname -r`/include CC=gcc SUPPORT_SMP=1 GREP=grep IS_GCC_3=no<br />
<br />
'''*Note''' that I assume here that your current '''64'''-bit kernel ''(your kernel is still 64-bit, even in the ''32''-bit chroot)'' will have SMP support ''('''*'''you should be able to see this from `uname -v`)''. If not, just simply use 'SUPPORT_SMP=0' instead of 'SUPPORT_SMP=1'.<br />
<br />
'''*Note''' Using vmware server 1.0.1-29996 on linux 2.6.19 requires the following additional steps at this point:<br />
<br />
touch /usr/src/linux-`uname -r`/include/linux/config.h<br />
sed -i 's/CHECKSUM_HW/CHECKSUM_PARTIAL/' vmnet-only/bridge.c<br />
sed -i 's/CHECKSUM_HW/CHECKSUM_PARTIAL/' vmnet-only/userif.c<br />
<br />
<br />
(''Other assumptions'' - ''(good to know, but which you won't have to worry about if you're running a "standard" Arch)'' - your kernel headers are installed in '/usr/src/linux-`uname -r`/include', your 'gcc' is in your path (if not, point 'CC' directly to it like as in 'CC=/usr/bin/gcc'), and you're ''not'' using gcc version 3 (see 'gcc --version')).<br />
<br />
4. Now that the modules have been compiled, we resort to some sort of "trickery" in order to get the vmware install process (actually, the 'vmware-config.pl' script) to think that the modules have been pre-built already, and not prompt us to compile them again (we can't) during the install. ''('''*'''This is necessary as we will be installing the vmware binaries in the '''32'''-bit chroot - while needing to compile them in/for the '''64'''-bit environment)''<br />
<br />
cd /32root/vmware-server-distrib/lib/modules/binary # (*or 'cd ../binary')<br />
mkdir -p `uname -r`/objects<br />
cd `uname -r`<br />
<br />
echo UtsRelease `uname -r` > properties<br />
echo SMP yes >> properties<br />
# (-> only these 2 lines are necessary - the rest are not)<br />
<br />
cp /32root/vmware-server-distrib/lib/modules/source/vmmon.o objects<br />
cp /32root/vmware-server-distrib/lib/modules/source/vmnet.o objects<br />
# (*or 'cp ../../source/*.o objects')<br />
<br />
5. Now we're all set to do the actual install of the VMware Server!!!<br />
<br />
== Installing VMware Server into our 32root ==<br />
<br />
1. 'chroot' into your chroot<br />
<br />
chroot /32root<br />
<br />
2. Some preliminaries for the script before we begin our actual install....<br />
<br />
cd /etc<br />
for i in `seq 0 6`; do ln -s rc.d rc$i.d; done<br />
<br />
ln -s /bin/lsmod /sbin/lsmod<br />
<br />
mkdir /lib/modules/`uname -r`<br />
<br />
pacman -S libxtst libxt libxrender libxi # (*note these are the ''absolute essential libraries'' (where X is concerned) which we cannot do without)<br />
pacman -S xinetd<br />
<br />
''('''*'''Take note that we only install 'xinetd' to satisfy the installation requirements(/script) - we won't be using the installed 'vmware-authd' xinetd service at all if all we're going to be doing is only running and controlling the VMs from the local machine! We'll disable this service later on.)''<br />
<br />
3. Now run the actual install<br />
<br />
cd vmware-server-distrib<br />
./vmware-install.pl<br />
<br />
'''*NOTE''' that for the ''third'' question<br />
<br />
What is the directory that contains the init scripts? [/etc]<br />
<br />
you should specify '/etc/rc.d'. There is only one other question for which you might like to specify something other than the default, but this comes much later... (see below) But for the rest of the questions, you can pretty much accept the default - unless you want to change something.<br />
<br />
In which directory do you want to keep your virtual machine files?<br />
[/var/lib/vmware/Virtual Machines]<br />
<br />
For this, you might like to specify something like '/home/Virtual Machines' (don't worry, spaces in the name are ok), so that you can get access to/manipulate your virtual machines files from both inside, and outside the chroot.<br />
<br />
Continue on with the rest of the installation until the end.<br />
<br />
4. That's it!!! We're all set to run and play with our VMs now. :))<br />
<br />
== Miscellaneous, / "Notes" ==<br />
<br />
*you might want to "clean up a bit" after the installation in order to make things "neater",/"simpler",/"easier to handle", and to make things more Arch-like. Consider, for example, deleting the useless S*vmware, and K*vmware symlinks in /etc/rc.d. And consider editting the /etc/rc.d/vmware script too, to touch '/var/run/daemons' instead of '/var/lock/subsys'.<br />
<br />
*the "containing directory" for your Virtual Machine directories ''('''*'''if you followed the recommendation, '/home/Virtual Machines')'' is (as per the installation process) set to chmod 1777. For security's sake, if you want to prevent others from taking a look at your VM directories, consider doing a 'chmod' of this containing directory to something else more secure.<br />
<br />
*as mentioned, if you're only going to be using one machine (as both "client", and "host",/"server") for running, and controlling VMware Server, then there is no need for the 'vmware-authd' xinetd service which will be installed by the installation script. You can simply disable it by either stopping xinetd outright.... or by removing the 'vmware-authd' file in /etc/xinetd.d, and then restarting xinetd. ''This is for your security as well.''<br />
<br />
*(see previous point as well) since it appears that the xinetd service will not be used, I can only conclude that (after taking a look at 'netstat') a socket will be used instead for internal communication between "client" and "host" when both are on the same machine. One might conclude then, that in order to save on the processing requirements, as well as the time for communication, one would do well to disable the SSL requirement for communication with the host (start vmware in the chroot as root, and click on Host -> Settings -> 'Connection' tab). Perhaps somebody more familiar with the workings of VMware Server might be able to comment on this???<br />
<br />
*(an observation) - it appears, that despite whatever "missing libraries" we may have from VMware Server's dependencies (see 'ldd /usr/lib/vmware/bin/vmware' within the chroot), that we will still be able to run just fine?!!! (the binary will just be set up to use the replacement libraries from /usr/lib/vmware/lib) I just wonder, though, if we will experience any slowdowns from using these replacements????<br />
<br />
*(last note): to ''uninstall'' VMware Server from your system, run '/usr/bin/vmware-uninstall.pl' within the chroot.<br />
<br />
*'''Question:''' [[Installing_VMware]] (the old guide I used to install VMware Workstation) mentions a problem of [http://wiki.archlinux.org/index.php/Installing_VMware#slow_networking_between_host_and_guest 'slow networking between host and guest'] - is this problem still relevant to VMware Server???? somebody pls comment.<br />
<br />
*'''Further improvements to this document, or to this knowledge base:''' I haven't done anything about the VMware Tools yet. Anybody want to do up this document?</div>Jfhttps://wiki.archlinux.org/index.php?title=Persistent_block_device_naming&diff=22382Persistent block device naming2007-03-29T15:47:42Z<p>Jf: /* by-label */ add clarification to the case of when '/dev/disk/by-label/' may be missing</p>
<hr />
<div>[[Category:Boot process (English)]]<br />
[[Category:Hardware detection and troubleshooting (English)]]<br />
[[Category:HOWTOs (English)]]<br />
This article describes how to use persistent names for your block devices. This has been made possible by the introduction of udev and has some advantages over bus-based naming.<br />
=Why persistent naming?=<br />
While Linux distributions and udev are evolving and hardware detection is becoming more reliable, there are also a number of new problems and changes:<br />
<br />
* If you have more than one sata/scsi or ide disk controller, the order in which they are added is random. This may result in device names like ''hdX'' and ''hdY'' switching around randomly on each boot. The same goes for ''sdX'' and ''sdY''. Persistent naming allows you not to worry about this at all.<br />
* With the introduction of the new libata pata support, all your ide ''hdX'' devices will become ''sdX'' devices at some point in the future. Again, with persistent naming, you won't even notice.<br />
* Machines with both sata and ide controllers are quite common these days. With the libata changes mentioned above, the first problem will become even more common, as sata and ide hard drives will both have ''sdX'' names.<br />
* Persistent naming just looks prettier.<br />
<br />
There are more reasons, but these are the most critical ones now and in the near future. That's why this wiki wants to encourage you to change your setup to persistent naming schemes.<br />
<br />
=Which name should I use?=<br />
<br />
There are four different schemes for persistent naming:<br />
==by-label==<br />
Almost every filesystem type can have a label. All your partitions that have one are listed in the ''/dev/disk/by-label'' directory ('''''***NOTE!!!''''' - ''this directory'' (plus entries) is created ''(and destroyed)'' dynamically, depending on whether you have partitions with labels attached!):<br />
<br />
$ ls -lF /dev/disk/by-label<br />
total 0<br />
lrwxrwxrwx 1 root root 10 Oct 16 10:27 data -> ../../sdb2<br />
lrwxrwxrwx 1 root root 10 Oct 16 10:27 data2 -> ../../sda2<br />
lrwxrwxrwx 1 root root 10 Oct 16 10:27 fat -> ../../sda6<br />
lrwxrwxrwx 1 root root 10 Oct 16 10:27 home -> ../../sda7<br />
lrwxrwxrwx 1 root root 10 Oct 16 10:27 root -> ../../sda1<br />
lrwxrwxrwx 1 root root 10 Oct 16 10:27 swap -> ../../sda5<br />
lrwxrwxrwx 1 root root 10 Oct 16 10:27 windows -> ../../sdb1<br />
<br />
You can change the labels of your filesystems using these commands:<br />
<br />
* swap: Create a new swapspace like this: ''mkswap -L <label> /dev/XXX''<br />
* ext2/ext3: ''e2label /dev/XXX <label>''<br />
* reiserfs: ''reiserfstune -l <label> /dev/XXX''<br />
* jfs: ''jfs_tune -L <label> /dev/XXX''<br />
* xfs: ''xfs_admin -L <label> /dev/XXX''<br />
* reiser4: ''???'' (are reiser4 labels even recognized?)<br />
* fat/vfat: There is no tool to change the label using Linux, but when you create the filesystem, use ''mkdosfs -n <label> <other options>''. You may also change the label of an existing filesystem using Windows.<br />
* ntfs: ''ntfslabel /dev/XXX <label>'' or change it using Windows.<br />
<br />
Be careful: The labels have to be unique to make this work, so make sure they are.<br />
<br />
==by-uuid==<br />
<br />
[http://en.wikipedia.org/wiki/UUID UUID] stands for ''Universally Unique Identifier'' and is a mechanism to give each filesystem a unique identifier. It is designed so that collisions are unlikely. All Linux filesystems (including swap) support UUID. FAT and NTFS filesystems don't support UUID, but are still listed in by-uuid with a unique identifier:<br />
<br />
$ /bin/ls -lF /dev/disk/by-uuid/<br />
total 0<br />
lrwxrwxrwx 1 root root 10 Oct 16 10:27 2d781b26-0285-421a-b9d0-d4a0d3b55680 -> ../../sda1<br />
lrwxrwxrwx 1 root root 10 Oct 16 10:27 31f8eb0d-612b-4805-835e-0e6d8b8c5591 -> ../../sda7<br />
lrwxrwxrwx 1 root root 10 Oct 16 10:27 3FC2-3DDB -> ../../sda6<br />
lrwxrwxrwx 1 root root 10 Oct 16 10:27 5090093f-e023-4a93-b2b6-8a9568dd23dc -> ../../sda2<br />
lrwxrwxrwx 1 root root 10 Oct 16 10:27 912c7844-5430-4eea-b55c-e23f8959a8ee -> ../../sda5<br />
lrwxrwxrwx 1 root root 10 Oct 16 10:27 B0DC1977DC193954 -> ../../sdb1<br />
lrwxrwxrwx 1 root root 10 Oct 16 10:27 bae98338-ec29-4beb-aacf-107e44599b2e -> ../../sdb2<br />
<br />
As you can see, the fat and ntfs partitions (''fat'' and ''windows'' labels above) have shorter names, but are still listed. The advantage about using the uuid method is that it is less likely that you have name collisions than with labels; the disadvantage is that they are more difficult to memorize.<br />
<br />
==by-id and by-path==<br />
<br />
by-id creates a unique name depending on the hardware serial number. by-path creates a unique name depending on the shortest physical path (according to sysfs). Both contain strings to indicate which subsystem they belong to and thus are not suitable for solving the problems mentioned in the beginning of this article. They won't be discussed any further here.<br />
<br />
=Enabling persistent naming=<br />
<br />
Having chosen which naming method you'd like to use, let's now enable persistent naming for your system:<br />
<br />
==In fstab==<br />
<br />
Enabling persistent naming in ''/etc/fstab'' is easy, just replace the device name in the first column by the new persistent name. In my example I would replace ''/dev/sda7'' by one of the following:<br />
<br />
* ''/dev/disk/by-label/home'' or<br />
* ''/dev/disk/by-uuid/31f8eb0d-612b-4805-835e-0e6d8b8c5591''<br />
<br />
Do so for all the partitions in your fstab file.<br />
<br />
Instead of giving the device explicitly, one may indicate the filesystem that is to be mounted by its UUID or volume label, writing LABEL=<label> or UUID=<uuid>, e.g., `LABEL=Boot' or `UUID=3e6be9de-8139-11d1-9106-a43f08d823a6'.<br />
<br />
==In your boot manager==<br />
<br />
To use persistent names in your boot manager, all of the the following prerequisites have to be met:<br />
<br />
* You are using a ''[[Configuring mkinitcpio|mkinitcpio]]'' initramfs image<br />
* You have udev enabled in ''/etc/mkinitcpio.conf''<br />
* When your initramfs image was generated, version ''101-3'' or greater of ''klibc-udev'' was installed ('''persistent naming is broken in any earlier version'''). If you are updating ''klibc-udev'' from an earlier version and want to use persistent naming, regenerate your initramfs image before you reboot.<br />
<br />
In the above example, ''/dev/sda1'' is the root partition. In the grub ''menu.lst'' file, the ''kernel'' line looks like this:<br />
<br />
kernel /boot/vmlinuz26 root=/dev/hda1 vga=0x318 ro<br />
<br />
Depending on which naming scheme I would prefer, I'd change it to one of the following<br />
<br />
kernel /boot/vmlinuz26 root=/dev/disk/by-label/root vga=0x318 ro<br />
or<br />
kernel /boot/vmlinuz26 root=/dev/disk/by-uuid/2d781b26-0285-421a-b9d0-d4a0d3b55680 vga=0x318 ro<br />
<br />
If you are using lilo, then do not try this with the ''root=...'' configuration option, it will not work. Use ''append="root=..."'' or ''addappend="root=.."'' instead. Read the lilo manpage for more information on ''append'' and ''addappend''.<br />
<br />
There is an alternative way to use the label embedded in the filesystem. For example if (as above) the filesystem in /dev/hda1 is labelled "root", you would give this line to grub:<br />
kernel /boot/vmlinuz26 root=LABEL=root vga=0x318 ro<br />
(source: http://marc.theaimsgroup.com/?l=linux-hotplug-devel&m=114795097514527&w=2 )<br />
<br />
One users experience (10MAR07):<br />
root=LABEL=root did not work for me (ARCH 2.6.20.2-1 kernel), /dev/disk/by-label/root worked just fine.</div>Jfhttps://wiki.archlinux.org/index.php?title=Talk:Persistent_block_device_naming&diff=22381Talk:Persistent block device naming2007-03-29T15:42:30Z<p>Jf: </p>
<hr />
<div>Enabling persistent naming in /etc/fstab is easy, just replace the device name in the first column by the new persistent name. In my example I would replace /dev/sda7 by one of the following: <br />
<br />
/dev/disk/by-label/home or <br />
/dev/disk/by-uuid/31f8eb0d-612b-4805-835e-0e6d8b8c5591 <br />
Do so for all the partitions in your fstab file. <br />
<br />
<br />
... is this really truely ?<br />
<br />
I have to use :<br />
<br />
UUID=31f8eb0d-612b-4805-835e-0e6d8b8c5591 /home<br />
<br />
or I understood somewhat wrongly.<br />
<br />
piwi<br />
<br />
<br />
----<br />
<br />
:It works, yes. But I prefer LABEL over UUID:<br />
:<tt>LABEL=HOME-jfs /home nodev,nosuid,noatime 0 2</tt><br />
<br />
: --[[User:Byte|byte]] 08:19, 19 December 2006 (EST)<br />
<br />
<br />
----<br />
<br />
Found this howto easy & very usefull :)<br />
Have got a few HDDs & USBKeys that love to be (disk-label) mounted so easy but still a sure way (by easy i mean, compared to udev rules ;).<br />
:--[[User:Kozaki|kozaki]] 15:19, 7 January 2007 (PST)<br />
<br />
----<br />
but I havn't this /dev/disk/by-label directary,why?<br />
mawchmail@gmail.com<br />
<br />
----<br />
<br />
That's because that directory is actually created (and destroyed) '''''dynamically''''' when you attach (or detach) some disk or partition that has a label! A bit scary for the uninitiated, but true....<br />
:--[[User:jf|jf]] 15:32, 29 March 2007 '''("Why couldn't everybody JUST use easily-referenced 'GMT', or 'UTC'?!!!")'''</div>Jfhttps://wiki.archlinux.org/index.php?title=Mkinitcpio&diff=22373Mkinitcpio2007-03-29T12:54:17Z<p>Jf: /* Regenerating the Fallback Image */ update mkinitcpio fallback confs</p>
<hr />
<div>[[Category:Boot process (English)]]<br />
[[Category:Arch kernels (English)]]<br />
[[Category:Tutorials (English)]]<br />
<br />
== About ==<br />
<br />
'''mkinitcpio''' is the next generation of '''initramfs creation'''. It has many advantages above the old '''mkinitrd''' and '''mkinitramfs''' scripts.<br />
<br />
* It uses '''klibc''' and '''kinit''' which are developed by Linux kernel devs to provide a small and lightweight base for early userspace.<br />
* It can use '''udev''' for hardware autodetection at runtime, thus prevents you from having tons of unnecessary modules loaded.<br />
* Its hook-based init script is easily extendable with custom hooks, which can easily be included in pacman packages without having to modifiy mkinitcpio itself.<br />
* It already supports '''lvm2''', '''dm-crypt''' for both legacy and luks volumes, '''raid''', '''swsusp''' and '''suspend2''' resuming and booting from '''usb mass storage''' devices.<br />
* Many features can be configured from the kernel command line without having to rebuild the image.<br />
* The '''mkinitcpio''' script makes it possible to include the image in a kernel, thus making a self-contained kernel image is possible.<br />
<br />
'''mkinitcpio''' has been developed by '''phrakture''' and '''tpowa''' with some help from the community.<br />
<br />
== Installing mkinitcpio ==<br />
=== From the current repository ===<br />
<br />
The '''mkinitcpio''' script has made its move to the current repository. You can install with the command<br />
# pacman -Sy mkinitcpio<br />
<br />
=== From svn ===<br />
<br />
If you want the latest development version of '''mkinitcpio''', check out phrakture's svn repository using<br />
# svn co http://phraktured.net/initramfs<br />
The newest scripts are now in the '''initramfs/mkinitcpio''' directory.<br />
<br />
== Activation for >=2.6.17 kernels ==<br />
There will be 2 images created during kernel installation/upgrade:<br />
<br />
If you are using '''kernel26'''<br />
/boot/kernel26.img --> stripped down in size by autodetect<br />
/boot/kernel26-fallback.img --> contains all modules of subsystems<br />
If you are using '''kernel26beyond'''<br />
/boot/kernel26beyond.img --> stripped down in size by autodetect<br />
/boot/kernel26beyond-fallback.img --> contains all modules of subsystems<br />
Please change your bootloader to load the image you need.<br />
<br />
=== ATTENTION: ===<br />
==== => '''lvm2''', '''raid''' and '''encrypt''' are NOT enabled by default ====<br />
'''lvm2''', '''raid''' and '''encrypt''' are not! enabled by default.<br />
Please read this wiki carefully on how to setup those stuff, and configure it <br />
for your system.<br />
<br />
==== => Users with more than 1 hardware disk controller ====<br />
If you have more than one hardware disk controller which uses the same node names (like 2 SCSI/SATA or IDE controllers) and need different kernel modules to load them, please specify the correct order in MODULES="" in /etc/mkinitcpio.conf and in your fallback config file, else it could happen that your root device keeps on switching and you could run into random kernel panics.<br />
<br />
A more elegant alternative is to use [[Persistent block device naming]] to ensure that the right devices are mounted.<br />
<br />
==== Known modules that are not autoloaded during boot process ====<br />
If you need one of the following modules for your root device, consider to load them by MODULES="" in /etc/mkinitcpio.conf and in your fallback config file, else your kernel panics during boot.<br />
<br />
- '''SCSI CONTROLLERS''' (status stock kernel 2.6.18)<br />
scsi_transport_sas ultrastor qlogicfas eata BusLogic pas16 wd7000 sym53c416<br />
g_NCR5380_mmio fdomain u14-34f dtc initio in2000 imm t128 aha1542 aha152x<br />
atp870u g_NCR5380 NCR53c406a qlogicfas408 megaraid_mm advansys<br />
<br />
=== Customizing the Configuration Files ===<br />
<br />
=== '''Modifying main image''' ===<br />
To change the defaults for the main image edit the following file:<br />
<br />
/etc/mkinitcpio.conf<br />
<br />
mkinitcpio uses this file by default.<br />
<br />
=== '''Modifying fallback image''' ===<br />
To change the defaults for the fallback images, edit one of the following files:<br />
if you use kernel26, edit '''/boot/mkinitcpio.d/kernel26-fallback.conf'''<br />
if you use kernel26beyond, edit '''/boot/mkinitcpio.d/kernel26beyond-fallback.conf'''<br />
and set the file that you edited to '''NoUpgrade =''' in '/etc/pacman.conf'. Note that these should be sane unless you require a special setup such as lvm or raid.<br />
<br />
=== Configuring the HOOKS ===<br />
<br />
This is the most important part of mkinitcpio configuration. The HOOKS line contains the hooks that are executed on image creation and on runtime in the exact order they are executed. The format is like this:<br />
<br />
HOOKS="foo1 foo2 foo3 bar1 bar2"<br />
<br />
==== Available hooks ====<br />
<br />
{| border="2" cellspacing="0" cellpadding="4" rules="all" style="margin:1em 1em 1em 0; border-style:solid; border-width:1px; border-collapse:collapse; empty-cells:show"<br />
|-<br />
! Hook || Installation || Runtime<br />
|-<br />
| '''base''' || Sets up all initial directories and installs base klibc utilities and libraries. Always add this hook unless you know what you are doing. || <br />
|-<br />
| '''udev''' || Adds udev to your image || Udev will be used to create your root device node and detect the needed modules for your root device. As it simplifies things, using the udev hook is recommended.<br />
|-<br />
| '''modload''' || || An alternative autodetecion method which is much slower than udev. Using this hook is discouraged. Use udev instead.<br />
|-<br />
| '''autodetect''' || Shrinks your initramfs to a smaller size by autodetecting your needed modules. Be sure to verify included modules are correct and none are missing. This hook must be run before other subsystem hooks in order to take advantage of auto-detection. Any hooks placed before 'autodetect' will be installed in full. || <br />
|-<br />
| '''ide''' || Adds IDE modules to the image. Use this if your root device is on a IDE disk. Also use the '''autodetect''' hook if you want to minimize your image size || Loads IDE modules. You will need the '''udev''' or '''modload''' hook unless you specify the needed modules manually (see MODULES section below).<br />
|-<br />
| '''pata''' || Adds IDE modules to the image. Use this if your root device is on a IDE disk. Also use the '''autodetect''' hook if you want to minimize your image size || Loads IDE modules. You will need the '''udev''' or '''modload''' hook unless you specify the needed modules manually (see MODULES section below). PATA is the kernel's new IDE driver. It will change your /dev/hd? to /dev/sd?. more info: http://archlinux.org/news/272/<br />
|-<br />
| '''sata''' || Adds serial ATA modules to the image. Use this if your root device is on a SATA disk. Also use the '''autodetect''' hook if you want to minimize your image size. || Loads SATA modules. You will need the '''udev''' or '''modload''' hook unless you specify the needed modules manually (see MODULES section below).<br />
|-<br />
| '''scsi''' || Adds SCSI modules to the image. Use this if your root device is on a SCSI disk. Also use the '''autodetect''' hook if you want to minimize your image size. || Loads SCSI modules. You will need the '''udev''' or '''modload''' hook unless you specify the needed modules manually (see MODULES section below).<br />
|-<br />
| '''usb''' || Adds USB modules to the image. Use this if your root device is on a USB mass storage device. || Loads USB modules. You will need the '''udev''' or '''modload''' hook unless you specify the needed modules manually (see MODULES section below).<br />
|-<br />
| '''usbinput''' || Adds USB HID modules to the image. Use this if you have an USB keyboard and need it in early userspace (either for entering encryption passphrases or for failsafe mode) || Loads USB HID modules. You will need the '''udev''' or '''modload''' hook unless you specify the needed modules manually (see MODULES section below).<br />
|-<br />
| '''fw''' || Adds Firewire modules to the image. Use this if your root device is on a FW mass storage device. || Loads FW modules. You will need the '''udev''' or '''modload''' hook unless you specify the needed modules manually (see MODULES section below).<br />
|-<br />
| '''net''' || Adds the necessary modules for a network device. For pcmcia net devices please add pcmcia hook too. || Loads network modules. You will need the '''udev''' or '''modload''' hook unless you specify the needed modules manually (see MODULES section below). See the section [[Configuring_mkinitcpio#Customizing_the_kernel_command_line|Customizing the kernel command line]] for further configuration.<br />
|-<br />
| '''pcmcia''' || Adds the necessary modules for pcmcia devices. You need to have pcmciautils installed to use this.|| Loads pcmcia modules. You will need the '''udev''' or '''modload''' hook unless you specify the needed modules manually (see MODULES section below).<br />
|-<br />
| '''dsdt''' || Loads a custom acpi dsdt file during boot. Place your custom dsdt file for inclusion at /lib/initcpio/custom.dsdt || The custom dsdt file is automatically used by the kernel if it is present in initramfs.<br />
|-<br />
| '''filesystems''' || This includes necessary filesystem modules into your image. This hook is necessary if you want to be able to boot || This will detect the filesystem type at runtime, load the module and pass it to kinit. NOTE: it will NOT detect reiser4, it must be added to modules list.<br />
|-<br />
| '''lvm2''' || Adds the device mapper kernel module and the lvm tool to the image. You need to have the lvm2 package installed to use this. || Enables all lvm2 volume groups. This is necessary if you have your root filesystem on lvm.<br />
|-<br />
| '''raid''' || Adds the modules and mdassamble for a software raid setup. You need to have mdadm installed to use this.|| Loads the necessary modules for software raid devices, and assembles the raid devices when run. See the section [[Configuring_mkinitcpio#Customizing_the_kernel_command_line|Customizing the kernel command line]] for further configuration.<br />
|-<br />
| '''encrypt''' || Adds the dm-crypt kernel module and the cryptsetup tool to the image. You need to have the cryptsetup package installed to use this. || Detects and unlocks an encrypted root partition. See the section [[Configuring_mkinitcpio#Customizing_the_kernel_command_line|Customizing the kernel command line]] for further configuration.<br />
|-<br />
| '''resume''' || || This tries to resume from "suspend to disk" state. Works with both swsusp and [[Suspend to Disk|suspend2]]. See the section [[Configuring_mkinitcpio#Customizing_the_kernel_command_line|Customizing the kernel command line]] for further configuration.<br />
|-<br />
| '''firmware''' || Adds /lib/firmware files. || Loads firmware. You will need the '''udev''' hook to get firmware loaded. <br />
|-<br />
| '''keymap''' || Adds keymap and consolefonts from rc.conf. || Loads the specified keymap and consolefont from rc.conf during early userspace.<br />
|}<br />
<br />
==== Examples ====<br />
<br />
This configuration will work for most users with a standard setup:<br />
<br />
HOOKS="base udev autodetect ide scsi sata filesystems"<br />
<br />
If you want to use the image on more than one machine, use this configuration:<br />
<br />
HOOKS="base udev ide scsi sata filesystems"<br />
<br />
You can use encrypted volumes on top of lvm2 volume groups:<br />
<br />
HOOKS="base udev autodetect ide scsi sata lvm2 encrypt filesystems"<br />
<br />
=== Configuring the MODULES ===<br />
<br />
You can use the MODULES in the configuration file to load a module before anything else is done. For example, if you don't want to use '''udev''' or '''modload''', you can add all necessary modules manually and make booting faster:<br />
<br />
MODULES="piix ide_disk reiserfs"<br />
HOOKS="base autodetect ide filesystems"<br />
<br />
NOTE: if you're using '''reiser4''', you MUST add it to the modules list.<br />
<br />
=== Configuring the BINARIES and FILES ===<br />
<br />
These options allow you to add files to the image. The only difference is that BINARIES checks binaries and libraries for dependencies, while FILES simply adds the file.<br />
<br />
Examples:<br />
<br />
FILES="/etc/modprobe.conf"<br />
<br />
BINARIES="/usr/bin/somefile"<br />
<br />
== Creating the image ==<br />
<br />
=== Regenerating predefined images / using presets ===<br />
<br />
If you want to regenerate your initramfs images for the Archlinux stock kernels, use the command<br />
# mkinitcpio -p kernel26<br />
This example is for the ''kernel26'' package, it works the same for the other kernel packages.<br />
<br />
If you want to change the settings for your images, edit the ''/etc/mkinitcpio.d/kernel26.preset'' file (again, just change the filename for the other kernel packages). '''These ''.preset'' files will be used on a kernel update, so don't break them.'''<br />
<br />
=== Manually ===<br />
<br />
Create the image with the following command:<br />
<br />
mkinitcpio -g /boot/kernel26.img<br />
<br />
This will generate the image for the currently running kernel and save it at '''/boot/kernel26.img''', which is the location for '''kernel26''' package. Users of '''kernel26beyond''' should use the following instead:<br />
<br />
mkinitcpio -g /boot/kernel26beyond.img<br />
<br />
If you are creating an image for a kernel other than the one you are currently running, add the kernel version to the command line:<br />
<br />
mkinitcpio -g /boot/kernel26.img -k 2.6.16-ARCH<br />
<br />
==== Regenerating the Fallback Image ====<br />
<br />
''NOTE:'' The following may confuse some people. It is only intended to help create fallback images for people already running the current kernel. To create images for any kernel that is not currently running, you MUST use the -k parameter.<br />
<br />
A fallback image should have been created when you installed '''kernel26''' or '''kernel26beyond''' but in case you want to re-generate it<br />
<br />
mkinitcpio -c /boot/mkinitcpio.d/kernel26-fallback.conf -g /boot/kernel26.img<br />
for beyond<br />
mkinitcpio -c /boot/mkinitcpio.d/kernel26beyond-fallback.conf -g /boot/kernel26beyond.img<br />
<br />
See '''mkinitcpio -h''' for more options.<br />
<br />
Don't forget to add a new bootloader entry. Just make a copy of your old one and change the initrd to your new image. As long as mkinitcpio is beta, please always leave the old one intact, so that you can boot it if something goes wrong. You can use mkinitcpio with any kernel, so kernel26 and kernel26-beyond users are encouraged to try it.<br />
<br />
== Customizing the kernel command line ==<br />
<br />
Just like without initramfs, some options need to be passed on the kernel command line to configure your kernel, like the root device. Some of the mkinitcpio hooks have special options. These are discussed below.<br />
<br />
If you don't know what a kernel command line is, please refer to the [[GRUB]] or [[Lilo]] documentation.<br />
<br />
=== Entering failsafe mode ===<br />
<br />
If you add the option<br />
break=y<br />
to the kernel command line, init stops after the setup is completed and you are left with a ''dash'' shell. This can be used to verify that everything went fine. If you logout, normal boot continues.<br />
<br />
=== Disabling hooks ===<br />
<br />
You can disable a hook at runtime by adding the ''disablehooks'' option to the kernel command line like this:<br />
<br />
disablehooks=hook1,hook2,hook2<br />
<br />
for example<br />
<br />
disablehooks=resume<br />
<br />
=== Blacklisting modules ===<br />
<br />
You can blacklist modules by adding the ''disablemodules'' option to the kernel command line like this:<br />
<br />
disablemodules=mod1,mod2,mod3<br />
<br />
for example<br />
<br />
disablemodules=ata_piix<br />
<br />
=== Using raid ===<br />
First add the raid hook to the HOOKS list in /etc/mkinitcpio.conf<br />
<br />
'''Kernel Parameters: '''<br />
Specify your md arrays with: md= parameter: (see below).<br />
Note that only adding the raid array you're booting from is enough.<br />
Example: md=0,/dev/sda3,/dev/sda4 md=1,/dev/hda1,/dev/hdb1<br />
<br />
Then add the following to the kernel line in '''grub/menu.lst''':<br />
Example: md=0,/dev/sda3,/dev/sda4 md=1,/dev/hda1,/dev/hdb1<br />
So that it looks like:<br />
kernel /vmlinuz26beyond root=/dev/md0 ro md=0,/dev/sda1,/dev/sdb1<br />
This will setup 2 md arrays with persistent superblocks<br />
<br />
'''Setup:'''<br />
- for old raid arrays without persistent superblocks:<br />
md=<md device no.>,<raid level>,<chunk size factor>,<fault level>,dev0,dev1<br />
- for raid arrays with persistent superblocks:<br />
md=<md device no.>,dev0,dev1,...,devn<br />
- for, to assemble a partitionable array:<br />
md=d<md device no.>,dev0,dev1,...,devn<br />
<br />
'''Parameters:'''<br />
- <md device no.> = the number of the md device: <br />
0 means md0, 1 means md1, ...<br />
- <raid level> = -1 linear mode, 0 striped mode<br />
other modes are only supported with persistent super block<br />
- <chunk size factor> = (raid-0 and raid-1 only):<br />
Set the chunk size as 4k << n.<br />
- <fault level> = totally ignored<br />
- <dev0-devn>: e.g. /dev/hda1,/dev/hdc1,/dev/sda1,/dev/sdb1<br />
<br />
=== Using net ===<br />
<br />
'''Kernel Parameters:''' <br />
<br />
'''ip=''' <br />
<br />
An interface spec can be either short form, which is just the name of<br />
an interface (eth0 or whatever), or long form. The long form consists<br />
of up to seven elements, separated by colons:<br />
<br />
ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf><br />
nfsaddrs= is an alias to ip= and can be used too.<br />
<br />
''Parameter explanation:''<br />
<client-ip> IP address of the client. If empty, the address will<br />
either be determined by RARP/BOOTP/DHCP. What protocol<br />
is used de- pends on the <autoconf> parameter. If this<br />
parameter is not empty, autoconf will be used.<br />
<br />
<server-ip> IP address of the NFS server. If RARP is used to<br />
determine the client address and this parameter is NOT<br />
empty only replies from the specified server are<br />
accepted. To use different RARP and NFS server,<br />
specify your RARP server here (or leave it blank), and<br />
specify your NFS server in the `nfsroot' parameter<br />
(see above). If this entry is blank the address of the<br />
server is used which answered the RARP/BOOTP/DHCP<br />
request.<br />
<br />
<gw-ip> IP address of a gateway if the server is on a different<br />
subnet. If this entry is empty no gateway is used and the<br />
server is assumed to be on the local network, unless a<br />
value has been received by BOOTP/DHCP.<br />
<br />
<netmask> Netmask for local network interface. If this is empty,<br />
the netmask is derived from the client IP address assuming<br />
classful addressing, unless overridden in BOOTP/DHCP reply.<br />
<br />
<hostname> Name of the client. If empty, the client IP address is<br />
used in ASCII notation, or the value received by<br />
BOOTP/DHCP.<br />
<br />
<device> Name of network device to use. If this is empty, all<br />
devices are used for RARP/BOOTP/DHCP requests, and the<br />
first one we receive a reply on is configured. If you<br />
have only one device, you can safely leave this blank.<br />
<br />
<autoconf> Method to use for autoconfiguration. If this is either<br />
'rarp', 'bootp', or 'dhcp' the specified protocol is<br />
used. If the value is 'both', 'all' or empty, all<br />
protocols are used. 'off', 'static' or 'none' means<br />
no autoconfiguration.<br />
''Examples:''<br />
ip=127.0.0.1:::::lo:none --> Enable the loopback interface.<br />
ip=192.168.1.1:::::eth2:none --> Enable static eth2 interface.<br />
ip=:::::eth0:dhcp --> Enable dhcp protcol for eth0 configuration.<br />
'''nfsroot='''<br />
<br />
If the 'nfsroot' parameter is NOT given on the command line, the default<br />
"/tftpboot/%s" will be used.<br />
<br />
nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]<br />
<br />
''Parameter explanation:''<br />
<br />
<server-ip> Specifies the IP address of the NFS server. If this field<br />
is not given, the default address as determined by the<br />
`ip' variable (see below) is used. One use of this<br />
parameter is for example to allow using different servers<br />
for RARP and NFS. Usually you can leave this blank.<br />
<br />
<root-dir> Name of the directory on the server to mount as root. If<br />
there is a "%s" token in the string, the token will be<br />
replaced by the ASCII-representation of the client's IP<br />
address.<br />
<br />
<nfs-options> Standard NFS options. All options are separated by commas.<br />
If the options field is not given, the following defaults<br />
will be used:<br />
port = as given by server portmap daemon<br />
rsize = 1024<br />
wsize = 1024<br />
timeo = 7<br />
retrans = 3<br />
acregmin = 3<br />
acregmax = 60<br />
acdirmin = 30<br />
acdirmax = 60<br />
flags = hard, nointr, noposix, cto, ac<br />
<br />
'''root=/dev/nfs'''<br />
If you don't use nfsroot= parameter you need to set root=/dev/nfs <br />
to boot from a nfs root by autoconfiguration.<br />
<br />
=== Using lvm ===<br />
<br />
If your root device is on lvm, you have to add the '''lvm2''' hook. You have to pass your root device on the kernel command line in the format<br />
<br />
root=/dev/mapper/<volume group name>-<logical volume name><br />
<br />
for example<br />
<br />
root=/dev/mapper/myvg-root<br />
<br />
=== Using encrypted root ===<br />
<br />
If your root volume is encrypted, you need to add the '''encrypt''' hook. Then specify your root device on the kernel command line, just as if it was unencrypted.<br />
<br />
For an encrypted partition on an sata or scsi disk:<br />
root=/dev/sda5<br />
<br />
For an encrypted lvm volume:<br />
root=/dev/mapper/myvg-root<br />
<br />
The root device will be automatically changed to ''/dev/mapper/root''.<br />
<br />
==== Using LUKS volumes ====<br />
<br />
If you use LUKS for hard disk encryption, the init script will detect the encryption automatically if the '''encrypt''' hook is enabled. It will then ask for a passphrase and try to unlock the volume.<br />
<br />
If this fails try to add you filesystem-module to the module list in /etc/mkinitcpio.conf if it's not compiled into your kernel.<br />
<br />
==== Using legacy cryptsetup volumes ====<br />
<br />
If you are using a legacy cryptsetup volume, you have to specify all cryptsetup options necessary to unlock it on the kernel command line. The option format is<br />
<br />
crypto=hash:cipher:keysize:offset:skip<br />
<br />
representing cryptsetup's --hash, --cipher, --keysize, --offset and --skip options. If you omit an option, cryptsetup's default value is used, so you can just specify<br />
<br />
crypto=::::<br />
<br />
if you created your volume with the default settings.<br />
<br />
'''NOTE:''' For technical reasons, it is not possible to verify the correctness of your passphrase with legacy cryptsetup volumes. If you typed it wrong, mounting will simply fail. It is recommended that you use LUKS instead.<br />
<br />
==== Using loop-aes volumes ====<br />
<br />
'''mkinitcpio''' does not support loop-aes yet.<br />
<br />
== Using Suspend to Disk ==<br />
<br />
If you want to use suspend to disk, you have to add the '''resume''' hook.<br />
<br />
==== swsusp ====<br />
<br />
''TODO''<br />
<br />
==== µswsusp ====<br />
<br />
µswsusp is not supported yet.<br />
<br />
==== suspend2 ====<br />
<br />
If you are using [[Suspend to Disk|suspend2]], you have to specify the ''resume2'' kernel commandline option. If you are using the swap writer, use<br />
<br />
resume2=swap:/dev/hda3<br />
<br />
where ''/dev/hda3'' is your swap partition. If you want to use the filewriter, use<br />
<br />
resume2=file:/dev/hda2:0x123456<br />
<br />
where ''/dev/hda2'' is the partition where the suspend2 image is stored (most likely the root partition) and ''0x123456'' is the file offset. You can get the exact value with the commands<br />
<br />
echo "/suspend2_file" > /proc/suspend2/filewriter_target<br />
cat /proc/suspend2/resume2<br />
<br />
where /suspend2_file is the path to your suspend image file. This - of course - works for lvm volumes as well. You can also use a suspend file on an encrypted root partition with the option<br />
<br />
resume2=file:/dev/mapper/root:0x123456<br />
<br />
where ''0x123456'' is the offset again. Resuming from an encrypted swap partition is not supported.<br />
<br />
=== Example bootloader configuration files ===<br />
<br />
If you use the beyond kernel, the filenames are ''kernel26beyond.img'' and ''kernel26beyond-fallback.img'' instead of ''kernel26.img'' and ''kernel26-fallback.img'', respectively. Also, change "vmlinuz26" to "vmlinuz26beyond". <br />
<br />
==== GRUB ====<br />
<br />
For those who have /boot on a separate partition:<br />
<br />
# (0) Arch Linux<br />
title Arch Linux<br />
root (hd0,3)<br />
kernel /vmlinuz26 root=/dev/hda4 vga=791 ro<br />
initrd /kernel26.img<br />
<br />
title Arch Linux Fallback<br />
root (hd0,3)<br />
kernel /vmlinuz26 root=/dev/hda4 vga=791 ro<br />
initrd /kernel26-fallback.img<br />
<br />
For those who do _not_ have /boot on a separate partition:<br />
<br />
# (0) Arch Linux<br />
title Arch Linux<br />
root (hd0,3)<br />
kernel /boot/vmlinuz26 root=/dev/hda4 vga=791 ro<br />
initrd /boot/kernel26.img<br />
<br />
title Arch Linux Fallback<br />
root (hd0,3)<br />
kernel /boot/vmlinuz26 root=/dev/hda4 vga=791 ro<br />
initrd /boot/kernel26-fallback.img<br />
<br />
==== LILO ====<br />
<br />
If you use LILO, it is recommended that you use ''append="root=/dev/XYZ"'' instead of ''root=/dev/XYZ''. If you already have a global ''append'' option, then use ''addappend''.<br />
<br />
boot=/dev/hdX <br />
default = ArchLinux<br />
timeout=50 <br />
vga=791<br />
lba32<br />
prompt<br />
<br />
# for the hardware-autodetecting image<br />
image=/boot/vmlinuz26<br />
label=ArchLinux<br />
append="root=/dev/hdXY"<br />
initrd=/boot/kernel26.img<br />
read-only<br />
<br />
# fallback image if the other doesnt work (Will most prob. never be used)<br />
image=/boot/vmlinuz26<br />
label=ArchLinuxFallBack<br />
append="root=/dev/hdXY"<br />
initrd=/boot/kernel26-fallback.img<br />
read-only<br />
<br />
== Troubleshooting ==<br />
=== piix ide controllers and beyond kernel ===<br />
==== Problem ====<br />
If you are having problems getting mkinitcpio to detect your hard drive giving errors akin to "Can't find device dev(0,0)" when switching to kinit, then this could be because of a conflict that the ata_piix and piix drivers have. The beyond kernel has some libata patches that cause ata_piix to *conflict* with piix.<br />
<br />
==== Solution ====<br />
Edit /etc/mkinitcpio.conf to only have ide or sata or scsi depending on what your system actually needs to boot.</div>Jfhttps://wiki.archlinux.org/index.php?title=Mkinitcpio&diff=22372Mkinitcpio2007-03-29T12:46:04Z<p>Jf: /* '''Modifying fallback image''' */ updated the paths to the fallback mkinitcpio confs</p>
<hr />
<div>[[Category:Boot process (English)]]<br />
[[Category:Arch kernels (English)]]<br />
[[Category:Tutorials (English)]]<br />
<br />
== About ==<br />
<br />
'''mkinitcpio''' is the next generation of '''initramfs creation'''. It has many advantages above the old '''mkinitrd''' and '''mkinitramfs''' scripts.<br />
<br />
* It uses '''klibc''' and '''kinit''' which are developed by Linux kernel devs to provide a small and lightweight base for early userspace.<br />
* It can use '''udev''' for hardware autodetection at runtime, thus prevents you from having tons of unnecessary modules loaded.<br />
* Its hook-based init script is easily extendable with custom hooks, which can easily be included in pacman packages without having to modifiy mkinitcpio itself.<br />
* It already supports '''lvm2''', '''dm-crypt''' for both legacy and luks volumes, '''raid''', '''swsusp''' and '''suspend2''' resuming and booting from '''usb mass storage''' devices.<br />
* Many features can be configured from the kernel command line without having to rebuild the image.<br />
* The '''mkinitcpio''' script makes it possible to include the image in a kernel, thus making a self-contained kernel image is possible.<br />
<br />
'''mkinitcpio''' has been developed by '''phrakture''' and '''tpowa''' with some help from the community.<br />
<br />
== Installing mkinitcpio ==<br />
=== From the current repository ===<br />
<br />
The '''mkinitcpio''' script has made its move to the current repository. You can install with the command<br />
# pacman -Sy mkinitcpio<br />
<br />
=== From svn ===<br />
<br />
If you want the latest development version of '''mkinitcpio''', check out phrakture's svn repository using<br />
# svn co http://phraktured.net/initramfs<br />
The newest scripts are now in the '''initramfs/mkinitcpio''' directory.<br />
<br />
== Activation for >=2.6.17 kernels ==<br />
There will be 2 images created during kernel installation/upgrade:<br />
<br />
If you are using '''kernel26'''<br />
/boot/kernel26.img --> stripped down in size by autodetect<br />
/boot/kernel26-fallback.img --> contains all modules of subsystems<br />
If you are using '''kernel26beyond'''<br />
/boot/kernel26beyond.img --> stripped down in size by autodetect<br />
/boot/kernel26beyond-fallback.img --> contains all modules of subsystems<br />
Please change your bootloader to load the image you need.<br />
<br />
=== ATTENTION: ===<br />
==== => '''lvm2''', '''raid''' and '''encrypt''' are NOT enabled by default ====<br />
'''lvm2''', '''raid''' and '''encrypt''' are not! enabled by default.<br />
Please read this wiki carefully on how to setup those stuff, and configure it <br />
for your system.<br />
<br />
==== => Users with more than 1 hardware disk controller ====<br />
If you have more than one hardware disk controller which uses the same node names (like 2 SCSI/SATA or IDE controllers) and need different kernel modules to load them, please specify the correct order in MODULES="" in /etc/mkinitcpio.conf and in your fallback config file, else it could happen that your root device keeps on switching and you could run into random kernel panics.<br />
<br />
A more elegant alternative is to use [[Persistent block device naming]] to ensure that the right devices are mounted.<br />
<br />
==== Known modules that are not autoloaded during boot process ====<br />
If you need one of the following modules for your root device, consider to load them by MODULES="" in /etc/mkinitcpio.conf and in your fallback config file, else your kernel panics during boot.<br />
<br />
- '''SCSI CONTROLLERS''' (status stock kernel 2.6.18)<br />
scsi_transport_sas ultrastor qlogicfas eata BusLogic pas16 wd7000 sym53c416<br />
g_NCR5380_mmio fdomain u14-34f dtc initio in2000 imm t128 aha1542 aha152x<br />
atp870u g_NCR5380 NCR53c406a qlogicfas408 megaraid_mm advansys<br />
<br />
=== Customizing the Configuration Files ===<br />
<br />
=== '''Modifying main image''' ===<br />
To change the defaults for the main image edit the following file:<br />
<br />
/etc/mkinitcpio.conf<br />
<br />
mkinitcpio uses this file by default.<br />
<br />
=== '''Modifying fallback image''' ===<br />
To change the defaults for the fallback images, edit one of the following files:<br />
if you use kernel26, edit '''/boot/mkinitcpio.d/kernel26-fallback.conf'''<br />
if you use kernel26beyond, edit '''/boot/mkinitcpio.d/kernel26beyond-fallback.conf'''<br />
and set the file that you edited to '''NoUpgrade =''' in '/etc/pacman.conf'. Note that these should be sane unless you require a special setup such as lvm or raid.<br />
<br />
=== Configuring the HOOKS ===<br />
<br />
This is the most important part of mkinitcpio configuration. The HOOKS line contains the hooks that are executed on image creation and on runtime in the exact order they are executed. The format is like this:<br />
<br />
HOOKS="foo1 foo2 foo3 bar1 bar2"<br />
<br />
==== Available hooks ====<br />
<br />
{| border="2" cellspacing="0" cellpadding="4" rules="all" style="margin:1em 1em 1em 0; border-style:solid; border-width:1px; border-collapse:collapse; empty-cells:show"<br />
|-<br />
! Hook || Installation || Runtime<br />
|-<br />
| '''base''' || Sets up all initial directories and installs base klibc utilities and libraries. Always add this hook unless you know what you are doing. || <br />
|-<br />
| '''udev''' || Adds udev to your image || Udev will be used to create your root device node and detect the needed modules for your root device. As it simplifies things, using the udev hook is recommended.<br />
|-<br />
| '''modload''' || || An alternative autodetecion method which is much slower than udev. Using this hook is discouraged. Use udev instead.<br />
|-<br />
| '''autodetect''' || Shrinks your initramfs to a smaller size by autodetecting your needed modules. Be sure to verify included modules are correct and none are missing. This hook must be run before other subsystem hooks in order to take advantage of auto-detection. Any hooks placed before 'autodetect' will be installed in full. || <br />
|-<br />
| '''ide''' || Adds IDE modules to the image. Use this if your root device is on a IDE disk. Also use the '''autodetect''' hook if you want to minimize your image size || Loads IDE modules. You will need the '''udev''' or '''modload''' hook unless you specify the needed modules manually (see MODULES section below).<br />
|-<br />
| '''pata''' || Adds IDE modules to the image. Use this if your root device is on a IDE disk. Also use the '''autodetect''' hook if you want to minimize your image size || Loads IDE modules. You will need the '''udev''' or '''modload''' hook unless you specify the needed modules manually (see MODULES section below). PATA is the kernel's new IDE driver. It will change your /dev/hd? to /dev/sd?. more info: http://archlinux.org/news/272/<br />
|-<br />
| '''sata''' || Adds serial ATA modules to the image. Use this if your root device is on a SATA disk. Also use the '''autodetect''' hook if you want to minimize your image size. || Loads SATA modules. You will need the '''udev''' or '''modload''' hook unless you specify the needed modules manually (see MODULES section below).<br />
|-<br />
| '''scsi''' || Adds SCSI modules to the image. Use this if your root device is on a SCSI disk. Also use the '''autodetect''' hook if you want to minimize your image size. || Loads SCSI modules. You will need the '''udev''' or '''modload''' hook unless you specify the needed modules manually (see MODULES section below).<br />
|-<br />
| '''usb''' || Adds USB modules to the image. Use this if your root device is on a USB mass storage device. || Loads USB modules. You will need the '''udev''' or '''modload''' hook unless you specify the needed modules manually (see MODULES section below).<br />
|-<br />
| '''usbinput''' || Adds USB HID modules to the image. Use this if you have an USB keyboard and need it in early userspace (either for entering encryption passphrases or for failsafe mode) || Loads USB HID modules. You will need the '''udev''' or '''modload''' hook unless you specify the needed modules manually (see MODULES section below).<br />
|-<br />
| '''fw''' || Adds Firewire modules to the image. Use this if your root device is on a FW mass storage device. || Loads FW modules. You will need the '''udev''' or '''modload''' hook unless you specify the needed modules manually (see MODULES section below).<br />
|-<br />
| '''net''' || Adds the necessary modules for a network device. For pcmcia net devices please add pcmcia hook too. || Loads network modules. You will need the '''udev''' or '''modload''' hook unless you specify the needed modules manually (see MODULES section below). See the section [[Configuring_mkinitcpio#Customizing_the_kernel_command_line|Customizing the kernel command line]] for further configuration.<br />
|-<br />
| '''pcmcia''' || Adds the necessary modules for pcmcia devices. You need to have pcmciautils installed to use this.|| Loads pcmcia modules. You will need the '''udev''' or '''modload''' hook unless you specify the needed modules manually (see MODULES section below).<br />
|-<br />
| '''dsdt''' || Loads a custom acpi dsdt file during boot. Place your custom dsdt file for inclusion at /lib/initcpio/custom.dsdt || The custom dsdt file is automatically used by the kernel if it is present in initramfs.<br />
|-<br />
| '''filesystems''' || This includes necessary filesystem modules into your image. This hook is necessary if you want to be able to boot || This will detect the filesystem type at runtime, load the module and pass it to kinit. NOTE: it will NOT detect reiser4, it must be added to modules list.<br />
|-<br />
| '''lvm2''' || Adds the device mapper kernel module and the lvm tool to the image. You need to have the lvm2 package installed to use this. || Enables all lvm2 volume groups. This is necessary if you have your root filesystem on lvm.<br />
|-<br />
| '''raid''' || Adds the modules and mdassamble for a software raid setup. You need to have mdadm installed to use this.|| Loads the necessary modules for software raid devices, and assembles the raid devices when run. See the section [[Configuring_mkinitcpio#Customizing_the_kernel_command_line|Customizing the kernel command line]] for further configuration.<br />
|-<br />
| '''encrypt''' || Adds the dm-crypt kernel module and the cryptsetup tool to the image. You need to have the cryptsetup package installed to use this. || Detects and unlocks an encrypted root partition. See the section [[Configuring_mkinitcpio#Customizing_the_kernel_command_line|Customizing the kernel command line]] for further configuration.<br />
|-<br />
| '''resume''' || || This tries to resume from "suspend to disk" state. Works with both swsusp and [[Suspend to Disk|suspend2]]. See the section [[Configuring_mkinitcpio#Customizing_the_kernel_command_line|Customizing the kernel command line]] for further configuration.<br />
|-<br />
| '''firmware''' || Adds /lib/firmware files. || Loads firmware. You will need the '''udev''' hook to get firmware loaded. <br />
|-<br />
| '''keymap''' || Adds keymap and consolefonts from rc.conf. || Loads the specified keymap and consolefont from rc.conf during early userspace.<br />
|}<br />
<br />
==== Examples ====<br />
<br />
This configuration will work for most users with a standard setup:<br />
<br />
HOOKS="base udev autodetect ide scsi sata filesystems"<br />
<br />
If you want to use the image on more than one machine, use this configuration:<br />
<br />
HOOKS="base udev ide scsi sata filesystems"<br />
<br />
You can use encrypted volumes on top of lvm2 volume groups:<br />
<br />
HOOKS="base udev autodetect ide scsi sata lvm2 encrypt filesystems"<br />
<br />
=== Configuring the MODULES ===<br />
<br />
You can use the MODULES in the configuration file to load a module before anything else is done. For example, if you don't want to use '''udev''' or '''modload''', you can add all necessary modules manually and make booting faster:<br />
<br />
MODULES="piix ide_disk reiserfs"<br />
HOOKS="base autodetect ide filesystems"<br />
<br />
NOTE: if you're using '''reiser4''', you MUST add it to the modules list.<br />
<br />
=== Configuring the BINARIES and FILES ===<br />
<br />
These options allow you to add files to the image. The only difference is that BINARIES checks binaries and libraries for dependencies, while FILES simply adds the file.<br />
<br />
Examples:<br />
<br />
FILES="/etc/modprobe.conf"<br />
<br />
BINARIES="/usr/bin/somefile"<br />
<br />
== Creating the image ==<br />
<br />
=== Regenerating predefined images / using presets ===<br />
<br />
If you want to regenerate your initramfs images for the Archlinux stock kernels, use the command<br />
# mkinitcpio -p kernel26<br />
This example is for the ''kernel26'' package, it works the same for the other kernel packages.<br />
<br />
If you want to change the settings for your images, edit the ''/etc/mkinitcpio.d/kernel26.preset'' file (again, just change the filename for the other kernel packages). '''These ''.preset'' files will be used on a kernel update, so don't break them.'''<br />
<br />
=== Manually ===<br />
<br />
Create the image with the following command:<br />
<br />
mkinitcpio -g /boot/kernel26.img<br />
<br />
This will generate the image for the currently running kernel and save it at '''/boot/kernel26.img''', which is the location for '''kernel26''' package. Users of '''kernel26beyond''' should use the following instead:<br />
<br />
mkinitcpio -g /boot/kernel26beyond.img<br />
<br />
If you are creating an image for a kernel other than the one you are currently running, add the kernel version to the command line:<br />
<br />
mkinitcpio -g /boot/kernel26.img -k 2.6.16-ARCH<br />
<br />
==== Regenerating the Fallback Image ====<br />
<br />
''NOTE:'' The following may confuse some people. It is only intended to help create fallback images for people already running the current kernel. To create images for any kernel that is not currently running, you MUST use the -k parameter.<br />
<br />
A fallback image should have been created when you installed '''kernel26''' or '''kernel26beyond''' but in case you want to re-generate it<br />
<br />
mkinitcpio -c /boot/mkinitcpio-kernel26.conf -g /boot/kernel26.img<br />
for beyond<br />
mkinitcpio -c /boot/mkinitcpio-kernel26beyond.conf -g /boot/kernel26beyond.img<br />
<br />
See '''mkinitcpio -h''' for more options.<br />
<br />
Don't forget to add a new bootloader entry. Just make a copy of your old one and change the initrd to your new image. As long as mkinitcpio is beta, please always leave the old one intact, so that you can boot it if something goes wrong. You can use mkinitcpio with any kernel, so kernel26 and kernel26-beyond users are encouraged to try it.<br />
<br />
== Customizing the kernel command line ==<br />
<br />
Just like without initramfs, some options need to be passed on the kernel command line to configure your kernel, like the root device. Some of the mkinitcpio hooks have special options. These are discussed below.<br />
<br />
If you don't know what a kernel command line is, please refer to the [[GRUB]] or [[Lilo]] documentation.<br />
<br />
=== Entering failsafe mode ===<br />
<br />
If you add the option<br />
break=y<br />
to the kernel command line, init stops after the setup is completed and you are left with a ''dash'' shell. This can be used to verify that everything went fine. If you logout, normal boot continues.<br />
<br />
=== Disabling hooks ===<br />
<br />
You can disable a hook at runtime by adding the ''disablehooks'' option to the kernel command line like this:<br />
<br />
disablehooks=hook1,hook2,hook2<br />
<br />
for example<br />
<br />
disablehooks=resume<br />
<br />
=== Blacklisting modules ===<br />
<br />
You can blacklist modules by adding the ''disablemodules'' option to the kernel command line like this:<br />
<br />
disablemodules=mod1,mod2,mod3<br />
<br />
for example<br />
<br />
disablemodules=ata_piix<br />
<br />
=== Using raid ===<br />
First add the raid hook to the HOOKS list in /etc/mkinitcpio.conf<br />
<br />
'''Kernel Parameters: '''<br />
Specify your md arrays with: md= parameter: (see below).<br />
Note that only adding the raid array you're booting from is enough.<br />
Example: md=0,/dev/sda3,/dev/sda4 md=1,/dev/hda1,/dev/hdb1<br />
<br />
Then add the following to the kernel line in '''grub/menu.lst''':<br />
Example: md=0,/dev/sda3,/dev/sda4 md=1,/dev/hda1,/dev/hdb1<br />
So that it looks like:<br />
kernel /vmlinuz26beyond root=/dev/md0 ro md=0,/dev/sda1,/dev/sdb1<br />
This will setup 2 md arrays with persistent superblocks<br />
<br />
'''Setup:'''<br />
- for old raid arrays without persistent superblocks:<br />
md=<md device no.>,<raid level>,<chunk size factor>,<fault level>,dev0,dev1<br />
- for raid arrays with persistent superblocks:<br />
md=<md device no.>,dev0,dev1,...,devn<br />
- for, to assemble a partitionable array:<br />
md=d<md device no.>,dev0,dev1,...,devn<br />
<br />
'''Parameters:'''<br />
- <md device no.> = the number of the md device: <br />
0 means md0, 1 means md1, ...<br />
- <raid level> = -1 linear mode, 0 striped mode<br />
other modes are only supported with persistent super block<br />
- <chunk size factor> = (raid-0 and raid-1 only):<br />
Set the chunk size as 4k << n.<br />
- <fault level> = totally ignored<br />
- <dev0-devn>: e.g. /dev/hda1,/dev/hdc1,/dev/sda1,/dev/sdb1<br />
<br />
=== Using net ===<br />
<br />
'''Kernel Parameters:''' <br />
<br />
'''ip=''' <br />
<br />
An interface spec can be either short form, which is just the name of<br />
an interface (eth0 or whatever), or long form. The long form consists<br />
of up to seven elements, separated by colons:<br />
<br />
ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf><br />
nfsaddrs= is an alias to ip= and can be used too.<br />
<br />
''Parameter explanation:''<br />
<client-ip> IP address of the client. If empty, the address will<br />
either be determined by RARP/BOOTP/DHCP. What protocol<br />
is used de- pends on the <autoconf> parameter. If this<br />
parameter is not empty, autoconf will be used.<br />
<br />
<server-ip> IP address of the NFS server. If RARP is used to<br />
determine the client address and this parameter is NOT<br />
empty only replies from the specified server are<br />
accepted. To use different RARP and NFS server,<br />
specify your RARP server here (or leave it blank), and<br />
specify your NFS server in the `nfsroot' parameter<br />
(see above). If this entry is blank the address of the<br />
server is used which answered the RARP/BOOTP/DHCP<br />
request.<br />
<br />
<gw-ip> IP address of a gateway if the server is on a different<br />
subnet. If this entry is empty no gateway is used and the<br />
server is assumed to be on the local network, unless a<br />
value has been received by BOOTP/DHCP.<br />
<br />
<netmask> Netmask for local network interface. If this is empty,<br />
the netmask is derived from the client IP address assuming<br />
classful addressing, unless overridden in BOOTP/DHCP reply.<br />
<br />
<hostname> Name of the client. If empty, the client IP address is<br />
used in ASCII notation, or the value received by<br />
BOOTP/DHCP.<br />
<br />
<device> Name of network device to use. If this is empty, all<br />
devices are used for RARP/BOOTP/DHCP requests, and the<br />
first one we receive a reply on is configured. If you<br />
have only one device, you can safely leave this blank.<br />
<br />
<autoconf> Method to use for autoconfiguration. If this is either<br />
'rarp', 'bootp', or 'dhcp' the specified protocol is<br />
used. If the value is 'both', 'all' or empty, all<br />
protocols are used. 'off', 'static' or 'none' means<br />
no autoconfiguration.<br />
''Examples:''<br />
ip=127.0.0.1:::::lo:none --> Enable the loopback interface.<br />
ip=192.168.1.1:::::eth2:none --> Enable static eth2 interface.<br />
ip=:::::eth0:dhcp --> Enable dhcp protcol for eth0 configuration.<br />
'''nfsroot='''<br />
<br />
If the 'nfsroot' parameter is NOT given on the command line, the default<br />
"/tftpboot/%s" will be used.<br />
<br />
nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]<br />
<br />
''Parameter explanation:''<br />
<br />
<server-ip> Specifies the IP address of the NFS server. If this field<br />
is not given, the default address as determined by the<br />
`ip' variable (see below) is used. One use of this<br />
parameter is for example to allow using different servers<br />
for RARP and NFS. Usually you can leave this blank.<br />
<br />
<root-dir> Name of the directory on the server to mount as root. If<br />
there is a "%s" token in the string, the token will be<br />
replaced by the ASCII-representation of the client's IP<br />
address.<br />
<br />
<nfs-options> Standard NFS options. All options are separated by commas.<br />
If the options field is not given, the following defaults<br />
will be used:<br />
port = as given by server portmap daemon<br />
rsize = 1024<br />
wsize = 1024<br />
timeo = 7<br />
retrans = 3<br />
acregmin = 3<br />
acregmax = 60<br />
acdirmin = 30<br />
acdirmax = 60<br />
flags = hard, nointr, noposix, cto, ac<br />
<br />
'''root=/dev/nfs'''<br />
If you don't use nfsroot= parameter you need to set root=/dev/nfs <br />
to boot from a nfs root by autoconfiguration.<br />
<br />
=== Using lvm ===<br />
<br />
If your root device is on lvm, you have to add the '''lvm2''' hook. You have to pass your root device on the kernel command line in the format<br />
<br />
root=/dev/mapper/<volume group name>-<logical volume name><br />
<br />
for example<br />
<br />
root=/dev/mapper/myvg-root<br />
<br />
=== Using encrypted root ===<br />
<br />
If your root volume is encrypted, you need to add the '''encrypt''' hook. Then specify your root device on the kernel command line, just as if it was unencrypted.<br />
<br />
For an encrypted partition on an sata or scsi disk:<br />
root=/dev/sda5<br />
<br />
For an encrypted lvm volume:<br />
root=/dev/mapper/myvg-root<br />
<br />
The root device will be automatically changed to ''/dev/mapper/root''.<br />
<br />
==== Using LUKS volumes ====<br />
<br />
If you use LUKS for hard disk encryption, the init script will detect the encryption automatically if the '''encrypt''' hook is enabled. It will then ask for a passphrase and try to unlock the volume.<br />
<br />
If this fails try to add you filesystem-module to the module list in /etc/mkinitcpio.conf if it's not compiled into your kernel.<br />
<br />
==== Using legacy cryptsetup volumes ====<br />
<br />
If you are using a legacy cryptsetup volume, you have to specify all cryptsetup options necessary to unlock it on the kernel command line. The option format is<br />
<br />
crypto=hash:cipher:keysize:offset:skip<br />
<br />
representing cryptsetup's --hash, --cipher, --keysize, --offset and --skip options. If you omit an option, cryptsetup's default value is used, so you can just specify<br />
<br />
crypto=::::<br />
<br />
if you created your volume with the default settings.<br />
<br />
'''NOTE:''' For technical reasons, it is not possible to verify the correctness of your passphrase with legacy cryptsetup volumes. If you typed it wrong, mounting will simply fail. It is recommended that you use LUKS instead.<br />
<br />
==== Using loop-aes volumes ====<br />
<br />
'''mkinitcpio''' does not support loop-aes yet.<br />
<br />
== Using Suspend to Disk ==<br />
<br />
If you want to use suspend to disk, you have to add the '''resume''' hook.<br />
<br />
==== swsusp ====<br />
<br />
''TODO''<br />
<br />
==== µswsusp ====<br />
<br />
µswsusp is not supported yet.<br />
<br />
==== suspend2 ====<br />
<br />
If you are using [[Suspend to Disk|suspend2]], you have to specify the ''resume2'' kernel commandline option. If you are using the swap writer, use<br />
<br />
resume2=swap:/dev/hda3<br />
<br />
where ''/dev/hda3'' is your swap partition. If you want to use the filewriter, use<br />
<br />
resume2=file:/dev/hda2:0x123456<br />
<br />
where ''/dev/hda2'' is the partition where the suspend2 image is stored (most likely the root partition) and ''0x123456'' is the file offset. You can get the exact value with the commands<br />
<br />
echo "/suspend2_file" > /proc/suspend2/filewriter_target<br />
cat /proc/suspend2/resume2<br />
<br />
where /suspend2_file is the path to your suspend image file. This - of course - works for lvm volumes as well. You can also use a suspend file on an encrypted root partition with the option<br />
<br />
resume2=file:/dev/mapper/root:0x123456<br />
<br />
where ''0x123456'' is the offset again. Resuming from an encrypted swap partition is not supported.<br />
<br />
=== Example bootloader configuration files ===<br />
<br />
If you use the beyond kernel, the filenames are ''kernel26beyond.img'' and ''kernel26beyond-fallback.img'' instead of ''kernel26.img'' and ''kernel26-fallback.img'', respectively. Also, change "vmlinuz26" to "vmlinuz26beyond". <br />
<br />
==== GRUB ====<br />
<br />
For those who have /boot on a separate partition:<br />
<br />
# (0) Arch Linux<br />
title Arch Linux<br />
root (hd0,3)<br />
kernel /vmlinuz26 root=/dev/hda4 vga=791 ro<br />
initrd /kernel26.img<br />
<br />
title Arch Linux Fallback<br />
root (hd0,3)<br />
kernel /vmlinuz26 root=/dev/hda4 vga=791 ro<br />
initrd /kernel26-fallback.img<br />
<br />
For those who do _not_ have /boot on a separate partition:<br />
<br />
# (0) Arch Linux<br />
title Arch Linux<br />
root (hd0,3)<br />
kernel /boot/vmlinuz26 root=/dev/hda4 vga=791 ro<br />
initrd /boot/kernel26.img<br />
<br />
title Arch Linux Fallback<br />
root (hd0,3)<br />
kernel /boot/vmlinuz26 root=/dev/hda4 vga=791 ro<br />
initrd /boot/kernel26-fallback.img<br />
<br />
==== LILO ====<br />
<br />
If you use LILO, it is recommended that you use ''append="root=/dev/XYZ"'' instead of ''root=/dev/XYZ''. If you already have a global ''append'' option, then use ''addappend''.<br />
<br />
boot=/dev/hdX <br />
default = ArchLinux<br />
timeout=50 <br />
vga=791<br />
lba32<br />
prompt<br />
<br />
# for the hardware-autodetecting image<br />
image=/boot/vmlinuz26<br />
label=ArchLinux<br />
append="root=/dev/hdXY"<br />
initrd=/boot/kernel26.img<br />
read-only<br />
<br />
# fallback image if the other doesnt work (Will most prob. never be used)<br />
image=/boot/vmlinuz26<br />
label=ArchLinuxFallBack<br />
append="root=/dev/hdXY"<br />
initrd=/boot/kernel26-fallback.img<br />
read-only<br />
<br />
== Troubleshooting ==<br />
=== piix ide controllers and beyond kernel ===<br />
==== Problem ====<br />
If you are having problems getting mkinitcpio to detect your hard drive giving errors akin to "Can't find device dev(0,0)" when switching to kinit, then this could be because of a conflict that the ata_piix and piix drivers have. The beyond kernel has some libata patches that cause ata_piix to *conflict* with piix.<br />
<br />
==== Solution ====<br />
Edit /etc/mkinitcpio.conf to only have ide or sata or scsi depending on what your system actually needs to boot.</div>Jfhttps://wiki.archlinux.org/index.php?title=Talk:Browser_plugins&diff=18250Talk:Browser plugins2006-11-24T00:49:24Z<p>Jf: </p>
<hr />
<div>This article's title is TOO SPECIFIC. It should be changed depending on article's scope. --[[User:Foxbunny|foxbunny]] 10:17, 17 November 2006 (PST)<br />
<br />
I dont think that being "too specific" is the problem (see, for example, the [[Installing_VMware_Server_on_Arch64]] article that i authored. I think that's definitely worthy of a single article by itself). It's more of a case of the subject being too "trivial", or too "easy" to be worthy of an article by itself. And so in that sense you're right after all.<br />
--[[User:jf|jf]] 00:42, 24 November 2006 (UTC)</div>Jfhttps://wiki.archlinux.org/index.php?title=Keyboard_input&diff=16307Keyboard input2006-10-31T13:45:38Z<p>Jf: /* Alternative way (build it yourself) */ add 'keytouch.install' as well</p>
<hr />
<div>[[Category:Hardware]]<br />
====Q: How can I get my Extra Keyboard Keys to work?====<br />
<b>A:</b>There are many ways to get Extra Keys to work. Keytouch has been the easiest that I have seen.<br />
<br />
==Install==<br />
* Install keytouch package from [[Enabling the community repositories|the community repo]]:<br />
# pacman -S keytouch<br />
===Alternative way (build it yourself)===<br />
* Download the keytouch PKGBUILD from [http://cvs.archlinux.org/cgi-bin/viewcvs.cgi/system/keytouch/?cvsroot=AUR&only_with_tag=CURRENT here.] Don't forget the files 'keytouch.install', 'keytouch.daemon', and 'keytouch.desktop' as well - they are used by the PKGBUILD in the 'source' list, and may be accessible from the same url given. Put these 3 files and the PKGBUILD in the same directory.<br />
<br />
* Run makepkg<br />
<pre>makepkg</pre><br />
<br />
* Install Package Using Pacman<br />
<pre>pacman -A keytouch-$VERSION.pkg.tar.gz</pre><br />
<br />
==Make Keyboard File==<br />
''Note: You need a keyboard file for your keyboard model. The package build includes some of them. You can also check http://keytouch.sourceforge.net/dl-keyboards.html''<br />
<br />
If your model is not included in the keytouch package you will need to create one for yourself:<br />
* Install keytouch-editor:<br />
# pacman -S keytouch-editor<br />
* Make sure you have evdev loaded (you should not need to do this if you using the stock kernel)<br />
# modprobe evdev<br />
* We are going to need to make a keyboard file which is very simple. You need to find out which input device is your keyboard first:<br />
# ls /dev/input/<br />
Every event device (like a keyboard or a mouse) is related to one of these files.<br />
To find out which file belongs to your keyboard, run:<br />
# keytouch-editor /dev/input/eventX mykeyboardconfig<br />
Replace the X by a number. KeyTouch editor will first show some information<br />
about the device, including its name (”Input device name”) that can tell you<br />
if you have chosen the correct event device. KeyTouch editor asks you to press<br />
one of the extra function keys. If the program continues after pressing the<br />
extra function key, you have chosen the right event device. If not terminate the<br />
program by pressing Ctrl+C and try another event device.<br />
Note that when your keyboard is connected via USB there are two event<br />
devices: /dev/input/eventA (where A is replaced by a number) for all ”normal”<br />
keys and /dev/input/eventB (where B = A+1) for the extra function keys.<br />
<br />
* After you have found the correct device, follow the steps. keytouch-editor asks your name and the name of the manufacturer and model of your keyboard.<br />
<br />
* Now it is time to tell keytouch-editor about your extra function keys. You will see the following message:<br />
Press an extra function key or press enter to finish...<br />
If your keyboard is connected via USB or you started keyTouch editor with the<br />
”–acpi” option, you will not see this message, but instead:<br />
Press return to a new key or enter F followed by return to finish...<br />
* First you will have to press the extra function key so that the program knows which key you mean. It is important that you do not press any other key than the extra function key. After pressing the key you will be asked to enter the keys name, keycode and default action.<br />
* Key name<br />
Choose an appropriate name for the key. If there is for example a text label on<br />
the key, use the label as the key’s name.<br />
* Keycode<br />
Use one of the keycodes listed below. It actually doesn’t matter which keycode<br />
you choose. However it is recommended that you choose a keycode that matches<br />
the best the function of the key. A keycode may only be used once in a keyboard<br />
file.<br />
<pre>AGAIN EJECTCLOSECD MAIL REFRESH<br />
ALTERASE EMAIL MEDIA REWIND<br />
BACK EXIT MENU RIGHTMETA<br />
BASSBOOST FASTFORWARD MOVE SCROLLDOWN<br />
BOOKMARKS FILE MSDOS SCROLLUP<br />
BRIGHTNESSDOWN FINANCE MUTE SEARCH<br />
BRIGHTNESSUP FIND NEXTSONG SENDFILE<br />
CALC FORWARD OPEN SETUP<br />
CAMERA FRONT PASTE SHOP<br />
CANCEL HANGUEL PAUSE SLEEP<br />
CHAT HANJA PAUSECD SOUND<br />
CLOSE HELP PHONE SPORT<br />
CLOSECD HOMEPAGE PLAY STOP<br />
COFFEE HP PLAYCD STOPCD<br />
COMPOSE ISO PLAYPAUSE SUSPEND<br />
COMPUTER KBDILLUMDOWN POWER SWITCHVIDEOMODE<br />
CONFIG KBDILLUMTOGGLE PREVIOUSSONG UNDO<br />
CONNECT KBDILLUMUP PRINT VOLUMEDOWN<br />
COPY KPCOMMA PROG1 VOLUMEUP<br />
CUT KPEQUAL PROG2 WAKEUP<br />
CYCLEWINDOWS KPLEFTPAREN PROG3 WWW<br />
DELETEFILE KPPLUSMINUS PROG4 XFER<br />
DIRECTION KPRIGHTPAREN PROPS YEN<br />
EDIT LEFTMETA QUESTION<br />
EJECTCD MACRO RECORD</pre><br />
<br />
You can find the correct keycodes from here: http://keytouch.sourceforge.net/keytouch_editor/node7.html<br />
<br />
* Default action<br />
It is important to realize that the default action for a key, is not the action you want to use for this key, but one that corresponds to the function of the key.<br />
The default action can be a program or a plugin. If it is a program, just fill in the name of the program. If it is a plugin type ”plugin” (without the quotes) instead. Then fill in the name of the plugin. To get a list of all available plugins, run keyTouch and go to the ”Preferences” part. Select the plugin and click the ”Information...” button to get a list of the functions of the selected plugin. After entering the plugins name in keytouch-editor, fill in the function<br />
name. Note that the name and function you fill in are case sensitive.<br />
<br />
* When you entered the information, the program asks again to press an extra function key. If there are no more extra function keys, just press enter to write the output file and terminate the program.<br />
<br />
* After you made the file and tested it, it would be a good idea to send it to the author of keytouch so he can include it in the next release.<br />
marvinr users.sourceforge.net<br />
(You know there's a missing @ because of spam bots ;))<br />
<br />
==Configure keytouch==<br />
* We now need to run keytouch<br />
<pre>keytouch</pre><br />
<br />
* What to do...<br />
# When you see the list of keyboards select import and find where you put the keyboard config file you just made.<br />
# Now you should see your keyboard module and manufactor. Select it and click ok.<br />
# Now you get to the keytouch configuration theme. I think this is pretty self explanatory.<br />
<br />
==Starting the keytouch deamon==<br />
* You should start the keytouch deamon at boottime (add <code>keytouch</code> to the deamons array in <code>/etc/rc.conf</code>)<br />
* You have to load keytouchd together with X. There is a script /etc/X11/Xsession which runs all daemons located in /etc/X11/Xsession.d/ including the keytouchd.<br />
** You can add /etc/X11/Xsession into your ~/.xinitrc if you log in from console<br />
** If you, however, use KDM as your login manager .xinitrc will not be parsed. There is a file /opt/kde/share/config/kdm/Xstartup which is parsed when KDM starts so you can add there instead and it will work for all users.<br />
# vi /opt/kde/share/config/kdm/Xstartup<br />
and add at the end of the file: <br />
/etc/X11/Xsession<br />
** You can add <code>keytouchd</code> to your session list of your DE. (Gnome, Kde, Xfce-svn)<br />
<br />
==Additional docs==<br />
For more information look at the programs's homepage: http://keytouch.sourceforge.net/doc.html</div>Jfhttps://wiki.archlinux.org/index.php?title=Keyboard_input&diff=16306Keyboard input2006-10-31T13:38:28Z<p>Jf: /* Alternative way (build it yourself) */ correction - "keytouch" -> "keytouch.daemon"</p>
<hr />
<div>[[Category:Hardware]]<br />
====Q: How can I get my Extra Keyboard Keys to work?====<br />
<b>A:</b>There are many ways to get Extra Keys to work. Keytouch has been the easiest that I have seen.<br />
<br />
==Install==<br />
* Install keytouch package from [[Enabling the community repositories|the community repo]]:<br />
# pacman -S keytouch<br />
===Alternative way (build it yourself)===<br />
* Download the keytouch PKGBUILD from [http://cvs.archlinux.org/cgi-bin/viewcvs.cgi/system/keytouch/?cvsroot=AUR&only_with_tag=CURRENT here.] Don't forget the files "keytouch.daemon" and "keytouch.desktop", they are under the sources list on aur. Put these 2 files and the PKGBUILD in the same directory.<br />
<br />
* Run makepkg<br />
<pre>makepkg</pre><br />
<br />
* Install Package Using Pacman<br />
<pre>pacman -A keytouch-$VERSION.pkg.tar.gz</pre><br />
<br />
==Make Keyboard File==<br />
''Note: You need a keyboard file for your keyboard model. The package build includes some of them. You can also check http://keytouch.sourceforge.net/dl-keyboards.html''<br />
<br />
If your model is not included in the keytouch package you will need to create one for yourself:<br />
* Install keytouch-editor:<br />
# pacman -S keytouch-editor<br />
* Make sure you have evdev loaded (you should not need to do this if you using the stock kernel)<br />
# modprobe evdev<br />
* We are going to need to make a keyboard file which is very simple. You need to find out which input device is your keyboard first:<br />
# ls /dev/input/<br />
Every event device (like a keyboard or a mouse) is related to one of these files.<br />
To find out which file belongs to your keyboard, run:<br />
# keytouch-editor /dev/input/eventX mykeyboardconfig<br />
Replace the X by a number. KeyTouch editor will first show some information<br />
about the device, including its name (”Input device name”) that can tell you<br />
if you have chosen the correct event device. KeyTouch editor asks you to press<br />
one of the extra function keys. If the program continues after pressing the<br />
extra function key, you have chosen the right event device. If not terminate the<br />
program by pressing Ctrl+C and try another event device.<br />
Note that when your keyboard is connected via USB there are two event<br />
devices: /dev/input/eventA (where A is replaced by a number) for all ”normal”<br />
keys and /dev/input/eventB (where B = A+1) for the extra function keys.<br />
<br />
* After you have found the correct device, follow the steps. keytouch-editor asks your name and the name of the manufacturer and model of your keyboard.<br />
<br />
* Now it is time to tell keytouch-editor about your extra function keys. You will see the following message:<br />
Press an extra function key or press enter to finish...<br />
If your keyboard is connected via USB or you started keyTouch editor with the<br />
”–acpi” option, you will not see this message, but instead:<br />
Press return to a new key or enter F followed by return to finish...<br />
* First you will have to press the extra function key so that the program knows which key you mean. It is important that you do not press any other key than the extra function key. After pressing the key you will be asked to enter the keys name, keycode and default action.<br />
* Key name<br />
Choose an appropriate name for the key. If there is for example a text label on<br />
the key, use the label as the key’s name.<br />
* Keycode<br />
Use one of the keycodes listed below. It actually doesn’t matter which keycode<br />
you choose. However it is recommended that you choose a keycode that matches<br />
the best the function of the key. A keycode may only be used once in a keyboard<br />
file.<br />
<pre>AGAIN EJECTCLOSECD MAIL REFRESH<br />
ALTERASE EMAIL MEDIA REWIND<br />
BACK EXIT MENU RIGHTMETA<br />
BASSBOOST FASTFORWARD MOVE SCROLLDOWN<br />
BOOKMARKS FILE MSDOS SCROLLUP<br />
BRIGHTNESSDOWN FINANCE MUTE SEARCH<br />
BRIGHTNESSUP FIND NEXTSONG SENDFILE<br />
CALC FORWARD OPEN SETUP<br />
CAMERA FRONT PASTE SHOP<br />
CANCEL HANGUEL PAUSE SLEEP<br />
CHAT HANJA PAUSECD SOUND<br />
CLOSE HELP PHONE SPORT<br />
CLOSECD HOMEPAGE PLAY STOP<br />
COFFEE HP PLAYCD STOPCD<br />
COMPOSE ISO PLAYPAUSE SUSPEND<br />
COMPUTER KBDILLUMDOWN POWER SWITCHVIDEOMODE<br />
CONFIG KBDILLUMTOGGLE PREVIOUSSONG UNDO<br />
CONNECT KBDILLUMUP PRINT VOLUMEDOWN<br />
COPY KPCOMMA PROG1 VOLUMEUP<br />
CUT KPEQUAL PROG2 WAKEUP<br />
CYCLEWINDOWS KPLEFTPAREN PROG3 WWW<br />
DELETEFILE KPPLUSMINUS PROG4 XFER<br />
DIRECTION KPRIGHTPAREN PROPS YEN<br />
EDIT LEFTMETA QUESTION<br />
EJECTCD MACRO RECORD</pre><br />
<br />
You can find the correct keycodes from here: http://keytouch.sourceforge.net/keytouch_editor/node7.html<br />
<br />
* Default action<br />
It is important to realize that the default action for a key, is not the action you want to use for this key, but one that corresponds to the function of the key.<br />
The default action can be a program or a plugin. If it is a program, just fill in the name of the program. If it is a plugin type ”plugin” (without the quotes) instead. Then fill in the name of the plugin. To get a list of all available plugins, run keyTouch and go to the ”Preferences” part. Select the plugin and click the ”Information...” button to get a list of the functions of the selected plugin. After entering the plugins name in keytouch-editor, fill in the function<br />
name. Note that the name and function you fill in are case sensitive.<br />
<br />
* When you entered the information, the program asks again to press an extra function key. If there are no more extra function keys, just press enter to write the output file and terminate the program.<br />
<br />
* After you made the file and tested it, it would be a good idea to send it to the author of keytouch so he can include it in the next release.<br />
marvinr users.sourceforge.net<br />
(You know there's a missing @ because of spam bots ;))<br />
<br />
==Configure keytouch==<br />
* We now need to run keytouch<br />
<pre>keytouch</pre><br />
<br />
* What to do...<br />
# When you see the list of keyboards select import and find where you put the keyboard config file you just made.<br />
# Now you should see your keyboard module and manufactor. Select it and click ok.<br />
# Now you get to the keytouch configuration theme. I think this is pretty self explanatory.<br />
<br />
==Starting the keytouch deamon==<br />
* You should start the keytouch deamon at boottime (add <code>keytouch</code> to the deamons array in <code>/etc/rc.conf</code>)<br />
* You have to load keytouchd together with X. There is a script /etc/X11/Xsession which runs all daemons located in /etc/X11/Xsession.d/ including the keytouchd.<br />
** You can add /etc/X11/Xsession into your ~/.xinitrc if you log in from console<br />
** If you, however, use KDM as your login manager .xinitrc will not be parsed. There is a file /opt/kde/share/config/kdm/Xstartup which is parsed when KDM starts so you can add there instead and it will work for all users.<br />
# vi /opt/kde/share/config/kdm/Xstartup<br />
and add at the end of the file: <br />
/etc/X11/Xsession<br />
** You can add <code>keytouchd</code> to your session list of your DE. (Gnome, Kde, Xfce-svn)<br />
<br />
==Additional docs==<br />
For more information look at the programs's homepage: http://keytouch.sourceforge.net/doc.html</div>Jfhttps://wiki.archlinux.org/index.php?title=Keyboard_input&diff=16297Keyboard input2006-10-31T12:00:30Z<p>Jf: /* Alternative way (build it yourself) */ fixed the url. Also changed it to point to the CVS instead, since the link seems more "immutable", and is more logical.</p>
<hr />
<div>[[Category:Hardware]]<br />
====Q: How can I get my Extra Keyboard Keys to work?====<br />
<b>A:</b>There are many ways to get Extra Keys to work. Keytouch has been the easiest that I have seen.<br />
<br />
==Install==<br />
* Install keytouch package from [[Enabling the community repositories|the community repo]]:<br />
# pacman -S keytouch<br />
===Alternative way (build it yourself)===<br />
* Download the keytouch PKGBUILD from [http://cvs.archlinux.org/cgi-bin/viewcvs.cgi/system/keytouch/?cvsroot=AUR&only_with_tag=CURRENT here.] Don't forget the files "keytouch" and "keytouch.desktop", they are under the sources list on aur. Put these 2 files and the PKGBUILD in the same directory.<br />
<br />
* Run makepkg<br />
<pre>makepkg</pre><br />
<br />
* Install Package Using Pacman<br />
<pre>pacman -A keytouch-$VERSION.pkg.tar.gz</pre><br />
<br />
==Make Keyboard File==<br />
''Note: You need a keyboard file for your keyboard model. The package build includes some of them. You can also check http://keytouch.sourceforge.net/dl-keyboards.html''<br />
<br />
If your model is not included in the keytouch package you will need to create one for yourself:<br />
* Install keytouch-editor:<br />
# pacman -S keytouch-editor<br />
* Make sure you have evdev loaded (you should not need to do this if you using the stock kernel)<br />
# modprobe evdev<br />
* We are going to need to make a keyboard file which is very simple. You need to find out which input device is your keyboard first:<br />
# ls /dev/input/<br />
Every event device (like a keyboard or a mouse) is related to one of these files.<br />
To find out which file belongs to your keyboard, run:<br />
# keytouch-editor /dev/input/eventX mykeyboardconfig<br />
Replace the X by a number. KeyTouch editor will first show some information<br />
about the device, including its name (”Input device name”) that can tell you<br />
if you have chosen the correct event device. KeyTouch editor asks you to press<br />
one of the extra function keys. If the program continues after pressing the<br />
extra function key, you have chosen the right event device. If not terminate the<br />
program by pressing Ctrl+C and try another event device.<br />
Note that when your keyboard is connected via USB there are two event<br />
devices: /dev/input/eventA (where A is replaced by a number) for all ”normal”<br />
keys and /dev/input/eventB (where B = A+1) for the extra function keys.<br />
<br />
* After you have found the correct device, follow the steps. keytouch-editor asks your name and the name of the manufacturer and model of your keyboard.<br />
<br />
* Now it is time to tell keytouch-editor about your extra function keys. You will see the following message:<br />
Press an extra function key or press enter to finish...<br />
If your keyboard is connected via USB or you started keyTouch editor with the<br />
”–acpi” option, you will not see this message, but instead:<br />
Press return to a new key or enter F followed by return to finish...<br />
* First you will have to press the extra function key so that the program knows which key you mean. It is important that you do not press any other key than the extra function key. After pressing the key you will be asked to enter the keys name, keycode and default action.<br />
* Key name<br />
Choose an appropriate name for the key. If there is for example a text label on<br />
the key, use the label as the key’s name.<br />
* Keycode<br />
Use one of the keycodes listed below. It actually doesn’t matter which keycode<br />
you choose. However it is recommended that you choose a keycode that matches<br />
the best the function of the key. A keycode may only be used once in a keyboard<br />
file.<br />
<pre>AGAIN EJECTCLOSECD MAIL REFRESH<br />
ALTERASE EMAIL MEDIA REWIND<br />
BACK EXIT MENU RIGHTMETA<br />
BASSBOOST FASTFORWARD MOVE SCROLLDOWN<br />
BOOKMARKS FILE MSDOS SCROLLUP<br />
BRIGHTNESSDOWN FINANCE MUTE SEARCH<br />
BRIGHTNESSUP FIND NEXTSONG SENDFILE<br />
CALC FORWARD OPEN SETUP<br />
CAMERA FRONT PASTE SHOP<br />
CANCEL HANGUEL PAUSE SLEEP<br />
CHAT HANJA PAUSECD SOUND<br />
CLOSE HELP PHONE SPORT<br />
CLOSECD HOMEPAGE PLAY STOP<br />
COFFEE HP PLAYCD STOPCD<br />
COMPOSE ISO PLAYPAUSE SUSPEND<br />
COMPUTER KBDILLUMDOWN POWER SWITCHVIDEOMODE<br />
CONFIG KBDILLUMTOGGLE PREVIOUSSONG UNDO<br />
CONNECT KBDILLUMUP PRINT VOLUMEDOWN<br />
COPY KPCOMMA PROG1 VOLUMEUP<br />
CUT KPEQUAL PROG2 WAKEUP<br />
CYCLEWINDOWS KPLEFTPAREN PROG3 WWW<br />
DELETEFILE KPPLUSMINUS PROG4 XFER<br />
DIRECTION KPRIGHTPAREN PROPS YEN<br />
EDIT LEFTMETA QUESTION<br />
EJECTCD MACRO RECORD</pre><br />
<br />
You can find the correct keycodes from here: http://keytouch.sourceforge.net/keytouch_editor/node7.html<br />
<br />
* Default action<br />
It is important to realize that the default action for a key, is not the action you want to use for this key, but one that corresponds to the function of the key.<br />
The default action can be a program or a plugin. If it is a program, just fill in the name of the program. If it is a plugin type ”plugin” (without the quotes) instead. Then fill in the name of the plugin. To get a list of all available plugins, run keyTouch and go to the ”Preferences” part. Select the plugin and click the ”Information...” button to get a list of the functions of the selected plugin. After entering the plugins name in keytouch-editor, fill in the function<br />
name. Note that the name and function you fill in are case sensitive.<br />
<br />
* When you entered the information, the program asks again to press an extra function key. If there are no more extra function keys, just press enter to write the output file and terminate the program.<br />
<br />
* After you made the file and tested it, it would be a good idea to send it to the author of keytouch so he can include it in the next release.<br />
marvinr users.sourceforge.net<br />
(You know there's a missing @ because of spam bots ;))<br />
<br />
==Configure keytouch==<br />
* We now need to run keytouch<br />
<pre>keytouch</pre><br />
<br />
* What to do...<br />
# When you see the list of keyboards select import and find where you put the keyboard config file you just made.<br />
# Now you should see your keyboard module and manufactor. Select it and click ok.<br />
# Now you get to the keytouch configuration theme. I think this is pretty self explanatory.<br />
<br />
==Starting the keytouch deamon==<br />
* You should start the keytouch deamon at boottime (add <code>keytouch</code> to the deamons array in <code>/etc/rc.conf</code>)<br />
* You have to load keytouchd together with X. There is a script /etc/X11/Xsession which runs all daemons located in /etc/X11/Xsession.d/ including the keytouchd.<br />
** You can add /etc/X11/Xsession into your ~/.xinitrc if you log in from console<br />
** If you, however, use KDM as your login manager .xinitrc will not be parsed. There is a file /opt/kde/share/config/kdm/Xstartup which is parsed when KDM starts so you can add there instead and it will work for all users.<br />
# vi /opt/kde/share/config/kdm/Xstartup<br />
and add at the end of the file: <br />
/etc/X11/Xsession<br />
** You can add <code>keytouchd</code> to your session list of your DE. (Gnome, Kde, Xfce-svn)<br />
<br />
==Additional docs==<br />
For more information look at the programs's homepage: http://keytouch.sourceforge.net/doc.html</div>Jfhttps://wiki.archlinux.org/index.php?title=Install_bundled_32-bit_system_in_64-bit_system&diff=16116Install bundled 32-bit system in 64-bit system2006-10-30T07:44:16Z<p>Jf: /* Configure the new installed system */ add 'cp /etc/localtime' to chroot</p>
<hr />
<div>[[Category:Arch64]]<br />
Arch64 Install bundled 32bit system:<br />
<br />
Note that this script don't try to change anything out of the 32bit directory. I'm no expert so there is maybe errors or some "bad things".<br />
<br />
This howto is just for those who really need to run 32 bit apps and to install it easyly. As Arch64 try to be a pure 64 bit distro, it seems the devs won't provide any compatibility libs, this system seems to me the cleaner.<br />
<br />
<br />
== Install the base 32 bit system ==<br />
We create the repository.<br />
mkdir /opt/arch32<br />
vim /etc/pacman.d/current<br />
Here you'll have to replace in the first address x86_64 by i686.<br />
'''Don't forget to revert it at the end of the howto or your system can be screwed when you install something.'''<br />
<br />
You might also want to create a separate pacman.log LogFile for your 32-bit chroot environment (in order to be able to track the "32root" pacman/package changes properly/not mess up your current 64-bit pacman.log). '''Again, don't forget to change this back too at the end of this howto unless you want to mess up your pacman logging.'''<br />
<br />
vim /etc/pacman.conf<br />
<br />
Change the 'LogFile' directive accordingly.<br />
<br />
Now proceed to sync up pacman:<br />
<br />
pacman --root /opt/arch32 -Sy<br />
<br />
Now we can install the base packages:<br />
<br />
pacman --root /opt/arch32 -S autoconf automake bash bin86 binutils bison bzip2 coreutils cpio cracklib db dcron dhcpcd dialog diffutils e2fsprogs ed file filesystem findutils flex gawk gcc gdbm gen-init-cpio gettext glibc grep groff grub gzip initscripts iputils jfsutils kbd kernel-headers klibc klibc-extras klibc-udev less libpcap libtool libusb licenses lilo logrotate lshwd m4 mailx make man man-pages mkinitcpio mkinitrd mktemp module-init-tools nano ncurses net-tools openssl pacman pam patch pciutils pcmciautils pcre perl popt procinfo procps psmisc raidtools readline reiserfsprogs rp-pppoe sed shadow slocate sysfsutils syslog-ng sysvinit tar tcp_wrappers udev usbutils util-linux vim wget which wireless_tools xfsprogs zlib<br />
<br />
Alternatively, try this shorter list of more essential packages: this list has been trimmed, and most of what you will definitely not be needing has been taken out, as well as the "filesystem-specific (eg. jfsutils) packages" (you can add them in later on if you really need them...):<br />
<br />
pacman --root /opt/arch32 -S autoconf automake bash bin86 binutils bison bzip2 coreutils cpio cracklib db dcron dialog diffutils e2fsprogs ed file filesystem findutils flex gawk gcc gdbm gettext glibc grep groff gzip initscripts iputils kbd kernel-headers klibc klibc-extras klibc-udev less libpcap libtool libusb logrotate lshwd m4 mailx make man man-pages mktemp module-init-tools nano ncurses net-tools openssl pacman pam patch pciutils pcmciautils pcre perl popt procinfo procps psmisc readline sed shadow slocate sysfsutils sysvinit tar tcp_wrappers udev usbutils util-linux vim wget which wireless_tools zlib<br />
<br />
Here is the list of packages from base that have been taken out from the list above so that you can have a look: dhcpcd, gen-init-cpio, grub, jfsutils, licenses ''('''*'''no offense to the various Open Source licenses, but we have this in our main 64-bit system already)'', lilo, mkinitcpio, mkinitrd, ppp, raidtools, rp-pppoe, reiserfsprogs, syslog-ng, xfsprogs<br />
<br />
'''You can now revert your pacman.d/current file to x86_64. Also change back your 'LogFile' in /etc/pacman.conf'''.<br />
<br />
== /etc/rc.d/arch32 rc script ==<br />
<br />
To initiate the 32bit environment at startup, create a script in /etc/rc.d/ called "arch32":<br />
<br />
#!/bin/bash<br />
<br />
. /etc/rc.conf<br />
. /etc/rc.d/functions<br />
<br />
case $1 in<br />
start)<br />
stat_busy "Starting Arch32 chroot"<br />
mount --bind /proc /opt/arch32/proc<br />
mount --bind /proc/bus/usb /opt/arch32/proc/bus/usb<br />
mount --bind /dev /opt/arch32/dev<br />
mount --bind /dev/pts /opt/arch32/dev/pts<br />
mount --bind /dev/shm /opt/arch32/dev/shm<br />
mount --bind /sys /opt/arch32/sys<br />
mount --bind /tmp /opt/arch32/tmp<br />
mount --bind /home /opt/arch32/home<br />
add_daemon arch32<br />
stat_done<br />
;;<br />
stop)<br />
stat_busy "Stopping Arch32 chroot"<br />
umount /opt/arch32/proc/bus/usb<br />
umount /opt/arch32/proc<br />
umount /opt/arch32/dev/pts<br />
umount /opt/arch32/dev/shm<br />
umount /opt/arch32/dev<br />
umount /opt/arch32/sys<br />
umount /opt/arch32/tmp<br />
umount /opt/arch32/home<br />
rm_daemon arch32<br />
stat_done<br />
;;<br />
restart)<br />
$0 stop<br />
sleep 1<br />
$0 start<br />
;;<br />
*)<br />
echo "usage: $0 {start|stop|restart}"<br />
esac<br />
exit 0<br />
<br />
Then allow execution of this script:<br />
<br />
chmod +x /etc/rc.d/arch32<br />
<br />
And add it to "/etc/rc.conf":<br />
<br />
DAEMONS=(syslog-ng network netfs crond arch32 gdm)<br />
<br />
== Configure the new installed system ==<br />
First, copy some meaningful config files over....<br />
<br />
cd /opt/arch32/etc<br />
<br />
cp /etc/passwd* .<br />
cp /etc/shadow* .<br />
cp /etc/group* .<br />
<br />
cp /etc/rc.conf .<br />
cp /etc/resolv.conf .<br />
<br />
cp -a /etc/localtime .<br />
cp /etc/locale.gen .<br />
cp /etc/profile.d/locale.sh profile.d<br />
<br />
cp /etc/vimrc .<br />
<br />
Now chroot in your new system<br />
/etc/rc.d/arch32 start<br />
xhost +<br />
chroot /opt/arch32<br />
<br />
Fix some future locale issues<br />
/usr/sbin/locale-gen<br />
pacman -Sy ttf-bitstream-vera ttf-ms-fonts<br />
Note that you can install any other font. You just need one or your apps won't display any text.<br />
<br />
Also, keep in mind that the "/etc/pacman.conf" file from the 32bit environment is the default one. So if you want to use "community" repositories, don't forget to edit it !<br />
<br />
Now you can install any apps you need (*note for firefox with the nonfree flash plugin, you will need to install libxmu as well! Apparently this dependency has not been taken care of yet; see [http://bugs.archlinux.org/task/5583 Flyspray]).<br />
<br />
pacman -S acroread opera<br />
<br />
pacman -S mozilla-firefox<br />
pacman -S libxmu flashplugin<br />
pacman -S mplayer-plugin<br />
<br />
You can also clean up the pkgs to win back some space. Some cleanups that can be done: (from your "32root" environment)<br />
rmdir /home/ftp<br />
<br />
pacman -Rd mkinitcpio<br />
<br />
Consider also clearing out your pacman cache (do a 'man pacman', and search for 'clean' for more info; '''''*Note''' that this is *not* a command that you'll only have to do just once - as packages accumulate, you'll have to keep doing this if you want to clear out the space from the pacman cache'')<br />
pacman -Scc<br />
<br />
== Execute a 32bit apps from a 64bit env ==<br />
<br />
<br />
=== Download and install dchroot ===<br />
<br />
Download "dchroot" from the AUR (http://aur.archlinux.org/packages.php) and install it on your 64bit system ('''outside the chroot'''):<br />
<br />
tar xvf dchroot_0.12.1.tar.gz<br />
cd dchroot-0.12.1<br />
./configure --prefix=/opt/dchroot<br />
make<br />
make install<br />
<br />
In my case, there has been an error at the end of the "make install". But everything works anyway ... so I haven't care about it.<br />
<br />
=== Configuration ===<br />
<br />
Now, we must edit the configuration file (/etc/dchroot.conf) and add this line:<br />
<br />
arch32 /opt/arch32<br />
<br />
<br />
=== Execute 32bit apps ===<br />
<br />
Finally, to use your 32bit apps:<br />
<br />
/opt/dchroot/bin/dchroot -d "opera -notrayicon"<br />
/opt/dchroot/bin/dchroot -d acroread<br />
<br />
It will launch Opera, without the systray icon, from your 32bit environment. The second example is for Acrobat Reader, where there is no "" since we don't need to add switches.</div>Jfhttps://wiki.archlinux.org/index.php?title=Installing_VMware_Server_on_Arch64&diff=15949Installing VMware Server on Arch642006-10-23T06:02:08Z<p>Jf: /* "Prerequisites", or Preparation */ add in a space between "vmware.com" url and the word "to"</p>
<hr />
<div>[[Category: Arch64]][[Category: Emulation]]<br />
= '''Installing VMware Server on an Arch64 System''' =<br />
<br />
This document will cover how to get VMware Server (as of initial writing of this document, Version "1.0.1 | 8/14/06 | Build 29996") up and running on your Arch64 system, using an Arch32 chroot method ''(*I assume, for the sake of this document, that your chroot will be in '/32root')''. A multi-lib approach will not be covered here (feel free to come up with your own method, and then write the wiki document).<br />
<br />
== "Prerequisites", or Preparation ==<br />
<br />
1. Get your Arch32 chroot set up (you can refer to [[Arch64_Install_bundled_32bit_system]] for some help).<br />
<br />
2. Go to [http://register.vmware.com/content/registration.html vmware.com] to register to receive your free serial number(s) (from there, go to their [http://www.vmware.com/vmwarestore/privacy.html privacy policy page], look briefly at its (length), think... "heck it"... and then go back to registration :)) ''('''*TIP''' - the serial number(s) that you request for will only be provided for you on-screen/-browser - and will not be sent to you via your provided email. So be sure to note your serial numbers before you navigate away, or close your browser tab!)''<br />
<br />
3. Now go to [http://register.vmware.com/content/eula.html this vmware.com page] to "view" their EULA, "skip-scroll" all the way to the end... and just go ahead and click "Yes", you mindless nut. Now scroll down to the "(for Linux systems)" section, and download the tar.gz version!!! (RPMs 'R Not Us) ''('''*TIP''' - if you're expecting to use VMware Server the way you've seen/used Workstation, then all you need is the main server itself - no need for the 'Management Interface', or the client package ('VMware Server Console', + APIs); the 'VMware Server Console' is already included in the Server package)''<br />
<br />
4. Wait for the VMware ''Server'' tarball to download... ''wait''.... (101M) Say a silent prayer for Bill Gates, and his Virtual PC drones while you're still there.<br />
<br />
== Preparing the 'vmmon', and 'vmnet' modules for our running 64-bit kernel ==<br />
<br />
1. Unpack the VMware Server tarball you just downloaded ''('''*'''in your /32root/ chroot directory, pls....)''. (This will unzip into a 'vmware-server-distrib' directory)<br />
<br />
tar zxvf VMware-server-1.0.1-29996.tar.gz<br />
<br />
2. Now we go to search for the 'vmmon', and 'vmnet' module sources, and unpack those.<br />
<br />
cd vmware-server-distrib/lib/modules/source<br />
<br />
tar xvf vmmon.tar<br />
tar xvf vmnet.tar<br />
<br />
3. Now we 'make'<br />
<br />
make -C vmmon-only auto-build HEADER_DIR=/usr/src/linux-`uname -r`/include CC=gcc SUPPORT_SMP=1 GREP=grep IS_GCC_3=no<br />
make -C vmnet-only auto-build HEADER_DIR=/usr/src/linux-`uname -r`/include CC=gcc SUPPORT_SMP=1 GREP=grep IS_GCC_3=no<br />
<br />
'''*Note''' that I assume here that your current '''64'''-bit kernel ''(your kernel is still 64-bit, even in the ''32''-bit chroot)'' will have SMP support ''('''*'''you should be able to see this from `uname -v`)''. If not, just simply use 'SUPPORT_SMP=0' instead of 'SUPPORT_SMP=1'.<br />
<br />
(''Other assumptions'' - ''(good to know, but which you won't have to worry about if you're running a "standard" Arch)'' - your kernel headers are installed in '/usr/src/linux-`uname -r`/include', your 'gcc' is in your path (if not, point 'CC' directly to it like as in 'CC=/usr/bin/gcc'), and you're ''not'' using gcc version 3 (see 'gcc --version')).<br />
<br />
4. Now that the modules have been compiled, we resort to some sort of "trickery" in order to get the vmware install process (actually, the 'vmware-config.pl' script) to think that the modules have been pre-built already, and not prompt us to compile them again (we can't) during the install. ''('''*'''This is necessary as we will be installing the vmware binaries in the '''32'''-bit chroot - while needing to compile them in/for the '''64'''-bit environment)''<br />
<br />
cd /32root/vmware-server-distrib/lib/modules/binary # (*or 'cd ../binary')<br />
mkdir -p `uname -r`/objects<br />
cd `uname -r`<br />
<br />
echo UtsRelease `uname -r` > properties<br />
echo SMP yes >> properties<br />
# (-> only these 2 lines are necessary - the rest are not)<br />
<br />
cp /32root/vmware-server-distrib/lib/modules/source/vmmon.o objects<br />
cp /32root/vmware-server-distrib/lib/modules/source/vmnet.o objects<br />
# (*or 'cp ../../source/*.o objects')<br />
<br />
5. Now we're all set to do the actual install of the VMware Server!!!<br />
<br />
== Installing VMware Server into our 32root ==<br />
<br />
1. 'chroot' into your chroot<br />
<br />
chroot /32root<br />
<br />
2. Some preliminaries for the script before we begin our actual install....<br />
<br />
cd /etc<br />
for i in `seq 0 6`; do ln -s rc.d rc$i.d; done<br />
<br />
ln -s /bin/lsmod /sbin/lsmod<br />
<br />
mkdir /lib/modules/`uname -r`<br />
<br />
pacman -S libxtst libxt libxrender libxi # (*note these are the ''absolute essential libraries'' (where X is concerned) which we cannot do without)<br />
pacman -S xinetd<br />
<br />
''('''*'''Take note that we only install 'xinetd' to satisfy the installation requirements(/script) - we won't be using the installed 'vmware-authd' xinetd service at all if all we're going to be doing is only running and controlling the VMs from the local machine! We'll disable this service later on.)''<br />
<br />
3. Now run the actual install<br />
<br />
cd vmware-server-distrib<br />
./vmware-install.pl<br />
<br />
'''*NOTE''' that for the ''third'' question<br />
<br />
What is the directory that contains the init scripts? [/etc]<br />
<br />
you should specify '/etc/rc.d'. There is only one other question for which you might like to specify something other than the default, but this comes much later... (see below) But for the rest of the questions, you can pretty much accept the default - unless you want to change something.<br />
<br />
In which directory do you want to keep your virtual machine files?<br />
[/var/lib/vmware/Virtual Machines]<br />
<br />
For this, you might like to specify something like '/home/Virtual Machines' (don't worry, spaces in the name are ok), so that you can get access to/manipulate your virtual machines files from both inside, and outside the chroot.<br />
<br />
Continue on with the rest of the installation until the end.<br />
<br />
4. That's it!!! We're all set to run and play with our VMs now. :))<br />
<br />
== Miscellaneous, / "Notes" ==<br />
<br />
*you might want to "clean up a bit" after the installation in order to make things "neater",/"simpler",/"easier to handle", and to make things more Arch-like. Consider, for example, deleting the useless S*vmware, and K*vmware symlinks in /etc/rc.d. And consider editting the /etc/rc.d/vmware script too, to touch '/var/run/daemons' instead of '/var/lock/subsys'.<br />
<br />
*the "containing directory" for your Virtual Machine directories ''('''*'''if you followed the recommendation, '/home/Virtual Machines')'' is (as per the installation process) set to chmod 1777. For security's sake, if you want to prevent others from taking a look at your VM directories, consider doing a 'chmod' of this containing directory to something else more secure.<br />
<br />
*as mentioned, if you're only going to be using one machine (as both "client", and "host",/"server") for running, and controlling VMware Server, then there is no need for the 'vmware-authd' xinetd service which will be installed by the installation script. You can simply disable it by either stopping xinetd outright.... or by removing the 'vmware-authd' file in /etc/xinetd.d, and then restarting xinetd. ''This is for your security as well.''<br />
<br />
*(see previous point as well) since it appears that the xinetd service will not be used, I can only conclude that (after taking a look at 'netstat') a socket will be used instead for internal communication between "client" and "host" when both are on the same machine. One might conclude then, that in order to save on the processing requirements, as well as the time for communication, one would do well to disable the SSL requirement for communication with the host (start vmware in the chroot as root, and click on Host -> Settings -> 'Connection' tab). Perhaps somebody more familiar with the workings of VMware Server might be able to comment on this???<br />
<br />
*(an observation) - it appears, that despite whatever "missing libraries" we may have from VMware Server's dependencies (see 'ldd /usr/lib/vmware/bin/vmware' within the chroot), that we will still be able to run just fine?!!! (the binary will just be set up to use the replacement libraries from /usr/lib/vmware/lib) I just wonder, though, if we will experience any slowdowns from using these replacements????<br />
<br />
*(last note): to ''uninstall'' VMware Server from your system, run '/usr/bin/vmware-uninstall.pl' within the chroot.<br />
<br />
*'''Question:''' [[Installing_VMware]] (the old guide I used to install VMware Workstation) mentions a problem of [http://wiki.archlinux.org/index.php/Installing_VMware#slow_networking_between_host_and_guest 'slow networking between host and guest'] - is this problem still relevant to VMware Server???? somebody pls comment.<br />
<br />
*'''Further improvements to this document, or to this knowledge base:''' I haven't done anything about the VMware Tools yet. Anybody want to do up this document?</div>Jfhttps://wiki.archlinux.org/index.php?title=Installing_VMware_Server_on_Arch64&diff=15921Installing VMware Server on Arch642006-10-21T13:30:16Z<p>Jf: /* Installing VMware Server into our 32root */ "refine-finalized" the list of absolute necessary X library packages which we cannot do without for the vmware installation</p>
<hr />
<div>[[Category: Arch64]][[Category: Emulation]]<br />
= '''Installing VMware Server on an Arch64 System''' =<br />
<br />
This document will cover how to get VMware Server (as of initial writing of this document, Version "1.0.1 | 8/14/06 | Build 29996") up and running on your Arch64 system, using an Arch32 chroot method ''(*I assume, for the sake of this document, that your chroot will be in '/32root')''. A multi-lib approach will not be covered here (feel free to come up with your own method, and then write the wiki document).<br />
<br />
== "Prerequisites", or Preparation ==<br />
<br />
1. Get your Arch32 chroot set up (you can refer to [[Arch64_Install_bundled_32bit_system]] for some help).<br />
<br />
2. Go to [http://register.vmware.com/content/registration.html vmware.com]to register to receive your free serial number(s) (from there, go to their [http://www.vmware.com/vmwarestore/privacy.html privacy policy page], look briefly at its (length), think... "heck it"... and then go back to registration :)) ''('''*TIP''' - the serial number(s) that you request for will only be provided for you on-screen/-browser - and will not be sent to you via your provided email. So be sure to note your serial numbers before you navigate away, or close your browser tab!)''<br />
<br />
3. Now go to [http://register.vmware.com/content/eula.html this vmware.com page] to "view" their EULA, "skip-scroll" all the way to the end... and just go ahead and click "Yes", you mindless nut. Now scroll down to the "(for Linux systems)" section, and download the tar.gz version!!! (RPMs 'R Not Us) ''('''*TIP''' - if you're expecting to use VMware Server the way you've seen/used Workstation, then all you need is the main server itself - no need for the 'Management Interface', or the client package ('VMware Server Console', + APIs); the 'VMware Server Console' is already included in the Server package)''<br />
<br />
4. Wait for the VMware ''Server'' tarball to download... ''wait''.... (101M) Say a silent prayer for Bill Gates, and his Virtual PC drones while you're still there.<br />
<br />
== Preparing the 'vmmon', and 'vmnet' modules for our running 64-bit kernel ==<br />
<br />
1. Unpack the VMware Server tarball you just downloaded ''('''*'''in your /32root/ chroot directory, pls....)''. (This will unzip into a 'vmware-server-distrib' directory)<br />
<br />
tar zxvf VMware-server-1.0.1-29996.tar.gz<br />
<br />
2. Now we go to search for the 'vmmon', and 'vmnet' module sources, and unpack those.<br />
<br />
cd vmware-server-distrib/lib/modules/source<br />
<br />
tar xvf vmmon.tar<br />
tar xvf vmnet.tar<br />
<br />
3. Now we 'make'<br />
<br />
make -C vmmon-only auto-build HEADER_DIR=/usr/src/linux-`uname -r`/include CC=gcc SUPPORT_SMP=1 GREP=grep IS_GCC_3=no<br />
make -C vmnet-only auto-build HEADER_DIR=/usr/src/linux-`uname -r`/include CC=gcc SUPPORT_SMP=1 GREP=grep IS_GCC_3=no<br />
<br />
'''*Note''' that I assume here that your current '''64'''-bit kernel ''(your kernel is still 64-bit, even in the ''32''-bit chroot)'' will have SMP support ''('''*'''you should be able to see this from `uname -v`)''. If not, just simply use 'SUPPORT_SMP=0' instead of 'SUPPORT_SMP=1'.<br />
<br />
(''Other assumptions'' - ''(good to know, but which you won't have to worry about if you're running a "standard" Arch)'' - your kernel headers are installed in '/usr/src/linux-`uname -r`/include', your 'gcc' is in your path (if not, point 'CC' directly to it like as in 'CC=/usr/bin/gcc'), and you're ''not'' using gcc version 3 (see 'gcc --version')).<br />
<br />
4. Now that the modules have been compiled, we resort to some sort of "trickery" in order to get the vmware install process (actually, the 'vmware-config.pl' script) to think that the modules have been pre-built already, and not prompt us to compile them again (we can't) during the install. ''('''*'''This is necessary as we will be installing the vmware binaries in the '''32'''-bit chroot - while needing to compile them in/for the '''64'''-bit environment)''<br />
<br />
cd /32root/vmware-server-distrib/lib/modules/binary # (*or 'cd ../binary')<br />
mkdir -p `uname -r`/objects<br />
cd `uname -r`<br />
<br />
echo UtsRelease `uname -r` > properties<br />
echo SMP yes >> properties<br />
# (-> only these 2 lines are necessary - the rest are not)<br />
<br />
cp /32root/vmware-server-distrib/lib/modules/source/vmmon.o objects<br />
cp /32root/vmware-server-distrib/lib/modules/source/vmnet.o objects<br />
# (*or 'cp ../../source/*.o objects')<br />
<br />
5. Now we're all set to do the actual install of the VMware Server!!!<br />
<br />
== Installing VMware Server into our 32root ==<br />
<br />
1. 'chroot' into your chroot<br />
<br />
chroot /32root<br />
<br />
2. Some preliminaries for the script before we begin our actual install....<br />
<br />
cd /etc<br />
for i in `seq 0 6`; do ln -s rc.d rc$i.d; done<br />
<br />
ln -s /bin/lsmod /sbin/lsmod<br />
<br />
mkdir /lib/modules/`uname -r`<br />
<br />
pacman -S libxtst libxt libxrender libxi # (*note these are the ''absolute essential libraries'' (where X is concerned) which we cannot do without)<br />
pacman -S xinetd<br />
<br />
''('''*'''Take note that we only install 'xinetd' to satisfy the installation requirements(/script) - we won't be using the installed 'vmware-authd' xinetd service at all if all we're going to be doing is only running and controlling the VMs from the local machine! We'll disable this service later on.)''<br />
<br />
3. Now run the actual install<br />
<br />
cd vmware-server-distrib<br />
./vmware-install.pl<br />
<br />
'''*NOTE''' that for the ''third'' question<br />
<br />
What is the directory that contains the init scripts? [/etc]<br />
<br />
you should specify '/etc/rc.d'. There is only one other question for which you might like to specify something other than the default, but this comes much later... (see below) But for the rest of the questions, you can pretty much accept the default - unless you want to change something.<br />
<br />
In which directory do you want to keep your virtual machine files?<br />
[/var/lib/vmware/Virtual Machines]<br />
<br />
For this, you might like to specify something like '/home/Virtual Machines' (don't worry, spaces in the name are ok), so that you can get access to/manipulate your virtual machines files from both inside, and outside the chroot.<br />
<br />
Continue on with the rest of the installation until the end.<br />
<br />
4. That's it!!! We're all set to run and play with our VMs now. :))<br />
<br />
== Miscellaneous, / "Notes" ==<br />
<br />
*you might want to "clean up a bit" after the installation in order to make things "neater",/"simpler",/"easier to handle", and to make things more Arch-like. Consider, for example, deleting the useless S*vmware, and K*vmware symlinks in /etc/rc.d. And consider editting the /etc/rc.d/vmware script too, to touch '/var/run/daemons' instead of '/var/lock/subsys'.<br />
<br />
*the "containing directory" for your Virtual Machine directories ''('''*'''if you followed the recommendation, '/home/Virtual Machines')'' is (as per the installation process) set to chmod 1777. For security's sake, if you want to prevent others from taking a look at your VM directories, consider doing a 'chmod' of this containing directory to something else more secure.<br />
<br />
*as mentioned, if you're only going to be using one machine (as both "client", and "host",/"server") for running, and controlling VMware Server, then there is no need for the 'vmware-authd' xinetd service which will be installed by the installation script. You can simply disable it by either stopping xinetd outright.... or by removing the 'vmware-authd' file in /etc/xinetd.d, and then restarting xinetd. ''This is for your security as well.''<br />
<br />
*(see previous point as well) since it appears that the xinetd service will not be used, I can only conclude that (after taking a look at 'netstat') a socket will be used instead for internal communication between "client" and "host" when both are on the same machine. One might conclude then, that in order to save on the processing requirements, as well as the time for communication, one would do well to disable the SSL requirement for communication with the host (start vmware in the chroot as root, and click on Host -> Settings -> 'Connection' tab). Perhaps somebody more familiar with the workings of VMware Server might be able to comment on this???<br />
<br />
*(an observation) - it appears, that despite whatever "missing libraries" we may have from VMware Server's dependencies (see 'ldd /usr/lib/vmware/bin/vmware' within the chroot), that we will still be able to run just fine?!!! (the binary will just be set up to use the replacement libraries from /usr/lib/vmware/lib) I just wonder, though, if we will experience any slowdowns from using these replacements????<br />
<br />
*(last note): to ''uninstall'' VMware Server from your system, run '/usr/bin/vmware-uninstall.pl' within the chroot.<br />
<br />
*'''Question:''' [[Installing_VMware]] (the old guide I used to install VMware Workstation) mentions a problem of [http://wiki.archlinux.org/index.php/Installing_VMware#slow_networking_between_host_and_guest 'slow networking between host and guest'] - is this problem still relevant to VMware Server???? somebody pls comment.<br />
<br />
*'''Further improvements to this document, or to this knowledge base:''' I haven't done anything about the VMware Tools yet. Anybody want to do up this document?</div>Jfhttps://wiki.archlinux.org/index.php?title=Installing_VMware_Server_on_Arch64&diff=15919Installing VMware Server on Arch642006-10-21T12:43:21Z<p>Jf: /* Installing VMware Server into our 32root */ apparently you dont need to answer '/etc' for the 2nd question - that is the default already!!!!</p>
<hr />
<div>[[Category: Arch64]][[Category: Emulation]]<br />
= '''Installing VMware Server on an Arch64 System''' =<br />
<br />
This document will cover how to get VMware Server (as of initial writing of this document, Version "1.0.1 | 8/14/06 | Build 29996") up and running on your Arch64 system, using an Arch32 chroot method ''(*I assume, for the sake of this document, that your chroot will be in '/32root')''. A multi-lib approach will not be covered here (feel free to come up with your own method, and then write the wiki document).<br />
<br />
== "Prerequisites", or Preparation ==<br />
<br />
1. Get your Arch32 chroot set up (you can refer to [[Arch64_Install_bundled_32bit_system]] for some help).<br />
<br />
2. Go to [http://register.vmware.com/content/registration.html vmware.com]to register to receive your free serial number(s) (from there, go to their [http://www.vmware.com/vmwarestore/privacy.html privacy policy page], look briefly at its (length), think... "heck it"... and then go back to registration :)) ''('''*TIP''' - the serial number(s) that you request for will only be provided for you on-screen/-browser - and will not be sent to you via your provided email. So be sure to note your serial numbers before you navigate away, or close your browser tab!)''<br />
<br />
3. Now go to [http://register.vmware.com/content/eula.html this vmware.com page] to "view" their EULA, "skip-scroll" all the way to the end... and just go ahead and click "Yes", you mindless nut. Now scroll down to the "(for Linux systems)" section, and download the tar.gz version!!! (RPMs 'R Not Us) ''('''*TIP''' - if you're expecting to use VMware Server the way you've seen/used Workstation, then all you need is the main server itself - no need for the 'Management Interface', or the client package ('VMware Server Console', + APIs); the 'VMware Server Console' is already included in the Server package)''<br />
<br />
4. Wait for the VMware ''Server'' tarball to download... ''wait''.... (101M) Say a silent prayer for Bill Gates, and his Virtual PC drones while you're still there.<br />
<br />
== Preparing the 'vmmon', and 'vmnet' modules for our running 64-bit kernel ==<br />
<br />
1. Unpack the VMware Server tarball you just downloaded ''('''*'''in your /32root/ chroot directory, pls....)''. (This will unzip into a 'vmware-server-distrib' directory)<br />
<br />
tar zxvf VMware-server-1.0.1-29996.tar.gz<br />
<br />
2. Now we go to search for the 'vmmon', and 'vmnet' module sources, and unpack those.<br />
<br />
cd vmware-server-distrib/lib/modules/source<br />
<br />
tar xvf vmmon.tar<br />
tar xvf vmnet.tar<br />
<br />
3. Now we 'make'<br />
<br />
make -C vmmon-only auto-build HEADER_DIR=/usr/src/linux-`uname -r`/include CC=gcc SUPPORT_SMP=1 GREP=grep IS_GCC_3=no<br />
make -C vmnet-only auto-build HEADER_DIR=/usr/src/linux-`uname -r`/include CC=gcc SUPPORT_SMP=1 GREP=grep IS_GCC_3=no<br />
<br />
'''*Note''' that I assume here that your current '''64'''-bit kernel ''(your kernel is still 64-bit, even in the ''32''-bit chroot)'' will have SMP support ''('''*'''you should be able to see this from `uname -v`)''. If not, just simply use 'SUPPORT_SMP=0' instead of 'SUPPORT_SMP=1'.<br />
<br />
(''Other assumptions'' - ''(good to know, but which you won't have to worry about if you're running a "standard" Arch)'' - your kernel headers are installed in '/usr/src/linux-`uname -r`/include', your 'gcc' is in your path (if not, point 'CC' directly to it like as in 'CC=/usr/bin/gcc'), and you're ''not'' using gcc version 3 (see 'gcc --version')).<br />
<br />
4. Now that the modules have been compiled, we resort to some sort of "trickery" in order to get the vmware install process (actually, the 'vmware-config.pl' script) to think that the modules have been pre-built already, and not prompt us to compile them again (we can't) during the install. ''('''*'''This is necessary as we will be installing the vmware binaries in the '''32'''-bit chroot - while needing to compile them in/for the '''64'''-bit environment)''<br />
<br />
cd /32root/vmware-server-distrib/lib/modules/binary # (*or 'cd ../binary')<br />
mkdir -p `uname -r`/objects<br />
cd `uname -r`<br />
<br />
echo UtsRelease `uname -r` > properties<br />
echo SMP yes >> properties<br />
# (-> only these 2 lines are necessary - the rest are not)<br />
<br />
cp /32root/vmware-server-distrib/lib/modules/source/vmmon.o objects<br />
cp /32root/vmware-server-distrib/lib/modules/source/vmnet.o objects<br />
# (*or 'cp ../../source/*.o objects')<br />
<br />
5. Now we're all set to do the actual install of the VMware Server!!!<br />
<br />
== Installing VMware Server into our 32root ==<br />
<br />
1. 'chroot' into your chroot<br />
<br />
chroot /32root<br />
<br />
2. Some preliminaries for the script before we begin our actual install....<br />
<br />
cd /etc<br />
for i in `seq 0 6`; do ln -s rc.d rc$i.d; done<br />
<br />
ln -s /bin/lsmod /sbin/lsmod<br />
<br />
mkdir /lib/modules/`uname -r`<br />
<br />
pacman -S libxtst<br />
pacman -S xinetd<br />
<br />
''('''*'''Take note that we only install 'xinetd' to satisfy the installation requirements(/script) - we won't be using the installed 'vmware-authd' xinetd service at all if all we're going to be doing is only running and controlling the VMs from the local machine! We'll disable this service later on.)''<br />
<br />
3. Now run the actual install<br />
<br />
cd vmware-server-distrib<br />
./vmware-install.pl<br />
<br />
'''*NOTE''' that for the ''third'' question<br />
<br />
What is the directory that contains the init scripts? [/etc]<br />
<br />
you should specify '/etc/rc.d'. There is only one other question for which you might like to specify something other than the default, but this comes much later... (see below) But for the rest of the questions, you can pretty much accept the default - unless you want to change something.<br />
<br />
In which directory do you want to keep your virtual machine files?<br />
[/var/lib/vmware/Virtual Machines]<br />
<br />
For this, you might like to specify something like '/home/Virtual Machines' (don't worry, spaces in the name are ok), so that you can get access to/manipulate your virtual machines files from both inside, and outside the chroot.<br />
<br />
Continue on with the rest of the installation until the end.<br />
<br />
4. That's it!!! We're all set to run and play with our VMs now. :))<br />
<br />
== Miscellaneous, / "Notes" ==<br />
<br />
*you might want to "clean up a bit" after the installation in order to make things "neater",/"simpler",/"easier to handle", and to make things more Arch-like. Consider, for example, deleting the useless S*vmware, and K*vmware symlinks in /etc/rc.d. And consider editting the /etc/rc.d/vmware script too, to touch '/var/run/daemons' instead of '/var/lock/subsys'.<br />
<br />
*the "containing directory" for your Virtual Machine directories ''('''*'''if you followed the recommendation, '/home/Virtual Machines')'' is (as per the installation process) set to chmod 1777. For security's sake, if you want to prevent others from taking a look at your VM directories, consider doing a 'chmod' of this containing directory to something else more secure.<br />
<br />
*as mentioned, if you're only going to be using one machine (as both "client", and "host",/"server") for running, and controlling VMware Server, then there is no need for the 'vmware-authd' xinetd service which will be installed by the installation script. You can simply disable it by either stopping xinetd outright.... or by removing the 'vmware-authd' file in /etc/xinetd.d, and then restarting xinetd. ''This is for your security as well.''<br />
<br />
*(see previous point as well) since it appears that the xinetd service will not be used, I can only conclude that (after taking a look at 'netstat') a socket will be used instead for internal communication between "client" and "host" when both are on the same machine. One might conclude then, that in order to save on the processing requirements, as well as the time for communication, one would do well to disable the SSL requirement for communication with the host (start vmware in the chroot as root, and click on Host -> Settings -> 'Connection' tab). Perhaps somebody more familiar with the workings of VMware Server might be able to comment on this???<br />
<br />
*(an observation) - it appears, that despite whatever "missing libraries" we may have from VMware Server's dependencies (see 'ldd /usr/lib/vmware/bin/vmware' within the chroot), that we will still be able to run just fine?!!! (the binary will just be set up to use the replacement libraries from /usr/lib/vmware/lib) I just wonder, though, if we will experience any slowdowns from using these replacements????<br />
<br />
*(last note): to ''uninstall'' VMware Server from your system, run '/usr/bin/vmware-uninstall.pl' within the chroot.<br />
<br />
*'''Question:''' [[Installing_VMware]] (the old guide I used to install VMware Workstation) mentions a problem of [http://wiki.archlinux.org/index.php/Installing_VMware#slow_networking_between_host_and_guest 'slow networking between host and guest'] - is this problem still relevant to VMware Server???? somebody pls comment.<br />
<br />
*'''Further improvements to this document, or to this knowledge base:''' I haven't done anything about the VMware Tools yet. Anybody want to do up this document?</div>Jfhttps://wiki.archlinux.org/index.php?title=Install_bundled_32-bit_system_in_64-bit_system&diff=15918Install bundled 32-bit system in 64-bit system2006-10-21T12:32:33Z<p>Jf: /* Install the base 32 bit system */</p>
<hr />
<div>[[Category:Arch64]]<br />
Arch64 Install bundled 32bit system:<br />
<br />
Note that this script don't try to change anything out of the 32bit directory. I'm no expert so there is maybe errors or some "bad things".<br />
<br />
This howto is just for those who really need to run 32 bit apps and to install it easyly. As Arch64 try to be a pure 64 bit distro, it seems the devs won't provide any compatibility libs, this system seems to me the cleaner.<br />
<br />
<br />
== Install the base 32 bit system ==<br />
We create the repository.<br />
mkdir /opt/arch32<br />
vim /etc/pacman.d/current<br />
Here you'll have to replace in the first address x86_64 by i686.<br />
'''Don't forget to revert it at the end of the howto or your system can be screwed when you install something.'''<br />
<br />
You might also want to create a separate pacman.log LogFile for your 32-bit chroot environment (in order to be able to track the "32root" pacman/package changes properly/not mess up your current 64-bit pacman.log). '''Again, don't forget to change this back too at the end of this howto unless you want to mess up your pacman logging.'''<br />
<br />
vim /etc/pacman.conf<br />
<br />
Change the 'LogFile' directive accordingly.<br />
<br />
Now proceed to sync up pacman:<br />
<br />
pacman --root /opt/arch32 -Sy<br />
<br />
Now we can install the base packages:<br />
<br />
pacman --root /opt/arch32 -S autoconf automake bash bin86 binutils bison bzip2 coreutils cpio cracklib db dcron dhcpcd dialog diffutils e2fsprogs ed file filesystem findutils flex gawk gcc gdbm gen-init-cpio gettext glibc grep groff grub gzip initscripts iputils jfsutils kbd kernel-headers klibc klibc-extras klibc-udev less libpcap libtool libusb licenses lilo logrotate lshwd m4 mailx make man man-pages mkinitcpio mkinitrd mktemp module-init-tools nano ncurses net-tools openssl pacman pam patch pciutils pcmciautils pcre perl popt procinfo procps psmisc raidtools readline reiserfsprogs rp-pppoe sed shadow slocate sysfsutils syslog-ng sysvinit tar tcp_wrappers udev usbutils util-linux vim wget which wireless_tools xfsprogs zlib<br />
<br />
Alternatively, try this shorter list of more essential packages: this list has been trimmed, and most of what you will definitely not be needing has been taken out, as well as the "filesystem-specific (eg. jfsutils) packages" (you can add them in later on if you really need them...):<br />
<br />
pacman --root /opt/arch32 -S autoconf automake bash bin86 binutils bison bzip2 coreutils cpio cracklib db dcron dialog diffutils e2fsprogs ed file filesystem findutils flex gawk gcc gdbm gettext glibc grep groff gzip initscripts iputils kbd kernel-headers klibc klibc-extras klibc-udev less libpcap libtool libusb logrotate lshwd m4 mailx make man man-pages mktemp module-init-tools nano ncurses net-tools openssl pacman pam patch pciutils pcmciautils pcre perl popt procinfo procps psmisc readline sed shadow slocate sysfsutils sysvinit tar tcp_wrappers udev usbutils util-linux vim wget which wireless_tools zlib<br />
<br />
Here is the list of packages from base that have been taken out from the list above so that you can have a look: dhcpcd, gen-init-cpio, grub, jfsutils, licenses ''('''*'''no offense to the various Open Source licenses, but we have this in our main 64-bit system already)'', lilo, mkinitcpio, mkinitrd, ppp, raidtools, rp-pppoe, reiserfsprogs, syslog-ng, xfsprogs<br />
<br />
'''You can now revert your pacman.d/current file to x86_64. Also change back your 'LogFile' in /etc/pacman.conf'''.<br />
<br />
== /etc/rc.d/arch32 rc script ==<br />
<br />
To initiate the 32bit environment at startup, create a script in /etc/rc.d/ called "arch32":<br />
<br />
#!/bin/bash<br />
<br />
. /etc/rc.conf<br />
. /etc/rc.d/functions<br />
<br />
case $1 in<br />
start)<br />
stat_busy "Starting Arch32 chroot"<br />
mount --bind /proc /opt/arch32/proc<br />
mount --bind /proc/bus/usb /opt/arch32/proc/bus/usb<br />
mount --bind /dev /opt/arch32/dev<br />
mount --bind /dev/pts /opt/arch32/dev/pts<br />
mount --bind /dev/shm /opt/arch32/dev/shm<br />
mount --bind /sys /opt/arch32/sys<br />
mount --bind /tmp /opt/arch32/tmp<br />
mount --bind /home /opt/arch32/home<br />
add_daemon arch32<br />
stat_done<br />
;;<br />
stop)<br />
stat_busy "Stopping Arch32 chroot"<br />
umount /opt/arch32/proc/bus/usb<br />
umount /opt/arch32/proc<br />
umount /opt/arch32/dev/pts<br />
umount /opt/arch32/dev/shm<br />
umount /opt/arch32/dev<br />
umount /opt/arch32/sys<br />
umount /opt/arch32/tmp<br />
umount /opt/arch32/home<br />
rm_daemon arch32<br />
stat_done<br />
;;<br />
restart)<br />
$0 stop<br />
sleep 1<br />
$0 start<br />
;;<br />
*)<br />
echo "usage: $0 {start|stop|restart}"<br />
esac<br />
exit 0<br />
<br />
Then allow execution of this script:<br />
<br />
chmod +x /etc/rc.d/arch32<br />
<br />
And add it to "/etc/rc.conf":<br />
<br />
DAEMONS=(syslog-ng network netfs crond arch32 gdm)<br />
<br />
== Configure the new installed system ==<br />
First, copy some meaningful config files over....<br />
<br />
cd /opt/arch32/etc<br />
<br />
cp /etc/passwd* .<br />
cp /etc/shadow* .<br />
cp /etc/group* .<br />
<br />
cp /etc/rc.conf .<br />
cp /etc/resolv.conf .<br />
<br />
cp /etc/locale.gen .<br />
cp /etc/profile.d/locale.sh profile.d<br />
<br />
cp /etc/vimrc .<br />
<br />
Now chroot in your new system<br />
/etc/rc.d/arch32 start<br />
xhost +<br />
chroot /opt/arch32<br />
<br />
Fix some future locale issues<br />
/usr/sbin/locale-gen<br />
pacman -Sy ttf-bitstream-vera ttf-ms-fonts<br />
Note that you can install any other font. You just need one or your apps won't display any text.<br />
<br />
Also, keep in mind that the "/etc/pacman.conf" file from the 32bit environment is the default one. So if you want to use "community" repositories, don't forget to edit it !<br />
<br />
Now you can install any apps you need (*note for firefox with the nonfree flash plugin, you will need to install libxmu as well! Apparently this dependency has not been taken care of yet; see [http://bugs.archlinux.org/task/5583 Flyspray]).<br />
<br />
pacman -S acroread opera<br />
<br />
pacman -S mozilla-firefox<br />
pacman -S libxmu flashplugin<br />
pacman -S mplayer-plugin<br />
<br />
You can also clean up the pkgs to win back some space. Some cleanups that can be done: (from your "32root" environment)<br />
rmdir /home/ftp<br />
<br />
pacman -Rd mkinitcpio<br />
<br />
Consider also clearing out your pacman cache (do a 'man pacman', and search for 'clean' for more info; '''''*Note''' that this is *not* a command that you'll only have to do just once - as packages accumulate, you'll have to keep doing this if you want to clear out the space from the pacman cache'')<br />
pacman -Scc<br />
<br />
== Execute a 32bit apps from a 64bit env ==<br />
<br />
<br />
=== Download and install dchroot ===<br />
<br />
Download "dchroot" from the AUR (http://aur.archlinux.org/packages.php) and install it on your 64bit system ('''outside the chroot'''):<br />
<br />
tar xvf dchroot_0.12.1.tar.gz<br />
cd dchroot-0.12.1<br />
./configure --prefix=/opt/dchroot<br />
make<br />
make install<br />
<br />
In my case, there has been an error at the end of the "make install". But everything works anyway ... so I haven't care about it.<br />
<br />
=== Configuration ===<br />
<br />
Now, we must edit the configuration file (/etc/dchroot.conf) and add this line:<br />
<br />
arch32 /opt/arch32<br />
<br />
<br />
=== Execute 32bit apps ===<br />
<br />
Finally, to use your 32bit apps:<br />
<br />
/opt/dchroot/bin/dchroot -d "opera -notrayicon"<br />
/opt/dchroot/bin/dchroot -d acroread<br />
<br />
It will launch Opera, without the systray icon, from your 32bit environment. The second example is for Acrobat Reader, where there is no "" since we don't need to add switches.</div>Jfhttps://wiki.archlinux.org/index.php?title=Installing_VMware_Server_on_Arch64&diff=15917Installing VMware Server on Arch642006-10-21T12:11:06Z<p>Jf: /* Preparing the 'vmmon', and 'vmnet' modules for our */ added in some bash, or "command" shortcuts, but decided to leave the original full pathnames in for their learning value as well...</p>
<hr />
<div>[[Category: Arch64]][[Category: Emulation]]<br />
= '''Installing VMware Server on an Arch64 System''' =<br />
<br />
This document will cover how to get VMware Server (as of initial writing of this document, Version "1.0.1 | 8/14/06 | Build 29996") up and running on your Arch64 system, using an Arch32 chroot method ''(*I assume, for the sake of this document, that your chroot will be in '/32root')''. A multi-lib approach will not be covered here (feel free to come up with your own method, and then write the wiki document).<br />
<br />
== "Prerequisites", or Preparation ==<br />
<br />
1. Get your Arch32 chroot set up (you can refer to [[Arch64_Install_bundled_32bit_system]] for some help).<br />
<br />
2. Go to [http://register.vmware.com/content/registration.html vmware.com]to register to receive your free serial number(s) (from there, go to their [http://www.vmware.com/vmwarestore/privacy.html privacy policy page], look briefly at its (length), think... "heck it"... and then go back to registration :)) ''('''*TIP''' - the serial number(s) that you request for will only be provided for you on-screen/-browser - and will not be sent to you via your provided email. So be sure to note your serial numbers before you navigate away, or close your browser tab!)''<br />
<br />
3. Now go to [http://register.vmware.com/content/eula.html this vmware.com page] to "view" their EULA, "skip-scroll" all the way to the end... and just go ahead and click "Yes", you mindless nut. Now scroll down to the "(for Linux systems)" section, and download the tar.gz version!!! (RPMs 'R Not Us) ''('''*TIP''' - if you're expecting to use VMware Server the way you've seen/used Workstation, then all you need is the main server itself - no need for the 'Management Interface', or the client package ('VMware Server Console', + APIs); the 'VMware Server Console' is already included in the Server package)''<br />
<br />
4. Wait for the VMware ''Server'' tarball to download... ''wait''.... (101M) Say a silent prayer for Bill Gates, and his Virtual PC drones while you're still there.<br />
<br />
== Preparing the 'vmmon', and 'vmnet' modules for our running 64-bit kernel ==<br />
<br />
1. Unpack the VMware Server tarball you just downloaded ''('''*'''in your /32root/ chroot directory, pls....)''. (This will unzip into a 'vmware-server-distrib' directory)<br />
<br />
tar zxvf VMware-server-1.0.1-29996.tar.gz<br />
<br />
2. Now we go to search for the 'vmmon', and 'vmnet' module sources, and unpack those.<br />
<br />
cd vmware-server-distrib/lib/modules/source<br />
<br />
tar xvf vmmon.tar<br />
tar xvf vmnet.tar<br />
<br />
3. Now we 'make'<br />
<br />
make -C vmmon-only auto-build HEADER_DIR=/usr/src/linux-`uname -r`/include CC=gcc SUPPORT_SMP=1 GREP=grep IS_GCC_3=no<br />
make -C vmnet-only auto-build HEADER_DIR=/usr/src/linux-`uname -r`/include CC=gcc SUPPORT_SMP=1 GREP=grep IS_GCC_3=no<br />
<br />
'''*Note''' that I assume here that your current '''64'''-bit kernel ''(your kernel is still 64-bit, even in the ''32''-bit chroot)'' will have SMP support ''('''*'''you should be able to see this from `uname -v`)''. If not, just simply use 'SUPPORT_SMP=0' instead of 'SUPPORT_SMP=1'.<br />
<br />
(''Other assumptions'' - ''(good to know, but which you won't have to worry about if you're running a "standard" Arch)'' - your kernel headers are installed in '/usr/src/linux-`uname -r`/include', your 'gcc' is in your path (if not, point 'CC' directly to it like as in 'CC=/usr/bin/gcc'), and you're ''not'' using gcc version 3 (see 'gcc --version')).<br />
<br />
4. Now that the modules have been compiled, we resort to some sort of "trickery" in order to get the vmware install process (actually, the 'vmware-config.pl' script) to think that the modules have been pre-built already, and not prompt us to compile them again (we can't) during the install. ''('''*'''This is necessary as we will be installing the vmware binaries in the '''32'''-bit chroot - while needing to compile them in/for the '''64'''-bit environment)''<br />
<br />
cd /32root/vmware-server-distrib/lib/modules/binary # (*or 'cd ../binary')<br />
mkdir -p `uname -r`/objects<br />
cd `uname -r`<br />
<br />
echo UtsRelease `uname -r` > properties<br />
echo SMP yes >> properties<br />
# (-> only these 2 lines are necessary - the rest are not)<br />
<br />
cp /32root/vmware-server-distrib/lib/modules/source/vmmon.o objects<br />
cp /32root/vmware-server-distrib/lib/modules/source/vmnet.o objects<br />
# (*or 'cp ../../source/*.o objects')<br />
<br />
5. Now we're all set to do the actual install of the VMware Server!!!<br />
<br />
== Installing VMware Server into our 32root ==<br />
<br />
1. 'chroot' into your chroot<br />
<br />
chroot /32root<br />
<br />
2. Some preliminaries for the script before we begin our actual install....<br />
<br />
cd /etc<br />
for i in `seq 0 6`; do ln -s rc.d rc$i.d; done<br />
<br />
ln -s /bin/lsmod /sbin/lsmod<br />
<br />
mkdir /lib/modules/`uname -r`<br />
<br />
pacman -S libxtst<br />
pacman -S xinetd<br />
<br />
''('''*'''Take note that we only install 'xinetd' to satisfy the installation requirements(/script) - we won't be using the installed 'vmware-authd' xinetd service at all if all we're going to be doing is only running and controlling the VMs from the local machine! We'll disable this service later on.)''<br />
<br />
3. Now run the actual install<br />
<br />
cd vmware-server-distrib<br />
./vmware-install.pl<br />
<br />
'''*NOTE''' that for the second question<br />
<br />
What is the directory that contains the init directories (rc0.d/ to rc6.d/)?<br />
<br />
you should specify '/etc', and for the next question<br />
<br />
What is the directory that contains the init scripts? [/etc]<br />
<br />
you should specify '/etc/rc.d'. There is only one other question for which you might like to specify something other than the default, but this comes much later... (see below) But for the rest of the questions, you can pretty much accept the default - unless you want to change something.<br />
<br />
In which directory do you want to keep your virtual machine files?<br />
[/var/lib/vmware/Virtual Machines]<br />
<br />
For this, you might like to specify something like '/home/Virtual Machines' (don't worry, spaces in the name are ok), so that you can get access to/manipulate your virtual machines files from both inside, and outside the chroot.<br />
<br />
Continue on with the rest of the installation until the end.<br />
<br />
4. That's it!!! We're all set to run and play with our VMs now. :))<br />
<br />
== Miscellaneous, / "Notes" ==<br />
<br />
*you might want to "clean up a bit" after the installation in order to make things "neater",/"simpler",/"easier to handle", and to make things more Arch-like. Consider, for example, deleting the useless S*vmware, and K*vmware symlinks in /etc/rc.d. And consider editting the /etc/rc.d/vmware script too, to touch '/var/run/daemons' instead of '/var/lock/subsys'.<br />
<br />
*the "containing directory" for your Virtual Machine directories ''('''*'''if you followed the recommendation, '/home/Virtual Machines')'' is (as per the installation process) set to chmod 1777. For security's sake, if you want to prevent others from taking a look at your VM directories, consider doing a 'chmod' of this containing directory to something else more secure.<br />
<br />
*as mentioned, if you're only going to be using one machine (as both "client", and "host",/"server") for running, and controlling VMware Server, then there is no need for the 'vmware-authd' xinetd service which will be installed by the installation script. You can simply disable it by either stopping xinetd outright.... or by removing the 'vmware-authd' file in /etc/xinetd.d, and then restarting xinetd. ''This is for your security as well.''<br />
<br />
*(see previous point as well) since it appears that the xinetd service will not be used, I can only conclude that (after taking a look at 'netstat') a socket will be used instead for internal communication between "client" and "host" when both are on the same machine. One might conclude then, that in order to save on the processing requirements, as well as the time for communication, one would do well to disable the SSL requirement for communication with the host (start vmware in the chroot as root, and click on Host -> Settings -> 'Connection' tab). Perhaps somebody more familiar with the workings of VMware Server might be able to comment on this???<br />
<br />
*(an observation) - it appears, that despite whatever "missing libraries" we may have from VMware Server's dependencies (see 'ldd /usr/lib/vmware/bin/vmware' within the chroot), that we will still be able to run just fine?!!! (the binary will just be set up to use the replacement libraries from /usr/lib/vmware/lib) I just wonder, though, if we will experience any slowdowns from using these replacements????<br />
<br />
*(last note): to ''uninstall'' VMware Server from your system, run '/usr/bin/vmware-uninstall.pl' within the chroot.<br />
<br />
*'''Question:''' [[Installing_VMware]] (the old guide I used to install VMware Workstation) mentions a problem of [http://wiki.archlinux.org/index.php/Installing_VMware#slow_networking_between_host_and_guest 'slow networking between host and guest'] - is this problem still relevant to VMware Server???? somebody pls comment.<br />
<br />
*'''Further improvements to this document, or to this knowledge base:''' I haven't done anything about the VMware Tools yet. Anybody want to do up this document?</div>Jfhttps://wiki.archlinux.org/index.php?title=Installing_VMware_Server_on_Arch64&diff=15915Installing VMware Server on Arch642006-10-21T00:52:34Z<p>Jf: /* "Prerequisites", or Preparation */</p>
<hr />
<div>[[Category: Arch64]][[Category: Emulation]]<br />
= '''Installing VMware Server on an Arch64 System''' =<br />
<br />
This document will cover how to get VMware Server (as of initial writing of this document, Version "1.0.1 | 8/14/06 | Build 29996") up and running on your Arch64 system, using an Arch32 chroot method ''(*I assume, for the sake of this document, that your chroot will be in '/32root')''. A multi-lib approach will not be covered here (feel free to come up with your own method, and then write the wiki document).<br />
<br />
== "Prerequisites", or Preparation ==<br />
<br />
1. Get your Arch32 chroot set up (you can refer to [[Arch64_Install_bundled_32bit_system]] for some help).<br />
<br />
2. Go to [http://register.vmware.com/content/registration.html vmware.com]to register to receive your free serial number(s) (from there, go to their [http://www.vmware.com/vmwarestore/privacy.html privacy policy page], look briefly at its (length), think... "heck it"... and then go back to registration :)) ''('''*TIP''' - the serial number(s) that you request for will only be provided for you on-screen/-browser - and will not be sent to you via your provided email. So be sure to note your serial numbers before you navigate away, or close your browser tab!)''<br />
<br />
3. Now go to [http://register.vmware.com/content/eula.html this vmware.com page] to "view" their EULA, "skip-scroll" all the way to the end... and just go ahead and click "Yes", you mindless nut. Now scroll down to the "(for Linux systems)" section, and download the tar.gz version!!! (RPMs 'R Not Us) ''('''*TIP''' - if you're expecting to use VMware Server the way you've seen/used Workstation, then all you need is the main server itself - no need for the 'Management Interface', or the client package ('VMware Server Console', + APIs); the 'VMware Server Console' is already included in the Server package)''<br />
<br />
4. Wait for the VMware ''Server'' tarball to download... ''wait''.... (101M) Say a silent prayer for Bill Gates, and his Virtual PC drones while you're still there.<br />
<br />
== Preparing the 'vmmon', and 'vmnet' modules for our running 64-bit kernel ==<br />
<br />
1. Unpack the VMware Server tarball you just downloaded ''('''*'''in your /32root/ chroot directory, pls....)''. (This will unzip into a 'vmware-server-distrib' directory)<br />
<br />
tar zxvf VMware-server-1.0.1-29996.tar.gz<br />
<br />
2. Now we go to search for the 'vmmon', and 'vmnet' module sources, and unpack those.<br />
<br />
cd vmware-server-distrib/lib/modules/source<br />
<br />
tar xvf vmmon.tar<br />
tar xvf vmnet.tar<br />
<br />
3. Now we 'make'<br />
<br />
make -C vmmon-only auto-build HEADER_DIR=/usr/src/linux-`uname -r`/include CC=gcc SUPPORT_SMP=1 GREP=grep IS_GCC_3=no<br />
make -C vmnet-only auto-build HEADER_DIR=/usr/src/linux-`uname -r`/include CC=gcc SUPPORT_SMP=1 GREP=grep IS_GCC_3=no<br />
<br />
'''*Note''' that I assume here that your current '''64'''-bit kernel ''(your kernel is still 64-bit, even in the ''32''-bit chroot)'' will have SMP support ''('''*'''you should be able to see this from `uname -v`)''. If not, just simply use 'SUPPORT_SMP=0' instead of 'SUPPORT_SMP=1'.<br />
<br />
(''Other assumptions'' - ''(good to know, but which you won't have to worry about if you're running a "standard" Arch)'' - your kernel headers are installed in '/usr/src/linux-`uname -r`/include', your 'gcc' is in your path (if not, point 'CC' directly to it like as in 'CC=/usr/bin/gcc'), and you're ''not'' using gcc version 3 (see 'gcc --version')).<br />
<br />
4. Now that the modules have been compiled, we resort to some sort of "trickery" in order to get the vmware install process (actually, the 'vmware-config.pl' script) to think that the modules have been pre-built already, and not prompt us to compile them again (we can't) during the install. ''('''*'''This is necessary as we will be installing the vmware binaries in the '''32'''-bit chroot - while needing to compile them in/for the '''64'''-bit environment)''<br />
<br />
cd /32root/vmware-server-distrib/lib/modules/binary<br />
mkdir -p `uname -r`/objects<br />
cd `uname -r`<br />
<br />
echo UtsRelease `uname -r` > properties<br />
echo SMP yes >> properties<br />
# (-> only these 2 lines are necessary - the rest are not)<br />
<br />
cp /32root/vmware-server-distrib/lib/modules/source/vmmon.o objects<br />
cp /32root/vmware-server-distrib/lib/modules/source/vmnet.o objects<br />
<br />
5. Now we're all set to do the actual install of the VMware Server!!!<br />
<br />
== Installing VMware Server into our 32root ==<br />
<br />
1. 'chroot' into your chroot<br />
<br />
chroot /32root<br />
<br />
2. Some preliminaries for the script before we begin our actual install....<br />
<br />
cd /etc<br />
for i in `seq 0 6`; do ln -s rc.d rc$i.d; done<br />
<br />
ln -s /bin/lsmod /sbin/lsmod<br />
<br />
mkdir /lib/modules/`uname -r`<br />
<br />
pacman -S libxtst<br />
pacman -S xinetd<br />
<br />
''('''*'''Take note that we only install 'xinetd' to satisfy the installation requirements(/script) - we won't be using the installed 'vmware-authd' xinetd service at all if all we're going to be doing is only running and controlling the VMs from the local machine! We'll disable this service later on.)''<br />
<br />
3. Now run the actual install<br />
<br />
cd vmware-server-distrib<br />
./vmware-install.pl<br />
<br />
'''*NOTE''' that for the second question<br />
<br />
What is the directory that contains the init directories (rc0.d/ to rc6.d/)?<br />
<br />
you should specify '/etc', and for the next question<br />
<br />
What is the directory that contains the init scripts? [/etc]<br />
<br />
you should specify '/etc/rc.d'. There is only one other question for which you might like to specify something other than the default, but this comes much later... (see below) But for the rest of the questions, you can pretty much accept the default - unless you want to change something.<br />
<br />
In which directory do you want to keep your virtual machine files?<br />
[/var/lib/vmware/Virtual Machines]<br />
<br />
For this, you might like to specify something like '/home/Virtual Machines' (don't worry, spaces in the name are ok), so that you can get access to/manipulate your virtual machines files from both inside, and outside the chroot.<br />
<br />
Continue on with the rest of the installation until the end.<br />
<br />
4. That's it!!! We're all set to run and play with our VMs now. :))<br />
<br />
== Miscellaneous, / "Notes" ==<br />
<br />
*you might want to "clean up a bit" after the installation in order to make things "neater",/"simpler",/"easier to handle", and to make things more Arch-like. Consider, for example, deleting the useless S*vmware, and K*vmware symlinks in /etc/rc.d. And consider editting the /etc/rc.d/vmware script too, to touch '/var/run/daemons' instead of '/var/lock/subsys'.<br />
<br />
*the "containing directory" for your Virtual Machine directories ''('''*'''if you followed the recommendation, '/home/Virtual Machines')'' is (as per the installation process) set to chmod 1777. For security's sake, if you want to prevent others from taking a look at your VM directories, consider doing a 'chmod' of this containing directory to something else more secure.<br />
<br />
*as mentioned, if you're only going to be using one machine (as both "client", and "host",/"server") for running, and controlling VMware Server, then there is no need for the 'vmware-authd' xinetd service which will be installed by the installation script. You can simply disable it by either stopping xinetd outright.... or by removing the 'vmware-authd' file in /etc/xinetd.d, and then restarting xinetd. ''This is for your security as well.''<br />
<br />
*(see previous point as well) since it appears that the xinetd service will not be used, I can only conclude that (after taking a look at 'netstat') a socket will be used instead for internal communication between "client" and "host" when both are on the same machine. One might conclude then, that in order to save on the processing requirements, as well as the time for communication, one would do well to disable the SSL requirement for communication with the host (start vmware in the chroot as root, and click on Host -> Settings -> 'Connection' tab). Perhaps somebody more familiar with the workings of VMware Server might be able to comment on this???<br />
<br />
*(an observation) - it appears, that despite whatever "missing libraries" we may have from VMware Server's dependencies (see 'ldd /usr/lib/vmware/bin/vmware' within the chroot), that we will still be able to run just fine?!!! (the binary will just be set up to use the replacement libraries from /usr/lib/vmware/lib) I just wonder, though, if we will experience any slowdowns from using these replacements????<br />
<br />
*(last note): to ''uninstall'' VMware Server from your system, run '/usr/bin/vmware-uninstall.pl' within the chroot.<br />
<br />
*'''Question:''' [[Installing_VMware]] (the old guide I used to install VMware Workstation) mentions a problem of [http://wiki.archlinux.org/index.php/Installing_VMware#slow_networking_between_host_and_guest 'slow networking between host and guest'] - is this problem still relevant to VMware Server???? somebody pls comment.<br />
<br />
*'''Further improvements to this document, or to this knowledge base:''' I haven't done anything about the VMware Tools yet. Anybody want to do up this document?</div>Jfhttps://wiki.archlinux.org/index.php?title=Installing_VMware_Server_on_Arch64&diff=15914Installing VMware Server on Arch642006-10-21T00:07:36Z<p>Jf: Creation of document</p>
<hr />
<div>[[Category: Arch64]][[Category: Emulation]]<br />
= '''Installing VMware Server on an Arch64 System''' =<br />
<br />
This document will cover how to get VMware Server (as of initial writing of this document, Version "1.0.1 | 8/14/06 | Build 29996") up and running on your Arch64 system, using an Arch32 chroot method ''(*I assume, for the sake of this document, that your chroot will be in '/32root')''. A multi-lib approach will not be covered here (feel free to come up with your own method, and then write the wiki document).<br />
<br />
== "Prerequisites", or Preparation ==<br />
<br />
1. Get your Arch32 chroot set up (you can refer to [[Arch64_Install_bundled_32bit_system]] for some help).<br />
<br />
2. Go to [http://register.vmware.com/content/registration.html vmware.com]to register to receive your free serial number(s) (from there, go to their [http://www.vmware.com/vmwarestore/privacy.html privacy policy page], look briefly at its (length), think... "heck it"... and then go back to registration :)) ''('''*TIP''' - the serial number(s) that you request for will only be provided for you on-screen/-browser - and will not be sent to you via your provided email. So be sure to note your serial numbers before you navigate away, or close your browser tab!)''<br />
<br />
3. Now go to [http://register.vmware.com/content/eula.html this vmware.com page] to "view" their EULA, "skip-scroll" all the way to the end... and just go ahead and click "Yes", you mindless nut. Now scroll down to the "(for Linux systems)" section, and download the tar.gz version!!! (RPMs 'R Not Us) ''('''*TIP''' - if you're expecting to use VMware Server the way you've seen/used Workstation, then all you need is the main server itself - no need for the Management Interface, or the client package ('Server Console', + APIs))''<br />
<br />
4. Wait for the VMware ''Server'' tarball to download... ''wait''.... (101M) Say a silent prayer for Bill Gates, and his Virtual PC drones while you're still there.<br />
<br />
== Preparing the 'vmmon', and 'vmnet' modules for our running 64-bit kernel ==<br />
<br />
1. Unpack the VMware Server tarball you just downloaded ''('''*'''in your /32root/ chroot directory, pls....)''. (This will unzip into a 'vmware-server-distrib' directory)<br />
<br />
tar zxvf VMware-server-1.0.1-29996.tar.gz<br />
<br />
2. Now we go to search for the 'vmmon', and 'vmnet' module sources, and unpack those.<br />
<br />
cd vmware-server-distrib/lib/modules/source<br />
<br />
tar xvf vmmon.tar<br />
tar xvf vmnet.tar<br />
<br />
3. Now we 'make'<br />
<br />
make -C vmmon-only auto-build HEADER_DIR=/usr/src/linux-`uname -r`/include CC=gcc SUPPORT_SMP=1 GREP=grep IS_GCC_3=no<br />
make -C vmnet-only auto-build HEADER_DIR=/usr/src/linux-`uname -r`/include CC=gcc SUPPORT_SMP=1 GREP=grep IS_GCC_3=no<br />
<br />
'''*Note''' that I assume here that your current '''64'''-bit kernel ''(your kernel is still 64-bit, even in the ''32''-bit chroot)'' will have SMP support ''('''*'''you should be able to see this from `uname -v`)''. If not, just simply use 'SUPPORT_SMP=0' instead of 'SUPPORT_SMP=1'.<br />
<br />
(''Other assumptions'' - ''(good to know, but which you won't have to worry about if you're running a "standard" Arch)'' - your kernel headers are installed in '/usr/src/linux-`uname -r`/include', your 'gcc' is in your path (if not, point 'CC' directly to it like as in 'CC=/usr/bin/gcc'), and you're ''not'' using gcc version 3 (see 'gcc --version')).<br />
<br />
4. Now that the modules have been compiled, we resort to some sort of "trickery" in order to get the vmware install process (actually, the 'vmware-config.pl' script) to think that the modules have been pre-built already, and not prompt us to compile them again (we can't) during the install. ''('''*'''This is necessary as we will be installing the vmware binaries in the '''32'''-bit chroot - while needing to compile them in/for the '''64'''-bit environment)''<br />
<br />
cd /32root/vmware-server-distrib/lib/modules/binary<br />
mkdir -p `uname -r`/objects<br />
cd `uname -r`<br />
<br />
echo UtsRelease `uname -r` > properties<br />
echo SMP yes >> properties<br />
# (-> only these 2 lines are necessary - the rest are not)<br />
<br />
cp /32root/vmware-server-distrib/lib/modules/source/vmmon.o objects<br />
cp /32root/vmware-server-distrib/lib/modules/source/vmnet.o objects<br />
<br />
5. Now we're all set to do the actual install of the VMware Server!!!<br />
<br />
== Installing VMware Server into our 32root ==<br />
<br />
1. 'chroot' into your chroot<br />
<br />
chroot /32root<br />
<br />
2. Some preliminaries for the script before we begin our actual install....<br />
<br />
cd /etc<br />
for i in `seq 0 6`; do ln -s rc.d rc$i.d; done<br />
<br />
ln -s /bin/lsmod /sbin/lsmod<br />
<br />
mkdir /lib/modules/`uname -r`<br />
<br />
pacman -S libxtst<br />
pacman -S xinetd<br />
<br />
''('''*'''Take note that we only install 'xinetd' to satisfy the installation requirements(/script) - we won't be using the installed 'vmware-authd' xinetd service at all if all we're going to be doing is only running and controlling the VMs from the local machine! We'll disable this service later on.)''<br />
<br />
3. Now run the actual install<br />
<br />
cd vmware-server-distrib<br />
./vmware-install.pl<br />
<br />
'''*NOTE''' that for the second question<br />
<br />
What is the directory that contains the init directories (rc0.d/ to rc6.d/)?<br />
<br />
you should specify '/etc', and for the next question<br />
<br />
What is the directory that contains the init scripts? [/etc]<br />
<br />
you should specify '/etc/rc.d'. There is only one other question for which you might like to specify something other than the default, but this comes much later... (see below) But for the rest of the questions, you can pretty much accept the default - unless you want to change something.<br />
<br />
In which directory do you want to keep your virtual machine files?<br />
[/var/lib/vmware/Virtual Machines]<br />
<br />
For this, you might like to specify something like '/home/Virtual Machines' (don't worry, spaces in the name are ok), so that you can get access to/manipulate your virtual machines files from both inside, and outside the chroot.<br />
<br />
Continue on with the rest of the installation until the end.<br />
<br />
4. That's it!!! We're all set to run and play with our VMs now. :))<br />
<br />
== Miscellaneous, / "Notes" ==<br />
<br />
*you might want to "clean up a bit" after the installation in order to make things "neater",/"simpler",/"easier to handle", and to make things more Arch-like. Consider, for example, deleting the useless S*vmware, and K*vmware symlinks in /etc/rc.d. And consider editting the /etc/rc.d/vmware script too, to touch '/var/run/daemons' instead of '/var/lock/subsys'.<br />
<br />
*the "containing directory" for your Virtual Machine directories ''('''*'''if you followed the recommendation, '/home/Virtual Machines')'' is (as per the installation process) set to chmod 1777. For security's sake, if you want to prevent others from taking a look at your VM directories, consider doing a 'chmod' of this containing directory to something else more secure.<br />
<br />
*as mentioned, if you're only going to be using one machine (as both "client", and "host",/"server") for running, and controlling VMware Server, then there is no need for the 'vmware-authd' xinetd service which will be installed by the installation script. You can simply disable it by either stopping xinetd outright.... or by removing the 'vmware-authd' file in /etc/xinetd.d, and then restarting xinetd. ''This is for your security as well.''<br />
<br />
*(see previous point as well) since it appears that the xinetd service will not be used, I can only conclude that (after taking a look at 'netstat') a socket will be used instead for internal communication between "client" and "host" when both are on the same machine. One might conclude then, that in order to save on the processing requirements, as well as the time for communication, one would do well to disable the SSL requirement for communication with the host (start vmware in the chroot as root, and click on Host -> Settings -> 'Connection' tab). Perhaps somebody more familiar with the workings of VMware Server might be able to comment on this???<br />
<br />
*(an observation) - it appears, that despite whatever "missing libraries" we may have from VMware Server's dependencies (see 'ldd /usr/lib/vmware/bin/vmware' within the chroot), that we will still be able to run just fine?!!! (the binary will just be set up to use the replacement libraries from /usr/lib/vmware/lib) I just wonder, though, if we will experience any slowdowns from using these replacements????<br />
<br />
*(last note): to ''uninstall'' VMware Server from your system, run '/usr/bin/vmware-uninstall.pl' within the chroot.<br />
<br />
*'''Question:''' [[Installing_VMware]] (the old guide I used to install VMware Workstation) mentions a problem of [http://wiki.archlinux.org/index.php/Installing_VMware#slow_networking_between_host_and_guest 'slow networking between host and guest'] - is this problem still relevant to VMware Server???? somebody pls comment.<br />
<br />
*'''Further improvements to this document, or to this knowledge base:''' I haven't done anything about the VMware Tools yet. Anybody want to do up this document?</div>Jfhttps://wiki.archlinux.org/index.php?title=Talk:Locale&diff=15913Talk:Locale2006-10-20T21:52:09Z<p>Jf: </p>
<hr />
<div>[[User:Jf|jf]]: Is setting the $LC_ALL var really necessary??? It would seem (at least on my system) that it's not. All i have to do is run locale-gen, and set LOCALE in /etc/rc.conf, and that's it. What do u guys think?<br />
<br />
Just ignore this article. The part at the top is ok, but the .bashrc stuff is a bit misleading. [[User:Byte|byte]] 21:46, 13 October 2006 (EDT)<br />
<br />
This should be more to the point now. [[User:Byte|byte]] 19:09, 13 October 2006 (PDT)<br />
<br />
[[User:Jf|jf]]: ah, ok, thanks, byte....</div>Jfhttps://wiki.archlinux.org/index.php?title=Install_bundled_32-bit_system_in_64-bit_system&diff=15912Install bundled 32-bit system in 64-bit system2006-10-20T17:55:35Z<p>Jf: /* Configure the new installed system */</p>
<hr />
<div>[[Category:Arch64]]<br />
Arch64 Install bundled 32bit system:<br />
<br />
Note that this script don't try to change anything out of the 32bit directory. I'm no expert so there is maybe errors or some "bad things".<br />
<br />
This howto is just for those who really need to run 32 bit apps and to install it easyly. As Arch64 try to be a pure 64 bit distro, it seems the devs won't provide any compatibility libs, this system seems to me the cleaner.<br />
<br />
<br />
== Install the base 32 bit system ==<br />
We create the repository.<br />
mkdir /opt/arch32<br />
vim /etc/pacman.d/current<br />
Here you'll have to replace in the first address x86_64 by i686.<br />
'''Don't forget to revert it at the end of the howto or your system can be screwed when you install something.'''<br />
<br />
You might also want to create a separate pacman.log LogFile for your 32-bit chroot environment (in order to be able to track the "32root" pacman/package changes properly/not mess up your current 64-bit pacman.log). '''Again, don't forget to change this back too at the end of this howto unless you want to mess up your pacman logging.'''<br />
<br />
vim /etc/pacman.conf<br />
<br />
Change the 'LogFile' directive accordingly.<br />
<br />
Now proceed to sync up pacman:<br />
<br />
pacman --root /opt/arch32 -Sy<br />
<br />
Now we can install the base packages:<br />
<br />
pacman --root /opt/arch32 -S autoconf automake bash bin86 binutils bison bzip2 coreutils cpio cracklib db dcron dhcpcd dialog diffutils e2fsprogs ed file filesystem findutils flex gawk gcc gdbm gen-init-cpio gettext glibc grep groff grub gzip initscripts iputils jfsutils kbd kernel-headers klibc klibc-extras klibc-udev less libpcap libtool libusb licenses lilo logrotate lshwd m4 mailx make man man-pages mkinitcpio mkinitrd mktemp module-init-tools nano ncurses net-tools openssl pacman pam patch pciutils pcmciautils pcre perl popt procinfo procps psmisc raidtools readline reiserfsprogs rp-pppoe sed shadow slocate sysfsutils syslog-ng sysvinit tar tcp_wrappers udev usbutils util-linux vim wget which wireless_tools xfsprogs zlib<br />
<br />
'''You can now revert your pacman.d/current file to x86_64. Also change back your 'LogFile' in /etc/pacman.conf'''.<br />
<br />
== /etc/rc.d/arch32 rc script ==<br />
<br />
To initiate the 32bit environment at startup, create a script in /etc/rc.d/ called "arch32":<br />
<br />
#!/bin/bash<br />
<br />
. /etc/rc.conf<br />
. /etc/rc.d/functions<br />
<br />
case $1 in<br />
start)<br />
stat_busy "Starting Arch32 chroot"<br />
mount --bind /proc /opt/arch32/proc<br />
mount --bind /proc/bus/usb /opt/arch32/proc/bus/usb<br />
mount --bind /dev /opt/arch32/dev<br />
mount --bind /dev/pts /opt/arch32/dev/pts<br />
mount --bind /dev/shm /opt/arch32/dev/shm<br />
mount --bind /sys /opt/arch32/sys<br />
mount --bind /tmp /opt/arch32/tmp<br />
mount --bind /home /opt/arch32/home<br />
add_daemon arch32<br />
stat_done<br />
;;<br />
stop)<br />
stat_busy "Stopping Arch32 chroot"<br />
umount /opt/arch32/proc/bus/usb<br />
umount /opt/arch32/proc<br />
umount /opt/arch32/dev/pts<br />
umount /opt/arch32/dev/shm<br />
umount /opt/arch32/dev<br />
umount /opt/arch32/sys<br />
umount /opt/arch32/tmp<br />
umount /opt/arch32/home<br />
rm_daemon arch32<br />
stat_done<br />
;;<br />
restart)<br />
$0 stop<br />
sleep 1<br />
$0 start<br />
;;<br />
*)<br />
echo "usage: $0 {start|stop|restart}"<br />
esac<br />
exit 0<br />
<br />
Then allow execution of this script:<br />
<br />
chmod +x /etc/rc.d/arch32<br />
<br />
And add it to "/etc/rc.conf":<br />
<br />
DAEMONS=(syslog-ng network netfs crond arch32 gdm)<br />
<br />
== Configure the new installed system ==<br />
First, copy some meaningful config files over....<br />
<br />
cd /opt/arch32/etc<br />
<br />
cp /etc/passwd* .<br />
cp /etc/shadow* .<br />
cp /etc/group* .<br />
<br />
cp /etc/rc.conf .<br />
cp /etc/resolv.conf .<br />
<br />
cp /etc/locale.gen .<br />
cp /etc/profile.d/locale.sh profile.d<br />
<br />
cp /etc/vimrc .<br />
<br />
Now chroot in your new system<br />
/etc/rc.d/arch32 start<br />
xhost +<br />
chroot /opt/arch32<br />
<br />
Fix some future locale issues<br />
/usr/sbin/locale-gen<br />
pacman -Sy ttf-bitstream-vera ttf-ms-fonts<br />
Note that you can install any other font. You just need one or your apps won't display any text.<br />
<br />
Also, keep in mind that the "/etc/pacman.conf" file from the 32bit environment is the default one. So if you want to use "community" repositories, don't forget to edit it !<br />
<br />
Now you can install any apps you need (*note for firefox with the nonfree flash plugin, you will need to install libxmu as well! Apparently this dependency has not been taken care of yet; see [http://bugs.archlinux.org/task/5583 Flyspray]).<br />
<br />
pacman -S acroread opera<br />
<br />
pacman -S mozilla-firefox<br />
pacman -S libxmu flashplugin<br />
pacman -S mplayer-plugin<br />
<br />
You can also clean up the pkgs to win back some space. Some cleanups that can be done: (from your "32root" environment)<br />
rmdir /home/ftp<br />
<br />
pacman -Rd mkinitcpio<br />
<br />
Consider also clearing out your pacman cache (do a 'man pacman', and search for 'clean' for more info; '''''*Note''' that this is *not* a command that you'll only have to do just once - as packages accumulate, you'll have to keep doing this if you want to clear out the space from the pacman cache'')<br />
pacman -Scc<br />
<br />
== Execute a 32bit apps from a 64bit env ==<br />
<br />
<br />
=== Download and install dchroot ===<br />
<br />
Download "dchroot" from the AUR (http://aur.archlinux.org/packages.php) and install it on your 64bit system ('''outside the chroot'''):<br />
<br />
tar xvf dchroot_0.12.1.tar.gz<br />
cd dchroot-0.12.1<br />
./configure --prefix=/opt/dchroot<br />
make<br />
make install<br />
<br />
In my case, there has been an error at the end of the "make install". But everything works anyway ... so I haven't care about it.<br />
<br />
=== Configuration ===<br />
<br />
Now, we must edit the configuration file (/etc/dchroot.conf) and add this line:<br />
<br />
arch32 /opt/arch32<br />
<br />
<br />
=== Execute 32bit apps ===<br />
<br />
Finally, to use your 32bit apps:<br />
<br />
/opt/dchroot/bin/dchroot -d "opera -notrayicon"<br />
/opt/dchroot/bin/dchroot -d acroread<br />
<br />
It will launch Opera, without the systray icon, from your 32bit environment. The second example is for Acrobat Reader, where there is no "" since we don't need to add switches.</div>Jfhttps://wiki.archlinux.org/index.php?title=Install_bundled_32-bit_system_in_64-bit_system&diff=15906Install bundled 32-bit system in 64-bit system2006-10-20T07:03:29Z<p>Jf: /* Configure the new installed system */</p>
<hr />
<div>[[Category:Arch64]]<br />
Arch64 Install bundled 32bit system:<br />
<br />
Note that this script don't try to change anything out of the 32bit directory. I'm no expert so there is maybe errors or some "bad things".<br />
<br />
This howto is just for those who really need to run 32 bit apps and to install it easyly. As Arch64 try to be a pure 64 bit distro, it seems the devs won't provide any compatibility libs, this system seems to me the cleaner.<br />
<br />
<br />
== Install the base 32 bit system ==<br />
We create the repository.<br />
mkdir /opt/arch32<br />
vim /etc/pacman.d/current<br />
Here you'll have to replace in the first address x86_64 by i686.<br />
'''Don't forget to revert it at the end of the howto or your system can be screwed when you install something.'''<br />
<br />
You might also want to create a separate pacman.log LogFile for your 32-bit chroot environment (in order to be able to track the "32root" pacman/package changes properly/not mess up your current 64-bit pacman.log). '''Again, don't forget to change this back too at the end of this howto unless you want to mess up your pacman logging.'''<br />
<br />
vim /etc/pacman.conf<br />
<br />
Change the 'LogFile' directive accordingly.<br />
<br />
Now proceed to sync up pacman:<br />
<br />
pacman --root /opt/arch32 -Sy<br />
<br />
Now we can install the base packages:<br />
<br />
pacman --root /opt/arch32 -S autoconf automake bash bin86 binutils bison bzip2 coreutils cpio cracklib db dcron dhcpcd dialog diffutils e2fsprogs ed file filesystem findutils flex gawk gcc gdbm gen-init-cpio gettext glibc grep groff grub gzip initscripts iputils jfsutils kbd kernel-headers klibc klibc-extras klibc-udev less libpcap libtool libusb licenses lilo logrotate lshwd m4 mailx make man man-pages mkinitcpio mkinitrd mktemp module-init-tools nano ncurses net-tools openssl pacman pam patch pciutils pcmciautils pcre perl popt procinfo procps psmisc raidtools readline reiserfsprogs rp-pppoe sed shadow slocate sysfsutils syslog-ng sysvinit tar tcp_wrappers udev usbutils util-linux vim wget which wireless_tools xfsprogs zlib<br />
<br />
'''You can now revert your pacman.d/current file to x86_64. Also change back your 'LogFile' in /etc/pacman.conf'''.<br />
<br />
== /etc/rc.d/arch32 rc script ==<br />
<br />
To initiate the 32bit environment at startup, create a script in /etc/rc.d/ called "arch32":<br />
<br />
#!/bin/bash<br />
<br />
. /etc/rc.conf<br />
. /etc/rc.d/functions<br />
<br />
case $1 in<br />
start)<br />
stat_busy "Starting Arch32 chroot"<br />
mount --bind /proc /opt/arch32/proc<br />
mount --bind /proc/bus/usb /opt/arch32/proc/bus/usb<br />
mount --bind /dev /opt/arch32/dev<br />
mount --bind /dev/pts /opt/arch32/dev/pts<br />
mount --bind /dev/shm /opt/arch32/dev/shm<br />
mount --bind /sys /opt/arch32/sys<br />
mount --bind /tmp /opt/arch32/tmp<br />
mount --bind /home /opt/arch32/home<br />
add_daemon arch32<br />
stat_done<br />
;;<br />
stop)<br />
stat_busy "Stopping Arch32 chroot"<br />
umount /opt/arch32/proc/bus/usb<br />
umount /opt/arch32/proc<br />
umount /opt/arch32/dev/pts<br />
umount /opt/arch32/dev/shm<br />
umount /opt/arch32/dev<br />
umount /opt/arch32/sys<br />
umount /opt/arch32/tmp<br />
umount /opt/arch32/home<br />
rm_daemon arch32<br />
stat_done<br />
;;<br />
restart)<br />
$0 stop<br />
sleep 1<br />
$0 start<br />
;;<br />
*)<br />
echo "usage: $0 {start|stop|restart}"<br />
esac<br />
exit 0<br />
<br />
Then allow execution of this script:<br />
<br />
chmod +x /etc/rc.d/arch32<br />
<br />
And add it to "/etc/rc.conf":<br />
<br />
DAEMONS=(syslog-ng network netfs crond arch32 gdm)<br />
<br />
== Configure the new installed system ==<br />
First copy some meanfull config files<br />
<br />
cd /opt/arch32<br />
<br />
cp /etc/passwd* etc<br />
cp /etc/shadow* etc<br />
cp /etc/group* etc<br />
<br />
cp /etc/rc.conf etc<br />
cp /etc/resolv.conf etc<br />
<br />
cp /etc/locale.gen etc<br />
cp /etc/profile.d/locale.sh etc/profile.d<br />
<br />
Now chroot in your new system<br />
/etc/rc.d/arch32 start<br />
xhost +<br />
chroot /opt/arch32<br />
<br />
Fix some future locales issues<br />
/usr/sbin/locale-gen<br />
pacman -Sy ttf-bitstream-vera ttf-ms-fonts<br />
Note that you can install any other font. You just need one or yours apps won't display any text.<br />
<br />
Also, keep in mind that the "/etc/pacman.conf" file from the 32bit environment is the default one. So if you want to use "community" repositories, don't forget to edit it !<br />
<br />
Now you can install any apps you need (*note for firefox with the nonfree flash plugin, you will need to install libxmu as well! Apparently this dependency has not been taken care of yet; see [http://bugs.archlinux.org/task/5583 Flyspray]).<br />
<br />
pacman -S acroread opera<br />
<br />
pacman -Scc [??]<br />
<br />
pacman -S mozilla-firefox<br />
pacman -S libxmu flashplugin<br />
pacman -S mplayer-plugin<br />
<br />
You can also clean up the pkgs to win back some space. Some cleanups that can be done: (from your "32root" environment)<br />
rmdir /home/ftp<br />
<br />
pacman -Rd kernel-headers<br />
<br />
== Execute a 32bit apps from a 64bit env ==<br />
<br />
<br />
=== Download and install dchroot ===<br />
<br />
Download "dchroot" from the AUR (http://aur.archlinux.org/packages.php) and install it on your 64bit system ('''outside the chroot'''):<br />
<br />
tar xvf dchroot_0.12.1.tar.gz<br />
cd dchroot-0.12.1<br />
./configure --prefix=/opt/dchroot<br />
make<br />
make install<br />
<br />
In my case, there has been an error at the end of the "make install". But everything works anyway ... so I haven't care about it.<br />
<br />
=== Configuration ===<br />
<br />
Now, we must edit the configuration file (/etc/dchroot.conf) and add this line:<br />
<br />
arch32 /opt/arch32<br />
<br />
<br />
=== Execute 32bit apps ===<br />
<br />
Finally, to use your 32bit apps:<br />
<br />
/opt/dchroot/bin/dchroot -d "opera -notrayicon"<br />
/opt/dchroot/bin/dchroot -d acroread<br />
<br />
It will launch Opera, without the systray icon, from your 32bit environment. The second example is for Acrobat Reader, where there is no "" since we don't need to add switches.</div>Jfhttps://wiki.archlinux.org/index.php?title=Install_bundled_32-bit_system_in_64-bit_system&diff=15905Install bundled 32-bit system in 64-bit system2006-10-20T06:42:14Z<p>Jf: /* Configure the new installed system */ rearranged the commands a bit so that they are more logical</p>
<hr />
<div>[[Category:Arch64]]<br />
Arch64 Install bundled 32bit system:<br />
<br />
Note that this script don't try to change anything out of the 32bit directory. I'm no expert so there is maybe errors or some "bad things".<br />
<br />
This howto is just for those who really need to run 32 bit apps and to install it easyly. As Arch64 try to be a pure 64 bit distro, it seems the devs won't provide any compatibility libs, this system seems to me the cleaner.<br />
<br />
<br />
== Install the base 32 bit system ==<br />
We create the repository.<br />
mkdir /opt/arch32<br />
vim /etc/pacman.d/current<br />
Here you'll have to replace in the first address x86_64 by i686.<br />
'''Don't forget to revert it at the end of the howto or your system can be screwed when you install something.'''<br />
<br />
You might also want to create a separate pacman.log LogFile for your 32-bit chroot environment (in order to be able to track the "32root" pacman/package changes properly/not mess up your current 64-bit pacman.log). '''Again, don't forget to change this back too at the end of this howto unless you want to mess up your pacman logging.'''<br />
<br />
vim /etc/pacman.conf<br />
<br />
Change the 'LogFile' directive accordingly.<br />
<br />
Now proceed to sync up pacman:<br />
<br />
pacman --root /opt/arch32 -Sy<br />
<br />
Now we can install the base packages:<br />
<br />
pacman --root /opt/arch32 -S autoconf automake bash bin86 binutils bison bzip2 coreutils cpio cracklib db dcron dhcpcd dialog diffutils e2fsprogs ed file filesystem findutils flex gawk gcc gdbm gen-init-cpio gettext glibc grep groff grub gzip initscripts iputils jfsutils kbd kernel-headers klibc klibc-extras klibc-udev less libpcap libtool libusb licenses lilo logrotate lshwd m4 mailx make man man-pages mkinitcpio mkinitrd mktemp module-init-tools nano ncurses net-tools openssl pacman pam patch pciutils pcmciautils pcre perl popt procinfo procps psmisc raidtools readline reiserfsprogs rp-pppoe sed shadow slocate sysfsutils syslog-ng sysvinit tar tcp_wrappers udev usbutils util-linux vim wget which wireless_tools xfsprogs zlib<br />
<br />
'''You can now revert your pacman.d/current file to x86_64. Also change back your 'LogFile' in /etc/pacman.conf'''.<br />
<br />
== /etc/rc.d/arch32 rc script ==<br />
<br />
To initiate the 32bit environment at startup, create a script in /etc/rc.d/ called "arch32":<br />
<br />
#!/bin/bash<br />
<br />
. /etc/rc.conf<br />
. /etc/rc.d/functions<br />
<br />
case $1 in<br />
start)<br />
stat_busy "Starting Arch32 chroot"<br />
mount --bind /proc /opt/arch32/proc<br />
mount --bind /proc/bus/usb /opt/arch32/proc/bus/usb<br />
mount --bind /dev /opt/arch32/dev<br />
mount --bind /dev/pts /opt/arch32/dev/pts<br />
mount --bind /dev/shm /opt/arch32/dev/shm<br />
mount --bind /sys /opt/arch32/sys<br />
mount --bind /tmp /opt/arch32/tmp<br />
mount --bind /home /opt/arch32/home<br />
add_daemon arch32<br />
stat_done<br />
;;<br />
stop)<br />
stat_busy "Stopping Arch32 chroot"<br />
umount /opt/arch32/proc/bus/usb<br />
umount /opt/arch32/proc<br />
umount /opt/arch32/dev/pts<br />
umount /opt/arch32/dev/shm<br />
umount /opt/arch32/dev<br />
umount /opt/arch32/sys<br />
umount /opt/arch32/tmp<br />
umount /opt/arch32/home<br />
rm_daemon arch32<br />
stat_done<br />
;;<br />
restart)<br />
$0 stop<br />
sleep 1<br />
$0 start<br />
;;<br />
*)<br />
echo "usage: $0 {start|stop|restart}"<br />
esac<br />
exit 0<br />
<br />
Then allow execution of this script:<br />
<br />
chmod +x /etc/rc.d/arch32<br />
<br />
And add it to "/etc/rc.conf":<br />
<br />
DAEMONS=(syslog-ng network netfs crond arch32 gdm)<br />
<br />
== Configure the new installed system ==<br />
First copy some meanfull config files<br />
<br />
cd /opt/arch32<br />
<br />
cp /etc/passwd* etc<br />
cp /etc/shadow* etc<br />
cp /etc/group* etc<br />
<br />
cp /etc/rc.conf etc<br />
cp /etc/resolv.conf etc<br />
<br />
cp /etc/locale.gen etc<br />
cp /etc/profile.d/locale.sh etc/profile.d<br />
<br />
Now chroot in your new system<br />
/etc/rc.d/arch32 start<br />
xhost +<br />
chroot /opt/arch32<br />
<br />
Fix some future locales issues<br />
/usr/sbin/locale-gen<br />
pacman -Sy ttf-bitstream-vera ttf-ms-fonts<br />
Note that you can install any other font. You just need one or yours apps won't display any text.<br />
<br />
Also, keep in mind that the "/etc/pacman.conf" file from the 32bit environment is the default one. So if you want to use "community" repositories, don't forget to edit it !<br />
<br />
Now you can install any apps you need (*note for firefox with the nonfree flash plugin, you will need to install libxmu as well! Apparently this dependency has not been taken care of yet), and then clean the pkgs to win some place.<br />
pacman -S acroread opera<br />
pacman -Scc<br />
<br />
Some cleanups that can be done:<br />
rmdir /opt/arch32/home/ftp<br />
<br />
== Execute a 32bit apps from a 64bit env ==<br />
<br />
<br />
=== Download and install dchroot ===<br />
<br />
Download "dchroot" from the AUR (http://aur.archlinux.org/packages.php) and install it on your 64bit system ('''outside the chroot'''):<br />
<br />
tar xvf dchroot_0.12.1.tar.gz<br />
cd dchroot-0.12.1<br />
./configure --prefix=/opt/dchroot<br />
make<br />
make install<br />
<br />
In my case, there has been an error at the end of the "make install". But everything works anyway ... so I haven't care about it.<br />
<br />
=== Configuration ===<br />
<br />
Now, we must edit the configuration file (/etc/dchroot.conf) and add this line:<br />
<br />
arch32 /opt/arch32<br />
<br />
<br />
=== Execute 32bit apps ===<br />
<br />
Finally, to use your 32bit apps:<br />
<br />
/opt/dchroot/bin/dchroot -d "opera -notrayicon"<br />
/opt/dchroot/bin/dchroot -d acroread<br />
<br />
It will launch Opera, without the systray icon, from your 32bit environment. The second example is for Acrobat Reader, where there is no "" since we don't need to add switches.</div>Jfhttps://wiki.archlinux.org/index.php?title=Install_bundled_32-bit_system_in_64-bit_system&diff=15904Install bundled 32-bit system in 64-bit system2006-10-20T06:25:22Z<p>Jf: /* Install the base 32 bit system */</p>
<hr />
<div>[[Category:Arch64]]<br />
Arch64 Install bundled 32bit system:<br />
<br />
Note that this script don't try to change anything out of the 32bit directory. I'm no expert so there is maybe errors or some "bad things".<br />
<br />
This howto is just for those who really need to run 32 bit apps and to install it easyly. As Arch64 try to be a pure 64 bit distro, it seems the devs won't provide any compatibility libs, this system seems to me the cleaner.<br />
<br />
<br />
== Install the base 32 bit system ==<br />
We create the repository.<br />
mkdir /opt/arch32<br />
vim /etc/pacman.d/current<br />
Here you'll have to replace in the first address x86_64 by i686.<br />
'''Don't forget to revert it at the end of the howto or your system can be screwed when you install something.'''<br />
<br />
You might also want to create a separate pacman.log LogFile for your 32-bit chroot environment (in order to be able to track the "32root" pacman/package changes properly/not mess up your current 64-bit pacman.log). '''Again, don't forget to change this back too at the end of this howto unless you want to mess up your pacman logging.'''<br />
<br />
vim /etc/pacman.conf<br />
<br />
Change the 'LogFile' directive accordingly.<br />
<br />
Now proceed to sync up pacman:<br />
<br />
pacman --root /opt/arch32 -Sy<br />
<br />
Now we can install the base packages:<br />
<br />
pacman --root /opt/arch32 -S autoconf automake bash bin86 binutils bison bzip2 coreutils cpio cracklib db dcron dhcpcd dialog diffutils e2fsprogs ed file filesystem findutils flex gawk gcc gdbm gen-init-cpio gettext glibc grep groff grub gzip initscripts iputils jfsutils kbd kernel-headers klibc klibc-extras klibc-udev less libpcap libtool libusb licenses lilo logrotate lshwd m4 mailx make man man-pages mkinitcpio mkinitrd mktemp module-init-tools nano ncurses net-tools openssl pacman pam patch pciutils pcmciautils pcre perl popt procinfo procps psmisc raidtools readline reiserfsprogs rp-pppoe sed shadow slocate sysfsutils syslog-ng sysvinit tar tcp_wrappers udev usbutils util-linux vim wget which wireless_tools xfsprogs zlib<br />
<br />
'''You can now revert your pacman.d/current file to x86_64. Also change back your 'LogFile' in /etc/pacman.conf'''.<br />
<br />
== /etc/rc.d/arch32 rc script ==<br />
<br />
To initiate the 32bit environment at startup, create a script in /etc/rc.d/ called "arch32":<br />
<br />
#!/bin/bash<br />
<br />
. /etc/rc.conf<br />
. /etc/rc.d/functions<br />
<br />
case $1 in<br />
start)<br />
stat_busy "Starting Arch32 chroot"<br />
mount --bind /proc /opt/arch32/proc<br />
mount --bind /proc/bus/usb /opt/arch32/proc/bus/usb<br />
mount --bind /dev /opt/arch32/dev<br />
mount --bind /dev/pts /opt/arch32/dev/pts<br />
mount --bind /dev/shm /opt/arch32/dev/shm<br />
mount --bind /sys /opt/arch32/sys<br />
mount --bind /tmp /opt/arch32/tmp<br />
mount --bind /home /opt/arch32/home<br />
add_daemon arch32<br />
stat_done<br />
;;<br />
stop)<br />
stat_busy "Stopping Arch32 chroot"<br />
umount /opt/arch32/proc/bus/usb<br />
umount /opt/arch32/proc<br />
umount /opt/arch32/dev/pts<br />
umount /opt/arch32/dev/shm<br />
umount /opt/arch32/dev<br />
umount /opt/arch32/sys<br />
umount /opt/arch32/tmp<br />
umount /opt/arch32/home<br />
rm_daemon arch32<br />
stat_done<br />
;;<br />
restart)<br />
$0 stop<br />
sleep 1<br />
$0 start<br />
;;<br />
*)<br />
echo "usage: $0 {start|stop|restart}"<br />
esac<br />
exit 0<br />
<br />
Then allow execution of this script:<br />
<br />
chmod +x /etc/rc.d/arch32<br />
<br />
And add it to "/etc/rc.conf":<br />
<br />
DAEMONS=(syslog-ng network netfs crond arch32 gdm)<br />
<br />
== Configure the new installed system ==<br />
First copy some meanfull config files<br />
rmdir /opt/arch32/home/ftp<br />
/etc/rc.d/arch32 start<br />
cp /etc/passwd* /opt/arch32/etc<br />
cp /etc/shadow* /opt/arch32/etc<br />
cp /etc/group* /opt/arch32/etc<br />
cp /etc/locale.gen /opt/arch32/etc/<br />
cp /etc/rc.conf /opt/arch32/etc/<br />
cp /etc/resolv.conf /opt/arch32/etc<br />
cp /etc/profile.d/locale.sh /opt/arch32/etc/profile.d<br />
<br />
Now chroot in your new system<br />
xhost +<br />
chroot /opt/arch32<br />
<br />
Fix some future locales issues<br />
/usr/sbin/locale-gen<br />
pacman -Sy ttf-bitstream-vera ttf-ms-fonts<br />
Note that you can install any other font. You just need one or yours apps won't display any text.<br />
<br />
Also, keep in mind that the "/etc/pacman.conf" file from the 32bit environment is the default one. So if you want to use "community" repositories, don't forget to edit it !<br />
<br />
Now you can install any apps you need (*note for firefox with the nonfree flash plugin, you will need to install libxmu as well! Apparently this dependency has not been taken care of yet), and then clean the pkgs to win some place.<br />
pacman -S acroread opera<br />
pacman -Scc<br />
<br />
<br />
== Execute a 32bit apps from a 64bit env ==<br />
<br />
<br />
=== Download and install dchroot ===<br />
<br />
Download "dchroot" from the AUR (http://aur.archlinux.org/packages.php) and install it on your 64bit system ('''outside the chroot'''):<br />
<br />
tar xvf dchroot_0.12.1.tar.gz<br />
cd dchroot-0.12.1<br />
./configure --prefix=/opt/dchroot<br />
make<br />
make install<br />
<br />
In my case, there has been an error at the end of the "make install". But everything works anyway ... so I haven't care about it.<br />
<br />
=== Configuration ===<br />
<br />
Now, we must edit the configuration file (/etc/dchroot.conf) and add this line:<br />
<br />
arch32 /opt/arch32<br />
<br />
<br />
=== Execute 32bit apps ===<br />
<br />
Finally, to use your 32bit apps:<br />
<br />
/opt/dchroot/bin/dchroot -d "opera -notrayicon"<br />
/opt/dchroot/bin/dchroot -d acroread<br />
<br />
It will launch Opera, without the systray icon, from your 32bit environment. The second example is for Acrobat Reader, where there is no "" since we don't need to add switches.</div>Jfhttps://wiki.archlinux.org/index.php?title=Install_bundled_32-bit_system_in_64-bit_system&diff=15903Install bundled 32-bit system in 64-bit system2006-10-20T06:24:09Z<p>Jf: /* Install the base 32 bit system */</p>
<hr />
<div>[[Category:Arch64]]<br />
Arch64 Install bundled 32bit system:<br />
<br />
Note that this script don't try to change anything out of the 32bit directory. I'm no expert so there is maybe errors or some "bad things".<br />
<br />
This howto is just for those who really need to run 32 bit apps and to install it easyly. As Arch64 try to be a pure 64 bit distro, it seems the devs won't provide any compatibility libs, this system seems to me the cleaner.<br />
<br />
<br />
== Install the base 32 bit system ==<br />
We create the repository.<br />
mkdir /opt/arch32<br />
vim /etc/pacman.d/current<br />
Here you'll have to replace in the first address x86_64 by i686.<br />
'''Don't forget to revert it at the end of the howto or your system can be screwed when you install something.'''<br />
<br />
You might also want to create a separate pacman.log LogFile for your 32-bit chroot environment (in order to be able to track the "32root" pacman changes properly/not mess up your current 64-bit pacman.log). '''Again, don't forget to change this back too at the end of this howto unless you want to mess up your pacman logging.'''<br />
<br />
vim /etc/pacman.conf<br />
<br />
Change the 'LogFile' directive accordingly.<br />
<br />
Now proceed to sync up pacman:<br />
<br />
pacman --root /opt/arch32 -Sy<br />
<br />
Now we can install the base packages:<br />
<br />
pacman --root /opt/arch32 -S autoconf automake bash bin86 binutils bison bzip2 coreutils cpio cracklib db dcron dhcpcd dialog diffutils e2fsprogs ed file filesystem findutils flex gawk gcc gdbm gen-init-cpio gettext glibc grep groff grub gzip initscripts iputils jfsutils kbd kernel-headers klibc klibc-extras klibc-udev less libpcap libtool libusb licenses lilo logrotate lshwd m4 mailx make man man-pages mkinitcpio mkinitrd mktemp module-init-tools nano ncurses net-tools openssl pacman pam patch pciutils pcmciautils pcre perl popt procinfo procps psmisc raidtools readline reiserfsprogs rp-pppoe sed shadow slocate sysfsutils syslog-ng sysvinit tar tcp_wrappers udev usbutils util-linux vim wget which wireless_tools xfsprogs zlib<br />
<br />
'''You can now revert your pacman.d/current file to x86_64. Also change back your 'LogFile' in /etc/pacman.conf'''.<br />
<br />
== /etc/rc.d/arch32 rc script ==<br />
<br />
To initiate the 32bit environment at startup, create a script in /etc/rc.d/ called "arch32":<br />
<br />
#!/bin/bash<br />
<br />
. /etc/rc.conf<br />
. /etc/rc.d/functions<br />
<br />
case $1 in<br />
start)<br />
stat_busy "Starting Arch32 chroot"<br />
mount --bind /proc /opt/arch32/proc<br />
mount --bind /proc/bus/usb /opt/arch32/proc/bus/usb<br />
mount --bind /dev /opt/arch32/dev<br />
mount --bind /dev/pts /opt/arch32/dev/pts<br />
mount --bind /dev/shm /opt/arch32/dev/shm<br />
mount --bind /sys /opt/arch32/sys<br />
mount --bind /tmp /opt/arch32/tmp<br />
mount --bind /home /opt/arch32/home<br />
add_daemon arch32<br />
stat_done<br />
;;<br />
stop)<br />
stat_busy "Stopping Arch32 chroot"<br />
umount /opt/arch32/proc/bus/usb<br />
umount /opt/arch32/proc<br />
umount /opt/arch32/dev/pts<br />
umount /opt/arch32/dev/shm<br />
umount /opt/arch32/dev<br />
umount /opt/arch32/sys<br />
umount /opt/arch32/tmp<br />
umount /opt/arch32/home<br />
rm_daemon arch32<br />
stat_done<br />
;;<br />
restart)<br />
$0 stop<br />
sleep 1<br />
$0 start<br />
;;<br />
*)<br />
echo "usage: $0 {start|stop|restart}"<br />
esac<br />
exit 0<br />
<br />
Then allow execution of this script:<br />
<br />
chmod +x /etc/rc.d/arch32<br />
<br />
And add it to "/etc/rc.conf":<br />
<br />
DAEMONS=(syslog-ng network netfs crond arch32 gdm)<br />
<br />
== Configure the new installed system ==<br />
First copy some meanfull config files<br />
rmdir /opt/arch32/home/ftp<br />
/etc/rc.d/arch32 start<br />
cp /etc/passwd* /opt/arch32/etc<br />
cp /etc/shadow* /opt/arch32/etc<br />
cp /etc/group* /opt/arch32/etc<br />
cp /etc/locale.gen /opt/arch32/etc/<br />
cp /etc/rc.conf /opt/arch32/etc/<br />
cp /etc/resolv.conf /opt/arch32/etc<br />
cp /etc/profile.d/locale.sh /opt/arch32/etc/profile.d<br />
<br />
Now chroot in your new system<br />
xhost +<br />
chroot /opt/arch32<br />
<br />
Fix some future locales issues<br />
/usr/sbin/locale-gen<br />
pacman -Sy ttf-bitstream-vera ttf-ms-fonts<br />
Note that you can install any other font. You just need one or yours apps won't display any text.<br />
<br />
Also, keep in mind that the "/etc/pacman.conf" file from the 32bit environment is the default one. So if you want to use "community" repositories, don't forget to edit it !<br />
<br />
Now you can install any apps you need (*note for firefox with the nonfree flash plugin, you will need to install libxmu as well! Apparently this dependency has not been taken care of yet), and then clean the pkgs to win some place.<br />
pacman -S acroread opera<br />
pacman -Scc<br />
<br />
<br />
== Execute a 32bit apps from a 64bit env ==<br />
<br />
<br />
=== Download and install dchroot ===<br />
<br />
Download "dchroot" from the AUR (http://aur.archlinux.org/packages.php) and install it on your 64bit system ('''outside the chroot'''):<br />
<br />
tar xvf dchroot_0.12.1.tar.gz<br />
cd dchroot-0.12.1<br />
./configure --prefix=/opt/dchroot<br />
make<br />
make install<br />
<br />
In my case, there has been an error at the end of the "make install". But everything works anyway ... so I haven't care about it.<br />
<br />
=== Configuration ===<br />
<br />
Now, we must edit the configuration file (/etc/dchroot.conf) and add this line:<br />
<br />
arch32 /opt/arch32<br />
<br />
<br />
=== Execute 32bit apps ===<br />
<br />
Finally, to use your 32bit apps:<br />
<br />
/opt/dchroot/bin/dchroot -d "opera -notrayicon"<br />
/opt/dchroot/bin/dchroot -d acroread<br />
<br />
It will launch Opera, without the systray icon, from your 32bit environment. The second example is for Acrobat Reader, where there is no "" since we don't need to add switches.</div>Jfhttps://wiki.archlinux.org/index.php?title=Install_bundled_32-bit_system_in_64-bit_system&diff=15879Install bundled 32-bit system in 64-bit system2006-10-19T17:45:49Z<p>Jf: /* arch32 rc script */ minor edit - formatting corrections (so that the entire rc script appears in one single "code box" instead of 2), and improvements.</p>
<hr />
<div>[[Category:Arch64]]<br />
Arch64 Install bundled 32bit system:<br />
<br />
Note that this script don't try to change anything out of the 32bit directory. I'm no expert so there is maybe errors or some "bad things".<br />
<br />
This howto is just for those who really need to run 32 bit apps and to install it easyly. As Arch64 try to be a pure 64 bit distro, it seems the devs won't provide any compatibility libs, this system seems to me the cleaner.<br />
<br />
<br />
== Install the base 32 bit system ==<br />
We create the repository.<br />
mkdir /opt/arch32<br />
vim /etc/pacman.d/current<br />
Here you'll have to replace in the first address x86_64 by i686.<br />
'''Don't forget to revert it a the end of the howto or your system can be screwed when you'll install something.'''<br />
<br />
pacman --root /opt/arch32 -Sy<br />
<br />
Now we can install the base packages<br />
pacman --root /opt/arch32 -S autoconf automake bash bin86 binutils bison bzip2 coreutils cpio cracklib db dcron dhcpcd dialog diffutils e2fsprogs ed file filesystem findutils flex gawk gcc gdbm gen-init-cpio gettext glibc grep groff grub gzip initscripts iputils jfsutils kbd kernel-headers klibc klibc-extras klibc-udev less libpcap libtool libusb licenses lilo logrotate lshwd m4 mailx make man man-pages mkinitcpio mkinitrd mktemp module-init-tools nano ncurses net-tools openssl pacman pam patch pciutils pcmciautils pcre perl popt procinfo procps psmisc raidtools readline reiserfsprogs rp-pppoe sed shadow slocate sysfsutils syslog-ng sysvinit tar tcp_wrappers udev usbutils util-linux vim wget which wireless_tools xfsprogs zlib<br />
<br />
'''You can now revert you pacman.d/current file to x86_64'''<br />
<br />
== /etc/rc.d/arch32 rc script ==<br />
<br />
To initiate the 32bit environment at startup, create a script in /etc/rc.d/ called "arch32":<br />
<br />
#!/bin/bash<br />
<br />
. /etc/rc.conf<br />
. /etc/rc.d/functions<br />
<br />
case $1 in<br />
start)<br />
stat_busy "Starting Arch32 chroot"<br />
mount --bind /proc /opt/arch32/proc<br />
mount --bind /proc/bus/usb /opt/arch32/proc/bus/usb<br />
mount --bind /dev /opt/arch32/dev<br />
mount --bind /dev/pts /opt/arch32/dev/pts<br />
mount --bind /dev/shm /opt/arch32/dev/shm<br />
mount --bind /sys /opt/arch32/sys<br />
mount --bind /tmp /opt/arch32/tmp<br />
mount --bind /home /opt/arch32/home<br />
add_daemon arch32<br />
stat_done<br />
;;<br />
stop)<br />
stat_busy "Stopping Arch32 chroot"<br />
umount /opt/arch32/proc/bus/usb<br />
umount /opt/arch32/proc<br />
umount /opt/arch32/dev/pts<br />
umount /opt/arch32/dev/shm<br />
umount /opt/arch32/dev<br />
umount /opt/arch32/sys<br />
umount /opt/arch32/tmp<br />
umount /opt/arch32/home<br />
rm_daemon arch32<br />
stat_done<br />
;;<br />
restart)<br />
$0 stop<br />
sleep 1<br />
$0 start<br />
;;<br />
*)<br />
echo "usage: $0 {start|stop|restart}"<br />
esac<br />
exit 0<br />
<br />
Then allow execution of this script:<br />
<br />
chmod +x /etc/rc.d/arch32<br />
<br />
And add it to "/etc/rc.conf":<br />
<br />
DAEMONS=(syslog-ng network netfs crond arch32 gdm)<br />
<br />
== Configure the new installed system ==<br />
First copy some meanfull config files<br />
rmdir /opt/arch32/home/ftp<br />
/etc/rc.d/arch32 start<br />
cp /etc/passwd* /opt/arch32/etc<br />
cp /etc/shadow* /opt/arch32/etc<br />
cp /etc/group* /opt/arch32/etc<br />
cp /etc/locale.gen /opt/arch32/etc/<br />
cp /etc/rc.conf /opt/arch32/etc/<br />
cp /etc/resolv.conf /opt/arch32/etc<br />
cp /etc/profile.d/locale.sh /opt/arch32/etc/profile.d<br />
<br />
Now chroot in your new system<br />
xhost +<br />
chroot /opt/arch32<br />
<br />
Fix some future locales issues<br />
/usr/sbin/locale-gen<br />
pacman -Sy ttf-bitstream-vera ttf-ms-fonts<br />
Note that you can install any other font. You just need one or yours apps won't display any text.<br />
<br />
Also, keep in mind that the "/etc/pacman.conf" file from the 32bit environment is the default one. So if you want to use "community" repositories, don't forget to edit it !<br />
<br />
Now you can install any apps you need (*note for firefox with the nonfree flash plugin, you will need to install libxmu as well! Apparently this dependency has not been taken care of yet), and then clean the pkgs to win some place.<br />
pacman -S acroread opera<br />
pacman -Scc<br />
<br />
<br />
== Execute a 32bit apps from a 64bit env ==<br />
<br />
<br />
=== Download and install dchroot ===<br />
<br />
Download "dchroot" from the AUR (http://aur.archlinux.org/packages.php) and install it on your 64bit system ('''outside the chroot'''):<br />
<br />
tar xvf dchroot_0.12.1.tar.gz<br />
cd dchroot-0.12.1<br />
./configure --prefix=/opt/dchroot<br />
make<br />
make install<br />
<br />
In my case, there has been an error at the end of the "make install". But everything works anyway ... so I haven't care about it.<br />
<br />
=== Configuration ===<br />
<br />
Now, we must edit the configuration file (/etc/dchroot.conf) and add this line:<br />
<br />
arch32 /opt/arch32<br />
<br />
<br />
=== Execute 32bit apps ===<br />
<br />
Finally, to use your 32bit apps:<br />
<br />
/opt/dchroot/bin/dchroot -d "opera -notrayicon"<br />
/opt/dchroot/bin/dchroot -d acroread<br />
<br />
It will launch Opera, without the systray icon, from your 32bit environment. The second example is for Acrobat Reader, where there is no "" since we don't need to add switches.</div>Jfhttps://wiki.archlinux.org/index.php?title=Install_bundled_32-bit_system_in_64-bit_system&diff=15678Install bundled 32-bit system in 64-bit system2006-10-13T18:45:39Z<p>Jf: /* Configure the new installed system */</p>
<hr />
<div>[[Category:Arch64]]<br />
Arch64 Install bundled 32bit system:<br />
<br />
Note that this script don't try to change anything out of the 32bit directory. I'm no expert so there is maybe errors or some "bad things".<br />
<br />
This howto is just for those who really need to run 32 bit apps and to install it easyly. As Arch64 try to be a pure 64 bit distro, it seems the devs won't provide any compatibility libs, this system seems to me the cleaner.<br />
<br />
<br />
== Install the base 32 bit system ==<br />
We create the repository.<br />
mkdir /opt/arch32<br />
vim /etc/pacman.d/current<br />
Here you'll have to replace in the first address x86_64 by i686.<br />
'''Don't forget to revert it a the end of the howto or your system can be screwed when you'll install something.'''<br />
<br />
pacman --root /opt/arch32 -Sy<br />
<br />
Now we can install the base packages<br />
pacman --root /opt/arch32 -S autoconf automake bash bin86 binutils bison bzip2 coreutils cpio cracklib db dcron dhcpcd dialog diffutils e2fsprogs ed file filesystem findutils flex gawk gcc gdbm gen-init-cpio gettext glibc grep groff grub gzip initscripts iputils jfsutils kbd kernel-headers klibc klibc-extras klibc-udev less libpcap libtool libusb licenses lilo logrotate lshwd m4 mailx make man man-pages mkinitcpio mkinitrd mktemp module-init-tools nano ncurses net-tools openssl pacman pam patch pciutils pcmciautils pcre perl popt procinfo procps psmisc raidtools readline reiserfsprogs rp-pppoe sed shadow slocate sysfsutils syslog-ng sysvinit tar tcp_wrappers udev usbutils util-linux vim wget which wireless_tools xfsprogs zlib<br />
<br />
'''You can now revert you pacman.d/current file to x86_64'''<br />
<br />
== rc.arch32 script ==<br />
#!/bin/bash<br />
<br />
. /etc/rc.conf<br />
. /etc/rc.d/functions<br />
<br />
case $1 in<br />
start)<br />
stat_busy "Starting Arch32 chroot"<br />
mount --bind /proc /opt/arch32/proc<br />
mount --bind /proc/bus/usb /opt/arch32/proc/bus/usb<br />
mount --bind /dev /opt/arch32/dev<br />
mount --bind /dev/pts /opt/arch32/dev/pts<br />
mount --bind /dev/shm /opt/arch32/dev/shm<br />
mount --bind /sys /opt/arch32/sys<br />
mount --bind /tmp /opt/arch32/tmp<br />
mount --bind /home /opt/arch32/home<br />
add_daemon arch32<br />
stat_done<br />
;;<br />
stop)<br />
stat_busy "Stopping Arch32 chroot"<br />
umount /opt/arch32/proc/bus/usb<br />
umount /opt/arch32/proc<br />
umount /opt/arch32/dev/pts<br />
umount /opt/arch32/dev/shm<br />
umount /opt/arch32/dev<br />
umount /opt/arch32/sys<br />
umount /opt/arch32/tmp<br />
umount /opt/arch32/home<br />
rm_daemon arch32<br />
stat_done<br />
;;<br />
restart)<br />
$0 stop<br />
sleep 1<br />
$0 start<br />
;;<br />
*)<br />
echo "usage: $0 {start|stop|restart}"<br />
esac<br />
exit 0<br />
<br />
<br />
== Configure the new installed system ==<br />
First copy some meanfull config files<br />
rmdir /opt/arch32/home/ftp<br />
rc.arch32 start<br />
cp /etc/passwd* /opt/arch32/etc<br />
cp /etc/shadow* /opt/arch32/etc<br />
cp /etc/group* /opt/arch32/etc<br />
cp /etc/locale.gen /opt/arch32/etc/<br />
cp /etc/rc.conf /opt/arch32/etc/<br />
cp /etc/resolv.conf /opt/arch32/etc<br />
cp /etc/profile.d/locale.sh /opt/arch32/etc/profile.d<br />
<br />
Now chroot in your new system<br />
xhost +<br />
chroot /opt/arch32<br />
<br />
Fix some future locales issues<br />
/usr/sbin/locale-gen<br />
pacman -S ttf-bitstream-vera<br />
Note that you can install any other font. You just need one or yours apps won't display any text.<br />
<br />
Now you can install any apps you need (*note for firefox with the nonfree flash plugin, you will need to install libxmu as well! Apparently this dependency has not been taken care of yet), and then clean the pkgs to win some place.<br />
pacman -S acroread<br />
pacman -Scc<br />
<br />
== Use the chroot ==<br />
Run rc.arch32 at every bootup<br />
<br />
xhost +<br />
chroot /opt/arch32<br />
su username<br />
<br />
I'm still searching for some exec script. Be free to browse through the forums, there are many hints.</div>Jfhttps://wiki.archlinux.org/index.php?title=Install_bundled_32-bit_system_in_64-bit_system&diff=15677Install bundled 32-bit system in 64-bit system2006-10-13T18:42:19Z<p>Jf: /* Configure the new installed system */ apparently (/etc/profile.d/)locale.sh is necessary as well</p>
<hr />
<div>[[Category:Arch64]]<br />
Arch64 Install bundled 32bit system:<br />
<br />
Note that this script don't try to change anything out of the 32bit directory. I'm no expert so there is maybe errors or some "bad things".<br />
<br />
This howto is just for those who really need to run 32 bit apps and to install it easyly. As Arch64 try to be a pure 64 bit distro, it seems the devs won't provide any compatibility libs, this system seems to me the cleaner.<br />
<br />
<br />
== Install the base 32 bit system ==<br />
We create the repository.<br />
mkdir /opt/arch32<br />
vim /etc/pacman.d/current<br />
Here you'll have to replace in the first address x86_64 by i686.<br />
'''Don't forget to revert it a the end of the howto or your system can be screwed when you'll install something.'''<br />
<br />
pacman --root /opt/arch32 -Sy<br />
<br />
Now we can install the base packages<br />
pacman --root /opt/arch32 -S autoconf automake bash bin86 binutils bison bzip2 coreutils cpio cracklib db dcron dhcpcd dialog diffutils e2fsprogs ed file filesystem findutils flex gawk gcc gdbm gen-init-cpio gettext glibc grep groff grub gzip initscripts iputils jfsutils kbd kernel-headers klibc klibc-extras klibc-udev less libpcap libtool libusb licenses lilo logrotate lshwd m4 mailx make man man-pages mkinitcpio mkinitrd mktemp module-init-tools nano ncurses net-tools openssl pacman pam patch pciutils pcmciautils pcre perl popt procinfo procps psmisc raidtools readline reiserfsprogs rp-pppoe sed shadow slocate sysfsutils syslog-ng sysvinit tar tcp_wrappers udev usbutils util-linux vim wget which wireless_tools xfsprogs zlib<br />
<br />
'''You can now revert you pacman.d/current file to x86_64'''<br />
<br />
== rc.arch32 script ==<br />
#!/bin/bash<br />
<br />
. /etc/rc.conf<br />
. /etc/rc.d/functions<br />
<br />
case $1 in<br />
start)<br />
stat_busy "Starting Arch32 chroot"<br />
mount --bind /proc /opt/arch32/proc<br />
mount --bind /proc/bus/usb /opt/arch32/proc/bus/usb<br />
mount --bind /dev /opt/arch32/dev<br />
mount --bind /dev/pts /opt/arch32/dev/pts<br />
mount --bind /dev/shm /opt/arch32/dev/shm<br />
mount --bind /sys /opt/arch32/sys<br />
mount --bind /tmp /opt/arch32/tmp<br />
mount --bind /home /opt/arch32/home<br />
add_daemon arch32<br />
stat_done<br />
;;<br />
stop)<br />
stat_busy "Stopping Arch32 chroot"<br />
umount /opt/arch32/proc/bus/usb<br />
umount /opt/arch32/proc<br />
umount /opt/arch32/dev/pts<br />
umount /opt/arch32/dev/shm<br />
umount /opt/arch32/dev<br />
umount /opt/arch32/sys<br />
umount /opt/arch32/tmp<br />
umount /opt/arch32/home<br />
rm_daemon arch32<br />
stat_done<br />
;;<br />
restart)<br />
$0 stop<br />
sleep 1<br />
$0 start<br />
;;<br />
*)<br />
echo "usage: $0 {start|stop|restart}"<br />
esac<br />
exit 0<br />
<br />
<br />
== Configure the new installed system ==<br />
First copy some meanfull config files<br />
rmdir /opt/arch32/home/ftp<br />
rc.arch32 start<br />
cp /etc/passwd* /opt/arch32/etc<br />
cp /etc/shadow* /opt/arch32/etc<br />
cp /etc/group* /opt/arch32/etc<br />
cp /etc/locale.gen /opt/arch32/etc/<br />
cp /etc/rc.conf /opt/arch32/etc/<br />
cp /etc/resolv.conf /opt/arch32/etc<br />
cp /etc/profile.d/locale.sh /opt/arch32/etc/profile.d<br />
<br />
Now chroot in your new system<br />
xhost +<br />
chroot /opt/arch32<br />
<br />
Fix some future locales issues<br />
/usr/sbin/locale-gen<br />
pacman -S ttf-bitstream-vera<br />
Note that you can install any other font. You just need one or yours apps won't display any text.<br />
<br />
Now you can install any apps you need, and then clean the pkgs to win some place.<br />
pacman -S acroread<br />
pacman -Scc<br />
<br />
== Use the chroot ==<br />
Run rc.arch32 at every bootup<br />
<br />
xhost +<br />
chroot /opt/arch32<br />
su username<br />
<br />
I'm still searching for some exec script. Be free to browse through the forums, there are many hints.</div>Jfhttps://wiki.archlinux.org/index.php?title=Install_bundled_32-bit_system_in_64-bit_system&diff=15676Install bundled 32-bit system in 64-bit system2006-10-13T17:51:08Z<p>Jf: /* Configure the new installed system */ add in cp /etc/resolv.conf, and add to discussion about copying of {passwd,shadow,group}* as well</p>
<hr />
<div>[[Category:Arch64]]<br />
Arch64 Install bundled 32bit system:<br />
<br />
Note that this script don't try to change anything out of the 32bit directory. I'm no expert so there is maybe errors or some "bad things".<br />
<br />
This howto is just for those who really need to run 32 bit apps and to install it easyly. As Arch64 try to be a pure 64 bit distro, it seems the devs won't provide any compatibility libs, this system seems to me the cleaner.<br />
<br />
<br />
== Install the base 32 bit system ==<br />
We create the repository.<br />
mkdir /opt/arch32<br />
vim /etc/pacman.d/current<br />
Here you'll have to replace in the first address x86_64 by i686.<br />
'''Don't forget to revert it a the end of the howto or your system can be screwed when you'll install something.'''<br />
<br />
pacman --root /opt/arch32 -Sy<br />
<br />
Now we can install the base packages<br />
pacman --root /opt/arch32 -S autoconf automake bash bin86 binutils bison bzip2 coreutils cpio cracklib db dcron dhcpcd dialog diffutils e2fsprogs ed file filesystem findutils flex gawk gcc gdbm gen-init-cpio gettext glibc grep groff grub gzip initscripts iputils jfsutils kbd kernel-headers klibc klibc-extras klibc-udev less libpcap libtool libusb licenses lilo logrotate lshwd m4 mailx make man man-pages mkinitcpio mkinitrd mktemp module-init-tools nano ncurses net-tools openssl pacman pam patch pciutils pcmciautils pcre perl popt procinfo procps psmisc raidtools readline reiserfsprogs rp-pppoe sed shadow slocate sysfsutils syslog-ng sysvinit tar tcp_wrappers udev usbutils util-linux vim wget which wireless_tools xfsprogs zlib<br />
<br />
'''You can now revert you pacman.d/current file to x86_64'''<br />
<br />
== rc.arch32 script ==<br />
#!/bin/bash<br />
<br />
. /etc/rc.conf<br />
. /etc/rc.d/functions<br />
<br />
case $1 in<br />
start)<br />
stat_busy "Starting Arch32 chroot"<br />
mount --bind /proc /opt/arch32/proc<br />
mount --bind /proc/bus/usb /opt/arch32/proc/bus/usb<br />
mount --bind /dev /opt/arch32/dev<br />
mount --bind /dev/pts /opt/arch32/dev/pts<br />
mount --bind /dev/shm /opt/arch32/dev/shm<br />
mount --bind /sys /opt/arch32/sys<br />
mount --bind /tmp /opt/arch32/tmp<br />
mount --bind /home /opt/arch32/home<br />
add_daemon arch32<br />
stat_done<br />
;;<br />
stop)<br />
stat_busy "Stopping Arch32 chroot"<br />
umount /opt/arch32/proc/bus/usb<br />
umount /opt/arch32/proc<br />
umount /opt/arch32/dev/pts<br />
umount /opt/arch32/dev/shm<br />
umount /opt/arch32/dev<br />
umount /opt/arch32/sys<br />
umount /opt/arch32/tmp<br />
umount /opt/arch32/home<br />
rm_daemon arch32<br />
stat_done<br />
;;<br />
restart)<br />
$0 stop<br />
sleep 1<br />
$0 start<br />
;;<br />
*)<br />
echo "usage: $0 {start|stop|restart}"<br />
esac<br />
exit 0<br />
<br />
<br />
== Configure the new installed system ==<br />
First copy some meanfull config files<br />
rmdir /opt/arch32/home/ftp<br />
rc.arch32 start<br />
cp /etc/passwd* /opt/arch32/etc<br />
cp /etc/shadow* /opt/arch32/etc<br />
cp /etc/group* /opt/arch32/etc<br />
cp /etc/locale.gen /opt/arch32/etc/<br />
cp /etc/rc.conf /opt/arch32/etc/<br />
cp /etc/resolv.conf /opt/arch32/etc<br />
<br />
Now chroot in your new system<br />
xhost +<br />
chroot /opt/arch32<br />
<br />
Fix some future locales issues<br />
/usr/sbin/locale-gen<br />
pacman -S ttf-bitstream-vera<br />
Note that you can install any other font. You just need one or yours apps won't display any text.<br />
<br />
Now you can install any apps you need, and then clean the pkgs to win some place.<br />
pacman -S acroread<br />
pacman -Scc<br />
<br />
== Use the chroot ==<br />
Run rc.arch32 at every bootup<br />
<br />
xhost +<br />
chroot /opt/arch32<br />
su username<br />
<br />
I'm still searching for some exec script. Be free to browse through the forums, there are many hints.</div>Jfhttps://wiki.archlinux.org/index.php?title=Talk:Locale&diff=15674Talk:Locale2006-10-13T06:55:57Z<p>Jf: </p>
<hr />
<div>'''jf:''' Is setting the $LC_ALL var really necessary??? It would seem (at least on my system) that it's not. All i have to do is run locale-gen, and set LOCALE in /etc/rc.conf, and that's it. What do u guys think?</div>Jfhttps://wiki.archlinux.org/index.php?title=Talk:Locale&diff=15673Talk:Locale2006-10-13T06:55:24Z<p>Jf: </p>
<hr />
<div>Is setting the $LC_ALL var really necessary??? It would seem (at least on my system) that it's not. All i have to do is run locale-gen, and set LOCALE in /etc/rc.conf, and that's it. What do u guys think?</div>Jfhttps://wiki.archlinux.org/index.php?title=Browser_plugins&diff=15664Browser plugins2006-10-12T09:44:54Z<p>Jf: correct/refine ambiguous header - 'Updated Version! Use the information in this header'</p>
<hr />
<div>[[Category:Desktop]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|English|Mozilla and Mozilla Firefox browser plugins}}<br />
{{i18n_entry|简体中文|Flash 和 Adobe Acrobat 浏览器插件}}<br />
{{i18n_links_end}}<br />
<br />
= Updated Information for new installations! Use the information in this section=<br />
==Java, Adobe Reader, Flash==<br />
===For Adobe Acrobat Reader, Flash, and Java plugins===<br />
pacman -S flashplugin acroread j2re<br />
<br />
That should work!<br />
('''*Note for Arch64:''' j2re will still not work for your browser - at this point in time (Oct 13 2006), there is still no support in jre-64 for java applets... See http://java.com/en/download/manual.jsp#note)<br />
<br />
=== Sound issues ===<br />
<br />
If sound is not working in flash movies, install & run the enlightment sound daemon:<br />
<br />
pacman -S esd<br />
esd &<br />
<br />
(You might want to use a script to run esd at startup)<br />
<br />
= Old information for reference on old installations... Or whatever (OUTDATED)=<br />
<br />
==Using Mozilla==<br />
<br />
===For Adobe Acrobat Reader plugin===<br />
pacman -S acroread<br />
ln -s /opt/mozilla-plugins/nppdf.so /opt/mozilla/lib/mozilla/plugins/<br />
<br />
===For Shockwave Flash===<br />
pacman -S flashplugin<br />
ln -s /opt/mozilla-plugins/flashplayer.xpt /opt/mozilla/lib/mozilla/plugins/<br />
ln -s /opt/mozilla-plugins/libflashplayer.so /opt/mozilla/lib/mozilla/plugins/<br />
<br />
Restart Mozilla if it was running.<br />
<br />
Note: Flash is known to have bad support for Linux.<br />
Flash Player 7 has problems regarding sound output with alot of people.<br />
Flash Player 8 and higher are not (yet?) available for Linux!<br />
<br />
There is a GNU project going on ([[Gnash]]) that should be an open source alternative for showing Flash.<br />
As of 17 may 2006 it is still in development, but it is already able to run alot of Flash 7 content.<br />
<br />
==Using Mozilla Firefox==<br />
<br />
===For Adobe Acrobat Reader plugin===<br />
pacman -S acroread<br />
ln -s /opt/mozilla-plugins/nppdf.so /opt/mozilla/lib/firefox/plugins/<br />
<br />
===For Shockwave Flash===<br />
pacman -S flashplugin<br />
ln -s /opt/mozilla-plugins/flashplayer.xpt /opt/mozilla/lib/firefox/plugins/<br />
ln -s /opt/mozilla-plugins/libflashplayer.so /opt/mozilla/lib/firefox/plugins/<br />
<br />
Note: Flash is known to have bad support for Linux.<br />
Flash Player 7 has problems regarding sound output with alot of people.<br />
Flash Player 8 and higher are not (yet?) available for Linux!<br />
<br />
There is a GNU project going on ([[Gnash]]) that should be an open source alternative for showing Flash.<br />
As of 17 may 2006 it is still in development, but it is already able to run alot of Flash 7 content.<br />
<br />
===For Java Plugin===<br />
pacman -S j2re<br />
ln -s /opt/java/jre/plugin/i386/ns7-gcc29/libjavaplugin_oji.so /opt/mozilla/lib/firefox/plugins/<br />
<br />
(for me it's: ln -s /opt/java/jre/plugin/i386/ns7/libjavaplugin_oji.so /opt/mozilla/lib/firefox/plugins/, note the missing gcc29)<br />
<br />
Use the Tab key to navigate easier through the directories.</div>Jfhttps://wiki.archlinux.org/index.php?title=Browser_plugins&diff=15663Browser plugins2006-10-12T09:40:59Z<p>Jf: /* For Adobe Acrobat Reader, Flash, and Java plugins */</p>
<hr />
<div>[[Category:Desktop]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|English|Mozilla and Mozilla Firefox browser plugins}}<br />
{{i18n_entry|简体中文|Flash 和 Adobe Acrobat 浏览器插件}}<br />
{{i18n_links_end}}<br />
<br />
= Updated Version! Use the information in this header=<br />
==Java, Adobe Reader, Flash==<br />
===For Adobe Acrobat Reader, Flash, and Java plugins===<br />
pacman -S flashplugin acroread j2re<br />
<br />
That should work!<br />
('''*Note for Arch64:''' j2re will still not work for your browser - at this point in time (Oct 13 2006), there is still no support in jre-64 for java applets... See http://java.com/en/download/manual.jsp#note)<br />
<br />
=== Sound issues ===<br />
<br />
If sound is not working in flash movies, install & run the enlightment sound daemon:<br />
<br />
pacman -S esd<br />
esd &<br />
<br />
(You might want to use a script to run esd at startup)<br />
<br />
= Old information for reference on old installations... Or whatever (OUTDATED)=<br />
<br />
==Using Mozilla==<br />
<br />
===For Adobe Acrobat Reader plugin===<br />
pacman -S acroread<br />
ln -s /opt/mozilla-plugins/nppdf.so /opt/mozilla/lib/mozilla/plugins/<br />
<br />
===For Shockwave Flash===<br />
pacman -S flashplugin<br />
ln -s /opt/mozilla-plugins/flashplayer.xpt /opt/mozilla/lib/mozilla/plugins/<br />
ln -s /opt/mozilla-plugins/libflashplayer.so /opt/mozilla/lib/mozilla/plugins/<br />
<br />
Restart Mozilla if it was running.<br />
<br />
Note: Flash is known to have bad support for Linux.<br />
Flash Player 7 has problems regarding sound output with alot of people.<br />
Flash Player 8 and higher are not (yet?) available for Linux!<br />
<br />
There is a GNU project going on ([[Gnash]]) that should be an open source alternative for showing Flash.<br />
As of 17 may 2006 it is still in development, but it is already able to run alot of Flash 7 content.<br />
<br />
==Using Mozilla Firefox==<br />
<br />
===For Adobe Acrobat Reader plugin===<br />
pacman -S acroread<br />
ln -s /opt/mozilla-plugins/nppdf.so /opt/mozilla/lib/firefox/plugins/<br />
<br />
===For Shockwave Flash===<br />
pacman -S flashplugin<br />
ln -s /opt/mozilla-plugins/flashplayer.xpt /opt/mozilla/lib/firefox/plugins/<br />
ln -s /opt/mozilla-plugins/libflashplayer.so /opt/mozilla/lib/firefox/plugins/<br />
<br />
Note: Flash is known to have bad support for Linux.<br />
Flash Player 7 has problems regarding sound output with alot of people.<br />
Flash Player 8 and higher are not (yet?) available for Linux!<br />
<br />
There is a GNU project going on ([[Gnash]]) that should be an open source alternative for showing Flash.<br />
As of 17 may 2006 it is still in development, but it is already able to run alot of Flash 7 content.<br />
<br />
===For Java Plugin===<br />
pacman -S j2re<br />
ln -s /opt/java/jre/plugin/i386/ns7-gcc29/libjavaplugin_oji.so /opt/mozilla/lib/firefox/plugins/<br />
<br />
(for me it's: ln -s /opt/java/jre/plugin/i386/ns7/libjavaplugin_oji.so /opt/mozilla/lib/firefox/plugins/, note the missing gcc29)<br />
<br />
Use the Tab key to navigate easier through the directories.</div>Jfhttps://wiki.archlinux.org/index.php?title=Talk:VMware&diff=8901Talk:VMware2006-02-20T05:59:24Z<p>Jf: </p>
<hr />
<div>Is this wiki still current for Noodle (0.7.1)? Do these same instructions apply for installing VMPlayer by itself?<BR><br />
Thanks<BR><br />
[[User:Hackmeister|Hackmeister]] 11:07, 12 January 2006 (EST)<br />
<br />
yes, still current for Noodle 0.7.1. Still not too sure about the requirement for 'chmod 660 /dev/vmmon', though. What's the reason for that, as opposed to the 'chmod 600' for the rest of the nodes created by the script in /dev?<br><br />
[[User:jf|-jf]] 05:51, 20 February 2006 (UTC)</div>Jfhttps://wiki.archlinux.org/index.php?title=Talk:VMware&diff=8900Talk:VMware2006-02-20T05:57:01Z<p>Jf: </p>
<hr />
<div>Is this wiki still current for Noodle (0.7.1)? Do these same instructions apply for installing VMPlayer by itself?<BR><br />
Thanks<BR><br />
[[User:Hackmeister|Hackmeister]] 11:07, 12 January 2006 (EST)<br />
<br />
yes, still current for Noodle 0.7.1. Still not too sure about the requirement for 'chmod 660 /dev/vmmon', though. What's the reason for that, as opposed to the 'chmod 600' for the rest of the nodes created by the script in /dev?</div>Jfhttps://wiki.archlinux.org/index.php?title=VMware&diff=8882VMware2006-02-19T09:00:30Z<p>Jf: </p>
<hr />
<div>[[Category:Emulation]]<br />
[http://www.vmware.com/ VMware] installs on [[ArchLinux]] pretty well, but its not totally straight forward.<br />
<br />
== Installation ==<br />
<br />
First you need to create some directories.<br />
mkdir -p /etc/rc.d/vmware.d/rc{`seq -s "," 0 6`}.d<br />
<br />
Then create a symlink of lsmod in /sbin<br />
ln -s /bin/lsmod /sbin/<br />
<br />
Start the vmware installation.<br />
* When it asks where the directories for <code>rc0.d</code> thru <code>rc6.d</code> are, use <code>/etc/rc.d/vmware.d</code>.<br />
* When it asks where the init directory is, use <code>/etc/rc.d</code>.<br />
* It will probably say that the modules supplied don't match the kernal version and asks you if you want to compile it, do <code>yes</code>.<br />
* If it complains that the gcc compiler is of a different version and that if you use it, your virtual machines will likely crash. Select <code>no</code>. On your Arch Install CD get the gcc package from the <code>/arch/pkg</code> directory, place it somewhere like your home directory, remove the current gcc version, install it, rerun the config script and reinstall gcc:<br />
pacman -R -d gcc<br />
pacman -A gcc-3.4.3-1.pkg.tar.gz<br />
/usr/bin/vmware-config.pl<br />
pacman -S gcc</pre><br />
The rest of the install should work pretty well.<br />
<br />
== Running ==<br />
<br />
There is now a <code>vmware</code> init script in <code>/etc/rc.d</code>. You can add this to your daemons list if you want. I personally dont do this, but if you intend to use the vmware's network when not actually using vmware, then you will need to do this. You will need to start it before you can run vmware though.<br />
<br />
There is a problem with vmware unable to run correctly after a reboot. To fix this edit <code>/etc/rc.d/vmware</code>, find the text below<br />
case "$1" in<br />
start)<br />
and put<br />
rm /etc/vmware/not_configured<br />
immediately after that line.<br />
<br />
To start vmware, you just do <code>vmware</code> from a console window, or create a shortcut or menu item however you like.<br />
<br />
'''Some notes:'''<br />
<br />
Leave the <code>/etc/rc.d/vmare.d</code> directory there, because it is needed whenever you perform <code>vmware-config.pl</code>.<br />
<br />
Remember, if the kernel is changed or updated, you will need to run <code>vmware-config.pl</code> again.<br />
<br />
== Kernel 2.6 and udev ==<br />
<br />
Follow the steps above and then:<br />
<br />
'''1. Modify udev config'''<br />
<br />
Edit <code>/etc/udev/rules.d/00-myrules.rules</code> and add 2 lines:<br />
# tty devices<br />
KERNEL="tty<nowiki>[[0-9]]</nowiki>*", NAME="vc/%n", SYMLINK="%k"<br />
<br />
# floppy devices<br />
KERNEL="fd<nowiki>[[0-9]]</nowiki>*", NAME="floppy/%n" , SYMLINK="fd%n"<br />
<br />
'''2. Start/stop script'''<br />
<br />
It takes care of devices and starts vmware, also stops vmware and removes dev entries. Call it, for example, <code>mkvmdev</code>, chmod it <code>755</code> and put in <code>/etc/rc.d</code>:<br />
<br />
<pre><br />
#!/bin/sh<br />
<br />
. /etc/rc.conf<br />
. /etc/rc.d/functions<br />
<br />
case "$1" in<br />
start)<br />
stat_busy "Creating /dev entries and starting VMware"<br />
for i in `seq 0 9`; do<br />
mknod /dev/vmnet$i c 119 $i<br />
chmod 0600 /dev/vmnet$i<br />
done<br />
for i in `seq 0 3`; do<br />
mknod /dev/parport$i c 99 $i<br />
chmod 0600 /dev/parport$i<br />
done<br />
mknod /dev/vmmon c 10 165<br />
chmod 0660 /dev/vmmon<br />
/etc/rc.d/vmware start<br />
;;<br />
<br />
stop)<br />
stat_busy "Stopping VMware and removing /dev entries"<br />
/etc/rc.d/vmware stop<br />
rm /dev/vmmon<br />
for i in `seq 0 3`; do<br />
rm /dev/parport$i<br />
done<br />
for i in `seq 0 9`; do<br />
rm /dev/vmnet$i<br />
done<br />
;;<br />
<br />
restart)<br />
$0 stop<br />
$0 start<br />
;;<br />
<br />
*)<br />
echo "usage: $0 {start|stop|restart}"<br />
esac<br />
exit 0<br />
</pre><br />
<br />
'''3. Modify <code>/etc/rc.conf</code>.''' (*Note - this step is optional! See also the notes under the "Running" section above)<br />
<br />
Add <code>mkvmdev</code> to daemons in your <code>rc.conf</code>, and remember to remove <code>vmware</code> from <code>rc.conf</code>. Or if you prefer, you can delete the lines that launch vmware from <code>mkvmdev</code> and leave your original <code>vmware</code> in <code>rc.conf</code> - your choice.<br />
<br />
-----<br />
<br />
'''Comments:'''<br />
<br />
hi guys, a couple of quick questions:<br><br />
- why is /dev/vmmon chmod 0660, as opposed to the rest (0600)?<br><br />
- i suppose /dev/vmmon should be "rm"-ed as well in the "stop" section for the script above? (that line is missing) - FIXED</div>Jf