https://wiki.archlinux.org/api.php?action=feedcontributions&user=Zodmaner&feedformat=atomArchWiki - User contributions [en]2024-03-28T12:44:15ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=GRUB&diff=213926GRUB2012-07-22T09:52:43Z<p>Zodmaner: /* Disable framebuffer */</p>
<hr />
<div>[[Category:Boot loaders]]<br />
[[cs:GRUB2]]<br />
[[es:GRUB2]]<br />
[[fr:GRUB2]]<br />
[[id:GRUB2]]<br />
[[it:GRUB2]]<br />
[[ru:GRUB2]]<br />
[[tr:GRUB2]]<br />
[[zh-CN:GRUB2]]<br />
[[zh-TW:GRUB2]]<br />
{{Article summary start}}<br />
{{Article summary text|Covers various aspects of the next generation of the GRand Unified Bootloader (GRUB2).}}<br />
{{Article summary heading|Overview}}<br />
{{Article summary text|{{Boot process overview}}}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Burg}} - Burg is a brand-new boot loader based on GRUB2. It uses a new object format which allows it to be built in a wider range of OS, including Linux, Windows, OS X, Solaris, FreeBSD, etc. It also has a highly configurable menu system which works in both text and graphic mode. <br />
{{Article summary heading|Resources}}<br />
{{Article summary link|GNU GRUB -- GNU Project|https://www.gnu.org/software/grub/}}<br />
{{Article summary end}}<br />
<br />
[https://www.gnu.org/software/grub/ GRUB2] is the next generation of the GRand Unified Bootloader (GRUB). GRUB2 is derived from [http://www.nongnu.org/pupa/ PUPA] which was a research project to investigate the next generation of GRUB. GRUB2 has been rewritten from scratch to clean up everything and provide modularity and portability [https://www.gnu.org/software/grub/grub-faq.en.html#q1].<br />
<br />
In brief, the ''bootloader'' is the first software program that runs when a computer starts. It is responsible for loading and transferring control to the Linux kernel. The kernel, in turn, initializes the rest of the operating system.<br />
<br />
== Preface ==<br />
Here is some information needs to be clarified:<br />
* The name ''GRUB'' officially refers to version ''2'' of the software, see [https://www.gnu.org/software/grub/]. If you are looking for the article on the legacy version, see [[GRUB Legacy]].<br />
<br />
* [[GRUB Legacy]] (i.e. version 0.9x) is considered legacy by upstream and is being replaced by GRUB2 and [[Syslinux]] in Arch Linux. See the news [https://www.archlinux.org/news/grub-legacy-no-longer-supported/ here]. Upstream recommends GRUB2 >=1.99 over GRUB Legacy, even for current GRUB Legacy users.<br />
<br />
* The [[Archboot]] ISO's installer script supports {{Pkg|grub-bios}} and {{Pkg|grub-efi-x86_64}} installation. The official installer script AIF (Arch Installation Framework) does not support GRUB(2) yet.<br />
<br />
* From 1.99-6 onwards, GRUB2 supports [[Btrfs]] as root (without a separate {{ic|/boot}} filesystem) compressed with either zlib or LZO.<br />
<br />
* For GRUB2 UEFI info, it is recommended to read the [[UEFI]], [[GPT]] and [[UEFI_Bootloaders]] pages before reading this page.<br />
<br />
=== Notes for current GRUB Legacy users ===<br />
* Although GRUB legacy will not be removed from your system and will stay fully functional, you should consider upgrading to GRUB version 2.x, or one of the other supported bootloaders.<br />
<br />
* Upgrade from [[GRUB Legacy]] to [[GRUB]](2) is the much same as installing GRUB from a running Arch Linux which is covered [[#From a running Arch Linux|below]].<br />
<br />
* There are differences in the commands of GRUB and GRUB2. Familiarize yourself with [https://www.gnu.org/software/grub/manual/grub.html#Commands GRUB2 commands] before proceeding (e.g. "find" has been replaced with "search").<br />
<br />
* GRUB2 is now ''modular'' and no longer requires "stage 1.5". As a result, the bootloader itself is limited -- modules are loaded from the hard drive as needed to expand functionality (e.g. for [[LVM]] or RAID support).<br />
<br />
* Device naming has changed between GRUB and GRUB2. Partitions are numbered from 1 instead of 0 while drives are still numbered from 0, and prefixed with partition-table type. For example, {{ic|/dev/sda1}} would be referred to as {{ic|(hd0,msdos1)}} (for MBR) or {{ic|(hd0,gpt1)}} (for GPT) using GRUB2.<br />
<br />
=== Preliminary Requirements for GRUB2 ===<br />
<br />
==== BIOS systems ====<br />
<br />
===== [[GPT]] specific instructions =====<br />
<br />
GRUB2 in BIOS-GPT configuration requires a BIOS Boot Partition to embed its {{ic|core.img}} in the absence of post-MBR gap in GPT partitioned systems (which is taken over by the GPT Primary Header and Primary Partition table). This partition is used by GRUB2 only in BIOS-GPT setups. No such partition type exists in case of MBR partitioning (at least not for GRUB2). This partition is also not required if the system is UEFI based, as no embedding of bootsectors takes place in that case. Syslinux does not require this partition.<br />
<br />
For a BIOS-GPT configuration, create a 2 MiB partition using cgdisk or GNU Parted with no filesystem. The location of the partition in the partition table does not matter but it should be within the first 2 TiB region of the disk. It is advisable to put it somewhere in the beginning of the disk before the {{ic|/boot}} partition. Set the partition type to "EF02" in cgdisk or {{ic|set <BOOT_PART_NUM> bios_grub on}} in GNU Parted.<br />
<br />
{{Note|This partition should be created before {{ic|grub-install}} or {{ic|grub-setup}} is run or before the '''Install Bootloader''' step of the Archlinux installer (if GRUB2 BIOS is selected as bootloader).}}<br />
<br />
===== [[MBR]] aka msdos partitioning specific instructions =====<br />
<br />
Usually the post-MBR gap (after the 512 byte MBR region and before the start of the 1st partition) in many MBR (or msdos disklabel) partitioned systems is 32 KiB when DOS compatibility cylinder alignment issues are satisfied in the partition table. However a post-MBR gap of about 1 to 2 MiB is recommended to provide sufficient room for embedding GRUB2's {{ic|core.img}} ({{bug|24103}}). It is advisable to use a partitioner which supports 1 MiB partition alignment to obtain this space as well as satisfy other non-512 byte sector issues (which are unrelated to embedding of {{ic|core.img}}).<br />
<br />
If you do not dual-boot with MS Windows (any version) in BIOS systems, it is advisable to switch to GPT partitioning - [[GUID_Partition_Table#Convert_from_MBR_to_GPT]]<br />
<br />
{{Note|Create the 2MiB partition mentioned above BEFORE you convert to GPT. If you do not, gparted will not resize your boot partition to allow its creation, and when you reboot GRUB2 will not know where to look.}}<br />
<br />
==== UEFI systems ====<br />
<br />
===== Create and Mount the UEFI SYSTEM PARTITION =====<br />
<br />
{{Note|It is recommended to read the [[UEFI]], [[GPT]] and [[UEFI_Bootloaders]] pages before reading this part.}}<br />
<br />
Follow [[Unified_Extensible_Firmware_Interface#Create_an_UEFI_System_Partition_in_Linux]] for instructions on creating a UEFI SYSTEM PARTITION. Then mount the UEFI SYSTEM PARTITION at {{ic|/boot/efi}}. If you have mounted the UEFISYS partition in some other mountpoint, replace {{ic|/boot/efi}} in the below instructions with that mountpoint:<br />
<br />
# mkdir -p /boot/efi<br />
# mount -t vfat <UEFISYS_PART_DEVICE> /boot/efi<br />
<br />
Create a <UEFI_SYSTEM_PARTITION>{{ic|/EFI}} directory, if it does not exist:<br />
<br />
# mkdir -p /boot/efi/EFI<br />
<br />
== Installation ==<br />
<br />
=== During Arch Linux installation ===<br />
<br />
* Skip the '''Install Bootloader''' step and exit the installer.<br />
* Configure the network:<br />
# aif -p partial-configure-network<br />
This will bring up a prompt; put in the network interface to use, (e.g., {{ic|eth0}}) and use DHCP for easy configuration.<br />
* If you did not configure the installed system's {{ic|/etc/resolv.conf}} file during installation (for instance, if you plan to let DHCP generate it later), you will need to copy the one generated by AIF when it configured the network:<br />
# cp /etc/resolv.conf /mnt/etc/resolv.conf<br />
* If you run into network issues in the pacman update step below, you may have needed to install the {{Pkg|net-tools}} package.<br />
* Check and see if the {{ic|dm_mod}} module is loaded. If it is not, load it manually:<br />
# lsmod | grep dm_mod<br />
# modprobe dm-mod<br />
{{Note|This is necessary at this point, and cannot be postponed after the chroot. If you try to use modprobe in a chroot environment that has a later kernel version from that of the installing device (at the time of writing, 2.6.33), modprobe will fail. This happens routinely using the Arch "net" installations.}}<br />
* From the installer's live shell, chroot to the installed system:<br />
# mount -o bind /dev /mnt/dev<br />
# mount -t proc /proc /mnt/proc/<br />
# mount -t sysfs /sys /mnt/sys/<br />
# chroot /mnt bash<br />
* Refresh the package list (with an extra {{ic|-y}} flag to force a refresh of all package lists even if they appear to be up to date):<br />
# pacman -Syy<br />
* Install the GRUB2 package as mentioned in the section [[#From a running Arch Linux]] (Note that the {{ic|dm-mod}} module has already been loaded, no need to do that again).<br />
<br />
=== From a running Arch Linux ===<br />
<br />
==== BIOS systems ====<br />
<br />
===== Backup Important Data =====<br />
<br />
Although a GRUB(2) installation should run smoothly, it is strongly recommended to keep the GRUB Legacy files before installing {{Pkg|grub-bios}}.<br />
<br />
# mv /boot/grub /boot/grub-legacy<br />
<br />
Backup the MBR which contains the boot code and partition table (Replace {{ic|/dev/sd'''X'''}} with your actual disk path)<br />
<br />
# dd if=/dev/sdX of=/path/to/backup/mbr_backup bs=512 count=1<br />
<br />
Only 446 bytes of the MBR contain boot code, the next 64 contain the partition table. If you do not want to overwrite your partition table when restoring, it is strongly advised to backup only the MBR boot code:<br />
<br />
# dd if=/dev/sdX of=/path/to/backup/bootcode_backup bs=446 count=1<br />
<br />
If unable to install GRUB2 correctly, see [[GRUB2#Restore_GRUB_Legacy]].<br />
<br />
===== Install grub-bios package =====<br />
<br />
The GRUB(2) packages can be installed with pacman (and will replace {{Pkg|grub-legacy}} or {{Pkg|grub}}, if it is installed):<br />
<br />
# pacman -S grub-bios<br />
<br />
{{Note|Simply installing the package won't update the {{ic|/boot/grub/i386-pc/core.img}} file and the GRUB(2) modules in {{ic|/boot/grub/i386-pc}}. You need to update them manually using {{ic|grub-install}} as explained below.}}<br />
<br />
Also load the device-mapper kernel module without which {{ic|grub-probe}} does not reliably detect disks and partitions:<br />
<br />
# modprobe dm_mod<br />
<br />
===== Install grub-bios boot files =====<br />
<br />
There are 3 ways to install GRUB(2) boot files in BIOS booting:<br />
*[[#Install_to_440-byte_MBR_boot_code_region]] (recommended) , <br />
*[[#Install_to_Partition_or_Partitionless_Disk]] (not recommended),<br />
*[[#Generate_core.img_alone]] (safest method, but requires another BIOS bootloader like [[grub-legacy]] or [[syslinux]] to be installed to chainload {{ic|/boot/grub/i386-pc/core.img}}). <br />
<br />
====== Install to 440-byte MBR boot code region ======<br />
<br />
To setup {{ic|grub-bios}} in the 440-byte Master Boot Record boot code region, populate the {{ic|/boot/grub}} directory, generate the {{ic|/boot/grub/i386-pc/core.img}} file, and embed it in the 32 KiB (minimum size - varies depending on partition alignment) post-MBR gap (MBR disks) or in BIOS Boot Partition (GPT disks), run:<br />
<br />
# grub-install --directory=/usr/lib/grub/i386-pc --target=i386-pc --boot-directory=/boot --recheck --debug /dev/sda<br />
# mkdir -p /boot/grub/locale<br />
# cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo<br />
<br />
where {{ic|/dev/sda}} is the destination of the installation (in this case the MBR of the first SATA disk). If you use [[LVM]] for your {{ic|/boot}}, you can install GRUB2 on multiple physical disks. <br />
<br />
The {{ic|--no-floppy}} tells {{ic|grub-bios}} utilities not to search for any floppy devices which reduces the overall execution time of {{ic|grub-install}} on many systems (it will also prevent the issue below from occurring). Otherwise you get an error that looks like this:<br />
<br />
grub-probe: error: Cannot get the real path of '/dev/fd0'<br />
Auto-detection of a filesystem module failed.<br />
Please specify the module with the option '--modules' explicitly.<br />
<br />
{{Note|{{ic|--no-floppy}} has been removed from {{ic|grub-install}} in 2.00~beta2 upstream release, and replaced with {{ic|--allow-floppy}}.}}<br />
<br />
{{Warning|Make sure to check the {{ic|/boot}} directory if you use the latter. Sometimes the {{ic| boot-directory}} parameter creates another {{ic|/boot}} folder inside of {{ic|/boot}}. A wrong install would look like: {{ic|/boot/boot/grub/}}.}}<br />
<br />
====== Install to Partition or Partitionless Disk ======<br />
<br />
{{Note|{{ic|grub-bios}} (any version - including upstream Bazaar repo) does not encourage installation to a partition boot sector or a partitionless disk like GRUB Legacy or syslinux does. This kind of setup is prone to breakage, especially during updates, and is not supported by Arch devs.}}<br />
<br />
To set up {{ic|grub-bios}} to a partition boot sector, to a partitionless disk (also called superfloppy) or to a floppy disk, run (using for example {{ic|/dev/sdaX}} as the {{ic|/boot}} partition):<br />
<br />
# chattr -i /boot/grub/i386-pc/core.img<br />
# grub-install --directory=/usr/lib/grub/i386-pc --target=i386-pc --boot-directory=/boot --recheck --force --debug /dev/sdaX<br />
# mkdir -p /boot/grub/locale<br />
# cp /usr/share/locale/en@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo<br />
# chattr +i /boot/grub/i386-pc/core.img<br />
<br />
You need to use the {{ic|--force}} option to allow usage of blocklists and should not use {{ic|1=--grub-setup=/bin/true}} (which is similar to simply generating {{ic|core.img}}).<br />
<br />
{{ic|grub-install}} will give out warnings like which should give you the idea of what might go wrong with this approach:<br />
<br />
/sbin/grub-setup: warn: Attempting to install GRUB to a partitionless disk or to a partition. This is a BAD idea.<br />
/sbin/grub-setup: warn: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. <br />
However, blocklists are UNRELIABLE and their use is discouraged.<br />
<br />
Without {{ic|--force}} you may get the below error and {{ic|grub-setup}} will not setup its boot code in the partition boot sector:<br />
<br />
/sbin/grub-setup: error: will not proceed with blocklists<br />
<br />
With {{ic|--force}} you should get:<br />
<br />
Installation finished. No error reported.<br />
<br />
The reason why {{ic|grub-setup}} does not by default allow this is because in case of partition or a partitionless disk is that {{ic|grub-bios}} relies on embedded blocklists in the partition bootsector to locate the {{ic|/boot/grub/i386-pc/core.img}} file and the prefix dir {{ic|/boot/grub}}. The sector locations of {{ic|core.img}} may change whenever the filesystem in the partition is being altered (files copied, deleted etc.). For more info see https://bugzilla.redhat.com/show_bug.cgi?id=728742 and https://bugzilla.redhat.com/show_bug.cgi?id=730915.<br />
<br />
The workaround for this is to set the immutable flag on {{ic|/boot/grub/i386-pc/core.img}} (using chattr command as mentioned above) so that the sector locations of the {{ic|core.img}} file in the disk is not altered. The immutable flag on {{ic|/boot/grub/i386-pc/core.img}} needs to be set only if {{ic|grub-bios}} is installed to a partition boot sector or a partitionless disk, not in case of installtion to MBR or simple generation of {{ic|core.img}} without embedding any bootsector (mentioned above).<br />
<br />
====== Generate core.img alone ======<br />
<br />
To populate the {{ic|/boot/grub}} directory and generate a {{ic|/boot/grub/i386-pc/core.img}} file '''without''' embedding any {{ic|grub-bios}} bootsector code in the MBR, post-MBR region, or the partition bootsector, add {{ic|1=--grub-setup=/bin/true}} to {{ic|grub-install}}:<br />
<br />
# grub-install --directory=/usr/lib/grub/i386-pc --target=i386-pc --grub-setup=/bin/true --boot-directory=/boot --recheck --debug /dev/sda<br />
# mkdir -p /boot/grub/locale<br />
# cp /usr/share/locale/en@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo<br />
<br />
You can then chainload GRUB2's {{ic|core.img}} from GRUB Legacy or syslinux as a Linux kernel or a multiboot kernel.<br />
<br />
===== Generate GRUB2 BIOS Config file =====<br />
<br />
Finally, generate a configuration for GRUB2 (this is explained in greater detail in the Configuration section):<br />
<br />
# grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
{{Note|The file path is {{ic|/boot/grub/grub.cfg}}, NOT {{ic|/boot/grub/i386-pc/grub.cfg}}.}}<br />
<br />
If grub2 complains about "no suitable mode found" while booting, go to [[#Correct_GRUB2_No_Suitable_Mode_Found_Error]].<br />
<br />
If {{ic|grub-mkconfig}} fails, convert your {{ic|/boot/grub/menu.lst}} file to {{ic|/boot/grub/grub.cfg}} using:<br />
<br />
# grub-menulst2cfg /boot/grub/menu.lst /boot/grub/grub.cfg<br />
<br />
For example:<br />
<br />
{{hc|/boot/grub/menu.lst|<nowiki><br />
default=0<br />
timeout=5<br />
<br />
title Arch Linux Stock Kernel<br />
root (hd0,0)<br />
kernel /vmlinuz-linux root=/dev/sda2 ro<br />
initrd /initramfs-linux.img<br />
<br />
title Arch Linux Stock Kernel Fallback<br />
root (hd0,0)<br />
kernel /vmlinuz-linux root=/dev/sda2 ro<br />
initrd /initramfs-linux-fallback.img<br />
</nowiki>}}<br />
<br />
{{hc|/boot/grub/grub.cfg|<nowiki><br />
set default='0'; if [ x"$default" = xsaved ]; then load_env; set default="$saved_entry"; fi<br />
set timeout=5<br />
<br />
menuentry 'Arch Linux Stock Kernel' {<br />
set root='(hd0,1)'; set legacy_hdbias='0'<br />
legacy_kernel '/vmlinuz-linux' '/vmlinuz-linux' 'root=/dev/sda2' 'ro'<br />
legacy_initrd '/initramfs-linux.img' '/initramfs-linux.img'<br />
<br />
}<br />
<br />
menuentry 'Arch Linux Stock Kernel Fallback' {<br />
set root='(hd0,1)'; set legacy_hdbias='0'<br />
legacy_kernel '/vmlinuz-linux' '/vmlinuz-linux' 'root=/dev/sda2' 'ro'<br />
legacy_initrd '/initramfs-linux-fallback.img' '/initramfs-linux-fallback.img'<br />
}<br />
</nowiki>}}<br />
<br />
If you forgot to create a GRUB2 {{ic|/boot/grub/grub.cfg}} config file and simply rebooted into GRUB2 Command Shell, type:<br />
<br />
sh:grub> insmod legacycfg<br />
sh:grub> legacy_configfile ${prefix}/menu.lst<br />
<br />
Boot into Arch and re-create the proper GRUB2 {{ic|/boot/grub/grub.cfg}} config file.<br />
<br />
{{Note|This option works only in BIOS systems, not in UEFI systems.}}<br />
<br />
===== Multiboot in BIOS =====<br />
<br />
====== Boot Microsoft Windows installed in BIOS-MBR mode ======<br />
<br />
{{Note|GRUB2 supports booting {{ic|bootmgr}} directly and chainload of partition boot sector is no longer required to boot Windows in a BIOS-MBR setup.}}<br />
<br />
Find the UUID of the NTFS filesystem of the Windows's SYSTEM PARTITION where the {{ic|bootmgr}} and its files reside. For example, if Windows {{ic|bootmgr}} exists at {{ic|/media/Windows/bootmgr}}:<br />
<br />
# grub-probe --target=fs_uuid /media/Windows/bootmgr<br />
69B235F6749E84CE<br />
<br />
Then, add the below code to {{ic|/etc/grub.d/40_custom}} and regenerate {{ic|grub.cfg}} with {{ic|grub-mkconfig}} as explained above to boot Windows (Vista, 7 or 8) installed in BIOS-MBR mode:<br />
<br />
<pre><br />
#!/bin/sh<br />
menuentry "Microsoft Windows 7 BIOS-MBR" {<br />
insmod part_msdos<br />
insmod ntfs<br />
insmod search_fs_uuid<br />
insmod ntldr <br />
search --fs-uuid --no-floppy --set=root 69B235F6749E84CE<br />
ntldr /bootmgr<br />
}</pre><br />
<br />
For Windows XP:<br />
<br />
menuentry "Microsoft Windows XP" {<br />
insmod part_msdos<br />
insmod ntfs<br />
insmod search_fs_uuid<br />
insmod ntldr <br />
search --fs-uuid --no-floppy --set=root 69B235F6749E84CE<br />
ntldr /ntldr<br />
}<br />
<br />
==== UEFI systems ====<br />
<br />
{{Note|It is recommended to read the [[UEFI]], [[GPT]] and [[UEFI_Bootloaders]] pages before reading this part.}}<br />
<br />
===== Install grub-uefi package =====<br />
<br />
{{Note|Unless specified as EFI 1.x , EFI and UEFI terms are used interchangeably to denote UEFI 2.x firmware. Also unless stated explicitely, the instructions are general and not Mac specific. Some of them may not work or may be different in Macs. Apple's EFI implementation is neither a EFI 1.x version nor UEFI 2.x version but mixes up both. This kind of firmware does not fall under any one UEFI Specification version and is therefore not a standard UEFI firmware.}}<br />
<br />
GRUB2 UEFI bootloader is available in Arch Linux only from version 1.99~rc1. To install, first [[Unified_Extensible_Firmware_Interface#Detecting_UEFI_Firmware_Arch|detect which UEFI firmware arch]] you have (either x86_64 or i386).<br />
<br />
Depending on that, install the appropriate package<br />
<br />
For 64-bit aka x86_64 UEFI firmware:<br />
# pacman -S grub-efi-x86_64<br />
<br />
For 32-bit aka i386 UEFI firmware:<br />
# pacman -S grub-efi-i386<br />
<br />
{{Note|Simply installing the package will not update the {{ic|grub.efi}} file and the GRUB(2) modules in the UEFI System Partition. You need to do this manually using {{ic|grub-install}} as explained below.}}<br />
<br />
Also load the device-mapper kernel module without which {{ic|grub-probe}} does not reliably detect disks and partitions:<br />
<br />
# modprobe dm-mod<br />
<br />
===== Install grub-uefi boot files =====<br />
<br />
====== Install to UEFI SYSTEM PARTITION ======<br />
<br />
{{Note|The below commands assume you are using {{ic|grub-efi-x86_64}} (for {{ic|grub-efi-i386}} replace {{ic|x86_64}} with {{ic|i386}} in the below commands).}}<br />
<br />
The UEFI system partition will need to be mounted at {{ic|/boot/efi/}} for the GRUB2 install script to detect it:<br />
<br />
# mkdir -p /boot/efi<br />
# mount -t vfat /dev/sdXY /boot/efi<br />
<br />
Install GRUB UEFI application to {{ic|/boot/efi/EFI/arch_grub}} and its modules to {{ic|/boot/grub/x86_64-efi}} (recommended) using:<br />
<br />
# grub-install --directory=/usr/lib/grub/x86_64-efi --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --boot-directory=/boot --recheck --debug<br />
# mkdir -p /boot/grub/locale<br />
# cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo<br />
<br />
If you want to install grub2 modules and {{ic|grub.cfg}} at the directory {{ic|/boot/efi/EFI/grub}} and the {{ic|grubx64.efi}} application at {{ic|/boot/efi/EFI/arch_grub}} use:<br />
<br />
# grub-install --directory=/usr/lib/grub/x86_64-efi --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --boot-directory=/boot/efi/EFI --recheck --debug<br />
# mkdir -p /boot/efi/EFI/grub/locale<br />
# cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/efi/EFI/grub/locale/en.mo<br />
<br />
In this case {{ic|grub-efi-x86_64}} will be installed into {{ic|/boot/grub}}, making the behavior consistent with the BIOS verion of GRUB2, but this is not recommended if you use both {{ic|grub-bios}} and {{ic|grub-efi-x86_64}} in your system, as this will overwrite {{ic|grub-bios }}modules in {{ic|/boot/grub}}.<br />
<br />
The {{ic|--efi-directory}} option mentions the mountpoint of UEFI SYSTEM PARTITION , {{ic|--bootloader-id}} mentions the name of the directory used to store the {{ic|grubx64.efi}} file and {{ic|--boot-directory}} mentions the directory wherein the actual modules will be installed (and into which {{ic|grub.cfg}} should be created).<br />
<br />
The actual paths are:<br />
<br />
<efi-directory>/<EFI or efi>/<bootloader-id>/grubx64.efi<br />
<br />
<boot-directory>/grub/x86_64-efi/<all modules, grub.efi, core.efi, grub.cfg><br />
<br />
{{Note|the {{ic|--bootloader-id}} option does not change {{ic|<boot-directory>/grub}}, i.e. you cannot install the modules to {{ic|<boot-directory>/<bootloader-id>}}, the path is hard-coded to be {{ic|<boot-directory>/grub}}.}}<br />
<br />
In {{ic|<nowiki>--efi-directory=/boot/efi --boot-directory=/boot/efi/EFI --bootloader-id=grub</nowiki>}}:<br />
<br />
<efi-directory>/<EFI or efi>/<bootloader-id> == <boot-directory>/grub == /boot/efi/EFI/grub<br />
<br />
In {{ic|<nowiki>--efi-directory=/boot/efi --boot-directory=/boot/efi/EFI --bootloader-id=arch_grub</nowiki>}}:<br />
<br />
<efi-directory>/<EFI or efi>/<bootloader-id> == /boot/efi/EFI/arch_grub<br />
<boot-directory>/grub == /boot/efi/EFI/grub<br />
<br />
In {{ic|<nowiki>--efi-directory=/boot/efi --boot-directory=/boot --bootloader-id=arch_grub</nowiki>}}:<br />
<br />
<efi-directory>/<EFI or efi>/<bootloader-id> == /boot/efi/EFI/arch_grub<br />
<boot-directory>/grub == /boot/grub<br />
<br />
In {{ic|<nowiki>--efi-directory=/boot/efi --boot-directory=/boot --bootloader-id=grub</nowiki>}}:<br />
<br />
<efi-directory>/<EFI or efi>/<bootloader-id> == /boot/efi/EFI/grub<br />
<boot-directory>/grub == /boot/grub<br />
<br />
The {{ic|<nowiki><efi-directory>/<EFI or efi>/<bootloader-id>/grubx64.efi</nowiki>}} is an exact copy of {{ic|<nowiki><boot-directory>/grub/x86_64-efi/core.efi</nowiki>}}.<br />
<br />
{{Note|In GRUB2 2.00~beta4, the {{ic|grub-install}} option {{ic|--efi-directory}} replaces {{ic|--root-directory}} and the latter is deprecated.}}<br />
{{Note|The options {{ic|--efi-directory}} and {{ic|--bootloader-id}} are specific to GRUB2 UEFI.}}<br />
<br />
In all the cases the UEFI SYSTEM PARTITION should be mounted for {{ic|grub-install}} to install {{ic|grubx64.efi}} in it, which will be launched by the firmware (using the {{ic|efibootmgr}} created boot entry in non-Mac systems).<br />
<br />
If you notice carefully, there is no <device_path> option (Eg: {{ic|/dev/sda}}) at the end of the {{ic|grub-install}} command unlike the case of setting up GRUB2 for BIOS systems. Any <device_path> provided will be ignored by the install script as UEFI bootloaders do not use MBR or Partition boot sectors at all.<br />
<br />
You may now be able to UEFI boot your system by creating a {{ic|grub.cfg}} file by following [[#Generate_GRUB2_UEFI_Config_file]] and [[#Create_GRUB2_entry_in_the_Firmware_Boot_Manager]].<br />
<br />
===== Create GRUB2 entry in the Firmware Boot Manager =====<br />
<br />
====== Non-Mac UEFI systems ======<br />
<br />
{{ic|grub-install}} will ensure that {{ic|/boot/efi/EFI/arch_grub/grubx64.efi}} is launched by default if it detects {{ic|efibootmgr}} and if it is able to access UEFI Runtime Services. Follow [[Unified_Extensible_Firmware_Interface#efibootmgr]] for more info.<br />
<br />
If you have problems running GRUB2 in UEFI mode you can try the following (worked on an ASUS Z68 mainboard):<br />
<br />
# cp /boot/efi/EFI/arch_grub/grubx64.efi /boot/efi/shellx64.efi<br />
<br />
or<br />
<br />
# cp /boot/efi/EFI/arch_grub/grubx64.efi /boot/efi/EFI/shellx64.efi<br />
<br />
or<br />
<br />
# cp /boot/efi/EFI/arch_grub/grubx64.efi /boot/efi/EFI/tools/shellx64.efi<br />
<br />
After this launch the UEFI Shell from the UEFI setup/menu (in ASUS UEFI BIOS, switch to advanced mode, press Exit in the top right corner and choose "Launch EFI shell from filesystem device"). The GRUB2 menu will show up and you can boot into your system. Afterwards you can use efibootmgr to setup a menu entry (see above).<br />
<br />
====== Apple Mac EFI systems ======<br />
<br />
{{Note|TODO: GRUB upstream Bazaar mactel branch http://bzr.savannah.gnu.org/lh/grub/branches/mactel/changes. No further update from grub developers.}}<br />
{{Note|TODO: Experimental "bless" utility for Linux by Fedora developers - {{AUR|mactel-boot}}. Requires more testing.}}<br />
<br />
Use bless command from within Mac OS X to set {{ic|grubx64.efi}} as the default boot option. You can also boot from the Mac OS X install disc and launch a Terminal there if you only have Linux installed. In the Terminal, create a directory and mount the EFI System Partition:<br />
<br />
# cd /Volumes<br />
# mkdir efi<br />
# mount -t msdos /dev/disk0s1 /Volumes/efi<br />
<br />
Then run bless on {{ic|grub.efi}} and on the EFI partition to set them as the default boot options.<br />
<br />
# bless --folder=/Volumes/efi --file=/Volumes/efi/efi/arch_grub/grubx64.efi --setBoot<br />
# bless --mount=/Volumes/efi --file=/Volumes/efi/efi/arch_grub/grubx64.efi --setBoot<br />
<br />
More info at https://help.ubuntu.com/community/UEFIBooting#Apple_Mac_EFI_systems_.28both_EFI_architecture.29.<br />
<br />
===== Generate GRUB2 UEFI Config file =====<br />
<br />
Finally, generate a configuration for GRUB2 (this is explained in greater detail in the Configuration section):<br />
<br />
# grub-mkconfig -o <boot-directory>/grub/grub.cfg<br />
<br />
{{Note|The file path is {{ic|<boot-directory>/grub/grub.cfg}}, NOT {{ic|<boot-directory>/grub/x86_64-efi/grub.cfg}}.}}<br />
<br />
If you used {{ic|<nowiki>--boot-directory=/boot</nowiki>}}:<br />
<br />
# grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
If you used {{ic|<nowiki>--boot-directory=/boot/efi/EFI</nowiki>}}:<br />
<br />
# grub-mkconfig -o /boot/efi/EFI/grub/grub.cfg<br />
<br />
This is independent of the value of {{ic|--bootloader-id}} option.<br />
<br />
If GRUB2 complains about "no suitable mode found" while booting, try [[#Correct_GRUB2_No_Suitable_Mode_Found_Error]].<br />
<br />
===== Create GRUB2 Standalone UEFI Application =====<br />
<br />
It is possible to create a {{ic|grubx64_standalone.efi}} application which has all the modules embeddded in a memdisk within the uefi application, thus removing the need for having a separate directory populated with all the GRUB2 uefi modules and other related files. This is done using the {{ic|grub-mkstandalone}} command which is included in {{Pkg|grub-common}} >= 1:1.99-6 package.<br />
<br />
The easiest way to do this would be with the install command already mentioned before, but specifying the modules to include. For example:<br />
<br />
# grub-mkstandalone --directory="/usr/lib/grub/x86_64-efi/" --format="x86_64-efi" --compression="xz" \<br />
--output="/boot/efi/EFI/arch_grub/grubx64_standalone.efi" <any extra files you want to include><br />
<br />
The {{ic|grubx64_standalone.efi}} file expects {{ic|grub.cfg}} to be within its $prefix which is {{ic|(memdisk)/boot/grub}}. The memdisk is embedded within the efi app. The {{ic|grub-mkstandlone}} script allow passing files to be included in the memdisk image to be as the arguments to the script (in <any extra files you want to include>).<br />
<br />
If you have the {{ic|grub.cfg}} at {{ic|/home/user/Desktop/grub.cfg}}, then create a temporary {{ic|/home/user/Desktop/boot/grub/}} directory, copy the {{ic|/home/user/Desktop/grub.cfg}} to {{ic|/home/user/Desktop/boot/grub/grub.cfg}}, cd into {{ic|/home/user/Desktop/boot/grub/}} and run:<br />
<br />
# grub-mkstandalone --directory="/usr/lib/grub/x86_64-efi/" --format="x86_64-efi" --compression="xz" \<br />
--output="/boot/efi/EFI/arch_grub/grubx64_standalone.efi" "boot/grub/grub.cfg"<br />
<br />
The reason to cd into {{ic|/home/user/Desktop/boot/grub/}} and to pass the file path as {{ic|boot/grub/grub.cfg}} (notice the lack of a leading slash - boot/ vs /boot/ ) is because {{ic|dir1/dir2/file}} is included as {{ic|(memdisk)/dir1/dir2/file}} by the {{ic|grub-mkstandalone}} script. <br />
<br />
If you pass {{ic|/home/user/Desktop/grub.cfg}} the file will be included as {{ic|(memdisk)/home/user/Desktop/grub.cfg}}. If you pass {{ic|/home/user/Desktop/boot/grub/grub.cfg}} the file will be included as {{ic|(memdisk)/home/user/Desktop/boot/grub/grub.cfg}}. That is the reason for cd'ing into {{ic|/home/user/Desktop/boot/grub/}} and passing {{ic|boot/grub/grub.cfg}}, to include the file as {{ic|(memdisk)/boot/grub/grub.cfg}}, which is what {{ic|grub.efi}} expects the file to be.<br />
<br />
You need to create an UEFI Boot Manager entry for {{ic|/boot/efi/EFI/arch_grub/grubx64_standalone.efi}} using {{ic|efibootmgr}}. Follow [[#Create GRUB2 entry in the Firmware Boot Manager]].<br />
<br />
===== Multiboot in UEFI =====<br />
<br />
====== Chainload Microsoft Windows x86_64 UEFI-GPT ======<br />
<br />
Find the UUID of the FAT32 filesystem in the UEFI SYSTEM PARTITION where the Windows UEFI Bootloader files reside. For example, if Windows {{ic|bootmgfw.efi}} exists at {{ic|/boot/efi/EFI/Microsoft/Boot/bootmgfw.efi}} (ignore the upper-lower case differences since that is immaterial in FAT filesystem):<br />
<br />
# grub-probe --target=fs_uuid /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi<br />
1ce5-7f28<br />
<br />
# grub-probe --target=hints_string /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi<br />
--hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1<br />
<br />
Then, add this code to {{ic|/boot/grub/grub.cfg}} OR {{ic|/boot/efi/EFI/grub/grub.cfg}} to chainload Windows x86_64 (Vista SP1+, 7 or 8) installed in UEFI-GPT mode:<br />
<br />
menuentry "Microsoft Windows x86_64 UEFI-GPT" {<br />
insmod part_gpt<br />
insmod fat<br />
insmod search_fs_uuid<br />
insmod chain<br />
search --fs-uuid --no-floppy --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 1ce5-7f28<br />
chainloader /efi/Microsoft/Boot/bootmgfw.efi<br />
}<br />
<br />
== Configuration ==<br />
<br />
You can also choose to automatically generate or manually edit {{ic|grub.cfg}}.<br />
<br />
{{Note|For EFI systems, if GRUB2 was installed with the {{ic|--boot-directory}} option set, the {{ic|grub.cfg}} file must be placed in the same directory as {{ic|grubx64.efi}}. Otherwise, the {{ic|grub.cfg}} file goes in {{ic|/boot/grub/}}, just like in the BIOS version of GRUB2.}}<br />
<br />
{{Note|Here is a quite complete description of how to configure GRUB2: http://members.iinet.net/~herman546/p20/GRUB2%20Configuration%20File%20Commands.html }}<br />
<br />
=== Automatically generating using grub-mkconfig (Recommended) ===<br />
<br />
The GRUB2 {{ic|menu.lst}} equivalent configuration files are {{ic|/etc/default/grub}} and {{ic|/etc/grub.d/*}}. {{ic|grub-mkconfig}} uses these files to generate {{ic|grub.cfg}}. By default the script outputs to stdout. To generate a {{ic|grub.cfg}} file run the command:<br />
<br />
# grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
{{ic|/etc/grub.d/10_linux}} is set to automatically add menu items for Arch linux that work out of the box, to any generated configuration. Other operating systems may need to be added manually by editing {{ic|/etc/grub.d/40_custom}}<br />
<br />
==== Additional arguments ====<br />
<br />
To pass custom additional arguments to the Linux image, you can set the {{ic|GRUB_CMDLINE_LINUX}} variable in {{ic|/etc/default/grub}}. This is analogous to adding commands to the kernel line in GRUB Legacy.<br />
<br />
For example, use {{ic|<nowiki>GRUB_CMDLINE_LINUX="resume=/dev/sdaX"</nowiki>}} where {{ic|sda'''X'''}} is your swap partition to enable resume after hibernation.<br />
<br />
You can also use {{ic|<nowiki>GRUB_CMDLINE_LINUX="resume=/dev/disk/by-uuid/${swap_uuid}"</nowiki>}}, where {{ic|${swap_uuid} }} is the [[Persistent_block_device_naming|UUID]] of your swap partition.<br />
<br />
=== Manually creating grub.cfg ===<br />
<br />
{{Warning|Editing this file is strongly ''not'' recommended. The file is generated by the {{ic|grub-mkconfig}} command, and it is best to edit your {{ic|/etc/default/grub}} or one of the scripts in the {{ic|/etc/grub.d}} folder.}}<br />
<br />
A basic GRUB config file uses the following options<br />
* {{ic|(hdX,Y)}} is the partition {{ic|Y}} on disk {{ic|X}}, partition numbers starting at 1, disk numbers starting at 0<br />
* {{ic|1=set default=N}} is the default boot entry that is chosen after timeout for user action<br />
* {{ic|1=set timeout=M}} is the time {{ic|M}} to wait in seconds for a user selection before default is booted<br />
* {{ic|<nowiki>menuentry "title" {entry options}</nowiki>}} is a boot entry titled {{ic|title}}<br />
* {{ic|1=set root=(hdX,Y)}} sets the boot partition, where the kernel and GRUB modules are stored (boot need not be a separate partition, and may simply be a directory under the "root" partition ({{ic|/}})<br />
<br />
An example configuration:<br />
<br />
{{hc<br />
|/boot/grub/grub.cfg<br />
|<nowiki><br />
# Config file for GRUB2 - The GNU GRand Unified Bootloader<br />
# /boot/grub/grub.cfg<br />
<br />
# DEVICE NAME CONVERSIONS<br />
#<br />
# Linux Grub<br />
# -------------------------<br />
# /dev/fd0 (fd0)<br />
# /dev/sda (hd0)<br />
# /dev/sdb2 (hd1,2)<br />
# /dev/sda3 (hd0,3)<br />
#<br />
<br />
# Timeout for menu<br />
set timeout=5<br />
<br />
# Set default boot entry as Entry 0<br />
set default=0<br />
<br />
# (0) Arch Linux<br />
menuentry "Arch Linux" {<br />
set root=(hd0,1)<br />
linux /vmlinuz-linux root=/dev/sda3 ro<br />
initrd /initramfs-linux.img<br />
}<br />
<br />
## (1) Windows<br />
#menuentry "Windows" {<br />
#set root=(hd0,3)<br />
#chainloader +1<br />
#}<br />
</nowiki>}}<br />
<br />
=== Dual-booting ===<br />
<br />
{{Note|If you want GRUB2 to automatically search for other systems, you may wish to install {{Pkg|os-prober}}.}}<br />
<br />
==== Using grub-mkconfig ====<br />
The best way to add other entries is editing the {{ic|/etc/grub.d/40_custom}}. The entries in this file will be automatically added when running {{ic|grub-mkconfig}}.<br />
After adding the new lines, run:<br />
# grub-mkconfig -o /boot/grub/grub.cfg <br />
to generate an updated {{ic|grub.cfg}}.<br />
<br />
===== With GNU/Linux =====<br />
<br />
Assuming that the other distro is on partition {{ic|sda2}}:<br />
<br />
menuentry "Other Linux" {<br />
set root=(hd0,2)<br />
linux /boot/vmlinuz (add other options here as required)<br />
initrd /boot/initrd.img (if the other kernel uses/needs one)<br />
}<br />
<br />
===== With FreeBSD =====<br />
<br />
Requires that FreeBSD is installed on a single partition with UFS. Assuming it is installed on {{ic|sda4}}:<br />
<br />
menuentry "FreeBSD" {<br />
set root=(hd0,4)<br />
chainloader +1<br />
}<br />
<br />
===== With Windows =====<br />
<br />
This assumes that your Windows partition is {{ic|sda3}}.<br />
<br />
# (2) Windows XP<br />
menuentry "Windows XP" {<br />
set root=(hd0,3)<br />
chainloader (hd0,3)+1<br />
}<br />
<br />
If the Windows bootloader is on an entirely different hard drive than GRUB, it may be necessary to trick Windows into believing that it is the first hard drive. This was possible in GRUB Legacy with {{ic|map}} and is now done with {{ic|drivemap}}. Assuming GRUB is on {{ic|hd0}} and Windows is on {{ic|hd2}}, you need to add the following after {{ic|set root}}:<br />
<br />
drivemap -s hd0 hd2<br />
<br />
==== With Windows via EasyBCD and NeoGRUB ====<br />
<br />
Since EasyBCD's NeoGRUB currently does not understand the GRUB2 menu format, chainload to it by replacing the contents of your {{ic|C:\NST\menu.lst}} file with lines similar to the following:<br />
<br />
default 0<br />
timeout 1<br />
<br />
title Chainload into GRUB v2<br />
root (hd0,7)<br />
kernel /boot/grub/i386-pc/core.img<br />
<br />
===Visual Configuration===<br />
<br />
In GRUB2 it is possible, by default, to change the look of the menu. Make sure to initialize, if not done already, GRUB2 graphical terminal, gfxterm, with proper video mode, gfxmode, in GRUB2. This can be seen in the section [[#Correct_GRUB2_No_Suitable_Mode_Found_Error]]. This video mode is passed by GRUB2 to the linux kernel via 'gfxpayload' so any visual configurations need this mode in order to be in effect.<br />
<br />
====Setting the framebuffer resolution ====<br />
<br />
GRUB2 can set the framebuffer for both GRUB2 itself and the kernel. The old {{ic|1=vga=}} way is deprecated. The preferred method is editing {{ic|/etc/default/grub}} as the following sample:<br />
<br />
GRUB_GFXMODE=1024x768x32<br />
GRUB_GFXPAYLOAD_LINUX=keep<br />
<br />
To generate the changes, run: <br />
grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
The {{ic|gfxpayload}} property will make sure the kernel keeps the resolution.<br />
<br />
{{Note|If this example does not work for you try to replace {{ic|1=gfxmode="1024x768x32"}} by {{ic|1=vbemode="0x105"}}. Remember to replace the specified resolution with one suitable for your screen.}}<br />
{{Note|To show all the modes you can use {{ic|1=# hwinfo --framebuffer}} (hwinfo is available in [community]), while at GRUB2 prompt you can use the {{ic|1=vbeinfo}} command.}}<br />
<br />
If this method does not work for you, the deprecated {{ic|1=vga=}} method will still work. Just<br />
add it next to the {{ic|1="GRUB_CMDLINE_LINUX_DEFAULT="}} line in {{ic|/etc/default/grub}}<br />
for eg: {{ic|1="GRUB_CMDLINE_LINUX_DEFAULT="quiet splash vga=792"}} will give you a {{ic|1024x768}} resolution.<br />
<br />
You can choose one of these resolutions: {{ic|640×480}}, {{ic|800×600}}, {{ic|1024×768}}, {{ic|1280×1024}}, {{ic|1600×1200}}<br />
<br />
====915resolution hack ====<br />
<br />
Some times for Intel graphic adapters neither {{ic|1=# hwinfo --framebuffer}} nor {{ic|1=vbeinfo}} will show you the desired resolution. In this case you can use {{ic|915resolution}} hack. This hack will temporarily modify video BIOS and add needed resolution. See [http://915resolution.mango-lang.org/ 915resolution's home page]<br />
<br />
In the following I will proceed with the example for my system. Please adjust the recipe for your needs. First you need to find a video mode which will be modified later. For that, run {{ic|915resolution}} in GRUB2 command shell:<br />
915resolution -l<br />
The output will be something like:<br />
Intel 800/900 Series VBIOS Hack : version 0.5.3<br />
...<br />
Mode 30 : 640x480, 8 bits/pixel<br />
...<br />
Next, our purpose is to overwrite mode 30. (You can choose what ever mode you want.) In the file {{ic|/etc/grub.d/00_header}} just before the {{ic|set gfxmode&#61;${GRUB_GFXMODE}}} line insert:<br />
915resolution 30 1440 900<br />
Here we are overwriting the mode {{ic|30}} with {{ic|1440x900}} resolution. Lastly we need to set {{ic|GRUB_GFXMODE}} as described earlier, regenerate GRUB2 configuration file and reboot to test changes:<br />
# grub-mkconfig -o /boot/grub/grub.cfg<br />
# reboot<br />
<br />
====Background image and bitmap fonts====<br />
<br />
GRUB2 comes with support for background images and bitmap fonts in {{ic|pf2}} format. The unifont font is included in the {{Pkg|grub-common}} package under the filename {{ic|unicode.pf2}}, or, as only ASCII characters under the name {{ic|ascii.pf2}}. <br />
<br />
Image formats supported include tga, png and jpeg, providing the correct modules are loaded. The maximum supported resolution depends on your hardware.<br />
<br />
Make sure you have set up the proper [https://wiki.archlinux.org/index.php/GRUB2#Setting_the_framebuffer_resolution framebuffer resolution].<br />
<br />
Edit {{ic|/etc/default/grub}} like this:<br />
GRUB_BACKGROUND="/boot/grub/myimage"<br />
#GRUB_THEME="/path/to/gfxtheme"<br />
<br />
{{Note|If you have installed GRUB on a separate partition, {{ic|/boot/grub/myimage}} becomes {{ic|/grub/myimage}}.}}<br />
<br />
To generate the changes and add the information into {{ic|grub.cfg}}, run: <br />
grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
If adding the splash image was successful, the user will see {{ic|"Found background image..."}} in the terminal as the command is executed. <br />
If this phrase is not seen, the image information was probably not incorporated into the {{ic|grub.cfg}} file.<br />
<br />
If the image is not displayed, check:<br />
* The path and the filename in {{ic|/etc/default/grub}} are correct.<br />
* The image is of the proper size and format (tga, png, 8-bit jpg).<br />
* The image was saved in the RGB mode, and is not indexed.<br />
* The console mode is not enabled in {{ic|/etc/default/grub}}.<br />
* The command {{ic|grub-mkconfig}} must be executed to place the background image information into the {{ic|/boot/grub/grub.cfg}} file.<br />
<br />
====Theme====<br />
<br />
Here is an example for configuring Starfield theme which was included in GRUB2 package.<br />
<br />
Edit {{ic|/etc/default/grub}}<br />
GRUB_THEME="/boot/grub/themes/starfield/theme.txt"<br />
<br />
Generate the changes:<br />
grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
If configuring the theme was successful, you'll see {{ic|Found theme: /boot/grub/themes/starfield/theme.txt}} in the terminal.<br />
Your splash image will usually not displayed when using a theme.<br />
<br />
====Menu colors====<br />
<br />
As in GRUB Legacy (0.9x), you can change the menu colors in GRUB2. The available colors for GRUB2 are at https://www.gnu.org/software/grub/manual/html_node/Theme-file-format.html#Theme-file-format.<br />
Here is an example:<br />
<br />
Edit {{ic|/etc/default/grub}}:<br />
GRUB_COLOR_NORMAL="light-blue/black"<br />
GRUB_COLOR_HIGHLIGHT="light-cyan/blue"<br />
<br />
Generate the changes:<br />
grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
====Hidden menu====<br />
<br />
One of the unique features of GRUB2 is hiding/skipping the menu and showing it by holding {{keypress|Esc}} when needed. You can also adjust whether you want to see the timeout counter.<br />
<br />
Edit {{ic|/etc/default/grub}} as you wish. Here is an example where the comments from the beginning of the two lines have been removed to enable the feature, the timeout has been set to five seconds and to be shown to the user:<br />
GRUB_HIDDEN_TIMEOUT=5<br />
GRUB_HIDDEN_TIMEOUT_QUIET=false<br />
<br />
and run:<br />
grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
====Disable framebuffer====<br />
<br />
Users who use NVIDIA proprietary driver might wish to disable GRUB2's framebuffer as it can cause problems with the binary driver.<br />
<br />
To disable framebuffer, edit {{ic|/etc/default/grub}} and uncomment the following line:<br />
GRUB_TERMINAL_OUTPUT=console<br />
<br />
and run:<br />
grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
=== Other Options ===<br />
<br />
==== LVM ====<br />
<br />
If you use [[LVM]] for your {{ic|/boot}}, add the following before menuentry lines:<br />
<br />
insmod lvm<br />
<br />
and specify your root in the menuentry as:<br />
<br />
set root=(''lvm_group_name''-''lvm_logical_boot_partition_name'')<br />
<br />
Example:<br />
<br />
# (0) Arch Linux<br />
menuentry "Arch Linux" {<br />
insmod lvm<br />
set root=(VolumeGroup-lv_boot)<br />
# you can only set following two lines<br />
linux /vmlinuz-linux root=/dev/mapper/VolumeGroup-root ro<br />
initrd /initramfs-linux.img<br />
}<br />
<br />
==== RAID ====<br />
<br />
GRUB2 provides convenient handling of RAID volumes. You need to add {{ic|insmod raid}} which allows you to address the volume natively. For example, {{ic|/dev/md0}} becomes:<br />
set root=(md0)<br />
<br />
whereas a partitioned RAID volume (e.g. {{ic|/dev/md0p1}}) becomes:<br />
set root=(md0,1)<br />
<br />
==== Persistent block device naming ====<br />
You can use UUIDs to detect partitions instead of the "old" {{ic|/dev/sd*}} and {{ic|/dev/hd*}} scheming. It has the advantage of detecting partitions by their unique UUIDs, which is needed by some people booting with complicated partition setups.<br />
<br />
UUIDs are used by default in the recent versions of GRUB2 - there is no downside in it anyway except that you need to re-generate the {{ic|grub.cfg}} file every time you resize or reformat your partitions. Remember this when modifying partitions with Live-CD.<br />
<br />
The recent versions of GRUB2 use UUIDs by default. You can re-enable the use of UUIDS by simply commenting the UUID line (this is also what it looks like by default):<br />
#GRUB_DISABLE_LINUX_UUID=true<br />
you can also just set the value as {{ic|false}} as shown here:<br />
GRUB_DISABLE_LINUX_UUID=false<br />
<br />
Either way, do not forget to generate the changes:<br />
grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
==== Using Labels ====<br />
<br />
It is possible to use labels, human-readable strings attached to filesystems, by using the {{ic|--label}} option to {{ic|search}}. First of all, label your existing partition:<br />
# tune2fs -L a <LABEL> <PARTITION><br />
<br />
Then, add an entry using labels. An example of this:<br />
<br />
menuentry "Arch Linux, session texte" {<br />
search --label --no-floppy --set=root archroot<br />
linux /boot/vmlinuz-linux root=/dev/disk/by-label/archroot ro<br />
initrd /boot/initramfs-linux.img<br />
}<br />
<br />
==== Recall previous entry ====<br />
<br />
GRUB2 can remember the last entry you booted from and use this as the default entry to boot from next time. This is useful if you have multiple kernels (i.e., the current Arch one and the LTS kernel as a fallback option) or operating systems. To do this, edit {{ic|/etc/default/grub}} and change the setting of {{ic|GRUB_DEFAULT}}:<br />
<br />
GRUB_DEFAULT=saved<br />
<br />
This ensures that GRUB will default to the saved entry. To enable saving the selected entry, add the following line to {{ic|/etc/default/grub}}:<br />
<br />
GRUB_SAVEDEFAULT=true<br />
<br />
{{Note|Manually added menu items, eg Windows in {{ic|/etc/grub.d/40_custom}}, will need {{ic|savedefault}} added. Remember to regenerate your configuration file.}}<br />
<br />
==== Security ====<br />
<br />
If you want to secure GRUB2 so it is not possible for anyone to change boot parameters or use the command line, you can add a user/password combination to GRUB2's configuration files. To do this, run the command {{ic|grub-mkpasswd_pbkdf2}}. Enter a password and confirm it. The output will look like this:<br />
<br />
{{bc|<nowiki><br />
Your PBKDF2 is grub.pbkdf2.sha512.10000.C8ABD3E93C4DFC83138B0C7A3D719BC650E6234310DA069E6FDB0DD4156313DA3D0D9BFFC2846C21D5A2DDA515114CF6378F8A064C94198D0618E70D23717E82.509BFA8A4217EAD0B33C87432524C0B6B64B34FBAD22D3E6E6874D9B101996C5F98AB1746FE7C7199147ECF4ABD8661C222EEEDB7D14A843261FFF2C07B1269A</nowiki>}}Then, add the following to {{ic|/etc/grub.d/00_header}}:<br />
{{bc|<nowiki>cat << EOF<br />
<br />
set superusers="username"<br />
password_pbkdf2 username <password><br />
<br />
EOF</nowiki>}}<br />
where {{ic|<password>}} is the string generated by {{ic|grub-mkpasswd_pbkdf2}}.<br />
<br />
Regenerate your configuration file. Your GRUB2 command line, boot parameters and all boot entries are now protected.<br />
<br />
This can be relaxed and further customized with more users as described in the "Security" part of [https://www.gnu.org/software/grub/manual/grub.html#Security the GRUB manual].<br />
<br />
==== Root Encryption ====<br />
<br />
To let GRUB2 automatically add the kernel parameters for root encryption,<br />
add {{ic|1=cryptdevice=/dev/yourdevice:label}} to {{ic|GRUB_CMDLINE_LINUX}} in {{ic|/etc/defaults/grub}}.<br />
<br />
Example with root mapped to {{ic|/dev/mapper/root}}:<br />
<br />
GRUB_CMDLINE_LINUX="cryptdevice=/dev/sda2:root"<br />
<br />
Also, disable the usage of UUIDs for the rootfs:<br />
<br />
GRUB_DISABLE_LINUX_UUID=true<br />
<br />
Regenerate the configuration.<br />
<br />
=== Booting an ISO Directly From GRUB2 ===<br />
Edit {{ic|/etc/grub.d/40_custom}} to add an entry for the target ISO. When finished, update the GRUB menu as with the usual {{ic|grub-mkconfig -o /boot/grub/grub.cfg}} (as root).<br />
<br />
==== Arch ISO ====<br />
{{Note|Be sure to adjust the {{ic|hdX,Y}} in the third line to point to the correct disk/partition number of the isofile. Also adjust the {{ic|img_dev}} line to match this same location. However, if booting the ISO from USB on a computer which also has one internal HDD, then it needs to be {{ic|hd0,Y}} with {{ic|sdbY}}, instead of {{ic|sdaY}}.}}<br />
<br />
menuentry "Archlinux-2011.08.19-netinstall-x86_64.iso" {<br />
set isofile="/archives/archlinux-2011.08.19-netinstall-x86_64.iso"<br />
loopback loop (hd0,7)$isofile<br />
linux (loop)/arch/boot/x86_64/vmlinuz archisolabel=ARCH_201108 img_dev=/dev/sda7 img_loop=$isofile earlymodules=loop<br />
initrd (loop)/arch/boot/x86_64/archiso.img<br />
}<br />
<br />
==== Ubuntu ISO ====<br />
{{Note|Be sure to adjust the {{ic|hdX,Y}} in the third line to point to the correct disk or partition number of the ISO file.}}<br />
<br />
menuentry "ubuntu-12.04-desktop-amd64.iso" {<br />
set isofile="/path/to/ubuntu-12.04-desktop-amd64.iso"<br />
loopback loop (hdX,Y)$isofile<br />
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile quiet noeject noprompt splash --<br />
initrd (loop)/casper/initrd.lz<br />
}<br />
<br />
== Using the command shell ==<br />
<br />
Since the MBR is too small to store all GRUB2 modules, only the menu and a few basic commands reside there. The majority of GRUB2 functionality remains in modules in {{ic|/boot/grub}}, which are inserted as needed. In error conditions (e.g. if the partition layout changes) GRUB2 may fail to boot. When this happens, a command shell may appear.<br />
<br />
GRUB2 offers multiple shells/prompts. If there is a problem reading the menu but the bootloader is able to find the disk, you will likely be dropped to the "normal" shell:<br />
sh:grub><br />
<br />
If there is a more serious problem (e.g. GRUB cannot find required files), you may instead be dropped to the "rescue" shell:<br />
grub rescue><br />
<br />
The rescue shell is a restricted subset of the normal shell, offering much less functionality. If dumped to the rescue shell, first try inserting the "normal" module, then starting the "normal" shell:<br />
grub rescue> set prefix=(hdX,Y)/boot/grub<br />
grub rescue> insmod (hdX,Y)/boot/grub/i386-pc/normal.mod<br />
rescue:grub> normal<br />
<br />
=== Pager support ===<br />
<br />
GRUB2 supports pager for reading commands that provide long output (like the help command). This works only in normal shell mode and not in rescue mode. To enable pager, in GRUB2 command shell type:<br />
sh:grub> set pager=1<br />
<br />
== GUI configuration tools ==<br />
<br />
Following package may be installed from [[AUR]]<br />
* [https://aur.archlinux.org/packages.php?ID=44020 grub-customizer] (requires gettext gksu gtkmm hicolor-icon-theme openssl)<br />
*:Customize the bootloader (GRUB2 or BURG)<br />
* [http://kde-apps.org/content/show.php?content=139643 grub2-editor] (requires kdelibs)<br />
*:A KDE4 control module for configuring the GRUB2 bootloader<br />
* [http://kde-apps.org/content/show.php?content=137886 kcm-grub2] (requires kdelibs python2-qt kdebindings-python)<br />
*:This Kcm module manages the most common settings of Grub2.<br />
* [http://sourceforge.net/projects/startup-manager/ startupmanager] (requires gnome-python imagemagick yelp python2 xorg-xrandr)<br />
*:GUI app for changing the settings of GRUB, GRUB2, Usplash and Splashy<br />
<br />
== parttool or legacy hide/unhide ==<br />
<br />
If you have a Windows 9x paradigm with hidden C:\ disks GRUB Legacy had the hide/unhide feature. In GRUB2 this has been replaced by {{ic|parttool}}. For example, to boot the third C:\ disk of three Windows 9x installations on the CLI enter the CLI and:<br />
parttool hd0,1 hidden+ boot-<br />
parttool hd0,2 hidden+ boot-<br />
parttool hd0,3 hidden- boot+<br />
set root=hd0,3<br />
chainloader +1<br />
boot<br />
<br />
== Using the rescue console ==<br />
<br />
See [[#Using the command shell]] first. If unable to activate the standard shell, one possible solution is to boot using a live CD or some other rescue disk to correct configuration errors and reinstall GRUB. However, such a boot disk is not always available (nor necessary); the rescue console is surprisingly robust.<br />
<br />
The available commands in GRUB rescue include {{ic|insmod}}, {{ic|ls}}, {{ic|set}}, and {{ic|unset}}. This example uses {{ic|set}} and {{ic|insmod}}. {{ic|set}} modifies variables and {{ic|insmod}} inserts new modules to add functionality.<br />
<br />
Before starting, the user must know the location of their {{ic|/boot}} partition (be it a separate partition, or a subdirectory under their root):<br />
grub rescue> set prefix=(hdX,Y)/boot/grub<br />
<br />
where X is the physical drive number and Y is the partition number.<br />
<br />
To expand console capabilities, insert the {{ic|linux}} module:<br />
grub rescue> insmod (hdX,Y)/boot/grub/linux.mod<br />
<br />
{{Note|With a separate boot partition, omit {{ic|/boot}} from the path, (i.e. type {{ic|1=set prefix=(hdX,Y)/grub}} and {{ic|insmod (hdX,Y)/grub/linux.mod}}).}}<br />
<br />
This introduces the {{ic|linux}} and {{ic|initrd}} commands, which should be familiar (see [[#Configuration]]).<br />
<br />
An example, booting Arch Linux:<br />
set root=(hd0,5)<br />
linux /boot/vmlinuz-linux root=/dev/sda5<br />
initrd /boot/initramfs-linux.img<br />
boot<br />
<br />
With a separate boot partition, again change the lines accordingly:<br />
set root=(hd0,5)<br />
linux /vmlinuz-linux root=/dev/sda6<br />
initrd /initramfs-linux.img<br />
boot<br />
<br />
After successfully booting the Arch Linux installation, users can correct {{ic|grub.cfg}} as needed and then reinstall GRUB2.<br />
<br />
to reinstall GRUB2 and fix the problem completely, changing {{ic|/dev/sda}} if needed. See [[#Bootloader installation]] for details.<br />
<br />
== Combining the use of UUIDs and basic scripting ==<br />
<br />
If you like the idea of using UUIDs to avoid unreliable BIOS mappings or are struggling with GRUB's syntax, here is an example boot menu item that uses UUIDs and a small script to direct GRUB to the proper disk partitions for your system. All you need to do is replace the UUIDs in the sample with the correct UUIDs for your system. The example applies to a system with a boot and root partition. You will obviously need to modify the GRUB configuration if you have additional partitions:<br />
<br />
menuentry "Arch Linux 64" {<br />
# Set the UUIDs for your boot and root partition respectively<br />
set the_boot_uuid=ece0448f-bb08-486d-9864-ac3271bd8d07<br />
set the_root_uuid=c55da16f-e2af-4603-9e0b-03f5f565ec4a<br />
<br />
# (Note: This may be the same as your boot partition)<br />
<br />
# Get the boot/root devices and set them in the root and grub_boot variables<br />
search --fs-uuid --no-floppy --set=root $the_root_uuid<br />
search --fs-uuid --no-floppy --set=grub_boot $the_boot_uuid<br />
<br />
# Check to see if boot and root are equal.<br />
# If they are, then append /boot to $grub_boot (Since $grub_boot is actually the root partition)<br />
if [ $the_boot_uuid == $the_root_uuid] ; then<br />
set grub_boot=$grub_boot/boot<br />
fi<br />
<br />
# $grub_boot now points to the correct location, so the following will properly find the kernel and initrd<br />
linux ($grub_boot)/vmlinuz-linux root=/dev/disk/by-uuid/$uuid_os_root ro<br />
initrd ($grub_boot)/initramfs-linux.img<br />
}<br />
<br />
== Troubleshooting ==<br />
<br />
Any troubleshooting should be added here.<br />
<br />
=== Enable GRUB2 debug messages ===<br />
<br />
Add:<br />
<br />
set pager=1<br />
set debug=all<br />
<br />
to {{ic|grub.cfg}}.<br />
<br />
=== Correct GRUB2 No Suitable Mode Found Error ===<br />
<br />
If you get this error when booting any menuentry:<br />
<br />
error: no suitable mode found<br />
Booting however<br />
<br />
Then you need to initialize GRUB2 graphical terminal ({{ic|gfxterm}}) with proper video mode ({{ic|gfxmode}}) in GRUB2. This video mode is passed by GRUB2 to the linux kernel via 'gfxpayload'. In case of UEFI systems, if the GRUB2 video mode is not initialized, no kernel boot messages will be shown in the terminal (atleast until KMS kicks in).<br />
<br />
Copy {{ic|/usr/share/grub/unicode.pf2}} to ${GRUB2_PREFIX_DIR} ({{ic|/boot/grub/}} in case of BIOS and UEFI systems). If GRUB2 UEFI was installed with {{ic|1=--boot-directory=/boot/efi/EFI}} set, then the directory is {{ic|/boot/efi/EFI/grub/}}:<br />
<br />
# cp /usr/share/grub/unicode.pf2 ${GRUB2_PREFIX_DIR}<br />
<br />
If {{ic|/usr/share/grub/unicode.pf2}} does not exist, install {{Pkg|bdf-unifont}}, create the {{ic|unifont.pf2}} file and then copy it to {{ic|${GRUB2_PREFIX_DIR<nowiki>}</nowiki>}}:<br />
<br />
# grub-mkfont -o unicode.pf2 /usr/share/fonts/misc/unifont.bdf<br />
<br />
Then, in the {{ic|grub.cfg}} file, add the following lines to enable GRUB2 to pass the video mode correctly to the kernel, without of which you will only get a black screen (no output) but booting (actually) proceeds successfully without any system hang.<br />
<br />
BIOS systems:<br />
<br />
insmod vbe<br />
<br />
UEFI systems:<br />
<br />
insmod efi_gop<br />
insmod efi_uga<br />
<br />
After that add the following code (common to both BIOS and UEFI):<br />
<br />
insmod font<br />
<br />
if loadfont ${prefix}/fonts/unicode.pf2<br />
then<br />
insmod gfxterm<br />
set gfxmode=auto<br />
set gfxpayload=keep<br />
terminal_output gfxterm<br />
fi<br />
<br />
As you can see for gfxterm (graphical terminal) to function properly, {{ic|unicode.pf2}} font file should exist in {{ic|${GRUB2_PREFIX_DIR<nowiki>}</nowiki>}}.<br />
<br />
=== msdos-style error message ===<br />
<br />
grub-setup: warn: This msdos-style partition label has no post-MBR gap; embedding won't be possible!<br />
grub-setup: warn: Embedding is not possible. GRUB can only be installed in this setup by using blocklists.<br />
However, blocklists are UNRELIABLE and its use is discouraged.<br />
grub-setup: error: If you really want blocklists, use --force.<br />
<br />
This error may occur when you try installing GRUB2 in a VMware container. Read more about it [https://bbs.archlinux.org/viewtopic.php?pid=581760#p581760 here]. It happens when the first partition starts just after the MBR (block 63), without the usual space of 1 MiB (2048 blocks) before the first partition. Read [[#MBR_aka_msdos_partitioning_specific_instructions]]<br />
<br />
=== UEFI GRUB2 drops to shell ===<br />
<br />
If GRUB loads but drops you into the rescue shell with no errors, it may be because of a missing or misplaced {{ic|grub.cfg}}. This will happen if GRUB2 UEFI was installed with {{ic|--boot-directory}} and {{ic|grub.cfg}} is missing OR if the partition number of the boot partition changed (which is hard-coded into the {{ic|grubx64.efi}} file).<br />
<br />
=== UEFI GRUB2 not loaded ===<br />
In some cases the EFI may fail to load GRUB correctly. Provided everything is set up correctly, the output of:<br />
efibootmgr -v<br />
might look something like this:<br />
BootCurrent: 0000<br />
Timeout: 3 seconds<br />
BootOrder: 0000,0001,0002<br />
Boot0000* Grub HD(1,800,32000,23532fbb-1bfa-4e46-851a-b494bfe9478c)File(\efi\grub\grub.efi)<br />
Boot0001* Shell HD(1,800,32000,23532fbb-1bfa-4e46-851a-b494bfe9478c)File(\EfiShell.efi)<br />
Boot0002* Festplatte BIOS(2,0,00)P0: SAMSUNG HD204UI<br />
If everything works correctly, the EFI would now automatically load GRUB.<br />
<br />
If the screen only goes black for a second and the next boot option is tried afterwards, according to [https://bbs.archlinux.org/viewtopic.php?pid=981560#p981560 this post], moving GRUB to the partition root can help. The boot option has to be deleted and recreated afterwards. The entry for GRUB should look like this then:<br />
Boot0000* Grub HD(1,800,32000,23532fbb-1bfa-4e46-851a-b494bfe9478c)File(\grub.efi)<br />
<br />
=== Invalid signature ===<br />
If trying to boot Windows results in an "invalid signature" error, e.g. after reconfiguring partitions or adding additional hard drives, (re)move GRUB's device configuration and let it reconfigure:<br />
# mv /boot/grub/device.map /boot/grub/device.map-old<br />
# grub-mkconfig -o /boot/grub/grub.cfg<br />
{{ic|grub-mkconfig}} should now mention all found boot options, including Windows. If it works, remove {{ic|/boot/grub/device.map-old}}.<br />
<br />
=== Restore GRUB Legacy ===<br />
<br />
* Move GRUB2 files out of the way:<br />
<br />
# mv /boot/grub /boot/grub.nonfunctional<br />
<br />
* Copy GRUB Legacy back to {{ic|/boot}}:<br />
<br />
# cp -af /boot/grub-legacy /boot/grub<br />
<br />
* Replace MBR and next 62 sectors of sda with backed up copy<br />
<br />
{{Warning|This command also restores the partition table, so be careful of overwriting a modified partition table with the old one. It '''will''' mess your system.}}<br />
<br />
# dd if=/path/to/backup/first-sectors of=/dev/sdX bs=512 count=1<br />
<br />
A safer way is to restore only the MBR boot code use:<br />
<br />
# dd if=/path/to/backup/mbr-boot-code of=/dev/sdX bs=446 count=1<br />
<br />
== References ==<br />
<br />
# Official GRUB2 Manual - https://www.gnu.org/software/grub/manual/grub.html<br />
# Ubuntu wiki page for GRUB2 - https://help.ubuntu.com/community/Grub2<br />
# GRUB2 wiki page describing steps to compile for UEFI systems - https://help.ubuntu.com/community/UEFIBooting<br />
# Wikipedia's page on [[Wikipedia:BIOS Boot partition|BIOS Boot partition]]<br />
<br />
== External Links ==<br />
<br />
# [https://github.com/the-ridikulus-rat/My_Shell_Scripts/blob/master/grub/grub_bios.sh A Linux Bash Shell script to compile and install GRUB(2) for BIOS from BZR Source]<br />
# [https://github.com/the-ridikulus-rat/My_Shell_Scripts/blob/master/grub/grub_uefi.sh A Linux Bash Shell script to compile and install GRUB(2) for UEFI from BZR Source]</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=GRUB&diff=213925GRUB2012-07-22T09:51:31Z<p>Zodmaner: /* Visual Configuration */</p>
<hr />
<div>[[Category:Boot loaders]]<br />
[[cs:GRUB2]]<br />
[[es:GRUB2]]<br />
[[fr:GRUB2]]<br />
[[id:GRUB2]]<br />
[[it:GRUB2]]<br />
[[ru:GRUB2]]<br />
[[tr:GRUB2]]<br />
[[zh-CN:GRUB2]]<br />
[[zh-TW:GRUB2]]<br />
{{Article summary start}}<br />
{{Article summary text|Covers various aspects of the next generation of the GRand Unified Bootloader (GRUB2).}}<br />
{{Article summary heading|Overview}}<br />
{{Article summary text|{{Boot process overview}}}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Burg}} - Burg is a brand-new boot loader based on GRUB2. It uses a new object format which allows it to be built in a wider range of OS, including Linux, Windows, OS X, Solaris, FreeBSD, etc. It also has a highly configurable menu system which works in both text and graphic mode. <br />
{{Article summary heading|Resources}}<br />
{{Article summary link|GNU GRUB -- GNU Project|https://www.gnu.org/software/grub/}}<br />
{{Article summary end}}<br />
<br />
[https://www.gnu.org/software/grub/ GRUB2] is the next generation of the GRand Unified Bootloader (GRUB). GRUB2 is derived from [http://www.nongnu.org/pupa/ PUPA] which was a research project to investigate the next generation of GRUB. GRUB2 has been rewritten from scratch to clean up everything and provide modularity and portability [https://www.gnu.org/software/grub/grub-faq.en.html#q1].<br />
<br />
In brief, the ''bootloader'' is the first software program that runs when a computer starts. It is responsible for loading and transferring control to the Linux kernel. The kernel, in turn, initializes the rest of the operating system.<br />
<br />
== Preface ==<br />
Here is some information needs to be clarified:<br />
* The name ''GRUB'' officially refers to version ''2'' of the software, see [https://www.gnu.org/software/grub/]. If you are looking for the article on the legacy version, see [[GRUB Legacy]].<br />
<br />
* [[GRUB Legacy]] (i.e. version 0.9x) is considered legacy by upstream and is being replaced by GRUB2 and [[Syslinux]] in Arch Linux. See the news [https://www.archlinux.org/news/grub-legacy-no-longer-supported/ here]. Upstream recommends GRUB2 >=1.99 over GRUB Legacy, even for current GRUB Legacy users.<br />
<br />
* The [[Archboot]] ISO's installer script supports {{Pkg|grub-bios}} and {{Pkg|grub-efi-x86_64}} installation. The official installer script AIF (Arch Installation Framework) does not support GRUB(2) yet.<br />
<br />
* From 1.99-6 onwards, GRUB2 supports [[Btrfs]] as root (without a separate {{ic|/boot}} filesystem) compressed with either zlib or LZO.<br />
<br />
* For GRUB2 UEFI info, it is recommended to read the [[UEFI]], [[GPT]] and [[UEFI_Bootloaders]] pages before reading this page.<br />
<br />
=== Notes for current GRUB Legacy users ===<br />
* Although GRUB legacy will not be removed from your system and will stay fully functional, you should consider upgrading to GRUB version 2.x, or one of the other supported bootloaders.<br />
<br />
* Upgrade from [[GRUB Legacy]] to [[GRUB]](2) is the much same as installing GRUB from a running Arch Linux which is covered [[#From a running Arch Linux|below]].<br />
<br />
* There are differences in the commands of GRUB and GRUB2. Familiarize yourself with [https://www.gnu.org/software/grub/manual/grub.html#Commands GRUB2 commands] before proceeding (e.g. "find" has been replaced with "search").<br />
<br />
* GRUB2 is now ''modular'' and no longer requires "stage 1.5". As a result, the bootloader itself is limited -- modules are loaded from the hard drive as needed to expand functionality (e.g. for [[LVM]] or RAID support).<br />
<br />
* Device naming has changed between GRUB and GRUB2. Partitions are numbered from 1 instead of 0 while drives are still numbered from 0, and prefixed with partition-table type. For example, {{ic|/dev/sda1}} would be referred to as {{ic|(hd0,msdos1)}} (for MBR) or {{ic|(hd0,gpt1)}} (for GPT) using GRUB2.<br />
<br />
=== Preliminary Requirements for GRUB2 ===<br />
<br />
==== BIOS systems ====<br />
<br />
===== [[GPT]] specific instructions =====<br />
<br />
GRUB2 in BIOS-GPT configuration requires a BIOS Boot Partition to embed its {{ic|core.img}} in the absence of post-MBR gap in GPT partitioned systems (which is taken over by the GPT Primary Header and Primary Partition table). This partition is used by GRUB2 only in BIOS-GPT setups. No such partition type exists in case of MBR partitioning (at least not for GRUB2). This partition is also not required if the system is UEFI based, as no embedding of bootsectors takes place in that case. Syslinux does not require this partition.<br />
<br />
For a BIOS-GPT configuration, create a 2 MiB partition using cgdisk or GNU Parted with no filesystem. The location of the partition in the partition table does not matter but it should be within the first 2 TiB region of the disk. It is advisable to put it somewhere in the beginning of the disk before the {{ic|/boot}} partition. Set the partition type to "EF02" in cgdisk or {{ic|set <BOOT_PART_NUM> bios_grub on}} in GNU Parted.<br />
<br />
{{Note|This partition should be created before {{ic|grub-install}} or {{ic|grub-setup}} is run or before the '''Install Bootloader''' step of the Archlinux installer (if GRUB2 BIOS is selected as bootloader).}}<br />
<br />
===== [[MBR]] aka msdos partitioning specific instructions =====<br />
<br />
Usually the post-MBR gap (after the 512 byte MBR region and before the start of the 1st partition) in many MBR (or msdos disklabel) partitioned systems is 32 KiB when DOS compatibility cylinder alignment issues are satisfied in the partition table. However a post-MBR gap of about 1 to 2 MiB is recommended to provide sufficient room for embedding GRUB2's {{ic|core.img}} ({{bug|24103}}). It is advisable to use a partitioner which supports 1 MiB partition alignment to obtain this space as well as satisfy other non-512 byte sector issues (which are unrelated to embedding of {{ic|core.img}}).<br />
<br />
If you do not dual-boot with MS Windows (any version) in BIOS systems, it is advisable to switch to GPT partitioning - [[GUID_Partition_Table#Convert_from_MBR_to_GPT]]<br />
<br />
{{Note|Create the 2MiB partition mentioned above BEFORE you convert to GPT. If you do not, gparted will not resize your boot partition to allow its creation, and when you reboot GRUB2 will not know where to look.}}<br />
<br />
==== UEFI systems ====<br />
<br />
===== Create and Mount the UEFI SYSTEM PARTITION =====<br />
<br />
{{Note|It is recommended to read the [[UEFI]], [[GPT]] and [[UEFI_Bootloaders]] pages before reading this part.}}<br />
<br />
Follow [[Unified_Extensible_Firmware_Interface#Create_an_UEFI_System_Partition_in_Linux]] for instructions on creating a UEFI SYSTEM PARTITION. Then mount the UEFI SYSTEM PARTITION at {{ic|/boot/efi}}. If you have mounted the UEFISYS partition in some other mountpoint, replace {{ic|/boot/efi}} in the below instructions with that mountpoint:<br />
<br />
# mkdir -p /boot/efi<br />
# mount -t vfat <UEFISYS_PART_DEVICE> /boot/efi<br />
<br />
Create a <UEFI_SYSTEM_PARTITION>{{ic|/EFI}} directory, if it does not exist:<br />
<br />
# mkdir -p /boot/efi/EFI<br />
<br />
== Installation ==<br />
<br />
=== During Arch Linux installation ===<br />
<br />
* Skip the '''Install Bootloader''' step and exit the installer.<br />
* Configure the network:<br />
# aif -p partial-configure-network<br />
This will bring up a prompt; put in the network interface to use, (e.g., {{ic|eth0}}) and use DHCP for easy configuration.<br />
* If you did not configure the installed system's {{ic|/etc/resolv.conf}} file during installation (for instance, if you plan to let DHCP generate it later), you will need to copy the one generated by AIF when it configured the network:<br />
# cp /etc/resolv.conf /mnt/etc/resolv.conf<br />
* If you run into network issues in the pacman update step below, you may have needed to install the {{Pkg|net-tools}} package.<br />
* Check and see if the {{ic|dm_mod}} module is loaded. If it is not, load it manually:<br />
# lsmod | grep dm_mod<br />
# modprobe dm-mod<br />
{{Note|This is necessary at this point, and cannot be postponed after the chroot. If you try to use modprobe in a chroot environment that has a later kernel version from that of the installing device (at the time of writing, 2.6.33), modprobe will fail. This happens routinely using the Arch "net" installations.}}<br />
* From the installer's live shell, chroot to the installed system:<br />
# mount -o bind /dev /mnt/dev<br />
# mount -t proc /proc /mnt/proc/<br />
# mount -t sysfs /sys /mnt/sys/<br />
# chroot /mnt bash<br />
* Refresh the package list (with an extra {{ic|-y}} flag to force a refresh of all package lists even if they appear to be up to date):<br />
# pacman -Syy<br />
* Install the GRUB2 package as mentioned in the section [[#From a running Arch Linux]] (Note that the {{ic|dm-mod}} module has already been loaded, no need to do that again).<br />
<br />
=== From a running Arch Linux ===<br />
<br />
==== BIOS systems ====<br />
<br />
===== Backup Important Data =====<br />
<br />
Although a GRUB(2) installation should run smoothly, it is strongly recommended to keep the GRUB Legacy files before installing {{Pkg|grub-bios}}.<br />
<br />
# mv /boot/grub /boot/grub-legacy<br />
<br />
Backup the MBR which contains the boot code and partition table (Replace {{ic|/dev/sd'''X'''}} with your actual disk path)<br />
<br />
# dd if=/dev/sdX of=/path/to/backup/mbr_backup bs=512 count=1<br />
<br />
Only 446 bytes of the MBR contain boot code, the next 64 contain the partition table. If you do not want to overwrite your partition table when restoring, it is strongly advised to backup only the MBR boot code:<br />
<br />
# dd if=/dev/sdX of=/path/to/backup/bootcode_backup bs=446 count=1<br />
<br />
If unable to install GRUB2 correctly, see [[GRUB2#Restore_GRUB_Legacy]].<br />
<br />
===== Install grub-bios package =====<br />
<br />
The GRUB(2) packages can be installed with pacman (and will replace {{Pkg|grub-legacy}} or {{Pkg|grub}}, if it is installed):<br />
<br />
# pacman -S grub-bios<br />
<br />
{{Note|Simply installing the package won't update the {{ic|/boot/grub/i386-pc/core.img}} file and the GRUB(2) modules in {{ic|/boot/grub/i386-pc}}. You need to update them manually using {{ic|grub-install}} as explained below.}}<br />
<br />
Also load the device-mapper kernel module without which {{ic|grub-probe}} does not reliably detect disks and partitions:<br />
<br />
# modprobe dm_mod<br />
<br />
===== Install grub-bios boot files =====<br />
<br />
There are 3 ways to install GRUB(2) boot files in BIOS booting:<br />
*[[#Install_to_440-byte_MBR_boot_code_region]] (recommended) , <br />
*[[#Install_to_Partition_or_Partitionless_Disk]] (not recommended),<br />
*[[#Generate_core.img_alone]] (safest method, but requires another BIOS bootloader like [[grub-legacy]] or [[syslinux]] to be installed to chainload {{ic|/boot/grub/i386-pc/core.img}}). <br />
<br />
====== Install to 440-byte MBR boot code region ======<br />
<br />
To setup {{ic|grub-bios}} in the 440-byte Master Boot Record boot code region, populate the {{ic|/boot/grub}} directory, generate the {{ic|/boot/grub/i386-pc/core.img}} file, and embed it in the 32 KiB (minimum size - varies depending on partition alignment) post-MBR gap (MBR disks) or in BIOS Boot Partition (GPT disks), run:<br />
<br />
# grub-install --directory=/usr/lib/grub/i386-pc --target=i386-pc --boot-directory=/boot --recheck --debug /dev/sda<br />
# mkdir -p /boot/grub/locale<br />
# cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo<br />
<br />
where {{ic|/dev/sda}} is the destination of the installation (in this case the MBR of the first SATA disk). If you use [[LVM]] for your {{ic|/boot}}, you can install GRUB2 on multiple physical disks. <br />
<br />
The {{ic|--no-floppy}} tells {{ic|grub-bios}} utilities not to search for any floppy devices which reduces the overall execution time of {{ic|grub-install}} on many systems (it will also prevent the issue below from occurring). Otherwise you get an error that looks like this:<br />
<br />
grub-probe: error: Cannot get the real path of '/dev/fd0'<br />
Auto-detection of a filesystem module failed.<br />
Please specify the module with the option '--modules' explicitly.<br />
<br />
{{Note|{{ic|--no-floppy}} has been removed from {{ic|grub-install}} in 2.00~beta2 upstream release, and replaced with {{ic|--allow-floppy}}.}}<br />
<br />
{{Warning|Make sure to check the {{ic|/boot}} directory if you use the latter. Sometimes the {{ic| boot-directory}} parameter creates another {{ic|/boot}} folder inside of {{ic|/boot}}. A wrong install would look like: {{ic|/boot/boot/grub/}}.}}<br />
<br />
====== Install to Partition or Partitionless Disk ======<br />
<br />
{{Note|{{ic|grub-bios}} (any version - including upstream Bazaar repo) does not encourage installation to a partition boot sector or a partitionless disk like GRUB Legacy or syslinux does. This kind of setup is prone to breakage, especially during updates, and is not supported by Arch devs.}}<br />
<br />
To set up {{ic|grub-bios}} to a partition boot sector, to a partitionless disk (also called superfloppy) or to a floppy disk, run (using for example {{ic|/dev/sdaX}} as the {{ic|/boot}} partition):<br />
<br />
# chattr -i /boot/grub/i386-pc/core.img<br />
# grub-install --directory=/usr/lib/grub/i386-pc --target=i386-pc --boot-directory=/boot --recheck --force --debug /dev/sdaX<br />
# mkdir -p /boot/grub/locale<br />
# cp /usr/share/locale/en@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo<br />
# chattr +i /boot/grub/i386-pc/core.img<br />
<br />
You need to use the {{ic|--force}} option to allow usage of blocklists and should not use {{ic|1=--grub-setup=/bin/true}} (which is similar to simply generating {{ic|core.img}}).<br />
<br />
{{ic|grub-install}} will give out warnings like which should give you the idea of what might go wrong with this approach:<br />
<br />
/sbin/grub-setup: warn: Attempting to install GRUB to a partitionless disk or to a partition. This is a BAD idea.<br />
/sbin/grub-setup: warn: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. <br />
However, blocklists are UNRELIABLE and their use is discouraged.<br />
<br />
Without {{ic|--force}} you may get the below error and {{ic|grub-setup}} will not setup its boot code in the partition boot sector:<br />
<br />
/sbin/grub-setup: error: will not proceed with blocklists<br />
<br />
With {{ic|--force}} you should get:<br />
<br />
Installation finished. No error reported.<br />
<br />
The reason why {{ic|grub-setup}} does not by default allow this is because in case of partition or a partitionless disk is that {{ic|grub-bios}} relies on embedded blocklists in the partition bootsector to locate the {{ic|/boot/grub/i386-pc/core.img}} file and the prefix dir {{ic|/boot/grub}}. The sector locations of {{ic|core.img}} may change whenever the filesystem in the partition is being altered (files copied, deleted etc.). For more info see https://bugzilla.redhat.com/show_bug.cgi?id=728742 and https://bugzilla.redhat.com/show_bug.cgi?id=730915.<br />
<br />
The workaround for this is to set the immutable flag on {{ic|/boot/grub/i386-pc/core.img}} (using chattr command as mentioned above) so that the sector locations of the {{ic|core.img}} file in the disk is not altered. The immutable flag on {{ic|/boot/grub/i386-pc/core.img}} needs to be set only if {{ic|grub-bios}} is installed to a partition boot sector or a partitionless disk, not in case of installtion to MBR or simple generation of {{ic|core.img}} without embedding any bootsector (mentioned above).<br />
<br />
====== Generate core.img alone ======<br />
<br />
To populate the {{ic|/boot/grub}} directory and generate a {{ic|/boot/grub/i386-pc/core.img}} file '''without''' embedding any {{ic|grub-bios}} bootsector code in the MBR, post-MBR region, or the partition bootsector, add {{ic|1=--grub-setup=/bin/true}} to {{ic|grub-install}}:<br />
<br />
# grub-install --directory=/usr/lib/grub/i386-pc --target=i386-pc --grub-setup=/bin/true --boot-directory=/boot --recheck --debug /dev/sda<br />
# mkdir -p /boot/grub/locale<br />
# cp /usr/share/locale/en@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo<br />
<br />
You can then chainload GRUB2's {{ic|core.img}} from GRUB Legacy or syslinux as a Linux kernel or a multiboot kernel.<br />
<br />
===== Generate GRUB2 BIOS Config file =====<br />
<br />
Finally, generate a configuration for GRUB2 (this is explained in greater detail in the Configuration section):<br />
<br />
# grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
{{Note|The file path is {{ic|/boot/grub/grub.cfg}}, NOT {{ic|/boot/grub/i386-pc/grub.cfg}}.}}<br />
<br />
If grub2 complains about "no suitable mode found" while booting, go to [[#Correct_GRUB2_No_Suitable_Mode_Found_Error]].<br />
<br />
If {{ic|grub-mkconfig}} fails, convert your {{ic|/boot/grub/menu.lst}} file to {{ic|/boot/grub/grub.cfg}} using:<br />
<br />
# grub-menulst2cfg /boot/grub/menu.lst /boot/grub/grub.cfg<br />
<br />
For example:<br />
<br />
{{hc|/boot/grub/menu.lst|<nowiki><br />
default=0<br />
timeout=5<br />
<br />
title Arch Linux Stock Kernel<br />
root (hd0,0)<br />
kernel /vmlinuz-linux root=/dev/sda2 ro<br />
initrd /initramfs-linux.img<br />
<br />
title Arch Linux Stock Kernel Fallback<br />
root (hd0,0)<br />
kernel /vmlinuz-linux root=/dev/sda2 ro<br />
initrd /initramfs-linux-fallback.img<br />
</nowiki>}}<br />
<br />
{{hc|/boot/grub/grub.cfg|<nowiki><br />
set default='0'; if [ x"$default" = xsaved ]; then load_env; set default="$saved_entry"; fi<br />
set timeout=5<br />
<br />
menuentry 'Arch Linux Stock Kernel' {<br />
set root='(hd0,1)'; set legacy_hdbias='0'<br />
legacy_kernel '/vmlinuz-linux' '/vmlinuz-linux' 'root=/dev/sda2' 'ro'<br />
legacy_initrd '/initramfs-linux.img' '/initramfs-linux.img'<br />
<br />
}<br />
<br />
menuentry 'Arch Linux Stock Kernel Fallback' {<br />
set root='(hd0,1)'; set legacy_hdbias='0'<br />
legacy_kernel '/vmlinuz-linux' '/vmlinuz-linux' 'root=/dev/sda2' 'ro'<br />
legacy_initrd '/initramfs-linux-fallback.img' '/initramfs-linux-fallback.img'<br />
}<br />
</nowiki>}}<br />
<br />
If you forgot to create a GRUB2 {{ic|/boot/grub/grub.cfg}} config file and simply rebooted into GRUB2 Command Shell, type:<br />
<br />
sh:grub> insmod legacycfg<br />
sh:grub> legacy_configfile ${prefix}/menu.lst<br />
<br />
Boot into Arch and re-create the proper GRUB2 {{ic|/boot/grub/grub.cfg}} config file.<br />
<br />
{{Note|This option works only in BIOS systems, not in UEFI systems.}}<br />
<br />
===== Multiboot in BIOS =====<br />
<br />
====== Boot Microsoft Windows installed in BIOS-MBR mode ======<br />
<br />
{{Note|GRUB2 supports booting {{ic|bootmgr}} directly and chainload of partition boot sector is no longer required to boot Windows in a BIOS-MBR setup.}}<br />
<br />
Find the UUID of the NTFS filesystem of the Windows's SYSTEM PARTITION where the {{ic|bootmgr}} and its files reside. For example, if Windows {{ic|bootmgr}} exists at {{ic|/media/Windows/bootmgr}}:<br />
<br />
# grub-probe --target=fs_uuid /media/Windows/bootmgr<br />
69B235F6749E84CE<br />
<br />
Then, add the below code to {{ic|/etc/grub.d/40_custom}} and regenerate {{ic|grub.cfg}} with {{ic|grub-mkconfig}} as explained above to boot Windows (Vista, 7 or 8) installed in BIOS-MBR mode:<br />
<br />
<pre><br />
#!/bin/sh<br />
menuentry "Microsoft Windows 7 BIOS-MBR" {<br />
insmod part_msdos<br />
insmod ntfs<br />
insmod search_fs_uuid<br />
insmod ntldr <br />
search --fs-uuid --no-floppy --set=root 69B235F6749E84CE<br />
ntldr /bootmgr<br />
}</pre><br />
<br />
For Windows XP:<br />
<br />
menuentry "Microsoft Windows XP" {<br />
insmod part_msdos<br />
insmod ntfs<br />
insmod search_fs_uuid<br />
insmod ntldr <br />
search --fs-uuid --no-floppy --set=root 69B235F6749E84CE<br />
ntldr /ntldr<br />
}<br />
<br />
==== UEFI systems ====<br />
<br />
{{Note|It is recommended to read the [[UEFI]], [[GPT]] and [[UEFI_Bootloaders]] pages before reading this part.}}<br />
<br />
===== Install grub-uefi package =====<br />
<br />
{{Note|Unless specified as EFI 1.x , EFI and UEFI terms are used interchangeably to denote UEFI 2.x firmware. Also unless stated explicitely, the instructions are general and not Mac specific. Some of them may not work or may be different in Macs. Apple's EFI implementation is neither a EFI 1.x version nor UEFI 2.x version but mixes up both. This kind of firmware does not fall under any one UEFI Specification version and is therefore not a standard UEFI firmware.}}<br />
<br />
GRUB2 UEFI bootloader is available in Arch Linux only from version 1.99~rc1. To install, first [[Unified_Extensible_Firmware_Interface#Detecting_UEFI_Firmware_Arch|detect which UEFI firmware arch]] you have (either x86_64 or i386).<br />
<br />
Depending on that, install the appropriate package<br />
<br />
For 64-bit aka x86_64 UEFI firmware:<br />
# pacman -S grub-efi-x86_64<br />
<br />
For 32-bit aka i386 UEFI firmware:<br />
# pacman -S grub-efi-i386<br />
<br />
{{Note|Simply installing the package will not update the {{ic|grub.efi}} file and the GRUB(2) modules in the UEFI System Partition. You need to do this manually using {{ic|grub-install}} as explained below.}}<br />
<br />
Also load the device-mapper kernel module without which {{ic|grub-probe}} does not reliably detect disks and partitions:<br />
<br />
# modprobe dm-mod<br />
<br />
===== Install grub-uefi boot files =====<br />
<br />
====== Install to UEFI SYSTEM PARTITION ======<br />
<br />
{{Note|The below commands assume you are using {{ic|grub-efi-x86_64}} (for {{ic|grub-efi-i386}} replace {{ic|x86_64}} with {{ic|i386}} in the below commands).}}<br />
<br />
The UEFI system partition will need to be mounted at {{ic|/boot/efi/}} for the GRUB2 install script to detect it:<br />
<br />
# mkdir -p /boot/efi<br />
# mount -t vfat /dev/sdXY /boot/efi<br />
<br />
Install GRUB UEFI application to {{ic|/boot/efi/EFI/arch_grub}} and its modules to {{ic|/boot/grub/x86_64-efi}} (recommended) using:<br />
<br />
# grub-install --directory=/usr/lib/grub/x86_64-efi --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --boot-directory=/boot --recheck --debug<br />
# mkdir -p /boot/grub/locale<br />
# cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo<br />
<br />
If you want to install grub2 modules and {{ic|grub.cfg}} at the directory {{ic|/boot/efi/EFI/grub}} and the {{ic|grubx64.efi}} application at {{ic|/boot/efi/EFI/arch_grub}} use:<br />
<br />
# grub-install --directory=/usr/lib/grub/x86_64-efi --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --boot-directory=/boot/efi/EFI --recheck --debug<br />
# mkdir -p /boot/efi/EFI/grub/locale<br />
# cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/efi/EFI/grub/locale/en.mo<br />
<br />
In this case {{ic|grub-efi-x86_64}} will be installed into {{ic|/boot/grub}}, making the behavior consistent with the BIOS verion of GRUB2, but this is not recommended if you use both {{ic|grub-bios}} and {{ic|grub-efi-x86_64}} in your system, as this will overwrite {{ic|grub-bios }}modules in {{ic|/boot/grub}}.<br />
<br />
The {{ic|--efi-directory}} option mentions the mountpoint of UEFI SYSTEM PARTITION , {{ic|--bootloader-id}} mentions the name of the directory used to store the {{ic|grubx64.efi}} file and {{ic|--boot-directory}} mentions the directory wherein the actual modules will be installed (and into which {{ic|grub.cfg}} should be created).<br />
<br />
The actual paths are:<br />
<br />
<efi-directory>/<EFI or efi>/<bootloader-id>/grubx64.efi<br />
<br />
<boot-directory>/grub/x86_64-efi/<all modules, grub.efi, core.efi, grub.cfg><br />
<br />
{{Note|the {{ic|--bootloader-id}} option does not change {{ic|<boot-directory>/grub}}, i.e. you cannot install the modules to {{ic|<boot-directory>/<bootloader-id>}}, the path is hard-coded to be {{ic|<boot-directory>/grub}}.}}<br />
<br />
In {{ic|<nowiki>--efi-directory=/boot/efi --boot-directory=/boot/efi/EFI --bootloader-id=grub</nowiki>}}:<br />
<br />
<efi-directory>/<EFI or efi>/<bootloader-id> == <boot-directory>/grub == /boot/efi/EFI/grub<br />
<br />
In {{ic|<nowiki>--efi-directory=/boot/efi --boot-directory=/boot/efi/EFI --bootloader-id=arch_grub</nowiki>}}:<br />
<br />
<efi-directory>/<EFI or efi>/<bootloader-id> == /boot/efi/EFI/arch_grub<br />
<boot-directory>/grub == /boot/efi/EFI/grub<br />
<br />
In {{ic|<nowiki>--efi-directory=/boot/efi --boot-directory=/boot --bootloader-id=arch_grub</nowiki>}}:<br />
<br />
<efi-directory>/<EFI or efi>/<bootloader-id> == /boot/efi/EFI/arch_grub<br />
<boot-directory>/grub == /boot/grub<br />
<br />
In {{ic|<nowiki>--efi-directory=/boot/efi --boot-directory=/boot --bootloader-id=grub</nowiki>}}:<br />
<br />
<efi-directory>/<EFI or efi>/<bootloader-id> == /boot/efi/EFI/grub<br />
<boot-directory>/grub == /boot/grub<br />
<br />
The {{ic|<nowiki><efi-directory>/<EFI or efi>/<bootloader-id>/grubx64.efi</nowiki>}} is an exact copy of {{ic|<nowiki><boot-directory>/grub/x86_64-efi/core.efi</nowiki>}}.<br />
<br />
{{Note|In GRUB2 2.00~beta4, the {{ic|grub-install}} option {{ic|--efi-directory}} replaces {{ic|--root-directory}} and the latter is deprecated.}}<br />
{{Note|The options {{ic|--efi-directory}} and {{ic|--bootloader-id}} are specific to GRUB2 UEFI.}}<br />
<br />
In all the cases the UEFI SYSTEM PARTITION should be mounted for {{ic|grub-install}} to install {{ic|grubx64.efi}} in it, which will be launched by the firmware (using the {{ic|efibootmgr}} created boot entry in non-Mac systems).<br />
<br />
If you notice carefully, there is no <device_path> option (Eg: {{ic|/dev/sda}}) at the end of the {{ic|grub-install}} command unlike the case of setting up GRUB2 for BIOS systems. Any <device_path> provided will be ignored by the install script as UEFI bootloaders do not use MBR or Partition boot sectors at all.<br />
<br />
You may now be able to UEFI boot your system by creating a {{ic|grub.cfg}} file by following [[#Generate_GRUB2_UEFI_Config_file]] and [[#Create_GRUB2_entry_in_the_Firmware_Boot_Manager]].<br />
<br />
===== Create GRUB2 entry in the Firmware Boot Manager =====<br />
<br />
====== Non-Mac UEFI systems ======<br />
<br />
{{ic|grub-install}} will ensure that {{ic|/boot/efi/EFI/arch_grub/grubx64.efi}} is launched by default if it detects {{ic|efibootmgr}} and if it is able to access UEFI Runtime Services. Follow [[Unified_Extensible_Firmware_Interface#efibootmgr]] for more info.<br />
<br />
If you have problems running GRUB2 in UEFI mode you can try the following (worked on an ASUS Z68 mainboard):<br />
<br />
# cp /boot/efi/EFI/arch_grub/grubx64.efi /boot/efi/shellx64.efi<br />
<br />
or<br />
<br />
# cp /boot/efi/EFI/arch_grub/grubx64.efi /boot/efi/EFI/shellx64.efi<br />
<br />
or<br />
<br />
# cp /boot/efi/EFI/arch_grub/grubx64.efi /boot/efi/EFI/tools/shellx64.efi<br />
<br />
After this launch the UEFI Shell from the UEFI setup/menu (in ASUS UEFI BIOS, switch to advanced mode, press Exit in the top right corner and choose "Launch EFI shell from filesystem device"). The GRUB2 menu will show up and you can boot into your system. Afterwards you can use efibootmgr to setup a menu entry (see above).<br />
<br />
====== Apple Mac EFI systems ======<br />
<br />
{{Note|TODO: GRUB upstream Bazaar mactel branch http://bzr.savannah.gnu.org/lh/grub/branches/mactel/changes. No further update from grub developers.}}<br />
{{Note|TODO: Experimental "bless" utility for Linux by Fedora developers - {{AUR|mactel-boot}}. Requires more testing.}}<br />
<br />
Use bless command from within Mac OS X to set {{ic|grubx64.efi}} as the default boot option. You can also boot from the Mac OS X install disc and launch a Terminal there if you only have Linux installed. In the Terminal, create a directory and mount the EFI System Partition:<br />
<br />
# cd /Volumes<br />
# mkdir efi<br />
# mount -t msdos /dev/disk0s1 /Volumes/efi<br />
<br />
Then run bless on {{ic|grub.efi}} and on the EFI partition to set them as the default boot options.<br />
<br />
# bless --folder=/Volumes/efi --file=/Volumes/efi/efi/arch_grub/grubx64.efi --setBoot<br />
# bless --mount=/Volumes/efi --file=/Volumes/efi/efi/arch_grub/grubx64.efi --setBoot<br />
<br />
More info at https://help.ubuntu.com/community/UEFIBooting#Apple_Mac_EFI_systems_.28both_EFI_architecture.29.<br />
<br />
===== Generate GRUB2 UEFI Config file =====<br />
<br />
Finally, generate a configuration for GRUB2 (this is explained in greater detail in the Configuration section):<br />
<br />
# grub-mkconfig -o <boot-directory>/grub/grub.cfg<br />
<br />
{{Note|The file path is {{ic|<boot-directory>/grub/grub.cfg}}, NOT {{ic|<boot-directory>/grub/x86_64-efi/grub.cfg}}.}}<br />
<br />
If you used {{ic|<nowiki>--boot-directory=/boot</nowiki>}}:<br />
<br />
# grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
If you used {{ic|<nowiki>--boot-directory=/boot/efi/EFI</nowiki>}}:<br />
<br />
# grub-mkconfig -o /boot/efi/EFI/grub/grub.cfg<br />
<br />
This is independent of the value of {{ic|--bootloader-id}} option.<br />
<br />
If GRUB2 complains about "no suitable mode found" while booting, try [[#Correct_GRUB2_No_Suitable_Mode_Found_Error]].<br />
<br />
===== Create GRUB2 Standalone UEFI Application =====<br />
<br />
It is possible to create a {{ic|grubx64_standalone.efi}} application which has all the modules embeddded in a memdisk within the uefi application, thus removing the need for having a separate directory populated with all the GRUB2 uefi modules and other related files. This is done using the {{ic|grub-mkstandalone}} command which is included in {{Pkg|grub-common}} >= 1:1.99-6 package.<br />
<br />
The easiest way to do this would be with the install command already mentioned before, but specifying the modules to include. For example:<br />
<br />
# grub-mkstandalone --directory="/usr/lib/grub/x86_64-efi/" --format="x86_64-efi" --compression="xz" \<br />
--output="/boot/efi/EFI/arch_grub/grubx64_standalone.efi" <any extra files you want to include><br />
<br />
The {{ic|grubx64_standalone.efi}} file expects {{ic|grub.cfg}} to be within its $prefix which is {{ic|(memdisk)/boot/grub}}. The memdisk is embedded within the efi app. The {{ic|grub-mkstandlone}} script allow passing files to be included in the memdisk image to be as the arguments to the script (in <any extra files you want to include>).<br />
<br />
If you have the {{ic|grub.cfg}} at {{ic|/home/user/Desktop/grub.cfg}}, then create a temporary {{ic|/home/user/Desktop/boot/grub/}} directory, copy the {{ic|/home/user/Desktop/grub.cfg}} to {{ic|/home/user/Desktop/boot/grub/grub.cfg}}, cd into {{ic|/home/user/Desktop/boot/grub/}} and run:<br />
<br />
# grub-mkstandalone --directory="/usr/lib/grub/x86_64-efi/" --format="x86_64-efi" --compression="xz" \<br />
--output="/boot/efi/EFI/arch_grub/grubx64_standalone.efi" "boot/grub/grub.cfg"<br />
<br />
The reason to cd into {{ic|/home/user/Desktop/boot/grub/}} and to pass the file path as {{ic|boot/grub/grub.cfg}} (notice the lack of a leading slash - boot/ vs /boot/ ) is because {{ic|dir1/dir2/file}} is included as {{ic|(memdisk)/dir1/dir2/file}} by the {{ic|grub-mkstandalone}} script. <br />
<br />
If you pass {{ic|/home/user/Desktop/grub.cfg}} the file will be included as {{ic|(memdisk)/home/user/Desktop/grub.cfg}}. If you pass {{ic|/home/user/Desktop/boot/grub/grub.cfg}} the file will be included as {{ic|(memdisk)/home/user/Desktop/boot/grub/grub.cfg}}. That is the reason for cd'ing into {{ic|/home/user/Desktop/boot/grub/}} and passing {{ic|boot/grub/grub.cfg}}, to include the file as {{ic|(memdisk)/boot/grub/grub.cfg}}, which is what {{ic|grub.efi}} expects the file to be.<br />
<br />
You need to create an UEFI Boot Manager entry for {{ic|/boot/efi/EFI/arch_grub/grubx64_standalone.efi}} using {{ic|efibootmgr}}. Follow [[#Create GRUB2 entry in the Firmware Boot Manager]].<br />
<br />
===== Multiboot in UEFI =====<br />
<br />
====== Chainload Microsoft Windows x86_64 UEFI-GPT ======<br />
<br />
Find the UUID of the FAT32 filesystem in the UEFI SYSTEM PARTITION where the Windows UEFI Bootloader files reside. For example, if Windows {{ic|bootmgfw.efi}} exists at {{ic|/boot/efi/EFI/Microsoft/Boot/bootmgfw.efi}} (ignore the upper-lower case differences since that is immaterial in FAT filesystem):<br />
<br />
# grub-probe --target=fs_uuid /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi<br />
1ce5-7f28<br />
<br />
# grub-probe --target=hints_string /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi<br />
--hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1<br />
<br />
Then, add this code to {{ic|/boot/grub/grub.cfg}} OR {{ic|/boot/efi/EFI/grub/grub.cfg}} to chainload Windows x86_64 (Vista SP1+, 7 or 8) installed in UEFI-GPT mode:<br />
<br />
menuentry "Microsoft Windows x86_64 UEFI-GPT" {<br />
insmod part_gpt<br />
insmod fat<br />
insmod search_fs_uuid<br />
insmod chain<br />
search --fs-uuid --no-floppy --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 1ce5-7f28<br />
chainloader /efi/Microsoft/Boot/bootmgfw.efi<br />
}<br />
<br />
== Configuration ==<br />
<br />
You can also choose to automatically generate or manually edit {{ic|grub.cfg}}.<br />
<br />
{{Note|For EFI systems, if GRUB2 was installed with the {{ic|--boot-directory}} option set, the {{ic|grub.cfg}} file must be placed in the same directory as {{ic|grubx64.efi}}. Otherwise, the {{ic|grub.cfg}} file goes in {{ic|/boot/grub/}}, just like in the BIOS version of GRUB2.}}<br />
<br />
{{Note|Here is a quite complete description of how to configure GRUB2: http://members.iinet.net/~herman546/p20/GRUB2%20Configuration%20File%20Commands.html }}<br />
<br />
=== Automatically generating using grub-mkconfig (Recommended) ===<br />
<br />
The GRUB2 {{ic|menu.lst}} equivalent configuration files are {{ic|/etc/default/grub}} and {{ic|/etc/grub.d/*}}. {{ic|grub-mkconfig}} uses these files to generate {{ic|grub.cfg}}. By default the script outputs to stdout. To generate a {{ic|grub.cfg}} file run the command:<br />
<br />
# grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
{{ic|/etc/grub.d/10_linux}} is set to automatically add menu items for Arch linux that work out of the box, to any generated configuration. Other operating systems may need to be added manually by editing {{ic|/etc/grub.d/40_custom}}<br />
<br />
==== Additional arguments ====<br />
<br />
To pass custom additional arguments to the Linux image, you can set the {{ic|GRUB_CMDLINE_LINUX}} variable in {{ic|/etc/default/grub}}. This is analogous to adding commands to the kernel line in GRUB Legacy.<br />
<br />
For example, use {{ic|<nowiki>GRUB_CMDLINE_LINUX="resume=/dev/sdaX"</nowiki>}} where {{ic|sda'''X'''}} is your swap partition to enable resume after hibernation.<br />
<br />
You can also use {{ic|<nowiki>GRUB_CMDLINE_LINUX="resume=/dev/disk/by-uuid/${swap_uuid}"</nowiki>}}, where {{ic|${swap_uuid} }} is the [[Persistent_block_device_naming|UUID]] of your swap partition.<br />
<br />
=== Manually creating grub.cfg ===<br />
<br />
{{Warning|Editing this file is strongly ''not'' recommended. The file is generated by the {{ic|grub-mkconfig}} command, and it is best to edit your {{ic|/etc/default/grub}} or one of the scripts in the {{ic|/etc/grub.d}} folder.}}<br />
<br />
A basic GRUB config file uses the following options<br />
* {{ic|(hdX,Y)}} is the partition {{ic|Y}} on disk {{ic|X}}, partition numbers starting at 1, disk numbers starting at 0<br />
* {{ic|1=set default=N}} is the default boot entry that is chosen after timeout for user action<br />
* {{ic|1=set timeout=M}} is the time {{ic|M}} to wait in seconds for a user selection before default is booted<br />
* {{ic|<nowiki>menuentry "title" {entry options}</nowiki>}} is a boot entry titled {{ic|title}}<br />
* {{ic|1=set root=(hdX,Y)}} sets the boot partition, where the kernel and GRUB modules are stored (boot need not be a separate partition, and may simply be a directory under the "root" partition ({{ic|/}})<br />
<br />
An example configuration:<br />
<br />
{{hc<br />
|/boot/grub/grub.cfg<br />
|<nowiki><br />
# Config file for GRUB2 - The GNU GRand Unified Bootloader<br />
# /boot/grub/grub.cfg<br />
<br />
# DEVICE NAME CONVERSIONS<br />
#<br />
# Linux Grub<br />
# -------------------------<br />
# /dev/fd0 (fd0)<br />
# /dev/sda (hd0)<br />
# /dev/sdb2 (hd1,2)<br />
# /dev/sda3 (hd0,3)<br />
#<br />
<br />
# Timeout for menu<br />
set timeout=5<br />
<br />
# Set default boot entry as Entry 0<br />
set default=0<br />
<br />
# (0) Arch Linux<br />
menuentry "Arch Linux" {<br />
set root=(hd0,1)<br />
linux /vmlinuz-linux root=/dev/sda3 ro<br />
initrd /initramfs-linux.img<br />
}<br />
<br />
## (1) Windows<br />
#menuentry "Windows" {<br />
#set root=(hd0,3)<br />
#chainloader +1<br />
#}<br />
</nowiki>}}<br />
<br />
=== Dual-booting ===<br />
<br />
{{Note|If you want GRUB2 to automatically search for other systems, you may wish to install {{Pkg|os-prober}}.}}<br />
<br />
==== Using grub-mkconfig ====<br />
The best way to add other entries is editing the {{ic|/etc/grub.d/40_custom}}. The entries in this file will be automatically added when running {{ic|grub-mkconfig}}.<br />
After adding the new lines, run:<br />
# grub-mkconfig -o /boot/grub/grub.cfg <br />
to generate an updated {{ic|grub.cfg}}.<br />
<br />
===== With GNU/Linux =====<br />
<br />
Assuming that the other distro is on partition {{ic|sda2}}:<br />
<br />
menuentry "Other Linux" {<br />
set root=(hd0,2)<br />
linux /boot/vmlinuz (add other options here as required)<br />
initrd /boot/initrd.img (if the other kernel uses/needs one)<br />
}<br />
<br />
===== With FreeBSD =====<br />
<br />
Requires that FreeBSD is installed on a single partition with UFS. Assuming it is installed on {{ic|sda4}}:<br />
<br />
menuentry "FreeBSD" {<br />
set root=(hd0,4)<br />
chainloader +1<br />
}<br />
<br />
===== With Windows =====<br />
<br />
This assumes that your Windows partition is {{ic|sda3}}.<br />
<br />
# (2) Windows XP<br />
menuentry "Windows XP" {<br />
set root=(hd0,3)<br />
chainloader (hd0,3)+1<br />
}<br />
<br />
If the Windows bootloader is on an entirely different hard drive than GRUB, it may be necessary to trick Windows into believing that it is the first hard drive. This was possible in GRUB Legacy with {{ic|map}} and is now done with {{ic|drivemap}}. Assuming GRUB is on {{ic|hd0}} and Windows is on {{ic|hd2}}, you need to add the following after {{ic|set root}}:<br />
<br />
drivemap -s hd0 hd2<br />
<br />
==== With Windows via EasyBCD and NeoGRUB ====<br />
<br />
Since EasyBCD's NeoGRUB currently does not understand the GRUB2 menu format, chainload to it by replacing the contents of your {{ic|C:\NST\menu.lst}} file with lines similar to the following:<br />
<br />
default 0<br />
timeout 1<br />
<br />
title Chainload into GRUB v2<br />
root (hd0,7)<br />
kernel /boot/grub/i386-pc/core.img<br />
<br />
===Visual Configuration===<br />
<br />
In GRUB2 it is possible, by default, to change the look of the menu. Make sure to initialize, if not done already, GRUB2 graphical terminal, gfxterm, with proper video mode, gfxmode, in GRUB2. This can be seen in the section [[#Correct_GRUB2_No_Suitable_Mode_Found_Error]]. This video mode is passed by GRUB2 to the linux kernel via 'gfxpayload' so any visual configurations need this mode in order to be in effect.<br />
<br />
====Setting the framebuffer resolution ====<br />
<br />
GRUB2 can set the framebuffer for both GRUB2 itself and the kernel. The old {{ic|1=vga=}} way is deprecated. The preferred method is editing {{ic|/etc/default/grub}} as the following sample:<br />
<br />
GRUB_GFXMODE=1024x768x32<br />
GRUB_GFXPAYLOAD_LINUX=keep<br />
<br />
To generate the changes, run: <br />
grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
The {{ic|gfxpayload}} property will make sure the kernel keeps the resolution.<br />
<br />
{{Note|If this example does not work for you try to replace {{ic|1=gfxmode="1024x768x32"}} by {{ic|1=vbemode="0x105"}}. Remember to replace the specified resolution with one suitable for your screen.}}<br />
{{Note|To show all the modes you can use {{ic|1=# hwinfo --framebuffer}} (hwinfo is available in [community]), while at GRUB2 prompt you can use the {{ic|1=vbeinfo}} command.}}<br />
<br />
If this method does not work for you, the deprecated {{ic|1=vga=}} method will still work. Just<br />
add it next to the {{ic|1="GRUB_CMDLINE_LINUX_DEFAULT="}} line in {{ic|/etc/default/grub}}<br />
for eg: {{ic|1="GRUB_CMDLINE_LINUX_DEFAULT="quiet splash vga=792"}} will give you a {{ic|1024x768}} resolution.<br />
<br />
You can choose one of these resolutions: {{ic|640×480}}, {{ic|800×600}}, {{ic|1024×768}}, {{ic|1280×1024}}, {{ic|1600×1200}}<br />
<br />
====915resolution hack ====<br />
<br />
Some times for Intel graphic adapters neither {{ic|1=# hwinfo --framebuffer}} nor {{ic|1=vbeinfo}} will show you the desired resolution. In this case you can use {{ic|915resolution}} hack. This hack will temporarily modify video BIOS and add needed resolution. See [http://915resolution.mango-lang.org/ 915resolution's home page]<br />
<br />
In the following I will proceed with the example for my system. Please adjust the recipe for your needs. First you need to find a video mode which will be modified later. For that, run {{ic|915resolution}} in GRUB2 command shell:<br />
915resolution -l<br />
The output will be something like:<br />
Intel 800/900 Series VBIOS Hack : version 0.5.3<br />
...<br />
Mode 30 : 640x480, 8 bits/pixel<br />
...<br />
Next, our purpose is to overwrite mode 30. (You can choose what ever mode you want.) In the file {{ic|/etc/grub.d/00_header}} just before the {{ic|set gfxmode&#61;${GRUB_GFXMODE}}} line insert:<br />
915resolution 30 1440 900<br />
Here we are overwriting the mode {{ic|30}} with {{ic|1440x900}} resolution. Lastly we need to set {{ic|GRUB_GFXMODE}} as described earlier, regenerate GRUB2 configuration file and reboot to test changes:<br />
# grub-mkconfig -o /boot/grub/grub.cfg<br />
# reboot<br />
<br />
====Background image and bitmap fonts====<br />
<br />
GRUB2 comes with support for background images and bitmap fonts in {{ic|pf2}} format. The unifont font is included in the {{Pkg|grub-common}} package under the filename {{ic|unicode.pf2}}, or, as only ASCII characters under the name {{ic|ascii.pf2}}. <br />
<br />
Image formats supported include tga, png and jpeg, providing the correct modules are loaded. The maximum supported resolution depends on your hardware.<br />
<br />
Make sure you have set up the proper [https://wiki.archlinux.org/index.php/GRUB2#Setting_the_framebuffer_resolution framebuffer resolution].<br />
<br />
Edit {{ic|/etc/default/grub}} like this:<br />
GRUB_BACKGROUND="/boot/grub/myimage"<br />
#GRUB_THEME="/path/to/gfxtheme"<br />
<br />
{{Note|If you have installed GRUB on a separate partition, {{ic|/boot/grub/myimage}} becomes {{ic|/grub/myimage}}.}}<br />
<br />
To generate the changes and add the information into {{ic|grub.cfg}}, run: <br />
grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
If adding the splash image was successful, the user will see {{ic|"Found background image..."}} in the terminal as the command is executed. <br />
If this phrase is not seen, the image information was probably not incorporated into the {{ic|grub.cfg}} file.<br />
<br />
If the image is not displayed, check:<br />
* The path and the filename in {{ic|/etc/default/grub}} are correct.<br />
* The image is of the proper size and format (tga, png, 8-bit jpg).<br />
* The image was saved in the RGB mode, and is not indexed.<br />
* The console mode is not enabled in {{ic|/etc/default/grub}}.<br />
* The command {{ic|grub-mkconfig}} must be executed to place the background image information into the {{ic|/boot/grub/grub.cfg}} file.<br />
<br />
====Theme====<br />
<br />
Here is an example for configuring Starfield theme which was included in GRUB2 package.<br />
<br />
Edit {{ic|/etc/default/grub}}<br />
GRUB_THEME="/boot/grub/themes/starfield/theme.txt"<br />
<br />
Generate the changes:<br />
grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
If configuring the theme was successful, you'll see {{ic|Found theme: /boot/grub/themes/starfield/theme.txt}} in the terminal.<br />
Your splash image will usually not displayed when using a theme.<br />
<br />
====Menu colors====<br />
<br />
As in GRUB Legacy (0.9x), you can change the menu colors in GRUB2. The available colors for GRUB2 are at https://www.gnu.org/software/grub/manual/html_node/Theme-file-format.html#Theme-file-format.<br />
Here is an example:<br />
<br />
Edit {{ic|/etc/default/grub}}:<br />
GRUB_COLOR_NORMAL="light-blue/black"<br />
GRUB_COLOR_HIGHLIGHT="light-cyan/blue"<br />
<br />
Generate the changes:<br />
grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
====Hidden menu====<br />
<br />
One of the unique features of GRUB2 is hiding/skipping the menu and showing it by holding {{keypress|Esc}} when needed. You can also adjust whether you want to see the timeout counter.<br />
<br />
Edit {{ic|/etc/default/grub}} as you wish. Here is an example where the comments from the beginning of the two lines have been removed to enable the feature, the timeout has been set to five seconds and to be shown to the user:<br />
GRUB_HIDDEN_TIMEOUT=5<br />
GRUB_HIDDEN_TIMEOUT_QUIET=false<br />
<br />
and run:<br />
grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
====Disable framebuffer====<br />
<br />
User who uses NVIDIA proprietary driver might wish to disable GRUB2's framebuffer as it can cause problems with the binary driver.<br />
<br />
To disable framebuffer, edit {{ic|/etc/default/grub}} and uncomment the following line:<br />
GRUB_TERMINAL_OUTPUT=console<br />
<br />
and run:<br />
grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
=== Other Options ===<br />
<br />
==== LVM ====<br />
<br />
If you use [[LVM]] for your {{ic|/boot}}, add the following before menuentry lines:<br />
<br />
insmod lvm<br />
<br />
and specify your root in the menuentry as:<br />
<br />
set root=(''lvm_group_name''-''lvm_logical_boot_partition_name'')<br />
<br />
Example:<br />
<br />
# (0) Arch Linux<br />
menuentry "Arch Linux" {<br />
insmod lvm<br />
set root=(VolumeGroup-lv_boot)<br />
# you can only set following two lines<br />
linux /vmlinuz-linux root=/dev/mapper/VolumeGroup-root ro<br />
initrd /initramfs-linux.img<br />
}<br />
<br />
==== RAID ====<br />
<br />
GRUB2 provides convenient handling of RAID volumes. You need to add {{ic|insmod raid}} which allows you to address the volume natively. For example, {{ic|/dev/md0}} becomes:<br />
set root=(md0)<br />
<br />
whereas a partitioned RAID volume (e.g. {{ic|/dev/md0p1}}) becomes:<br />
set root=(md0,1)<br />
<br />
==== Persistent block device naming ====<br />
You can use UUIDs to detect partitions instead of the "old" {{ic|/dev/sd*}} and {{ic|/dev/hd*}} scheming. It has the advantage of detecting partitions by their unique UUIDs, which is needed by some people booting with complicated partition setups.<br />
<br />
UUIDs are used by default in the recent versions of GRUB2 - there is no downside in it anyway except that you need to re-generate the {{ic|grub.cfg}} file every time you resize or reformat your partitions. Remember this when modifying partitions with Live-CD.<br />
<br />
The recent versions of GRUB2 use UUIDs by default. You can re-enable the use of UUIDS by simply commenting the UUID line (this is also what it looks like by default):<br />
#GRUB_DISABLE_LINUX_UUID=true<br />
you can also just set the value as {{ic|false}} as shown here:<br />
GRUB_DISABLE_LINUX_UUID=false<br />
<br />
Either way, do not forget to generate the changes:<br />
grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
==== Using Labels ====<br />
<br />
It is possible to use labels, human-readable strings attached to filesystems, by using the {{ic|--label}} option to {{ic|search}}. First of all, label your existing partition:<br />
# tune2fs -L a <LABEL> <PARTITION><br />
<br />
Then, add an entry using labels. An example of this:<br />
<br />
menuentry "Arch Linux, session texte" {<br />
search --label --no-floppy --set=root archroot<br />
linux /boot/vmlinuz-linux root=/dev/disk/by-label/archroot ro<br />
initrd /boot/initramfs-linux.img<br />
}<br />
<br />
==== Recall previous entry ====<br />
<br />
GRUB2 can remember the last entry you booted from and use this as the default entry to boot from next time. This is useful if you have multiple kernels (i.e., the current Arch one and the LTS kernel as a fallback option) or operating systems. To do this, edit {{ic|/etc/default/grub}} and change the setting of {{ic|GRUB_DEFAULT}}:<br />
<br />
GRUB_DEFAULT=saved<br />
<br />
This ensures that GRUB will default to the saved entry. To enable saving the selected entry, add the following line to {{ic|/etc/default/grub}}:<br />
<br />
GRUB_SAVEDEFAULT=true<br />
<br />
{{Note|Manually added menu items, eg Windows in {{ic|/etc/grub.d/40_custom}}, will need {{ic|savedefault}} added. Remember to regenerate your configuration file.}}<br />
<br />
==== Security ====<br />
<br />
If you want to secure GRUB2 so it is not possible for anyone to change boot parameters or use the command line, you can add a user/password combination to GRUB2's configuration files. To do this, run the command {{ic|grub-mkpasswd_pbkdf2}}. Enter a password and confirm it. The output will look like this:<br />
<br />
{{bc|<nowiki><br />
Your PBKDF2 is grub.pbkdf2.sha512.10000.C8ABD3E93C4DFC83138B0C7A3D719BC650E6234310DA069E6FDB0DD4156313DA3D0D9BFFC2846C21D5A2DDA515114CF6378F8A064C94198D0618E70D23717E82.509BFA8A4217EAD0B33C87432524C0B6B64B34FBAD22D3E6E6874D9B101996C5F98AB1746FE7C7199147ECF4ABD8661C222EEEDB7D14A843261FFF2C07B1269A</nowiki>}}Then, add the following to {{ic|/etc/grub.d/00_header}}:<br />
{{bc|<nowiki>cat << EOF<br />
<br />
set superusers="username"<br />
password_pbkdf2 username <password><br />
<br />
EOF</nowiki>}}<br />
where {{ic|<password>}} is the string generated by {{ic|grub-mkpasswd_pbkdf2}}.<br />
<br />
Regenerate your configuration file. Your GRUB2 command line, boot parameters and all boot entries are now protected.<br />
<br />
This can be relaxed and further customized with more users as described in the "Security" part of [https://www.gnu.org/software/grub/manual/grub.html#Security the GRUB manual].<br />
<br />
==== Root Encryption ====<br />
<br />
To let GRUB2 automatically add the kernel parameters for root encryption,<br />
add {{ic|1=cryptdevice=/dev/yourdevice:label}} to {{ic|GRUB_CMDLINE_LINUX}} in {{ic|/etc/defaults/grub}}.<br />
<br />
Example with root mapped to {{ic|/dev/mapper/root}}:<br />
<br />
GRUB_CMDLINE_LINUX="cryptdevice=/dev/sda2:root"<br />
<br />
Also, disable the usage of UUIDs for the rootfs:<br />
<br />
GRUB_DISABLE_LINUX_UUID=true<br />
<br />
Regenerate the configuration.<br />
<br />
=== Booting an ISO Directly From GRUB2 ===<br />
Edit {{ic|/etc/grub.d/40_custom}} to add an entry for the target ISO. When finished, update the GRUB menu as with the usual {{ic|grub-mkconfig -o /boot/grub/grub.cfg}} (as root).<br />
<br />
==== Arch ISO ====<br />
{{Note|Be sure to adjust the {{ic|hdX,Y}} in the third line to point to the correct disk/partition number of the isofile. Also adjust the {{ic|img_dev}} line to match this same location. However, if booting the ISO from USB on a computer which also has one internal HDD, then it needs to be {{ic|hd0,Y}} with {{ic|sdbY}}, instead of {{ic|sdaY}}.}}<br />
<br />
menuentry "Archlinux-2011.08.19-netinstall-x86_64.iso" {<br />
set isofile="/archives/archlinux-2011.08.19-netinstall-x86_64.iso"<br />
loopback loop (hd0,7)$isofile<br />
linux (loop)/arch/boot/x86_64/vmlinuz archisolabel=ARCH_201108 img_dev=/dev/sda7 img_loop=$isofile earlymodules=loop<br />
initrd (loop)/arch/boot/x86_64/archiso.img<br />
}<br />
<br />
==== Ubuntu ISO ====<br />
{{Note|Be sure to adjust the {{ic|hdX,Y}} in the third line to point to the correct disk or partition number of the ISO file.}}<br />
<br />
menuentry "ubuntu-12.04-desktop-amd64.iso" {<br />
set isofile="/path/to/ubuntu-12.04-desktop-amd64.iso"<br />
loopback loop (hdX,Y)$isofile<br />
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile quiet noeject noprompt splash --<br />
initrd (loop)/casper/initrd.lz<br />
}<br />
<br />
== Using the command shell ==<br />
<br />
Since the MBR is too small to store all GRUB2 modules, only the menu and a few basic commands reside there. The majority of GRUB2 functionality remains in modules in {{ic|/boot/grub}}, which are inserted as needed. In error conditions (e.g. if the partition layout changes) GRUB2 may fail to boot. When this happens, a command shell may appear.<br />
<br />
GRUB2 offers multiple shells/prompts. If there is a problem reading the menu but the bootloader is able to find the disk, you will likely be dropped to the "normal" shell:<br />
sh:grub><br />
<br />
If there is a more serious problem (e.g. GRUB cannot find required files), you may instead be dropped to the "rescue" shell:<br />
grub rescue><br />
<br />
The rescue shell is a restricted subset of the normal shell, offering much less functionality. If dumped to the rescue shell, first try inserting the "normal" module, then starting the "normal" shell:<br />
grub rescue> set prefix=(hdX,Y)/boot/grub<br />
grub rescue> insmod (hdX,Y)/boot/grub/i386-pc/normal.mod<br />
rescue:grub> normal<br />
<br />
=== Pager support ===<br />
<br />
GRUB2 supports pager for reading commands that provide long output (like the help command). This works only in normal shell mode and not in rescue mode. To enable pager, in GRUB2 command shell type:<br />
sh:grub> set pager=1<br />
<br />
== GUI configuration tools ==<br />
<br />
Following package may be installed from [[AUR]]<br />
* [https://aur.archlinux.org/packages.php?ID=44020 grub-customizer] (requires gettext gksu gtkmm hicolor-icon-theme openssl)<br />
*:Customize the bootloader (GRUB2 or BURG)<br />
* [http://kde-apps.org/content/show.php?content=139643 grub2-editor] (requires kdelibs)<br />
*:A KDE4 control module for configuring the GRUB2 bootloader<br />
* [http://kde-apps.org/content/show.php?content=137886 kcm-grub2] (requires kdelibs python2-qt kdebindings-python)<br />
*:This Kcm module manages the most common settings of Grub2.<br />
* [http://sourceforge.net/projects/startup-manager/ startupmanager] (requires gnome-python imagemagick yelp python2 xorg-xrandr)<br />
*:GUI app for changing the settings of GRUB, GRUB2, Usplash and Splashy<br />
<br />
== parttool or legacy hide/unhide ==<br />
<br />
If you have a Windows 9x paradigm with hidden C:\ disks GRUB Legacy had the hide/unhide feature. In GRUB2 this has been replaced by {{ic|parttool}}. For example, to boot the third C:\ disk of three Windows 9x installations on the CLI enter the CLI and:<br />
parttool hd0,1 hidden+ boot-<br />
parttool hd0,2 hidden+ boot-<br />
parttool hd0,3 hidden- boot+<br />
set root=hd0,3<br />
chainloader +1<br />
boot<br />
<br />
== Using the rescue console ==<br />
<br />
See [[#Using the command shell]] first. If unable to activate the standard shell, one possible solution is to boot using a live CD or some other rescue disk to correct configuration errors and reinstall GRUB. However, such a boot disk is not always available (nor necessary); the rescue console is surprisingly robust.<br />
<br />
The available commands in GRUB rescue include {{ic|insmod}}, {{ic|ls}}, {{ic|set}}, and {{ic|unset}}. This example uses {{ic|set}} and {{ic|insmod}}. {{ic|set}} modifies variables and {{ic|insmod}} inserts new modules to add functionality.<br />
<br />
Before starting, the user must know the location of their {{ic|/boot}} partition (be it a separate partition, or a subdirectory under their root):<br />
grub rescue> set prefix=(hdX,Y)/boot/grub<br />
<br />
where X is the physical drive number and Y is the partition number.<br />
<br />
To expand console capabilities, insert the {{ic|linux}} module:<br />
grub rescue> insmod (hdX,Y)/boot/grub/linux.mod<br />
<br />
{{Note|With a separate boot partition, omit {{ic|/boot}} from the path, (i.e. type {{ic|1=set prefix=(hdX,Y)/grub}} and {{ic|insmod (hdX,Y)/grub/linux.mod}}).}}<br />
<br />
This introduces the {{ic|linux}} and {{ic|initrd}} commands, which should be familiar (see [[#Configuration]]).<br />
<br />
An example, booting Arch Linux:<br />
set root=(hd0,5)<br />
linux /boot/vmlinuz-linux root=/dev/sda5<br />
initrd /boot/initramfs-linux.img<br />
boot<br />
<br />
With a separate boot partition, again change the lines accordingly:<br />
set root=(hd0,5)<br />
linux /vmlinuz-linux root=/dev/sda6<br />
initrd /initramfs-linux.img<br />
boot<br />
<br />
After successfully booting the Arch Linux installation, users can correct {{ic|grub.cfg}} as needed and then reinstall GRUB2.<br />
<br />
to reinstall GRUB2 and fix the problem completely, changing {{ic|/dev/sda}} if needed. See [[#Bootloader installation]] for details.<br />
<br />
== Combining the use of UUIDs and basic scripting ==<br />
<br />
If you like the idea of using UUIDs to avoid unreliable BIOS mappings or are struggling with GRUB's syntax, here is an example boot menu item that uses UUIDs and a small script to direct GRUB to the proper disk partitions for your system. All you need to do is replace the UUIDs in the sample with the correct UUIDs for your system. The example applies to a system with a boot and root partition. You will obviously need to modify the GRUB configuration if you have additional partitions:<br />
<br />
menuentry "Arch Linux 64" {<br />
# Set the UUIDs for your boot and root partition respectively<br />
set the_boot_uuid=ece0448f-bb08-486d-9864-ac3271bd8d07<br />
set the_root_uuid=c55da16f-e2af-4603-9e0b-03f5f565ec4a<br />
<br />
# (Note: This may be the same as your boot partition)<br />
<br />
# Get the boot/root devices and set them in the root and grub_boot variables<br />
search --fs-uuid --no-floppy --set=root $the_root_uuid<br />
search --fs-uuid --no-floppy --set=grub_boot $the_boot_uuid<br />
<br />
# Check to see if boot and root are equal.<br />
# If they are, then append /boot to $grub_boot (Since $grub_boot is actually the root partition)<br />
if [ $the_boot_uuid == $the_root_uuid] ; then<br />
set grub_boot=$grub_boot/boot<br />
fi<br />
<br />
# $grub_boot now points to the correct location, so the following will properly find the kernel and initrd<br />
linux ($grub_boot)/vmlinuz-linux root=/dev/disk/by-uuid/$uuid_os_root ro<br />
initrd ($grub_boot)/initramfs-linux.img<br />
}<br />
<br />
== Troubleshooting ==<br />
<br />
Any troubleshooting should be added here.<br />
<br />
=== Enable GRUB2 debug messages ===<br />
<br />
Add:<br />
<br />
set pager=1<br />
set debug=all<br />
<br />
to {{ic|grub.cfg}}.<br />
<br />
=== Correct GRUB2 No Suitable Mode Found Error ===<br />
<br />
If you get this error when booting any menuentry:<br />
<br />
error: no suitable mode found<br />
Booting however<br />
<br />
Then you need to initialize GRUB2 graphical terminal ({{ic|gfxterm}}) with proper video mode ({{ic|gfxmode}}) in GRUB2. This video mode is passed by GRUB2 to the linux kernel via 'gfxpayload'. In case of UEFI systems, if the GRUB2 video mode is not initialized, no kernel boot messages will be shown in the terminal (atleast until KMS kicks in).<br />
<br />
Copy {{ic|/usr/share/grub/unicode.pf2}} to ${GRUB2_PREFIX_DIR} ({{ic|/boot/grub/}} in case of BIOS and UEFI systems). If GRUB2 UEFI was installed with {{ic|1=--boot-directory=/boot/efi/EFI}} set, then the directory is {{ic|/boot/efi/EFI/grub/}}:<br />
<br />
# cp /usr/share/grub/unicode.pf2 ${GRUB2_PREFIX_DIR}<br />
<br />
If {{ic|/usr/share/grub/unicode.pf2}} does not exist, install {{Pkg|bdf-unifont}}, create the {{ic|unifont.pf2}} file and then copy it to {{ic|${GRUB2_PREFIX_DIR<nowiki>}</nowiki>}}:<br />
<br />
# grub-mkfont -o unicode.pf2 /usr/share/fonts/misc/unifont.bdf<br />
<br />
Then, in the {{ic|grub.cfg}} file, add the following lines to enable GRUB2 to pass the video mode correctly to the kernel, without of which you will only get a black screen (no output) but booting (actually) proceeds successfully without any system hang.<br />
<br />
BIOS systems:<br />
<br />
insmod vbe<br />
<br />
UEFI systems:<br />
<br />
insmod efi_gop<br />
insmod efi_uga<br />
<br />
After that add the following code (common to both BIOS and UEFI):<br />
<br />
insmod font<br />
<br />
if loadfont ${prefix}/fonts/unicode.pf2<br />
then<br />
insmod gfxterm<br />
set gfxmode=auto<br />
set gfxpayload=keep<br />
terminal_output gfxterm<br />
fi<br />
<br />
As you can see for gfxterm (graphical terminal) to function properly, {{ic|unicode.pf2}} font file should exist in {{ic|${GRUB2_PREFIX_DIR<nowiki>}</nowiki>}}.<br />
<br />
=== msdos-style error message ===<br />
<br />
grub-setup: warn: This msdos-style partition label has no post-MBR gap; embedding won't be possible!<br />
grub-setup: warn: Embedding is not possible. GRUB can only be installed in this setup by using blocklists.<br />
However, blocklists are UNRELIABLE and its use is discouraged.<br />
grub-setup: error: If you really want blocklists, use --force.<br />
<br />
This error may occur when you try installing GRUB2 in a VMware container. Read more about it [https://bbs.archlinux.org/viewtopic.php?pid=581760#p581760 here]. It happens when the first partition starts just after the MBR (block 63), without the usual space of 1 MiB (2048 blocks) before the first partition. Read [[#MBR_aka_msdos_partitioning_specific_instructions]]<br />
<br />
=== UEFI GRUB2 drops to shell ===<br />
<br />
If GRUB loads but drops you into the rescue shell with no errors, it may be because of a missing or misplaced {{ic|grub.cfg}}. This will happen if GRUB2 UEFI was installed with {{ic|--boot-directory}} and {{ic|grub.cfg}} is missing OR if the partition number of the boot partition changed (which is hard-coded into the {{ic|grubx64.efi}} file).<br />
<br />
=== UEFI GRUB2 not loaded ===<br />
In some cases the EFI may fail to load GRUB correctly. Provided everything is set up correctly, the output of:<br />
efibootmgr -v<br />
might look something like this:<br />
BootCurrent: 0000<br />
Timeout: 3 seconds<br />
BootOrder: 0000,0001,0002<br />
Boot0000* Grub HD(1,800,32000,23532fbb-1bfa-4e46-851a-b494bfe9478c)File(\efi\grub\grub.efi)<br />
Boot0001* Shell HD(1,800,32000,23532fbb-1bfa-4e46-851a-b494bfe9478c)File(\EfiShell.efi)<br />
Boot0002* Festplatte BIOS(2,0,00)P0: SAMSUNG HD204UI<br />
If everything works correctly, the EFI would now automatically load GRUB.<br />
<br />
If the screen only goes black for a second and the next boot option is tried afterwards, according to [https://bbs.archlinux.org/viewtopic.php?pid=981560#p981560 this post], moving GRUB to the partition root can help. The boot option has to be deleted and recreated afterwards. The entry for GRUB should look like this then:<br />
Boot0000* Grub HD(1,800,32000,23532fbb-1bfa-4e46-851a-b494bfe9478c)File(\grub.efi)<br />
<br />
=== Invalid signature ===<br />
If trying to boot Windows results in an "invalid signature" error, e.g. after reconfiguring partitions or adding additional hard drives, (re)move GRUB's device configuration and let it reconfigure:<br />
# mv /boot/grub/device.map /boot/grub/device.map-old<br />
# grub-mkconfig -o /boot/grub/grub.cfg<br />
{{ic|grub-mkconfig}} should now mention all found boot options, including Windows. If it works, remove {{ic|/boot/grub/device.map-old}}.<br />
<br />
=== Restore GRUB Legacy ===<br />
<br />
* Move GRUB2 files out of the way:<br />
<br />
# mv /boot/grub /boot/grub.nonfunctional<br />
<br />
* Copy GRUB Legacy back to {{ic|/boot}}:<br />
<br />
# cp -af /boot/grub-legacy /boot/grub<br />
<br />
* Replace MBR and next 62 sectors of sda with backed up copy<br />
<br />
{{Warning|This command also restores the partition table, so be careful of overwriting a modified partition table with the old one. It '''will''' mess your system.}}<br />
<br />
# dd if=/path/to/backup/first-sectors of=/dev/sdX bs=512 count=1<br />
<br />
A safer way is to restore only the MBR boot code use:<br />
<br />
# dd if=/path/to/backup/mbr-boot-code of=/dev/sdX bs=446 count=1<br />
<br />
== References ==<br />
<br />
# Official GRUB2 Manual - https://www.gnu.org/software/grub/manual/grub.html<br />
# Ubuntu wiki page for GRUB2 - https://help.ubuntu.com/community/Grub2<br />
# GRUB2 wiki page describing steps to compile for UEFI systems - https://help.ubuntu.com/community/UEFIBooting<br />
# Wikipedia's page on [[Wikipedia:BIOS Boot partition|BIOS Boot partition]]<br />
<br />
== External Links ==<br />
<br />
# [https://github.com/the-ridikulus-rat/My_Shell_Scripts/blob/master/grub/grub_bios.sh A Linux Bash Shell script to compile and install GRUB(2) for BIOS from BZR Source]<br />
# [https://github.com/the-ridikulus-rat/My_Shell_Scripts/blob/master/grub/grub_uefi.sh A Linux Bash Shell script to compile and install GRUB(2) for UEFI from BZR Source]</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=GRUB&diff=213924GRUB2012-07-22T09:44:02Z<p>Zodmaner: /* Disable framebuffer */</p>
<hr />
<div>[[Category:Boot loaders]]<br />
[[cs:GRUB2]]<br />
[[es:GRUB2]]<br />
[[fr:GRUB2]]<br />
[[id:GRUB2]]<br />
[[it:GRUB2]]<br />
[[ru:GRUB2]]<br />
[[tr:GRUB2]]<br />
[[zh-CN:GRUB2]]<br />
[[zh-TW:GRUB2]]<br />
{{Article summary start}}<br />
{{Article summary text|Covers various aspects of the next generation of the GRand Unified Bootloader (GRUB2).}}<br />
{{Article summary heading|Overview}}<br />
{{Article summary text|{{Boot process overview}}}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Burg}} - Burg is a brand-new boot loader based on GRUB2. It uses a new object format which allows it to be built in a wider range of OS, including Linux, Windows, OS X, Solaris, FreeBSD, etc. It also has a highly configurable menu system which works in both text and graphic mode. <br />
{{Article summary heading|Resources}}<br />
{{Article summary link|GNU GRUB -- GNU Project|https://www.gnu.org/software/grub/}}<br />
{{Article summary end}}<br />
<br />
[https://www.gnu.org/software/grub/ GRUB2] is the next generation of the GRand Unified Bootloader (GRUB). GRUB2 is derived from [http://www.nongnu.org/pupa/ PUPA] which was a research project to investigate the next generation of GRUB. GRUB2 has been rewritten from scratch to clean up everything and provide modularity and portability [https://www.gnu.org/software/grub/grub-faq.en.html#q1].<br />
<br />
In brief, the ''bootloader'' is the first software program that runs when a computer starts. It is responsible for loading and transferring control to the Linux kernel. The kernel, in turn, initializes the rest of the operating system.<br />
<br />
== Preface ==<br />
Here is some information needs to be clarified:<br />
* The name ''GRUB'' officially refers to version ''2'' of the software, see [https://www.gnu.org/software/grub/]. If you are looking for the article on the legacy version, see [[GRUB Legacy]].<br />
<br />
* [[GRUB Legacy]] (i.e. version 0.9x) is considered legacy by upstream and is being replaced by GRUB2 and [[Syslinux]] in Arch Linux. See the news [https://www.archlinux.org/news/grub-legacy-no-longer-supported/ here]. Upstream recommends GRUB2 >=1.99 over GRUB Legacy, even for current GRUB Legacy users.<br />
<br />
* The [[Archboot]] ISO's installer script supports {{Pkg|grub-bios}} and {{Pkg|grub-efi-x86_64}} installation. The official installer script AIF (Arch Installation Framework) does not support GRUB(2) yet.<br />
<br />
* From 1.99-6 onwards, GRUB2 supports [[Btrfs]] as root (without a separate {{ic|/boot}} filesystem) compressed with either zlib or LZO.<br />
<br />
* For GRUB2 UEFI info, it is recommended to read the [[UEFI]], [[GPT]] and [[UEFI_Bootloaders]] pages before reading this page.<br />
<br />
=== Notes for current GRUB Legacy users ===<br />
* Although GRUB legacy will not be removed from your system and will stay fully functional, you should consider upgrading to GRUB version 2.x, or one of the other supported bootloaders.<br />
<br />
* Upgrade from [[GRUB Legacy]] to [[GRUB]](2) is the much same as installing GRUB from a running Arch Linux which is covered [[#From a running Arch Linux|below]].<br />
<br />
* There are differences in the commands of GRUB and GRUB2. Familiarize yourself with [https://www.gnu.org/software/grub/manual/grub.html#Commands GRUB2 commands] before proceeding (e.g. "find" has been replaced with "search").<br />
<br />
* GRUB2 is now ''modular'' and no longer requires "stage 1.5". As a result, the bootloader itself is limited -- modules are loaded from the hard drive as needed to expand functionality (e.g. for [[LVM]] or RAID support).<br />
<br />
* Device naming has changed between GRUB and GRUB2. Partitions are numbered from 1 instead of 0 while drives are still numbered from 0, and prefixed with partition-table type. For example, {{ic|/dev/sda1}} would be referred to as {{ic|(hd0,msdos1)}} (for MBR) or {{ic|(hd0,gpt1)}} (for GPT) using GRUB2.<br />
<br />
=== Preliminary Requirements for GRUB2 ===<br />
<br />
==== BIOS systems ====<br />
<br />
===== [[GPT]] specific instructions =====<br />
<br />
GRUB2 in BIOS-GPT configuration requires a BIOS Boot Partition to embed its {{ic|core.img}} in the absence of post-MBR gap in GPT partitioned systems (which is taken over by the GPT Primary Header and Primary Partition table). This partition is used by GRUB2 only in BIOS-GPT setups. No such partition type exists in case of MBR partitioning (at least not for GRUB2). This partition is also not required if the system is UEFI based, as no embedding of bootsectors takes place in that case. Syslinux does not require this partition.<br />
<br />
For a BIOS-GPT configuration, create a 2 MiB partition using cgdisk or GNU Parted with no filesystem. The location of the partition in the partition table does not matter but it should be within the first 2 TiB region of the disk. It is advisable to put it somewhere in the beginning of the disk before the {{ic|/boot}} partition. Set the partition type to "EF02" in cgdisk or {{ic|set <BOOT_PART_NUM> bios_grub on}} in GNU Parted.<br />
<br />
{{Note|This partition should be created before {{ic|grub-install}} or {{ic|grub-setup}} is run or before the '''Install Bootloader''' step of the Archlinux installer (if GRUB2 BIOS is selected as bootloader).}}<br />
<br />
===== [[MBR]] aka msdos partitioning specific instructions =====<br />
<br />
Usually the post-MBR gap (after the 512 byte MBR region and before the start of the 1st partition) in many MBR (or msdos disklabel) partitioned systems is 32 KiB when DOS compatibility cylinder alignment issues are satisfied in the partition table. However a post-MBR gap of about 1 to 2 MiB is recommended to provide sufficient room for embedding GRUB2's {{ic|core.img}} ({{bug|24103}}). It is advisable to use a partitioner which supports 1 MiB partition alignment to obtain this space as well as satisfy other non-512 byte sector issues (which are unrelated to embedding of {{ic|core.img}}).<br />
<br />
If you do not dual-boot with MS Windows (any version) in BIOS systems, it is advisable to switch to GPT partitioning - [[GUID_Partition_Table#Convert_from_MBR_to_GPT]]<br />
<br />
{{Note|Create the 2MiB partition mentioned above BEFORE you convert to GPT. If you do not, gparted will not resize your boot partition to allow its creation, and when you reboot GRUB2 will not know where to look.}}<br />
<br />
==== UEFI systems ====<br />
<br />
===== Create and Mount the UEFI SYSTEM PARTITION =====<br />
<br />
{{Note|It is recommended to read the [[UEFI]], [[GPT]] and [[UEFI_Bootloaders]] pages before reading this part.}}<br />
<br />
Follow [[Unified_Extensible_Firmware_Interface#Create_an_UEFI_System_Partition_in_Linux]] for instructions on creating a UEFI SYSTEM PARTITION. Then mount the UEFI SYSTEM PARTITION at {{ic|/boot/efi}}. If you have mounted the UEFISYS partition in some other mountpoint, replace {{ic|/boot/efi}} in the below instructions with that mountpoint:<br />
<br />
# mkdir -p /boot/efi<br />
# mount -t vfat <UEFISYS_PART_DEVICE> /boot/efi<br />
<br />
Create a <UEFI_SYSTEM_PARTITION>{{ic|/EFI}} directory, if it does not exist:<br />
<br />
# mkdir -p /boot/efi/EFI<br />
<br />
== Installation ==<br />
<br />
=== During Arch Linux installation ===<br />
<br />
* Skip the '''Install Bootloader''' step and exit the installer.<br />
* Configure the network:<br />
# aif -p partial-configure-network<br />
This will bring up a prompt; put in the network interface to use, (e.g., {{ic|eth0}}) and use DHCP for easy configuration.<br />
* If you did not configure the installed system's {{ic|/etc/resolv.conf}} file during installation (for instance, if you plan to let DHCP generate it later), you will need to copy the one generated by AIF when it configured the network:<br />
# cp /etc/resolv.conf /mnt/etc/resolv.conf<br />
* If you run into network issues in the pacman update step below, you may have needed to install the {{Pkg|net-tools}} package.<br />
* Check and see if the {{ic|dm_mod}} module is loaded. If it is not, load it manually:<br />
# lsmod | grep dm_mod<br />
# modprobe dm-mod<br />
{{Note|This is necessary at this point, and cannot be postponed after the chroot. If you try to use modprobe in a chroot environment that has a later kernel version from that of the installing device (at the time of writing, 2.6.33), modprobe will fail. This happens routinely using the Arch "net" installations.}}<br />
* From the installer's live shell, chroot to the installed system:<br />
# mount -o bind /dev /mnt/dev<br />
# mount -t proc /proc /mnt/proc/<br />
# mount -t sysfs /sys /mnt/sys/<br />
# chroot /mnt bash<br />
* Refresh the package list (with an extra {{ic|-y}} flag to force a refresh of all package lists even if they appear to be up to date):<br />
# pacman -Syy<br />
* Install the GRUB2 package as mentioned in the section [[#From a running Arch Linux]] (Note that the {{ic|dm-mod}} module has already been loaded, no need to do that again).<br />
<br />
=== From a running Arch Linux ===<br />
<br />
==== BIOS systems ====<br />
<br />
===== Backup Important Data =====<br />
<br />
Although a GRUB(2) installation should run smoothly, it is strongly recommended to keep the GRUB Legacy files before installing {{Pkg|grub-bios}}.<br />
<br />
# mv /boot/grub /boot/grub-legacy<br />
<br />
Backup the MBR which contains the boot code and partition table (Replace {{ic|/dev/sd'''X'''}} with your actual disk path)<br />
<br />
# dd if=/dev/sdX of=/path/to/backup/mbr_backup bs=512 count=1<br />
<br />
Only 446 bytes of the MBR contain boot code, the next 64 contain the partition table. If you do not want to overwrite your partition table when restoring, it is strongly advised to backup only the MBR boot code:<br />
<br />
# dd if=/dev/sdX of=/path/to/backup/bootcode_backup bs=446 count=1<br />
<br />
If unable to install GRUB2 correctly, see [[GRUB2#Restore_GRUB_Legacy]].<br />
<br />
===== Install grub-bios package =====<br />
<br />
The GRUB(2) packages can be installed with pacman (and will replace {{Pkg|grub-legacy}} or {{Pkg|grub}}, if it is installed):<br />
<br />
# pacman -S grub-bios<br />
<br />
{{Note|Simply installing the package won't update the {{ic|/boot/grub/i386-pc/core.img}} file and the GRUB(2) modules in {{ic|/boot/grub/i386-pc}}. You need to update them manually using {{ic|grub-install}} as explained below.}}<br />
<br />
Also load the device-mapper kernel module without which {{ic|grub-probe}} does not reliably detect disks and partitions:<br />
<br />
# modprobe dm_mod<br />
<br />
===== Install grub-bios boot files =====<br />
<br />
There are 3 ways to install GRUB(2) boot files in BIOS booting:<br />
*[[#Install_to_440-byte_MBR_boot_code_region]] (recommended) , <br />
*[[#Install_to_Partition_or_Partitionless_Disk]] (not recommended),<br />
*[[#Generate_core.img_alone]] (safest method, but requires another BIOS bootloader like [[grub-legacy]] or [[syslinux]] to be installed to chainload {{ic|/boot/grub/i386-pc/core.img}}). <br />
<br />
====== Install to 440-byte MBR boot code region ======<br />
<br />
To setup {{ic|grub-bios}} in the 440-byte Master Boot Record boot code region, populate the {{ic|/boot/grub}} directory, generate the {{ic|/boot/grub/i386-pc/core.img}} file, and embed it in the 32 KiB (minimum size - varies depending on partition alignment) post-MBR gap (MBR disks) or in BIOS Boot Partition (GPT disks), run:<br />
<br />
# grub-install --directory=/usr/lib/grub/i386-pc --target=i386-pc --boot-directory=/boot --recheck --debug /dev/sda<br />
# mkdir -p /boot/grub/locale<br />
# cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo<br />
<br />
where {{ic|/dev/sda}} is the destination of the installation (in this case the MBR of the first SATA disk). If you use [[LVM]] for your {{ic|/boot}}, you can install GRUB2 on multiple physical disks. <br />
<br />
The {{ic|--no-floppy}} tells {{ic|grub-bios}} utilities not to search for any floppy devices which reduces the overall execution time of {{ic|grub-install}} on many systems (it will also prevent the issue below from occurring). Otherwise you get an error that looks like this:<br />
<br />
grub-probe: error: Cannot get the real path of '/dev/fd0'<br />
Auto-detection of a filesystem module failed.<br />
Please specify the module with the option '--modules' explicitly.<br />
<br />
{{Note|{{ic|--no-floppy}} has been removed from {{ic|grub-install}} in 2.00~beta2 upstream release, and replaced with {{ic|--allow-floppy}}.}}<br />
<br />
{{Warning|Make sure to check the {{ic|/boot}} directory if you use the latter. Sometimes the {{ic| boot-directory}} parameter creates another {{ic|/boot}} folder inside of {{ic|/boot}}. A wrong install would look like: {{ic|/boot/boot/grub/}}.}}<br />
<br />
====== Install to Partition or Partitionless Disk ======<br />
<br />
{{Note|{{ic|grub-bios}} (any version - including upstream Bazaar repo) does not encourage installation to a partition boot sector or a partitionless disk like GRUB Legacy or syslinux does. This kind of setup is prone to breakage, especially during updates, and is not supported by Arch devs.}}<br />
<br />
To set up {{ic|grub-bios}} to a partition boot sector, to a partitionless disk (also called superfloppy) or to a floppy disk, run (using for example {{ic|/dev/sdaX}} as the {{ic|/boot}} partition):<br />
<br />
# chattr -i /boot/grub/i386-pc/core.img<br />
# grub-install --directory=/usr/lib/grub/i386-pc --target=i386-pc --boot-directory=/boot --recheck --force --debug /dev/sdaX<br />
# mkdir -p /boot/grub/locale<br />
# cp /usr/share/locale/en@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo<br />
# chattr +i /boot/grub/i386-pc/core.img<br />
<br />
You need to use the {{ic|--force}} option to allow usage of blocklists and should not use {{ic|1=--grub-setup=/bin/true}} (which is similar to simply generating {{ic|core.img}}).<br />
<br />
{{ic|grub-install}} will give out warnings like which should give you the idea of what might go wrong with this approach:<br />
<br />
/sbin/grub-setup: warn: Attempting to install GRUB to a partitionless disk or to a partition. This is a BAD idea.<br />
/sbin/grub-setup: warn: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. <br />
However, blocklists are UNRELIABLE and their use is discouraged.<br />
<br />
Without {{ic|--force}} you may get the below error and {{ic|grub-setup}} will not setup its boot code in the partition boot sector:<br />
<br />
/sbin/grub-setup: error: will not proceed with blocklists<br />
<br />
With {{ic|--force}} you should get:<br />
<br />
Installation finished. No error reported.<br />
<br />
The reason why {{ic|grub-setup}} does not by default allow this is because in case of partition or a partitionless disk is that {{ic|grub-bios}} relies on embedded blocklists in the partition bootsector to locate the {{ic|/boot/grub/i386-pc/core.img}} file and the prefix dir {{ic|/boot/grub}}. The sector locations of {{ic|core.img}} may change whenever the filesystem in the partition is being altered (files copied, deleted etc.). For more info see https://bugzilla.redhat.com/show_bug.cgi?id=728742 and https://bugzilla.redhat.com/show_bug.cgi?id=730915.<br />
<br />
The workaround for this is to set the immutable flag on {{ic|/boot/grub/i386-pc/core.img}} (using chattr command as mentioned above) so that the sector locations of the {{ic|core.img}} file in the disk is not altered. The immutable flag on {{ic|/boot/grub/i386-pc/core.img}} needs to be set only if {{ic|grub-bios}} is installed to a partition boot sector or a partitionless disk, not in case of installtion to MBR or simple generation of {{ic|core.img}} without embedding any bootsector (mentioned above).<br />
<br />
====== Generate core.img alone ======<br />
<br />
To populate the {{ic|/boot/grub}} directory and generate a {{ic|/boot/grub/i386-pc/core.img}} file '''without''' embedding any {{ic|grub-bios}} bootsector code in the MBR, post-MBR region, or the partition bootsector, add {{ic|1=--grub-setup=/bin/true}} to {{ic|grub-install}}:<br />
<br />
# grub-install --directory=/usr/lib/grub/i386-pc --target=i386-pc --grub-setup=/bin/true --boot-directory=/boot --recheck --debug /dev/sda<br />
# mkdir -p /boot/grub/locale<br />
# cp /usr/share/locale/en@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo<br />
<br />
You can then chainload GRUB2's {{ic|core.img}} from GRUB Legacy or syslinux as a Linux kernel or a multiboot kernel.<br />
<br />
===== Generate GRUB2 BIOS Config file =====<br />
<br />
Finally, generate a configuration for GRUB2 (this is explained in greater detail in the Configuration section):<br />
<br />
# grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
{{Note|The file path is {{ic|/boot/grub/grub.cfg}}, NOT {{ic|/boot/grub/i386-pc/grub.cfg}}.}}<br />
<br />
If grub2 complains about "no suitable mode found" while booting, go to [[#Correct_GRUB2_No_Suitable_Mode_Found_Error]].<br />
<br />
If {{ic|grub-mkconfig}} fails, convert your {{ic|/boot/grub/menu.lst}} file to {{ic|/boot/grub/grub.cfg}} using:<br />
<br />
# grub-menulst2cfg /boot/grub/menu.lst /boot/grub/grub.cfg<br />
<br />
For example:<br />
<br />
{{hc|/boot/grub/menu.lst|<nowiki><br />
default=0<br />
timeout=5<br />
<br />
title Arch Linux Stock Kernel<br />
root (hd0,0)<br />
kernel /vmlinuz-linux root=/dev/sda2 ro<br />
initrd /initramfs-linux.img<br />
<br />
title Arch Linux Stock Kernel Fallback<br />
root (hd0,0)<br />
kernel /vmlinuz-linux root=/dev/sda2 ro<br />
initrd /initramfs-linux-fallback.img<br />
</nowiki>}}<br />
<br />
{{hc|/boot/grub/grub.cfg|<nowiki><br />
set default='0'; if [ x"$default" = xsaved ]; then load_env; set default="$saved_entry"; fi<br />
set timeout=5<br />
<br />
menuentry 'Arch Linux Stock Kernel' {<br />
set root='(hd0,1)'; set legacy_hdbias='0'<br />
legacy_kernel '/vmlinuz-linux' '/vmlinuz-linux' 'root=/dev/sda2' 'ro'<br />
legacy_initrd '/initramfs-linux.img' '/initramfs-linux.img'<br />
<br />
}<br />
<br />
menuentry 'Arch Linux Stock Kernel Fallback' {<br />
set root='(hd0,1)'; set legacy_hdbias='0'<br />
legacy_kernel '/vmlinuz-linux' '/vmlinuz-linux' 'root=/dev/sda2' 'ro'<br />
legacy_initrd '/initramfs-linux-fallback.img' '/initramfs-linux-fallback.img'<br />
}<br />
</nowiki>}}<br />
<br />
If you forgot to create a GRUB2 {{ic|/boot/grub/grub.cfg}} config file and simply rebooted into GRUB2 Command Shell, type:<br />
<br />
sh:grub> insmod legacycfg<br />
sh:grub> legacy_configfile ${prefix}/menu.lst<br />
<br />
Boot into Arch and re-create the proper GRUB2 {{ic|/boot/grub/grub.cfg}} config file.<br />
<br />
{{Note|This option works only in BIOS systems, not in UEFI systems.}}<br />
<br />
===== Multiboot in BIOS =====<br />
<br />
====== Boot Microsoft Windows installed in BIOS-MBR mode ======<br />
<br />
{{Note|GRUB2 supports booting {{ic|bootmgr}} directly and chainload of partition boot sector is no longer required to boot Windows in a BIOS-MBR setup.}}<br />
<br />
Find the UUID of the NTFS filesystem of the Windows's SYSTEM PARTITION where the {{ic|bootmgr}} and its files reside. For example, if Windows {{ic|bootmgr}} exists at {{ic|/media/Windows/bootmgr}}:<br />
<br />
# grub-probe --target=fs_uuid /media/Windows/bootmgr<br />
69B235F6749E84CE<br />
<br />
Then, add the below code to {{ic|/etc/grub.d/40_custom}} and regenerate {{ic|grub.cfg}} with {{ic|grub-mkconfig}} as explained above to boot Windows (Vista, 7 or 8) installed in BIOS-MBR mode:<br />
<br />
<pre><br />
#!/bin/sh<br />
menuentry "Microsoft Windows 7 BIOS-MBR" {<br />
insmod part_msdos<br />
insmod ntfs<br />
insmod search_fs_uuid<br />
insmod ntldr <br />
search --fs-uuid --no-floppy --set=root 69B235F6749E84CE<br />
ntldr /bootmgr<br />
}</pre><br />
<br />
For Windows XP:<br />
<br />
menuentry "Microsoft Windows XP" {<br />
insmod part_msdos<br />
insmod ntfs<br />
insmod search_fs_uuid<br />
insmod ntldr <br />
search --fs-uuid --no-floppy --set=root 69B235F6749E84CE<br />
ntldr /ntldr<br />
}<br />
<br />
==== UEFI systems ====<br />
<br />
{{Note|It is recommended to read the [[UEFI]], [[GPT]] and [[UEFI_Bootloaders]] pages before reading this part.}}<br />
<br />
===== Install grub-uefi package =====<br />
<br />
{{Note|Unless specified as EFI 1.x , EFI and UEFI terms are used interchangeably to denote UEFI 2.x firmware. Also unless stated explicitely, the instructions are general and not Mac specific. Some of them may not work or may be different in Macs. Apple's EFI implementation is neither a EFI 1.x version nor UEFI 2.x version but mixes up both. This kind of firmware does not fall under any one UEFI Specification version and is therefore not a standard UEFI firmware.}}<br />
<br />
GRUB2 UEFI bootloader is available in Arch Linux only from version 1.99~rc1. To install, first [[Unified_Extensible_Firmware_Interface#Detecting_UEFI_Firmware_Arch|detect which UEFI firmware arch]] you have (either x86_64 or i386).<br />
<br />
Depending on that, install the appropriate package<br />
<br />
For 64-bit aka x86_64 UEFI firmware:<br />
# pacman -S grub-efi-x86_64<br />
<br />
For 32-bit aka i386 UEFI firmware:<br />
# pacman -S grub-efi-i386<br />
<br />
{{Note|Simply installing the package will not update the {{ic|grub.efi}} file and the GRUB(2) modules in the UEFI System Partition. You need to do this manually using {{ic|grub-install}} as explained below.}}<br />
<br />
Also load the device-mapper kernel module without which {{ic|grub-probe}} does not reliably detect disks and partitions:<br />
<br />
# modprobe dm-mod<br />
<br />
===== Install grub-uefi boot files =====<br />
<br />
====== Install to UEFI SYSTEM PARTITION ======<br />
<br />
{{Note|The below commands assume you are using {{ic|grub-efi-x86_64}} (for {{ic|grub-efi-i386}} replace {{ic|x86_64}} with {{ic|i386}} in the below commands).}}<br />
<br />
The UEFI system partition will need to be mounted at {{ic|/boot/efi/}} for the GRUB2 install script to detect it:<br />
<br />
# mkdir -p /boot/efi<br />
# mount -t vfat /dev/sdXY /boot/efi<br />
<br />
Install GRUB UEFI application to {{ic|/boot/efi/EFI/arch_grub}} and its modules to {{ic|/boot/grub/x86_64-efi}} (recommended) using:<br />
<br />
# grub-install --directory=/usr/lib/grub/x86_64-efi --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --boot-directory=/boot --recheck --debug<br />
# mkdir -p /boot/grub/locale<br />
# cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo<br />
<br />
If you want to install grub2 modules and {{ic|grub.cfg}} at the directory {{ic|/boot/efi/EFI/grub}} and the {{ic|grubx64.efi}} application at {{ic|/boot/efi/EFI/arch_grub}} use:<br />
<br />
# grub-install --directory=/usr/lib/grub/x86_64-efi --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --boot-directory=/boot/efi/EFI --recheck --debug<br />
# mkdir -p /boot/efi/EFI/grub/locale<br />
# cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/efi/EFI/grub/locale/en.mo<br />
<br />
In this case {{ic|grub-efi-x86_64}} will be installed into {{ic|/boot/grub}}, making the behavior consistent with the BIOS verion of GRUB2, but this is not recommended if you use both {{ic|grub-bios}} and {{ic|grub-efi-x86_64}} in your system, as this will overwrite {{ic|grub-bios }}modules in {{ic|/boot/grub}}.<br />
<br />
The {{ic|--efi-directory}} option mentions the mountpoint of UEFI SYSTEM PARTITION , {{ic|--bootloader-id}} mentions the name of the directory used to store the {{ic|grubx64.efi}} file and {{ic|--boot-directory}} mentions the directory wherein the actual modules will be installed (and into which {{ic|grub.cfg}} should be created).<br />
<br />
The actual paths are:<br />
<br />
<efi-directory>/<EFI or efi>/<bootloader-id>/grubx64.efi<br />
<br />
<boot-directory>/grub/x86_64-efi/<all modules, grub.efi, core.efi, grub.cfg><br />
<br />
{{Note|the {{ic|--bootloader-id}} option does not change {{ic|<boot-directory>/grub}}, i.e. you cannot install the modules to {{ic|<boot-directory>/<bootloader-id>}}, the path is hard-coded to be {{ic|<boot-directory>/grub}}.}}<br />
<br />
In {{ic|<nowiki>--efi-directory=/boot/efi --boot-directory=/boot/efi/EFI --bootloader-id=grub</nowiki>}}:<br />
<br />
<efi-directory>/<EFI or efi>/<bootloader-id> == <boot-directory>/grub == /boot/efi/EFI/grub<br />
<br />
In {{ic|<nowiki>--efi-directory=/boot/efi --boot-directory=/boot/efi/EFI --bootloader-id=arch_grub</nowiki>}}:<br />
<br />
<efi-directory>/<EFI or efi>/<bootloader-id> == /boot/efi/EFI/arch_grub<br />
<boot-directory>/grub == /boot/efi/EFI/grub<br />
<br />
In {{ic|<nowiki>--efi-directory=/boot/efi --boot-directory=/boot --bootloader-id=arch_grub</nowiki>}}:<br />
<br />
<efi-directory>/<EFI or efi>/<bootloader-id> == /boot/efi/EFI/arch_grub<br />
<boot-directory>/grub == /boot/grub<br />
<br />
In {{ic|<nowiki>--efi-directory=/boot/efi --boot-directory=/boot --bootloader-id=grub</nowiki>}}:<br />
<br />
<efi-directory>/<EFI or efi>/<bootloader-id> == /boot/efi/EFI/grub<br />
<boot-directory>/grub == /boot/grub<br />
<br />
The {{ic|<nowiki><efi-directory>/<EFI or efi>/<bootloader-id>/grubx64.efi</nowiki>}} is an exact copy of {{ic|<nowiki><boot-directory>/grub/x86_64-efi/core.efi</nowiki>}}.<br />
<br />
{{Note|In GRUB2 2.00~beta4, the {{ic|grub-install}} option {{ic|--efi-directory}} replaces {{ic|--root-directory}} and the latter is deprecated.}}<br />
{{Note|The options {{ic|--efi-directory}} and {{ic|--bootloader-id}} are specific to GRUB2 UEFI.}}<br />
<br />
In all the cases the UEFI SYSTEM PARTITION should be mounted for {{ic|grub-install}} to install {{ic|grubx64.efi}} in it, which will be launched by the firmware (using the {{ic|efibootmgr}} created boot entry in non-Mac systems).<br />
<br />
If you notice carefully, there is no <device_path> option (Eg: {{ic|/dev/sda}}) at the end of the {{ic|grub-install}} command unlike the case of setting up GRUB2 for BIOS systems. Any <device_path> provided will be ignored by the install script as UEFI bootloaders do not use MBR or Partition boot sectors at all.<br />
<br />
You may now be able to UEFI boot your system by creating a {{ic|grub.cfg}} file by following [[#Generate_GRUB2_UEFI_Config_file]] and [[#Create_GRUB2_entry_in_the_Firmware_Boot_Manager]].<br />
<br />
===== Create GRUB2 entry in the Firmware Boot Manager =====<br />
<br />
====== Non-Mac UEFI systems ======<br />
<br />
{{ic|grub-install}} will ensure that {{ic|/boot/efi/EFI/arch_grub/grubx64.efi}} is launched by default if it detects {{ic|efibootmgr}} and if it is able to access UEFI Runtime Services. Follow [[Unified_Extensible_Firmware_Interface#efibootmgr]] for more info.<br />
<br />
If you have problems running GRUB2 in UEFI mode you can try the following (worked on an ASUS Z68 mainboard):<br />
<br />
# cp /boot/efi/EFI/arch_grub/grubx64.efi /boot/efi/shellx64.efi<br />
<br />
or<br />
<br />
# cp /boot/efi/EFI/arch_grub/grubx64.efi /boot/efi/EFI/shellx64.efi<br />
<br />
or<br />
<br />
# cp /boot/efi/EFI/arch_grub/grubx64.efi /boot/efi/EFI/tools/shellx64.efi<br />
<br />
After this launch the UEFI Shell from the UEFI setup/menu (in ASUS UEFI BIOS, switch to advanced mode, press Exit in the top right corner and choose "Launch EFI shell from filesystem device"). The GRUB2 menu will show up and you can boot into your system. Afterwards you can use efibootmgr to setup a menu entry (see above).<br />
<br />
====== Apple Mac EFI systems ======<br />
<br />
{{Note|TODO: GRUB upstream Bazaar mactel branch http://bzr.savannah.gnu.org/lh/grub/branches/mactel/changes. No further update from grub developers.}}<br />
{{Note|TODO: Experimental "bless" utility for Linux by Fedora developers - {{AUR|mactel-boot}}. Requires more testing.}}<br />
<br />
Use bless command from within Mac OS X to set {{ic|grubx64.efi}} as the default boot option. You can also boot from the Mac OS X install disc and launch a Terminal there if you only have Linux installed. In the Terminal, create a directory and mount the EFI System Partition:<br />
<br />
# cd /Volumes<br />
# mkdir efi<br />
# mount -t msdos /dev/disk0s1 /Volumes/efi<br />
<br />
Then run bless on {{ic|grub.efi}} and on the EFI partition to set them as the default boot options.<br />
<br />
# bless --folder=/Volumes/efi --file=/Volumes/efi/efi/arch_grub/grubx64.efi --setBoot<br />
# bless --mount=/Volumes/efi --file=/Volumes/efi/efi/arch_grub/grubx64.efi --setBoot<br />
<br />
More info at https://help.ubuntu.com/community/UEFIBooting#Apple_Mac_EFI_systems_.28both_EFI_architecture.29.<br />
<br />
===== Generate GRUB2 UEFI Config file =====<br />
<br />
Finally, generate a configuration for GRUB2 (this is explained in greater detail in the Configuration section):<br />
<br />
# grub-mkconfig -o <boot-directory>/grub/grub.cfg<br />
<br />
{{Note|The file path is {{ic|<boot-directory>/grub/grub.cfg}}, NOT {{ic|<boot-directory>/grub/x86_64-efi/grub.cfg}}.}}<br />
<br />
If you used {{ic|<nowiki>--boot-directory=/boot</nowiki>}}:<br />
<br />
# grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
If you used {{ic|<nowiki>--boot-directory=/boot/efi/EFI</nowiki>}}:<br />
<br />
# grub-mkconfig -o /boot/efi/EFI/grub/grub.cfg<br />
<br />
This is independent of the value of {{ic|--bootloader-id}} option.<br />
<br />
If GRUB2 complains about "no suitable mode found" while booting, try [[#Correct_GRUB2_No_Suitable_Mode_Found_Error]].<br />
<br />
===== Create GRUB2 Standalone UEFI Application =====<br />
<br />
It is possible to create a {{ic|grubx64_standalone.efi}} application which has all the modules embeddded in a memdisk within the uefi application, thus removing the need for having a separate directory populated with all the GRUB2 uefi modules and other related files. This is done using the {{ic|grub-mkstandalone}} command which is included in {{Pkg|grub-common}} >= 1:1.99-6 package.<br />
<br />
The easiest way to do this would be with the install command already mentioned before, but specifying the modules to include. For example:<br />
<br />
# grub-mkstandalone --directory="/usr/lib/grub/x86_64-efi/" --format="x86_64-efi" --compression="xz" \<br />
--output="/boot/efi/EFI/arch_grub/grubx64_standalone.efi" <any extra files you want to include><br />
<br />
The {{ic|grubx64_standalone.efi}} file expects {{ic|grub.cfg}} to be within its $prefix which is {{ic|(memdisk)/boot/grub}}. The memdisk is embedded within the efi app. The {{ic|grub-mkstandlone}} script allow passing files to be included in the memdisk image to be as the arguments to the script (in <any extra files you want to include>).<br />
<br />
If you have the {{ic|grub.cfg}} at {{ic|/home/user/Desktop/grub.cfg}}, then create a temporary {{ic|/home/user/Desktop/boot/grub/}} directory, copy the {{ic|/home/user/Desktop/grub.cfg}} to {{ic|/home/user/Desktop/boot/grub/grub.cfg}}, cd into {{ic|/home/user/Desktop/boot/grub/}} and run:<br />
<br />
# grub-mkstandalone --directory="/usr/lib/grub/x86_64-efi/" --format="x86_64-efi" --compression="xz" \<br />
--output="/boot/efi/EFI/arch_grub/grubx64_standalone.efi" "boot/grub/grub.cfg"<br />
<br />
The reason to cd into {{ic|/home/user/Desktop/boot/grub/}} and to pass the file path as {{ic|boot/grub/grub.cfg}} (notice the lack of a leading slash - boot/ vs /boot/ ) is because {{ic|dir1/dir2/file}} is included as {{ic|(memdisk)/dir1/dir2/file}} by the {{ic|grub-mkstandalone}} script. <br />
<br />
If you pass {{ic|/home/user/Desktop/grub.cfg}} the file will be included as {{ic|(memdisk)/home/user/Desktop/grub.cfg}}. If you pass {{ic|/home/user/Desktop/boot/grub/grub.cfg}} the file will be included as {{ic|(memdisk)/home/user/Desktop/boot/grub/grub.cfg}}. That is the reason for cd'ing into {{ic|/home/user/Desktop/boot/grub/}} and passing {{ic|boot/grub/grub.cfg}}, to include the file as {{ic|(memdisk)/boot/grub/grub.cfg}}, which is what {{ic|grub.efi}} expects the file to be.<br />
<br />
You need to create an UEFI Boot Manager entry for {{ic|/boot/efi/EFI/arch_grub/grubx64_standalone.efi}} using {{ic|efibootmgr}}. Follow [[#Create GRUB2 entry in the Firmware Boot Manager]].<br />
<br />
===== Multiboot in UEFI =====<br />
<br />
====== Chainload Microsoft Windows x86_64 UEFI-GPT ======<br />
<br />
Find the UUID of the FAT32 filesystem in the UEFI SYSTEM PARTITION where the Windows UEFI Bootloader files reside. For example, if Windows {{ic|bootmgfw.efi}} exists at {{ic|/boot/efi/EFI/Microsoft/Boot/bootmgfw.efi}} (ignore the upper-lower case differences since that is immaterial in FAT filesystem):<br />
<br />
# grub-probe --target=fs_uuid /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi<br />
1ce5-7f28<br />
<br />
# grub-probe --target=hints_string /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi<br />
--hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1<br />
<br />
Then, add this code to {{ic|/boot/grub/grub.cfg}} OR {{ic|/boot/efi/EFI/grub/grub.cfg}} to chainload Windows x86_64 (Vista SP1+, 7 or 8) installed in UEFI-GPT mode:<br />
<br />
menuentry "Microsoft Windows x86_64 UEFI-GPT" {<br />
insmod part_gpt<br />
insmod fat<br />
insmod search_fs_uuid<br />
insmod chain<br />
search --fs-uuid --no-floppy --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 1ce5-7f28<br />
chainloader /efi/Microsoft/Boot/bootmgfw.efi<br />
}<br />
<br />
== Configuration ==<br />
<br />
You can also choose to automatically generate or manually edit {{ic|grub.cfg}}.<br />
<br />
{{Note|For EFI systems, if GRUB2 was installed with the {{ic|--boot-directory}} option set, the {{ic|grub.cfg}} file must be placed in the same directory as {{ic|grubx64.efi}}. Otherwise, the {{ic|grub.cfg}} file goes in {{ic|/boot/grub/}}, just like in the BIOS version of GRUB2.}}<br />
<br />
{{Note|Here is a quite complete description of how to configure GRUB2: http://members.iinet.net/~herman546/p20/GRUB2%20Configuration%20File%20Commands.html }}<br />
<br />
=== Automatically generating using grub-mkconfig (Recommended) ===<br />
<br />
The GRUB2 {{ic|menu.lst}} equivalent configuration files are {{ic|/etc/default/grub}} and {{ic|/etc/grub.d/*}}. {{ic|grub-mkconfig}} uses these files to generate {{ic|grub.cfg}}. By default the script outputs to stdout. To generate a {{ic|grub.cfg}} file run the command:<br />
<br />
# grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
{{ic|/etc/grub.d/10_linux}} is set to automatically add menu items for Arch linux that work out of the box, to any generated configuration. Other operating systems may need to be added manually by editing {{ic|/etc/grub.d/40_custom}}<br />
<br />
==== Additional arguments ====<br />
<br />
To pass custom additional arguments to the Linux image, you can set the {{ic|GRUB_CMDLINE_LINUX}} variable in {{ic|/etc/default/grub}}. This is analogous to adding commands to the kernel line in GRUB Legacy.<br />
<br />
For example, use {{ic|<nowiki>GRUB_CMDLINE_LINUX="resume=/dev/sdaX"</nowiki>}} where {{ic|sda'''X'''}} is your swap partition to enable resume after hibernation.<br />
<br />
You can also use {{ic|<nowiki>GRUB_CMDLINE_LINUX="resume=/dev/disk/by-uuid/${swap_uuid}"</nowiki>}}, where {{ic|${swap_uuid} }} is the [[Persistent_block_device_naming|UUID]] of your swap partition.<br />
<br />
=== Manually creating grub.cfg ===<br />
<br />
{{Warning|Editing this file is strongly ''not'' recommended. The file is generated by the {{ic|grub-mkconfig}} command, and it is best to edit your {{ic|/etc/default/grub}} or one of the scripts in the {{ic|/etc/grub.d}} folder.}}<br />
<br />
A basic GRUB config file uses the following options<br />
* {{ic|(hdX,Y)}} is the partition {{ic|Y}} on disk {{ic|X}}, partition numbers starting at 1, disk numbers starting at 0<br />
* {{ic|1=set default=N}} is the default boot entry that is chosen after timeout for user action<br />
* {{ic|1=set timeout=M}} is the time {{ic|M}} to wait in seconds for a user selection before default is booted<br />
* {{ic|<nowiki>menuentry "title" {entry options}</nowiki>}} is a boot entry titled {{ic|title}}<br />
* {{ic|1=set root=(hdX,Y)}} sets the boot partition, where the kernel and GRUB modules are stored (boot need not be a separate partition, and may simply be a directory under the "root" partition ({{ic|/}})<br />
<br />
An example configuration:<br />
<br />
{{hc<br />
|/boot/grub/grub.cfg<br />
|<nowiki><br />
# Config file for GRUB2 - The GNU GRand Unified Bootloader<br />
# /boot/grub/grub.cfg<br />
<br />
# DEVICE NAME CONVERSIONS<br />
#<br />
# Linux Grub<br />
# -------------------------<br />
# /dev/fd0 (fd0)<br />
# /dev/sda (hd0)<br />
# /dev/sdb2 (hd1,2)<br />
# /dev/sda3 (hd0,3)<br />
#<br />
<br />
# Timeout for menu<br />
set timeout=5<br />
<br />
# Set default boot entry as Entry 0<br />
set default=0<br />
<br />
# (0) Arch Linux<br />
menuentry "Arch Linux" {<br />
set root=(hd0,1)<br />
linux /vmlinuz-linux root=/dev/sda3 ro<br />
initrd /initramfs-linux.img<br />
}<br />
<br />
## (1) Windows<br />
#menuentry "Windows" {<br />
#set root=(hd0,3)<br />
#chainloader +1<br />
#}<br />
</nowiki>}}<br />
<br />
=== Dual-booting ===<br />
<br />
{{Note|If you want GRUB2 to automatically search for other systems, you may wish to install {{Pkg|os-prober}}.}}<br />
<br />
==== Using grub-mkconfig ====<br />
The best way to add other entries is editing the {{ic|/etc/grub.d/40_custom}}. The entries in this file will be automatically added when running {{ic|grub-mkconfig}}.<br />
After adding the new lines, run:<br />
# grub-mkconfig -o /boot/grub/grub.cfg <br />
to generate an updated {{ic|grub.cfg}}.<br />
<br />
===== With GNU/Linux =====<br />
<br />
Assuming that the other distro is on partition {{ic|sda2}}:<br />
<br />
menuentry "Other Linux" {<br />
set root=(hd0,2)<br />
linux /boot/vmlinuz (add other options here as required)<br />
initrd /boot/initrd.img (if the other kernel uses/needs one)<br />
}<br />
<br />
===== With FreeBSD =====<br />
<br />
Requires that FreeBSD is installed on a single partition with UFS. Assuming it is installed on {{ic|sda4}}:<br />
<br />
menuentry "FreeBSD" {<br />
set root=(hd0,4)<br />
chainloader +1<br />
}<br />
<br />
===== With Windows =====<br />
<br />
This assumes that your Windows partition is {{ic|sda3}}.<br />
<br />
# (2) Windows XP<br />
menuentry "Windows XP" {<br />
set root=(hd0,3)<br />
chainloader (hd0,3)+1<br />
}<br />
<br />
If the Windows bootloader is on an entirely different hard drive than GRUB, it may be necessary to trick Windows into believing that it is the first hard drive. This was possible in GRUB Legacy with {{ic|map}} and is now done with {{ic|drivemap}}. Assuming GRUB is on {{ic|hd0}} and Windows is on {{ic|hd2}}, you need to add the following after {{ic|set root}}:<br />
<br />
drivemap -s hd0 hd2<br />
<br />
==== With Windows via EasyBCD and NeoGRUB ====<br />
<br />
Since EasyBCD's NeoGRUB currently does not understand the GRUB2 menu format, chainload to it by replacing the contents of your {{ic|C:\NST\menu.lst}} file with lines similar to the following:<br />
<br />
default 0<br />
timeout 1<br />
<br />
title Chainload into GRUB v2<br />
root (hd0,7)<br />
kernel /boot/grub/i386-pc/core.img<br />
<br />
===Visual Configuration===<br />
<br />
In GRUB2 it is possible, by default, to change the look of the menu. Make sure to initialize, if not done already, GRUB2 graphical terminal, gfxterm, with proper video mode, gfxmode, in GRUB2. This can be seen in the section [[#Correct_GRUB2_No_Suitable_Mode_Found_Error]]. This video mode is passed by GRUB2 to the linux kernel via 'gfxpayload' so any visual configurations need this mode in order to be in effect.<br />
<br />
====Setting the framebuffer resolution ====<br />
<br />
GRUB2 can set the framebuffer for both GRUB2 itself and the kernel. The old {{ic|1=vga=}} way is deprecated. The preferred method is editing {{ic|/etc/default/grub}} as the following sample:<br />
<br />
GRUB_GFXMODE=1024x768x32<br />
GRUB_GFXPAYLOAD_LINUX=keep<br />
<br />
To generate the changes, run: <br />
grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
The {{ic|gfxpayload}} property will make sure the kernel keeps the resolution.<br />
<br />
{{Note|If this example does not work for you try to replace {{ic|1=gfxmode="1024x768x32"}} by {{ic|1=vbemode="0x105"}}. Remember to replace the specified resolution with one suitable for your screen.}}<br />
{{Note|To show all the modes you can use {{ic|1=# hwinfo --framebuffer}} (hwinfo is available in [community]), while at GRUB2 prompt you can use the {{ic|1=vbeinfo}} command.}}<br />
<br />
If this method does not work for you, the deprecated {{ic|1=vga=}} method will still work. Just<br />
add it next to the {{ic|1="GRUB_CMDLINE_LINUX_DEFAULT="}} line in {{ic|/etc/default/grub}}<br />
for eg: {{ic|1="GRUB_CMDLINE_LINUX_DEFAULT="quiet splash vga=792"}} will give you a {{ic|1024x768}} resolution.<br />
<br />
You can choose one of these resolutions: {{ic|640×480}}, {{ic|800×600}}, {{ic|1024×768}}, {{ic|1280×1024}}, {{ic|1600×1200}}<br />
<br />
====915resolution hack ====<br />
<br />
Some times for Intel graphic adapters neither {{ic|1=# hwinfo --framebuffer}} nor {{ic|1=vbeinfo}} will show you the desired resolution. In this case you can use {{ic|915resolution}} hack. This hack will temporarily modify video BIOS and add needed resolution. See [http://915resolution.mango-lang.org/ 915resolution's home page]<br />
<br />
In the following I will proceed with the example for my system. Please adjust the recipe for your needs. First you need to find a video mode which will be modified later. For that, run {{ic|915resolution}} in GRUB2 command shell:<br />
915resolution -l<br />
The output will be something like:<br />
Intel 800/900 Series VBIOS Hack : version 0.5.3<br />
...<br />
Mode 30 : 640x480, 8 bits/pixel<br />
...<br />
Next, our purpose is to overwrite mode 30. (You can choose what ever mode you want.) In the file {{ic|/etc/grub.d/00_header}} just before the {{ic|set gfxmode&#61;${GRUB_GFXMODE}}} line insert:<br />
915resolution 30 1440 900<br />
Here we are overwriting the mode {{ic|30}} with {{ic|1440x900}} resolution. Lastly we need to set {{ic|GRUB_GFXMODE}} as described earlier, regenerate GRUB2 configuration file and reboot to test changes:<br />
# grub-mkconfig -o /boot/grub/grub.cfg<br />
# reboot<br />
<br />
====Background image and bitmap fonts====<br />
<br />
GRUB2 comes with support for background images and bitmap fonts in {{ic|pf2}} format. The unifont font is included in the {{Pkg|grub-common}} package under the filename {{ic|unicode.pf2}}, or, as only ASCII characters under the name {{ic|ascii.pf2}}. <br />
<br />
Image formats supported include tga, png and jpeg, providing the correct modules are loaded. The maximum supported resolution depends on your hardware.<br />
<br />
Make sure you have set up the proper [https://wiki.archlinux.org/index.php/GRUB2#Setting_the_framebuffer_resolution framebuffer resolution].<br />
<br />
Edit {{ic|/etc/default/grub}} like this:<br />
GRUB_BACKGROUND="/boot/grub/myimage"<br />
#GRUB_THEME="/path/to/gfxtheme"<br />
<br />
{{Note|If you have installed GRUB on a separate partition, {{ic|/boot/grub/myimage}} becomes {{ic|/grub/myimage}}.}}<br />
<br />
To generate the changes and add the information into {{ic|grub.cfg}}, run: <br />
grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
If adding the splash image was successful, the user will see {{ic|"Found background image..."}} in the terminal as the command is executed. <br />
If this phrase is not seen, the image information was probably not incorporated into the {{ic|grub.cfg}} file.<br />
<br />
If the image is not displayed, check:<br />
* The path and the filename in {{ic|/etc/default/grub}} are correct.<br />
* The image is of the proper size and format (tga, png, 8-bit jpg).<br />
* The image was saved in the RGB mode, and is not indexed.<br />
* The console mode is not enabled in {{ic|/etc/default/grub}}.<br />
* The command {{ic|grub-mkconfig}} must be executed to place the background image information into the {{ic|/boot/grub/grub.cfg}} file.<br />
<br />
====Theme====<br />
<br />
Here is an example for configuring Starfield theme which was included in GRUB2 package.<br />
<br />
Edit {{ic|/etc/default/grub}}<br />
GRUB_THEME="/boot/grub/themes/starfield/theme.txt"<br />
<br />
Generate the changes:<br />
grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
If configuring the theme was successful, you'll see {{ic|Found theme: /boot/grub/themes/starfield/theme.txt}} in the terminal.<br />
Your splash image will usually not displayed when using a theme.<br />
<br />
====Menu colors====<br />
<br />
As in GRUB Legacy (0.9x), you can change the menu colors in GRUB2. The available colors for GRUB2 are at https://www.gnu.org/software/grub/manual/html_node/Theme-file-format.html#Theme-file-format.<br />
Here is an example:<br />
<br />
Edit {{ic|/etc/default/grub}}:<br />
GRUB_COLOR_NORMAL="light-blue/black"<br />
GRUB_COLOR_HIGHLIGHT="light-cyan/blue"<br />
<br />
Generate the changes:<br />
grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
====Hidden menu====<br />
<br />
One of the unique features of GRUB2 is hiding/skipping the menu and showing it by holding {{keypress|Esc}} when needed. You can also adjust whether you want to see the timeout counter.<br />
<br />
Edit {{ic|/etc/default/grub}} as you wish. Here is an example where the comments from the beginning of the two lines have been removed to enable the feature, the timeout has been set to five seconds and to be shown to the user:<br />
GRUB_HIDDEN_TIMEOUT=5<br />
GRUB_HIDDEN_TIMEOUT_QUIET=false<br />
<br />
and run:<br />
grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
====Disable framebuffer====<br />
<br />
User who uses NVIDIA proprietary driver might wish to disable GRUB2's framebuffer as it can cause problems with the binary driver.<br />
<br />
To disable framebuffer, edit {{ic|/etc/default/grub}} and uncomment the following line:<br />
GRUB_TERMINAL_OUTPUT=console<br />
<br />
=== Other Options ===<br />
<br />
==== LVM ====<br />
<br />
If you use [[LVM]] for your {{ic|/boot}}, add the following before menuentry lines:<br />
<br />
insmod lvm<br />
<br />
and specify your root in the menuentry as:<br />
<br />
set root=(''lvm_group_name''-''lvm_logical_boot_partition_name'')<br />
<br />
Example:<br />
<br />
# (0) Arch Linux<br />
menuentry "Arch Linux" {<br />
insmod lvm<br />
set root=(VolumeGroup-lv_boot)<br />
# you can only set following two lines<br />
linux /vmlinuz-linux root=/dev/mapper/VolumeGroup-root ro<br />
initrd /initramfs-linux.img<br />
}<br />
<br />
==== RAID ====<br />
<br />
GRUB2 provides convenient handling of RAID volumes. You need to add {{ic|insmod raid}} which allows you to address the volume natively. For example, {{ic|/dev/md0}} becomes:<br />
set root=(md0)<br />
<br />
whereas a partitioned RAID volume (e.g. {{ic|/dev/md0p1}}) becomes:<br />
set root=(md0,1)<br />
<br />
==== Persistent block device naming ====<br />
You can use UUIDs to detect partitions instead of the "old" {{ic|/dev/sd*}} and {{ic|/dev/hd*}} scheming. It has the advantage of detecting partitions by their unique UUIDs, which is needed by some people booting with complicated partition setups.<br />
<br />
UUIDs are used by default in the recent versions of GRUB2 - there is no downside in it anyway except that you need to re-generate the {{ic|grub.cfg}} file every time you resize or reformat your partitions. Remember this when modifying partitions with Live-CD.<br />
<br />
The recent versions of GRUB2 use UUIDs by default. You can re-enable the use of UUIDS by simply commenting the UUID line (this is also what it looks like by default):<br />
#GRUB_DISABLE_LINUX_UUID=true<br />
you can also just set the value as {{ic|false}} as shown here:<br />
GRUB_DISABLE_LINUX_UUID=false<br />
<br />
Either way, do not forget to generate the changes:<br />
grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
==== Using Labels ====<br />
<br />
It is possible to use labels, human-readable strings attached to filesystems, by using the {{ic|--label}} option to {{ic|search}}. First of all, label your existing partition:<br />
# tune2fs -L a <LABEL> <PARTITION><br />
<br />
Then, add an entry using labels. An example of this:<br />
<br />
menuentry "Arch Linux, session texte" {<br />
search --label --no-floppy --set=root archroot<br />
linux /boot/vmlinuz-linux root=/dev/disk/by-label/archroot ro<br />
initrd /boot/initramfs-linux.img<br />
}<br />
<br />
==== Recall previous entry ====<br />
<br />
GRUB2 can remember the last entry you booted from and use this as the default entry to boot from next time. This is useful if you have multiple kernels (i.e., the current Arch one and the LTS kernel as a fallback option) or operating systems. To do this, edit {{ic|/etc/default/grub}} and change the setting of {{ic|GRUB_DEFAULT}}:<br />
<br />
GRUB_DEFAULT=saved<br />
<br />
This ensures that GRUB will default to the saved entry. To enable saving the selected entry, add the following line to {{ic|/etc/default/grub}}:<br />
<br />
GRUB_SAVEDEFAULT=true<br />
<br />
{{Note|Manually added menu items, eg Windows in {{ic|/etc/grub.d/40_custom}}, will need {{ic|savedefault}} added. Remember to regenerate your configuration file.}}<br />
<br />
==== Security ====<br />
<br />
If you want to secure GRUB2 so it is not possible for anyone to change boot parameters or use the command line, you can add a user/password combination to GRUB2's configuration files. To do this, run the command {{ic|grub-mkpasswd_pbkdf2}}. Enter a password and confirm it. The output will look like this:<br />
<br />
{{bc|<nowiki><br />
Your PBKDF2 is grub.pbkdf2.sha512.10000.C8ABD3E93C4DFC83138B0C7A3D719BC650E6234310DA069E6FDB0DD4156313DA3D0D9BFFC2846C21D5A2DDA515114CF6378F8A064C94198D0618E70D23717E82.509BFA8A4217EAD0B33C87432524C0B6B64B34FBAD22D3E6E6874D9B101996C5F98AB1746FE7C7199147ECF4ABD8661C222EEEDB7D14A843261FFF2C07B1269A</nowiki>}}Then, add the following to {{ic|/etc/grub.d/00_header}}:<br />
{{bc|<nowiki>cat << EOF<br />
<br />
set superusers="username"<br />
password_pbkdf2 username <password><br />
<br />
EOF</nowiki>}}<br />
where {{ic|<password>}} is the string generated by {{ic|grub-mkpasswd_pbkdf2}}.<br />
<br />
Regenerate your configuration file. Your GRUB2 command line, boot parameters and all boot entries are now protected.<br />
<br />
This can be relaxed and further customized with more users as described in the "Security" part of [https://www.gnu.org/software/grub/manual/grub.html#Security the GRUB manual].<br />
<br />
==== Root Encryption ====<br />
<br />
To let GRUB2 automatically add the kernel parameters for root encryption,<br />
add {{ic|1=cryptdevice=/dev/yourdevice:label}} to {{ic|GRUB_CMDLINE_LINUX}} in {{ic|/etc/defaults/grub}}.<br />
<br />
Example with root mapped to {{ic|/dev/mapper/root}}:<br />
<br />
GRUB_CMDLINE_LINUX="cryptdevice=/dev/sda2:root"<br />
<br />
Also, disable the usage of UUIDs for the rootfs:<br />
<br />
GRUB_DISABLE_LINUX_UUID=true<br />
<br />
Regenerate the configuration.<br />
<br />
=== Booting an ISO Directly From GRUB2 ===<br />
Edit {{ic|/etc/grub.d/40_custom}} to add an entry for the target ISO. When finished, update the GRUB menu as with the usual {{ic|grub-mkconfig -o /boot/grub/grub.cfg}} (as root).<br />
<br />
==== Arch ISO ====<br />
{{Note|Be sure to adjust the {{ic|hdX,Y}} in the third line to point to the correct disk/partition number of the isofile. Also adjust the {{ic|img_dev}} line to match this same location. However, if booting the ISO from USB on a computer which also has one internal HDD, then it needs to be {{ic|hd0,Y}} with {{ic|sdbY}}, instead of {{ic|sdaY}}.}}<br />
<br />
menuentry "Archlinux-2011.08.19-netinstall-x86_64.iso" {<br />
set isofile="/archives/archlinux-2011.08.19-netinstall-x86_64.iso"<br />
loopback loop (hd0,7)$isofile<br />
linux (loop)/arch/boot/x86_64/vmlinuz archisolabel=ARCH_201108 img_dev=/dev/sda7 img_loop=$isofile earlymodules=loop<br />
initrd (loop)/arch/boot/x86_64/archiso.img<br />
}<br />
<br />
==== Ubuntu ISO ====<br />
{{Note|Be sure to adjust the {{ic|hdX,Y}} in the third line to point to the correct disk or partition number of the ISO file.}}<br />
<br />
menuentry "ubuntu-12.04-desktop-amd64.iso" {<br />
set isofile="/path/to/ubuntu-12.04-desktop-amd64.iso"<br />
loopback loop (hdX,Y)$isofile<br />
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile quiet noeject noprompt splash --<br />
initrd (loop)/casper/initrd.lz<br />
}<br />
<br />
== Using the command shell ==<br />
<br />
Since the MBR is too small to store all GRUB2 modules, only the menu and a few basic commands reside there. The majority of GRUB2 functionality remains in modules in {{ic|/boot/grub}}, which are inserted as needed. In error conditions (e.g. if the partition layout changes) GRUB2 may fail to boot. When this happens, a command shell may appear.<br />
<br />
GRUB2 offers multiple shells/prompts. If there is a problem reading the menu but the bootloader is able to find the disk, you will likely be dropped to the "normal" shell:<br />
sh:grub><br />
<br />
If there is a more serious problem (e.g. GRUB cannot find required files), you may instead be dropped to the "rescue" shell:<br />
grub rescue><br />
<br />
The rescue shell is a restricted subset of the normal shell, offering much less functionality. If dumped to the rescue shell, first try inserting the "normal" module, then starting the "normal" shell:<br />
grub rescue> set prefix=(hdX,Y)/boot/grub<br />
grub rescue> insmod (hdX,Y)/boot/grub/i386-pc/normal.mod<br />
rescue:grub> normal<br />
<br />
=== Pager support ===<br />
<br />
GRUB2 supports pager for reading commands that provide long output (like the help command). This works only in normal shell mode and not in rescue mode. To enable pager, in GRUB2 command shell type:<br />
sh:grub> set pager=1<br />
<br />
== GUI configuration tools ==<br />
<br />
Following package may be installed from [[AUR]]<br />
* [https://aur.archlinux.org/packages.php?ID=44020 grub-customizer] (requires gettext gksu gtkmm hicolor-icon-theme openssl)<br />
*:Customize the bootloader (GRUB2 or BURG)<br />
* [http://kde-apps.org/content/show.php?content=139643 grub2-editor] (requires kdelibs)<br />
*:A KDE4 control module for configuring the GRUB2 bootloader<br />
* [http://kde-apps.org/content/show.php?content=137886 kcm-grub2] (requires kdelibs python2-qt kdebindings-python)<br />
*:This Kcm module manages the most common settings of Grub2.<br />
* [http://sourceforge.net/projects/startup-manager/ startupmanager] (requires gnome-python imagemagick yelp python2 xorg-xrandr)<br />
*:GUI app for changing the settings of GRUB, GRUB2, Usplash and Splashy<br />
<br />
== parttool or legacy hide/unhide ==<br />
<br />
If you have a Windows 9x paradigm with hidden C:\ disks GRUB Legacy had the hide/unhide feature. In GRUB2 this has been replaced by {{ic|parttool}}. For example, to boot the third C:\ disk of three Windows 9x installations on the CLI enter the CLI and:<br />
parttool hd0,1 hidden+ boot-<br />
parttool hd0,2 hidden+ boot-<br />
parttool hd0,3 hidden- boot+<br />
set root=hd0,3<br />
chainloader +1<br />
boot<br />
<br />
== Using the rescue console ==<br />
<br />
See [[#Using the command shell]] first. If unable to activate the standard shell, one possible solution is to boot using a live CD or some other rescue disk to correct configuration errors and reinstall GRUB. However, such a boot disk is not always available (nor necessary); the rescue console is surprisingly robust.<br />
<br />
The available commands in GRUB rescue include {{ic|insmod}}, {{ic|ls}}, {{ic|set}}, and {{ic|unset}}. This example uses {{ic|set}} and {{ic|insmod}}. {{ic|set}} modifies variables and {{ic|insmod}} inserts new modules to add functionality.<br />
<br />
Before starting, the user must know the location of their {{ic|/boot}} partition (be it a separate partition, or a subdirectory under their root):<br />
grub rescue> set prefix=(hdX,Y)/boot/grub<br />
<br />
where X is the physical drive number and Y is the partition number.<br />
<br />
To expand console capabilities, insert the {{ic|linux}} module:<br />
grub rescue> insmod (hdX,Y)/boot/grub/linux.mod<br />
<br />
{{Note|With a separate boot partition, omit {{ic|/boot}} from the path, (i.e. type {{ic|1=set prefix=(hdX,Y)/grub}} and {{ic|insmod (hdX,Y)/grub/linux.mod}}).}}<br />
<br />
This introduces the {{ic|linux}} and {{ic|initrd}} commands, which should be familiar (see [[#Configuration]]).<br />
<br />
An example, booting Arch Linux:<br />
set root=(hd0,5)<br />
linux /boot/vmlinuz-linux root=/dev/sda5<br />
initrd /boot/initramfs-linux.img<br />
boot<br />
<br />
With a separate boot partition, again change the lines accordingly:<br />
set root=(hd0,5)<br />
linux /vmlinuz-linux root=/dev/sda6<br />
initrd /initramfs-linux.img<br />
boot<br />
<br />
After successfully booting the Arch Linux installation, users can correct {{ic|grub.cfg}} as needed and then reinstall GRUB2.<br />
<br />
to reinstall GRUB2 and fix the problem completely, changing {{ic|/dev/sda}} if needed. See [[#Bootloader installation]] for details.<br />
<br />
== Combining the use of UUIDs and basic scripting ==<br />
<br />
If you like the idea of using UUIDs to avoid unreliable BIOS mappings or are struggling with GRUB's syntax, here is an example boot menu item that uses UUIDs and a small script to direct GRUB to the proper disk partitions for your system. All you need to do is replace the UUIDs in the sample with the correct UUIDs for your system. The example applies to a system with a boot and root partition. You will obviously need to modify the GRUB configuration if you have additional partitions:<br />
<br />
menuentry "Arch Linux 64" {<br />
# Set the UUIDs for your boot and root partition respectively<br />
set the_boot_uuid=ece0448f-bb08-486d-9864-ac3271bd8d07<br />
set the_root_uuid=c55da16f-e2af-4603-9e0b-03f5f565ec4a<br />
<br />
# (Note: This may be the same as your boot partition)<br />
<br />
# Get the boot/root devices and set them in the root and grub_boot variables<br />
search --fs-uuid --no-floppy --set=root $the_root_uuid<br />
search --fs-uuid --no-floppy --set=grub_boot $the_boot_uuid<br />
<br />
# Check to see if boot and root are equal.<br />
# If they are, then append /boot to $grub_boot (Since $grub_boot is actually the root partition)<br />
if [ $the_boot_uuid == $the_root_uuid] ; then<br />
set grub_boot=$grub_boot/boot<br />
fi<br />
<br />
# $grub_boot now points to the correct location, so the following will properly find the kernel and initrd<br />
linux ($grub_boot)/vmlinuz-linux root=/dev/disk/by-uuid/$uuid_os_root ro<br />
initrd ($grub_boot)/initramfs-linux.img<br />
}<br />
<br />
== Troubleshooting ==<br />
<br />
Any troubleshooting should be added here.<br />
<br />
=== Enable GRUB2 debug messages ===<br />
<br />
Add:<br />
<br />
set pager=1<br />
set debug=all<br />
<br />
to {{ic|grub.cfg}}.<br />
<br />
=== Correct GRUB2 No Suitable Mode Found Error ===<br />
<br />
If you get this error when booting any menuentry:<br />
<br />
error: no suitable mode found<br />
Booting however<br />
<br />
Then you need to initialize GRUB2 graphical terminal ({{ic|gfxterm}}) with proper video mode ({{ic|gfxmode}}) in GRUB2. This video mode is passed by GRUB2 to the linux kernel via 'gfxpayload'. In case of UEFI systems, if the GRUB2 video mode is not initialized, no kernel boot messages will be shown in the terminal (atleast until KMS kicks in).<br />
<br />
Copy {{ic|/usr/share/grub/unicode.pf2}} to ${GRUB2_PREFIX_DIR} ({{ic|/boot/grub/}} in case of BIOS and UEFI systems). If GRUB2 UEFI was installed with {{ic|1=--boot-directory=/boot/efi/EFI}} set, then the directory is {{ic|/boot/efi/EFI/grub/}}:<br />
<br />
# cp /usr/share/grub/unicode.pf2 ${GRUB2_PREFIX_DIR}<br />
<br />
If {{ic|/usr/share/grub/unicode.pf2}} does not exist, install {{Pkg|bdf-unifont}}, create the {{ic|unifont.pf2}} file and then copy it to {{ic|${GRUB2_PREFIX_DIR<nowiki>}</nowiki>}}:<br />
<br />
# grub-mkfont -o unicode.pf2 /usr/share/fonts/misc/unifont.bdf<br />
<br />
Then, in the {{ic|grub.cfg}} file, add the following lines to enable GRUB2 to pass the video mode correctly to the kernel, without of which you will only get a black screen (no output) but booting (actually) proceeds successfully without any system hang.<br />
<br />
BIOS systems:<br />
<br />
insmod vbe<br />
<br />
UEFI systems:<br />
<br />
insmod efi_gop<br />
insmod efi_uga<br />
<br />
After that add the following code (common to both BIOS and UEFI):<br />
<br />
insmod font<br />
<br />
if loadfont ${prefix}/fonts/unicode.pf2<br />
then<br />
insmod gfxterm<br />
set gfxmode=auto<br />
set gfxpayload=keep<br />
terminal_output gfxterm<br />
fi<br />
<br />
As you can see for gfxterm (graphical terminal) to function properly, {{ic|unicode.pf2}} font file should exist in {{ic|${GRUB2_PREFIX_DIR<nowiki>}</nowiki>}}.<br />
<br />
=== msdos-style error message ===<br />
<br />
grub-setup: warn: This msdos-style partition label has no post-MBR gap; embedding won't be possible!<br />
grub-setup: warn: Embedding is not possible. GRUB can only be installed in this setup by using blocklists.<br />
However, blocklists are UNRELIABLE and its use is discouraged.<br />
grub-setup: error: If you really want blocklists, use --force.<br />
<br />
This error may occur when you try installing GRUB2 in a VMware container. Read more about it [https://bbs.archlinux.org/viewtopic.php?pid=581760#p581760 here]. It happens when the first partition starts just after the MBR (block 63), without the usual space of 1 MiB (2048 blocks) before the first partition. Read [[#MBR_aka_msdos_partitioning_specific_instructions]]<br />
<br />
=== UEFI GRUB2 drops to shell ===<br />
<br />
If GRUB loads but drops you into the rescue shell with no errors, it may be because of a missing or misplaced {{ic|grub.cfg}}. This will happen if GRUB2 UEFI was installed with {{ic|--boot-directory}} and {{ic|grub.cfg}} is missing OR if the partition number of the boot partition changed (which is hard-coded into the {{ic|grubx64.efi}} file).<br />
<br />
=== UEFI GRUB2 not loaded ===<br />
In some cases the EFI may fail to load GRUB correctly. Provided everything is set up correctly, the output of:<br />
efibootmgr -v<br />
might look something like this:<br />
BootCurrent: 0000<br />
Timeout: 3 seconds<br />
BootOrder: 0000,0001,0002<br />
Boot0000* Grub HD(1,800,32000,23532fbb-1bfa-4e46-851a-b494bfe9478c)File(\efi\grub\grub.efi)<br />
Boot0001* Shell HD(1,800,32000,23532fbb-1bfa-4e46-851a-b494bfe9478c)File(\EfiShell.efi)<br />
Boot0002* Festplatte BIOS(2,0,00)P0: SAMSUNG HD204UI<br />
If everything works correctly, the EFI would now automatically load GRUB.<br />
<br />
If the screen only goes black for a second and the next boot option is tried afterwards, according to [https://bbs.archlinux.org/viewtopic.php?pid=981560#p981560 this post], moving GRUB to the partition root can help. The boot option has to be deleted and recreated afterwards. The entry for GRUB should look like this then:<br />
Boot0000* Grub HD(1,800,32000,23532fbb-1bfa-4e46-851a-b494bfe9478c)File(\grub.efi)<br />
<br />
=== Invalid signature ===<br />
If trying to boot Windows results in an "invalid signature" error, e.g. after reconfiguring partitions or adding additional hard drives, (re)move GRUB's device configuration and let it reconfigure:<br />
# mv /boot/grub/device.map /boot/grub/device.map-old<br />
# grub-mkconfig -o /boot/grub/grub.cfg<br />
{{ic|grub-mkconfig}} should now mention all found boot options, including Windows. If it works, remove {{ic|/boot/grub/device.map-old}}.<br />
<br />
=== Restore GRUB Legacy ===<br />
<br />
* Move GRUB2 files out of the way:<br />
<br />
# mv /boot/grub /boot/grub.nonfunctional<br />
<br />
* Copy GRUB Legacy back to {{ic|/boot}}:<br />
<br />
# cp -af /boot/grub-legacy /boot/grub<br />
<br />
* Replace MBR and next 62 sectors of sda with backed up copy<br />
<br />
{{Warning|This command also restores the partition table, so be careful of overwriting a modified partition table with the old one. It '''will''' mess your system.}}<br />
<br />
# dd if=/path/to/backup/first-sectors of=/dev/sdX bs=512 count=1<br />
<br />
A safer way is to restore only the MBR boot code use:<br />
<br />
# dd if=/path/to/backup/mbr-boot-code of=/dev/sdX bs=446 count=1<br />
<br />
== References ==<br />
<br />
# Official GRUB2 Manual - https://www.gnu.org/software/grub/manual/grub.html<br />
# Ubuntu wiki page for GRUB2 - https://help.ubuntu.com/community/Grub2<br />
# GRUB2 wiki page describing steps to compile for UEFI systems - https://help.ubuntu.com/community/UEFIBooting<br />
# Wikipedia's page on [[Wikipedia:BIOS Boot partition|BIOS Boot partition]]<br />
<br />
== External Links ==<br />
<br />
# [https://github.com/the-ridikulus-rat/My_Shell_Scripts/blob/master/grub/grub_bios.sh A Linux Bash Shell script to compile and install GRUB(2) for BIOS from BZR Source]<br />
# [https://github.com/the-ridikulus-rat/My_Shell_Scripts/blob/master/grub/grub_uefi.sh A Linux Bash Shell script to compile and install GRUB(2) for UEFI from BZR Source]</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=GRUB&diff=213923GRUB2012-07-22T09:42:44Z<p>Zodmaner: /* Visual Configuration */ add information on how to disable framebuffer</p>
<hr />
<div>[[Category:Boot loaders]]<br />
[[cs:GRUB2]]<br />
[[es:GRUB2]]<br />
[[fr:GRUB2]]<br />
[[id:GRUB2]]<br />
[[it:GRUB2]]<br />
[[ru:GRUB2]]<br />
[[tr:GRUB2]]<br />
[[zh-CN:GRUB2]]<br />
[[zh-TW:GRUB2]]<br />
{{Article summary start}}<br />
{{Article summary text|Covers various aspects of the next generation of the GRand Unified Bootloader (GRUB2).}}<br />
{{Article summary heading|Overview}}<br />
{{Article summary text|{{Boot process overview}}}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Burg}} - Burg is a brand-new boot loader based on GRUB2. It uses a new object format which allows it to be built in a wider range of OS, including Linux, Windows, OS X, Solaris, FreeBSD, etc. It also has a highly configurable menu system which works in both text and graphic mode. <br />
{{Article summary heading|Resources}}<br />
{{Article summary link|GNU GRUB -- GNU Project|https://www.gnu.org/software/grub/}}<br />
{{Article summary end}}<br />
<br />
[https://www.gnu.org/software/grub/ GRUB2] is the next generation of the GRand Unified Bootloader (GRUB). GRUB2 is derived from [http://www.nongnu.org/pupa/ PUPA] which was a research project to investigate the next generation of GRUB. GRUB2 has been rewritten from scratch to clean up everything and provide modularity and portability [https://www.gnu.org/software/grub/grub-faq.en.html#q1].<br />
<br />
In brief, the ''bootloader'' is the first software program that runs when a computer starts. It is responsible for loading and transferring control to the Linux kernel. The kernel, in turn, initializes the rest of the operating system.<br />
<br />
== Preface ==<br />
Here is some information needs to be clarified:<br />
* The name ''GRUB'' officially refers to version ''2'' of the software, see [https://www.gnu.org/software/grub/]. If you are looking for the article on the legacy version, see [[GRUB Legacy]].<br />
<br />
* [[GRUB Legacy]] (i.e. version 0.9x) is considered legacy by upstream and is being replaced by GRUB2 and [[Syslinux]] in Arch Linux. See the news [https://www.archlinux.org/news/grub-legacy-no-longer-supported/ here]. Upstream recommends GRUB2 >=1.99 over GRUB Legacy, even for current GRUB Legacy users.<br />
<br />
* The [[Archboot]] ISO's installer script supports {{Pkg|grub-bios}} and {{Pkg|grub-efi-x86_64}} installation. The official installer script AIF (Arch Installation Framework) does not support GRUB(2) yet.<br />
<br />
* From 1.99-6 onwards, GRUB2 supports [[Btrfs]] as root (without a separate {{ic|/boot}} filesystem) compressed with either zlib or LZO.<br />
<br />
* For GRUB2 UEFI info, it is recommended to read the [[UEFI]], [[GPT]] and [[UEFI_Bootloaders]] pages before reading this page.<br />
<br />
=== Notes for current GRUB Legacy users ===<br />
* Although GRUB legacy will not be removed from your system and will stay fully functional, you should consider upgrading to GRUB version 2.x, or one of the other supported bootloaders.<br />
<br />
* Upgrade from [[GRUB Legacy]] to [[GRUB]](2) is the much same as installing GRUB from a running Arch Linux which is covered [[#From a running Arch Linux|below]].<br />
<br />
* There are differences in the commands of GRUB and GRUB2. Familiarize yourself with [https://www.gnu.org/software/grub/manual/grub.html#Commands GRUB2 commands] before proceeding (e.g. "find" has been replaced with "search").<br />
<br />
* GRUB2 is now ''modular'' and no longer requires "stage 1.5". As a result, the bootloader itself is limited -- modules are loaded from the hard drive as needed to expand functionality (e.g. for [[LVM]] or RAID support).<br />
<br />
* Device naming has changed between GRUB and GRUB2. Partitions are numbered from 1 instead of 0 while drives are still numbered from 0, and prefixed with partition-table type. For example, {{ic|/dev/sda1}} would be referred to as {{ic|(hd0,msdos1)}} (for MBR) or {{ic|(hd0,gpt1)}} (for GPT) using GRUB2.<br />
<br />
=== Preliminary Requirements for GRUB2 ===<br />
<br />
==== BIOS systems ====<br />
<br />
===== [[GPT]] specific instructions =====<br />
<br />
GRUB2 in BIOS-GPT configuration requires a BIOS Boot Partition to embed its {{ic|core.img}} in the absence of post-MBR gap in GPT partitioned systems (which is taken over by the GPT Primary Header and Primary Partition table). This partition is used by GRUB2 only in BIOS-GPT setups. No such partition type exists in case of MBR partitioning (at least not for GRUB2). This partition is also not required if the system is UEFI based, as no embedding of bootsectors takes place in that case. Syslinux does not require this partition.<br />
<br />
For a BIOS-GPT configuration, create a 2 MiB partition using cgdisk or GNU Parted with no filesystem. The location of the partition in the partition table does not matter but it should be within the first 2 TiB region of the disk. It is advisable to put it somewhere in the beginning of the disk before the {{ic|/boot}} partition. Set the partition type to "EF02" in cgdisk or {{ic|set <BOOT_PART_NUM> bios_grub on}} in GNU Parted.<br />
<br />
{{Note|This partition should be created before {{ic|grub-install}} or {{ic|grub-setup}} is run or before the '''Install Bootloader''' step of the Archlinux installer (if GRUB2 BIOS is selected as bootloader).}}<br />
<br />
===== [[MBR]] aka msdos partitioning specific instructions =====<br />
<br />
Usually the post-MBR gap (after the 512 byte MBR region and before the start of the 1st partition) in many MBR (or msdos disklabel) partitioned systems is 32 KiB when DOS compatibility cylinder alignment issues are satisfied in the partition table. However a post-MBR gap of about 1 to 2 MiB is recommended to provide sufficient room for embedding GRUB2's {{ic|core.img}} ({{bug|24103}}). It is advisable to use a partitioner which supports 1 MiB partition alignment to obtain this space as well as satisfy other non-512 byte sector issues (which are unrelated to embedding of {{ic|core.img}}).<br />
<br />
If you do not dual-boot with MS Windows (any version) in BIOS systems, it is advisable to switch to GPT partitioning - [[GUID_Partition_Table#Convert_from_MBR_to_GPT]]<br />
<br />
{{Note|Create the 2MiB partition mentioned above BEFORE you convert to GPT. If you do not, gparted will not resize your boot partition to allow its creation, and when you reboot GRUB2 will not know where to look.}}<br />
<br />
==== UEFI systems ====<br />
<br />
===== Create and Mount the UEFI SYSTEM PARTITION =====<br />
<br />
{{Note|It is recommended to read the [[UEFI]], [[GPT]] and [[UEFI_Bootloaders]] pages before reading this part.}}<br />
<br />
Follow [[Unified_Extensible_Firmware_Interface#Create_an_UEFI_System_Partition_in_Linux]] for instructions on creating a UEFI SYSTEM PARTITION. Then mount the UEFI SYSTEM PARTITION at {{ic|/boot/efi}}. If you have mounted the UEFISYS partition in some other mountpoint, replace {{ic|/boot/efi}} in the below instructions with that mountpoint:<br />
<br />
# mkdir -p /boot/efi<br />
# mount -t vfat <UEFISYS_PART_DEVICE> /boot/efi<br />
<br />
Create a <UEFI_SYSTEM_PARTITION>{{ic|/EFI}} directory, if it does not exist:<br />
<br />
# mkdir -p /boot/efi/EFI<br />
<br />
== Installation ==<br />
<br />
=== During Arch Linux installation ===<br />
<br />
* Skip the '''Install Bootloader''' step and exit the installer.<br />
* Configure the network:<br />
# aif -p partial-configure-network<br />
This will bring up a prompt; put in the network interface to use, (e.g., {{ic|eth0}}) and use DHCP for easy configuration.<br />
* If you did not configure the installed system's {{ic|/etc/resolv.conf}} file during installation (for instance, if you plan to let DHCP generate it later), you will need to copy the one generated by AIF when it configured the network:<br />
# cp /etc/resolv.conf /mnt/etc/resolv.conf<br />
* If you run into network issues in the pacman update step below, you may have needed to install the {{Pkg|net-tools}} package.<br />
* Check and see if the {{ic|dm_mod}} module is loaded. If it is not, load it manually:<br />
# lsmod | grep dm_mod<br />
# modprobe dm-mod<br />
{{Note|This is necessary at this point, and cannot be postponed after the chroot. If you try to use modprobe in a chroot environment that has a later kernel version from that of the installing device (at the time of writing, 2.6.33), modprobe will fail. This happens routinely using the Arch "net" installations.}}<br />
* From the installer's live shell, chroot to the installed system:<br />
# mount -o bind /dev /mnt/dev<br />
# mount -t proc /proc /mnt/proc/<br />
# mount -t sysfs /sys /mnt/sys/<br />
# chroot /mnt bash<br />
* Refresh the package list (with an extra {{ic|-y}} flag to force a refresh of all package lists even if they appear to be up to date):<br />
# pacman -Syy<br />
* Install the GRUB2 package as mentioned in the section [[#From a running Arch Linux]] (Note that the {{ic|dm-mod}} module has already been loaded, no need to do that again).<br />
<br />
=== From a running Arch Linux ===<br />
<br />
==== BIOS systems ====<br />
<br />
===== Backup Important Data =====<br />
<br />
Although a GRUB(2) installation should run smoothly, it is strongly recommended to keep the GRUB Legacy files before installing {{Pkg|grub-bios}}.<br />
<br />
# mv /boot/grub /boot/grub-legacy<br />
<br />
Backup the MBR which contains the boot code and partition table (Replace {{ic|/dev/sd'''X'''}} with your actual disk path)<br />
<br />
# dd if=/dev/sdX of=/path/to/backup/mbr_backup bs=512 count=1<br />
<br />
Only 446 bytes of the MBR contain boot code, the next 64 contain the partition table. If you do not want to overwrite your partition table when restoring, it is strongly advised to backup only the MBR boot code:<br />
<br />
# dd if=/dev/sdX of=/path/to/backup/bootcode_backup bs=446 count=1<br />
<br />
If unable to install GRUB2 correctly, see [[GRUB2#Restore_GRUB_Legacy]].<br />
<br />
===== Install grub-bios package =====<br />
<br />
The GRUB(2) packages can be installed with pacman (and will replace {{Pkg|grub-legacy}} or {{Pkg|grub}}, if it is installed):<br />
<br />
# pacman -S grub-bios<br />
<br />
{{Note|Simply installing the package won't update the {{ic|/boot/grub/i386-pc/core.img}} file and the GRUB(2) modules in {{ic|/boot/grub/i386-pc}}. You need to update them manually using {{ic|grub-install}} as explained below.}}<br />
<br />
Also load the device-mapper kernel module without which {{ic|grub-probe}} does not reliably detect disks and partitions:<br />
<br />
# modprobe dm_mod<br />
<br />
===== Install grub-bios boot files =====<br />
<br />
There are 3 ways to install GRUB(2) boot files in BIOS booting:<br />
*[[#Install_to_440-byte_MBR_boot_code_region]] (recommended) , <br />
*[[#Install_to_Partition_or_Partitionless_Disk]] (not recommended),<br />
*[[#Generate_core.img_alone]] (safest method, but requires another BIOS bootloader like [[grub-legacy]] or [[syslinux]] to be installed to chainload {{ic|/boot/grub/i386-pc/core.img}}). <br />
<br />
====== Install to 440-byte MBR boot code region ======<br />
<br />
To setup {{ic|grub-bios}} in the 440-byte Master Boot Record boot code region, populate the {{ic|/boot/grub}} directory, generate the {{ic|/boot/grub/i386-pc/core.img}} file, and embed it in the 32 KiB (minimum size - varies depending on partition alignment) post-MBR gap (MBR disks) or in BIOS Boot Partition (GPT disks), run:<br />
<br />
# grub-install --directory=/usr/lib/grub/i386-pc --target=i386-pc --boot-directory=/boot --recheck --debug /dev/sda<br />
# mkdir -p /boot/grub/locale<br />
# cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo<br />
<br />
where {{ic|/dev/sda}} is the destination of the installation (in this case the MBR of the first SATA disk). If you use [[LVM]] for your {{ic|/boot}}, you can install GRUB2 on multiple physical disks. <br />
<br />
The {{ic|--no-floppy}} tells {{ic|grub-bios}} utilities not to search for any floppy devices which reduces the overall execution time of {{ic|grub-install}} on many systems (it will also prevent the issue below from occurring). Otherwise you get an error that looks like this:<br />
<br />
grub-probe: error: Cannot get the real path of '/dev/fd0'<br />
Auto-detection of a filesystem module failed.<br />
Please specify the module with the option '--modules' explicitly.<br />
<br />
{{Note|{{ic|--no-floppy}} has been removed from {{ic|grub-install}} in 2.00~beta2 upstream release, and replaced with {{ic|--allow-floppy}}.}}<br />
<br />
{{Warning|Make sure to check the {{ic|/boot}} directory if you use the latter. Sometimes the {{ic| boot-directory}} parameter creates another {{ic|/boot}} folder inside of {{ic|/boot}}. A wrong install would look like: {{ic|/boot/boot/grub/}}.}}<br />
<br />
====== Install to Partition or Partitionless Disk ======<br />
<br />
{{Note|{{ic|grub-bios}} (any version - including upstream Bazaar repo) does not encourage installation to a partition boot sector or a partitionless disk like GRUB Legacy or syslinux does. This kind of setup is prone to breakage, especially during updates, and is not supported by Arch devs.}}<br />
<br />
To set up {{ic|grub-bios}} to a partition boot sector, to a partitionless disk (also called superfloppy) or to a floppy disk, run (using for example {{ic|/dev/sdaX}} as the {{ic|/boot}} partition):<br />
<br />
# chattr -i /boot/grub/i386-pc/core.img<br />
# grub-install --directory=/usr/lib/grub/i386-pc --target=i386-pc --boot-directory=/boot --recheck --force --debug /dev/sdaX<br />
# mkdir -p /boot/grub/locale<br />
# cp /usr/share/locale/en@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo<br />
# chattr +i /boot/grub/i386-pc/core.img<br />
<br />
You need to use the {{ic|--force}} option to allow usage of blocklists and should not use {{ic|1=--grub-setup=/bin/true}} (which is similar to simply generating {{ic|core.img}}).<br />
<br />
{{ic|grub-install}} will give out warnings like which should give you the idea of what might go wrong with this approach:<br />
<br />
/sbin/grub-setup: warn: Attempting to install GRUB to a partitionless disk or to a partition. This is a BAD idea.<br />
/sbin/grub-setup: warn: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. <br />
However, blocklists are UNRELIABLE and their use is discouraged.<br />
<br />
Without {{ic|--force}} you may get the below error and {{ic|grub-setup}} will not setup its boot code in the partition boot sector:<br />
<br />
/sbin/grub-setup: error: will not proceed with blocklists<br />
<br />
With {{ic|--force}} you should get:<br />
<br />
Installation finished. No error reported.<br />
<br />
The reason why {{ic|grub-setup}} does not by default allow this is because in case of partition or a partitionless disk is that {{ic|grub-bios}} relies on embedded blocklists in the partition bootsector to locate the {{ic|/boot/grub/i386-pc/core.img}} file and the prefix dir {{ic|/boot/grub}}. The sector locations of {{ic|core.img}} may change whenever the filesystem in the partition is being altered (files copied, deleted etc.). For more info see https://bugzilla.redhat.com/show_bug.cgi?id=728742 and https://bugzilla.redhat.com/show_bug.cgi?id=730915.<br />
<br />
The workaround for this is to set the immutable flag on {{ic|/boot/grub/i386-pc/core.img}} (using chattr command as mentioned above) so that the sector locations of the {{ic|core.img}} file in the disk is not altered. The immutable flag on {{ic|/boot/grub/i386-pc/core.img}} needs to be set only if {{ic|grub-bios}} is installed to a partition boot sector or a partitionless disk, not in case of installtion to MBR or simple generation of {{ic|core.img}} without embedding any bootsector (mentioned above).<br />
<br />
====== Generate core.img alone ======<br />
<br />
To populate the {{ic|/boot/grub}} directory and generate a {{ic|/boot/grub/i386-pc/core.img}} file '''without''' embedding any {{ic|grub-bios}} bootsector code in the MBR, post-MBR region, or the partition bootsector, add {{ic|1=--grub-setup=/bin/true}} to {{ic|grub-install}}:<br />
<br />
# grub-install --directory=/usr/lib/grub/i386-pc --target=i386-pc --grub-setup=/bin/true --boot-directory=/boot --recheck --debug /dev/sda<br />
# mkdir -p /boot/grub/locale<br />
# cp /usr/share/locale/en@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo<br />
<br />
You can then chainload GRUB2's {{ic|core.img}} from GRUB Legacy or syslinux as a Linux kernel or a multiboot kernel.<br />
<br />
===== Generate GRUB2 BIOS Config file =====<br />
<br />
Finally, generate a configuration for GRUB2 (this is explained in greater detail in the Configuration section):<br />
<br />
# grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
{{Note|The file path is {{ic|/boot/grub/grub.cfg}}, NOT {{ic|/boot/grub/i386-pc/grub.cfg}}.}}<br />
<br />
If grub2 complains about "no suitable mode found" while booting, go to [[#Correct_GRUB2_No_Suitable_Mode_Found_Error]].<br />
<br />
If {{ic|grub-mkconfig}} fails, convert your {{ic|/boot/grub/menu.lst}} file to {{ic|/boot/grub/grub.cfg}} using:<br />
<br />
# grub-menulst2cfg /boot/grub/menu.lst /boot/grub/grub.cfg<br />
<br />
For example:<br />
<br />
{{hc|/boot/grub/menu.lst|<nowiki><br />
default=0<br />
timeout=5<br />
<br />
title Arch Linux Stock Kernel<br />
root (hd0,0)<br />
kernel /vmlinuz-linux root=/dev/sda2 ro<br />
initrd /initramfs-linux.img<br />
<br />
title Arch Linux Stock Kernel Fallback<br />
root (hd0,0)<br />
kernel /vmlinuz-linux root=/dev/sda2 ro<br />
initrd /initramfs-linux-fallback.img<br />
</nowiki>}}<br />
<br />
{{hc|/boot/grub/grub.cfg|<nowiki><br />
set default='0'; if [ x"$default" = xsaved ]; then load_env; set default="$saved_entry"; fi<br />
set timeout=5<br />
<br />
menuentry 'Arch Linux Stock Kernel' {<br />
set root='(hd0,1)'; set legacy_hdbias='0'<br />
legacy_kernel '/vmlinuz-linux' '/vmlinuz-linux' 'root=/dev/sda2' 'ro'<br />
legacy_initrd '/initramfs-linux.img' '/initramfs-linux.img'<br />
<br />
}<br />
<br />
menuentry 'Arch Linux Stock Kernel Fallback' {<br />
set root='(hd0,1)'; set legacy_hdbias='0'<br />
legacy_kernel '/vmlinuz-linux' '/vmlinuz-linux' 'root=/dev/sda2' 'ro'<br />
legacy_initrd '/initramfs-linux-fallback.img' '/initramfs-linux-fallback.img'<br />
}<br />
</nowiki>}}<br />
<br />
If you forgot to create a GRUB2 {{ic|/boot/grub/grub.cfg}} config file and simply rebooted into GRUB2 Command Shell, type:<br />
<br />
sh:grub> insmod legacycfg<br />
sh:grub> legacy_configfile ${prefix}/menu.lst<br />
<br />
Boot into Arch and re-create the proper GRUB2 {{ic|/boot/grub/grub.cfg}} config file.<br />
<br />
{{Note|This option works only in BIOS systems, not in UEFI systems.}}<br />
<br />
===== Multiboot in BIOS =====<br />
<br />
====== Boot Microsoft Windows installed in BIOS-MBR mode ======<br />
<br />
{{Note|GRUB2 supports booting {{ic|bootmgr}} directly and chainload of partition boot sector is no longer required to boot Windows in a BIOS-MBR setup.}}<br />
<br />
Find the UUID of the NTFS filesystem of the Windows's SYSTEM PARTITION where the {{ic|bootmgr}} and its files reside. For example, if Windows {{ic|bootmgr}} exists at {{ic|/media/Windows/bootmgr}}:<br />
<br />
# grub-probe --target=fs_uuid /media/Windows/bootmgr<br />
69B235F6749E84CE<br />
<br />
Then, add the below code to {{ic|/etc/grub.d/40_custom}} and regenerate {{ic|grub.cfg}} with {{ic|grub-mkconfig}} as explained above to boot Windows (Vista, 7 or 8) installed in BIOS-MBR mode:<br />
<br />
<pre><br />
#!/bin/sh<br />
menuentry "Microsoft Windows 7 BIOS-MBR" {<br />
insmod part_msdos<br />
insmod ntfs<br />
insmod search_fs_uuid<br />
insmod ntldr <br />
search --fs-uuid --no-floppy --set=root 69B235F6749E84CE<br />
ntldr /bootmgr<br />
}</pre><br />
<br />
For Windows XP:<br />
<br />
menuentry "Microsoft Windows XP" {<br />
insmod part_msdos<br />
insmod ntfs<br />
insmod search_fs_uuid<br />
insmod ntldr <br />
search --fs-uuid --no-floppy --set=root 69B235F6749E84CE<br />
ntldr /ntldr<br />
}<br />
<br />
==== UEFI systems ====<br />
<br />
{{Note|It is recommended to read the [[UEFI]], [[GPT]] and [[UEFI_Bootloaders]] pages before reading this part.}}<br />
<br />
===== Install grub-uefi package =====<br />
<br />
{{Note|Unless specified as EFI 1.x , EFI and UEFI terms are used interchangeably to denote UEFI 2.x firmware. Also unless stated explicitely, the instructions are general and not Mac specific. Some of them may not work or may be different in Macs. Apple's EFI implementation is neither a EFI 1.x version nor UEFI 2.x version but mixes up both. This kind of firmware does not fall under any one UEFI Specification version and is therefore not a standard UEFI firmware.}}<br />
<br />
GRUB2 UEFI bootloader is available in Arch Linux only from version 1.99~rc1. To install, first [[Unified_Extensible_Firmware_Interface#Detecting_UEFI_Firmware_Arch|detect which UEFI firmware arch]] you have (either x86_64 or i386).<br />
<br />
Depending on that, install the appropriate package<br />
<br />
For 64-bit aka x86_64 UEFI firmware:<br />
# pacman -S grub-efi-x86_64<br />
<br />
For 32-bit aka i386 UEFI firmware:<br />
# pacman -S grub-efi-i386<br />
<br />
{{Note|Simply installing the package will not update the {{ic|grub.efi}} file and the GRUB(2) modules in the UEFI System Partition. You need to do this manually using {{ic|grub-install}} as explained below.}}<br />
<br />
Also load the device-mapper kernel module without which {{ic|grub-probe}} does not reliably detect disks and partitions:<br />
<br />
# modprobe dm-mod<br />
<br />
===== Install grub-uefi boot files =====<br />
<br />
====== Install to UEFI SYSTEM PARTITION ======<br />
<br />
{{Note|The below commands assume you are using {{ic|grub-efi-x86_64}} (for {{ic|grub-efi-i386}} replace {{ic|x86_64}} with {{ic|i386}} in the below commands).}}<br />
<br />
The UEFI system partition will need to be mounted at {{ic|/boot/efi/}} for the GRUB2 install script to detect it:<br />
<br />
# mkdir -p /boot/efi<br />
# mount -t vfat /dev/sdXY /boot/efi<br />
<br />
Install GRUB UEFI application to {{ic|/boot/efi/EFI/arch_grub}} and its modules to {{ic|/boot/grub/x86_64-efi}} (recommended) using:<br />
<br />
# grub-install --directory=/usr/lib/grub/x86_64-efi --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --boot-directory=/boot --recheck --debug<br />
# mkdir -p /boot/grub/locale<br />
# cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo<br />
<br />
If you want to install grub2 modules and {{ic|grub.cfg}} at the directory {{ic|/boot/efi/EFI/grub}} and the {{ic|grubx64.efi}} application at {{ic|/boot/efi/EFI/arch_grub}} use:<br />
<br />
# grub-install --directory=/usr/lib/grub/x86_64-efi --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --boot-directory=/boot/efi/EFI --recheck --debug<br />
# mkdir -p /boot/efi/EFI/grub/locale<br />
# cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/efi/EFI/grub/locale/en.mo<br />
<br />
In this case {{ic|grub-efi-x86_64}} will be installed into {{ic|/boot/grub}}, making the behavior consistent with the BIOS verion of GRUB2, but this is not recommended if you use both {{ic|grub-bios}} and {{ic|grub-efi-x86_64}} in your system, as this will overwrite {{ic|grub-bios }}modules in {{ic|/boot/grub}}.<br />
<br />
The {{ic|--efi-directory}} option mentions the mountpoint of UEFI SYSTEM PARTITION , {{ic|--bootloader-id}} mentions the name of the directory used to store the {{ic|grubx64.efi}} file and {{ic|--boot-directory}} mentions the directory wherein the actual modules will be installed (and into which {{ic|grub.cfg}} should be created).<br />
<br />
The actual paths are:<br />
<br />
<efi-directory>/<EFI or efi>/<bootloader-id>/grubx64.efi<br />
<br />
<boot-directory>/grub/x86_64-efi/<all modules, grub.efi, core.efi, grub.cfg><br />
<br />
{{Note|the {{ic|--bootloader-id}} option does not change {{ic|<boot-directory>/grub}}, i.e. you cannot install the modules to {{ic|<boot-directory>/<bootloader-id>}}, the path is hard-coded to be {{ic|<boot-directory>/grub}}.}}<br />
<br />
In {{ic|<nowiki>--efi-directory=/boot/efi --boot-directory=/boot/efi/EFI --bootloader-id=grub</nowiki>}}:<br />
<br />
<efi-directory>/<EFI or efi>/<bootloader-id> == <boot-directory>/grub == /boot/efi/EFI/grub<br />
<br />
In {{ic|<nowiki>--efi-directory=/boot/efi --boot-directory=/boot/efi/EFI --bootloader-id=arch_grub</nowiki>}}:<br />
<br />
<efi-directory>/<EFI or efi>/<bootloader-id> == /boot/efi/EFI/arch_grub<br />
<boot-directory>/grub == /boot/efi/EFI/grub<br />
<br />
In {{ic|<nowiki>--efi-directory=/boot/efi --boot-directory=/boot --bootloader-id=arch_grub</nowiki>}}:<br />
<br />
<efi-directory>/<EFI or efi>/<bootloader-id> == /boot/efi/EFI/arch_grub<br />
<boot-directory>/grub == /boot/grub<br />
<br />
In {{ic|<nowiki>--efi-directory=/boot/efi --boot-directory=/boot --bootloader-id=grub</nowiki>}}:<br />
<br />
<efi-directory>/<EFI or efi>/<bootloader-id> == /boot/efi/EFI/grub<br />
<boot-directory>/grub == /boot/grub<br />
<br />
The {{ic|<nowiki><efi-directory>/<EFI or efi>/<bootloader-id>/grubx64.efi</nowiki>}} is an exact copy of {{ic|<nowiki><boot-directory>/grub/x86_64-efi/core.efi</nowiki>}}.<br />
<br />
{{Note|In GRUB2 2.00~beta4, the {{ic|grub-install}} option {{ic|--efi-directory}} replaces {{ic|--root-directory}} and the latter is deprecated.}}<br />
{{Note|The options {{ic|--efi-directory}} and {{ic|--bootloader-id}} are specific to GRUB2 UEFI.}}<br />
<br />
In all the cases the UEFI SYSTEM PARTITION should be mounted for {{ic|grub-install}} to install {{ic|grubx64.efi}} in it, which will be launched by the firmware (using the {{ic|efibootmgr}} created boot entry in non-Mac systems).<br />
<br />
If you notice carefully, there is no <device_path> option (Eg: {{ic|/dev/sda}}) at the end of the {{ic|grub-install}} command unlike the case of setting up GRUB2 for BIOS systems. Any <device_path> provided will be ignored by the install script as UEFI bootloaders do not use MBR or Partition boot sectors at all.<br />
<br />
You may now be able to UEFI boot your system by creating a {{ic|grub.cfg}} file by following [[#Generate_GRUB2_UEFI_Config_file]] and [[#Create_GRUB2_entry_in_the_Firmware_Boot_Manager]].<br />
<br />
===== Create GRUB2 entry in the Firmware Boot Manager =====<br />
<br />
====== Non-Mac UEFI systems ======<br />
<br />
{{ic|grub-install}} will ensure that {{ic|/boot/efi/EFI/arch_grub/grubx64.efi}} is launched by default if it detects {{ic|efibootmgr}} and if it is able to access UEFI Runtime Services. Follow [[Unified_Extensible_Firmware_Interface#efibootmgr]] for more info.<br />
<br />
If you have problems running GRUB2 in UEFI mode you can try the following (worked on an ASUS Z68 mainboard):<br />
<br />
# cp /boot/efi/EFI/arch_grub/grubx64.efi /boot/efi/shellx64.efi<br />
<br />
or<br />
<br />
# cp /boot/efi/EFI/arch_grub/grubx64.efi /boot/efi/EFI/shellx64.efi<br />
<br />
or<br />
<br />
# cp /boot/efi/EFI/arch_grub/grubx64.efi /boot/efi/EFI/tools/shellx64.efi<br />
<br />
After this launch the UEFI Shell from the UEFI setup/menu (in ASUS UEFI BIOS, switch to advanced mode, press Exit in the top right corner and choose "Launch EFI shell from filesystem device"). The GRUB2 menu will show up and you can boot into your system. Afterwards you can use efibootmgr to setup a menu entry (see above).<br />
<br />
====== Apple Mac EFI systems ======<br />
<br />
{{Note|TODO: GRUB upstream Bazaar mactel branch http://bzr.savannah.gnu.org/lh/grub/branches/mactel/changes. No further update from grub developers.}}<br />
{{Note|TODO: Experimental "bless" utility for Linux by Fedora developers - {{AUR|mactel-boot}}. Requires more testing.}}<br />
<br />
Use bless command from within Mac OS X to set {{ic|grubx64.efi}} as the default boot option. You can also boot from the Mac OS X install disc and launch a Terminal there if you only have Linux installed. In the Terminal, create a directory and mount the EFI System Partition:<br />
<br />
# cd /Volumes<br />
# mkdir efi<br />
# mount -t msdos /dev/disk0s1 /Volumes/efi<br />
<br />
Then run bless on {{ic|grub.efi}} and on the EFI partition to set them as the default boot options.<br />
<br />
# bless --folder=/Volumes/efi --file=/Volumes/efi/efi/arch_grub/grubx64.efi --setBoot<br />
# bless --mount=/Volumes/efi --file=/Volumes/efi/efi/arch_grub/grubx64.efi --setBoot<br />
<br />
More info at https://help.ubuntu.com/community/UEFIBooting#Apple_Mac_EFI_systems_.28both_EFI_architecture.29.<br />
<br />
===== Generate GRUB2 UEFI Config file =====<br />
<br />
Finally, generate a configuration for GRUB2 (this is explained in greater detail in the Configuration section):<br />
<br />
# grub-mkconfig -o <boot-directory>/grub/grub.cfg<br />
<br />
{{Note|The file path is {{ic|<boot-directory>/grub/grub.cfg}}, NOT {{ic|<boot-directory>/grub/x86_64-efi/grub.cfg}}.}}<br />
<br />
If you used {{ic|<nowiki>--boot-directory=/boot</nowiki>}}:<br />
<br />
# grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
If you used {{ic|<nowiki>--boot-directory=/boot/efi/EFI</nowiki>}}:<br />
<br />
# grub-mkconfig -o /boot/efi/EFI/grub/grub.cfg<br />
<br />
This is independent of the value of {{ic|--bootloader-id}} option.<br />
<br />
If GRUB2 complains about "no suitable mode found" while booting, try [[#Correct_GRUB2_No_Suitable_Mode_Found_Error]].<br />
<br />
===== Create GRUB2 Standalone UEFI Application =====<br />
<br />
It is possible to create a {{ic|grubx64_standalone.efi}} application which has all the modules embeddded in a memdisk within the uefi application, thus removing the need for having a separate directory populated with all the GRUB2 uefi modules and other related files. This is done using the {{ic|grub-mkstandalone}} command which is included in {{Pkg|grub-common}} >= 1:1.99-6 package.<br />
<br />
The easiest way to do this would be with the install command already mentioned before, but specifying the modules to include. For example:<br />
<br />
# grub-mkstandalone --directory="/usr/lib/grub/x86_64-efi/" --format="x86_64-efi" --compression="xz" \<br />
--output="/boot/efi/EFI/arch_grub/grubx64_standalone.efi" <any extra files you want to include><br />
<br />
The {{ic|grubx64_standalone.efi}} file expects {{ic|grub.cfg}} to be within its $prefix which is {{ic|(memdisk)/boot/grub}}. The memdisk is embedded within the efi app. The {{ic|grub-mkstandlone}} script allow passing files to be included in the memdisk image to be as the arguments to the script (in <any extra files you want to include>).<br />
<br />
If you have the {{ic|grub.cfg}} at {{ic|/home/user/Desktop/grub.cfg}}, then create a temporary {{ic|/home/user/Desktop/boot/grub/}} directory, copy the {{ic|/home/user/Desktop/grub.cfg}} to {{ic|/home/user/Desktop/boot/grub/grub.cfg}}, cd into {{ic|/home/user/Desktop/boot/grub/}} and run:<br />
<br />
# grub-mkstandalone --directory="/usr/lib/grub/x86_64-efi/" --format="x86_64-efi" --compression="xz" \<br />
--output="/boot/efi/EFI/arch_grub/grubx64_standalone.efi" "boot/grub/grub.cfg"<br />
<br />
The reason to cd into {{ic|/home/user/Desktop/boot/grub/}} and to pass the file path as {{ic|boot/grub/grub.cfg}} (notice the lack of a leading slash - boot/ vs /boot/ ) is because {{ic|dir1/dir2/file}} is included as {{ic|(memdisk)/dir1/dir2/file}} by the {{ic|grub-mkstandalone}} script. <br />
<br />
If you pass {{ic|/home/user/Desktop/grub.cfg}} the file will be included as {{ic|(memdisk)/home/user/Desktop/grub.cfg}}. If you pass {{ic|/home/user/Desktop/boot/grub/grub.cfg}} the file will be included as {{ic|(memdisk)/home/user/Desktop/boot/grub/grub.cfg}}. That is the reason for cd'ing into {{ic|/home/user/Desktop/boot/grub/}} and passing {{ic|boot/grub/grub.cfg}}, to include the file as {{ic|(memdisk)/boot/grub/grub.cfg}}, which is what {{ic|grub.efi}} expects the file to be.<br />
<br />
You need to create an UEFI Boot Manager entry for {{ic|/boot/efi/EFI/arch_grub/grubx64_standalone.efi}} using {{ic|efibootmgr}}. Follow [[#Create GRUB2 entry in the Firmware Boot Manager]].<br />
<br />
===== Multiboot in UEFI =====<br />
<br />
====== Chainload Microsoft Windows x86_64 UEFI-GPT ======<br />
<br />
Find the UUID of the FAT32 filesystem in the UEFI SYSTEM PARTITION where the Windows UEFI Bootloader files reside. For example, if Windows {{ic|bootmgfw.efi}} exists at {{ic|/boot/efi/EFI/Microsoft/Boot/bootmgfw.efi}} (ignore the upper-lower case differences since that is immaterial in FAT filesystem):<br />
<br />
# grub-probe --target=fs_uuid /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi<br />
1ce5-7f28<br />
<br />
# grub-probe --target=hints_string /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi<br />
--hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1<br />
<br />
Then, add this code to {{ic|/boot/grub/grub.cfg}} OR {{ic|/boot/efi/EFI/grub/grub.cfg}} to chainload Windows x86_64 (Vista SP1+, 7 or 8) installed in UEFI-GPT mode:<br />
<br />
menuentry "Microsoft Windows x86_64 UEFI-GPT" {<br />
insmod part_gpt<br />
insmod fat<br />
insmod search_fs_uuid<br />
insmod chain<br />
search --fs-uuid --no-floppy --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 1ce5-7f28<br />
chainloader /efi/Microsoft/Boot/bootmgfw.efi<br />
}<br />
<br />
== Configuration ==<br />
<br />
You can also choose to automatically generate or manually edit {{ic|grub.cfg}}.<br />
<br />
{{Note|For EFI systems, if GRUB2 was installed with the {{ic|--boot-directory}} option set, the {{ic|grub.cfg}} file must be placed in the same directory as {{ic|grubx64.efi}}. Otherwise, the {{ic|grub.cfg}} file goes in {{ic|/boot/grub/}}, just like in the BIOS version of GRUB2.}}<br />
<br />
{{Note|Here is a quite complete description of how to configure GRUB2: http://members.iinet.net/~herman546/p20/GRUB2%20Configuration%20File%20Commands.html }}<br />
<br />
=== Automatically generating using grub-mkconfig (Recommended) ===<br />
<br />
The GRUB2 {{ic|menu.lst}} equivalent configuration files are {{ic|/etc/default/grub}} and {{ic|/etc/grub.d/*}}. {{ic|grub-mkconfig}} uses these files to generate {{ic|grub.cfg}}. By default the script outputs to stdout. To generate a {{ic|grub.cfg}} file run the command:<br />
<br />
# grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
{{ic|/etc/grub.d/10_linux}} is set to automatically add menu items for Arch linux that work out of the box, to any generated configuration. Other operating systems may need to be added manually by editing {{ic|/etc/grub.d/40_custom}}<br />
<br />
==== Additional arguments ====<br />
<br />
To pass custom additional arguments to the Linux image, you can set the {{ic|GRUB_CMDLINE_LINUX}} variable in {{ic|/etc/default/grub}}. This is analogous to adding commands to the kernel line in GRUB Legacy.<br />
<br />
For example, use {{ic|<nowiki>GRUB_CMDLINE_LINUX="resume=/dev/sdaX"</nowiki>}} where {{ic|sda'''X'''}} is your swap partition to enable resume after hibernation.<br />
<br />
You can also use {{ic|<nowiki>GRUB_CMDLINE_LINUX="resume=/dev/disk/by-uuid/${swap_uuid}"</nowiki>}}, where {{ic|${swap_uuid} }} is the [[Persistent_block_device_naming|UUID]] of your swap partition.<br />
<br />
=== Manually creating grub.cfg ===<br />
<br />
{{Warning|Editing this file is strongly ''not'' recommended. The file is generated by the {{ic|grub-mkconfig}} command, and it is best to edit your {{ic|/etc/default/grub}} or one of the scripts in the {{ic|/etc/grub.d}} folder.}}<br />
<br />
A basic GRUB config file uses the following options<br />
* {{ic|(hdX,Y)}} is the partition {{ic|Y}} on disk {{ic|X}}, partition numbers starting at 1, disk numbers starting at 0<br />
* {{ic|1=set default=N}} is the default boot entry that is chosen after timeout for user action<br />
* {{ic|1=set timeout=M}} is the time {{ic|M}} to wait in seconds for a user selection before default is booted<br />
* {{ic|<nowiki>menuentry "title" {entry options}</nowiki>}} is a boot entry titled {{ic|title}}<br />
* {{ic|1=set root=(hdX,Y)}} sets the boot partition, where the kernel and GRUB modules are stored (boot need not be a separate partition, and may simply be a directory under the "root" partition ({{ic|/}})<br />
<br />
An example configuration:<br />
<br />
{{hc<br />
|/boot/grub/grub.cfg<br />
|<nowiki><br />
# Config file for GRUB2 - The GNU GRand Unified Bootloader<br />
# /boot/grub/grub.cfg<br />
<br />
# DEVICE NAME CONVERSIONS<br />
#<br />
# Linux Grub<br />
# -------------------------<br />
# /dev/fd0 (fd0)<br />
# /dev/sda (hd0)<br />
# /dev/sdb2 (hd1,2)<br />
# /dev/sda3 (hd0,3)<br />
#<br />
<br />
# Timeout for menu<br />
set timeout=5<br />
<br />
# Set default boot entry as Entry 0<br />
set default=0<br />
<br />
# (0) Arch Linux<br />
menuentry "Arch Linux" {<br />
set root=(hd0,1)<br />
linux /vmlinuz-linux root=/dev/sda3 ro<br />
initrd /initramfs-linux.img<br />
}<br />
<br />
## (1) Windows<br />
#menuentry "Windows" {<br />
#set root=(hd0,3)<br />
#chainloader +1<br />
#}<br />
</nowiki>}}<br />
<br />
=== Dual-booting ===<br />
<br />
{{Note|If you want GRUB2 to automatically search for other systems, you may wish to install {{Pkg|os-prober}}.}}<br />
<br />
==== Using grub-mkconfig ====<br />
The best way to add other entries is editing the {{ic|/etc/grub.d/40_custom}}. The entries in this file will be automatically added when running {{ic|grub-mkconfig}}.<br />
After adding the new lines, run:<br />
# grub-mkconfig -o /boot/grub/grub.cfg <br />
to generate an updated {{ic|grub.cfg}}.<br />
<br />
===== With GNU/Linux =====<br />
<br />
Assuming that the other distro is on partition {{ic|sda2}}:<br />
<br />
menuentry "Other Linux" {<br />
set root=(hd0,2)<br />
linux /boot/vmlinuz (add other options here as required)<br />
initrd /boot/initrd.img (if the other kernel uses/needs one)<br />
}<br />
<br />
===== With FreeBSD =====<br />
<br />
Requires that FreeBSD is installed on a single partition with UFS. Assuming it is installed on {{ic|sda4}}:<br />
<br />
menuentry "FreeBSD" {<br />
set root=(hd0,4)<br />
chainloader +1<br />
}<br />
<br />
===== With Windows =====<br />
<br />
This assumes that your Windows partition is {{ic|sda3}}.<br />
<br />
# (2) Windows XP<br />
menuentry "Windows XP" {<br />
set root=(hd0,3)<br />
chainloader (hd0,3)+1<br />
}<br />
<br />
If the Windows bootloader is on an entirely different hard drive than GRUB, it may be necessary to trick Windows into believing that it is the first hard drive. This was possible in GRUB Legacy with {{ic|map}} and is now done with {{ic|drivemap}}. Assuming GRUB is on {{ic|hd0}} and Windows is on {{ic|hd2}}, you need to add the following after {{ic|set root}}:<br />
<br />
drivemap -s hd0 hd2<br />
<br />
==== With Windows via EasyBCD and NeoGRUB ====<br />
<br />
Since EasyBCD's NeoGRUB currently does not understand the GRUB2 menu format, chainload to it by replacing the contents of your {{ic|C:\NST\menu.lst}} file with lines similar to the following:<br />
<br />
default 0<br />
timeout 1<br />
<br />
title Chainload into GRUB v2<br />
root (hd0,7)<br />
kernel /boot/grub/i386-pc/core.img<br />
<br />
===Visual Configuration===<br />
<br />
In GRUB2 it is possible, by default, to change the look of the menu. Make sure to initialize, if not done already, GRUB2 graphical terminal, gfxterm, with proper video mode, gfxmode, in GRUB2. This can be seen in the section [[#Correct_GRUB2_No_Suitable_Mode_Found_Error]]. This video mode is passed by GRUB2 to the linux kernel via 'gfxpayload' so any visual configurations need this mode in order to be in effect.<br />
<br />
====Setting the framebuffer resolution ====<br />
<br />
GRUB2 can set the framebuffer for both GRUB2 itself and the kernel. The old {{ic|1=vga=}} way is deprecated. The preferred method is editing {{ic|/etc/default/grub}} as the following sample:<br />
<br />
GRUB_GFXMODE=1024x768x32<br />
GRUB_GFXPAYLOAD_LINUX=keep<br />
<br />
To generate the changes, run: <br />
grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
The {{ic|gfxpayload}} property will make sure the kernel keeps the resolution.<br />
<br />
{{Note|If this example does not work for you try to replace {{ic|1=gfxmode="1024x768x32"}} by {{ic|1=vbemode="0x105"}}. Remember to replace the specified resolution with one suitable for your screen.}}<br />
{{Note|To show all the modes you can use {{ic|1=# hwinfo --framebuffer}} (hwinfo is available in [community]), while at GRUB2 prompt you can use the {{ic|1=vbeinfo}} command.}}<br />
<br />
If this method does not work for you, the deprecated {{ic|1=vga=}} method will still work. Just<br />
add it next to the {{ic|1="GRUB_CMDLINE_LINUX_DEFAULT="}} line in {{ic|/etc/default/grub}}<br />
for eg: {{ic|1="GRUB_CMDLINE_LINUX_DEFAULT="quiet splash vga=792"}} will give you a {{ic|1024x768}} resolution.<br />
<br />
You can choose one of these resolutions: {{ic|640×480}}, {{ic|800×600}}, {{ic|1024×768}}, {{ic|1280×1024}}, {{ic|1600×1200}}<br />
<br />
====915resolution hack ====<br />
<br />
Some times for Intel graphic adapters neither {{ic|1=# hwinfo --framebuffer}} nor {{ic|1=vbeinfo}} will show you the desired resolution. In this case you can use {{ic|915resolution}} hack. This hack will temporarily modify video BIOS and add needed resolution. See [http://915resolution.mango-lang.org/ 915resolution's home page]<br />
<br />
In the following I will proceed with the example for my system. Please adjust the recipe for your needs. First you need to find a video mode which will be modified later. For that, run {{ic|915resolution}} in GRUB2 command shell:<br />
915resolution -l<br />
The output will be something like:<br />
Intel 800/900 Series VBIOS Hack : version 0.5.3<br />
...<br />
Mode 30 : 640x480, 8 bits/pixel<br />
...<br />
Next, our purpose is to overwrite mode 30. (You can choose what ever mode you want.) In the file {{ic|/etc/grub.d/00_header}} just before the {{ic|set gfxmode&#61;${GRUB_GFXMODE}}} line insert:<br />
915resolution 30 1440 900<br />
Here we are overwriting the mode {{ic|30}} with {{ic|1440x900}} resolution. Lastly we need to set {{ic|GRUB_GFXMODE}} as described earlier, regenerate GRUB2 configuration file and reboot to test changes:<br />
# grub-mkconfig -o /boot/grub/grub.cfg<br />
# reboot<br />
<br />
====Background image and bitmap fonts====<br />
<br />
GRUB2 comes with support for background images and bitmap fonts in {{ic|pf2}} format. The unifont font is included in the {{Pkg|grub-common}} package under the filename {{ic|unicode.pf2}}, or, as only ASCII characters under the name {{ic|ascii.pf2}}. <br />
<br />
Image formats supported include tga, png and jpeg, providing the correct modules are loaded. The maximum supported resolution depends on your hardware.<br />
<br />
Make sure you have set up the proper [https://wiki.archlinux.org/index.php/GRUB2#Setting_the_framebuffer_resolution framebuffer resolution].<br />
<br />
Edit {{ic|/etc/default/grub}} like this:<br />
GRUB_BACKGROUND="/boot/grub/myimage"<br />
#GRUB_THEME="/path/to/gfxtheme"<br />
<br />
{{Note|If you have installed GRUB on a separate partition, {{ic|/boot/grub/myimage}} becomes {{ic|/grub/myimage}}.}}<br />
<br />
To generate the changes and add the information into {{ic|grub.cfg}}, run: <br />
grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
If adding the splash image was successful, the user will see {{ic|"Found background image..."}} in the terminal as the command is executed. <br />
If this phrase is not seen, the image information was probably not incorporated into the {{ic|grub.cfg}} file.<br />
<br />
If the image is not displayed, check:<br />
* The path and the filename in {{ic|/etc/default/grub}} are correct.<br />
* The image is of the proper size and format (tga, png, 8-bit jpg).<br />
* The image was saved in the RGB mode, and is not indexed.<br />
* The console mode is not enabled in {{ic|/etc/default/grub}}.<br />
* The command {{ic|grub-mkconfig}} must be executed to place the background image information into the {{ic|/boot/grub/grub.cfg}} file.<br />
<br />
====Theme====<br />
<br />
Here is an example for configuring Starfield theme which was included in GRUB2 package.<br />
<br />
Edit {{ic|/etc/default/grub}}<br />
GRUB_THEME="/boot/grub/themes/starfield/theme.txt"<br />
<br />
Generate the changes:<br />
grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
If configuring the theme was successful, you'll see {{ic|Found theme: /boot/grub/themes/starfield/theme.txt}} in the terminal.<br />
Your splash image will usually not displayed when using a theme.<br />
<br />
====Menu colors====<br />
<br />
As in GRUB Legacy (0.9x), you can change the menu colors in GRUB2. The available colors for GRUB2 are at https://www.gnu.org/software/grub/manual/html_node/Theme-file-format.html#Theme-file-format.<br />
Here is an example:<br />
<br />
Edit {{ic|/etc/default/grub}}:<br />
GRUB_COLOR_NORMAL="light-blue/black"<br />
GRUB_COLOR_HIGHLIGHT="light-cyan/blue"<br />
<br />
Generate the changes:<br />
grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
====Hidden menu====<br />
<br />
One of the unique features of GRUB2 is hiding/skipping the menu and showing it by holding {{keypress|Esc}} when needed. You can also adjust whether you want to see the timeout counter.<br />
<br />
Edit {{ic|/etc/default/grub}} as you wish. Here is an example where the comments from the beginning of the two lines have been removed to enable the feature, the timeout has been set to five seconds and to be shown to the user:<br />
GRUB_HIDDEN_TIMEOUT=5<br />
GRUB_HIDDEN_TIMEOUT_QUIET=false<br />
<br />
and run:<br />
grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
====Disable framebuffer====<br />
<br />
User who uses NVIDIA proprietary driver might wish to disable GRUB's framebuffer as it can cause problems with the binary driver.<br />
<br />
To disable framebuffer, edit {{ic|/etc/default/grub}} and uncomment the following line:<br />
GRUB_TERMINAL_OUTPUT=console<br />
<br />
=== Other Options ===<br />
<br />
==== LVM ====<br />
<br />
If you use [[LVM]] for your {{ic|/boot}}, add the following before menuentry lines:<br />
<br />
insmod lvm<br />
<br />
and specify your root in the menuentry as:<br />
<br />
set root=(''lvm_group_name''-''lvm_logical_boot_partition_name'')<br />
<br />
Example:<br />
<br />
# (0) Arch Linux<br />
menuentry "Arch Linux" {<br />
insmod lvm<br />
set root=(VolumeGroup-lv_boot)<br />
# you can only set following two lines<br />
linux /vmlinuz-linux root=/dev/mapper/VolumeGroup-root ro<br />
initrd /initramfs-linux.img<br />
}<br />
<br />
==== RAID ====<br />
<br />
GRUB2 provides convenient handling of RAID volumes. You need to add {{ic|insmod raid}} which allows you to address the volume natively. For example, {{ic|/dev/md0}} becomes:<br />
set root=(md0)<br />
<br />
whereas a partitioned RAID volume (e.g. {{ic|/dev/md0p1}}) becomes:<br />
set root=(md0,1)<br />
<br />
==== Persistent block device naming ====<br />
You can use UUIDs to detect partitions instead of the "old" {{ic|/dev/sd*}} and {{ic|/dev/hd*}} scheming. It has the advantage of detecting partitions by their unique UUIDs, which is needed by some people booting with complicated partition setups.<br />
<br />
UUIDs are used by default in the recent versions of GRUB2 - there is no downside in it anyway except that you need to re-generate the {{ic|grub.cfg}} file every time you resize or reformat your partitions. Remember this when modifying partitions with Live-CD.<br />
<br />
The recent versions of GRUB2 use UUIDs by default. You can re-enable the use of UUIDS by simply commenting the UUID line (this is also what it looks like by default):<br />
#GRUB_DISABLE_LINUX_UUID=true<br />
you can also just set the value as {{ic|false}} as shown here:<br />
GRUB_DISABLE_LINUX_UUID=false<br />
<br />
Either way, do not forget to generate the changes:<br />
grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
==== Using Labels ====<br />
<br />
It is possible to use labels, human-readable strings attached to filesystems, by using the {{ic|--label}} option to {{ic|search}}. First of all, label your existing partition:<br />
# tune2fs -L a <LABEL> <PARTITION><br />
<br />
Then, add an entry using labels. An example of this:<br />
<br />
menuentry "Arch Linux, session texte" {<br />
search --label --no-floppy --set=root archroot<br />
linux /boot/vmlinuz-linux root=/dev/disk/by-label/archroot ro<br />
initrd /boot/initramfs-linux.img<br />
}<br />
<br />
==== Recall previous entry ====<br />
<br />
GRUB2 can remember the last entry you booted from and use this as the default entry to boot from next time. This is useful if you have multiple kernels (i.e., the current Arch one and the LTS kernel as a fallback option) or operating systems. To do this, edit {{ic|/etc/default/grub}} and change the setting of {{ic|GRUB_DEFAULT}}:<br />
<br />
GRUB_DEFAULT=saved<br />
<br />
This ensures that GRUB will default to the saved entry. To enable saving the selected entry, add the following line to {{ic|/etc/default/grub}}:<br />
<br />
GRUB_SAVEDEFAULT=true<br />
<br />
{{Note|Manually added menu items, eg Windows in {{ic|/etc/grub.d/40_custom}}, will need {{ic|savedefault}} added. Remember to regenerate your configuration file.}}<br />
<br />
==== Security ====<br />
<br />
If you want to secure GRUB2 so it is not possible for anyone to change boot parameters or use the command line, you can add a user/password combination to GRUB2's configuration files. To do this, run the command {{ic|grub-mkpasswd_pbkdf2}}. Enter a password and confirm it. The output will look like this:<br />
<br />
{{bc|<nowiki><br />
Your PBKDF2 is grub.pbkdf2.sha512.10000.C8ABD3E93C4DFC83138B0C7A3D719BC650E6234310DA069E6FDB0DD4156313DA3D0D9BFFC2846C21D5A2DDA515114CF6378F8A064C94198D0618E70D23717E82.509BFA8A4217EAD0B33C87432524C0B6B64B34FBAD22D3E6E6874D9B101996C5F98AB1746FE7C7199147ECF4ABD8661C222EEEDB7D14A843261FFF2C07B1269A</nowiki>}}Then, add the following to {{ic|/etc/grub.d/00_header}}:<br />
{{bc|<nowiki>cat << EOF<br />
<br />
set superusers="username"<br />
password_pbkdf2 username <password><br />
<br />
EOF</nowiki>}}<br />
where {{ic|<password>}} is the string generated by {{ic|grub-mkpasswd_pbkdf2}}.<br />
<br />
Regenerate your configuration file. Your GRUB2 command line, boot parameters and all boot entries are now protected.<br />
<br />
This can be relaxed and further customized with more users as described in the "Security" part of [https://www.gnu.org/software/grub/manual/grub.html#Security the GRUB manual].<br />
<br />
==== Root Encryption ====<br />
<br />
To let GRUB2 automatically add the kernel parameters for root encryption,<br />
add {{ic|1=cryptdevice=/dev/yourdevice:label}} to {{ic|GRUB_CMDLINE_LINUX}} in {{ic|/etc/defaults/grub}}.<br />
<br />
Example with root mapped to {{ic|/dev/mapper/root}}:<br />
<br />
GRUB_CMDLINE_LINUX="cryptdevice=/dev/sda2:root"<br />
<br />
Also, disable the usage of UUIDs for the rootfs:<br />
<br />
GRUB_DISABLE_LINUX_UUID=true<br />
<br />
Regenerate the configuration.<br />
<br />
=== Booting an ISO Directly From GRUB2 ===<br />
Edit {{ic|/etc/grub.d/40_custom}} to add an entry for the target ISO. When finished, update the GRUB menu as with the usual {{ic|grub-mkconfig -o /boot/grub/grub.cfg}} (as root).<br />
<br />
==== Arch ISO ====<br />
{{Note|Be sure to adjust the {{ic|hdX,Y}} in the third line to point to the correct disk/partition number of the isofile. Also adjust the {{ic|img_dev}} line to match this same location. However, if booting the ISO from USB on a computer which also has one internal HDD, then it needs to be {{ic|hd0,Y}} with {{ic|sdbY}}, instead of {{ic|sdaY}}.}}<br />
<br />
menuentry "Archlinux-2011.08.19-netinstall-x86_64.iso" {<br />
set isofile="/archives/archlinux-2011.08.19-netinstall-x86_64.iso"<br />
loopback loop (hd0,7)$isofile<br />
linux (loop)/arch/boot/x86_64/vmlinuz archisolabel=ARCH_201108 img_dev=/dev/sda7 img_loop=$isofile earlymodules=loop<br />
initrd (loop)/arch/boot/x86_64/archiso.img<br />
}<br />
<br />
==== Ubuntu ISO ====<br />
{{Note|Be sure to adjust the {{ic|hdX,Y}} in the third line to point to the correct disk or partition number of the ISO file.}}<br />
<br />
menuentry "ubuntu-12.04-desktop-amd64.iso" {<br />
set isofile="/path/to/ubuntu-12.04-desktop-amd64.iso"<br />
loopback loop (hdX,Y)$isofile<br />
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile quiet noeject noprompt splash --<br />
initrd (loop)/casper/initrd.lz<br />
}<br />
<br />
== Using the command shell ==<br />
<br />
Since the MBR is too small to store all GRUB2 modules, only the menu and a few basic commands reside there. The majority of GRUB2 functionality remains in modules in {{ic|/boot/grub}}, which are inserted as needed. In error conditions (e.g. if the partition layout changes) GRUB2 may fail to boot. When this happens, a command shell may appear.<br />
<br />
GRUB2 offers multiple shells/prompts. If there is a problem reading the menu but the bootloader is able to find the disk, you will likely be dropped to the "normal" shell:<br />
sh:grub><br />
<br />
If there is a more serious problem (e.g. GRUB cannot find required files), you may instead be dropped to the "rescue" shell:<br />
grub rescue><br />
<br />
The rescue shell is a restricted subset of the normal shell, offering much less functionality. If dumped to the rescue shell, first try inserting the "normal" module, then starting the "normal" shell:<br />
grub rescue> set prefix=(hdX,Y)/boot/grub<br />
grub rescue> insmod (hdX,Y)/boot/grub/i386-pc/normal.mod<br />
rescue:grub> normal<br />
<br />
=== Pager support ===<br />
<br />
GRUB2 supports pager for reading commands that provide long output (like the help command). This works only in normal shell mode and not in rescue mode. To enable pager, in GRUB2 command shell type:<br />
sh:grub> set pager=1<br />
<br />
== GUI configuration tools ==<br />
<br />
Following package may be installed from [[AUR]]<br />
* [https://aur.archlinux.org/packages.php?ID=44020 grub-customizer] (requires gettext gksu gtkmm hicolor-icon-theme openssl)<br />
*:Customize the bootloader (GRUB2 or BURG)<br />
* [http://kde-apps.org/content/show.php?content=139643 grub2-editor] (requires kdelibs)<br />
*:A KDE4 control module for configuring the GRUB2 bootloader<br />
* [http://kde-apps.org/content/show.php?content=137886 kcm-grub2] (requires kdelibs python2-qt kdebindings-python)<br />
*:This Kcm module manages the most common settings of Grub2.<br />
* [http://sourceforge.net/projects/startup-manager/ startupmanager] (requires gnome-python imagemagick yelp python2 xorg-xrandr)<br />
*:GUI app for changing the settings of GRUB, GRUB2, Usplash and Splashy<br />
<br />
== parttool or legacy hide/unhide ==<br />
<br />
If you have a Windows 9x paradigm with hidden C:\ disks GRUB Legacy had the hide/unhide feature. In GRUB2 this has been replaced by {{ic|parttool}}. For example, to boot the third C:\ disk of three Windows 9x installations on the CLI enter the CLI and:<br />
parttool hd0,1 hidden+ boot-<br />
parttool hd0,2 hidden+ boot-<br />
parttool hd0,3 hidden- boot+<br />
set root=hd0,3<br />
chainloader +1<br />
boot<br />
<br />
== Using the rescue console ==<br />
<br />
See [[#Using the command shell]] first. If unable to activate the standard shell, one possible solution is to boot using a live CD or some other rescue disk to correct configuration errors and reinstall GRUB. However, such a boot disk is not always available (nor necessary); the rescue console is surprisingly robust.<br />
<br />
The available commands in GRUB rescue include {{ic|insmod}}, {{ic|ls}}, {{ic|set}}, and {{ic|unset}}. This example uses {{ic|set}} and {{ic|insmod}}. {{ic|set}} modifies variables and {{ic|insmod}} inserts new modules to add functionality.<br />
<br />
Before starting, the user must know the location of their {{ic|/boot}} partition (be it a separate partition, or a subdirectory under their root):<br />
grub rescue> set prefix=(hdX,Y)/boot/grub<br />
<br />
where X is the physical drive number and Y is the partition number.<br />
<br />
To expand console capabilities, insert the {{ic|linux}} module:<br />
grub rescue> insmod (hdX,Y)/boot/grub/linux.mod<br />
<br />
{{Note|With a separate boot partition, omit {{ic|/boot}} from the path, (i.e. type {{ic|1=set prefix=(hdX,Y)/grub}} and {{ic|insmod (hdX,Y)/grub/linux.mod}}).}}<br />
<br />
This introduces the {{ic|linux}} and {{ic|initrd}} commands, which should be familiar (see [[#Configuration]]).<br />
<br />
An example, booting Arch Linux:<br />
set root=(hd0,5)<br />
linux /boot/vmlinuz-linux root=/dev/sda5<br />
initrd /boot/initramfs-linux.img<br />
boot<br />
<br />
With a separate boot partition, again change the lines accordingly:<br />
set root=(hd0,5)<br />
linux /vmlinuz-linux root=/dev/sda6<br />
initrd /initramfs-linux.img<br />
boot<br />
<br />
After successfully booting the Arch Linux installation, users can correct {{ic|grub.cfg}} as needed and then reinstall GRUB2.<br />
<br />
to reinstall GRUB2 and fix the problem completely, changing {{ic|/dev/sda}} if needed. See [[#Bootloader installation]] for details.<br />
<br />
== Combining the use of UUIDs and basic scripting ==<br />
<br />
If you like the idea of using UUIDs to avoid unreliable BIOS mappings or are struggling with GRUB's syntax, here is an example boot menu item that uses UUIDs and a small script to direct GRUB to the proper disk partitions for your system. All you need to do is replace the UUIDs in the sample with the correct UUIDs for your system. The example applies to a system with a boot and root partition. You will obviously need to modify the GRUB configuration if you have additional partitions:<br />
<br />
menuentry "Arch Linux 64" {<br />
# Set the UUIDs for your boot and root partition respectively<br />
set the_boot_uuid=ece0448f-bb08-486d-9864-ac3271bd8d07<br />
set the_root_uuid=c55da16f-e2af-4603-9e0b-03f5f565ec4a<br />
<br />
# (Note: This may be the same as your boot partition)<br />
<br />
# Get the boot/root devices and set them in the root and grub_boot variables<br />
search --fs-uuid --no-floppy --set=root $the_root_uuid<br />
search --fs-uuid --no-floppy --set=grub_boot $the_boot_uuid<br />
<br />
# Check to see if boot and root are equal.<br />
# If they are, then append /boot to $grub_boot (Since $grub_boot is actually the root partition)<br />
if [ $the_boot_uuid == $the_root_uuid] ; then<br />
set grub_boot=$grub_boot/boot<br />
fi<br />
<br />
# $grub_boot now points to the correct location, so the following will properly find the kernel and initrd<br />
linux ($grub_boot)/vmlinuz-linux root=/dev/disk/by-uuid/$uuid_os_root ro<br />
initrd ($grub_boot)/initramfs-linux.img<br />
}<br />
<br />
== Troubleshooting ==<br />
<br />
Any troubleshooting should be added here.<br />
<br />
=== Enable GRUB2 debug messages ===<br />
<br />
Add:<br />
<br />
set pager=1<br />
set debug=all<br />
<br />
to {{ic|grub.cfg}}.<br />
<br />
=== Correct GRUB2 No Suitable Mode Found Error ===<br />
<br />
If you get this error when booting any menuentry:<br />
<br />
error: no suitable mode found<br />
Booting however<br />
<br />
Then you need to initialize GRUB2 graphical terminal ({{ic|gfxterm}}) with proper video mode ({{ic|gfxmode}}) in GRUB2. This video mode is passed by GRUB2 to the linux kernel via 'gfxpayload'. In case of UEFI systems, if the GRUB2 video mode is not initialized, no kernel boot messages will be shown in the terminal (atleast until KMS kicks in).<br />
<br />
Copy {{ic|/usr/share/grub/unicode.pf2}} to ${GRUB2_PREFIX_DIR} ({{ic|/boot/grub/}} in case of BIOS and UEFI systems). If GRUB2 UEFI was installed with {{ic|1=--boot-directory=/boot/efi/EFI}} set, then the directory is {{ic|/boot/efi/EFI/grub/}}:<br />
<br />
# cp /usr/share/grub/unicode.pf2 ${GRUB2_PREFIX_DIR}<br />
<br />
If {{ic|/usr/share/grub/unicode.pf2}} does not exist, install {{Pkg|bdf-unifont}}, create the {{ic|unifont.pf2}} file and then copy it to {{ic|${GRUB2_PREFIX_DIR<nowiki>}</nowiki>}}:<br />
<br />
# grub-mkfont -o unicode.pf2 /usr/share/fonts/misc/unifont.bdf<br />
<br />
Then, in the {{ic|grub.cfg}} file, add the following lines to enable GRUB2 to pass the video mode correctly to the kernel, without of which you will only get a black screen (no output) but booting (actually) proceeds successfully without any system hang.<br />
<br />
BIOS systems:<br />
<br />
insmod vbe<br />
<br />
UEFI systems:<br />
<br />
insmod efi_gop<br />
insmod efi_uga<br />
<br />
After that add the following code (common to both BIOS and UEFI):<br />
<br />
insmod font<br />
<br />
if loadfont ${prefix}/fonts/unicode.pf2<br />
then<br />
insmod gfxterm<br />
set gfxmode=auto<br />
set gfxpayload=keep<br />
terminal_output gfxterm<br />
fi<br />
<br />
As you can see for gfxterm (graphical terminal) to function properly, {{ic|unicode.pf2}} font file should exist in {{ic|${GRUB2_PREFIX_DIR<nowiki>}</nowiki>}}.<br />
<br />
=== msdos-style error message ===<br />
<br />
grub-setup: warn: This msdos-style partition label has no post-MBR gap; embedding won't be possible!<br />
grub-setup: warn: Embedding is not possible. GRUB can only be installed in this setup by using blocklists.<br />
However, blocklists are UNRELIABLE and its use is discouraged.<br />
grub-setup: error: If you really want blocklists, use --force.<br />
<br />
This error may occur when you try installing GRUB2 in a VMware container. Read more about it [https://bbs.archlinux.org/viewtopic.php?pid=581760#p581760 here]. It happens when the first partition starts just after the MBR (block 63), without the usual space of 1 MiB (2048 blocks) before the first partition. Read [[#MBR_aka_msdos_partitioning_specific_instructions]]<br />
<br />
=== UEFI GRUB2 drops to shell ===<br />
<br />
If GRUB loads but drops you into the rescue shell with no errors, it may be because of a missing or misplaced {{ic|grub.cfg}}. This will happen if GRUB2 UEFI was installed with {{ic|--boot-directory}} and {{ic|grub.cfg}} is missing OR if the partition number of the boot partition changed (which is hard-coded into the {{ic|grubx64.efi}} file).<br />
<br />
=== UEFI GRUB2 not loaded ===<br />
In some cases the EFI may fail to load GRUB correctly. Provided everything is set up correctly, the output of:<br />
efibootmgr -v<br />
might look something like this:<br />
BootCurrent: 0000<br />
Timeout: 3 seconds<br />
BootOrder: 0000,0001,0002<br />
Boot0000* Grub HD(1,800,32000,23532fbb-1bfa-4e46-851a-b494bfe9478c)File(\efi\grub\grub.efi)<br />
Boot0001* Shell HD(1,800,32000,23532fbb-1bfa-4e46-851a-b494bfe9478c)File(\EfiShell.efi)<br />
Boot0002* Festplatte BIOS(2,0,00)P0: SAMSUNG HD204UI<br />
If everything works correctly, the EFI would now automatically load GRUB.<br />
<br />
If the screen only goes black for a second and the next boot option is tried afterwards, according to [https://bbs.archlinux.org/viewtopic.php?pid=981560#p981560 this post], moving GRUB to the partition root can help. The boot option has to be deleted and recreated afterwards. The entry for GRUB should look like this then:<br />
Boot0000* Grub HD(1,800,32000,23532fbb-1bfa-4e46-851a-b494bfe9478c)File(\grub.efi)<br />
<br />
=== Invalid signature ===<br />
If trying to boot Windows results in an "invalid signature" error, e.g. after reconfiguring partitions or adding additional hard drives, (re)move GRUB's device configuration and let it reconfigure:<br />
# mv /boot/grub/device.map /boot/grub/device.map-old<br />
# grub-mkconfig -o /boot/grub/grub.cfg<br />
{{ic|grub-mkconfig}} should now mention all found boot options, including Windows. If it works, remove {{ic|/boot/grub/device.map-old}}.<br />
<br />
=== Restore GRUB Legacy ===<br />
<br />
* Move GRUB2 files out of the way:<br />
<br />
# mv /boot/grub /boot/grub.nonfunctional<br />
<br />
* Copy GRUB Legacy back to {{ic|/boot}}:<br />
<br />
# cp -af /boot/grub-legacy /boot/grub<br />
<br />
* Replace MBR and next 62 sectors of sda with backed up copy<br />
<br />
{{Warning|This command also restores the partition table, so be careful of overwriting a modified partition table with the old one. It '''will''' mess your system.}}<br />
<br />
# dd if=/path/to/backup/first-sectors of=/dev/sdX bs=512 count=1<br />
<br />
A safer way is to restore only the MBR boot code use:<br />
<br />
# dd if=/path/to/backup/mbr-boot-code of=/dev/sdX bs=446 count=1<br />
<br />
== References ==<br />
<br />
# Official GRUB2 Manual - https://www.gnu.org/software/grub/manual/grub.html<br />
# Ubuntu wiki page for GRUB2 - https://help.ubuntu.com/community/Grub2<br />
# GRUB2 wiki page describing steps to compile for UEFI systems - https://help.ubuntu.com/community/UEFIBooting<br />
# Wikipedia's page on [[Wikipedia:BIOS Boot partition|BIOS Boot partition]]<br />
<br />
== External Links ==<br />
<br />
# [https://github.com/the-ridikulus-rat/My_Shell_Scripts/blob/master/grub/grub_bios.sh A Linux Bash Shell script to compile and install GRUB(2) for BIOS from BZR Source]<br />
# [https://github.com/the-ridikulus-rat/My_Shell_Scripts/blob/master/grub/grub_uefi.sh A Linux Bash Shell script to compile and install GRUB(2) for UEFI from BZR Source]</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=GNOME&diff=139040GNOME2011-05-01T03:45:00Z<p>Zodmaner: /* Setting an icon theme */</p>
<hr />
<div>{{i18n|GNOME 3}}<br />
[[fr:gnome3]]<br />
<br />
[[Category:Desktop environments (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{Article summary start}}<br />
{{Article summary text|GNOME 3 provides a modern desktop, rewritten from scratch, using the GTK3+ toolkit.}}<br />
{{Article summary heading|Overview}}<br />
{{Article summary text|{{Graphical user interface overview}}}}<br />
{{Article summary end}}<br />
<br />
For GNOME 3, the GNOME Project has started from scratch and created a completely new, modern desktop designed for today's users and technologies. In GNOME 3:<br />
* There is a new default modern visual theme and font<br />
* The Activities view which provides an easy way to access all your windows and applications<br />
* Built-in (integrated) messaging desktop services<br />
* A more subtle notifications system and a more discrete panel<br />
* A fast Activities search feature<br />
* A new System Settings application <br />
* ... and more features like: window tiling (Aero Snap like), an improved Nautilus etc. <br />
<br />
[more details on the [http://www.gnome3.org/ GNOME3] website]<br />
<br />
== Introduction ==<br />
<br />
GNOME3 comes with '''two''' interfaces, '''gnome-shell''' (the new, standard layout) and '''fallback''' mode. gnome-session will automatically detect if your computer is capable of running gnome-shell and will start fallback mode if not. <br />
<br />
'''Fallback''' mode is very similar to the GNOME 2.x layout (while using gnome-panel and metacity, instead of gnome-shell and Mutter).<br />
<br />
If you are on fallback mode you can still change the window manager with your preferred one.<br />
<br />
== Upgrade from the current gnome 2.32 ==<br />
<br />
{{Warning|The session might crash during the update and it is recommended that you run the update command in a screen session, from another DE or WM, or from tty}}<br />
<br />
# pacman -Syu <br />
<br />
'''Important''': You will end up with a system that has GNOME 3.x '''fallback''' mode. To install the new shell:<br />
<br />
# pacman -S gnome-shell<br />
<br />
== Installing to a new system ==<br />
<br />
GNOME 3 is in [extra]. You can install it by running the following command:<br />
<br />
# pacman -Syu gnome<br />
<br />
For additional applications<br />
<br />
# pacman -Syu gnome-extra<br />
<br />
===Daemons and modules needed by GNOME===<br />
<br />
The GNOME desktop requires one daemon, '''DBUS''' for proper operation. <br />
<br />
To start the DBUS daemon:<br />
# /etc/rc.d/dbus start<br />
<br />
Or add these daemons to the '''DAEMONS''' array in {{Filename|/etc/[[rc.conf]]}} so they will start on boot up, e.g.:<br />
<br />
DAEMONS=(syslog-ng '''dbus''' network crond)<br />
<br />
'''GVFS''' allows the mounting of virtual file systems (e.g. file systems over FTP or SMB) to be used by other applications, including the GNOME file manager Nautilus. This is done with the use of '''FUSE''': a user space virtual file system layer kernel module.<br />
<br />
To load the FUSE kernel module:<br />
# modprobe fuse<br />
<br />
Or add the module to the '''MODULES''' array in {{Filename|/etc/rc.conf}} so they will load at boot up, e.g.:<br />
<br />
MODULES=('''fuse''' usblp)<br />
<br />
{{Note|FUSE is a kernel module, not a daemon.}}<br />
<br />
===Running GNOME===<br />
<br />
For better desktop integration '''GDM''' is recommended (but other login managers, such as SLiM also work, see Policykit section).<br />
<br />
# pacman -S gdm<br />
<br />
Check out [[Display_Manager]] to learn how to start it correctly.<br />
<br />
If you prefer to start it from the console, add the following line to your {{Filename|~/.xinitrc}} file, making sure it's the last line and the only one that starts with ''exec'' (see [[xinitrc]]):<br />
exec ck-launch-session gnome-session<br />
<br />
Now GNOME will start when you enter the following command:<br />
$ startx<br />
<br />
== Using the shell ==<br />
<br />
See https://live.gnome.org/GnomeShell/CheatSheet<br />
<br />
== Customization ==<br />
=== Using Gnome-tweak-tool ===<br />
<br />
# pacman -S gnome-tweak-tool<br />
<br />
This tool can customize fonts, themes, minimize & maximize buttons and some other useful settings like what action is taken when the lid is closed.<br />
<br />
A good customization tutorial is http://blog.fpmurphy.com/2011/03/customizing-the-gnome-3-shell.html which explores the power of gsettings.<br />
<br />
===Setting an icon theme===<br />
<br />
{{Note | With gnome-tweak-tool version 3.0.3 and later, you can place icon theme you wish to use inside ~/.icons.}}<br />
<br />
Usefully, Gnome 3 is able to use Gnome 2 icon themes, which means you're not stuck with the default set. To do this, simply copy your desired icon theme's directory to ~/.icons. For example:<br />
<br />
$ cp -R /home/user/Desktop/my_new_icon_theme ~/.icons<br />
<br />
The new icon theme 'my_new_icon_theme' will now be selectable using the gnome-tweak-tool (under 'Interface').<br />
<br />
===GDM===<br />
<br />
# su - gdm -s /bin/bash<br />
$ dbus-launch<br />
<br />
This command will print DBUS_SESSION_BUS_ADDRESS and DBUS_SESSION_BUS_PID. We need to export them<br />
<br />
$ export DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-Jb433gMQHS,guid=fc14d4bf3d000e38276a5a2200000d38<br />
$ export DBUS_SESSION_BUS_PID=4283<br />
<br />
Check to see if dconf-service is running and if not, start it like this<br />
<br />
$ /usr/lib/dconf/dconf-service &<br />
<br />
====Wallpaper====<br />
$ GSETTINGS_BACKEND=dconf gsettings get org.gnome.desktop.background picture-uri<br />
$ GSETTINGS_BACKEND=dconf gsettings set org.gnome.desktop.background picture-uri "file:///usr/share/backgrounds/gnome/SundownDunes.jpg"<br />
<br />
====Turning off the sound====<br />
$ GSETTINGS_BACKEND=dconf gsettings set org.gnome.desktop.sound event-sounds false<br />
<br />
=== Changing the GTK3 theme using settings.ini ===<br />
<br />
Similar to {{Filename|~/.gtkrc-2.0}} for GTK2+ it is possible to set the GTK3 (Gnome 3) theme via {{Filename|${XDG_CONFIG_HOME}/gtk-3.0/settings.ini}}. By default {{Filename|${XDG_CONFIG_HOME} }} is interpreted as {{Filename|~/.config}}.<br />
<br />
Only Adwaita theme exists in this moment for gtk3 and is available in '''gnome-themes-standard''' package.<br />
<br />
Example:<br />
<br />
[Settings]<br />
gtk-theme-name = Adwaita<br />
gtk-fallback-icon-theme = gnome<br />
gtk-application-prefer-dark-theme = true # applicable only if selected theme supports it<br />
<br />
It may be necessary to restart one's DE or WM for the settings to be applied.<br />
<br />
=== Start program automatically after login to GNOME 3 ===<br />
You can specify which programs to start automatically after login using the '''gnome-session-properties''' tool, which is a part of the '''gnome-session''' package.<br />
$ gnome-session-properties<br />
<br />
=== Removing folders from the "Computer" section in Nautilus's Places sidebar ===<br />
<br />
The displayed folders are specified in {{Filename|~/.config/user-dirs.dirs}} and can be altered with any editor. An execution of {{codeline|xdg-user-dirs-update}} will change them again, thus it may be advisable to set the file permissions to read-only.<br />
<br />
=== Setting the default terminal via console ===<br />
<br />
{{codeline|gsettings}}, which replaces {{codeline|gconftool-2}} in Gnome 3, is used to set e. g. the default terminal manually. The setting is relevant for ''nautilus-open-terminal''.<br />
<br />
The commands for [[rxvt-unicode|urxvt]] run as daemon:<br />
<br />
gsettings set org.gnome.desktop.default-applications.terminal exec urxvtc<br />
gsettings set org.gnome.desktop.default-applications.terminal exec-arg "'-e'"<br />
<br />
=== Setting Nautilus to Use Location Bar Entry ===<br />
<br />
If you want to enter path locations manually in Nautilus you can press ctrl+l. To make this persistent you can use gsettings.<br />
<br />
gsettings set org.gnome.nautilus.preferences always-use-location-entry true<br />
<br />
== Enabling fallback mode==<br />
<br />
Your session will automatically start in fallback mode if gnome-shell is not present. If you want to enable it while having gnome-shell installed, open gnome-control-center. Open System Info > Graphics. Change ''Forced Fallback Mode'' to ''ON''.<br />
<br />
== Enabling hidden features ==<br />
<br />
Gnome 3.0 hides a lot of useful options which you can customize with '''dconf-editor''' or '''gconf-editor''' for settings not yet migrated to dconf.<br />
<br />
=== Changing Hotkeys ===<br />
<br />
In '''dconf-editor''', enable org.gnome.desktop.interface "can-change-accels".<br />
<br />
An example of changing the delete hotkey:<br />
Open nautilus, select any file/directory, then click "Edit" from the menubar, and hover over the "Move to Trash" menuitem.<br />
While hovering, push delete. The accel should change from "ctrl+del" to "del".<br />
<br />
Make sure you have selected a file, else the "Move to Trash" menuitem will be greyed out.<br />
You should disable "can-change-accels" afterwards, to prevent accidental accel changes.<br />
<br />
== How to shutdown through the Status menu ==<br />
<br />
For now, the Shutdown option seems to be hidden if the user presses the Status menu on the upper right. If you want to shutdown your system through the Status menu, click on it and then press the '''Alt''' button. The "'''Suspend'''" option will instantly turn into "Power off...", as long as you are pressing the Alt button, which will allow you to properly shutdown your system.<br />
<br />
You can also install the "Alternative Status Menu" extension (see the section on Enabling Extensions, below). This will put a permanent "Power Off" option in the Status menu below the usual suspend option.<br />
<br />
== Enabling integrated messaging ==<br />
<br />
Empathy, the engine behind the integrated messaging, and all of the system settings based on your messaging accounts will not show up unless the '''telepathy''' group of packages or at least one of the backends ('''telepathy-gabble''', or '''telepathy-haze''', for example) is installed. These are not included in the default Arch GNOME installs and the Empathy interface doesn't give a nice error message, it just fails to work silently. You can install them:<br />
<br />
# pacman -S telepathy<br />
<br />
== Enabling extensions ==<br />
<br />
Gnome Shell can be customised to an extent with extensions that have been written by others. These provide functionality like having a dock that is always present, and being able to change the shell theme. More details on the functionality of currently available extensions is given [http://www.webupd8.org/2011/04/gnome-shell-extensions-additional.html here] You can use the [http://aur.archlinux.org/packages.php?ID=47501 gnome-shell-extensions-git] package in the AUR to install them. Restart Gnome to enable them.<br />
<br />
If installing the extensions causes Gnome to stop working then you must remove the user-theme extension and and the auto-move-windows extension from their installation directory (could be in ~/.local/share/gnome-shell/extensions or /usr/share/gnome-shell/extensions or /usr/local/share/gnome-shell/extensions). Removing or adding extensions to these directories will remove or install them form the system. More details on Gnome Shell extensions are available [https://live.gnome.org/GnomeShell/Extensions here].<br />
<br />
== Troubleshooting ==<br />
=== My GTK2+ apps show segfaults and won't start ===<br />
<br />
That usually happens when '''oxygen-gtk''' is installed. That theme conflicts somehow with GNOME 3's or/and GTK3 settings and when it has been set as a GTK2 theme, the GTK2 apps segfault with errors like:<br />
<br />
<pre> (firefox-bin:14345): GLib-GObject-WARNING **: invalid (NULL) pointer instance<br />
<br />
(firefox-bin:14345): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed<br />
<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_default_colormap: assertion `GDK_IS_SCREEN (screen)' failed<br />
<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_colormap_get_visual: assertion `GDK_IS_COLORMAP (colormap)' failed<br />
<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_default_colormap: assertion `GDK_IS_SCREEN (screen)' failed<br />
<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)' failed<br />
<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)' failed<br />
<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_window_new: assertion `GDK_IS_WINDOW (parent)' failed<br />
Segmentation fault<br />
</pre><br />
<br />
The current "workaround" is to '''remove''' '''oxygen-gtk''' from the system completely and set another theme for your apps.<br />
<br />
=== I have multiple monitors and the Dock extension appears stuck between them ===<br />
<br />
If you have multiple monitors configured using Nvidia Twinview, the dock extension may get sandwiched in-between the monitors. You can edit the source of this extension to reposition the dock to a position of your choosing.<br />
<br />
Edit '''/usr/share/gnome-shell/extensions/dock@gnome-shell-extensions.gnome.org/extension.js''' and locate this line in the source:<br />
<br />
this.actor.set_position(primary.width-this._item_size-this._spacing-2, (primary.height-height)/2);<br />
<br />
The first parameter is the X position of the dock display, by subtracting 15 pixels as opposed to 2 pixels from this it correctly positioned on my primary monitor, you can play around with any X,Y coordinate pair to position it correctly.<br />
<br />
this.actor.set_position(primary.width-this._item_size-this._spacing-15, (primary.height-height)/2);<br />
<br />
=== There are no event sounds for Empathy and other programs ===<br />
The '''sound-theme-freedesktop''' package must be installed for the default event sounds:<br />
# pacman -S sound-theme-freedesktop<br />
<br />
=== Editing hotkeys via can-change-accels fails ===<br />
It is also possible to manually change the keys via an application's so-called accel map file. Where it is to be found is up to the application: For instance, Thunar's is at {{Filename|~/.config/Thunar/accels.scm}}, whereas Nautilus's is located at {{Filename|~/.gnome2/accels/nautilus}}. The file should contain a list of possible hotkeys, each unchanged line commented out with a leading ";" that has to be removed for a change to become active.</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=GNOME&diff=139039GNOME2011-05-01T03:43:46Z<p>Zodmaner: /* Setting an icon theme */ Update guide with information with newer version of gnome-tweak-tool</p>
<hr />
<div>{{i18n|GNOME 3}}<br />
[[fr:gnome3]]<br />
<br />
[[Category:Desktop environments (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{Article summary start}}<br />
{{Article summary text|GNOME 3 provides a modern desktop, rewritten from scratch, using the GTK3+ toolkit.}}<br />
{{Article summary heading|Overview}}<br />
{{Article summary text|{{Graphical user interface overview}}}}<br />
{{Article summary end}}<br />
<br />
For GNOME 3, the GNOME Project has started from scratch and created a completely new, modern desktop designed for today's users and technologies. In GNOME 3:<br />
* There is a new default modern visual theme and font<br />
* The Activities view which provides an easy way to access all your windows and applications<br />
* Built-in (integrated) messaging desktop services<br />
* A more subtle notifications system and a more discrete panel<br />
* A fast Activities search feature<br />
* A new System Settings application <br />
* ... and more features like: window tiling (Aero Snap like), an improved Nautilus etc. <br />
<br />
[more details on the [http://www.gnome3.org/ GNOME3] website]<br />
<br />
== Introduction ==<br />
<br />
GNOME3 comes with '''two''' interfaces, '''gnome-shell''' (the new, standard layout) and '''fallback''' mode. gnome-session will automatically detect if your computer is capable of running gnome-shell and will start fallback mode if not. <br />
<br />
'''Fallback''' mode is very similar to the GNOME 2.x layout (while using gnome-panel and metacity, instead of gnome-shell and Mutter).<br />
<br />
If you are on fallback mode you can still change the window manager with your preferred one.<br />
<br />
== Upgrade from the current gnome 2.32 ==<br />
<br />
{{Warning|The session might crash during the update and it is recommended that you run the update command in a screen session, from another DE or WM, or from tty}}<br />
<br />
# pacman -Syu <br />
<br />
'''Important''': You will end up with a system that has GNOME 3.x '''fallback''' mode. To install the new shell:<br />
<br />
# pacman -S gnome-shell<br />
<br />
== Installing to a new system ==<br />
<br />
GNOME 3 is in [extra]. You can install it by running the following command:<br />
<br />
# pacman -Syu gnome<br />
<br />
For additional applications<br />
<br />
# pacman -Syu gnome-extra<br />
<br />
===Daemons and modules needed by GNOME===<br />
<br />
The GNOME desktop requires one daemon, '''DBUS''' for proper operation. <br />
<br />
To start the DBUS daemon:<br />
# /etc/rc.d/dbus start<br />
<br />
Or add these daemons to the '''DAEMONS''' array in {{Filename|/etc/[[rc.conf]]}} so they will start on boot up, e.g.:<br />
<br />
DAEMONS=(syslog-ng '''dbus''' network crond)<br />
<br />
'''GVFS''' allows the mounting of virtual file systems (e.g. file systems over FTP or SMB) to be used by other applications, including the GNOME file manager Nautilus. This is done with the use of '''FUSE''': a user space virtual file system layer kernel module.<br />
<br />
To load the FUSE kernel module:<br />
# modprobe fuse<br />
<br />
Or add the module to the '''MODULES''' array in {{Filename|/etc/rc.conf}} so they will load at boot up, e.g.:<br />
<br />
MODULES=('''fuse''' usblp)<br />
<br />
{{Note|FUSE is a kernel module, not a daemon.}}<br />
<br />
===Running GNOME===<br />
<br />
For better desktop integration '''GDM''' is recommended (but other login managers, such as SLiM also work, see Policykit section).<br />
<br />
# pacman -S gdm<br />
<br />
Check out [[Display_Manager]] to learn how to start it correctly.<br />
<br />
If you prefer to start it from the console, add the following line to your {{Filename|~/.xinitrc}} file, making sure it's the last line and the only one that starts with ''exec'' (see [[xinitrc]]):<br />
exec ck-launch-session gnome-session<br />
<br />
Now GNOME will start when you enter the following command:<br />
$ startx<br />
<br />
== Using the shell ==<br />
<br />
See https://live.gnome.org/GnomeShell/CheatSheet<br />
<br />
== Customization ==<br />
=== Using Gnome-tweak-tool ===<br />
<br />
# pacman -S gnome-tweak-tool<br />
<br />
This tool can customize fonts, themes, minimize & maximize buttons and some other useful settings like what action is taken when the lid is closed.<br />
<br />
A good customization tutorial is http://blog.fpmurphy.com/2011/03/customizing-the-gnome-3-shell.html which explores the power of gsettings.<br />
<br />
===Setting an icon theme===<br />
<br />
{{Note | With gnome-tweak-tool version 3.0.3 and later, you can place icon theme you wish to use inside ~/.icons}}<br />
<br />
Usefully, Gnome 3 is able to use Gnome 2 icon themes, which means you're not stuck with the default set. To do this, simply copy your desired icon theme's directory to ~/.icons. For example:<br />
<br />
$ cp -R /home/user/Desktop/my_new_icon_theme ~/.icons<br />
<br />
The new icon theme 'my_new_icon_theme' will now be selectable using the gnome-tweak-tool (under 'Interface').<br />
<br />
===GDM===<br />
<br />
# su - gdm -s /bin/bash<br />
$ dbus-launch<br />
<br />
This command will print DBUS_SESSION_BUS_ADDRESS and DBUS_SESSION_BUS_PID. We need to export them<br />
<br />
$ export DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-Jb433gMQHS,guid=fc14d4bf3d000e38276a5a2200000d38<br />
$ export DBUS_SESSION_BUS_PID=4283<br />
<br />
Check to see if dconf-service is running and if not, start it like this<br />
<br />
$ /usr/lib/dconf/dconf-service &<br />
<br />
====Wallpaper====<br />
$ GSETTINGS_BACKEND=dconf gsettings get org.gnome.desktop.background picture-uri<br />
$ GSETTINGS_BACKEND=dconf gsettings set org.gnome.desktop.background picture-uri "file:///usr/share/backgrounds/gnome/SundownDunes.jpg"<br />
<br />
====Turning off the sound====<br />
$ GSETTINGS_BACKEND=dconf gsettings set org.gnome.desktop.sound event-sounds false<br />
<br />
=== Changing the GTK3 theme using settings.ini ===<br />
<br />
Similar to {{Filename|~/.gtkrc-2.0}} for GTK2+ it is possible to set the GTK3 (Gnome 3) theme via {{Filename|${XDG_CONFIG_HOME}/gtk-3.0/settings.ini}}. By default {{Filename|${XDG_CONFIG_HOME} }} is interpreted as {{Filename|~/.config}}.<br />
<br />
Only Adwaita theme exists in this moment for gtk3 and is available in '''gnome-themes-standard''' package.<br />
<br />
Example:<br />
<br />
[Settings]<br />
gtk-theme-name = Adwaita<br />
gtk-fallback-icon-theme = gnome<br />
gtk-application-prefer-dark-theme = true # applicable only if selected theme supports it<br />
<br />
It may be necessary to restart one's DE or WM for the settings to be applied.<br />
<br />
=== Start program automatically after login to GNOME 3 ===<br />
You can specify which programs to start automatically after login using the '''gnome-session-properties''' tool, which is a part of the '''gnome-session''' package.<br />
$ gnome-session-properties<br />
<br />
=== Removing folders from the "Computer" section in Nautilus's Places sidebar ===<br />
<br />
The displayed folders are specified in {{Filename|~/.config/user-dirs.dirs}} and can be altered with any editor. An execution of {{codeline|xdg-user-dirs-update}} will change them again, thus it may be advisable to set the file permissions to read-only.<br />
<br />
=== Setting the default terminal via console ===<br />
<br />
{{codeline|gsettings}}, which replaces {{codeline|gconftool-2}} in Gnome 3, is used to set e. g. the default terminal manually. The setting is relevant for ''nautilus-open-terminal''.<br />
<br />
The commands for [[rxvt-unicode|urxvt]] run as daemon:<br />
<br />
gsettings set org.gnome.desktop.default-applications.terminal exec urxvtc<br />
gsettings set org.gnome.desktop.default-applications.terminal exec-arg "'-e'"<br />
<br />
=== Setting Nautilus to Use Location Bar Entry ===<br />
<br />
If you want to enter path locations manually in Nautilus you can press ctrl+l. To make this persistent you can use gsettings.<br />
<br />
gsettings set org.gnome.nautilus.preferences always-use-location-entry true<br />
<br />
== Enabling fallback mode==<br />
<br />
Your session will automatically start in fallback mode if gnome-shell is not present. If you want to enable it while having gnome-shell installed, open gnome-control-center. Open System Info > Graphics. Change ''Forced Fallback Mode'' to ''ON''.<br />
<br />
== Enabling hidden features ==<br />
<br />
Gnome 3.0 hides a lot of useful options which you can customize with '''dconf-editor''' or '''gconf-editor''' for settings not yet migrated to dconf.<br />
<br />
=== Changing Hotkeys ===<br />
<br />
In '''dconf-editor''', enable org.gnome.desktop.interface "can-change-accels".<br />
<br />
An example of changing the delete hotkey:<br />
Open nautilus, select any file/directory, then click "Edit" from the menubar, and hover over the "Move to Trash" menuitem.<br />
While hovering, push delete. The accel should change from "ctrl+del" to "del".<br />
<br />
Make sure you have selected a file, else the "Move to Trash" menuitem will be greyed out.<br />
You should disable "can-change-accels" afterwards, to prevent accidental accel changes.<br />
<br />
== How to shutdown through the Status menu ==<br />
<br />
For now, the Shutdown option seems to be hidden if the user presses the Status menu on the upper right. If you want to shutdown your system through the Status menu, click on it and then press the '''Alt''' button. The "'''Suspend'''" option will instantly turn into "Power off...", as long as you are pressing the Alt button, which will allow you to properly shutdown your system.<br />
<br />
You can also install the "Alternative Status Menu" extension (see the section on Enabling Extensions, below). This will put a permanent "Power Off" option in the Status menu below the usual suspend option.<br />
<br />
== Enabling integrated messaging ==<br />
<br />
Empathy, the engine behind the integrated messaging, and all of the system settings based on your messaging accounts will not show up unless the '''telepathy''' group of packages or at least one of the backends ('''telepathy-gabble''', or '''telepathy-haze''', for example) is installed. These are not included in the default Arch GNOME installs and the Empathy interface doesn't give a nice error message, it just fails to work silently. You can install them:<br />
<br />
# pacman -S telepathy<br />
<br />
== Enabling extensions ==<br />
<br />
Gnome Shell can be customised to an extent with extensions that have been written by others. These provide functionality like having a dock that is always present, and being able to change the shell theme. More details on the functionality of currently available extensions is given [http://www.webupd8.org/2011/04/gnome-shell-extensions-additional.html here] You can use the [http://aur.archlinux.org/packages.php?ID=47501 gnome-shell-extensions-git] package in the AUR to install them. Restart Gnome to enable them.<br />
<br />
If installing the extensions causes Gnome to stop working then you must remove the user-theme extension and and the auto-move-windows extension from their installation directory (could be in ~/.local/share/gnome-shell/extensions or /usr/share/gnome-shell/extensions or /usr/local/share/gnome-shell/extensions). Removing or adding extensions to these directories will remove or install them form the system. More details on Gnome Shell extensions are available [https://live.gnome.org/GnomeShell/Extensions here].<br />
<br />
== Troubleshooting ==<br />
=== My GTK2+ apps show segfaults and won't start ===<br />
<br />
That usually happens when '''oxygen-gtk''' is installed. That theme conflicts somehow with GNOME 3's or/and GTK3 settings and when it has been set as a GTK2 theme, the GTK2 apps segfault with errors like:<br />
<br />
<pre> (firefox-bin:14345): GLib-GObject-WARNING **: invalid (NULL) pointer instance<br />
<br />
(firefox-bin:14345): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed<br />
<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_default_colormap: assertion `GDK_IS_SCREEN (screen)' failed<br />
<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_colormap_get_visual: assertion `GDK_IS_COLORMAP (colormap)' failed<br />
<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_default_colormap: assertion `GDK_IS_SCREEN (screen)' failed<br />
<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)' failed<br />
<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)' failed<br />
<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_window_new: assertion `GDK_IS_WINDOW (parent)' failed<br />
Segmentation fault<br />
</pre><br />
<br />
The current "workaround" is to '''remove''' '''oxygen-gtk''' from the system completely and set another theme for your apps.<br />
<br />
=== I have multiple monitors and the Dock extension appears stuck between them ===<br />
<br />
If you have multiple monitors configured using Nvidia Twinview, the dock extension may get sandwiched in-between the monitors. You can edit the source of this extension to reposition the dock to a position of your choosing.<br />
<br />
Edit '''/usr/share/gnome-shell/extensions/dock@gnome-shell-extensions.gnome.org/extension.js''' and locate this line in the source:<br />
<br />
this.actor.set_position(primary.width-this._item_size-this._spacing-2, (primary.height-height)/2);<br />
<br />
The first parameter is the X position of the dock display, by subtracting 15 pixels as opposed to 2 pixels from this it correctly positioned on my primary monitor, you can play around with any X,Y coordinate pair to position it correctly.<br />
<br />
this.actor.set_position(primary.width-this._item_size-this._spacing-15, (primary.height-height)/2);<br />
<br />
=== There are no event sounds for Empathy and other programs ===<br />
The '''sound-theme-freedesktop''' package must be installed for the default event sounds:<br />
# pacman -S sound-theme-freedesktop<br />
<br />
=== Editing hotkeys via can-change-accels fails ===<br />
It is also possible to manually change the keys via an application's so-called accel map file. Where it is to be found is up to the application: For instance, Thunar's is at {{Filename|~/.config/Thunar/accels.scm}}, whereas Nautilus's is located at {{Filename|~/.gnome2/accels/nautilus}}. The file should contain a list of possible hotkeys, each unchanged line commented out with a leading ";" that has to be removed for a change to become active.</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=GNOME&diff=137166GNOME2011-04-13T10:59:24Z<p>Zodmaner: /* Start program automatically after login to GNOME 3 */</p>
<hr />
<div>{{i18n|GNOME 3}}<br />
<br />
[[Category:Desktop environments (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{Article summary start}}<br />
{{Article summary text|GNOME 3 provides a modern desktop, rewritten from scratch, using the GTK3+.}}<br />
{{Article summary heading|Overview}}<br />
{{Article summary text|{{Graphical user interface overview}}}}<br />
{{Article summary end}}<br />
<br />
For GNOME 3, the GNOME Project has started from scratch and created a completely new, modern desktop designed for today's users and technologies. In GNOME 3:<br />
* There is a new default modern visual theme and font<br />
* The Activities view which provides an easy way to access all your windows and applications<br />
* Built-in (integrated) messaging desktop services<br />
* A more subtle notifications' system and a more discreet panel<br />
* A fast Activities' search feature<br />
* A new System Settings application <br />
* ... and more features like: window tiling (Aero Snap like), an improved Nautilus etc. <br />
<br />
[more details on the [http://www.gnome3.org/ GNOME3] website]<br />
<br />
== Introduction ==<br />
<br />
GNOME3 comes with '''two''' interfaces, '''gnome-shell''' (the new, standard layout) and '''fallback''' mode. gnome-session will automatically detect if your computer is capable to run gnome-shell and it would start the fallback mode if not. <br />
<br />
'''Fallback''' mode is very much alike the GNOME 2.x layout (while using gnome-panel and metacity, instead of gnome-shell and Mutter).<br />
<br />
If you are on fallback mode you can still change the window manager with your preferred one.<br />
<br />
== Upgrade from the current gnome 2.32 ==<br />
<br />
Enable '''testing''' repo. <br />
<br />
Edit /etc/pacman.conf and '''un'''comment testing.<br />
<br />
{{Warning|It's very important for the new repo to be on the '''top''', otherwise pacman will '''not''' upgrade GNOME}}<br />
<br />
#testing uncommented<br />
[testing]<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
<br />
{{Warning|The session might crash during update and is recommended running the update command in a screen session, from another DE or WM or from tty}}<br />
<br />
# pacman -Syu <br />
<br />
'''Important''': You will end up with a system that has GNOME 3.x '''fallback''' mode. To install the new shell:<br />
<br />
# pacman -S gnome-shell<br />
<br />
== Installing to a new system ==<br />
<br />
Enable testing in the same way as above.<br />
<br />
# pacman -Syu testing/gnome<br />
<br />
For additional applications<br />
<br />
# pacman -Syu testing/gnome-extra<br />
<br />
===Daemons and modules needed by GNOME===<br />
<br />
The GNOME desktop requires one daemon, '''DBUS''' for proper operation. <br />
<br />
To start the DBUS daemon:<br />
# /etc/rc.d/dbus start<br />
<br />
Or add these daemons to the '''DAEMONS''' array in {{Filename|/etc/[[rc.conf]]}} so they will start on boot up, e.g.:<br />
<br />
DAEMONS=(syslog-ng '''dbus''' network crond)<br />
<br />
'''GVFS''' allows the mounting of virtual file systems (e.g. file systems over FTP or SMB) to be used by other applications, including the GNOME file manager Nautilus. This is done with the use of '''FUSE''': a user space virtual file system layer kernel module.<br />
<br />
To load the FUSE kernel module:<br />
# modprobe fuse<br />
<br />
Or add the module to the '''MODULES''' array in {{Filename|/etc/rc.conf}} so they will load at boot up, e.g.:<br />
<br />
MODULES=('''fuse''' usblp)<br />
<br />
{{Note|FUSE is a kernel module, not a daemon.}}<br />
<br />
===Running GNOME===<br />
<br />
For a better desktop integration is recommended '''GDM'''.<br />
# pacman -S gdm<br />
<br />
Check out [[Display_Manager]] to learn how to start it correctly.<br />
<br />
If you prefer to start it from console, add the following line to your {{Filename|~/.xinitrc}} file, making sure it's the last line and the only one that starts with ''exec'' (see [[xinitrc]]):<br />
exec ck-launch-session gnome-session<br />
<br />
Now GNOME will start when you enter the following command:<br />
$ startx<br />
<br />
== Using the shell ==<br />
<br />
See https://live.gnome.org/GnomeShell/CheatSheet<br />
<br />
== Customization ==<br />
=== Using Gnome-tweak-tool ===<br />
<br />
# pacman -S gnome-tweak-tool<br />
<br />
This tool can customize fonts, themes, minimize & maximize buttons and some other useful settings like action when lid is closed.<br />
<br />
A good customization tutorial is http://blog.fpmurphy.com/2011/03/customizing-the-gnome-3-shell.html which explores the power of gsettings<br />
<br />
===GDM Wallpaper===<br />
<br />
# su - gdm -s /bin/bash<br />
$ dbus-launch<br />
<br />
This command will print DBUS_SESSION_BUS_ADDRESS and DBUS_SESSION_BUS_PID. We need to export them<br />
<br />
$ export DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-Jb433gMQHS,guid=fc14d4bf3d000e38276a5a2200000d38<br />
$ export DBUS_SESSION_BUS_PID=4283<br />
$ /usr/lib/dconf/dconf-service &<br />
$ GSETTINGS_BACKEND=dconf gsettings get org.gnome.desktop.background picture-uri<br />
$ GSETTINGS_BACKEND=dconf gsettings set org.gnome.desktop.background picture-uri "file:///usr/share/backgrounds/gnome/SundownDunes.jpg"<br />
$ GSETTINGS_BACKEND=dconf gsettings get org.gnome.desktop.background picture-uri<br />
<br />
=== Changing the GTK3 theme using settings.ini ===<br />
<br />
Similar to {{Filename|~/.gtkrc-2.0}} for GTK2+ it is possible to set the GTK3 (Gnome 3) theme via {{Filename|${XDG_CONFIG_HOME}/gtk-3.0/settings.ini}}. By default {{Filename|${XDG_CONFIG_HOME} }} is interpreted as {{Filename|~/.config}}.<br />
<br />
Example:<br />
<br />
[Settings]<br />
gtk-theme-name = Adwaita<br />
gtk-fallback-icon-theme = gnome<br />
gtk-application-prefer-dark-theme = true # applicable only if selected theme supports it<br />
<br />
It may be necessary to restart one's DE or WM for the settings to be applied.<br />
<br />
=== Start program automatically after login to GNOME 3 ===<br />
You can specify which program to start automatically after login using '''gnome-session-properties''' tool, which is a part of '''gnome-session''' package.<br />
$ gnome-session-properties<br />
<br />
=== Removing folders from the "Computer" section in Nautilus's Places sidebar ===<br />
<br />
The displayed folders are specified in {{Filename|~/.config/user-dirs.dirs}} and can altered with every editor. An execution of {{codeline|xdg-user-dirs-update}} will change them again, it may be hence be advisable to set the file permissions to read-only.<br />
<br />
=== Setting the default terminal via console ===<br />
<br />
{{codeline|gsettings}}, which replaces {{codeline|gconftool-2}} in Gnome 3, is used to set e. g. the default terminal manually. The setting is relevant for ''nautilus-open-terminal''.<br />
<br />
The commands for [[rxvt-unicode|urxvt]] run as daemon:<br />
<br />
gsettings set org.gnome.desktop.default-applications.terminal exec urxvtc<br />
gsettings set org.gnome.desktop.default-applications.terminal exec-arg "'-e'"<br />
<br />
== Enabling fallback mode==<br />
<br />
Your session would start automatically to fallback mode if gnome-shell is not present. If you want to enable it while having gnome-shell installed, open gnome-control-center. Open System Info > Graphics. Change ''Forced Fallback Mode'' to ''ON''.<br />
<br />
== Enabling hidden features ==<br />
<br />
Gnome 3.0 hides a lot of useful options and you have to use '''dconf-editor''' to customize them. <br />
<br />
== How to shutdown through the Status menu ==<br />
<br />
For now, the Shutdown option seems to be hidden if the user presses the Status menu on the upper right. If you want to shutdown your system through the Status menu, click on it and then press the '''Alt''' button. The "'''Suspend'''" option will instantly turn into "Power off...", as long as you press the Alt button, which will allow you to properly shutdown your system.<br />
<br />
== Enabling integrated messaging ==<br />
<br />
Empathy, the engine behind the integrated messaging, and all of the system settings based on your messaging accounts will not show up unless the '''telepathy''' group of packages or at least one of the backends ('''telepathy-gabble''', or '''telepathy-haze''', for example) is installed. These are not included in the default Arch GNOME installs and the Empathy interface doesn't give a nice error message, it just fails to work silently. You can install them:<br />
<br />
# pacman -S telepathy<br />
<br />
== Enabling extensions ==<br />
<br />
Gnome Shell can be customised to an extent with extensions that have been written by others. These provide functionality like having a dock that is always present, and being able to change the shell theme. More details on the functionality of currently available extensions is given [http://www.webupd8.org/2011/04/gnome-shell-extensions-additional.html here] You can use the [http://aur.archlinux.org/packages.php?ID=47501 gnome-shell-extensions-git] package in the AUR to install them. Restart Gnome to enable them.<br />
<br />
If installing the extensions causes Gnome to stop working then you must remove the user-theme extension and and the auto-move-windows extension from their installation directory (could be in ~/.local/share/gnome-shell/extensions or /usr/share/gnome-shell/extensions or /usr/local/share/gnome-shell/extensions). Removing or adding extensions to these directories will remove or install them form the system. More details on Gnome Shell extensions are available [https://live.gnome.org/GnomeShell/Extensions here].<br />
<br />
== Troubleshooting ==<br />
=== My GTK2+ apps show segfaults and won't start ===<br />
<br />
That usually happens when '''oxygen-gtk''' is installed. That theme conflicts somehow with GNOME 3's or/and GTK3 settings and when it has been set as a GTK2 theme, the GTK2 apps segfault with errors like:<br />
<br />
<pre> (firefox-bin:14345): GLib-GObject-WARNING **: invalid (NULL) pointer instance<br />
<br />
(firefox-bin:14345): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed<br />
<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_default_colormap: assertion `GDK_IS_SCREEN (screen)' failed<br />
<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_colormap_get_visual: assertion `GDK_IS_COLORMAP (colormap)' failed<br />
<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_default_colormap: assertion `GDK_IS_SCREEN (screen)' failed<br />
<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)' failed<br />
<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)' failed<br />
<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_window_new: assertion `GDK_IS_WINDOW (parent)' failed<br />
Segmentation fault<br />
</pre><br />
<br />
The current "workaround" is to '''remove''' '''oxygen-gtk''' from the system completely and set another theme for your apps.</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=GNOME&diff=137165GNOME2011-04-13T10:58:39Z<p>Zodmaner: /* Start program automatically after login to GNOME 3 */</p>
<hr />
<div>{{i18n|GNOME 3}}<br />
<br />
[[Category:Desktop environments (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{Article summary start}}<br />
{{Article summary text|GNOME 3 provides a modern desktop, rewritten from scratch, using the GTK3+.}}<br />
{{Article summary heading|Overview}}<br />
{{Article summary text|{{Graphical user interface overview}}}}<br />
{{Article summary end}}<br />
<br />
For GNOME 3, the GNOME Project has started from scratch and created a completely new, modern desktop designed for today's users and technologies. In GNOME 3:<br />
* There is a new default modern visual theme and font<br />
* The Activities view which provides an easy way to access all your windows and applications<br />
* Built-in (integrated) messaging desktop services<br />
* A more subtle notifications' system and a more discreet panel<br />
* A fast Activities' search feature<br />
* A new System Settings application <br />
* ... and more features like: window tiling (Aero Snap like), an improved Nautilus etc. <br />
<br />
[more details on the [http://www.gnome3.org/ GNOME3] website]<br />
<br />
== Introduction ==<br />
<br />
GNOME3 comes with '''two''' interfaces, '''gnome-shell''' (the new, standard layout) and '''fallback''' mode. gnome-session will automatically detect if your computer is capable to run gnome-shell and it would start the fallback mode if not. <br />
<br />
'''Fallback''' mode is very much alike the GNOME 2.x layout (while using gnome-panel and metacity, instead of gnome-shell and Mutter).<br />
<br />
If you are on fallback mode you can still change the window manager with your preferred one.<br />
<br />
== Upgrade from the current gnome 2.32 ==<br />
<br />
Enable '''testing''' repo. <br />
<br />
Edit /etc/pacman.conf and '''un'''comment testing.<br />
<br />
{{Warning|It's very important for the new repo to be on the '''top''', otherwise pacman will '''not''' upgrade GNOME}}<br />
<br />
#testing uncommented<br />
[testing]<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
<br />
{{Warning|The session might crash during update and is recommended running the update command in a screen session, from another DE or WM or from tty}}<br />
<br />
# pacman -Syu <br />
<br />
'''Important''': You will end up with a system that has GNOME 3.x '''fallback''' mode. To install the new shell:<br />
<br />
# pacman -S gnome-shell<br />
<br />
== Installing to a new system ==<br />
<br />
Enable testing in the same way as above.<br />
<br />
# pacman -Syu testing/gnome<br />
<br />
For additional applications<br />
<br />
# pacman -Syu testing/gnome-extra<br />
<br />
===Daemons and modules needed by GNOME===<br />
<br />
The GNOME desktop requires one daemon, '''DBUS''' for proper operation. <br />
<br />
To start the DBUS daemon:<br />
# /etc/rc.d/dbus start<br />
<br />
Or add these daemons to the '''DAEMONS''' array in {{Filename|/etc/[[rc.conf]]}} so they will start on boot up, e.g.:<br />
<br />
DAEMONS=(syslog-ng '''dbus''' network crond)<br />
<br />
'''GVFS''' allows the mounting of virtual file systems (e.g. file systems over FTP or SMB) to be used by other applications, including the GNOME file manager Nautilus. This is done with the use of '''FUSE''': a user space virtual file system layer kernel module.<br />
<br />
To load the FUSE kernel module:<br />
# modprobe fuse<br />
<br />
Or add the module to the '''MODULES''' array in {{Filename|/etc/rc.conf}} so they will load at boot up, e.g.:<br />
<br />
MODULES=('''fuse''' usblp)<br />
<br />
{{Note|FUSE is a kernel module, not a daemon.}}<br />
<br />
===Running GNOME===<br />
<br />
For a better desktop integration is recommended '''GDM'''.<br />
# pacman -S gdm<br />
<br />
Check out [[Display_Manager]] to learn how to start it correctly.<br />
<br />
If you prefer to start it from console, add the following line to your {{Filename|~/.xinitrc}} file, making sure it's the last line and the only one that starts with ''exec'' (see [[xinitrc]]):<br />
exec ck-launch-session gnome-session<br />
<br />
Now GNOME will start when you enter the following command:<br />
$ startx<br />
<br />
== Using the shell ==<br />
<br />
See https://live.gnome.org/GnomeShell/CheatSheet<br />
<br />
== Customization ==<br />
=== Using Gnome-tweak-tool ===<br />
<br />
# pacman -S gnome-tweak-tool<br />
<br />
This tool can customize fonts, themes, minimize & maximize buttons and some other useful settings like action when lid is closed.<br />
<br />
A good customization tutorial is http://blog.fpmurphy.com/2011/03/customizing-the-gnome-3-shell.html which explores the power of gsettings<br />
<br />
===GDM Wallpaper===<br />
<br />
# su - gdm -s /bin/bash<br />
$ dbus-launch<br />
<br />
This command will print DBUS_SESSION_BUS_ADDRESS and DBUS_SESSION_BUS_PID. We need to export them<br />
<br />
$ export DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-Jb433gMQHS,guid=fc14d4bf3d000e38276a5a2200000d38<br />
$ export DBUS_SESSION_BUS_PID=4283<br />
$ /usr/lib/dconf/dconf-service &<br />
$ GSETTINGS_BACKEND=dconf gsettings get org.gnome.desktop.background picture-uri<br />
$ GSETTINGS_BACKEND=dconf gsettings set org.gnome.desktop.background picture-uri "file:///usr/share/backgrounds/gnome/SundownDunes.jpg"<br />
$ GSETTINGS_BACKEND=dconf gsettings get org.gnome.desktop.background picture-uri<br />
<br />
=== Changing the GTK3 theme using settings.ini ===<br />
<br />
Similar to {{Filename|~/.gtkrc-2.0}} for GTK2+ it is possible to set the GTK3 (Gnome 3) theme via {{Filename|${XDG_CONFIG_HOME}/gtk-3.0/settings.ini}}. By default {{Filename|${XDG_CONFIG_HOME} }} is interpreted as {{Filename|~/.config}}.<br />
<br />
Example:<br />
<br />
[Settings]<br />
gtk-theme-name = Adwaita<br />
gtk-fallback-icon-theme = gnome<br />
gtk-application-prefer-dark-theme = true # applicable only if selected theme supports it<br />
<br />
It may be necessary to restart one's DE or WM for the settings to be applied.<br />
<br />
=== Start program automatically after login to GNOME 3 ===<br />
You can specify which program to start automatically after login using *gnome-session-properties* tool, which is a part of *gnome-session* package.<br />
$ gnome-session-properties<br />
<br />
=== Removing folders from the "Computer" section in Nautilus's Places sidebar ===<br />
<br />
The displayed folders are specified in {{Filename|~/.config/user-dirs.dirs}} and can altered with every editor. An execution of {{codeline|xdg-user-dirs-update}} will change them again, it may be hence be advisable to set the file permissions to read-only.<br />
<br />
=== Setting the default terminal via console ===<br />
<br />
{{codeline|gsettings}}, which replaces {{codeline|gconftool-2}} in Gnome 3, is used to set e. g. the default terminal manually. The setting is relevant for ''nautilus-open-terminal''.<br />
<br />
The commands for [[rxvt-unicode|urxvt]] run as daemon:<br />
<br />
gsettings set org.gnome.desktop.default-applications.terminal exec urxvtc<br />
gsettings set org.gnome.desktop.default-applications.terminal exec-arg "'-e'"<br />
<br />
== Enabling fallback mode==<br />
<br />
Your session would start automatically to fallback mode if gnome-shell is not present. If you want to enable it while having gnome-shell installed, open gnome-control-center. Open System Info > Graphics. Change ''Forced Fallback Mode'' to ''ON''.<br />
<br />
== Enabling hidden features ==<br />
<br />
Gnome 3.0 hides a lot of useful options and you have to use '''dconf-editor''' to customize them. <br />
<br />
== How to shutdown through the Status menu ==<br />
<br />
For now, the Shutdown option seems to be hidden if the user presses the Status menu on the upper right. If you want to shutdown your system through the Status menu, click on it and then press the '''Alt''' button. The "'''Suspend'''" option will instantly turn into "Power off...", as long as you press the Alt button, which will allow you to properly shutdown your system.<br />
<br />
== Enabling integrated messaging ==<br />
<br />
Empathy, the engine behind the integrated messaging, and all of the system settings based on your messaging accounts will not show up unless the '''telepathy''' group of packages or at least one of the backends ('''telepathy-gabble''', or '''telepathy-haze''', for example) is installed. These are not included in the default Arch GNOME installs and the Empathy interface doesn't give a nice error message, it just fails to work silently. You can install them:<br />
<br />
# pacman -S telepathy<br />
<br />
== Enabling extensions ==<br />
<br />
Gnome Shell can be customised to an extent with extensions that have been written by others. These provide functionality like having a dock that is always present, and being able to change the shell theme. More details on the functionality of currently available extensions is given [http://www.webupd8.org/2011/04/gnome-shell-extensions-additional.html here] You can use the [http://aur.archlinux.org/packages.php?ID=47501 gnome-shell-extensions-git] package in the AUR to install them. Restart Gnome to enable them.<br />
<br />
If installing the extensions causes Gnome to stop working then you must remove the user-theme extension and and the auto-move-windows extension from their installation directory (could be in ~/.local/share/gnome-shell/extensions or /usr/share/gnome-shell/extensions or /usr/local/share/gnome-shell/extensions). Removing or adding extensions to these directories will remove or install them form the system. More details on Gnome Shell extensions are available [https://live.gnome.org/GnomeShell/Extensions here].<br />
<br />
== Troubleshooting ==<br />
=== My GTK2+ apps show segfaults and won't start ===<br />
<br />
That usually happens when '''oxygen-gtk''' is installed. That theme conflicts somehow with GNOME 3's or/and GTK3 settings and when it has been set as a GTK2 theme, the GTK2 apps segfault with errors like:<br />
<br />
<pre> (firefox-bin:14345): GLib-GObject-WARNING **: invalid (NULL) pointer instance<br />
<br />
(firefox-bin:14345): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed<br />
<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_default_colormap: assertion `GDK_IS_SCREEN (screen)' failed<br />
<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_colormap_get_visual: assertion `GDK_IS_COLORMAP (colormap)' failed<br />
<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_default_colormap: assertion `GDK_IS_SCREEN (screen)' failed<br />
<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)' failed<br />
<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)' failed<br />
<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_window_new: assertion `GDK_IS_WINDOW (parent)' failed<br />
Segmentation fault<br />
</pre><br />
<br />
The current "workaround" is to '''remove''' '''oxygen-gtk''' from the system completely and set another theme for your apps.</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=GNOME&diff=137164GNOME2011-04-13T10:54:47Z<p>Zodmaner: /* Solution for missing "Startup Programs" tool */ change to use gnome-session-properties</p>
<hr />
<div>{{i18n|GNOME 3}}<br />
<br />
[[Category:Desktop environments (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{Article summary start}}<br />
{{Article summary text|GNOME 3 provides a modern desktop, rewritten from scratch, using the GTK3+.}}<br />
{{Article summary heading|Overview}}<br />
{{Article summary text|{{Graphical user interface overview}}}}<br />
{{Article summary end}}<br />
<br />
For GNOME 3, the GNOME Project has started from scratch and created a completely new, modern desktop designed for today's users and technologies. In GNOME 3:<br />
* There is a new default modern visual theme and font<br />
* The Activities view which provides an easy way to access all your windows and applications<br />
* Built-in (integrated) messaging desktop services<br />
* A more subtle notifications' system and a more discreet panel<br />
* A fast Activities' search feature<br />
* A new System Settings application <br />
* ... and more features like: window tiling (Aero Snap like), an improved Nautilus etc. <br />
<br />
[more details on the [http://www.gnome3.org/ GNOME3] website]<br />
<br />
== Introduction ==<br />
<br />
GNOME3 comes with '''two''' interfaces, '''gnome-shell''' (the new, standard layout) and '''fallback''' mode. gnome-session will automatically detect if your computer is capable to run gnome-shell and it would start the fallback mode if not. <br />
<br />
'''Fallback''' mode is very much alike the GNOME 2.x layout (while using gnome-panel and metacity, instead of gnome-shell and Mutter).<br />
<br />
If you are on fallback mode you can still change the window manager with your preferred one.<br />
<br />
== Upgrade from the current gnome 2.32 ==<br />
<br />
Enable '''testing''' repo. <br />
<br />
Edit /etc/pacman.conf and '''un'''comment testing.<br />
<br />
{{Warning|It's very important for the new repo to be on the '''top''', otherwise pacman will '''not''' upgrade GNOME}}<br />
<br />
#testing uncommented<br />
[testing]<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
<br />
{{Warning|The session might crash during update and is recommended running the update command in a screen session, from another DE or WM or from tty}}<br />
<br />
# pacman -Syu <br />
<br />
'''Important''': You will end up with a system that has GNOME 3.x '''fallback''' mode. To install the new shell:<br />
<br />
# pacman -S gnome-shell<br />
<br />
== Installing to a new system ==<br />
<br />
Enable testing in the same way as above.<br />
<br />
# pacman -Syu testing/gnome<br />
<br />
For additional applications<br />
<br />
# pacman -Syu testing/gnome-extra<br />
<br />
===Daemons and modules needed by GNOME===<br />
<br />
The GNOME desktop requires one daemon, '''DBUS''' for proper operation. <br />
<br />
To start the DBUS daemon:<br />
# /etc/rc.d/dbus start<br />
<br />
Or add these daemons to the '''DAEMONS''' array in {{Filename|/etc/[[rc.conf]]}} so they will start on boot up, e.g.:<br />
<br />
DAEMONS=(syslog-ng '''dbus''' network crond)<br />
<br />
'''GVFS''' allows the mounting of virtual file systems (e.g. file systems over FTP or SMB) to be used by other applications, including the GNOME file manager Nautilus. This is done with the use of '''FUSE''': a user space virtual file system layer kernel module.<br />
<br />
To load the FUSE kernel module:<br />
# modprobe fuse<br />
<br />
Or add the module to the '''MODULES''' array in {{Filename|/etc/rc.conf}} so they will load at boot up, e.g.:<br />
<br />
MODULES=('''fuse''' usblp)<br />
<br />
{{Note|FUSE is a kernel module, not a daemon.}}<br />
<br />
===Running GNOME===<br />
<br />
For a better desktop integration is recommended '''GDM'''.<br />
# pacman -S gdm<br />
<br />
Check out [[Display_Manager]] to learn how to start it correctly.<br />
<br />
If you prefer to start it from console, add the following line to your {{Filename|~/.xinitrc}} file, making sure it's the last line and the only one that starts with ''exec'' (see [[xinitrc]]):<br />
exec ck-launch-session gnome-session<br />
<br />
Now GNOME will start when you enter the following command:<br />
$ startx<br />
<br />
== Using the shell ==<br />
<br />
See https://live.gnome.org/GnomeShell/CheatSheet<br />
<br />
== Customization ==<br />
=== Using Gnome-tweak-tool ===<br />
<br />
# pacman -S gnome-tweak-tool<br />
<br />
This tool can customize fonts, themes, minimize & maximize buttons and some other useful settings like action when lid is closed.<br />
<br />
A good customization tutorial is http://blog.fpmurphy.com/2011/03/customizing-the-gnome-3-shell.html which explores the power of gsettings<br />
<br />
===GDM Wallpaper===<br />
<br />
# su - gdm -s /bin/bash<br />
$ dbus-launch<br />
<br />
This command will print DBUS_SESSION_BUS_ADDRESS and DBUS_SESSION_BUS_PID. We need to export them<br />
<br />
$ export DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-Jb433gMQHS,guid=fc14d4bf3d000e38276a5a2200000d38<br />
$ export DBUS_SESSION_BUS_PID=4283<br />
$ /usr/lib/dconf/dconf-service &<br />
$ GSETTINGS_BACKEND=dconf gsettings get org.gnome.desktop.background picture-uri<br />
$ GSETTINGS_BACKEND=dconf gsettings set org.gnome.desktop.background picture-uri "file:///usr/share/backgrounds/gnome/SundownDunes.jpg"<br />
$ GSETTINGS_BACKEND=dconf gsettings get org.gnome.desktop.background picture-uri<br />
<br />
=== Changing the GTK3 theme using settings.ini ===<br />
<br />
Similar to {{Filename|~/.gtkrc-2.0}} for GTK2+ it is possible to set the GTK3 (Gnome 3) theme via {{Filename|${XDG_CONFIG_HOME}/gtk-3.0/settings.ini}}. By default {{Filename|${XDG_CONFIG_HOME} }} is interpreted as {{Filename|~/.config}}.<br />
<br />
Example:<br />
<br />
[Settings]<br />
gtk-theme-name = Adwaita<br />
gtk-fallback-icon-theme = gnome<br />
gtk-application-prefer-dark-theme = true # applicable only if selected theme supports it<br />
<br />
It may be necessary to restart one's DE or WM for the settings to be applied.<br />
<br />
=== Start program automatically after login to GNOME 3 ===<br />
You can specify which program to start automatically after login using gnome-session-properties tool.<br />
$ gnome-session-properties<br />
<br />
=== Removing folders from the "Computer" section in Nautilus's Places sidebar ===<br />
<br />
The displayed folders are specified in {{Filename|~/.config/user-dirs.dirs}} and can altered with every editor. An execution of {{codeline|xdg-user-dirs-update}} will change them again, it may be hence be advisable to set the file permissions to read-only.<br />
<br />
=== Setting the default terminal via console ===<br />
<br />
{{codeline|gsettings}}, which replaces {{codeline|gconftool-2}} in Gnome 3, is used to set e. g. the default terminal manually. The setting is relevant for ''nautilus-open-terminal''.<br />
<br />
The commands for [[rxvt-unicode|urxvt]] run as daemon:<br />
<br />
gsettings set org.gnome.desktop.default-applications.terminal exec urxvtc<br />
gsettings set org.gnome.desktop.default-applications.terminal exec-arg "'-e'"<br />
<br />
== Enabling fallback mode==<br />
<br />
Your session would start automatically to fallback mode if gnome-shell is not present. If you want to enable it while having gnome-shell installed, open gnome-control-center. Open System Info > Graphics. Change ''Forced Fallback Mode'' to ''ON''.<br />
<br />
== Enabling hidden features ==<br />
<br />
Gnome 3.0 hides a lot of useful options and you have to use '''dconf-editor''' to customize them. <br />
<br />
== How to shutdown through the Status menu ==<br />
<br />
For now, the Shutdown option seems to be hidden if the user presses the Status menu on the upper right. If you want to shutdown your system through the Status menu, click on it and then press the '''Alt''' button. The "'''Suspend'''" option will instantly turn into "Power off...", as long as you press the Alt button, which will allow you to properly shutdown your system.<br />
<br />
== Enabling integrated messaging ==<br />
<br />
Empathy, the engine behind the integrated messaging, and all of the system settings based on your messaging accounts will not show up unless the '''telepathy''' group of packages or at least one of the backends ('''telepathy-gabble''', or '''telepathy-haze''', for example) is installed. These are not included in the default Arch GNOME installs and the Empathy interface doesn't give a nice error message, it just fails to work silently. You can install them:<br />
<br />
# pacman -S telepathy<br />
<br />
== Enabling extensions ==<br />
<br />
Gnome Shell can be customised to an extent with extensions that have been written by others. These provide functionality like having a dock that is always present, and being able to change the shell theme. More details on the functionality of currently available extensions is given [http://www.webupd8.org/2011/04/gnome-shell-extensions-additional.html here] You can use the [http://aur.archlinux.org/packages.php?ID=47501 gnome-shell-extensions-git] package in the AUR to install them. Restart Gnome to enable them.<br />
<br />
If installing the extensions causes Gnome to stop working then you must remove the user-theme extension and and the auto-move-windows extension from their installation directory (could be in ~/.local/share/gnome-shell/extensions or /usr/share/gnome-shell/extensions or /usr/local/share/gnome-shell/extensions). Removing or adding extensions to these directories will remove or install them form the system. More details on Gnome Shell extensions are available [https://live.gnome.org/GnomeShell/Extensions here].<br />
<br />
== Troubleshooting ==<br />
=== My GTK2+ apps show segfaults and won't start ===<br />
<br />
That usually happens when '''oxygen-gtk''' is installed. That theme conflicts somehow with GNOME 3's or/and GTK3 settings and when it has been set as a GTK2 theme, the GTK2 apps segfault with errors like:<br />
<br />
<pre> (firefox-bin:14345): GLib-GObject-WARNING **: invalid (NULL) pointer instance<br />
<br />
(firefox-bin:14345): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed<br />
<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_default_colormap: assertion `GDK_IS_SCREEN (screen)' failed<br />
<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_colormap_get_visual: assertion `GDK_IS_COLORMAP (colormap)' failed<br />
<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_default_colormap: assertion `GDK_IS_SCREEN (screen)' failed<br />
<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)' failed<br />
<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)' failed<br />
<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_window_new: assertion `GDK_IS_WINDOW (parent)' failed<br />
Segmentation fault<br />
</pre><br />
<br />
The current "workaround" is to '''remove''' '''oxygen-gtk''' from the system completely and set another theme for your apps.</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=Ext4&diff=127270Ext42011-01-08T12:18:47Z<p>Zodmaner: /* Migrating files to extents */</p>
<hr />
<div>[[Category:HOWTOs (English)]]<br />
[[Category:File systems (English)]]<br />
{{i18n|Ext4}}<br />
<br />
Ext4 is the evolution of the most used Linux filesystem, Ext3. In many ways, Ext4 is a deeper improvement over Ext3 than Ext3 was over Ext2. Ext3 was mostly about adding journaling to Ext2, but Ext4 modifies important data structures of the filesystem such as the ones destined to store the file data. The result is a filesystem with an improved design, better performance, reliability, and features.<br />
<br />
Source: [http://kernelnewbies.org/Ext4 Ext4 - Linux Kernel Newbies]<br />
<br />
==Creating ext4 Partitions From Scratch==<br />
<br />
# Upgrade your system: {{Codeline|pacman -Syu}}<br />
# Format the partition: {{Codeline|mkfs.ext4 /dev/sdxY}} (replace {{Codeline|sdxY}} with the device to format (e.g. {{Codeline|sda1}}))<br />
# Mount the partition<br />
# Add an entry to {{Filename|/etc/fstab}}, using the filesystem 'type' ext4<br />
<br />
{{Tip|See the mkfs.ext4 man page for more options; edit {{Filename|/etc/mke2fs.conf}} to view/configure default options.}}<br />
<br />
==Migrating From ext3 to ext4==<br />
<br />
There are two ways of migrating partitions from ext3 to ext4:<br />
* mounting ext3 partitions as ext4 without converting (compatibility)<br />
* converting ext3 partitions to ext4 (performance)<br />
<br />
These two approaches are described below.<br />
<br />
===Mounting ext3 Partitions as ext4 Without Converting===<br />
<br />
====Rationale====<br />
<br />
A compromise between fully converting to ext4 and simply remaining with ext3 is to mount existing ext3 partitions as ext4.<br />
<br />
'''Pros:'''<br />
* Compatibility (the filesystem can continue to be mounted as ext3) &ndash; This allows users to still read the filesystem from other distributions/operating systems without ext4 support (e.g. Windows with ext3 drivers)<br />
* Improved performance (though not as much as a fully-converted ext4 partition) &ndash; See [http://kernelnewbies.org/Ext4 Ext4 - Linux Kernel Newbies] for details<br />
<br />
'''Cons:'''<br />
* Fewer features of ext4 are used (only those that do not change the disk format such as multiblock allocation and delayed allocation)<br />
<br />
{{Note|Except for the relative novelty of ext4 (which can be seen as a risk), '''there is no major drawback to this technique'''.}}<br />
<br />
====Procedure====<br />
<br />
# Edit {{Filename|/etc/fstab}} and change the 'type' from ext3 to ext4 for any partitions you would like to mount as ext4.<br />
# Re-mount the affected partitions.<br />
# Done.<br />
<br />
===Converting ext3 Partitions to ext4===<br />
<br />
====Rationale====<br />
<br />
To experience the benefits of ext4, an irreversible conversion process must be completed.<br />
<br />
'''Pros:'''<br />
* Improved performance and new features &ndash; See [http://kernelnewbies.org/Ext4 Ext4 - Linux Kernel Newbies] for details<br />
<br />
'''Cons:'''<br />
* Read-only access from Windows can be provided by Ext2Explore, but there is currently no driver for writing data.<br />
* Irreversible (ext4 partitions cannot be 'downgraded' to ext3)<br />
<br />
====Prerequisites====<br />
<br />
The following software is required on the Arch Linux system:<br />
* {{Codeline|1=kernel26 >= 2.6.28}}<br />
* {{Codeline|1=e2fsprogs >= 1.41}}<br />
<br />
If converting one's /boot partition to ext4:<br />
* {{Codeline|1=grub >= 0.97}} (with ext4 patch)<br />
<br />
{{Note|The ext4 patch is included by default with Arch's GRUB package (at the time of writing, but this will likely not change). Otherwise, [[GRUB2]] is required for booting from an ext4 partition.}}<br />
<br />
{{Warning|Booting from an ext4 partition is not 'officially' supported by GRUB, and [[GRUB2]] is still under development. While GRUB does currently work, the 'safe' option is to boot from an ext2 or ext3 /boot partition. '''CONSIDER YOURSELF WARNED!}}<br />
<br />
If converting one's root (/) partition to ext4:<br />
* {{Codeline|1=mkinitcpio >= 0.5.20}}<br />
<br />
If converting one's root (/) partition to ext4, the following software is also needed on a bootable CD/USB drive:<br />
* {{Codeline|1=e2fsprogs >= 1.41}}<br />
<br />
{{Note|1=Using the latest Arch Linux release (2009.02) is recommended. Older Arch Linux images (<= 2008.06) ship with an older version of {{Codeline|e2fsprogs}}, but it is a simple matter to {{Codeline|pacman -S e2fsprogs}} from the live environment after setting up networking. Alternatively, [http://www.sysresccd.org/Download SystemRescueCd >= 1.1.4] contains an appropriate version, and is in itself a handy CD to have.}}<br />
<br />
====Procedure====<br />
<br />
These instructions were adapted from http://ext4.wiki.kernel.org/index.php/Ext4_Howto and http://bbs.archlinux.org/viewtopic.php?id=61602. They have been tested and confirmed by this author as of January 16, 2009.<br />
<br />
* '''UPGRADE!''' Perform a sysupgrade to ensure all required packages are up-to-date: {{Codeline|pacman -Syu}}<br />
* '''[[Backup programs|BACK-UP!]]''' Back-up all data on any ext3 partitions that are to be converted to ext4. Although ext4 is considered 'stable' for general use, it is still a relatively young and untested file system. Furthermore, this conversion process was only tested on a relatively simple setup; it is impossible to test each of the many possible configurations the user may be running.<br />
* Edit {{Filename|/etc/fstab}} and change the 'type' from ext3 to ext4 for any partitions that are to be converted to ext4.<br />
<br />
{{Warning|ext4 is backwards-compatible with ext3 until extents and other new fancy options are enabled. If the user has a partition that is shared with another OS that cannot yet read ext4 partitions, it is possible to mount said partition as ext4 in Arch and still be able to use it as ext3 elsewhere at this point... Not so after the next step! Note, however, that there are fewer benefits to using ext4 if the partition is not fully converted.}}<br />
<br />
* The conversion process with {{Codeline|e2fsprogs}} must be done when the drive is not mounted. If converting one's root (/) partition, the simplest way to achieve this is to boot from some other live medium, as described in the 'Prerequisites' section above.<br />
** Boot the live medium (if necessary).<br />
** For each partition to be converted to ext4:<br />
*** Ensure the partition is '''NOT''' mounted<br />
*** Run {{Codeline|tune2fs -O extents,uninit_bg,dir_index /dev/the_partition}} (where {{Codeline|/dev/the_partition}} is replaced by the path to the desired partition, such as {{Codeline|/dev/sda1}})<br />
*** Run {{Codeline|fsck -fDp /dev/the_partition}}<br />
<br />
{{Note|The user '''MUST''' fsck the filesystem, or it will be unreadable! This fsck run is needed to return the filesystem to a consistent state. '''It WILL find checksum errors in the group descriptors''' -- this is expected. The '-f' parameter asks fsck to force checking even if the file system seems clean. The '-p' parameter asks fsck to 'automatically repair' (otherwise, the user will be asked for input for each error).<br />
You may need to run fsck -f rather than fsck -fp.}}<br />
<br />
* Reboot Arch Linux!<br />
<br />
{{Warning|1=If the user converted their root (/) partition, a kernel panic may be encountered when attempting to boot. If this happens, simply reboot using the 'fallback' initial ramdisk and re-create the 'default' initial ramdisk: {{Codeline|mkinitcpio -p kernel26}}}}<br />
<br />
====Migrating files to extents====<br />
{{warning|Do '''NOT''' use the following method with Mercurial repository that have been cloned locally, as doing so will corrupt the repository. It might also corrupt other hard link in the filesystem.}}<br />
Even though the filesystem is now converted to ext4, all files that have been written before the conversion do not yet take advantage of the new ''extents'' of ext4, which will improve large file performance and reduce fragmentation and filesystem check time. In order to fully take advantage of ext4, all files would have to be rewritten on disk. A utility called ''e4defrag'' is being developed and will take care of this task ; however, it is not yet ready for production.<br />
<br />
Fortunately, it is possible to use the ''chattr'' program, which will cause the kernel to rewrite the file using extents. It is possible to run this command on all files and directories of one partition (e.g. if /home is on a dedicated partition):<br />
(Must be run as root)<br />
find /home -xdev -type f -print0 | xargs -0 chattr +e<br />
find /home -xdev -type d -print0 | xargs -0 chattr +e<br />
It is recommended to test this command on a small number of files first, and check if everything is going all right. It may also be useful to check the filesystem after conversion.<br />
<br />
Using the ''lsattr'' command, it is possible to check that files are now using ''extents''. The letter 'e' should appear in the attribute list of the listed files.<br />
<br />
==Troubleshooting==<br />
<br />
===Kernel Panic===<br />
One problem this author encountered was a kernel panic after converting the root (/) partition to ext4. This is because the initial ramdisk was detecting the partition as 'ext4dev', rather than 'ext4'. It was a simple matter to boot with the 'fallback' initial ramdisk and re-create the 'default' initial ramdisk :<br />
* Remount the root partition in read-write mode; assuming 'XXX' is your root partition :<br />
# mount /dev/XXX / -o remount,rw<br />
* Manually mount the boot partition on /boot if it is on a separate partition.<br />
* Re-create the ramdisk :<br />
# mkinitcpio -p kernel26<br />
<br />
During the creation process, {{Codeline|mkinitcpio}} correctly detected and included ext4 modules in the initial ramdisk.<br />
<br />
===GRUB Error 13===<br />
After a recent kernel update, this author encountered a GRUB error while attempting to boot from an ext4 /boot partition:<br />
Error 13: Invalid or unsupported executable format<br />
<br />
The solution is to boot from the live medium and chroot into the Arch Linux installation:<br />
# mkdir /mnt/arch<br />
# mount -t ext4 /dev/sda1 /mnt/arch<br />
# mount -t proc proc /mnt/arch/proc<br />
# mount -t sysfs sys /mnt/arch/sys<br />
# mount -o bind /dev /mnt/arch/dev<br />
<br />
# chroot /mnt/arch /bin/bash<br />
<br />
If /boot is on a separate partition, this partition must also be mounted:<br />
# mount -t ext4 /dev/sda2 /boot<br />
<br />
Then, the following command should resolve the issue. (Does anyone know why?):<br />
# grub-install --recheck /dev/sda<br />
<br />
===Data Corruption===<br />
Some early adopters of ext4 encountered data corruption after a hard reboot. Please read [http://www.h-online.com/open/Ext4-data-loss-explanations-and-workarounds--/news/112892 Ext4 data loss; explanations and workarounds] for more information.<br />
<br />
Since kernel 2.6.30, ext4 is considered "safe(er)." Several patches improved the robustness of ext4 - albeit at a slight performance cost. A new mount option ({{Codeline|auto_da_alloc}}) can be used to disable this behavior. For more information, please read [http://kernelnewbies.org/Linux_2_6_30#head-329ba44b44a7f58c98ae22b8f2730418cdd6630d Linux 2 6 30 - Filesystems performance improvements].<br />
<br />
For kernel versions earlier than 2.6.30, consider adding {{Codeline|1=rootflags=data=ordered}} to the {{Codeline|kernel}} line in GRUB's {{Filename|menu.lst}} as a preventative measure.<br />
<br />
===Improving performance===<br />
Since kernel 2.6.30, ext4 performance has decreased due to changes that serve to improve data integrity.[http://www.phoronix.com/scan.php?page=article&item=ext4_then_now&num=1] Users can improve performance with the {{Codeline|nobarrier}} option when mounting the disk, but '''this can be dangerous''' and may result in data loss or corruption after power failures. To turn barriers off, add the option {{Codeline|1=barrier=0}} to the desired filesystem in {{Filename|/etc/fstab}}. For example:<br />
<br />
# /dev/sda5 / ext4 noatime,barrier=0 0 1</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=Ext4&diff=127205Ext42011-01-08T06:00:22Z<p>Zodmaner: /* Migrating files to extents */</p>
<hr />
<div>[[Category:HOWTOs (English)]]<br />
[[Category:File systems (English)]]<br />
{{i18n|Ext4}}<br />
<br />
Ext4 is the evolution of the most used Linux filesystem, Ext3. In many ways, Ext4 is a deeper improvement over Ext3 than Ext3 was over Ext2. Ext3 was mostly about adding journaling to Ext2, but Ext4 modifies important data structures of the filesystem such as the ones destined to store the file data. The result is a filesystem with an improved design, better performance, reliability, and features.<br />
<br />
Source: [http://kernelnewbies.org/Ext4 Ext4 - Linux Kernel Newbies]<br />
<br />
==Creating ext4 Partitions From Scratch==<br />
<br />
# Upgrade your system: {{Codeline|pacman -Syu}}<br />
# Format the partition: {{Codeline|mkfs.ext4 /dev/sdxY}} (replace {{Codeline|sdxY}} with the device to format (e.g. {{Codeline|sda1}}))<br />
# Mount the partition<br />
# Add an entry to {{Filename|/etc/fstab}}, using the filesystem 'type' ext4<br />
<br />
{{Tip|See the mkfs.ext4 man page for more options; edit {{Filename|/etc/mke2fs.conf}} to view/configure default options.}}<br />
<br />
==Migrating From ext3 to ext4==<br />
<br />
There are two ways of migrating partitions from ext3 to ext4:<br />
* mounting ext3 partitions as ext4 without converting (compatibility)<br />
* converting ext3 partitions to ext4 (performance)<br />
<br />
These two approaches are described below.<br />
<br />
===Mounting ext3 Partitions as ext4 Without Converting===<br />
<br />
====Rationale====<br />
<br />
A compromise between fully converting to ext4 and simply remaining with ext3 is to mount existing ext3 partitions as ext4.<br />
<br />
'''Pros:'''<br />
* Compatibility (the filesystem can continue to be mounted as ext3) &ndash; This allows users to still read the filesystem from other distributions/operating systems without ext4 support (e.g. Windows with ext3 drivers)<br />
* Improved performance (though not as much as a fully-converted ext4 partition) &ndash; See [http://kernelnewbies.org/Ext4 Ext4 - Linux Kernel Newbies] for details<br />
<br />
'''Cons:'''<br />
* Fewer features of ext4 are used (only those that do not change the disk format such as multiblock allocation and delayed allocation)<br />
<br />
{{Note|Except for the relative novelty of ext4 (which can be seen as a risk), '''there is no major drawback to this technique'''.}}<br />
<br />
====Procedure====<br />
<br />
# Edit {{Filename|/etc/fstab}} and change the 'type' from ext3 to ext4 for any partitions you would like to mount as ext4.<br />
# Re-mount the affected partitions.<br />
# Done.<br />
<br />
===Converting ext3 Partitions to ext4===<br />
<br />
====Rationale====<br />
<br />
To experience the benefits of ext4, an irreversible conversion process must be completed.<br />
<br />
'''Pros:'''<br />
* Improved performance and new features &ndash; See [http://kernelnewbies.org/Ext4 Ext4 - Linux Kernel Newbies] for details<br />
<br />
'''Cons:'''<br />
* Read-only access from Windows can be provided by Ext2Explore, but there is currently no driver for writing data.<br />
* Irreversible (ext4 partitions cannot be 'downgraded' to ext3)<br />
<br />
====Prerequisites====<br />
<br />
The following software is required on the Arch Linux system:<br />
* {{Codeline|1=kernel26 >= 2.6.28}}<br />
* {{Codeline|1=e2fsprogs >= 1.41}}<br />
<br />
If converting one's /boot partition to ext4:<br />
* {{Codeline|1=grub >= 0.97}} (with ext4 patch)<br />
<br />
{{Note|The ext4 patch is included by default with Arch's GRUB package (at the time of writing, but this will likely not change). Otherwise, [[GRUB2]] is required for booting from an ext4 partition.}}<br />
<br />
{{Warning|Booting from an ext4 partition is not 'officially' supported by GRUB, and [[GRUB2]] is still under development. While GRUB does currently work, the 'safe' option is to boot from an ext2 or ext3 /boot partition. '''CONSIDER YOURSELF WARNED!}}<br />
<br />
If converting one's root (/) partition to ext4:<br />
* {{Codeline|1=mkinitcpio >= 0.5.20}}<br />
<br />
If converting one's root (/) partition to ext4, the following software is also needed on a bootable CD/USB drive:<br />
* {{Codeline|1=e2fsprogs >= 1.41}}<br />
<br />
{{Note|1=Using the latest Arch Linux release (2009.02) is recommended. Older Arch Linux images (<= 2008.06) ship with an older version of {{Codeline|e2fsprogs}}, but it is a simple matter to {{Codeline|pacman -S e2fsprogs}} from the live environment after setting up networking. Alternatively, [http://www.sysresccd.org/Download SystemRescueCd >= 1.1.4] contains an appropriate version, and is in itself a handy CD to have.}}<br />
<br />
====Procedure====<br />
<br />
These instructions were adapted from http://ext4.wiki.kernel.org/index.php/Ext4_Howto and http://bbs.archlinux.org/viewtopic.php?id=61602. They have been tested and confirmed by this author as of January 16, 2009.<br />
<br />
* '''UPGRADE!''' Perform a sysupgrade to ensure all required packages are up-to-date: {{Codeline|pacman -Syu}}<br />
* '''[[Backup programs|BACK-UP!]]''' Back-up all data on any ext3 partitions that are to be converted to ext4. Although ext4 is considered 'stable' for general use, it is still a relatively young and untested file system. Furthermore, this conversion process was only tested on a relatively simple setup; it is impossible to test each of the many possible configurations the user may be running.<br />
* Edit {{Filename|/etc/fstab}} and change the 'type' from ext3 to ext4 for any partitions that are to be converted to ext4.<br />
<br />
{{Warning|ext4 is backwards-compatible with ext3 until extents and other new fancy options are enabled. If the user has a partition that is shared with another OS that cannot yet read ext4 partitions, it is possible to mount said partition as ext4 in Arch and still be able to use it as ext3 elsewhere at this point... Not so after the next step! Note, however, that there are fewer benefits to using ext4 if the partition is not fully converted.}}<br />
<br />
* The conversion process with {{Codeline|e2fsprogs}} must be done when the drive is not mounted. If converting one's root (/) partition, the simplest way to achieve this is to boot from some other live medium, as described in the 'Prerequisites' section above.<br />
** Boot the live medium (if necessary).<br />
** For each partition to be converted to ext4:<br />
*** Ensure the partition is '''NOT''' mounted<br />
*** Run {{Codeline|tune2fs -O extents,uninit_bg,dir_index /dev/the_partition}} (where {{Codeline|/dev/the_partition}} is replaced by the path to the desired partition, such as {{Codeline|/dev/sda1}})<br />
*** Run {{Codeline|fsck -fDp /dev/the_partition}}<br />
<br />
{{Note|The user '''MUST''' fsck the filesystem, or it will be unreadable! This fsck run is needed to return the filesystem to a consistent state. '''It WILL find checksum errors in the group descriptors''' -- this is expected. The '-f' parameter asks fsck to force checking even if the file system seems clean. The '-p' parameter asks fsck to 'automatically repair' (otherwise, the user will be asked for input for each error).<br />
You may need to run fsck -f rather than fsck -fp.}}<br />
<br />
* Reboot Arch Linux!<br />
<br />
{{Warning|1=If the user converted their root (/) partition, a kernel panic may be encountered when attempting to boot. If this happens, simply reboot using the 'fallback' initial ramdisk and re-create the 'default' initial ramdisk: {{Codeline|mkinitcpio -p kernel26}}}}<br />
<br />
====Migrating files to extents====<br />
{{warning|Do '''NOT''' use the following method with Mercurial repository that have been cloned locally, as doing so will corrupt the repository. It method might also corrupt other hard link in the filesystem.}}<br />
Even though the filesystem is now converted to ext4, all files that have been written before the conversion do not yet take advantage of the new ''extents'' of ext4, which will improve large file performance and reduce fragmentation and filesystem check time. In order to fully take advantage of ext4, all files would have to be rewritten on disk. A utility called ''e4defrag'' is being developed and will take care of this task ; however, it is not yet ready for production.<br />
<br />
Fortunately, it is possible to use the ''chattr'' program, which will cause the kernel to rewrite the file using extents. It is possible to run this command on all files and directories of one partition (e.g. if /home is on a dedicated partition):<br />
(Must be run as root)<br />
find /home -xdev -type f -print0 | xargs -0 chattr +e<br />
find /home -xdev -type d -print0 | xargs -0 chattr +e<br />
It is recommended to test this command on a small number of files first, and check if everything is going all right. It may also be useful to check the filesystem after conversion.<br />
<br />
Using the ''lsattr'' command, it is possible to check that files are now using ''extents''. The letter 'e' should appear in the attribute list of the listed files.<br />
<br />
==Troubleshooting==<br />
<br />
===Kernel Panic===<br />
One problem this author encountered was a kernel panic after converting the root (/) partition to ext4. This is because the initial ramdisk was detecting the partition as 'ext4dev', rather than 'ext4'. It was a simple matter to boot with the 'fallback' initial ramdisk and re-create the 'default' initial ramdisk :<br />
* Remount the root partition in read-write mode; assuming 'XXX' is your root partition :<br />
# mount /dev/XXX / -o remount,rw<br />
* Manually mount the boot partition on /boot if it is on a separate partition.<br />
* Re-create the ramdisk :<br />
# mkinitcpio -p kernel26<br />
<br />
During the creation process, {{Codeline|mkinitcpio}} correctly detected and included ext4 modules in the initial ramdisk.<br />
<br />
===GRUB Error 13===<br />
After a recent kernel update, this author encountered a GRUB error while attempting to boot from an ext4 /boot partition:<br />
Error 13: Invalid or unsupported executable format<br />
<br />
The solution is to boot from the live medium and chroot into the Arch Linux installation:<br />
# mkdir /mnt/arch<br />
# mount -t ext4 /dev/sda1 /mnt/arch<br />
# mount -t proc proc /mnt/arch/proc<br />
# mount -t sysfs sys /mnt/arch/sys<br />
# mount -o bind /dev /mnt/arch/dev<br />
<br />
# chroot /mnt/arch /bin/bash<br />
<br />
If /boot is on a separate partition, this partition must also be mounted:<br />
# mount -t ext4 /dev/sda2 /boot<br />
<br />
Then, the following command should resolve the issue. (Does anyone know why?):<br />
# grub-install --recheck /dev/sda<br />
<br />
===Data Corruption===<br />
Some early adopters of ext4 encountered data corruption after a hard reboot. Please read [http://www.h-online.com/open/Ext4-data-loss-explanations-and-workarounds--/news/112892 Ext4 data loss; explanations and workarounds] for more information.<br />
<br />
Since kernel 2.6.30, ext4 is considered "safe(er)." Several patches improved the robustness of ext4 - albeit at a slight performance cost. A new mount option ({{Codeline|auto_da_alloc}}) can be used to disable this behavior. For more information, please read [http://kernelnewbies.org/Linux_2_6_30#head-329ba44b44a7f58c98ae22b8f2730418cdd6630d Linux 2 6 30 - Filesystems performance improvements].<br />
<br />
For kernel versions earlier than 2.6.30, consider adding {{Codeline|1=rootflags=data=ordered}} to the {{Codeline|kernel}} line in GRUB's {{Filename|menu.lst}} as a preventative measure.<br />
<br />
===Improving performance===<br />
Since kernel 2.6.30, ext4 performance has decreased due to changes that serve to improve data integrity.[http://www.phoronix.com/scan.php?page=article&item=ext4_then_now&num=1] Users can improve performance with the {{Codeline|nobarrier}} option when mounting the disk, but '''this can be dangerous''' and may result in data loss or corruption after power failures. To turn barriers off, add the option {{Codeline|1=barrier=0}} to the desired filesystem in {{Filename|/etc/fstab}}. For example:<br />
<br />
# /dev/sda5 / ext4 noatime,barrier=0 0 1</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=Ext4&diff=127190Ext42011-01-07T23:42:17Z<p>Zodmaner: /* Migrating files to extents */</p>
<hr />
<div>[[Category:HOWTOs (English)]]<br />
[[Category:File systems (English)]]<br />
{{i18n|Ext4}}<br />
<br />
Ext4 is the evolution of the most used Linux filesystem, Ext3. In many ways, Ext4 is a deeper improvement over Ext3 than Ext3 was over Ext2. Ext3 was mostly about adding journaling to Ext2, but Ext4 modifies important data structures of the filesystem such as the ones destined to store the file data. The result is a filesystem with an improved design, better performance, reliability, and features.<br />
<br />
Source: [http://kernelnewbies.org/Ext4 Ext4 - Linux Kernel Newbies]<br />
<br />
==Creating ext4 Partitions From Scratch==<br />
<br />
# Upgrade your system: {{Codeline|pacman -Syu}}<br />
# Format the partition: {{Codeline|mkfs.ext4 /dev/sdxY}} (replace {{Codeline|sdxY}} with the device to format (e.g. {{Codeline|sda1}}))<br />
# Mount the partition<br />
# Add an entry to {{Filename|/etc/fstab}}, using the filesystem 'type' ext4<br />
<br />
{{Tip|See the mkfs.ext4 man page for more options; edit {{Filename|/etc/mke2fs.conf}} to view/configure default options.}}<br />
<br />
==Migrating From ext3 to ext4==<br />
<br />
There are two ways of migrating partitions from ext3 to ext4:<br />
* mounting ext3 partitions as ext4 without converting (compatibility)<br />
* converting ext3 partitions to ext4 (performance)<br />
<br />
These two approaches are described below.<br />
<br />
===Mounting ext3 Partitions as ext4 Without Converting===<br />
<br />
====Rationale====<br />
<br />
A compromise between fully converting to ext4 and simply remaining with ext3 is to mount existing ext3 partitions as ext4.<br />
<br />
'''Pros:'''<br />
* Compatibility (the filesystem can continue to be mounted as ext3) &ndash; This allows users to still read the filesystem from other distributions/operating systems without ext4 support (e.g. Windows with ext3 drivers)<br />
* Improved performance (though not as much as a fully-converted ext4 partition) &ndash; See [http://kernelnewbies.org/Ext4 Ext4 - Linux Kernel Newbies] for details<br />
<br />
'''Cons:'''<br />
* Fewer features of ext4 are used (only those that do not change the disk format such as multiblock allocation and delayed allocation)<br />
<br />
{{Note|Except for the relative novelty of ext4 (which can be seen as a risk), '''there is no major drawback to this technique'''.}}<br />
<br />
====Procedure====<br />
<br />
# Edit {{Filename|/etc/fstab}} and change the 'type' from ext3 to ext4 for any partitions you would like to mount as ext4.<br />
# Re-mount the affected partitions.<br />
# Done.<br />
<br />
===Converting ext3 Partitions to ext4===<br />
<br />
====Rationale====<br />
<br />
To experience the benefits of ext4, an irreversible conversion process must be completed.<br />
<br />
'''Pros:'''<br />
* Improved performance and new features &ndash; See [http://kernelnewbies.org/Ext4 Ext4 - Linux Kernel Newbies] for details<br />
<br />
'''Cons:'''<br />
* Read-only access from Windows can be provided by Ext2Explore, but there is currently no driver for writing data.<br />
* Irreversible (ext4 partitions cannot be 'downgraded' to ext3)<br />
<br />
====Prerequisites====<br />
<br />
The following software is required on the Arch Linux system:<br />
* {{Codeline|1=kernel26 >= 2.6.28}}<br />
* {{Codeline|1=e2fsprogs >= 1.41}}<br />
<br />
If converting one's /boot partition to ext4:<br />
* {{Codeline|1=grub >= 0.97}} (with ext4 patch)<br />
<br />
{{Note|The ext4 patch is included by default with Arch's GRUB package (at the time of writing, but this will likely not change). Otherwise, [[GRUB2]] is required for booting from an ext4 partition.}}<br />
<br />
{{Warning|Booting from an ext4 partition is not 'officially' supported by GRUB, and [[GRUB2]] is still under development. While GRUB does currently work, the 'safe' option is to boot from an ext2 or ext3 /boot partition. '''CONSIDER YOURSELF WARNED!}}<br />
<br />
If converting one's root (/) partition to ext4:<br />
* {{Codeline|1=mkinitcpio >= 0.5.20}}<br />
<br />
If converting one's root (/) partition to ext4, the following software is also needed on a bootable CD/USB drive:<br />
* {{Codeline|1=e2fsprogs >= 1.41}}<br />
<br />
{{Note|1=Using the latest Arch Linux release (2009.02) is recommended. Older Arch Linux images (<= 2008.06) ship with an older version of {{Codeline|e2fsprogs}}, but it is a simple matter to {{Codeline|pacman -S e2fsprogs}} from the live environment after setting up networking. Alternatively, [http://www.sysresccd.org/Download SystemRescueCd >= 1.1.4] contains an appropriate version, and is in itself a handy CD to have.}}<br />
<br />
====Procedure====<br />
<br />
These instructions were adapted from http://ext4.wiki.kernel.org/index.php/Ext4_Howto and http://bbs.archlinux.org/viewtopic.php?id=61602. They have been tested and confirmed by this author as of January 16, 2009.<br />
<br />
* '''UPGRADE!''' Perform a sysupgrade to ensure all required packages are up-to-date: {{Codeline|pacman -Syu}}<br />
* '''[[Backup programs|BACK-UP!]]''' Back-up all data on any ext3 partitions that are to be converted to ext4. Although ext4 is considered 'stable' for general use, it is still a relatively young and untested file system. Furthermore, this conversion process was only tested on a relatively simple setup; it is impossible to test each of the many possible configurations the user may be running.<br />
* Edit {{Filename|/etc/fstab}} and change the 'type' from ext3 to ext4 for any partitions that are to be converted to ext4.<br />
<br />
{{Warning|ext4 is backwards-compatible with ext3 until extents and other new fancy options are enabled. If the user has a partition that is shared with another OS that cannot yet read ext4 partitions, it is possible to mount said partition as ext4 in Arch and still be able to use it as ext3 elsewhere at this point... Not so after the next step! Note, however, that there are fewer benefits to using ext4 if the partition is not fully converted.}}<br />
<br />
* The conversion process with {{Codeline|e2fsprogs}} must be done when the drive is not mounted. If converting one's root (/) partition, the simplest way to achieve this is to boot from some other live medium, as described in the 'Prerequisites' section above.<br />
** Boot the live medium (if necessary).<br />
** For each partition to be converted to ext4:<br />
*** Ensure the partition is '''NOT''' mounted<br />
*** Run {{Codeline|tune2fs -O extents,uninit_bg,dir_index /dev/the_partition}} (where {{Codeline|/dev/the_partition}} is replaced by the path to the desired partition, such as {{Codeline|/dev/sda1}})<br />
*** Run {{Codeline|fsck -fDp /dev/the_partition}}<br />
<br />
{{Note|The user '''MUST''' fsck the filesystem, or it will be unreadable! This fsck run is needed to return the filesystem to a consistent state. '''It WILL find checksum errors in the group descriptors''' -- this is expected. The '-f' parameter asks fsck to force checking even if the file system seems clean. The '-p' parameter asks fsck to 'automatically repair' (otherwise, the user will be asked for input for each error).<br />
You may need to run fsck -f rather than fsck -fp.}}<br />
<br />
* Reboot Arch Linux!<br />
<br />
{{Warning|1=If the user converted their root (/) partition, a kernel panic may be encountered when attempting to boot. If this happens, simply reboot using the 'fallback' initial ramdisk and re-create the 'default' initial ramdisk: {{Codeline|mkinitcpio -p kernel26}}}}<br />
<br />
====Migrating files to extents====<br />
{{warning|Do '''NOT''' use the following method with Mercurial repository that have been cloned locally, as doing so will corrupted the repository. The following method might also corrupt hard linked file in general.}}<br />
Even though the filesystem is now converted to ext4, all files that have been written before the conversion do not yet take advantage of the new ''extents'' of ext4, which will improve large file performance and reduce fragmentation and filesystem check time. In order to fully take advantage of ext4, all files would have to be rewritten on disk. A utility called ''e4defrag'' is being developed and will take care of this task ; however, it is not yet ready for production.<br />
<br />
Fortunately, it is possible to use the ''chattr'' program, which will cause the kernel to rewrite the file using extents. It is possible to run this command on all files and directories of one partition (e.g. if /home is on a dedicated partition):<br />
(Must be run as root)<br />
find /home -xdev -type f -print0 | xargs -0 chattr +e<br />
find /home -xdev -type d -print0 | xargs -0 chattr +e<br />
It is recommended to test this command on a small number of files first, and check if everything is going all right. It may also be useful to check the filesystem after conversion.<br />
<br />
Using the ''lsattr'' command, it is possible to check that files are now using ''extents''. The letter 'e' should appear in the attribute list of the listed files.<br />
<br />
==Troubleshooting==<br />
<br />
===Kernel Panic===<br />
One problem this author encountered was a kernel panic after converting the root (/) partition to ext4. This is because the initial ramdisk was detecting the partition as 'ext4dev', rather than 'ext4'. It was a simple matter to boot with the 'fallback' initial ramdisk and re-create the 'default' initial ramdisk :<br />
* Remount the root partition in read-write mode; assuming 'XXX' is your root partition :<br />
# mount /dev/XXX / -o remount,rw<br />
* Manually mount the boot partition on /boot if it is on a separate partition.<br />
* Re-create the ramdisk :<br />
# mkinitcpio -p kernel26<br />
<br />
During the creation process, {{Codeline|mkinitcpio}} correctly detected and included ext4 modules in the initial ramdisk.<br />
<br />
===GRUB Error 13===<br />
After a recent kernel update, this author encountered a GRUB error while attempting to boot from an ext4 /boot partition:<br />
Error 13: Invalid or unsupported executable format<br />
<br />
The solution is to boot from the live medium and chroot into the Arch Linux installation:<br />
# mkdir /mnt/arch<br />
# mount -t ext4 /dev/sda1 /mnt/arch<br />
# mount -t proc proc /mnt/arch/proc<br />
# mount -t sysfs sys /mnt/arch/sys<br />
# mount -o bind /dev /mnt/arch/dev<br />
<br />
# chroot /mnt/arch /bin/bash<br />
<br />
If /boot is on a separate partition, this partition must also be mounted:<br />
# mount -t ext4 /dev/sda2 /boot<br />
<br />
Then, the following command should resolve the issue. (Does anyone know why?):<br />
# grub-install --recheck /dev/sda<br />
<br />
===Data Corruption===<br />
Some early adopters of ext4 encountered data corruption after a hard reboot. Please read [http://www.h-online.com/open/Ext4-data-loss-explanations-and-workarounds--/news/112892 Ext4 data loss; explanations and workarounds] for more information.<br />
<br />
Since kernel 2.6.30, ext4 is considered "safe(er)." Several patches improved the robustness of ext4 - albeit at a slight performance cost. A new mount option ({{Codeline|auto_da_alloc}}) can be used to disable this behavior. For more information, please read [http://kernelnewbies.org/Linux_2_6_30#head-329ba44b44a7f58c98ae22b8f2730418cdd6630d Linux 2 6 30 - Filesystems performance improvements].<br />
<br />
For kernel versions earlier than 2.6.30, consider adding {{Codeline|1=rootflags=data=ordered}} to the {{Codeline|kernel}} line in GRUB's {{Filename|menu.lst}} as a preventative measure.<br />
<br />
===Improving performance===<br />
Since kernel 2.6.30, ext4 performance has decreased due to changes that serve to improve data integrity.[http://www.phoronix.com/scan.php?page=article&item=ext4_then_now&num=1] Users can improve performance with the {{Codeline|nobarrier}} option when mounting the disk, but '''this can be dangerous''' and may result in data loss or corruption after power failures. To turn barriers off, add the option {{Codeline|1=barrier=0}} to the desired filesystem in {{Filename|/etc/fstab}}. For example:<br />
<br />
# /dev/sda5 / ext4 noatime,barrier=0 0 1</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=Ext4&diff=127189Ext42011-01-07T23:41:55Z<p>Zodmaner: /* Migrating files to extents */ add warning when using chattr to migrate file to extent</p>
<hr />
<div>[[Category:HOWTOs (English)]]<br />
[[Category:File systems (English)]]<br />
{{i18n|Ext4}}<br />
<br />
Ext4 is the evolution of the most used Linux filesystem, Ext3. In many ways, Ext4 is a deeper improvement over Ext3 than Ext3 was over Ext2. Ext3 was mostly about adding journaling to Ext2, but Ext4 modifies important data structures of the filesystem such as the ones destined to store the file data. The result is a filesystem with an improved design, better performance, reliability, and features.<br />
<br />
Source: [http://kernelnewbies.org/Ext4 Ext4 - Linux Kernel Newbies]<br />
<br />
==Creating ext4 Partitions From Scratch==<br />
<br />
# Upgrade your system: {{Codeline|pacman -Syu}}<br />
# Format the partition: {{Codeline|mkfs.ext4 /dev/sdxY}} (replace {{Codeline|sdxY}} with the device to format (e.g. {{Codeline|sda1}}))<br />
# Mount the partition<br />
# Add an entry to {{Filename|/etc/fstab}}, using the filesystem 'type' ext4<br />
<br />
{{Tip|See the mkfs.ext4 man page for more options; edit {{Filename|/etc/mke2fs.conf}} to view/configure default options.}}<br />
<br />
==Migrating From ext3 to ext4==<br />
<br />
There are two ways of migrating partitions from ext3 to ext4:<br />
* mounting ext3 partitions as ext4 without converting (compatibility)<br />
* converting ext3 partitions to ext4 (performance)<br />
<br />
These two approaches are described below.<br />
<br />
===Mounting ext3 Partitions as ext4 Without Converting===<br />
<br />
====Rationale====<br />
<br />
A compromise between fully converting to ext4 and simply remaining with ext3 is to mount existing ext3 partitions as ext4.<br />
<br />
'''Pros:'''<br />
* Compatibility (the filesystem can continue to be mounted as ext3) &ndash; This allows users to still read the filesystem from other distributions/operating systems without ext4 support (e.g. Windows with ext3 drivers)<br />
* Improved performance (though not as much as a fully-converted ext4 partition) &ndash; See [http://kernelnewbies.org/Ext4 Ext4 - Linux Kernel Newbies] for details<br />
<br />
'''Cons:'''<br />
* Fewer features of ext4 are used (only those that do not change the disk format such as multiblock allocation and delayed allocation)<br />
<br />
{{Note|Except for the relative novelty of ext4 (which can be seen as a risk), '''there is no major drawback to this technique'''.}}<br />
<br />
====Procedure====<br />
<br />
# Edit {{Filename|/etc/fstab}} and change the 'type' from ext3 to ext4 for any partitions you would like to mount as ext4.<br />
# Re-mount the affected partitions.<br />
# Done.<br />
<br />
===Converting ext3 Partitions to ext4===<br />
<br />
====Rationale====<br />
<br />
To experience the benefits of ext4, an irreversible conversion process must be completed.<br />
<br />
'''Pros:'''<br />
* Improved performance and new features &ndash; See [http://kernelnewbies.org/Ext4 Ext4 - Linux Kernel Newbies] for details<br />
<br />
'''Cons:'''<br />
* Read-only access from Windows can be provided by Ext2Explore, but there is currently no driver for writing data.<br />
* Irreversible (ext4 partitions cannot be 'downgraded' to ext3)<br />
<br />
====Prerequisites====<br />
<br />
The following software is required on the Arch Linux system:<br />
* {{Codeline|1=kernel26 >= 2.6.28}}<br />
* {{Codeline|1=e2fsprogs >= 1.41}}<br />
<br />
If converting one's /boot partition to ext4:<br />
* {{Codeline|1=grub >= 0.97}} (with ext4 patch)<br />
<br />
{{Note|The ext4 patch is included by default with Arch's GRUB package (at the time of writing, but this will likely not change). Otherwise, [[GRUB2]] is required for booting from an ext4 partition.}}<br />
<br />
{{Warning|Booting from an ext4 partition is not 'officially' supported by GRUB, and [[GRUB2]] is still under development. While GRUB does currently work, the 'safe' option is to boot from an ext2 or ext3 /boot partition. '''CONSIDER YOURSELF WARNED!}}<br />
<br />
If converting one's root (/) partition to ext4:<br />
* {{Codeline|1=mkinitcpio >= 0.5.20}}<br />
<br />
If converting one's root (/) partition to ext4, the following software is also needed on a bootable CD/USB drive:<br />
* {{Codeline|1=e2fsprogs >= 1.41}}<br />
<br />
{{Note|1=Using the latest Arch Linux release (2009.02) is recommended. Older Arch Linux images (<= 2008.06) ship with an older version of {{Codeline|e2fsprogs}}, but it is a simple matter to {{Codeline|pacman -S e2fsprogs}} from the live environment after setting up networking. Alternatively, [http://www.sysresccd.org/Download SystemRescueCd >= 1.1.4] contains an appropriate version, and is in itself a handy CD to have.}}<br />
<br />
====Procedure====<br />
<br />
These instructions were adapted from http://ext4.wiki.kernel.org/index.php/Ext4_Howto and http://bbs.archlinux.org/viewtopic.php?id=61602. They have been tested and confirmed by this author as of January 16, 2009.<br />
<br />
* '''UPGRADE!''' Perform a sysupgrade to ensure all required packages are up-to-date: {{Codeline|pacman -Syu}}<br />
* '''[[Backup programs|BACK-UP!]]''' Back-up all data on any ext3 partitions that are to be converted to ext4. Although ext4 is considered 'stable' for general use, it is still a relatively young and untested file system. Furthermore, this conversion process was only tested on a relatively simple setup; it is impossible to test each of the many possible configurations the user may be running.<br />
* Edit {{Filename|/etc/fstab}} and change the 'type' from ext3 to ext4 for any partitions that are to be converted to ext4.<br />
<br />
{{Warning|ext4 is backwards-compatible with ext3 until extents and other new fancy options are enabled. If the user has a partition that is shared with another OS that cannot yet read ext4 partitions, it is possible to mount said partition as ext4 in Arch and still be able to use it as ext3 elsewhere at this point... Not so after the next step! Note, however, that there are fewer benefits to using ext4 if the partition is not fully converted.}}<br />
<br />
* The conversion process with {{Codeline|e2fsprogs}} must be done when the drive is not mounted. If converting one's root (/) partition, the simplest way to achieve this is to boot from some other live medium, as described in the 'Prerequisites' section above.<br />
** Boot the live medium (if necessary).<br />
** For each partition to be converted to ext4:<br />
*** Ensure the partition is '''NOT''' mounted<br />
*** Run {{Codeline|tune2fs -O extents,uninit_bg,dir_index /dev/the_partition}} (where {{Codeline|/dev/the_partition}} is replaced by the path to the desired partition, such as {{Codeline|/dev/sda1}})<br />
*** Run {{Codeline|fsck -fDp /dev/the_partition}}<br />
<br />
{{Note|The user '''MUST''' fsck the filesystem, or it will be unreadable! This fsck run is needed to return the filesystem to a consistent state. '''It WILL find checksum errors in the group descriptors''' -- this is expected. The '-f' parameter asks fsck to force checking even if the file system seems clean. The '-p' parameter asks fsck to 'automatically repair' (otherwise, the user will be asked for input for each error).<br />
You may need to run fsck -f rather than fsck -fp.}}<br />
<br />
* Reboot Arch Linux!<br />
<br />
{{Warning|1=If the user converted their root (/) partition, a kernel panic may be encountered when attempting to boot. If this happens, simply reboot using the 'fallback' initial ramdisk and re-create the 'default' initial ramdisk: {{Codeline|mkinitcpio -p kernel26}}}}<br />
<br />
====Migrating files to extents====<br />
{{warning|Do '''NOT''' use the following method with Mercurial repository that have been cloned locally, as doing so will corrupted the repository. The following method might also corrupt hard linked file.}}<br />
Even though the filesystem is now converted to ext4, all files that have been written before the conversion do not yet take advantage of the new ''extents'' of ext4, which will improve large file performance and reduce fragmentation and filesystem check time. In order to fully take advantage of ext4, all files would have to be rewritten on disk. A utility called ''e4defrag'' is being developed and will take care of this task ; however, it is not yet ready for production.<br />
<br />
Fortunately, it is possible to use the ''chattr'' program, which will cause the kernel to rewrite the file using extents. It is possible to run this command on all files and directories of one partition (e.g. if /home is on a dedicated partition):<br />
(Must be run as root)<br />
find /home -xdev -type f -print0 | xargs -0 chattr +e<br />
find /home -xdev -type d -print0 | xargs -0 chattr +e<br />
It is recommended to test this command on a small number of files first, and check if everything is going all right. It may also be useful to check the filesystem after conversion.<br />
<br />
Using the ''lsattr'' command, it is possible to check that files are now using ''extents''. The letter 'e' should appear in the attribute list of the listed files.<br />
<br />
==Troubleshooting==<br />
<br />
===Kernel Panic===<br />
One problem this author encountered was a kernel panic after converting the root (/) partition to ext4. This is because the initial ramdisk was detecting the partition as 'ext4dev', rather than 'ext4'. It was a simple matter to boot with the 'fallback' initial ramdisk and re-create the 'default' initial ramdisk :<br />
* Remount the root partition in read-write mode; assuming 'XXX' is your root partition :<br />
# mount /dev/XXX / -o remount,rw<br />
* Manually mount the boot partition on /boot if it is on a separate partition.<br />
* Re-create the ramdisk :<br />
# mkinitcpio -p kernel26<br />
<br />
During the creation process, {{Codeline|mkinitcpio}} correctly detected and included ext4 modules in the initial ramdisk.<br />
<br />
===GRUB Error 13===<br />
After a recent kernel update, this author encountered a GRUB error while attempting to boot from an ext4 /boot partition:<br />
Error 13: Invalid or unsupported executable format<br />
<br />
The solution is to boot from the live medium and chroot into the Arch Linux installation:<br />
# mkdir /mnt/arch<br />
# mount -t ext4 /dev/sda1 /mnt/arch<br />
# mount -t proc proc /mnt/arch/proc<br />
# mount -t sysfs sys /mnt/arch/sys<br />
# mount -o bind /dev /mnt/arch/dev<br />
<br />
# chroot /mnt/arch /bin/bash<br />
<br />
If /boot is on a separate partition, this partition must also be mounted:<br />
# mount -t ext4 /dev/sda2 /boot<br />
<br />
Then, the following command should resolve the issue. (Does anyone know why?):<br />
# grub-install --recheck /dev/sda<br />
<br />
===Data Corruption===<br />
Some early adopters of ext4 encountered data corruption after a hard reboot. Please read [http://www.h-online.com/open/Ext4-data-loss-explanations-and-workarounds--/news/112892 Ext4 data loss; explanations and workarounds] for more information.<br />
<br />
Since kernel 2.6.30, ext4 is considered "safe(er)." Several patches improved the robustness of ext4 - albeit at a slight performance cost. A new mount option ({{Codeline|auto_da_alloc}}) can be used to disable this behavior. For more information, please read [http://kernelnewbies.org/Linux_2_6_30#head-329ba44b44a7f58c98ae22b8f2730418cdd6630d Linux 2 6 30 - Filesystems performance improvements].<br />
<br />
For kernel versions earlier than 2.6.30, consider adding {{Codeline|1=rootflags=data=ordered}} to the {{Codeline|kernel}} line in GRUB's {{Filename|menu.lst}} as a preventative measure.<br />
<br />
===Improving performance===<br />
Since kernel 2.6.30, ext4 performance has decreased due to changes that serve to improve data integrity.[http://www.phoronix.com/scan.php?page=article&item=ext4_then_now&num=1] Users can improve performance with the {{Codeline|nobarrier}} option when mounting the disk, but '''this can be dangerous''' and may result in data loss or corruption after power failures. To turn barriers off, add the option {{Codeline|1=barrier=0}} to the desired filesystem in {{Filename|/etc/fstab}}. For example:<br />
<br />
# /dev/sda5 / ext4 noatime,barrier=0 0 1</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=Ext4&diff=127167Ext42011-01-07T18:05:22Z<p>Zodmaner: /* Procedure */</p>
<hr />
<div>[[Category:HOWTOs (English)]]<br />
[[Category:File systems (English)]]<br />
{{i18n|Ext4}}<br />
<br />
Ext4 is the evolution of the most used Linux filesystem, Ext3. In many ways, Ext4 is a deeper improvement over Ext3 than Ext3 was over Ext2. Ext3 was mostly about adding journaling to Ext2, but Ext4 modifies important data structures of the filesystem such as the ones destined to store the file data. The result is a filesystem with an improved design, better performance, reliability, and features.<br />
<br />
Source: [http://kernelnewbies.org/Ext4 Ext4 - Linux Kernel Newbies]<br />
<br />
==Creating ext4 Partitions From Scratch==<br />
<br />
# Upgrade your system: {{Codeline|pacman -Syu}}<br />
# Format the partition: {{Codeline|mkfs.ext4 /dev/sdxY}} (replace {{Codeline|sdxY}} with the device to format (e.g. {{Codeline|sda1}}))<br />
# Mount the partition<br />
# Add an entry to {{Filename|/etc/fstab}}, using the filesystem 'type' ext4<br />
<br />
{{Tip|See the mkfs.ext4 man page for more options; edit {{Filename|/etc/mke2fs.conf}} to view/configure default options.}}<br />
<br />
==Migrating From ext3 to ext4==<br />
<br />
There are two ways of migrating partitions from ext3 to ext4:<br />
* mounting ext3 partitions as ext4 without converting (compatibility)<br />
* converting ext3 partitions to ext4 (performance)<br />
<br />
These two approaches are described below.<br />
<br />
===Mounting ext3 Partitions as ext4 Without Converting===<br />
<br />
====Rationale====<br />
<br />
A compromise between fully converting to ext4 and simply remaining with ext3 is to mount existing ext3 partitions as ext4.<br />
<br />
'''Pros:'''<br />
* Compatibility (the filesystem can continue to be mounted as ext3) &ndash; This allows users to still read the filesystem from other distributions/operating systems without ext4 support (e.g. Windows with ext3 drivers)<br />
* Improved performance (though not as much as a fully-converted ext4 partition) &ndash; See [http://kernelnewbies.org/Ext4 Ext4 - Linux Kernel Newbies] for details<br />
<br />
'''Cons:'''<br />
* Fewer features of ext4 are used (only those that do not change the disk format such as multiblock allocation and delayed allocation)<br />
<br />
{{Note|Except for the relative novelty of ext4 (which can be seen as a risk), '''there is no major drawback to this technique'''.}}<br />
<br />
====Procedure====<br />
<br />
# Edit {{Filename|/etc/fstab}} and change the 'type' from ext3 to ext4 for any partitions you would like to mount as ext4.<br />
# Re-mount the affected partitions.<br />
# Done.<br />
<br />
===Converting ext3 Partitions to ext4===<br />
<br />
====Rationale====<br />
<br />
To experience the benefits of ext4, an irreversible conversion process must be completed.<br />
<br />
'''Pros:'''<br />
* Improved performance and new features &ndash; See [http://kernelnewbies.org/Ext4 Ext4 - Linux Kernel Newbies] for details<br />
<br />
'''Cons:'''<br />
* Read-only access from Windows can be provided by Ext2Explore, but there is currently no driver for writing data.<br />
* Irreversible (ext4 partitions cannot be 'downgraded' to ext3)<br />
<br />
====Prerequisites====<br />
<br />
The following software is required on the Arch Linux system:<br />
* {{Codeline|1=kernel26 >= 2.6.28}}<br />
* {{Codeline|1=e2fsprogs >= 1.41}}<br />
<br />
If converting one's /boot partition to ext4:<br />
* {{Codeline|1=grub >= 0.97}} (with ext4 patch)<br />
<br />
{{Note|The ext4 patch is included by default with Arch's GRUB package (at the time of writing, but this will likely not change). Otherwise, [[GRUB2]] is required for booting from an ext4 partition.}}<br />
<br />
{{Warning|Booting from an ext4 partition is not 'officially' supported by GRUB, and [[GRUB2]] is still under development. While GRUB does currently work, the 'safe' option is to boot from an ext2 or ext3 /boot partition. '''CONSIDER YOURSELF WARNED!}}<br />
<br />
If converting one's root (/) partition to ext4:<br />
* {{Codeline|1=mkinitcpio >= 0.5.20}}<br />
<br />
If converting one's root (/) partition to ext4, the following software is also needed on a bootable CD/USB drive:<br />
* {{Codeline|1=e2fsprogs >= 1.41}}<br />
<br />
{{Note|1=Using the latest Arch Linux release (2009.02) is recommended. Older Arch Linux images (<= 2008.06) ship with an older version of {{Codeline|e2fsprogs}}, but it is a simple matter to {{Codeline|pacman -S e2fsprogs}} from the live environment after setting up networking. Alternatively, [http://www.sysresccd.org/Download SystemRescueCd >= 1.1.4] contains an appropriate version, and is in itself a handy CD to have.}}<br />
<br />
====Procedure====<br />
<br />
These instructions were adapted from http://ext4.wiki.kernel.org/index.php/Ext4_Howto and http://bbs.archlinux.org/viewtopic.php?id=61602. They have been tested and confirmed by this author as of January 16, 2009.<br />
<br />
* '''UPGRADE!''' Perform a sysupgrade to ensure all required packages are up-to-date: {{Codeline|pacman -Syu}}<br />
* '''[[Backup programs|BACK-UP!]]''' Back-up all data on any ext3 partitions that are to be converted to ext4. Although ext4 is considered 'stable' for general use, it is still a relatively young and untested file system. Furthermore, this conversion process was only tested on a relatively simple setup; it is impossible to test each of the many possible configurations the user may be running.<br />
* Edit {{Filename|/etc/fstab}} and change the 'type' from ext3 to ext4 for any partitions that are to be converted to ext4.<br />
<br />
{{Warning|ext4 is backwards-compatible with ext3 until extents and other new fancy options are enabled. If the user has a partition that is shared with another OS that cannot yet read ext4 partitions, it is possible to mount said partition as ext4 in Arch and still be able to use it as ext3 elsewhere at this point... Not so after the next step! Note, however, that there are fewer benefits to using ext4 if the partition is not fully converted.}}<br />
<br />
* The conversion process with {{Codeline|e2fsprogs}} must be done when the drive is not mounted. If converting one's root (/) partition, the simplest way to achieve this is to boot from some other live medium, as described in the 'Prerequisites' section above.<br />
** Boot the live medium (if necessary).<br />
** For each partition to be converted to ext4:<br />
*** Ensure the partition is '''NOT''' mounted<br />
*** Run {{Codeline|tune2fs -O extents,uninit_bg,dir_index /dev/the_partition}} (where {{Codeline|/dev/the_partition}} is replaced by the path to the desired partition, such as {{Codeline|/dev/sda1}})<br />
*** Run {{Codeline|fsck -fDp /dev/the_partition}}<br />
<br />
{{Note|The user '''MUST''' fsck the filesystem, or it will be unreadable! This fsck run is needed to return the filesystem to a consistent state. '''It WILL find checksum errors in the group descriptors''' -- this is expected. The '-f' parameter asks fsck to force checking even if the file system seems clean. The '-p' parameter asks fsck to 'automatically repair' (otherwise, the user will be asked for input for each error).<br />
You may need to run fsck -f rather than fsck -fp.}}<br />
<br />
* Reboot Arch Linux!<br />
<br />
{{Warning|1=If the user converted their root (/) partition, a kernel panic may be encountered when attempting to boot. If this happens, simply reboot using the 'fallback' initial ramdisk and re-create the 'default' initial ramdisk: {{Codeline|mkinitcpio -p kernel26}}}}<br />
<br />
====Migrating files to extents====<br />
Even though the filesystem is now converted to ext4, all files that have been written before the conversion do not yet take advantage of the new ''extents'' of ext4, which will improve large file performance and reduce fragmentation and filesystem check time. In order to fully take advantage of ext4, all files would have to be rewritten on disk. A utility called ''e4defrag'' is being developed and will take care of this task ; however, it is not yet ready for production.<br />
<br />
Fortunately, it is possible to use the ''chattr'' program, which will cause the kernel to rewrite the file using extents. It is possible to run this command on all files and directories of one partition (e.g. if /home is on a dedicated partition):<br />
(Must be run as root)<br />
find /home -xdev -type f -print0 | xargs -0 chattr +e<br />
find /home -xdev -type d -print0 | xargs -0 chattr +e<br />
It is recommended to test this command on a small number of files first, and check if everything is going all right. It may also be useful to check the filesystem after conversion.<br />
<br />
Using the ''lsattr'' command, it is possible to check that files are now using ''extents''. The letter 'e' should appear in the attribute list of the listed files.<br />
<br />
==Troubleshooting==<br />
<br />
===Kernel Panic===<br />
One problem this author encountered was a kernel panic after converting the root (/) partition to ext4. This is because the initial ramdisk was detecting the partition as 'ext4dev', rather than 'ext4'. It was a simple matter to boot with the 'fallback' initial ramdisk and re-create the 'default' initial ramdisk :<br />
* Remount the root partition in read-write mode; assuming 'XXX' is your root partition :<br />
# mount /dev/XXX / -o remount,rw<br />
* Manually mount the boot partition on /boot if it is on a separate partition.<br />
* Re-create the ramdisk :<br />
# mkinitcpio -p kernel26<br />
<br />
During the creation process, {{Codeline|mkinitcpio}} correctly detected and included ext4 modules in the initial ramdisk.<br />
<br />
===GRUB Error 13===<br />
After a recent kernel update, this author encountered a GRUB error while attempting to boot from an ext4 /boot partition:<br />
Error 13: Invalid or unsupported executable format<br />
<br />
The solution is to boot from the live medium and chroot into the Arch Linux installation:<br />
# mkdir /mnt/arch<br />
# mount -t ext4 /dev/sda1 /mnt/arch<br />
# mount -t proc proc /mnt/arch/proc<br />
# mount -t sysfs sys /mnt/arch/sys<br />
# mount -o bind /dev /mnt/arch/dev<br />
<br />
# chroot /mnt/arch /bin/bash<br />
<br />
If /boot is on a separate partition, this partition must also be mounted:<br />
# mount -t ext4 /dev/sda2 /boot<br />
<br />
Then, the following command should resolve the issue. (Does anyone know why?):<br />
# grub-install --recheck /dev/sda<br />
<br />
===Data Corruption===<br />
Some early adopters of ext4 encountered data corruption after a hard reboot. Please read [http://www.h-online.com/open/Ext4-data-loss-explanations-and-workarounds--/news/112892 Ext4 data loss; explanations and workarounds] for more information.<br />
<br />
Since kernel 2.6.30, ext4 is considered "safe(er)." Several patches improved the robustness of ext4 - albeit at a slight performance cost. A new mount option ({{Codeline|auto_da_alloc}}) can be used to disable this behavior. For more information, please read [http://kernelnewbies.org/Linux_2_6_30#head-329ba44b44a7f58c98ae22b8f2730418cdd6630d Linux 2 6 30 - Filesystems performance improvements].<br />
<br />
For kernel versions earlier than 2.6.30, consider adding {{Codeline|1=rootflags=data=ordered}} to the {{Codeline|kernel}} line in GRUB's {{Filename|menu.lst}} as a preventative measure.<br />
<br />
===Improving performance===<br />
Since kernel 2.6.30, ext4 performance has decreased due to changes that serve to improve data integrity.[http://www.phoronix.com/scan.php?page=article&item=ext4_then_now&num=1] Users can improve performance with the {{Codeline|nobarrier}} option when mounting the disk, but '''this can be dangerous''' and may result in data loss or corruption after power failures. To turn barriers off, add the option {{Codeline|1=barrier=0}} to the desired filesystem in {{Filename|/etc/fstab}}. For example:<br />
<br />
# /dev/sda5 / ext4 noatime,barrier=0 0 1</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=Xfce&diff=124333Xfce2010-12-07T15:19:04Z<p>Zodmaner: /* Repository (development version) */ correct link to repository and add more explanation.</p>
<hr />
<div>[[Category:Desktop environments (English)]]<br />
[[Category:HOWTOs (English)]]<br />
{{i18n|Xfce}}<br />
[[pl:XFCE]]<br />
<br />
{{Article summary start}}<br />
{{Article summary text|Xfce is a lightweight desktop environment for Unix-like operating systems. It aims to be fast and lightweight, while still being visually appealing and user friendly. This article covers its installation, configuration, and troubleshooting.}}<br />
{{Article summary text|Xfce uses the [[GTK+]] toolkit.}}<br />
{{Article summary heading|Overview}}<br />
{{Article summary text|{{Graphical user interface overview}}}}<br />
{{Article summary end}}<br />
<br />
From [http://www.xfce.org/about/ Xfce - About]:<br />
<br />
:''Xfce embodies the traditional UNIX philosophy of modularity and re-usability. It consists of a number of components that provide the full functionality one can expect of a modern desktop environment. They are packaged separately and you can pick among the available packages to create the optimal personal working environment.''<br />
<br />
== What is Xfce? ==<br />
Xfce is a Desktop Environment, like GNOME or KDE. It contains a suite of apps like a root window app, window manager, file manager, panel, etc. Xfce is written using the GTK2 toolkit, and contains its own development environment (libraries, daemons, etc), similar to other big DEs. Unlike GNOME or KDE, Xfce is lightweight and designed more around [http://www.opengroup.org/cde/ CDE] than Windows or Mac. It has a much slower development cycle, but is very stable and extremely fast. Xfce is great for older hardware.<br />
<br />
== Why use Xfce? ==<br />
Here is a (subjective) list of reasons to use Xfce:<br />
* It's fast; faster than the other major DEs.<br />
* It's stable. In the long time Xfce-4 has been out, only a relatively small handful of bugs has been discovered, despite it having a rather large following.<br />
* It's pretty. It uses GTK2 and is themable. You can make Xfce look very nice. The fonts are completely AA as well.<br />
* It works great with multiple monitors. Xfce's [[Wikipedia:Xinerama|Xinerama]] support is arguably the best out of any WM/DE.<br />
* It doesn't get in your way. You'll find Xfce helps your work flow, rather than always making itself "present."<br />
* It comes with a built-in compositor which allows for true transparency, among other cool things.<br />
<br />
== Why not use Xfce? ==<br />
Here is a (subjective) list of reasons not to use Xfce:<br />
* Doesn't contain all the features and integration of the major DEs.<br />
* Slower development cycle.<br />
* Because it's based on the CDE design, the layout may not be as familiar.<br />
<br />
== How to Install Xfce ==<br />
Xfce is somewhat modular. That means there is no need for you to run every part, you can pick and choose some of them. Because of this, Xfce has some separate Arch packages.<br />
<br />
=====Installing Xfce=====<br />
Make sure that the X system is installed and working correctly before proceding.<br />
<br />
To install the base Xfce system, run:<br />
<br />
# pacman -S xfce4<br />
<br />
If you want extras, like panel plugins, run this:<br />
<br />
# pacman -S xfce4-goodies<br />
<br />
When asked by pacman if you wish to install the whole group, you can select 'no' to install only the packages you wish.<br />
<br />
{{Note |'''xfce4-xfapplet-plugin''' (a plugin that allows the use of GNOME applets in the Xfce4 panel) is part of the '''xfce4-goodies''' group and depends on '''gnome-panel''', which in turn depends on '''gnome-desktop'''. You may wish to take this into consideration before installing, since it represents a significant number of extra dependencies.}}<br />
<br />
If you don't want xfce4-xfapplet-plugin to be installed, install xfce4-goodies this way:<br />
<br />
# pacman -S $(pacman -Sgq xfce4-goodies | egrep -v xfce4-xfapplet-plugin)<br />
<br />
To install the standard menu icons:<br />
<br />
# pacman -S gnome-icon-theme<br />
<br />
(These are included in the previous packages.)<br />
<br />
If you wish to admire 'Tips and Tricks' on login, install the fortune-mod package:<br />
<br />
# pacman -S fortune-mod<br />
<br />
In order to get the xfce4-mixer to work with alsa, you need to install gstreamer0.10-base-plugins. (See below for help with OSS.)<br />
<br />
# pacman -S gstreamer0.10-base-plugins<br />
<br />
Since the 4.6.0 release Xfce doesn't come with its own icon theme anymore. It now depends on tango-icon-theme. As an alternative you may want to install the gnome-icon-theme package.<br />
<br />
=====Installing and configuring the Daemons=====<br />
If you have '''xorg 1.7''' with input hotplugging you must get hal working before you start Xfce or end up with no input devices.<br />
'''Xorg 1.8''' doesn't use hal anymore but other programs still do, so use hal with xorg 1.8 aswell unless stated otherwise... "better safe then sorry" as they say.<br />
<br />
# /etc/rc.d/hal start<br />
<br />
Add '''hal''' to the '''DAEMONS''' array in rc.conf so you don't have to start is manually every time. Do not background it if you boot straight to X.<br />
'''hal''' relies upon, and will automatically start, '''dbus'''. If you are experiencing issues you may add dbus to the DAEMONS line in rc.conf as well. When adding dbus, ensure it directly precedes hal. Example:<br />
<br />
DAEMONS=(syslog-ng '''dbus''' '''hal''' @network @netfs @crond @cpufreq @alsa)<br />
<br />
Install gamin (the successor of fam). It is configured to automatically run in the background by default, do not add it to rc.conf.<br />
<br />
# pacman -S gamin<br />
<br />
== Running Xfce ==<br />
<br />
=====Automatically at boot time=====<br />
See [[Display Manager]] to install and configure a Display Manager.<br />
<br />
=====Manually=====<br />
<br />
You can execute:<br />
$ startxfce4<br />
from the console, or configure xinitrc and use xinit or startx.<br />
<br />
If you have not created a ~/.xinitrc yet, do so with:<br />
<br />
$ cp /etc/skel/.xinitrc ~/.xinitrc<br />
<br />
and add the following line:<br />
<br />
exec ck-launch-session startxfce4<br />
<br />
Example:<br />
#!/bin/sh<br />
#<br />
# ~/.xinitrc<br />
#<br />
# Executed by startx (run your window manager from here)<br />
<br />
# exec gnome-session<br />
# exec startkde<br />
# exec startxfce4<br />
# ...or the Window Manager of your choice<br />
exec ck-launch-session startxfce4<br />
<br />
{{{Note |<code>ck-launch-session</code> starts a clean consolekit session needed by Xfce for power management, automounting, shutting down/rebooting etc. Consolekit/policykit capable display managers such as gdm do this for you automatically.}}}<br />
<br />
=====Shutting down and rebooting from withing Xfce=====<br />
* Make sure that '''dbus''' and '''hal''' are enabled in the DAEMONS array in /etc/rc.conf.<br />
* Make sure that you are using <code>exec ck-launch-session startxfce4</code> in ~/.xinitrc or a consolekit/policykit capable display manager (e.g. gdm)<br />
<br />
Then add your normal user to the ''shutdown'' group:<br />
<br />
# gpasswd -a USER power<br />
<br />
{{{Note |This group is only used by HAL, so you still need root privileges for shutting down the system via command line (halt/poweroff/shutdown).}}}<br />
<br />
see http://bbs.archlinux.org/viewtopic.php?id=59954 for more details.<br />
<br />
== Tips ==<br />
=== Commands for the settings manager ===<br />
<br />
There is no official documentation for the commands executed. One must look at .desktop files ''/usr/share/applications/'' folder. For the people who like to know exactly what is happening, here is a handy list to save the effort:<br />
<br />
xfce-setting-show backdrop<br />
xfce-setting-show display<br />
xfce-setting-show keyboard<br />
xfce4-menueditor<br />
xfce-setting-show sound<br />
xfce-setting-show mouse<br />
xfce-setting-show session<br />
xfce-setting-show<br />
xfce-setting-show splash<br />
xfce-setting-show ui<br />
xfce-setting-show xfwm4<br />
xfce-setting-show wmtweaks<br />
xfce-setting-show workspaces<br />
xfce-setting-show printing_system<br />
xfce4-appfinder<br />
xfce4-autostart-editor<br />
xfce4-panel -c<br />
<br />
To review all the available setting manager commands run the following in a terminal:<br />
<br />
$ grep xfce-setting-show /usr/share/applications/xfce*settings*<br />
<br />
=== A drop down console like in quake ===<br />
<br />
# pacman -S tilda<br />
<br />
will install tilda, a drop down console, similar to yakuake. A more lightweight alternative would be '''stjerm''' which can be found in the AUR.<br />
<br />
To configure tilda, type<br />
<br />
# tilda -C<br />
<br />
which opens a configuration window in X.<br />
<br />
====Guake====<br />
Another functional alternative is guake, which is available in the community repo:<br />
<br />
# pacman -S guake<br />
<br />
=== How to enable the compositor in Xfce 4.6 ===<br />
Xfce 4.6 comes with a builtin compositor adding the option for fancy window effects, shadows and transparency and so on. It can be enabled in the Window Manager Tweaks and works on the fly. No additional settings are needed in your /etc/xorg.conf. To enable and adjust settings, go to:<br />
<br />
Menu --> Settings --> Window Manager Tweaks<br />
<br />
=== Why doesn't my desktop refresh? ===<br />
Xfce 4.6 uses [[FAM]] (File Alteration Monitor) or [[gamin]] (FAM's successor) to get notification when a file or directory changes.<br />
If you decide to use FAM, don't forget to add 'fam' to the list of DAEMONS in /etc/rc.conf.<br />
This step is not necessary for gamin.<br />
<br />
NOTE: After recent updates, FAM has caused issues opening some mounts, such as sshfs, that gamin does not have an issue with.<br />
<br />
=== Use a transparent background for desktop icon titles ===<br />
To change the default white background of desktop icon titles to something more suitable, edit the .gtkrc-2.0 file in your home directory (or create the file if needed) and add the following:<br />
style "xfdesktop-icon-view" {<br />
XfdesktopIconView::label-alpha = 10<br />
base[NORMAL] = "#000000"<br />
base[SELECTED] = "#71B9FF"<br />
base[ACTIVE] = "#71FFAD"<br />
fg[NORMAL] = "#ffffff"<br />
fg[SELECTED] = "#71B9FF"<br />
fg[ACTIVE] = "#71FFAD" }<br />
widget_class "*XfdesktopIconView*" style "xfdesktop-icon-view"<br />
<br />
=== How to customize xfce panel background ===<br />
The same, edit ~/.gtkrc-2.0. ( foo.bar is path to your image )<br />
Note that you must place the image in the same directory as the configuration, which is ~/. You can not specify the path to the image, or it won't work.<br />
style "panel-background" {<br />
bg_pixmap[NORMAL] = "foo.bar"<br />
bg_pixmap[PRELIGHT] = "foo.bar"<br />
bg_pixmap[ACTIVE] = "foo.bar"<br />
bg_pixmap[SELECTED] = "foo.bar"<br />
bg_pixmap[INSENSITIVE] = "foo.bar"<br />
}<br />
widget_class "*Panel*" style "panel-background"<br />
<br />
=== How to customize starting xfce ===<br />
<br />
This includes getting necessary environment variables into the GUI runtime.<br />
<br />
* Copy the file /etc/xdg/xfce4/xinitrc to ~/.config/xfce4/<br />
* Edit this file. For example, you can add something like this somehwere in the middle:<br />
* source $HOME/.bashrc<br />
* # start rxvt-unicode server<br />
* urxvtd -q -o -f<br />
<br />
=== How to add themes to XFCE === <br />
<br />
1. Go to [http://xfce-look.org xfce-look.org] and click "Themes" in the left navbar. Look around for a theme you want and click "Download".<br />
<br />
2. Go to the directory where you downloaded the tarball/file and extract it using Squeeze/Xarchiver/CLI.<br />
<br />
3. Move the extracted folder to /usr/share/themes (for all users) or ~/.themes (for just you). Inside /usr/share/themes/abc, there is a folder that you create called xfwm4 that will contain whatever files that is included with that theme.<br />
<br />
4. GTK theme is available here:<br />
Menu --> Settings --> Appearance<br />
You select your xfwm theme in:<br />
Menu --> Settings --> Window Manager<br />
<br />
=== Fonts ===<br />
<br />
If you find the standard fonts rather thick and or slightly out of focus open Settings>Appearence click on the Fonts tab and under Hinting: change to Full<br />
<br />
You could also try using a custom DPI setting<br />
<br />
=== Replacements for the default 'menu' panel applet ===<br />
The "Ubuntu System Panel" (Gnome) panel applet has similar features to those found in its KDE v4.2 equivalent. It can be added to an Xfce panel via the 'XfApplet' panel applet, which allows Gnome applets to be used in Xfce.<br />
<br />
It is available in [http://aur.archlinux.org/packages.php?ID=10259 the AUR]<br />
<br />
=== Switch to old desktop right click menu without Thunar things ===<br />
xfconf-query -c xfce4-desktop -v --create -p /desktop-icons/style -t int -s 0<br />
<br />
=== How to remove menu entries from the System menu === <br />
With the built-in menu editor, you cannot remove menu entries from the System menu. Here’s how to hide them:<br />
# Go to the /usr/share/applications folder. Type in the terminal (Xfce menu > System > Terminal): <pre>$ cd /usr/share/applications</pre><br />
# This folder should be full of .desktop files. To see how many there are, type: <pre>$ ls</pre>Say the one you want to edit is Firefox. Type in the terminal:<pre>$ sudo mousepad firefox.desktop</pre><br />
# In the bottom of the file, paste the following: <pre>NoDisplay=true</pre><br />
# Save and exit. Now Firefox won’t show up in the System menu. You can do this with any program.<br />
<br />
=== But what do you do with menu entries which do not show up in /usr/share/applications (e.g., apps installed via wine)? === <br />
I've found some shortcuts that show in the category “Other” in this directory:<br />
~/.local/share/applications/wine/.<br />
<br />
=== How do I get xfce4-mixer and OSS4 to work together? ===<br />
<br />
Xfce 4.6 uses gstreamer as the backend to control volume, so first you have to make gstreamer cooperate with xfce4-mixer.<br />
<br />
pacman -S xfce4-mixer gstreamer0.10-base-plugins<br />
<br />
(Optional) Second, try to install gstreamer0.10-good-plugins, gstreamer0.10-bad-plugins<br />
<br />
pacman -S gstreamer0.10-good-plugins gstreamer0.10-bad-plugins<br />
<br />
login and logout, or just remove the mixer plugin and add it again. If it doesn't work at all, then you have to compile gstreamer0.10-good-plugins yourself. and can <br />
<br />
Download the PKGBUILD and other files needed from ABS or [http://repos.archlinux.org/viewvc.cgi/gstreamer0.10-good-plugins/repos/extra-i686/ here], edit the PKGBUILD, add --enable-oss. <br />
<br />
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var '''--enable-oss'''\<br />
--disable-static --enable-experimental \<br />
--enable-ladspa \<br />
--with-package-name="GStreamer Good Plugins (Arch Linux)" \<br />
--with-package-origin="http://www.archlinux.org/" || return 1<br />
<br />
and then run makepkg -i. <br />
<br />
makepkg -i<br />
<br />
Still not working? Try tis package in AUR [http://aur.archlinux.org/packages.php?ID=17024 gstreamer0.10-good-plugins-ossv4], modify the pkgver to the newest in the PKGBUILD, and it should work.<br />
<br />
Other LINKS: [http://www.4front-tech.com/forum/ OSS forum]<br />
<br />
=== How to take screenshots (print-screen key) ===<br />
<br />
A simple way is to use a command-line screenshot utility:<br />
<br />
# pacman -S scrot<br />
<br />
Then<br />
<br />
Xfce-menu --> Settings --> Keyboard >>> Application Shortcuts.<br />
<br />
Add the "scrot" command to use the "PrintScreen" key.<br />
<br />
All screenshots will be placed in your home folder with unique names like<br />
<br />
"2009-02-19-063052_1280x1024_scrot.png".<br />
<br />
<br />
====Screenshooter====<br />
<br />
There is also an a screenshot plugin for the Xfce panel that is available in extra:<br />
<br />
# pacman -S xfce4-screenshooter<br />
<br />
=== Change volume with keyboard volume buttons ===<br />
<br />
Go to Settings > Keyboard. Click the "Application Shortcuts" tab and add click the "Add" button. Add the following:<br />
<br />
==== ALSA ====<br />
For the raise volume button:<br />
amixer set Master 5%+<br />
For the lower volume button:<br />
amixer set Master 5%-<br />
For the mute button:<br />
amixer set Master toggle<br />
If ''amixer set Master toggle'' does not work, try:<br />
amixer set PCM toggle<br />
<br />
The channel must have a "mute" option for the toggle command to work. To check whether or not your Master channel supports toggling mute, run ''alsamixer'' in a terminal and look for the double M's (MM) under the Master channel. If they are not present, then it does not support the mute option.<br />
<br />
==== OSS ====<br />
Use one of these scripts:<br />
[http://www.opensound.com/wiki/index.php/Tips_And_Tricks#Using_multimedia_keys_with_OSS<br />
]<br />
<br />
If using ossvol (recommended), add:<br />
ossvol -i 1<br />
for the volume up button<br />
ossvol -d 1<br />
for the volume down button<br />
ossvol -t<br />
for the mute/unmute button<br />
<br />
=== Change mount options ===<br />
<br />
A common problem when automounting usb sticks formatted with fat filesystem is the inability to properly show characters as umlauts, ñ, ß, etc. This may be solved changing the default iocharset to utf8, which is easily done adding a line to '''/etc/xdg/xfce4/mount.rc''':<br />
<br />
[vfat]<br />
uid=<auto><br />
shortname=winnt<br />
'''utf8=true'''<br />
# FreeBSD specific option<br />
longnames=true<br />
<br />
Note that when using utf-8, the system will distinct between upper- and lowercases, potentially corrupting your files. Be careful.<br />
<br />
It is also recommendable to mount vfat devices with the '''flush''' option, so that when copying to usb sticks data flushes more often, thus making thunar's progress bar to stays up until things are on the disk.<br />
<br />
[vfat]<br />
flush=true<br />
<br />
=== Switch between users ===<br />
<br />
It is possible to switch between X sessions thanks to [http://goodies.xfce.org/projects/panel-plugins/xfswitch-plugin xfswitch-plugin ]. It adds an icon to the Xfce panel, and requires gdm to work at the moment.<br />
<br />
xfswitch-plugin is available through [http://aur.archlinux.org/packages.php?ID=40677 AUR ]<br />
<br />
== Troubleshooting ==<br />
=== Keyboard shortcuts aren't working ===<br />
Under Xfce 4, there is a problem where the user's [http://bugzilla.xfce.org/show_bug.cgi?id=5639 keyboard shortcuts will intermittently not work]. This is usually the case when the settings helper is either not running or has been started improperly due to a conflict.<br />
<br />
A workaround is to disable ''xfce4-settings-helper-autostart'' from autostarting in a user's session. The settings helper daemon will start upon loading an Xfce session, anyways. The following two steps seem to have resolved this issue.<br />
<br />
Remove or rename the global autostart .desktop file:<br />
mv /etc/xdg/autostart/xfce4-settings-helper-autostart.desktop /etc/xdg/autostart/xfce4-settings-helper-autostart.desktop.disabled<br />
<br />
Remove or rename the local autostart .desktop file:<br />
mv ~/.config/autostart/xfce4-settings-helper-autostart.desktop ~/.config/autostart/xfce4-settings-helper-autostart.desktop.disabled<br />
<br />
After logging out and logging back in, your shortcut keys should be working fine now.<br />
<br />
=== Restore default settings ===<br />
If for any reason you need to revert back to the default settings, try renaming ~/.config/xfce4-session/ and ~/.config/xfce4/<br />
<br />
$ mv ~/.config/xfce4-session/ ~/.config/xfce4-session-bak<br />
$ mv ~/.config/xfce4/ ~/.config/xfce4-bak<br />
<br />
Logout and login for changes to take effect.<br />
<br />
== Xfce 4.8 (development version) ==<br />
<br />
=== Repository (development version) ===<br />
[xfce4-devel]<br />
Server = http://arch.ouranos.be/$repo/$arch/<br />
<br />
Where $arch is your system current architecture (i686 or x86_64).<br />
<br />
=== Start Xfce ===<br />
Use this command in .xinitrc to launch Xfce<br />
exec dbus-launch ck-launch-session xfce4-session<br />
<br />
=== Thunar - Removable devices ===<br />
Make sure dbus is running: /etc/rc.d/dbus start<br />
Create the file /etc/polkit-1/localauthority/50-local.d/org.freedesktop.udisks.pkla and add yourself into the ''storage'' group<br />
[Local Users]<br />
Identity=unix-group:storage<br />
Action=org.freedesktop.udisks.*<br />
ResultAny=yes<br />
ResultInactive=no<br />
ResultActive=yes<br />
The changes doesn't need any restart or reload.<br />
Please note that this is a temporary solution as Ionut and other core dev prefer to fix the pam + ck issues<br />
<br />
=== Reboot/Shutdown ===<br />
Create the file /etc/polkit-1/localauthority/50-local.d/org.freedesktop.consolekit.pkla and add yourself into the ''power'' group<br />
[Local restart]<br />
Identity=unix-group:power<br />
Action=org.freedesktop.consolekit.system.restart<br />
ResultAny=yes<br />
ResultInactive=no<br />
ResultActive=yes<br />
<br />
[Local shutdown]<br />
Identity=unix-group:power<br />
Action=org.freedesktop.consolekit.system.stop<br />
ResultAny=yes<br />
ResultInactive=no<br />
ResultActive=yes<br />
<br />
[Local restart - multiple]<br />
Identity=unix-group:power<br />
Action=org.freedesktop.consolekit.system.restart-multiple-users<br />
ResultAny=yes<br />
ResultInactive=no<br />
ResultActive=yes<br />
<br />
[Local shutdown - multiple]<br />
Identity=unix-group:power<br />
Action=org.freedesktop.consolekit.system.stop-multiple-users<br />
ResultAny=yes<br />
ResultInactive=no<br />
ResultActive=yes<br />
Now, some rules can be changed as if the ''Local * - multiple'' are redundant with the ''Local *''<br />
The changes doesn't need any restart or reload.<br />
Please note that this is a temporary solution as Ionut and other core dev prefer to fix the pam + ck issues<br />
<br />
=== Suspend/Hibernate ===<br />
Create the file /etc/polkit-1/localauthority/50-local.d/org.freedesktop.upower.pkla and add yourself into the ''power'' group<br />
[Local Users]<br />
Identity=unix-group:power<br />
Action=org.freedesktop.upower.*<br />
ResultAny=yes<br />
ResultInactive=no<br />
ResultActive=yes<br />
The changes doesn't need any restart or reload.<br />
Please note that this is a temporary solution as Ionut and other core dev prefer to fix the pam + ck issues<br />
<br />
=== Forum related thread ===<br />
https://bbs.archlinux.org/viewtopic.php?pid=851985#p851985<br />
<br />
== Related Articles ==<br />
* [[Build order for XFCE]]<br />
* [[Improve GTK Application Looks]]<br />
* [[Autostart applications#Graphical]]<br />
<br />
== External Resources ==<br />
* [http://www.us.xfce.org/documentation/ Xfce.org] - The complete documentation.<br />
* [http://www.xfce-look.org/ Xfce-Look] - Themes, wallpapers, and more.<br />
* [http://xfce.wikia.com/wiki/Frequently_Asked_Questions Xfce Wikia] - How to edit the auto generated menu with the menu editor<br />
* [http://wiki.xfce.org Xfce Wiki]<br />
* [https://xubuntu.wordpress.com/2006/08/04/howto-remove-menu-entries-from-the-system-menu/ Howto: Remove menu entries from the System menu]<br />
* [http://www.linuxquestions.org/questions/linux-general-1/how-to-use-xfce-themes-658354/ XFCE themes at linuxquestions.org]</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=ASUS_Eee_PC_701&diff=86400ASUS Eee PC 7012009-12-05T15:38:33Z<p>Zodmaner: /* Install X */</p>
<hr />
<div>{{stub}}<br />
[[Category:Getting and installing Arch (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|Русский|Инсталляция Arch Linux на Asus EEE PC}}<br />
{{i18n_links_end}}<br />
<br />
Most of this information is from the [http://bbs.archlinux.org/viewtopic.php?pid=297632 Arch Forum]. You can also find a lot of helpful information from the [http://forum.eeeuser.com/ EEEUser Forum]. <br />
<br />
==Before You Begin==<br />
<br />
===Avoiding Pitfalls===<br />
<br />
The install is pretty normal, except that you'll need to [http://forum.eeeuser.com/viewtopic.php?id=890 avoid the pitfalls] of our alternative Linux install:<br />
<br />
# Never choose to use a journaling file system on the SSD partitions<br />
# Never use a swap partition on the SSD<br />
# Edit your new installation fstab to mount the SSD partitions "noatime"<br />
# Never log messages or error log to the SSD<br />
<br />
The rules ensure that we won't reach the maximum limit of writes on our SSD faster than we should, although this is being contested (see [http://wiki.eeeuser.com/ssd_write_limit this link] and [http://www.storagesearch.com/ssdmyths-endurance.html this other link]).<br />
<br />
Some other minor modifications can be made to decrease number of non-mandatory writes by applications: deactivate {{Filename|~/.viminfo}} in vi, deactivate less history file ({{Filename|~/.lesshst}}), and so on.<br />
<br />
===Choosing Your Installation Media===<br />
<br />
The Eee PC does not have an optical drive installed on the machine. This means you will need to install Arch Linux through one of the alternative methods:<br />
<br />
# [[Beginners_Guide#USB_stick|USB stick]] '''(Recommended)'''<br />
# External USB CD-ROM drive<br />
# [[PXE|Network (PXE)]]<br />
<br />
==Installing Arch Linux==<br />
<br />
With the release of the 2009.08 installation media, installing Arch Linux on Asus Eee PC model 701 is pretty easy and straightforward since the stock kernel on Arch installation media support all of the 701 hardwares out of the box. <br />
<br />
Therefore, aside from the following pointers specific to the 701 described below, there shouldn't be any other major differences between installing Arch Linux on the 701 and any other computer. You should be able to successfully install Arch on the 701 by following instructions on [[Beginners_Guide|Beginners' Guide]] without any problem.<br />
<br />
===Prepare Hard Drive===<br />
<br />
The most important different between the 701 and other machines is that the 701 use SSD drive instead of normal hard drive. This section advise on how to set up a partition scheme that is best suited to the 701. <br />
<br />
The default Eee PC drive is split up into four partitions (here is [http://forum.eeeuser.com/viewtopic.php?id=1805 some information] about the partitioning): <br />
<br />
* It is easiest to wipe the existing partitions and use one or two partitions for your install. One partition would be just '/', and two partitions would be '/boot' and '/'.<br />
* Choose "NONE" for swap in case your eee has a SSD (see #2 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]])<br />
* Select "ext2" as your filesystem in case your eee has a SSD (see #1 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]]). If your model has a standard HD choose "ext3".<br />
<br />
===Install X===<br />
<br />
Install X by follow instructions on the [[Beginners_Guide#Step_2:_Install_X|Beginners' Guide]], then install the Intel graphics driver:<br />
# pacman -Sy xf86-video-intel<br />
<br />
You must also install the Synaptics driver to have touchpad working properly (not needed for Eee PC 900):<br />
# pacman -Sy xf86-input-synaptics<br />
<br />
With the latest version of X from extra repository, X should work on the 701 '''without any need for xorg.conf'''. However, if for some reason you wish to use an xorg.conf file, you can use an old [[Example_Xorg_configuration_file_for_Asus_Eee_PC_701|example Xorg configuration file for Asus Eee PC model 701]] as a template or automatically generate a new one by running the following command:<br />
<br />
# Xorg -configure<br />
<br />
Consult [[Xorg_input_hotplugging|Xorg Input Hotplugging]] for more information on how to config input devices using HAL.<br />
<br />
The synaptics stuff can be removed if you have a EEE PC 900. The {{Codeline|Option "AutoAddDevices"}} line is important if you need a non-default XkbLayout, because if you don't have it, xorg will find 3 keyboards (at least with the 900 model).<br />
The Modeline has obviously to be removed or modified if you dont have a model with this resolution.<br />
<br />
===Getting Hot Keys, Graphic Indicators and Shutdown with the Power Button Working===<br />
<br />
If you want to have working hot keys (wifi, brightness, volume etc), an OSD, and be able to assign actions to things like the powerbutton and closing the lid, then you should install '''ighea's acpi-eee''' package.<br />
<br />
==== ighea's acpi-eee ====<br />
<br />
Get the latest package from [http://kapsi.fi/ighea/eee/acpi-eee/ here].<br />
<br />
The package can be easily installed with:<br />
# pacman -U acpi-eee-10.0-1-i686.pkg.tar.gz<br />
<br />
See messages during installation for more details and don't forget to edit {{Filename|/etc/acpi/eee.conf}} to suit your tastes.<br />
<br />
*For those who use the wireless on/off acpi command; the {{Codeline|NETWORK_UP_COMMAND&#61;""}} setting in {{Filename|/etc/acpi/eee.conf}}, when applicable, should at least release the network. For example, using netcfg2, {{Codeline|NETWORK_UP_COMMAND&#61;"netcfg2 -a"}} will release the connections from before disabling wireless, allowing new ones to be made without netcfg thinking that it's already connected. It is also possible to reconnect to your previous network, however, the network tool you use needs to have a somewhat lengthy timeout as it takes 15-20 seconds for your wireless device to reappear. <br />
<br />
{{Note | Make sure '''asusosd''' is enabled on startup if you want to have the Graphic Indicators from Xandros. To run asusosd simply type {{Codeline|asusosd &}} at a command prompt.}}<br />
<br />
==Asus Eee PC model 701 repository from toofishes==<br />
<br />
Toofishes created a repository for the 701. The repository contained customized kernel built specifically for the 701 and some additional packages. <br />
<br />
While the stock Arch kernel works very well with the 701, toofishes kernel have the following advantages:<br />
<br />
* Faster boot time &ndash; because most of the modules have been compile into the kernel, no time is wasted waiting for the modules to load<br />
* No need to generate initial ramdisk every time a kernel is upgrade <br />
* Small size (around 4MB)<br />
<br />
To use the repository, add:<br />
[eee]<br />
Server = http://code.toofishes.net/packages/eee<br />
to your {{Filename|/etc/pacman.conf}} and then issue:<br />
pacman -Syu<br />
<br />
===Package List===<br />
Currently, toofishes' repository contains the following packages:<br />
<br />
*'''kernel-eee''' &ndash; customized kernel for Asus Eee PC model 701<br />
*'''luvcview''' &ndash; webcam program for testing webcam driver<br />
<br />
===Kernel-eee Installation Instruction===<br />
Simply use pacman to install the package you need. Install the packages with this command:<br />
# pacman -Sy kernel-eee<br />
<br />
then, add the following to {{Filename|/boot/grub/menu.lst}}; note that no initrd is needed:<br />
# (2) Arch Linux<br />
title Arch Linux Eee kernel<br />
root (hd0,0)<br />
kernel /boot/vmlinuzeee root=/dev/sda1 ro<br />
<br />
Restart and select Arch Linux Eee kernel from the grub boot menu.<br />
<br />
==Additional Tips & Tweaks==<br />
<br />
===Tweaking kernel-eee===<br />
<br />
Toofishes' kernel, also known as kernel-eee, can be recompiled to include custom features. You can download toofishes' kernel PKGBUILD and all the nesseary files from his gitweb by installing the git package and using the following command:<br />
<br />
$ git clone git://code.toofishes.net/dan/eee.git<br />
<br />
or if you are behind a proxy and can't use the git protocol:<br />
<br />
$ git clone http://code.toofishes.net/git/dan/eee.git<br />
<br />
There are two ways to tweak the kernel. The first is simply to edit the {{Filename|kernelconfig}} file with your favorite editor and the second is to insert a {{Codeline|make menuconfig}} line into the PKGBUILD before the kernel's compilation.<br />
<br />
===Using Wine with toofishes' kernel===<br />
<br />
Normally, Wine won't work with toofishes' kernel because it is compiled with VMSPLIT_2G_OPT option. In order to use Wine with toofishes' kernel, you have to recompile his kernel with VMSPLIT_3G option.<br />
<br />
Download the kernel PKGBUILD and all the necessary files from toofishes' gitweb using the above instructions, then change the following lines in the {{Filename|kernelconfig}} file from this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 # CONFIG_VMSPLIT_3G is not set<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 CONFIG_VMSPLIT_2G_OPT=y<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
to this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 CONFIG_VMSPLIT_3G=y<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 # CONFIG_VMSPLIT_2G_OPT is not set<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
<br />
Compile and install the kernel and Wine should now work.<br />
<br />
===Power down with the power button===<br />
<br />
{{Note | If you are using ighea's acpi-eee or dkite's acpid_eee package then you should already be able to shutdown by pressing the power button and should not need to do this.}}<br />
<br />
The two alternatives here are described in [[Allow users to shutdown]].<br />
<br />
If you don't already or don't plan to use sudo, it may be simpler to use the setuid /sbin/halt method, otherwise using sudo is preferred.<br />
<br />
Below are all the steps required for the sudo method. If you want to use the setuid method, read the article linked above and perform the 'power' file step here, while omitting the 'sudo' in it.<br />
<br />
# pacman -S sudo<br />
<br />
As root, do the following:<br />
# visudo<br />
<br />
Add the following line to the file:<br />
USER HOST = NOPASSWD: /sbin/poweroff<br />
<br />
Where {{Codeline|USER}} is the user you want to be able to power down with and {{Codeline|HOST}} is your hostname (from {{Filename|/etc/rc.conf}}).<br />
<br />
Now, create a file called {{Filename|/etc/acpi/events/power}}, containing:<br />
# /etc/acpi/events/power<br />
# This is called when the user presses the power button<br />
<br />
event=button/power (PWR.||PBTN)<br />
action=sudo /sbin/poweroff<br />
<br />
Make sure that you execute:<br />
# /etc/rc.d/acpid start<br />
<br />
And/or add acpid to the daemons list in {{Filename|/etc/rc.conf}}:<br />
DAEMONS=(hal, acpid ...)<br />
<br />
===Use cpufreq for power saving===<br />
<br />
{{Note | toofishes dropped CPU scaling from his latest kernel builds, due to the fact, confirmed by other users, that there were no effective power savings with p4-clockmod's module, and it introduced "unacceptable latency", even with relatively low percentage up thresholds.}}<br />
<br />
Install cpufrequtitls:<br />
# pacman -S cpufrequtils<br />
<br />
For scaling down the processor you have to load the p4_clockmod module. Insert it into your {{Filename|/etc/rc.conf}} MODULES array for loading it at startup. <br />
MODULES=(... p4_clockmod ...)<br />
<br />
{{Note | The merits of p4-clockmod are debatable. Particularly on the EEEPC 701, battery time isn't extended due to its usage, and some users have even reported less battery duration. More hints to the reasons why can be read in [http://www.codemonkey.org.uk/2009/01/18/forthcoming-p4clockmod/ this] fine blog entry.}}<br />
<br />
Add 'cpufreq' to the DAEMONS array in {{Filename|/etc/rc.conf}} to have it start on startup.<br />
DAEMONS=(... cpufreq ...)<br />
<br />
Add the following into {{Filename|/etc/conf.d/cpufreq}}:<br />
governor="ondemand"<br />
min_freq="113MHz"<br />
max_freq="900MHz"<br />
<br />
With enabled cpufreq it scales the processor between 113MHz up to max. frequency. That should save a lot on battery power. The stated 900MHz will be never reached by the eeePC, the p4_clockmod reports a wrong frequency here. But scaling works, you can feel it in the performance of eeePC that he slow down the processor.<br />
<br />
===More responsive system with ondemand governor===<br />
The default up_threshold (where it will bump to a faster speed) for the CPU governor is 80, which means it will increase the CPU speed when utilization is above 80%. This can make X applications have a bit of lag. <br />
<br />
Try changing this value:<br />
$ sudo bash -c "echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold"<br />
<br />
With 40 it still leaves the majority of CPU cycles at the lowest available clock speed but increases responsiveness. You can add this line to one of your startup scripts (such as {{Filename|/etc/rc.local}}) if you wish to keep it, for example:<br />
<br />
#!/bin/bash<br />
#<br />
# /etc/rc.local: Local multi-user startup script.<br />
#<br />
<br />
echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold<br />
<br />
Also, following line is also reported to help makes system more responsive. You can use it by adding it to your {{Filename|/etc/rc.local}}:<br />
echo 2000000 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate<br />
<br />
===Speeding up udev for faster boot===<br />
*[[Speedup udev]]<br />
*http://dev.laptop.org/ticket/4349<br />
*[http://www.eeesale.com/Asus-Eee-PC-overclock-Benchmarks.htm Speed up the Eee PC]<br />
<br />
You can also disable the autoload by editing your {{Filename|[[rc.conf]]}}:<br />
...<br />
MOD_AUTOLOAD="no"<br />
...<br />
MODULES=(pciehp ath5k)<br />
<br />
===Update your BIOS without Xandros===<br />
{{Warning | You can break your system, do not update if you are not sure of what you are doing!}}<br />
<br />
First, you need to download the ''.rom'' file.<br />
*[http://update.eeepc.asus.com/bios/ Asus' official BIOS]<br />
*[http://forum.eeeuser.com/viewtopic.php?id=3485 EeeUser's topic]<br />
<br />
You also need an USB stick formatted in FAT32. To format the USBStick, use the cfdisk tool:<br />
# cfdisk /dev/sdc # could be something else than "c"<br />
<br />
Choose [delete], [type]: "fat32" (code 0B), [write] and then exit with [quit].<br />
<br />
NOTE to EEE PC 900 owners and possibly others: Using this method will require a flash drive formatted with a '''FAT16''' file-system. If the BIOS update process hangs up at "Reading file 900.ROM" for more than a few minutes then it should be safe to power down your EEE PC and reformat your flashdrive's file-system to the correct one. You can force FAT16 creation with the following command:<br />
# mkdosfs -F 16 /dev/device-path<br />
<br />
Now just copy the ''.rom'' on the USBStick :<br />
$ cp /somewhere/blabla/.../thecurrentnameofthefile.ROM /path/to/mounted/usb_stick/701.rom<br />
The name of the copy '''must''' be xxxx.rom where xxxx is the model of your eee PC. (i.e. 900 users it's 900.rom)<br />
<br />
Next step, reboot the eeepc with the USB stick pluged-in, and press Alt+F2. It will launch the built-in tool. Everything should be Ok, you can make a coffee during the update. When it asks you to push the power-button it has finished.<br />
<br />
At the next boot, you'll be invited to configure the BIOS. Check if the everything is enabled (my webcam and wireless were disabled after the update) and if it displays the good version in the main screen. It's done!<br />
<br />
=== More usable font sizes ===<br />
<br />
====The_glu's method====<br />
<br />
I found an easy solution that works on a 901:<br />
<br />
Edit {{Filename|/etc/X11/xinit/xserverrc}} and add "-dpi 134":<br />
exec /usr/bin/X -nolisten tcp -dpi 134<br />
<br />
Restart X and fonts should have the correct size. Notice it's won't works if you have Xft*dpi: in your {{Filename|.XDefaults}}.<br />
<br />
You don't need to edit your config file to set a smaller font size, I you did you should set font-size to 10 or you will have to small fonts...<br />
<br />
==== Old method ====<br />
<br />
On a default installation with Xfce 4 my font sizes were too big, here is what I did to sort them out.<br />
<br />
First, I set the DPI by adding the following to {{Filename|~/.Xdefaults}}:<br />
Xft*dpi: 134<br />
<br />
This then caused the fonts to be even bigger, so I set them all to be font-size 6 by adding the following into {{Filename|~/.gtkrc-2.0}} (note that this will be overwritten if you use any tools to change GTK settings):<br />
style "user-font"<br />
{<br />
font_name="Bitstream Vera Sans 6"<br />
}<br />
widget_class "*" style "user-font"<br />
<br />
To do the same with KDE fonts (without KDE installed) you have to add the following to {{Filename|~/.kde/share/config/kdeglobals}}:<br />
[General]<br />
StandardFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
activeFont=Bitstream Vera Sans,6,-1,5,75,0,0,0,0,0<br />
fixed=Bitstream Vera Sans Mono,6,-1,5,50,0,0,0,0,0<br />
font=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
menuFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
taskbarFont=Bitstream Vera Sans,6,-1,5,50,1,0,0,0,0<br />
toolBarFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
<br />
To make your fonts even prettier enable the [[Fonts#Fonts_with_LCD_filter_enabled|LCD Fonts]].<br />
<br />
==== Alternative Method ====<br />
<br />
For me it worked far better to open the gnome appearance control panel, go to the fonts tab, click defaults, and change the resolution to be 96 dpi. Changing .Xdefaults doesnt work when running gnome, as gnome-settings-daemon overrides it. You can then leave all font sizes at their default, and things should look good. Simply changing the font sizes and leaving the DPI at its technically correct value (~134) gave me weird layout problems in some apps, and oddly large fonts in others.<br />
<br />
==Known problems and their solutions==<br />
<br />
===Sound===<br />
<br />
For most people, sound should work right out of the box with no troubles. However, others might need to add the following line to {{Filename|/etc/modprobe.conf}}<br />
options snd-hda-intel model=3stack-dig<br />
or the following one for the Eee PC 900 model<br />
options snd-hda-intel model=auto<br />
<br />
If your internal microphone doesn't work, you probably have to turn the capture feature on. Simply fire up alsamixer, find your Capture control, and press spacebar to enable it.<br />
<br />
===Webcam===<br />
<br />
If for some reason webcam have been disabled on your 701, you can enable it by issuing the following command as root: <br />
<br />
echo 1 > /sys/devices/platform/eeepc/camera<br />
<br />
If you want the webcam application that the default Xandos installation uses, install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14469 ucview from the AUR].<br />
<br />
The webcam also works fine with the latest version of Skype.<br />
<br />
If you already have mplayer installed you can launch:<br />
$ mplayer -fps 15 tv://<br />
<br />
I have yet to get it working with vlc or any other software such as xawtv. If you know how, please update this.<br />
<br />
*'''NOTE:''' For anyone who has accidentally disabled Auto Exposure for their webcam in luvcview (making the image dark), and can't enable it again, do the following:<br />
<br />
Install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14468 libwebcam from the AUR].<br />
<br />
Issue the following command:<br />
$ uvcdynctrl --set "Exposure, Auto" 4<br />
<br />
{{Note | Be sure the "OS Installation" option is set to "finished" in the BIOS' "Advanced" tab or your camera may not work in some applications (like Skype).}}<br />
<br />
{{Note | Make sure you are a member of the video group edit /etc/group and add your username to video}}<br />
<br />
===Microphone===<br />
<br />
Solution for problems with the internal microphone.<br />
<br />
1. First of all set in alsamixer "Input Source" to "i-Mic"<br />
<br />
2. Increase "Capture" and "i-Mic Boost" to your needs<br />
<br />
3. Edit {{Filename|/etc/asound.state}} the following, change the 2 "false" to "true" like showing:<br />
....snap.....<br />
control.11 {<br />
comment.access 'read write'<br />
comment.type BOOLEAN<br />
comment.count 2<br />
iface MIXER<br />
name 'Capture Switch'<br />
value.0 true<br />
value.1 true<br />
}<br />
....snap....<br />
<br />
4. After editing run following as root<br />
# alsactl restore<br />
<br />
5. Now your internal microphone should be working.<br />
<br />
===Wireless doesn't work, even after installing custom Madwifi module===<br />
<br />
I found that Arch tried to use the ath5k module for wireless, and that meant it took control of the card rather than ath_pci (the module I had compiled and installed). I got a Madwifi status 3 message in dmesg when this happened.<br />
<br />
The solution is to blacklist the ath5k module in {{Filename|/etc/rc.conf}}:<br />
<br />
MODULES = ( ... !ath5k ... )<br />
<br />
===Laggy or Unresponsive ACPI Events===<br />
<br />
The latest kernel (2.6.26) introduces new problems with Eee's ACPI events handling. Basically, ACPI events become very laggy and after some time ACPI get disabled after a heavy usage (e.g. changing volume, brightness). This problem affects both stock kernel and toofishes' kernel.<br />
<br />
It appears that the solution is to apply this [http://bugzilla.kernel.org/attachment.cgi?id=16862 patch] ([http://bugzilla.kernel.org/show_bug.cgi?id=10724 original bug report]) to the kernel. <br />
<br />
{{Note | The latest toofishes' kernel, version 2.6.26-1, now includes the patch, but you can still use ighea's one for the extras features listed below.}}<br />
<br />
Until toofishes update his kernel to include the patch, you can use ighea's slightly modified toofishes' kernel that included the above patch, as well as other modifications:<br />
<br />
*Support for Wine <br />
*uvesafb is built as module <br />
*Use [http://bbs.archlinux.org/viewtopic.php?pid=393860#p393860 new eeepc-laptop driver] (which also handles fan-control) instead of older acus_acpi or asus-laptop -drivers.<br />
<br />
You can get the modified kernel, as well as the associative packages, from [http://koti.kapsi.fi/~ighea/eee/kernel-eee/ here].<br />
<br />
After you have downloaded the packages, Install them using this command:<br />
# pacman -U kernel-eee-2.6.26-1-i686.pkg.tar.gz madwifi-eee-svn-3752-1-i686.pkg.tar.gz <br />
<br />
You might also want to use IgnorePkg-line in {{Filename|/etc/pacman.conf}} to hold packages from being accidentally updated.<br />
IgnorePkg = kernel-eee madwifi-eee-svn<br />
<br />
Also don't forget to upgrade ighea's acpi-eee package to version 9.6.<br />
<br />
===Unclean unmount during shutdown when having home directory mounted on SD card===<br />
<br />
If you experienced unclean unmount during shutdown when having your home directory on SD card, then add the following 3 lines to "Write to wtmp file before unmounting" section of your {{Filename|/etc/rc.shutdown}} file:<br />
<pre><br />
...<br />
<br />
stat_busy "Unmounting Filesystems"<br />
/bin/umount -a -t noramfs,notmpfs,nosysfs,noproc<br />
<br />
# Add these 3 lines<br />
sync;sync;sync;<br />
eject /dev/sdb # Or whichever is your SD-card's device name. /dev/disk/by-uuid/ followed by the UUID identifier is preferable though.<br />
sleep 3<br />
# End of hack<br />
<br />
stat_done<br />
<br />
...<br />
</pre><br />
<br />
===Booting from card without initrd===<br />
<br />
Let's say you decided to install Arch Linux on a card and compiled your own kernel (or used the kernel26eee kernel) without initrd. Card reader on EeePC is connected as an USB device. Unfortunately, USB storage devices are detected with a delay, so we must tell the kernel to wait until this device becomes available. You do this with "rootwait" option passed to kernel at boot time.<br />
<br />
===Sleeping and waking system on a card===<br />
<br />
If you have Arch Linux on a card, waking up from sleeping state will most likely fail. The only solution is to enable the CONFIG_USB_PERSIST option in kernel. The kernel26eee package should have this option enabled.<br />
<br />
The command to do this is:<br />
echo 1 >/sys/bus/usb/devices/.../power/persist<br />
<br />
Replace the {{Codeline|"..."}} with the device like 1-3 or 1-5 where the first number is the bus and the second is the device <br />
<br />
Each device that is connected to your computer gets an entry in the sysfs "system file system" it is a virtual file system like proc<br />
<br />
More info:<br />
*http://www.mjmwired.net/kernel/Documentation/usb/persist.txt<br />
*http://forum.eeeuser.com/viewtopic.php?id=22712<br />
<br />
===Display doesn't wake up properly===<br />
<br />
If you encounter black display (but apparently working system) after suspend/resume, consider using the "uswsusp" package (available in the official repositories) and correcting suspend2ram script in /etc/acpi, where you use this line to make the machine go to sleep:<br />
<br />
/usr/sbin/s2ram --force --vbe_post --vbe_mode<br />
<br />
==Battery Tests==<br />
<br />
The following are reported battery runtimes:<br />
<br />
{| class="wikitable" style="text-align:left"<br />
|+Battery runtimes<br />
|-<br />
! Task !! Series !! Wireless !! Screen Brightness !! FSB Speed !! Fan Speed !! Runtime !! Comments<br />
|-<br />
! DVD Playback<br />
| 701 || On || Max || 85mhz || 100% || 134min || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! DVD Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! AVI Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading AVI from SSD<br />
|-<br />
! IM and Surf<br />
| 701 || On || ~30% || ??? || low || 173min || Normal web-browsing, Flash should reduce runtime a lot !<br />
|-<br />
! Programming and PDF reading<br />
| 1000HA || Off || ~40% || ??? || low || +6hs || Using Evince and SPE under XFCE with camera and USB disabled<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || +4hs || Stock kernel without laptop-mode<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || 5hs || Stock kernel with laptop-mode and other tweaks<br />
|}<br />
<br />
N.B. - Will add battery runtimes as I am able to test them, please contribute.<br />
<br />
-- Grecko.1<br />
<br />
Still tweaking, but disabling everything from BIOS got me about 6 hours and a half. With eee-kernel, I *could* get a little more.<br />
<br />
-- ekuber</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=ASUS_Eee_PC_701&diff=86394ASUS Eee PC 7012009-12-05T14:38:57Z<p>Zodmaner: /* Install X */</p>
<hr />
<div>{{stub}}<br />
[[Category:Getting and installing Arch (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|Русский|Инсталляция Arch Linux на Asus EEE PC}}<br />
{{i18n_links_end}}<br />
<br />
Most of this information is from the [http://bbs.archlinux.org/viewtopic.php?pid=297632 Arch Forum]. You can also find a lot of helpful information from the [http://forum.eeeuser.com/ EEEUser Forum]. <br />
<br />
==Before You Begin==<br />
<br />
===Avoiding Pitfalls===<br />
<br />
The install is pretty normal, except that you'll need to [http://forum.eeeuser.com/viewtopic.php?id=890 avoid the pitfalls] of our alternative Linux install:<br />
<br />
# Never choose to use a journaling file system on the SSD partitions<br />
# Never use a swap partition on the SSD<br />
# Edit your new installation fstab to mount the SSD partitions "noatime"<br />
# Never log messages or error log to the SSD<br />
<br />
The rules ensure that we won't reach the maximum limit of writes on our SSD faster than we should, although this is being contested (see [http://wiki.eeeuser.com/ssd_write_limit this link] and [http://www.storagesearch.com/ssdmyths-endurance.html this other link]).<br />
<br />
Some other minor modifications can be made to decrease number of non-mandatory writes by applications: deactivate {{Filename|~/.viminfo}} in vi, deactivate less history file ({{Filename|~/.lesshst}}), and so on.<br />
<br />
===Choosing Your Installation Media===<br />
<br />
The Eee PC does not have an optical drive installed on the machine. This means you will need to install Arch Linux through one of the alternative methods:<br />
<br />
# [[Beginners_Guide#USB_stick|USB stick]] '''(Recommended)'''<br />
# External USB CD-ROM drive<br />
# [[PXE|Network (PXE)]]<br />
<br />
==Installing Arch Linux==<br />
<br />
With the release of the 2009.08 installation media, installing Arch Linux on Asus Eee PC model 701 is pretty easy and straightforward since the stock kernel on Arch installation media support all of the 701 hardwares out of the box. <br />
<br />
Therefore, aside from the following pointers specific to the 701 described below, there shouldn't be any other major differences between installing Arch Linux on the 701 and any other computer. You should be able to successfully install Arch on the 701 by following instructions on [[Beginners_Guide|Beginners' Guide]] without any problem.<br />
<br />
===Prepare Hard Drive===<br />
<br />
The most important different between the 701 and other machines is that the 701 use SSD drive instead of normal hard drive. This section advise on how to set up a partition scheme that is best suited to the 701. <br />
<br />
The default Eee PC drive is split up into four partitions (here is [http://forum.eeeuser.com/viewtopic.php?id=1805 some information] about the partitioning): <br />
<br />
* It is easiest to wipe the existing partitions and use one or two partitions for your install. One partition would be just '/', and two partitions would be '/boot' and '/'.<br />
* Choose "NONE" for swap in case your eee has a SSD (see #2 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]])<br />
* Select "ext2" as your filesystem in case your eee has a SSD (see #1 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]]). If your model has a standard HD choose "ext3".<br />
<br />
===Install X===<br />
<br />
Install X by follow instructions on the [[Beginners_Guide#Step_2:_Install_X|Beginners' Guide]], then install the Intel graphics driver:<br />
# pacman -Sy xf86-video-intel<br />
<br />
You must also install the Synaptics drivers for touchpad support (not needed for Eee PC 900):<br />
# pacman -Sy xf86-input-synaptics<br />
<br />
With the latest version of X from extra repository, X should work on the 701 '''without any need for xorg.conf'''. However, if for some reason you wish to use an xorg.conf file, you can use an old [[Example_Xorg_configuration_file_for_Asus_Eee_PC_701|example Xorg configuration file for Asus Eee PC model 701]] as a template or automatically generate a new one by running the following command:<br />
<br />
# Xorg -configure<br />
<br />
Consult [[Xorg_input_hotplugging|Xorg Input Hotplugging]] for more information on how to config input devices using HAL.<br />
<br />
The synaptics stuff can be removed if you have a EEE PC 900. The {{Codeline|Option "AutoAddDevices"}} line is important if you need a non-default XkbLayout, because if you don't have it, xorg will find 3 keyboards (at least with the 900 model).<br />
The Modeline has obviously to be removed or modified if you dont have a model with this resolution.<br />
<br />
===Getting Hot Keys, Graphic Indicators and Shutdown with the Power Button Working===<br />
<br />
If you want to have working hot keys (wifi, brightness, volume etc), an OSD, and be able to assign actions to things like the powerbutton and closing the lid, then you should install '''ighea's acpi-eee''' package.<br />
<br />
==== ighea's acpi-eee ====<br />
<br />
Get the latest package from [http://kapsi.fi/ighea/eee/acpi-eee/ here].<br />
<br />
The package can be easily installed with:<br />
# pacman -U acpi-eee-10.0-1-i686.pkg.tar.gz<br />
<br />
See messages during installation for more details and don't forget to edit {{Filename|/etc/acpi/eee.conf}} to suit your tastes.<br />
<br />
*For those who use the wireless on/off acpi command; the {{Codeline|NETWORK_UP_COMMAND&#61;""}} setting in {{Filename|/etc/acpi/eee.conf}}, when applicable, should at least release the network. For example, using netcfg2, {{Codeline|NETWORK_UP_COMMAND&#61;"netcfg2 -a"}} will release the connections from before disabling wireless, allowing new ones to be made without netcfg thinking that it's already connected. It is also possible to reconnect to your previous network, however, the network tool you use needs to have a somewhat lengthy timeout as it takes 15-20 seconds for your wireless device to reappear. <br />
<br />
{{Note | Make sure '''asusosd''' is enabled on startup if you want to have the Graphic Indicators from Xandros. To run asusosd simply type {{Codeline|asusosd &}} at a command prompt.}}<br />
<br />
==Asus Eee PC model 701 repository from toofishes==<br />
<br />
Toofishes created a repository for the 701. The repository contained customized kernel built specifically for the 701 and some additional packages. <br />
<br />
While the stock Arch kernel works very well with the 701, toofishes kernel have the following advantages:<br />
<br />
* Faster boot time &ndash; because most of the modules have been compile into the kernel, no time is wasted waiting for the modules to load<br />
* No need to generate initial ramdisk every time a kernel is upgrade <br />
* Small size (around 4MB)<br />
<br />
To use the repository, add:<br />
[eee]<br />
Server = http://code.toofishes.net/packages/eee<br />
to your {{Filename|/etc/pacman.conf}} and then issue:<br />
pacman -Syu<br />
<br />
===Package List===<br />
Currently, toofishes' repository contains the following packages:<br />
<br />
*'''kernel-eee''' &ndash; customized kernel for Asus Eee PC model 701<br />
*'''luvcview''' &ndash; webcam program for testing webcam driver<br />
<br />
===Kernel-eee Installation Instruction===<br />
Simply use pacman to install the package you need. Install the packages with this command:<br />
# pacman -Sy kernel-eee<br />
<br />
then, add the following to {{Filename|/boot/grub/menu.lst}}; note that no initrd is needed:<br />
# (2) Arch Linux<br />
title Arch Linux Eee kernel<br />
root (hd0,0)<br />
kernel /boot/vmlinuzeee root=/dev/sda1 ro<br />
<br />
Restart and select Arch Linux Eee kernel from the grub boot menu.<br />
<br />
==Additional Tips & Tweaks==<br />
<br />
===Tweaking kernel-eee===<br />
<br />
Toofishes' kernel, also known as kernel-eee, can be recompiled to include custom features. You can download toofishes' kernel PKGBUILD and all the nesseary files from his gitweb by installing the git package and using the following command:<br />
<br />
$ git clone git://code.toofishes.net/dan/eee.git<br />
<br />
or if you are behind a proxy and can't use the git protocol:<br />
<br />
$ git clone http://code.toofishes.net/git/dan/eee.git<br />
<br />
There are two ways to tweak the kernel. The first is simply to edit the {{Filename|kernelconfig}} file with your favorite editor and the second is to insert a {{Codeline|make menuconfig}} line into the PKGBUILD before the kernel's compilation.<br />
<br />
===Using Wine with toofishes' kernel===<br />
<br />
Normally, Wine won't work with toofishes' kernel because it is compiled with VMSPLIT_2G_OPT option. In order to use Wine with toofishes' kernel, you have to recompile his kernel with VMSPLIT_3G option.<br />
<br />
Download the kernel PKGBUILD and all the necessary files from toofishes' gitweb using the above instructions, then change the following lines in the {{Filename|kernelconfig}} file from this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 # CONFIG_VMSPLIT_3G is not set<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 CONFIG_VMSPLIT_2G_OPT=y<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
to this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 CONFIG_VMSPLIT_3G=y<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 # CONFIG_VMSPLIT_2G_OPT is not set<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
<br />
Compile and install the kernel and Wine should now work.<br />
<br />
===Power down with the power button===<br />
<br />
{{Note | If you are using ighea's acpi-eee or dkite's acpid_eee package then you should already be able to shutdown by pressing the power button and should not need to do this.}}<br />
<br />
The two alternatives here are described in [[Allow users to shutdown]].<br />
<br />
If you don't already or don't plan to use sudo, it may be simpler to use the setuid /sbin/halt method, otherwise using sudo is preferred.<br />
<br />
Below are all the steps required for the sudo method. If you want to use the setuid method, read the article linked above and perform the 'power' file step here, while omitting the 'sudo' in it.<br />
<br />
# pacman -S sudo<br />
<br />
As root, do the following:<br />
# visudo<br />
<br />
Add the following line to the file:<br />
USER HOST = NOPASSWD: /sbin/poweroff<br />
<br />
Where {{Codeline|USER}} is the user you want to be able to power down with and {{Codeline|HOST}} is your hostname (from {{Filename|/etc/rc.conf}}).<br />
<br />
Now, create a file called {{Filename|/etc/acpi/events/power}}, containing:<br />
# /etc/acpi/events/power<br />
# This is called when the user presses the power button<br />
<br />
event=button/power (PWR.||PBTN)<br />
action=sudo /sbin/poweroff<br />
<br />
Make sure that you execute:<br />
# /etc/rc.d/acpid start<br />
<br />
And/or add acpid to the daemons list in {{Filename|/etc/rc.conf}}:<br />
DAEMONS=(hal, acpid ...)<br />
<br />
===Use cpufreq for power saving===<br />
<br />
{{Note | toofishes dropped CPU scaling from his latest kernel builds, due to the fact, confirmed by other users, that there were no effective power savings with p4-clockmod's module, and it introduced "unacceptable latency", even with relatively low percentage up thresholds.}}<br />
<br />
Install cpufrequtitls:<br />
# pacman -S cpufrequtils<br />
<br />
For scaling down the processor you have to load the p4_clockmod module. Insert it into your {{Filename|/etc/rc.conf}} MODULES array for loading it at startup. <br />
MODULES=(... p4_clockmod ...)<br />
<br />
{{Note | The merits of p4-clockmod are debatable. Particularly on the EEEPC 701, battery time isn't extended due to its usage, and some users have even reported less battery duration. More hints to the reasons why can be read in [http://www.codemonkey.org.uk/2009/01/18/forthcoming-p4clockmod/ this] fine blog entry.}}<br />
<br />
Add 'cpufreq' to the DAEMONS array in {{Filename|/etc/rc.conf}} to have it start on startup.<br />
DAEMONS=(... cpufreq ...)<br />
<br />
Add the following into {{Filename|/etc/conf.d/cpufreq}}:<br />
governor="ondemand"<br />
min_freq="113MHz"<br />
max_freq="900MHz"<br />
<br />
With enabled cpufreq it scales the processor between 113MHz up to max. frequency. That should save a lot on battery power. The stated 900MHz will be never reached by the eeePC, the p4_clockmod reports a wrong frequency here. But scaling works, you can feel it in the performance of eeePC that he slow down the processor.<br />
<br />
===More responsive system with ondemand governor===<br />
The default up_threshold (where it will bump to a faster speed) for the CPU governor is 80, which means it will increase the CPU speed when utilization is above 80%. This can make X applications have a bit of lag. <br />
<br />
Try changing this value:<br />
$ sudo bash -c "echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold"<br />
<br />
With 40 it still leaves the majority of CPU cycles at the lowest available clock speed but increases responsiveness. You can add this line to one of your startup scripts (such as {{Filename|/etc/rc.local}}) if you wish to keep it, for example:<br />
<br />
#!/bin/bash<br />
#<br />
# /etc/rc.local: Local multi-user startup script.<br />
#<br />
<br />
echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold<br />
<br />
Also, following line is also reported to help makes system more responsive. You can use it by adding it to your {{Filename|/etc/rc.local}}:<br />
echo 2000000 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate<br />
<br />
===Speeding up udev for faster boot===<br />
*[[Speedup udev]]<br />
*http://dev.laptop.org/ticket/4349<br />
*[http://www.eeesale.com/Asus-Eee-PC-overclock-Benchmarks.htm Speed up the Eee PC]<br />
<br />
You can also disable the autoload by editing your {{Filename|[[rc.conf]]}}:<br />
...<br />
MOD_AUTOLOAD="no"<br />
...<br />
MODULES=(pciehp ath5k)<br />
<br />
===Update your BIOS without Xandros===<br />
{{Warning | You can break your system, do not update if you are not sure of what you are doing!}}<br />
<br />
First, you need to download the ''.rom'' file.<br />
*[http://update.eeepc.asus.com/bios/ Asus' official BIOS]<br />
*[http://forum.eeeuser.com/viewtopic.php?id=3485 EeeUser's topic]<br />
<br />
You also need an USB stick formatted in FAT32. To format the USBStick, use the cfdisk tool:<br />
# cfdisk /dev/sdc # could be something else than "c"<br />
<br />
Choose [delete], [type]: "fat32" (code 0B), [write] and then exit with [quit].<br />
<br />
NOTE to EEE PC 900 owners and possibly others: Using this method will require a flash drive formatted with a '''FAT16''' file-system. If the BIOS update process hangs up at "Reading file 900.ROM" for more than a few minutes then it should be safe to power down your EEE PC and reformat your flashdrive's file-system to the correct one. You can force FAT16 creation with the following command:<br />
# mkdosfs -F 16 /dev/device-path<br />
<br />
Now just copy the ''.rom'' on the USBStick :<br />
$ cp /somewhere/blabla/.../thecurrentnameofthefile.ROM /path/to/mounted/usb_stick/701.rom<br />
The name of the copy '''must''' be xxxx.rom where xxxx is the model of your eee PC. (i.e. 900 users it's 900.rom)<br />
<br />
Next step, reboot the eeepc with the USB stick pluged-in, and press Alt+F2. It will launch the built-in tool. Everything should be Ok, you can make a coffee during the update. When it asks you to push the power-button it has finished.<br />
<br />
At the next boot, you'll be invited to configure the BIOS. Check if the everything is enabled (my webcam and wireless were disabled after the update) and if it displays the good version in the main screen. It's done!<br />
<br />
=== More usable font sizes ===<br />
<br />
====The_glu's method====<br />
<br />
I found an easy solution that works on a 901:<br />
<br />
Edit {{Filename|/etc/X11/xinit/xserverrc}} and add "-dpi 134":<br />
exec /usr/bin/X -nolisten tcp -dpi 134<br />
<br />
Restart X and fonts should have the correct size. Notice it's won't works if you have Xft*dpi: in your {{Filename|.XDefaults}}.<br />
<br />
You don't need to edit your config file to set a smaller font size, I you did you should set font-size to 10 or you will have to small fonts...<br />
<br />
==== Old method ====<br />
<br />
On a default installation with Xfce 4 my font sizes were too big, here is what I did to sort them out.<br />
<br />
First, I set the DPI by adding the following to {{Filename|~/.Xdefaults}}:<br />
Xft*dpi: 134<br />
<br />
This then caused the fonts to be even bigger, so I set them all to be font-size 6 by adding the following into {{Filename|~/.gtkrc-2.0}} (note that this will be overwritten if you use any tools to change GTK settings):<br />
style "user-font"<br />
{<br />
font_name="Bitstream Vera Sans 6"<br />
}<br />
widget_class "*" style "user-font"<br />
<br />
To do the same with KDE fonts (without KDE installed) you have to add the following to {{Filename|~/.kde/share/config/kdeglobals}}:<br />
[General]<br />
StandardFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
activeFont=Bitstream Vera Sans,6,-1,5,75,0,0,0,0,0<br />
fixed=Bitstream Vera Sans Mono,6,-1,5,50,0,0,0,0,0<br />
font=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
menuFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
taskbarFont=Bitstream Vera Sans,6,-1,5,50,1,0,0,0,0<br />
toolBarFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
<br />
To make your fonts even prettier enable the [[Fonts#Fonts_with_LCD_filter_enabled|LCD Fonts]].<br />
<br />
==== Alternative Method ====<br />
<br />
For me it worked far better to open the gnome appearance control panel, go to the fonts tab, click defaults, and change the resolution to be 96 dpi. Changing .Xdefaults doesnt work when running gnome, as gnome-settings-daemon overrides it. You can then leave all font sizes at their default, and things should look good. Simply changing the font sizes and leaving the DPI at its technically correct value (~134) gave me weird layout problems in some apps, and oddly large fonts in others.<br />
<br />
==Known problems and their solutions==<br />
<br />
===Sound===<br />
<br />
For most people, sound should work right out of the box with no troubles. However, others might need to add the following line to {{Filename|/etc/modprobe.conf}}<br />
options snd-hda-intel model=3stack-dig<br />
or the following one for the Eee PC 900 model<br />
options snd-hda-intel model=auto<br />
<br />
If your internal microphone doesn't work, you probably have to turn the capture feature on. Simply fire up alsamixer, find your Capture control, and press spacebar to enable it.<br />
<br />
===Webcam===<br />
<br />
If for some reason webcam have been disabled on your 701, you can enable it by issuing the following command as root: <br />
<br />
echo 1 > /sys/devices/platform/eeepc/camera<br />
<br />
If you want the webcam application that the default Xandos installation uses, install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14469 ucview from the AUR].<br />
<br />
The webcam also works fine with the latest version of Skype.<br />
<br />
If you already have mplayer installed you can launch:<br />
$ mplayer -fps 15 tv://<br />
<br />
I have yet to get it working with vlc or any other software such as xawtv. If you know how, please update this.<br />
<br />
*'''NOTE:''' For anyone who has accidentally disabled Auto Exposure for their webcam in luvcview (making the image dark), and can't enable it again, do the following:<br />
<br />
Install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14468 libwebcam from the AUR].<br />
<br />
Issue the following command:<br />
$ uvcdynctrl --set "Exposure, Auto" 4<br />
<br />
{{Note | Be sure the "OS Installation" option is set to "finished" in the BIOS' "Advanced" tab or your camera may not work in some applications (like Skype).}}<br />
<br />
{{Note | Make sure you are a member of the video group edit /etc/group and add your username to video}}<br />
<br />
===Microphone===<br />
<br />
Solution for problems with the internal microphone.<br />
<br />
1. First of all set in alsamixer "Input Source" to "i-Mic"<br />
<br />
2. Increase "Capture" and "i-Mic Boost" to your needs<br />
<br />
3. Edit {{Filename|/etc/asound.state}} the following, change the 2 "false" to "true" like showing:<br />
....snap.....<br />
control.11 {<br />
comment.access 'read write'<br />
comment.type BOOLEAN<br />
comment.count 2<br />
iface MIXER<br />
name 'Capture Switch'<br />
value.0 true<br />
value.1 true<br />
}<br />
....snap....<br />
<br />
4. After editing run following as root<br />
# alsactl restore<br />
<br />
5. Now your internal microphone should be working.<br />
<br />
===Wireless doesn't work, even after installing custom Madwifi module===<br />
<br />
I found that Arch tried to use the ath5k module for wireless, and that meant it took control of the card rather than ath_pci (the module I had compiled and installed). I got a Madwifi status 3 message in dmesg when this happened.<br />
<br />
The solution is to blacklist the ath5k module in {{Filename|/etc/rc.conf}}:<br />
<br />
MODULES = ( ... !ath5k ... )<br />
<br />
===Laggy or Unresponsive ACPI Events===<br />
<br />
The latest kernel (2.6.26) introduces new problems with Eee's ACPI events handling. Basically, ACPI events become very laggy and after some time ACPI get disabled after a heavy usage (e.g. changing volume, brightness). This problem affects both stock kernel and toofishes' kernel.<br />
<br />
It appears that the solution is to apply this [http://bugzilla.kernel.org/attachment.cgi?id=16862 patch] ([http://bugzilla.kernel.org/show_bug.cgi?id=10724 original bug report]) to the kernel. <br />
<br />
{{Note | The latest toofishes' kernel, version 2.6.26-1, now includes the patch, but you can still use ighea's one for the extras features listed below.}}<br />
<br />
Until toofishes update his kernel to include the patch, you can use ighea's slightly modified toofishes' kernel that included the above patch, as well as other modifications:<br />
<br />
*Support for Wine <br />
*uvesafb is built as module <br />
*Use [http://bbs.archlinux.org/viewtopic.php?pid=393860#p393860 new eeepc-laptop driver] (which also handles fan-control) instead of older acus_acpi or asus-laptop -drivers.<br />
<br />
You can get the modified kernel, as well as the associative packages, from [http://koti.kapsi.fi/~ighea/eee/kernel-eee/ here].<br />
<br />
After you have downloaded the packages, Install them using this command:<br />
# pacman -U kernel-eee-2.6.26-1-i686.pkg.tar.gz madwifi-eee-svn-3752-1-i686.pkg.tar.gz <br />
<br />
You might also want to use IgnorePkg-line in {{Filename|/etc/pacman.conf}} to hold packages from being accidentally updated.<br />
IgnorePkg = kernel-eee madwifi-eee-svn<br />
<br />
Also don't forget to upgrade ighea's acpi-eee package to version 9.6.<br />
<br />
===Unclean unmount during shutdown when having home directory mounted on SD card===<br />
<br />
If you experienced unclean unmount during shutdown when having your home directory on SD card, then add the following 3 lines to "Write to wtmp file before unmounting" section of your {{Filename|/etc/rc.shutdown}} file:<br />
<pre><br />
...<br />
<br />
stat_busy "Unmounting Filesystems"<br />
/bin/umount -a -t noramfs,notmpfs,nosysfs,noproc<br />
<br />
# Add these 3 lines<br />
sync;sync;sync;<br />
eject /dev/sdb # Or whichever is your SD-card's device name. /dev/disk/by-uuid/ followed by the UUID identifier is preferable though.<br />
sleep 3<br />
# End of hack<br />
<br />
stat_done<br />
<br />
...<br />
</pre><br />
<br />
===Booting from card without initrd===<br />
<br />
Let's say you decided to install Arch Linux on a card and compiled your own kernel (or used the kernel26eee kernel) without initrd. Card reader on EeePC is connected as an USB device. Unfortunately, USB storage devices are detected with a delay, so we must tell the kernel to wait until this device becomes available. You do this with "rootwait" option passed to kernel at boot time.<br />
<br />
===Sleeping and waking system on a card===<br />
<br />
If you have Arch Linux on a card, waking up from sleeping state will most likely fail. The only solution is to enable the CONFIG_USB_PERSIST option in kernel. The kernel26eee package should have this option enabled.<br />
<br />
The command to do this is:<br />
echo 1 >/sys/bus/usb/devices/.../power/persist<br />
<br />
Replace the {{Codeline|"..."}} with the device like 1-3 or 1-5 where the first number is the bus and the second is the device <br />
<br />
Each device that is connected to your computer gets an entry in the sysfs "system file system" it is a virtual file system like proc<br />
<br />
More info:<br />
*http://www.mjmwired.net/kernel/Documentation/usb/persist.txt<br />
*http://forum.eeeuser.com/viewtopic.php?id=22712<br />
<br />
===Display doesn't wake up properly===<br />
<br />
If you encounter black display (but apparently working system) after suspend/resume, consider using the "uswsusp" package (available in the official repositories) and correcting suspend2ram script in /etc/acpi, where you use this line to make the machine go to sleep:<br />
<br />
/usr/sbin/s2ram --force --vbe_post --vbe_mode<br />
<br />
==Battery Tests==<br />
<br />
The following are reported battery runtimes:<br />
<br />
{| class="wikitable" style="text-align:left"<br />
|+Battery runtimes<br />
|-<br />
! Task !! Series !! Wireless !! Screen Brightness !! FSB Speed !! Fan Speed !! Runtime !! Comments<br />
|-<br />
! DVD Playback<br />
| 701 || On || Max || 85mhz || 100% || 134min || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! DVD Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! AVI Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading AVI from SSD<br />
|-<br />
! IM and Surf<br />
| 701 || On || ~30% || ??? || low || 173min || Normal web-browsing, Flash should reduce runtime a lot !<br />
|-<br />
! Programming and PDF reading<br />
| 1000HA || Off || ~40% || ??? || low || +6hs || Using Evince and SPE under XFCE with camera and USB disabled<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || +4hs || Stock kernel without laptop-mode<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || 5hs || Stock kernel with laptop-mode and other tweaks<br />
|}<br />
<br />
N.B. - Will add battery runtimes as I am able to test them, please contribute.<br />
<br />
-- Grecko.1<br />
<br />
Still tweaking, but disabling everything from BIOS got me about 6 hours and a half. With eee-kernel, I *could* get a little more.<br />
<br />
-- ekuber</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=ASUS_Eee_PC_701&diff=86378ASUS Eee PC 7012009-12-05T10:31:07Z<p>Zodmaner: /* Use cpufreq for power saving */</p>
<hr />
<div>{{stub}}<br />
[[Category:Getting and installing Arch (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|Русский|Инсталляция Arch Linux на Asus EEE PC}}<br />
{{i18n_links_end}}<br />
<br />
Most of this information is from the [http://bbs.archlinux.org/viewtopic.php?pid=297632 Arch Forum]. You can also find a lot of helpful information from the [http://forum.eeeuser.com/ EEEUser Forum]. <br />
<br />
==Before You Begin==<br />
<br />
===Avoiding Pitfalls===<br />
<br />
The install is pretty normal, except that you'll need to [http://forum.eeeuser.com/viewtopic.php?id=890 avoid the pitfalls] of our alternative Linux install:<br />
<br />
# Never choose to use a journaling file system on the SSD partitions<br />
# Never use a swap partition on the SSD<br />
# Edit your new installation fstab to mount the SSD partitions "noatime"<br />
# Never log messages or error log to the SSD<br />
<br />
The rules ensure that we won't reach the maximum limit of writes on our SSD faster than we should, although this is being contested (see [http://wiki.eeeuser.com/ssd_write_limit this link] and [http://www.storagesearch.com/ssdmyths-endurance.html this other link]).<br />
<br />
Some other minor modifications can be made to decrease number of non-mandatory writes by applications: deactivate {{Filename|~/.viminfo}} in vi, deactivate less history file ({{Filename|~/.lesshst}}), and so on.<br />
<br />
===Choosing Your Installation Media===<br />
<br />
The Eee PC does not have an optical drive installed on the machine. This means you will need to install Arch Linux through one of the alternative methods:<br />
<br />
# [[Beginners_Guide#USB_stick|USB stick]] '''(Recommended)'''<br />
# External USB CD-ROM drive<br />
# [[PXE|Network (PXE)]]<br />
<br />
==Installing Arch Linux==<br />
<br />
With the release of the 2009.08 installation media, installing Arch Linux on Asus Eee PC model 701 is pretty easy and straightforward since the stock kernel on Arch installation media support all of the 701 hardwares out of the box. <br />
<br />
Therefore, aside from the following pointers specific to the 701 described below, there shouldn't be any other major differences between installing Arch Linux on the 701 and any other computer. You should be able to successfully install Arch on the 701 by following instructions on [[Beginners_Guide|Beginners' Guide]] without any problem.<br />
<br />
===Prepare Hard Drive===<br />
<br />
The most important different between the 701 and other machines is that the 701 use SSD drive instead of normal hard drive. This section advise on how to set up a partition scheme that is best suited to the 701. <br />
<br />
The default Eee PC drive is split up into four partitions (here is [http://forum.eeeuser.com/viewtopic.php?id=1805 some information] about the partitioning): <br />
<br />
* It is easiest to wipe the existing partitions and use one or two partitions for your install. One partition would be just '/', and two partitions would be '/boot' and '/'.<br />
* Choose "NONE" for swap in case your eee has a SSD (see #2 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]])<br />
* Select "ext2" as your filesystem in case your eee has a SSD (see #1 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]]). If your model has a standard HD choose "ext3".<br />
<br />
===Install X===<br />
<br />
Install X by follow instructions on the [[Beginners_Guide#Step_2:_Install_X|Beginners' Guide]], then install the Intel graphics driver:<br />
# pacman -Sy xf86-video-intel<br />
<br />
You may also wish to install the Synaptics drivers for the touchpad (not needed for Eee PC 900):<br />
# pacman -Sy xf86-input-synaptics<br />
<br />
With the latest version of X from extra repository, X should work on the 701 '''without any need for xorg.conf'''. However, if for some reason you wish to use an xorg.conf file, you can use an old [[Example_Xorg_configuration_file_for_Asus_Eee_PC_701|example Xorg configuration file for Asus Eee PC model 701]] as a template or automatically generate a new one by running the following command:<br />
<br />
# Xorg -configure<br />
<br />
Consult [[Xorg_input_hotplugging|Xorg Input Hotplugging]] for more information on how to config input devices using HAL.<br />
<br />
The synaptics stuff can be removed if you have a EEE PC 900. The {{Codeline|Option "AutoAddDevices"}} line is important if you need a non-default XkbLayout, because if you don't have it, xorg will find 3 keyboards (at least with the 900 model).<br />
The Modeline has obviously to be removed or modified if you dont have a model with this resolution.<br />
<br />
===Getting Hot Keys, Graphic Indicators and Shutdown with the Power Button Working===<br />
<br />
If you want to have working hot keys (wifi, brightness, volume etc), an OSD, and be able to assign actions to things like the powerbutton and closing the lid, then you should install '''ighea's acpi-eee''' package.<br />
<br />
==== ighea's acpi-eee ====<br />
<br />
Get the latest package from [http://kapsi.fi/ighea/eee/acpi-eee/ here].<br />
<br />
The package can be easily installed with:<br />
# pacman -U acpi-eee-10.0-1-i686.pkg.tar.gz<br />
<br />
See messages during installation for more details and don't forget to edit {{Filename|/etc/acpi/eee.conf}} to suit your tastes.<br />
<br />
*For those who use the wireless on/off acpi command; the {{Codeline|NETWORK_UP_COMMAND&#61;""}} setting in {{Filename|/etc/acpi/eee.conf}}, when applicable, should at least release the network. For example, using netcfg2, {{Codeline|NETWORK_UP_COMMAND&#61;"netcfg2 -a"}} will release the connections from before disabling wireless, allowing new ones to be made without netcfg thinking that it's already connected. It is also possible to reconnect to your previous network, however, the network tool you use needs to have a somewhat lengthy timeout as it takes 15-20 seconds for your wireless device to reappear. <br />
<br />
{{Note | Make sure '''asusosd''' is enabled on startup if you want to have the Graphic Indicators from Xandros. To run asusosd simply type {{Codeline|asusosd &}} at a command prompt.}}<br />
<br />
==Asus Eee PC model 701 repository from toofishes==<br />
<br />
Toofishes created a repository for the 701. The repository contained customized kernel built specifically for the 701 and some additional packages. <br />
<br />
While the stock Arch kernel works very well with the 701, toofishes kernel have the following advantages:<br />
<br />
* Faster boot time &ndash; because most of the modules have been compile into the kernel, no time is wasted waiting for the modules to load<br />
* No need to generate initial ramdisk every time a kernel is upgrade <br />
* Small size (around 4MB)<br />
<br />
To use the repository, add:<br />
[eee]<br />
Server = http://code.toofishes.net/packages/eee<br />
to your {{Filename|/etc/pacman.conf}} and then issue:<br />
pacman -Syu<br />
<br />
===Package List===<br />
Currently, toofishes' repository contains the following packages:<br />
<br />
*'''kernel-eee''' &ndash; customized kernel for Asus Eee PC model 701<br />
*'''luvcview''' &ndash; webcam program for testing webcam driver<br />
<br />
===Kernel-eee Installation Instruction===<br />
Simply use pacman to install the package you need. Install the packages with this command:<br />
# pacman -Sy kernel-eee<br />
<br />
then, add the following to {{Filename|/boot/grub/menu.lst}}; note that no initrd is needed:<br />
# (2) Arch Linux<br />
title Arch Linux Eee kernel<br />
root (hd0,0)<br />
kernel /boot/vmlinuzeee root=/dev/sda1 ro<br />
<br />
Restart and select Arch Linux Eee kernel from the grub boot menu.<br />
<br />
==Additional Tips & Tweaks==<br />
<br />
===Tweaking kernel-eee===<br />
<br />
Toofishes' kernel, also known as kernel-eee, can be recompiled to include custom features. You can download toofishes' kernel PKGBUILD and all the nesseary files from his gitweb by installing the git package and using the following command:<br />
<br />
$ git clone git://code.toofishes.net/dan/eee.git<br />
<br />
or if you are behind a proxy and can't use the git protocol:<br />
<br />
$ git clone http://code.toofishes.net/git/dan/eee.git<br />
<br />
There are two ways to tweak the kernel. The first is simply to edit the {{Filename|kernelconfig}} file with your favorite editor and the second is to insert a {{Codeline|make menuconfig}} line into the PKGBUILD before the kernel's compilation.<br />
<br />
===Using Wine with toofishes' kernel===<br />
<br />
Normally, Wine won't work with toofishes' kernel because it is compiled with VMSPLIT_2G_OPT option. In order to use Wine with toofishes' kernel, you have to recompile his kernel with VMSPLIT_3G option.<br />
<br />
Download the kernel PKGBUILD and all the necessary files from toofishes' gitweb using the above instructions, then change the following lines in the {{Filename|kernelconfig}} file from this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 # CONFIG_VMSPLIT_3G is not set<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 CONFIG_VMSPLIT_2G_OPT=y<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
to this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 CONFIG_VMSPLIT_3G=y<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 # CONFIG_VMSPLIT_2G_OPT is not set<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
<br />
Compile and install the kernel and Wine should now work.<br />
<br />
===Power down with the power button===<br />
<br />
{{Note | If you are using ighea's acpi-eee or dkite's acpid_eee package then you should already be able to shutdown by pressing the power button and should not need to do this.}}<br />
<br />
The two alternatives here are described in [[Allow users to shutdown]].<br />
<br />
If you don't already or don't plan to use sudo, it may be simpler to use the setuid /sbin/halt method, otherwise using sudo is preferred.<br />
<br />
Below are all the steps required for the sudo method. If you want to use the setuid method, read the article linked above and perform the 'power' file step here, while omitting the 'sudo' in it.<br />
<br />
# pacman -S sudo<br />
<br />
As root, do the following:<br />
# visudo<br />
<br />
Add the following line to the file:<br />
USER HOST = NOPASSWD: /sbin/poweroff<br />
<br />
Where {{Codeline|USER}} is the user you want to be able to power down with and {{Codeline|HOST}} is your hostname (from {{Filename|/etc/rc.conf}}).<br />
<br />
Now, create a file called {{Filename|/etc/acpi/events/power}}, containing:<br />
# /etc/acpi/events/power<br />
# This is called when the user presses the power button<br />
<br />
event=button/power (PWR.||PBTN)<br />
action=sudo /sbin/poweroff<br />
<br />
Make sure that you execute:<br />
# /etc/rc.d/acpid start<br />
<br />
And/or add acpid to the daemons list in {{Filename|/etc/rc.conf}}:<br />
DAEMONS=(hal, acpid ...)<br />
<br />
===Use cpufreq for power saving===<br />
<br />
{{Note | toofishes dropped CPU scaling from his latest kernel builds, due to the fact, confirmed by other users, that there were no effective power savings with p4-clockmod's module, and it introduced "unacceptable latency", even with relatively low percentage up thresholds.}}<br />
<br />
Install cpufrequtitls:<br />
# pacman -S cpufrequtils<br />
<br />
For scaling down the processor you have to load the p4_clockmod module. Insert it into your {{Filename|/etc/rc.conf}} MODULES array for loading it at startup. <br />
MODULES=(... p4_clockmod ...)<br />
<br />
{{Note | The merits of p4-clockmod are debatable. Particularly on the EEEPC 701, battery time isn't extended due to its usage, and some users have even reported less battery duration. More hints to the reasons why can be read in [http://www.codemonkey.org.uk/2009/01/18/forthcoming-p4clockmod/ this] fine blog entry.}}<br />
<br />
Add 'cpufreq' to the DAEMONS array in {{Filename|/etc/rc.conf}} to have it start on startup.<br />
DAEMONS=(... cpufreq ...)<br />
<br />
Add the following into {{Filename|/etc/conf.d/cpufreq}}:<br />
governor="ondemand"<br />
min_freq="113MHz"<br />
max_freq="900MHz"<br />
<br />
With enabled cpufreq it scales the processor between 113MHz up to max. frequency. That should save a lot on battery power. The stated 900MHz will be never reached by the eeePC, the p4_clockmod reports a wrong frequency here. But scaling works, you can feel it in the performance of eeePC that he slow down the processor.<br />
<br />
===More responsive system with ondemand governor===<br />
The default up_threshold (where it will bump to a faster speed) for the CPU governor is 80, which means it will increase the CPU speed when utilization is above 80%. This can make X applications have a bit of lag. <br />
<br />
Try changing this value:<br />
$ sudo bash -c "echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold"<br />
<br />
With 40 it still leaves the majority of CPU cycles at the lowest available clock speed but increases responsiveness. You can add this line to one of your startup scripts (such as {{Filename|/etc/rc.local}}) if you wish to keep it, for example:<br />
<br />
#!/bin/bash<br />
#<br />
# /etc/rc.local: Local multi-user startup script.<br />
#<br />
<br />
echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold<br />
<br />
Also, following line is also reported to help makes system more responsive. You can use it by adding it to your {{Filename|/etc/rc.local}}:<br />
echo 2000000 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate<br />
<br />
===Speeding up udev for faster boot===<br />
*[[Speedup udev]]<br />
*http://dev.laptop.org/ticket/4349<br />
*[http://www.eeesale.com/Asus-Eee-PC-overclock-Benchmarks.htm Speed up the Eee PC]<br />
<br />
You can also disable the autoload by editing your {{Filename|[[rc.conf]]}}:<br />
...<br />
MOD_AUTOLOAD="no"<br />
...<br />
MODULES=(pciehp ath5k)<br />
<br />
===Update your BIOS without Xandros===<br />
{{Warning | You can break your system, do not update if you are not sure of what you are doing!}}<br />
<br />
First, you need to download the ''.rom'' file.<br />
*[http://update.eeepc.asus.com/bios/ Asus' official BIOS]<br />
*[http://forum.eeeuser.com/viewtopic.php?id=3485 EeeUser's topic]<br />
<br />
You also need an USB stick formatted in FAT32. To format the USBStick, use the cfdisk tool:<br />
# cfdisk /dev/sdc # could be something else than "c"<br />
<br />
Choose [delete], [type]: "fat32" (code 0B), [write] and then exit with [quit].<br />
<br />
NOTE to EEE PC 900 owners and possibly others: Using this method will require a flash drive formatted with a '''FAT16''' file-system. If the BIOS update process hangs up at "Reading file 900.ROM" for more than a few minutes then it should be safe to power down your EEE PC and reformat your flashdrive's file-system to the correct one. You can force FAT16 creation with the following command:<br />
# mkdosfs -F 16 /dev/device-path<br />
<br />
Now just copy the ''.rom'' on the USBStick :<br />
$ cp /somewhere/blabla/.../thecurrentnameofthefile.ROM /path/to/mounted/usb_stick/701.rom<br />
The name of the copy '''must''' be xxxx.rom where xxxx is the model of your eee PC. (i.e. 900 users it's 900.rom)<br />
<br />
Next step, reboot the eeepc with the USB stick pluged-in, and press Alt+F2. It will launch the built-in tool. Everything should be Ok, you can make a coffee during the update. When it asks you to push the power-button it has finished.<br />
<br />
At the next boot, you'll be invited to configure the BIOS. Check if the everything is enabled (my webcam and wireless were disabled after the update) and if it displays the good version in the main screen. It's done!<br />
<br />
=== More usable font sizes ===<br />
<br />
====The_glu's method====<br />
<br />
I found an easy solution that works on a 901:<br />
<br />
Edit {{Filename|/etc/X11/xinit/xserverrc}} and add "-dpi 134":<br />
exec /usr/bin/X -nolisten tcp -dpi 134<br />
<br />
Restart X and fonts should have the correct size. Notice it's won't works if you have Xft*dpi: in your {{Filename|.XDefaults}}.<br />
<br />
You don't need to edit your config file to set a smaller font size, I you did you should set font-size to 10 or you will have to small fonts...<br />
<br />
==== Old method ====<br />
<br />
On a default installation with Xfce 4 my font sizes were too big, here is what I did to sort them out.<br />
<br />
First, I set the DPI by adding the following to {{Filename|~/.Xdefaults}}:<br />
Xft*dpi: 134<br />
<br />
This then caused the fonts to be even bigger, so I set them all to be font-size 6 by adding the following into {{Filename|~/.gtkrc-2.0}} (note that this will be overwritten if you use any tools to change GTK settings):<br />
style "user-font"<br />
{<br />
font_name="Bitstream Vera Sans 6"<br />
}<br />
widget_class "*" style "user-font"<br />
<br />
To do the same with KDE fonts (without KDE installed) you have to add the following to {{Filename|~/.kde/share/config/kdeglobals}}:<br />
[General]<br />
StandardFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
activeFont=Bitstream Vera Sans,6,-1,5,75,0,0,0,0,0<br />
fixed=Bitstream Vera Sans Mono,6,-1,5,50,0,0,0,0,0<br />
font=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
menuFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
taskbarFont=Bitstream Vera Sans,6,-1,5,50,1,0,0,0,0<br />
toolBarFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
<br />
To make your fonts even prettier enable the [[Fonts#Fonts_with_LCD_filter_enabled|LCD Fonts]].<br />
<br />
==== Alternative Method ====<br />
<br />
For me it worked far better to open the gnome appearance control panel, go to the fonts tab, click defaults, and change the resolution to be 96 dpi. Changing .Xdefaults doesnt work when running gnome, as gnome-settings-daemon overrides it. You can then leave all font sizes at their default, and things should look good. Simply changing the font sizes and leaving the DPI at its technically correct value (~134) gave me weird layout problems in some apps, and oddly large fonts in others.<br />
<br />
==Known problems and their solutions==<br />
<br />
===Sound===<br />
<br />
For most people, sound should work right out of the box with no troubles. However, others might need to add the following line to {{Filename|/etc/modprobe.conf}}<br />
options snd-hda-intel model=3stack-dig<br />
or the following one for the Eee PC 900 model<br />
options snd-hda-intel model=auto<br />
<br />
If your internal microphone doesn't work, you probably have to turn the capture feature on. Simply fire up alsamixer, find your Capture control, and press spacebar to enable it.<br />
<br />
===Webcam===<br />
<br />
If for some reason webcam have been disabled on your 701, you can enable it by issuing the following command as root: <br />
<br />
echo 1 > /sys/devices/platform/eeepc/camera<br />
<br />
If you want the webcam application that the default Xandos installation uses, install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14469 ucview from the AUR].<br />
<br />
The webcam also works fine with the latest version of Skype.<br />
<br />
If you already have mplayer installed you can launch:<br />
$ mplayer -fps 15 tv://<br />
<br />
I have yet to get it working with vlc or any other software such as xawtv. If you know how, please update this.<br />
<br />
*'''NOTE:''' For anyone who has accidentally disabled Auto Exposure for their webcam in luvcview (making the image dark), and can't enable it again, do the following:<br />
<br />
Install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14468 libwebcam from the AUR].<br />
<br />
Issue the following command:<br />
$ uvcdynctrl --set "Exposure, Auto" 4<br />
<br />
{{Note | Be sure the "OS Installation" option is set to "finished" in the BIOS' "Advanced" tab or your camera may not work in some applications (like Skype).}}<br />
<br />
{{Note | Make sure you are a member of the video group edit /etc/group and add your username to video}}<br />
<br />
===Microphone===<br />
<br />
Solution for problems with the internal microphone.<br />
<br />
1. First of all set in alsamixer "Input Source" to "i-Mic"<br />
<br />
2. Increase "Capture" and "i-Mic Boost" to your needs<br />
<br />
3. Edit {{Filename|/etc/asound.state}} the following, change the 2 "false" to "true" like showing:<br />
....snap.....<br />
control.11 {<br />
comment.access 'read write'<br />
comment.type BOOLEAN<br />
comment.count 2<br />
iface MIXER<br />
name 'Capture Switch'<br />
value.0 true<br />
value.1 true<br />
}<br />
....snap....<br />
<br />
4. After editing run following as root<br />
# alsactl restore<br />
<br />
5. Now your internal microphone should be working.<br />
<br />
===Wireless doesn't work, even after installing custom Madwifi module===<br />
<br />
I found that Arch tried to use the ath5k module for wireless, and that meant it took control of the card rather than ath_pci (the module I had compiled and installed). I got a Madwifi status 3 message in dmesg when this happened.<br />
<br />
The solution is to blacklist the ath5k module in {{Filename|/etc/rc.conf}}:<br />
<br />
MODULES = ( ... !ath5k ... )<br />
<br />
===Laggy or Unresponsive ACPI Events===<br />
<br />
The latest kernel (2.6.26) introduces new problems with Eee's ACPI events handling. Basically, ACPI events become very laggy and after some time ACPI get disabled after a heavy usage (e.g. changing volume, brightness). This problem affects both stock kernel and toofishes' kernel.<br />
<br />
It appears that the solution is to apply this [http://bugzilla.kernel.org/attachment.cgi?id=16862 patch] ([http://bugzilla.kernel.org/show_bug.cgi?id=10724 original bug report]) to the kernel. <br />
<br />
{{Note | The latest toofishes' kernel, version 2.6.26-1, now includes the patch, but you can still use ighea's one for the extras features listed below.}}<br />
<br />
Until toofishes update his kernel to include the patch, you can use ighea's slightly modified toofishes' kernel that included the above patch, as well as other modifications:<br />
<br />
*Support for Wine <br />
*uvesafb is built as module <br />
*Use [http://bbs.archlinux.org/viewtopic.php?pid=393860#p393860 new eeepc-laptop driver] (which also handles fan-control) instead of older acus_acpi or asus-laptop -drivers.<br />
<br />
You can get the modified kernel, as well as the associative packages, from [http://koti.kapsi.fi/~ighea/eee/kernel-eee/ here].<br />
<br />
After you have downloaded the packages, Install them using this command:<br />
# pacman -U kernel-eee-2.6.26-1-i686.pkg.tar.gz madwifi-eee-svn-3752-1-i686.pkg.tar.gz <br />
<br />
You might also want to use IgnorePkg-line in {{Filename|/etc/pacman.conf}} to hold packages from being accidentally updated.<br />
IgnorePkg = kernel-eee madwifi-eee-svn<br />
<br />
Also don't forget to upgrade ighea's acpi-eee package to version 9.6.<br />
<br />
===Unclean unmount during shutdown when having home directory mounted on SD card===<br />
<br />
If you experienced unclean unmount during shutdown when having your home directory on SD card, then add the following 3 lines to "Write to wtmp file before unmounting" section of your {{Filename|/etc/rc.shutdown}} file:<br />
<pre><br />
...<br />
<br />
stat_busy "Unmounting Filesystems"<br />
/bin/umount -a -t noramfs,notmpfs,nosysfs,noproc<br />
<br />
# Add these 3 lines<br />
sync;sync;sync;<br />
eject /dev/sdb # Or whichever is your SD-card's device name. /dev/disk/by-uuid/ followed by the UUID identifier is preferable though.<br />
sleep 3<br />
# End of hack<br />
<br />
stat_done<br />
<br />
...<br />
</pre><br />
<br />
===Booting from card without initrd===<br />
<br />
Let's say you decided to install Arch Linux on a card and compiled your own kernel (or used the kernel26eee kernel) without initrd. Card reader on EeePC is connected as an USB device. Unfortunately, USB storage devices are detected with a delay, so we must tell the kernel to wait until this device becomes available. You do this with "rootwait" option passed to kernel at boot time.<br />
<br />
===Sleeping and waking system on a card===<br />
<br />
If you have Arch Linux on a card, waking up from sleeping state will most likely fail. The only solution is to enable the CONFIG_USB_PERSIST option in kernel. The kernel26eee package should have this option enabled.<br />
<br />
The command to do this is:<br />
echo 1 >/sys/bus/usb/devices/.../power/persist<br />
<br />
Replace the {{Codeline|"..."}} with the device like 1-3 or 1-5 where the first number is the bus and the second is the device <br />
<br />
Each device that is connected to your computer gets an entry in the sysfs "system file system" it is a virtual file system like proc<br />
<br />
More info:<br />
*http://www.mjmwired.net/kernel/Documentation/usb/persist.txt<br />
*http://forum.eeeuser.com/viewtopic.php?id=22712<br />
<br />
===Display doesn't wake up properly===<br />
<br />
If you encounter black display (but apparently working system) after suspend/resume, consider using the "uswsusp" package (available in the official repositories) and correcting suspend2ram script in /etc/acpi, where you use this line to make the machine go to sleep:<br />
<br />
/usr/sbin/s2ram --force --vbe_post --vbe_mode<br />
<br />
==Battery Tests==<br />
<br />
The following are reported battery runtimes:<br />
<br />
{| class="wikitable" style="text-align:left"<br />
|+Battery runtimes<br />
|-<br />
! Task !! Series !! Wireless !! Screen Brightness !! FSB Speed !! Fan Speed !! Runtime !! Comments<br />
|-<br />
! DVD Playback<br />
| 701 || On || Max || 85mhz || 100% || 134min || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! DVD Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! AVI Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading AVI from SSD<br />
|-<br />
! IM and Surf<br />
| 701 || On || ~30% || ??? || low || 173min || Normal web-browsing, Flash should reduce runtime a lot !<br />
|-<br />
! Programming and PDF reading<br />
| 1000HA || Off || ~40% || ??? || low || +6hs || Using Evince and SPE under XFCE with camera and USB disabled<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || +4hs || Stock kernel without laptop-mode<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || 5hs || Stock kernel with laptop-mode and other tweaks<br />
|}<br />
<br />
N.B. - Will add battery runtimes as I am able to test them, please contribute.<br />
<br />
-- Grecko.1<br />
<br />
Still tweaking, but disabling everything from BIOS got me about 6 hours and a half. With eee-kernel, I *could* get a little more.<br />
<br />
-- ekuber</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=Talk:ASUS_Eee_PC_701&diff=86183Talk:ASUS Eee PC 7012009-12-03T13:18:00Z<p>Zodmaner: </p>
<hr />
<div>=Yet another major edit=<br />
I've done yet another major edit to this article. Most works goes to cleaning out old, obsolete information and reorganize the article for better comprehensibility. <br />
<br />
Another major changes is that I've changes the name of the article to Asus Eee PC 701, to reflects the fact that most information here is, and have always been mainly about Arch on Asus Eee PC model 701.<br />
<br />
Please give feedback on the changes. There are a lot of works left to be done, especially in the known problems and solutions section. [[User:zodmaner|zodmaner]] 08:17, 3 December 2009 <br />
<br />
=Please Finish this article=<br />
The EEE has been out for quite some time now. Please finalize this entry and get it up to date. It remains too long and somewhat convoluted. Thanks for your efforts. [[User:Misfit138|Misfit138]] 17:10, 11 September 2008 (EDT)<br />
<br />
== Changes to the article ==<br />
<br />
I have made quite a radical changes to the article. Please provided your feedback and comment. Also, please correct any mistakes, weather it is technical or grammatical, that you have found on the article.<br />
<br />
The article need a lot of input from people who use filoktetes kernel26eee. So if you use filoktetes kernel, please contribute.<br />
<br />
I would like to thanks all people who have contributed on this article, to whom without which I wouldn't have gotten this far. Thanks guys! You guys rock! :)<br />
<br />
<br />
<br />
Isn't the filoktetes kernel26eee removed from all repos? I think the article needs some heavy editing in the kernel / kernel modules installation part.<br />
[[User:Ighea|Ighea]] 14:58, 21 March 2008 (EDT)<br />
<br />
==Journaling FS and Temp FS for logs==<br />
It should be noted that the Eee 901 uses ext3 by default for the /home partition. A lot of the "don't use a journaling FS" FUD relates to the early days of solid state devices before hardware level wear-leveling was introduced. [http://wiki.eeeuser.com/ssd_write_limit this eeeuser.com article] looks into the matter in more detail.<br />
<br />
Also see this article: http://www.storagesearch.com/ssdmyths-endurance.html<br />
<br />
Perhaps there should at least be a footnote to the warning not to use a journaling FS and to create the logs partition as a tempfs, with pointers to these articles and a brief mention that SSD flash cards have improved.<br />
<br />
== madwifi-newhal-svn ==<br />
<br />
WiFi works very well with http://aur.archlinux.org/packages.php?ID=17392 No need to patch anymore!<br />
<br />
== Info about SSD ==<br />
<br />
I have added some info regarding SSD and avoiding pitfalls. I know this document is for the standard eee pc, however as all other eee users also must follow this guide, I thought it would be nice to remark the difference of SSD and standard HD.<br />
<br />
=== More info about SSD, please! ===<br />
<br />
How do I as a user see what is SSD and what isn't?<br />
<br />
AFAIU I ''need'' a swap partition in order to have hibernation support. What are my options for this?<br />
<br />
== Keyboard problem ==<br />
<br />
I have an asus eee 701, and I've used this wiki article many times in the past to set up my laptop using the stock kernel, always with good results. <br />
<br />
However this last week I reformatted and started over from scratch, upgrading everything to the newest version, and for some reason my keyboard isn't working at all in Xorg. I tried a second time and once again the mouse and video worked great, but keyboard wouldn't respond at all.<br />
<br />
Has there been a change to xorg which would make this xorg.conf keyboard configurations no longer work? <br />
<br />
Also, I have to remove the 'RgbPath "/usr/share/X11/rgb"' line from xorg.conf. Is there a missing step to install this?<br />
<br />
UPDATE to the above questions: <br />
<br />
I had to add this to my xorg.conf to get the keyboard working<br />
<br />
Section "ServerFlags"<br />
Option "AutoAddDevices" "False"<br />
EndSection<br />
<br />
As for the RgbPath I just commented that out.<br />
<br />
UPDATE to the answer to the above questions:<br />
<br />
Thanks, that worked great. I added the AutoAddDevices false to the article's xorg.conf. Is there any reason why this shouldn't be in by default?<br />
<br />
== Suspend to RAM ==<br />
<br />
There's no mention of suspending in this article. Do I need to do something special to get it working with the hotkey? /etc/acpi/eee.conf says that it will run /etc/acpi/suspend2ram.sh when the lid is closed, but it doesn't. The script itself works. The hotkey doesn't, but then again none of the other hotkeys work. The eee daemon is running. Maybe I'm overlooking something. [[User:AntiNeo|AntiNeo]] 11:18, 2 January 2009 (EST)<br />
<br />
== Generic ACPI script package ==<br />
I created a package to unify ACPI events handling in all models. It is inspired from all other different packages. Its name is [http://aur.archlinux.org/packages.php?ID=23318 acpi-eeepc-generic] and you can find it on [http://aur.archlinux.org/packages.php?ID=23318 AUR].<br />
<br />
Actually it should work on these models: 700, 701, 900, 900A, 901, 904HD, S101, 1000, 1000H and 1000HD. Can somebody with one of these test it on their machine? I only own a 1000 but it works flawlessly here. Please test and report here, directly to me, on the AUR page or on the [[Asus_Eee_PC_1000|1000 wiki entry]]. Thank you! :)<br />
--[[User:big_gie|big_gie]] 12:30, 21 January 2009 (EDT)<br />
<br />
== Wifi configuration ==<br />
Please, will you detail the wifi configuration details: in rc.conf, modules loaded, daemons setting, network settings; if you use netcfg, and how you confgured it; settings of wpa_supplicant.conf. The module used: ath_pci, ath5k, madwifi... ?<br />
I had installed archlinux a few days ago, and I cannont have wifi: no IP is given to wlan0, and then, no wifi!</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=Talk:ASUS_Eee_PC_701&diff=86182Talk:ASUS Eee PC 7012009-12-03T13:17:35Z<p>Zodmaner: </p>
<hr />
<div>=Yet another major edit=<br />
I've done yet another major edit to this article. Most works goes to cleaning out old, obsolete information and reorganize the article for better comprehensibility. <br />
<br />
Another major changes is that I've changes the name of the article to Asus Eee PC 701, to reflects the fact that most information here is, and have always been mainly about Arch on Asus Eee PC model 701.<br />
<br />
Please give feedback on the changes. There are a lot of works left to be done, especially in the known problems and solutions section. [[User:zodmaner|zodmaner]]<br />
<br />
=Please Finish this article=<br />
The EEE has been out for quite some time now. Please finalize this entry and get it up to date. It remains too long and somewhat convoluted. Thanks for your efforts. [[User:Misfit138|Misfit138]] 17:10, 11 September 2008 (EDT)<br />
<br />
== Changes to the article ==<br />
<br />
I have made quite a radical changes to the article. Please provided your feedback and comment. Also, please correct any mistakes, weather it is technical or grammatical, that you have found on the article.<br />
<br />
The article need a lot of input from people who use filoktetes kernel26eee. So if you use filoktetes kernel, please contribute.<br />
<br />
I would like to thanks all people who have contributed on this article, to whom without which I wouldn't have gotten this far. Thanks guys! You guys rock! :)<br />
<br />
<br />
<br />
Isn't the filoktetes kernel26eee removed from all repos? I think the article needs some heavy editing in the kernel / kernel modules installation part.<br />
[[User:Ighea|Ighea]] 14:58, 21 March 2008 (EDT)<br />
<br />
==Journaling FS and Temp FS for logs==<br />
It should be noted that the Eee 901 uses ext3 by default for the /home partition. A lot of the "don't use a journaling FS" FUD relates to the early days of solid state devices before hardware level wear-leveling was introduced. [http://wiki.eeeuser.com/ssd_write_limit this eeeuser.com article] looks into the matter in more detail.<br />
<br />
Also see this article: http://www.storagesearch.com/ssdmyths-endurance.html<br />
<br />
Perhaps there should at least be a footnote to the warning not to use a journaling FS and to create the logs partition as a tempfs, with pointers to these articles and a brief mention that SSD flash cards have improved.<br />
<br />
== madwifi-newhal-svn ==<br />
<br />
WiFi works very well with http://aur.archlinux.org/packages.php?ID=17392 No need to patch anymore!<br />
<br />
== Info about SSD ==<br />
<br />
I have added some info regarding SSD and avoiding pitfalls. I know this document is for the standard eee pc, however as all other eee users also must follow this guide, I thought it would be nice to remark the difference of SSD and standard HD.<br />
<br />
=== More info about SSD, please! ===<br />
<br />
How do I as a user see what is SSD and what isn't?<br />
<br />
AFAIU I ''need'' a swap partition in order to have hibernation support. What are my options for this?<br />
<br />
== Keyboard problem ==<br />
<br />
I have an asus eee 701, and I've used this wiki article many times in the past to set up my laptop using the stock kernel, always with good results. <br />
<br />
However this last week I reformatted and started over from scratch, upgrading everything to the newest version, and for some reason my keyboard isn't working at all in Xorg. I tried a second time and once again the mouse and video worked great, but keyboard wouldn't respond at all.<br />
<br />
Has there been a change to xorg which would make this xorg.conf keyboard configurations no longer work? <br />
<br />
Also, I have to remove the 'RgbPath "/usr/share/X11/rgb"' line from xorg.conf. Is there a missing step to install this?<br />
<br />
UPDATE to the above questions: <br />
<br />
I had to add this to my xorg.conf to get the keyboard working<br />
<br />
Section "ServerFlags"<br />
Option "AutoAddDevices" "False"<br />
EndSection<br />
<br />
As for the RgbPath I just commented that out.<br />
<br />
UPDATE to the answer to the above questions:<br />
<br />
Thanks, that worked great. I added the AutoAddDevices false to the article's xorg.conf. Is there any reason why this shouldn't be in by default?<br />
<br />
== Suspend to RAM ==<br />
<br />
There's no mention of suspending in this article. Do I need to do something special to get it working with the hotkey? /etc/acpi/eee.conf says that it will run /etc/acpi/suspend2ram.sh when the lid is closed, but it doesn't. The script itself works. The hotkey doesn't, but then again none of the other hotkeys work. The eee daemon is running. Maybe I'm overlooking something. [[User:AntiNeo|AntiNeo]] 11:18, 2 January 2009 (EST)<br />
<br />
== Generic ACPI script package ==<br />
I created a package to unify ACPI events handling in all models. It is inspired from all other different packages. Its name is [http://aur.archlinux.org/packages.php?ID=23318 acpi-eeepc-generic] and you can find it on [http://aur.archlinux.org/packages.php?ID=23318 AUR].<br />
<br />
Actually it should work on these models: 700, 701, 900, 900A, 901, 904HD, S101, 1000, 1000H and 1000HD. Can somebody with one of these test it on their machine? I only own a 1000 but it works flawlessly here. Please test and report here, directly to me, on the AUR page or on the [[Asus_Eee_PC_1000|1000 wiki entry]]. Thank you! :)<br />
--[[User:big_gie|big_gie]] 12:30, 21 January 2009 (EDT)<br />
<br />
== Wifi configuration ==<br />
Please, will you detail the wifi configuration details: in rc.conf, modules loaded, daemons setting, network settings; if you use netcfg, and how you confgured it; settings of wpa_supplicant.conf. The module used: ath_pci, ath5k, madwifi... ?<br />
I had installed archlinux a few days ago, and I cannont have wifi: no IP is given to wlan0, and then, no wifi!</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=ASUS_Eee_PC_701&diff=86181ASUS Eee PC 7012009-12-03T13:06:03Z<p>Zodmaner: /* Installing Arch Linux */</p>
<hr />
<div>{{stub}}<br />
[[Category:Getting and installing Arch (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|Русский|Инсталляция Arch Linux на Asus EEE PC}}<br />
{{i18n_links_end}}<br />
<br />
Most of this information is from the [http://bbs.archlinux.org/viewtopic.php?pid=297632 Arch Forum]. You can also find a lot of helpful information from the [http://forum.eeeuser.com/ EEEUser Forum]. <br />
<br />
==Before You Begin==<br />
<br />
===Avoiding Pitfalls===<br />
<br />
The install is pretty normal, except that you'll need to [http://forum.eeeuser.com/viewtopic.php?id=890 avoid the pitfalls] of our alternative Linux install:<br />
<br />
# Never choose to use a journaling file system on the SSD partitions<br />
# Never use a swap partition on the SSD<br />
# Edit your new installation fstab to mount the SSD partitions "noatime"<br />
# Never log messages or error log to the SSD<br />
<br />
The rules ensure that we won't reach the maximum limit of writes on our SSD faster than we should, although this is being contested (see [http://wiki.eeeuser.com/ssd_write_limit this link] and [http://www.storagesearch.com/ssdmyths-endurance.html this other link]).<br />
<br />
Some other minor modifications can be made to decrease number of non-mandatory writes by applications: deactivate {{Filename|~/.viminfo}} in vi, deactivate less history file ({{Filename|~/.lesshst}}), and so on.<br />
<br />
===Choosing Your Installation Media===<br />
<br />
The Eee PC does not have an optical drive installed on the machine. This means you will need to install Arch Linux through one of the alternative methods:<br />
<br />
# [[Beginners_Guide#USB_stick|USB stick]] '''(Recommended)'''<br />
# External USB CD-ROM drive<br />
# [[PXE|Network (PXE)]]<br />
<br />
==Installing Arch Linux==<br />
<br />
With the release of the 2009.08 installation media, installing Arch Linux on Asus Eee PC model 701 is pretty easy and straightforward since the stock kernel on Arch installation media support all of the 701 hardwares out of the box. <br />
<br />
Therefore, aside from the following pointers specific to the 701 described below, there shouldn't be any other major differences between installing Arch Linux on the 701 and any other computer. You should be able to successfully install Arch on the 701 by following instructions on [[Beginners_Guide|Beginners' Guide]] without any problem.<br />
<br />
===Prepare Hard Drive===<br />
<br />
The most important different between the 701 and other machines is that the 701 use SSD drive instead of normal hard drive. This section advise on how to set up a partition scheme that is best suited to the 701. <br />
<br />
The default Eee PC drive is split up into four partitions (here is [http://forum.eeeuser.com/viewtopic.php?id=1805 some information] about the partitioning): <br />
<br />
* It is easiest to wipe the existing partitions and use one or two partitions for your install. One partition would be just '/', and two partitions would be '/boot' and '/'.<br />
* Choose "NONE" for swap in case your eee has a SSD (see #2 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]])<br />
* Select "ext2" as your filesystem in case your eee has a SSD (see #1 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]]). If your model has a standard HD choose "ext3".<br />
<br />
===Install X===<br />
<br />
Install X by follow instructions on the [[Beginners_Guide#Step_2:_Install_X|Beginners' Guide]], then install the Intel graphics driver:<br />
# pacman -Sy xf86-video-intel<br />
<br />
You may also wish to install the Synaptics drivers for the touchpad (not needed for Eee PC 900):<br />
# pacman -Sy xf86-input-synaptics<br />
<br />
With the latest version of X from extra repository, X should work on the 701 '''without any need for xorg.conf'''. However, if for some reason you wish to use an xorg.conf file, you can use an old [[Example_Xorg_configuration_file_for_Asus_Eee_PC_701|example Xorg configuration file for Asus Eee PC model 701]] as a template or automatically generate a new one by running the following command:<br />
<br />
# Xorg -configure<br />
<br />
Consult [[Xorg_input_hotplugging|Xorg Input Hotplugging]] for more information on how to config input devices using HAL.<br />
<br />
The synaptics stuff can be removed if you have a EEE PC 900. The {{Codeline|Option "AutoAddDevices"}} line is important if you need a non-default XkbLayout, because if you don't have it, xorg will find 3 keyboards (at least with the 900 model).<br />
The Modeline has obviously to be removed or modified if you dont have a model with this resolution.<br />
<br />
===Getting Hot Keys, Graphic Indicators and Shutdown with the Power Button Working===<br />
<br />
If you want to have working hot keys (wifi, brightness, volume etc), an OSD, and be able to assign actions to things like the powerbutton and closing the lid, then you should install '''ighea's acpi-eee''' package.<br />
<br />
==== ighea's acpi-eee ====<br />
<br />
Get the latest package from [http://kapsi.fi/ighea/eee/acpi-eee/ here].<br />
<br />
The package can be easily installed with:<br />
# pacman -U acpi-eee-10.0-1-i686.pkg.tar.gz<br />
<br />
See messages during installation for more details and don't forget to edit {{Filename|/etc/acpi/eee.conf}} to suit your tastes.<br />
<br />
*For those who use the wireless on/off acpi command; the {{Codeline|NETWORK_UP_COMMAND&#61;""}} setting in {{Filename|/etc/acpi/eee.conf}}, when applicable, should at least release the network. For example, using netcfg2, {{Codeline|NETWORK_UP_COMMAND&#61;"netcfg2 -a"}} will release the connections from before disabling wireless, allowing new ones to be made without netcfg thinking that it's already connected. It is also possible to reconnect to your previous network, however, the network tool you use needs to have a somewhat lengthy timeout as it takes 15-20 seconds for your wireless device to reappear. <br />
<br />
{{Note | Make sure '''asusosd''' is enabled on startup if you want to have the Graphic Indicators from Xandros. To run asusosd simply type {{Codeline|asusosd &}} at a command prompt.}}<br />
<br />
==Asus Eee PC model 701 repository from toofishes==<br />
<br />
Toofishes created a repository for the 701. The repository contained customized kernel built specifically for the 701 and some additional packages. <br />
<br />
While the stock Arch kernel works very well with the 701, toofishes kernel have the following advantages:<br />
<br />
* Faster boot time &ndash; because most of the modules have been compile into the kernel, no time is wasted waiting for the modules to load<br />
* No need to generate initial ramdisk every time a kernel is upgrade <br />
* Small size (around 4MB)<br />
<br />
To use the repository, add:<br />
[eee]<br />
Server = http://code.toofishes.net/packages/eee<br />
to your {{Filename|/etc/pacman.conf}} and then issue:<br />
pacman -Syu<br />
<br />
===Package List===<br />
Currently, toofishes' repository contains the following packages:<br />
<br />
*'''kernel-eee''' &ndash; customized kernel for Asus Eee PC model 701<br />
*'''luvcview''' &ndash; webcam program for testing webcam driver<br />
<br />
===Kernel-eee Installation Instruction===<br />
Simply use pacman to install the package you need. Install the packages with this command:<br />
# pacman -Sy kernel-eee<br />
<br />
then, add the following to {{Filename|/boot/grub/menu.lst}}; note that no initrd is needed:<br />
# (2) Arch Linux<br />
title Arch Linux Eee kernel<br />
root (hd0,0)<br />
kernel /boot/vmlinuzeee root=/dev/sda1 ro<br />
<br />
Restart and select Arch Linux Eee kernel from the grub boot menu.<br />
<br />
==Additional Tips & Tweaks==<br />
<br />
===Tweaking kernel-eee===<br />
<br />
Toofishes' kernel, also known as kernel-eee, can be recompiled to include custom features. You can download toofishes' kernel PKGBUILD and all the nesseary files from his gitweb by installing the git package and using the following command:<br />
<br />
$ git clone git://code.toofishes.net/dan/eee.git<br />
<br />
or if you are behind a proxy and can't use the git protocol:<br />
<br />
$ git clone http://code.toofishes.net/git/dan/eee.git<br />
<br />
There are two ways to tweak the kernel. The first is simply to edit the {{Filename|kernelconfig}} file with your favorite editor and the second is to insert a {{Codeline|make menuconfig}} line into the PKGBUILD before the kernel's compilation.<br />
<br />
===Using Wine with toofishes' kernel===<br />
<br />
Normally, Wine won't work with toofishes' kernel because it is compiled with VMSPLIT_2G_OPT option. In order to use Wine with toofishes' kernel, you have to recompile his kernel with VMSPLIT_3G option.<br />
<br />
Download the kernel PKGBUILD and all the necessary files from toofishes' gitweb using the above instructions, then change the following lines in the {{Filename|kernelconfig}} file from this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 # CONFIG_VMSPLIT_3G is not set<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 CONFIG_VMSPLIT_2G_OPT=y<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
to this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 CONFIG_VMSPLIT_3G=y<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 # CONFIG_VMSPLIT_2G_OPT is not set<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
<br />
Compile and install the kernel and Wine should now work.<br />
<br />
===Power down with the power button===<br />
<br />
{{Note | If you are using ighea's acpi-eee or dkite's acpid_eee package then you should already be able to shutdown by pressing the power button and should not need to do this.}}<br />
<br />
The two alternatives here are described in [[Allow users to shutdown]].<br />
<br />
If you don't already or don't plan to use sudo, it may be simpler to use the setuid /sbin/halt method, otherwise using sudo is preferred.<br />
<br />
Below are all the steps required for the sudo method. If you want to use the setuid method, read the article linked above and perform the 'power' file step here, while omitting the 'sudo' in it.<br />
<br />
# pacman -S sudo<br />
<br />
As root, do the following:<br />
# visudo<br />
<br />
Add the following line to the file:<br />
USER HOST = NOPASSWD: /sbin/poweroff<br />
<br />
Where {{Codeline|USER}} is the user you want to be able to power down with and {{Codeline|HOST}} is your hostname (from {{Filename|/etc/rc.conf}}).<br />
<br />
Now, create a file called {{Filename|/etc/acpi/events/power}}, containing:<br />
# /etc/acpi/events/power<br />
# This is called when the user presses the power button<br />
<br />
event=button/power (PWR.||PBTN)<br />
action=sudo /sbin/poweroff<br />
<br />
Make sure that you execute:<br />
# /etc/rc.d/acpid start<br />
<br />
And/or add acpid to the daemons list in {{Filename|/etc/rc.conf}}:<br />
DAEMONS=(hal, acpid ...)<br />
<br />
===Use cpufreq for power saving===<br />
<br />
{{Note | toofishes dropped CPU scaling from his latest kernel builds, due to the fact, confirmed by other users, that there were no effective power savings with p4-clockmod's module, and it introduced "unacceptable latency", even with relatively low percentage up thresholds.}}<br />
<br />
Install cpufrequtitls:<br />
# pacman -S cpufrequtils<br />
<br />
For scaling down the processor you have to load the p4_clockmod module. Insert it into your {{Filename|/etc/rc.conf}} MODULES array for loading it at startup. <br />
MODULES=(... p4_clockmod ...)<br />
<br />
Add 'cpufreq' to the DAEMONS array in {{Filename|/etc/rc.conf}} to have it start on startup.<br />
DAEMONS=(... cpufreq ...)<br />
<br />
Add the following into {{Filename|/etc/conf.d/cpufreq}}:<br />
governor="ondemand"<br />
min_freq="113MHz"<br />
max_freq="900MHz"<br />
<br />
With enabled cpufreq it scales the processor between 113MHz up to max. frequency. That should save a lot on battery power. The stated 900MHz will be never reached by the eeePC, the p4_clockmod reports a wrong frequency here. But scaling works, you can feel it in the performance of eeePC that he slow down the processor.<br />
<br />
{{Note | The merits of p4-clockmod are debatable. Particularly on the EEEPC 701, battery time isn't extended due to its usage, and some users have even reported less battery duration. More hints to the reasons why can be read in [http://www.codemonkey.org.uk/2009/01/18/forthcoming-p4clockmod/ this] fine blog entry.}}<br />
<br />
===More responsive system with ondemand governor===<br />
The default up_threshold (where it will bump to a faster speed) for the CPU governor is 80, which means it will increase the CPU speed when utilization is above 80%. This can make X applications have a bit of lag. <br />
<br />
Try changing this value:<br />
$ sudo bash -c "echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold"<br />
<br />
With 40 it still leaves the majority of CPU cycles at the lowest available clock speed but increases responsiveness. You can add this line to one of your startup scripts (such as {{Filename|/etc/rc.local}}) if you wish to keep it, for example:<br />
<br />
#!/bin/bash<br />
#<br />
# /etc/rc.local: Local multi-user startup script.<br />
#<br />
<br />
echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold<br />
<br />
Also, following line is also reported to help makes system more responsive. You can use it by adding it to your {{Filename|/etc/rc.local}}:<br />
echo 2000000 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate<br />
<br />
===Speeding up udev for faster boot===<br />
*[[Speedup udev]]<br />
*http://dev.laptop.org/ticket/4349<br />
*[http://www.eeesale.com/Asus-Eee-PC-overclock-Benchmarks.htm Speed up the Eee PC]<br />
<br />
You can also disable the autoload by editing your {{Filename|[[rc.conf]]}}:<br />
...<br />
MOD_AUTOLOAD="no"<br />
...<br />
MODULES=(pciehp ath5k)<br />
<br />
===Update your BIOS without Xandros===<br />
{{Warning | You can break your system, do not update if you are not sure of what you are doing!}}<br />
<br />
First, you need to download the ''.rom'' file.<br />
*[http://update.eeepc.asus.com/bios/ Asus' official BIOS]<br />
*[http://forum.eeeuser.com/viewtopic.php?id=3485 EeeUser's topic]<br />
<br />
You also need an USB stick formatted in FAT32. To format the USBStick, use the cfdisk tool:<br />
# cfdisk /dev/sdc # could be something else than "c"<br />
<br />
Choose [delete], [type]: "fat32" (code 0B), [write] and then exit with [quit].<br />
<br />
NOTE to EEE PC 900 owners and possibly others: Using this method will require a flash drive formatted with a '''FAT16''' file-system. If the BIOS update process hangs up at "Reading file 900.ROM" for more than a few minutes then it should be safe to power down your EEE PC and reformat your flashdrive's file-system to the correct one. You can force FAT16 creation with the following command:<br />
# mkdosfs -F 16 /dev/device-path<br />
<br />
Now just copy the ''.rom'' on the USBStick :<br />
$ cp /somewhere/blabla/.../thecurrentnameofthefile.ROM /path/to/mounted/usb_stick/701.rom<br />
The name of the copy '''must''' be xxxx.rom where xxxx is the model of your eee PC. (i.e. 900 users it's 900.rom)<br />
<br />
Next step, reboot the eeepc with the USB stick pluged-in, and press Alt+F2. It will launch the built-in tool. Everything should be Ok, you can make a coffee during the update. When it asks you to push the power-button it has finished.<br />
<br />
At the next boot, you'll be invited to configure the BIOS. Check if the everything is enabled (my webcam and wireless were disabled after the update) and if it displays the good version in the main screen. It's done!<br />
<br />
=== More usable font sizes ===<br />
<br />
====The_glu's method====<br />
<br />
I found an easy solution that works on a 901:<br />
<br />
Edit {{Filename|/etc/X11/xinit/xserverrc}} and add "-dpi 134":<br />
exec /usr/bin/X -nolisten tcp -dpi 134<br />
<br />
Restart X and fonts should have the correct size. Notice it's won't works if you have Xft*dpi: in your {{Filename|.XDefaults}}.<br />
<br />
You don't need to edit your config file to set a smaller font size, I you did you should set font-size to 10 or you will have to small fonts...<br />
<br />
==== Old method ====<br />
<br />
On a default installation with Xfce 4 my font sizes were too big, here is what I did to sort them out.<br />
<br />
First, I set the DPI by adding the following to {{Filename|~/.Xdefaults}}:<br />
Xft*dpi: 134<br />
<br />
This then caused the fonts to be even bigger, so I set them all to be font-size 6 by adding the following into {{Filename|~/.gtkrc-2.0}} (note that this will be overwritten if you use any tools to change GTK settings):<br />
style "user-font"<br />
{<br />
font_name="Bitstream Vera Sans 6"<br />
}<br />
widget_class "*" style "user-font"<br />
<br />
To do the same with KDE fonts (without KDE installed) you have to add the following to {{Filename|~/.kde/share/config/kdeglobals}}:<br />
[General]<br />
StandardFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
activeFont=Bitstream Vera Sans,6,-1,5,75,0,0,0,0,0<br />
fixed=Bitstream Vera Sans Mono,6,-1,5,50,0,0,0,0,0<br />
font=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
menuFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
taskbarFont=Bitstream Vera Sans,6,-1,5,50,1,0,0,0,0<br />
toolBarFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
<br />
To make your fonts even prettier enable the [[Fonts#Fonts_with_LCD_filter_enabled|LCD Fonts]].<br />
<br />
==== Alternative Method ====<br />
<br />
For me it worked far better to open the gnome appearance control panel, go to the fonts tab, click defaults, and change the resolution to be 96 dpi. Changing .Xdefaults doesnt work when running gnome, as gnome-settings-daemon overrides it. You can then leave all font sizes at their default, and things should look good. Simply changing the font sizes and leaving the DPI at its technically correct value (~134) gave me weird layout problems in some apps, and oddly large fonts in others.<br />
<br />
==Known problems and their solutions==<br />
<br />
===Sound===<br />
<br />
For most people, sound should work right out of the box with no troubles. However, others might need to add the following line to {{Filename|/etc/modprobe.conf}}<br />
options snd-hda-intel model=3stack-dig<br />
or the following one for the Eee PC 900 model<br />
options snd-hda-intel model=auto<br />
<br />
If your internal microphone doesn't work, you probably have to turn the capture feature on. Simply fire up alsamixer, find your Capture control, and press spacebar to enable it.<br />
<br />
===Webcam===<br />
<br />
If for some reason webcam have been disabled on your 701, you can enable it by issuing the following command as root: <br />
<br />
echo 1 > /sys/devices/platform/eeepc/camera<br />
<br />
If you want the webcam application that the default Xandos installation uses, install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14469 ucview from the AUR].<br />
<br />
The webcam also works fine with the latest version of Skype.<br />
<br />
If you already have mplayer installed you can launch:<br />
$ mplayer -fps 15 tv://<br />
<br />
I have yet to get it working with vlc or any other software such as xawtv. If you know how, please update this.<br />
<br />
*'''NOTE:''' For anyone who has accidentally disabled Auto Exposure for their webcam in luvcview (making the image dark), and can't enable it again, do the following:<br />
<br />
Install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14468 libwebcam from the AUR].<br />
<br />
Issue the following command:<br />
$ uvcdynctrl --set "Exposure, Auto" 4<br />
<br />
{{Note | Be sure the "OS Installation" option is set to "finished" in the BIOS' "Advanced" tab or your camera may not work in some applications (like Skype).}}<br />
<br />
{{Note | Make sure you are a member of the video group edit /etc/group and add your username to video}}<br />
<br />
===Microphone===<br />
<br />
Solution for problems with the internal microphone.<br />
<br />
1. First of all set in alsamixer "Input Source" to "i-Mic"<br />
<br />
2. Increase "Capture" and "i-Mic Boost" to your needs<br />
<br />
3. Edit {{Filename|/etc/asound.state}} the following, change the 2 "false" to "true" like showing:<br />
....snap.....<br />
control.11 {<br />
comment.access 'read write'<br />
comment.type BOOLEAN<br />
comment.count 2<br />
iface MIXER<br />
name 'Capture Switch'<br />
value.0 true<br />
value.1 true<br />
}<br />
....snap....<br />
<br />
4. After editing run following as root<br />
# alsactl restore<br />
<br />
5. Now your internal microphone should be working.<br />
<br />
===Wireless doesn't work, even after installing custom Madwifi module===<br />
<br />
I found that Arch tried to use the ath5k module for wireless, and that meant it took control of the card rather than ath_pci (the module I had compiled and installed). I got a Madwifi status 3 message in dmesg when this happened.<br />
<br />
The solution is to blacklist the ath5k module in {{Filename|/etc/rc.conf}}:<br />
<br />
MODULES = ( ... !ath5k ... )<br />
<br />
===Laggy or Unresponsive ACPI Events===<br />
<br />
The latest kernel (2.6.26) introduces new problems with Eee's ACPI events handling. Basically, ACPI events become very laggy and after some time ACPI get disabled after a heavy usage (e.g. changing volume, brightness). This problem affects both stock kernel and toofishes' kernel.<br />
<br />
It appears that the solution is to apply this [http://bugzilla.kernel.org/attachment.cgi?id=16862 patch] ([http://bugzilla.kernel.org/show_bug.cgi?id=10724 original bug report]) to the kernel. <br />
<br />
{{Note | The latest toofishes' kernel, version 2.6.26-1, now includes the patch, but you can still use ighea's one for the extras features listed below.}}<br />
<br />
Until toofishes update his kernel to include the patch, you can use ighea's slightly modified toofishes' kernel that included the above patch, as well as other modifications:<br />
<br />
*Support for Wine <br />
*uvesafb is built as module <br />
*Use [http://bbs.archlinux.org/viewtopic.php?pid=393860#p393860 new eeepc-laptop driver] (which also handles fan-control) instead of older acus_acpi or asus-laptop -drivers.<br />
<br />
You can get the modified kernel, as well as the associative packages, from [http://koti.kapsi.fi/~ighea/eee/kernel-eee/ here].<br />
<br />
After you have downloaded the packages, Install them using this command:<br />
# pacman -U kernel-eee-2.6.26-1-i686.pkg.tar.gz madwifi-eee-svn-3752-1-i686.pkg.tar.gz <br />
<br />
You might also want to use IgnorePkg-line in {{Filename|/etc/pacman.conf}} to hold packages from being accidentally updated.<br />
IgnorePkg = kernel-eee madwifi-eee-svn<br />
<br />
Also don't forget to upgrade ighea's acpi-eee package to version 9.6.<br />
<br />
===Unclean unmount during shutdown when having home directory mounted on SD card===<br />
<br />
If you experienced unclean unmount during shutdown when having your home directory on SD card, then add the following 3 lines to "Write to wtmp file before unmounting" section of your {{Filename|/etc/rc.shutdown}} file:<br />
<pre><br />
...<br />
<br />
stat_busy "Unmounting Filesystems"<br />
/bin/umount -a -t noramfs,notmpfs,nosysfs,noproc<br />
<br />
# Add these 3 lines<br />
sync;sync;sync;<br />
eject /dev/sdb # Or whichever is your SD-card's device name. /dev/disk/by-uuid/ followed by the UUID identifier is preferable though.<br />
sleep 3<br />
# End of hack<br />
<br />
stat_done<br />
<br />
...<br />
</pre><br />
<br />
===Booting from card without initrd===<br />
<br />
Let's say you decided to install Arch Linux on a card and compiled your own kernel (or used the kernel26eee kernel) without initrd. Card reader on EeePC is connected as an USB device. Unfortunately, USB storage devices are detected with a delay, so we must tell the kernel to wait until this device becomes available. You do this with "rootwait" option passed to kernel at boot time.<br />
<br />
===Sleeping and waking system on a card===<br />
<br />
If you have Arch Linux on a card, waking up from sleeping state will most likely fail. The only solution is to enable the CONFIG_USB_PERSIST option in kernel. The kernel26eee package should have this option enabled.<br />
<br />
The command to do this is:<br />
echo 1 >/sys/bus/usb/devices/.../power/persist<br />
<br />
Replace the {{Codeline|"..."}} with the device like 1-3 or 1-5 where the first number is the bus and the second is the device <br />
<br />
Each device that is connected to your computer gets an entry in the sysfs "system file system" it is a virtual file system like proc<br />
<br />
More info:<br />
*http://www.mjmwired.net/kernel/Documentation/usb/persist.txt<br />
*http://forum.eeeuser.com/viewtopic.php?id=22712<br />
<br />
===Display doesn't wake up properly===<br />
<br />
If you encounter black display (but apparently working system) after suspend/resume, consider using the "uswsusp" package (available in the official repositories) and correcting suspend2ram script in /etc/acpi, where you use this line to make the machine go to sleep:<br />
<br />
/usr/sbin/s2ram --force --vbe_post --vbe_mode<br />
<br />
==Battery Tests==<br />
<br />
The following are reported battery runtimes:<br />
<br />
{| class="wikitable" style="text-align:left"<br />
|+Battery runtimes<br />
|-<br />
! Task !! Series !! Wireless !! Screen Brightness !! FSB Speed !! Fan Speed !! Runtime !! Comments<br />
|-<br />
! DVD Playback<br />
| 701 || On || Max || 85mhz || 100% || 134min || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! DVD Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! AVI Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading AVI from SSD<br />
|-<br />
! IM and Surf<br />
| 701 || On || ~30% || ??? || low || 173min || Normal web-browsing, Flash should reduce runtime a lot !<br />
|-<br />
! Programming and PDF reading<br />
| 1000HA || Off || ~40% || ??? || low || +6hs || Using Evince and SPE under XFCE with camera and USB disabled<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || +4hs || Stock kernel without laptop-mode<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || 5hs || Stock kernel with laptop-mode and other tweaks<br />
|}<br />
<br />
N.B. - Will add battery runtimes as I am able to test them, please contribute.<br />
<br />
-- Grecko.1<br />
<br />
Still tweaking, but disabling everything from BIOS got me about 6 hours and a half. With eee-kernel, I *could* get a little more.<br />
<br />
-- ekuber</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=ASUS_Eee_PC_701&diff=86180ASUS Eee PC 7012009-12-03T13:05:09Z<p>Zodmaner: /* Troubleshooting Sound, Webcam and Microphone Problems */ Removed</p>
<hr />
<div>{{stub}}<br />
[[Category:Getting and installing Arch (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|Русский|Инсталляция Arch Linux на Asus EEE PC}}<br />
{{i18n_links_end}}<br />
<br />
Most of this information is from the [http://bbs.archlinux.org/viewtopic.php?pid=297632 Arch Forum]. You can also find a lot of helpful information from the [http://forum.eeeuser.com/ EEEUser Forum]. <br />
<br />
==Before You Begin==<br />
<br />
===Avoiding Pitfalls===<br />
<br />
The install is pretty normal, except that you'll need to [http://forum.eeeuser.com/viewtopic.php?id=890 avoid the pitfalls] of our alternative Linux install:<br />
<br />
# Never choose to use a journaling file system on the SSD partitions<br />
# Never use a swap partition on the SSD<br />
# Edit your new installation fstab to mount the SSD partitions "noatime"<br />
# Never log messages or error log to the SSD<br />
<br />
The rules ensure that we won't reach the maximum limit of writes on our SSD faster than we should, although this is being contested (see [http://wiki.eeeuser.com/ssd_write_limit this link] and [http://www.storagesearch.com/ssdmyths-endurance.html this other link]).<br />
<br />
Some other minor modifications can be made to decrease number of non-mandatory writes by applications: deactivate {{Filename|~/.viminfo}} in vi, deactivate less history file ({{Filename|~/.lesshst}}), and so on.<br />
<br />
===Choosing Your Installation Media===<br />
<br />
The Eee PC does not have an optical drive installed on the machine. This means you will need to install Arch Linux through one of the alternative methods:<br />
<br />
# [[Beginners_Guide#USB_stick|USB stick]] '''(Recommended)'''<br />
# External USB CD-ROM drive<br />
# [[PXE|Network (PXE)]]<br />
<br />
==Installing Arch Linux==<br />
<br />
With the release of the 2009.08 installation media, installing Arch Linux on Asus Eee PC model 701 is pretty easy and straightforward since the stock kernel on Arch installation media support all of the 701 hardwares out of the box. <br />
<br />
Therefore, aside from the recommended partition scheme described below, there shouldn't be any other major differences between installing Arch Linux on the 701 and any other computer. You should be able to successfully install Arch on the 701 by following instructions on [[Beginners_Guide|Beginners' Guide]] without any problem.<br />
<br />
===Prepare Hard Drive===<br />
<br />
The most important different between the 701 and other machines is that the 701 use SSD drive instead of normal hard drive. This section advise on how to set up a partition scheme that is best suited to the 701. <br />
<br />
The default Eee PC drive is split up into four partitions (here is [http://forum.eeeuser.com/viewtopic.php?id=1805 some information] about the partitioning): <br />
<br />
* It is easiest to wipe the existing partitions and use one or two partitions for your install. One partition would be just '/', and two partitions would be '/boot' and '/'.<br />
* Choose "NONE" for swap in case your eee has a SSD (see #2 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]])<br />
* Select "ext2" as your filesystem in case your eee has a SSD (see #1 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]]). If your model has a standard HD choose "ext3".<br />
<br />
===Install X===<br />
<br />
Install X by follow instructions on the [[Beginners_Guide#Step_2:_Install_X|Beginners' Guide]], then install the Intel graphics driver:<br />
# pacman -Sy xf86-video-intel<br />
<br />
You may also wish to install the Synaptics drivers for the touchpad (not needed for Eee PC 900):<br />
# pacman -Sy xf86-input-synaptics<br />
<br />
With the latest version of X from extra repository, X should work on the 701 '''without any need for xorg.conf'''. However, if for some reason you wish to use an xorg.conf file, you can use an old [[Example_Xorg_configuration_file_for_Asus_Eee_PC_701|example Xorg configuration file for Asus Eee PC model 701]] as a template or automatically generate a new one by running the following command:<br />
<br />
# Xorg -configure<br />
<br />
Consult [[Xorg_input_hotplugging|Xorg Input Hotplugging]] for more information on how to config input devices using HAL.<br />
<br />
The synaptics stuff can be removed if you have a EEE PC 900. The {{Codeline|Option "AutoAddDevices"}} line is important if you need a non-default XkbLayout, because if you don't have it, xorg will find 3 keyboards (at least with the 900 model).<br />
The Modeline has obviously to be removed or modified if you dont have a model with this resolution.<br />
<br />
===Getting Hot Keys, Graphic Indicators and Shutdown with the Power Button Working===<br />
<br />
If you want to have working hot keys (wifi, brightness, volume etc), an OSD, and be able to assign actions to things like the powerbutton and closing the lid, then you should install '''ighea's acpi-eee''' package.<br />
<br />
==== ighea's acpi-eee ====<br />
<br />
Get the latest package from [http://kapsi.fi/ighea/eee/acpi-eee/ here].<br />
<br />
The package can be easily installed with:<br />
# pacman -U acpi-eee-10.0-1-i686.pkg.tar.gz<br />
<br />
See messages during installation for more details and don't forget to edit {{Filename|/etc/acpi/eee.conf}} to suit your tastes.<br />
<br />
*For those who use the wireless on/off acpi command; the {{Codeline|NETWORK_UP_COMMAND&#61;""}} setting in {{Filename|/etc/acpi/eee.conf}}, when applicable, should at least release the network. For example, using netcfg2, {{Codeline|NETWORK_UP_COMMAND&#61;"netcfg2 -a"}} will release the connections from before disabling wireless, allowing new ones to be made without netcfg thinking that it's already connected. It is also possible to reconnect to your previous network, however, the network tool you use needs to have a somewhat lengthy timeout as it takes 15-20 seconds for your wireless device to reappear. <br />
<br />
{{Note | Make sure '''asusosd''' is enabled on startup if you want to have the Graphic Indicators from Xandros. To run asusosd simply type {{Codeline|asusosd &}} at a command prompt.}}<br />
<br />
==Asus Eee PC model 701 repository from toofishes==<br />
<br />
Toofishes created a repository for the 701. The repository contained customized kernel built specifically for the 701 and some additional packages. <br />
<br />
While the stock Arch kernel works very well with the 701, toofishes kernel have the following advantages:<br />
<br />
* Faster boot time &ndash; because most of the modules have been compile into the kernel, no time is wasted waiting for the modules to load<br />
* No need to generate initial ramdisk every time a kernel is upgrade <br />
* Small size (around 4MB)<br />
<br />
To use the repository, add:<br />
[eee]<br />
Server = http://code.toofishes.net/packages/eee<br />
to your {{Filename|/etc/pacman.conf}} and then issue:<br />
pacman -Syu<br />
<br />
===Package List===<br />
Currently, toofishes' repository contains the following packages:<br />
<br />
*'''kernel-eee''' &ndash; customized kernel for Asus Eee PC model 701<br />
*'''luvcview''' &ndash; webcam program for testing webcam driver<br />
<br />
===Kernel-eee Installation Instruction===<br />
Simply use pacman to install the package you need. Install the packages with this command:<br />
# pacman -Sy kernel-eee<br />
<br />
then, add the following to {{Filename|/boot/grub/menu.lst}}; note that no initrd is needed:<br />
# (2) Arch Linux<br />
title Arch Linux Eee kernel<br />
root (hd0,0)<br />
kernel /boot/vmlinuzeee root=/dev/sda1 ro<br />
<br />
Restart and select Arch Linux Eee kernel from the grub boot menu.<br />
<br />
==Additional Tips & Tweaks==<br />
<br />
===Tweaking kernel-eee===<br />
<br />
Toofishes' kernel, also known as kernel-eee, can be recompiled to include custom features. You can download toofishes' kernel PKGBUILD and all the nesseary files from his gitweb by installing the git package and using the following command:<br />
<br />
$ git clone git://code.toofishes.net/dan/eee.git<br />
<br />
or if you are behind a proxy and can't use the git protocol:<br />
<br />
$ git clone http://code.toofishes.net/git/dan/eee.git<br />
<br />
There are two ways to tweak the kernel. The first is simply to edit the {{Filename|kernelconfig}} file with your favorite editor and the second is to insert a {{Codeline|make menuconfig}} line into the PKGBUILD before the kernel's compilation.<br />
<br />
===Using Wine with toofishes' kernel===<br />
<br />
Normally, Wine won't work with toofishes' kernel because it is compiled with VMSPLIT_2G_OPT option. In order to use Wine with toofishes' kernel, you have to recompile his kernel with VMSPLIT_3G option.<br />
<br />
Download the kernel PKGBUILD and all the necessary files from toofishes' gitweb using the above instructions, then change the following lines in the {{Filename|kernelconfig}} file from this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 # CONFIG_VMSPLIT_3G is not set<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 CONFIG_VMSPLIT_2G_OPT=y<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
to this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 CONFIG_VMSPLIT_3G=y<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 # CONFIG_VMSPLIT_2G_OPT is not set<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
<br />
Compile and install the kernel and Wine should now work.<br />
<br />
===Power down with the power button===<br />
<br />
{{Note | If you are using ighea's acpi-eee or dkite's acpid_eee package then you should already be able to shutdown by pressing the power button and should not need to do this.}}<br />
<br />
The two alternatives here are described in [[Allow users to shutdown]].<br />
<br />
If you don't already or don't plan to use sudo, it may be simpler to use the setuid /sbin/halt method, otherwise using sudo is preferred.<br />
<br />
Below are all the steps required for the sudo method. If you want to use the setuid method, read the article linked above and perform the 'power' file step here, while omitting the 'sudo' in it.<br />
<br />
# pacman -S sudo<br />
<br />
As root, do the following:<br />
# visudo<br />
<br />
Add the following line to the file:<br />
USER HOST = NOPASSWD: /sbin/poweroff<br />
<br />
Where {{Codeline|USER}} is the user you want to be able to power down with and {{Codeline|HOST}} is your hostname (from {{Filename|/etc/rc.conf}}).<br />
<br />
Now, create a file called {{Filename|/etc/acpi/events/power}}, containing:<br />
# /etc/acpi/events/power<br />
# This is called when the user presses the power button<br />
<br />
event=button/power (PWR.||PBTN)<br />
action=sudo /sbin/poweroff<br />
<br />
Make sure that you execute:<br />
# /etc/rc.d/acpid start<br />
<br />
And/or add acpid to the daemons list in {{Filename|/etc/rc.conf}}:<br />
DAEMONS=(hal, acpid ...)<br />
<br />
===Use cpufreq for power saving===<br />
<br />
{{Note | toofishes dropped CPU scaling from his latest kernel builds, due to the fact, confirmed by other users, that there were no effective power savings with p4-clockmod's module, and it introduced "unacceptable latency", even with relatively low percentage up thresholds.}}<br />
<br />
Install cpufrequtitls:<br />
# pacman -S cpufrequtils<br />
<br />
For scaling down the processor you have to load the p4_clockmod module. Insert it into your {{Filename|/etc/rc.conf}} MODULES array for loading it at startup. <br />
MODULES=(... p4_clockmod ...)<br />
<br />
Add 'cpufreq' to the DAEMONS array in {{Filename|/etc/rc.conf}} to have it start on startup.<br />
DAEMONS=(... cpufreq ...)<br />
<br />
Add the following into {{Filename|/etc/conf.d/cpufreq}}:<br />
governor="ondemand"<br />
min_freq="113MHz"<br />
max_freq="900MHz"<br />
<br />
With enabled cpufreq it scales the processor between 113MHz up to max. frequency. That should save a lot on battery power. The stated 900MHz will be never reached by the eeePC, the p4_clockmod reports a wrong frequency here. But scaling works, you can feel it in the performance of eeePC that he slow down the processor.<br />
<br />
{{Note | The merits of p4-clockmod are debatable. Particularly on the EEEPC 701, battery time isn't extended due to its usage, and some users have even reported less battery duration. More hints to the reasons why can be read in [http://www.codemonkey.org.uk/2009/01/18/forthcoming-p4clockmod/ this] fine blog entry.}}<br />
<br />
===More responsive system with ondemand governor===<br />
The default up_threshold (where it will bump to a faster speed) for the CPU governor is 80, which means it will increase the CPU speed when utilization is above 80%. This can make X applications have a bit of lag. <br />
<br />
Try changing this value:<br />
$ sudo bash -c "echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold"<br />
<br />
With 40 it still leaves the majority of CPU cycles at the lowest available clock speed but increases responsiveness. You can add this line to one of your startup scripts (such as {{Filename|/etc/rc.local}}) if you wish to keep it, for example:<br />
<br />
#!/bin/bash<br />
#<br />
# /etc/rc.local: Local multi-user startup script.<br />
#<br />
<br />
echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold<br />
<br />
Also, following line is also reported to help makes system more responsive. You can use it by adding it to your {{Filename|/etc/rc.local}}:<br />
echo 2000000 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate<br />
<br />
===Speeding up udev for faster boot===<br />
*[[Speedup udev]]<br />
*http://dev.laptop.org/ticket/4349<br />
*[http://www.eeesale.com/Asus-Eee-PC-overclock-Benchmarks.htm Speed up the Eee PC]<br />
<br />
You can also disable the autoload by editing your {{Filename|[[rc.conf]]}}:<br />
...<br />
MOD_AUTOLOAD="no"<br />
...<br />
MODULES=(pciehp ath5k)<br />
<br />
===Update your BIOS without Xandros===<br />
{{Warning | You can break your system, do not update if you are not sure of what you are doing!}}<br />
<br />
First, you need to download the ''.rom'' file.<br />
*[http://update.eeepc.asus.com/bios/ Asus' official BIOS]<br />
*[http://forum.eeeuser.com/viewtopic.php?id=3485 EeeUser's topic]<br />
<br />
You also need an USB stick formatted in FAT32. To format the USBStick, use the cfdisk tool:<br />
# cfdisk /dev/sdc # could be something else than "c"<br />
<br />
Choose [delete], [type]: "fat32" (code 0B), [write] and then exit with [quit].<br />
<br />
NOTE to EEE PC 900 owners and possibly others: Using this method will require a flash drive formatted with a '''FAT16''' file-system. If the BIOS update process hangs up at "Reading file 900.ROM" for more than a few minutes then it should be safe to power down your EEE PC and reformat your flashdrive's file-system to the correct one. You can force FAT16 creation with the following command:<br />
# mkdosfs -F 16 /dev/device-path<br />
<br />
Now just copy the ''.rom'' on the USBStick :<br />
$ cp /somewhere/blabla/.../thecurrentnameofthefile.ROM /path/to/mounted/usb_stick/701.rom<br />
The name of the copy '''must''' be xxxx.rom where xxxx is the model of your eee PC. (i.e. 900 users it's 900.rom)<br />
<br />
Next step, reboot the eeepc with the USB stick pluged-in, and press Alt+F2. It will launch the built-in tool. Everything should be Ok, you can make a coffee during the update. When it asks you to push the power-button it has finished.<br />
<br />
At the next boot, you'll be invited to configure the BIOS. Check if the everything is enabled (my webcam and wireless were disabled after the update) and if it displays the good version in the main screen. It's done!<br />
<br />
=== More usable font sizes ===<br />
<br />
====The_glu's method====<br />
<br />
I found an easy solution that works on a 901:<br />
<br />
Edit {{Filename|/etc/X11/xinit/xserverrc}} and add "-dpi 134":<br />
exec /usr/bin/X -nolisten tcp -dpi 134<br />
<br />
Restart X and fonts should have the correct size. Notice it's won't works if you have Xft*dpi: in your {{Filename|.XDefaults}}.<br />
<br />
You don't need to edit your config file to set a smaller font size, I you did you should set font-size to 10 or you will have to small fonts...<br />
<br />
==== Old method ====<br />
<br />
On a default installation with Xfce 4 my font sizes were too big, here is what I did to sort them out.<br />
<br />
First, I set the DPI by adding the following to {{Filename|~/.Xdefaults}}:<br />
Xft*dpi: 134<br />
<br />
This then caused the fonts to be even bigger, so I set them all to be font-size 6 by adding the following into {{Filename|~/.gtkrc-2.0}} (note that this will be overwritten if you use any tools to change GTK settings):<br />
style "user-font"<br />
{<br />
font_name="Bitstream Vera Sans 6"<br />
}<br />
widget_class "*" style "user-font"<br />
<br />
To do the same with KDE fonts (without KDE installed) you have to add the following to {{Filename|~/.kde/share/config/kdeglobals}}:<br />
[General]<br />
StandardFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
activeFont=Bitstream Vera Sans,6,-1,5,75,0,0,0,0,0<br />
fixed=Bitstream Vera Sans Mono,6,-1,5,50,0,0,0,0,0<br />
font=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
menuFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
taskbarFont=Bitstream Vera Sans,6,-1,5,50,1,0,0,0,0<br />
toolBarFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
<br />
To make your fonts even prettier enable the [[Fonts#Fonts_with_LCD_filter_enabled|LCD Fonts]].<br />
<br />
==== Alternative Method ====<br />
<br />
For me it worked far better to open the gnome appearance control panel, go to the fonts tab, click defaults, and change the resolution to be 96 dpi. Changing .Xdefaults doesnt work when running gnome, as gnome-settings-daemon overrides it. You can then leave all font sizes at their default, and things should look good. Simply changing the font sizes and leaving the DPI at its technically correct value (~134) gave me weird layout problems in some apps, and oddly large fonts in others.<br />
<br />
==Known problems and their solutions==<br />
<br />
===Sound===<br />
<br />
For most people, sound should work right out of the box with no troubles. However, others might need to add the following line to {{Filename|/etc/modprobe.conf}}<br />
options snd-hda-intel model=3stack-dig<br />
or the following one for the Eee PC 900 model<br />
options snd-hda-intel model=auto<br />
<br />
If your internal microphone doesn't work, you probably have to turn the capture feature on. Simply fire up alsamixer, find your Capture control, and press spacebar to enable it.<br />
<br />
===Webcam===<br />
<br />
If for some reason webcam have been disabled on your 701, you can enable it by issuing the following command as root: <br />
<br />
echo 1 > /sys/devices/platform/eeepc/camera<br />
<br />
If you want the webcam application that the default Xandos installation uses, install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14469 ucview from the AUR].<br />
<br />
The webcam also works fine with the latest version of Skype.<br />
<br />
If you already have mplayer installed you can launch:<br />
$ mplayer -fps 15 tv://<br />
<br />
I have yet to get it working with vlc or any other software such as xawtv. If you know how, please update this.<br />
<br />
*'''NOTE:''' For anyone who has accidentally disabled Auto Exposure for their webcam in luvcview (making the image dark), and can't enable it again, do the following:<br />
<br />
Install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14468 libwebcam from the AUR].<br />
<br />
Issue the following command:<br />
$ uvcdynctrl --set "Exposure, Auto" 4<br />
<br />
{{Note | Be sure the "OS Installation" option is set to "finished" in the BIOS' "Advanced" tab or your camera may not work in some applications (like Skype).}}<br />
<br />
{{Note | Make sure you are a member of the video group edit /etc/group and add your username to video}}<br />
<br />
===Microphone===<br />
<br />
Solution for problems with the internal microphone.<br />
<br />
1. First of all set in alsamixer "Input Source" to "i-Mic"<br />
<br />
2. Increase "Capture" and "i-Mic Boost" to your needs<br />
<br />
3. Edit {{Filename|/etc/asound.state}} the following, change the 2 "false" to "true" like showing:<br />
....snap.....<br />
control.11 {<br />
comment.access 'read write'<br />
comment.type BOOLEAN<br />
comment.count 2<br />
iface MIXER<br />
name 'Capture Switch'<br />
value.0 true<br />
value.1 true<br />
}<br />
....snap....<br />
<br />
4. After editing run following as root<br />
# alsactl restore<br />
<br />
5. Now your internal microphone should be working.<br />
<br />
===Wireless doesn't work, even after installing custom Madwifi module===<br />
<br />
I found that Arch tried to use the ath5k module for wireless, and that meant it took control of the card rather than ath_pci (the module I had compiled and installed). I got a Madwifi status 3 message in dmesg when this happened.<br />
<br />
The solution is to blacklist the ath5k module in {{Filename|/etc/rc.conf}}:<br />
<br />
MODULES = ( ... !ath5k ... )<br />
<br />
===Laggy or Unresponsive ACPI Events===<br />
<br />
The latest kernel (2.6.26) introduces new problems with Eee's ACPI events handling. Basically, ACPI events become very laggy and after some time ACPI get disabled after a heavy usage (e.g. changing volume, brightness). This problem affects both stock kernel and toofishes' kernel.<br />
<br />
It appears that the solution is to apply this [http://bugzilla.kernel.org/attachment.cgi?id=16862 patch] ([http://bugzilla.kernel.org/show_bug.cgi?id=10724 original bug report]) to the kernel. <br />
<br />
{{Note | The latest toofishes' kernel, version 2.6.26-1, now includes the patch, but you can still use ighea's one for the extras features listed below.}}<br />
<br />
Until toofishes update his kernel to include the patch, you can use ighea's slightly modified toofishes' kernel that included the above patch, as well as other modifications:<br />
<br />
*Support for Wine <br />
*uvesafb is built as module <br />
*Use [http://bbs.archlinux.org/viewtopic.php?pid=393860#p393860 new eeepc-laptop driver] (which also handles fan-control) instead of older acus_acpi or asus-laptop -drivers.<br />
<br />
You can get the modified kernel, as well as the associative packages, from [http://koti.kapsi.fi/~ighea/eee/kernel-eee/ here].<br />
<br />
After you have downloaded the packages, Install them using this command:<br />
# pacman -U kernel-eee-2.6.26-1-i686.pkg.tar.gz madwifi-eee-svn-3752-1-i686.pkg.tar.gz <br />
<br />
You might also want to use IgnorePkg-line in {{Filename|/etc/pacman.conf}} to hold packages from being accidentally updated.<br />
IgnorePkg = kernel-eee madwifi-eee-svn<br />
<br />
Also don't forget to upgrade ighea's acpi-eee package to version 9.6.<br />
<br />
===Unclean unmount during shutdown when having home directory mounted on SD card===<br />
<br />
If you experienced unclean unmount during shutdown when having your home directory on SD card, then add the following 3 lines to "Write to wtmp file before unmounting" section of your {{Filename|/etc/rc.shutdown}} file:<br />
<pre><br />
...<br />
<br />
stat_busy "Unmounting Filesystems"<br />
/bin/umount -a -t noramfs,notmpfs,nosysfs,noproc<br />
<br />
# Add these 3 lines<br />
sync;sync;sync;<br />
eject /dev/sdb # Or whichever is your SD-card's device name. /dev/disk/by-uuid/ followed by the UUID identifier is preferable though.<br />
sleep 3<br />
# End of hack<br />
<br />
stat_done<br />
<br />
...<br />
</pre><br />
<br />
===Booting from card without initrd===<br />
<br />
Let's say you decided to install Arch Linux on a card and compiled your own kernel (or used the kernel26eee kernel) without initrd. Card reader on EeePC is connected as an USB device. Unfortunately, USB storage devices are detected with a delay, so we must tell the kernel to wait until this device becomes available. You do this with "rootwait" option passed to kernel at boot time.<br />
<br />
===Sleeping and waking system on a card===<br />
<br />
If you have Arch Linux on a card, waking up from sleeping state will most likely fail. The only solution is to enable the CONFIG_USB_PERSIST option in kernel. The kernel26eee package should have this option enabled.<br />
<br />
The command to do this is:<br />
echo 1 >/sys/bus/usb/devices/.../power/persist<br />
<br />
Replace the {{Codeline|"..."}} with the device like 1-3 or 1-5 where the first number is the bus and the second is the device <br />
<br />
Each device that is connected to your computer gets an entry in the sysfs "system file system" it is a virtual file system like proc<br />
<br />
More info:<br />
*http://www.mjmwired.net/kernel/Documentation/usb/persist.txt<br />
*http://forum.eeeuser.com/viewtopic.php?id=22712<br />
<br />
===Display doesn't wake up properly===<br />
<br />
If you encounter black display (but apparently working system) after suspend/resume, consider using the "uswsusp" package (available in the official repositories) and correcting suspend2ram script in /etc/acpi, where you use this line to make the machine go to sleep:<br />
<br />
/usr/sbin/s2ram --force --vbe_post --vbe_mode<br />
<br />
==Battery Tests==<br />
<br />
The following are reported battery runtimes:<br />
<br />
{| class="wikitable" style="text-align:left"<br />
|+Battery runtimes<br />
|-<br />
! Task !! Series !! Wireless !! Screen Brightness !! FSB Speed !! Fan Speed !! Runtime !! Comments<br />
|-<br />
! DVD Playback<br />
| 701 || On || Max || 85mhz || 100% || 134min || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! DVD Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! AVI Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading AVI from SSD<br />
|-<br />
! IM and Surf<br />
| 701 || On || ~30% || ??? || low || 173min || Normal web-browsing, Flash should reduce runtime a lot !<br />
|-<br />
! Programming and PDF reading<br />
| 1000HA || Off || ~40% || ??? || low || +6hs || Using Evince and SPE under XFCE with camera and USB disabled<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || +4hs || Stock kernel without laptop-mode<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || 5hs || Stock kernel with laptop-mode and other tweaks<br />
|}<br />
<br />
N.B. - Will add battery runtimes as I am able to test them, please contribute.<br />
<br />
-- Grecko.1<br />
<br />
Still tweaking, but disabling everything from BIOS got me about 6 hours and a half. With eee-kernel, I *could* get a little more.<br />
<br />
-- ekuber</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=ASUS_Eee_PC_701&diff=86179ASUS Eee PC 7012009-12-03T13:04:39Z<p>Zodmaner: /* Known problems and their solutions */ Move sound, webcam and microphones section into here.</p>
<hr />
<div>{{stub}}<br />
[[Category:Getting and installing Arch (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|Русский|Инсталляция Arch Linux на Asus EEE PC}}<br />
{{i18n_links_end}}<br />
<br />
Most of this information is from the [http://bbs.archlinux.org/viewtopic.php?pid=297632 Arch Forum]. You can also find a lot of helpful information from the [http://forum.eeeuser.com/ EEEUser Forum]. <br />
<br />
==Before You Begin==<br />
<br />
===Avoiding Pitfalls===<br />
<br />
The install is pretty normal, except that you'll need to [http://forum.eeeuser.com/viewtopic.php?id=890 avoid the pitfalls] of our alternative Linux install:<br />
<br />
# Never choose to use a journaling file system on the SSD partitions<br />
# Never use a swap partition on the SSD<br />
# Edit your new installation fstab to mount the SSD partitions "noatime"<br />
# Never log messages or error log to the SSD<br />
<br />
The rules ensure that we won't reach the maximum limit of writes on our SSD faster than we should, although this is being contested (see [http://wiki.eeeuser.com/ssd_write_limit this link] and [http://www.storagesearch.com/ssdmyths-endurance.html this other link]).<br />
<br />
Some other minor modifications can be made to decrease number of non-mandatory writes by applications: deactivate {{Filename|~/.viminfo}} in vi, deactivate less history file ({{Filename|~/.lesshst}}), and so on.<br />
<br />
===Choosing Your Installation Media===<br />
<br />
The Eee PC does not have an optical drive installed on the machine. This means you will need to install Arch Linux through one of the alternative methods:<br />
<br />
# [[Beginners_Guide#USB_stick|USB stick]] '''(Recommended)'''<br />
# External USB CD-ROM drive<br />
# [[PXE|Network (PXE)]]<br />
<br />
==Installing Arch Linux==<br />
<br />
With the release of the 2009.08 installation media, installing Arch Linux on Asus Eee PC model 701 is pretty easy and straightforward since the stock kernel on Arch installation media support all of the 701 hardwares out of the box. <br />
<br />
Therefore, aside from the recommended partition scheme described below, there shouldn't be any other major differences between installing Arch Linux on the 701 and any other computer. You should be able to successfully install Arch on the 701 by following instructions on [[Beginners_Guide|Beginners' Guide]] without any problem.<br />
<br />
===Prepare Hard Drive===<br />
<br />
The most important different between the 701 and other machines is that the 701 use SSD drive instead of normal hard drive. This section advise on how to set up a partition scheme that is best suited to the 701. <br />
<br />
The default Eee PC drive is split up into four partitions (here is [http://forum.eeeuser.com/viewtopic.php?id=1805 some information] about the partitioning): <br />
<br />
* It is easiest to wipe the existing partitions and use one or two partitions for your install. One partition would be just '/', and two partitions would be '/boot' and '/'.<br />
* Choose "NONE" for swap in case your eee has a SSD (see #2 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]])<br />
* Select "ext2" as your filesystem in case your eee has a SSD (see #1 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]]). If your model has a standard HD choose "ext3".<br />
<br />
===Install X===<br />
<br />
Install X by follow instructions on the [[Beginners_Guide#Step_2:_Install_X|Beginners' Guide]], then install the Intel graphics driver:<br />
# pacman -Sy xf86-video-intel<br />
<br />
You may also wish to install the Synaptics drivers for the touchpad (not needed for Eee PC 900):<br />
# pacman -Sy xf86-input-synaptics<br />
<br />
With the latest version of X from extra repository, X should work on the 701 '''without any need for xorg.conf'''. However, if for some reason you wish to use an xorg.conf file, you can use an old [[Example_Xorg_configuration_file_for_Asus_Eee_PC_701|example Xorg configuration file for Asus Eee PC model 701]] as a template or automatically generate a new one by running the following command:<br />
<br />
# Xorg -configure<br />
<br />
Consult [[Xorg_input_hotplugging|Xorg Input Hotplugging]] for more information on how to config input devices using HAL.<br />
<br />
The synaptics stuff can be removed if you have a EEE PC 900. The {{Codeline|Option "AutoAddDevices"}} line is important if you need a non-default XkbLayout, because if you don't have it, xorg will find 3 keyboards (at least with the 900 model).<br />
The Modeline has obviously to be removed or modified if you dont have a model with this resolution.<br />
<br />
===Getting Hot Keys, Graphic Indicators and Shutdown with the Power Button Working===<br />
<br />
If you want to have working hot keys (wifi, brightness, volume etc), an OSD, and be able to assign actions to things like the powerbutton and closing the lid, then you should install '''ighea's acpi-eee''' package.<br />
<br />
==== ighea's acpi-eee ====<br />
<br />
Get the latest package from [http://kapsi.fi/ighea/eee/acpi-eee/ here].<br />
<br />
The package can be easily installed with:<br />
# pacman -U acpi-eee-10.0-1-i686.pkg.tar.gz<br />
<br />
See messages during installation for more details and don't forget to edit {{Filename|/etc/acpi/eee.conf}} to suit your tastes.<br />
<br />
*For those who use the wireless on/off acpi command; the {{Codeline|NETWORK_UP_COMMAND&#61;""}} setting in {{Filename|/etc/acpi/eee.conf}}, when applicable, should at least release the network. For example, using netcfg2, {{Codeline|NETWORK_UP_COMMAND&#61;"netcfg2 -a"}} will release the connections from before disabling wireless, allowing new ones to be made without netcfg thinking that it's already connected. It is also possible to reconnect to your previous network, however, the network tool you use needs to have a somewhat lengthy timeout as it takes 15-20 seconds for your wireless device to reappear. <br />
<br />
{{Note | Make sure '''asusosd''' is enabled on startup if you want to have the Graphic Indicators from Xandros. To run asusosd simply type {{Codeline|asusosd &}} at a command prompt.}}<br />
<br />
==Asus Eee PC model 701 repository from toofishes==<br />
<br />
Toofishes created a repository for the 701. The repository contained customized kernel built specifically for the 701 and some additional packages. <br />
<br />
While the stock Arch kernel works very well with the 701, toofishes kernel have the following advantages:<br />
<br />
* Faster boot time &ndash; because most of the modules have been compile into the kernel, no time is wasted waiting for the modules to load<br />
* No need to generate initial ramdisk every time a kernel is upgrade <br />
* Small size (around 4MB)<br />
<br />
To use the repository, add:<br />
[eee]<br />
Server = http://code.toofishes.net/packages/eee<br />
to your {{Filename|/etc/pacman.conf}} and then issue:<br />
pacman -Syu<br />
<br />
===Package List===<br />
Currently, toofishes' repository contains the following packages:<br />
<br />
*'''kernel-eee''' &ndash; customized kernel for Asus Eee PC model 701<br />
*'''luvcview''' &ndash; webcam program for testing webcam driver<br />
<br />
===Kernel-eee Installation Instruction===<br />
Simply use pacman to install the package you need. Install the packages with this command:<br />
# pacman -Sy kernel-eee<br />
<br />
then, add the following to {{Filename|/boot/grub/menu.lst}}; note that no initrd is needed:<br />
# (2) Arch Linux<br />
title Arch Linux Eee kernel<br />
root (hd0,0)<br />
kernel /boot/vmlinuzeee root=/dev/sda1 ro<br />
<br />
Restart and select Arch Linux Eee kernel from the grub boot menu.<br />
<br />
==Troubleshooting Sound, Webcam and Microphone Problems==<br />
<br />
===Sound===<br />
<br />
For most people, sound should work right out of the box with no troubles. However, others might need to add the following line to {{Filename|/etc/modprobe.conf}}<br />
options snd-hda-intel model=3stack-dig<br />
or the following one for the Eee PC 900 model<br />
options snd-hda-intel model=auto<br />
<br />
If your internal microphone doesn't work, you probably have to turn the capture feature on. Simply fire up alsamixer, find your Capture control, and press spacebar to enable it.<br />
<br />
===Webcam===<br />
<br />
If for some reason webcam have been disabled on your 701, you can enable it by issuing the following command as root: <br />
<br />
echo 1 > /sys/devices/platform/eeepc/camera<br />
<br />
If you want the webcam application that the default Xandos installation uses, install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14469 ucview from the AUR].<br />
<br />
The webcam also works fine with the latest version of Skype.<br />
<br />
If you already have mplayer installed you can launch:<br />
$ mplayer -fps 15 tv://<br />
<br />
I have yet to get it working with vlc or any other software such as xawtv. If you know how, please update this.<br />
<br />
*'''NOTE:''' For anyone who has accidentally disabled Auto Exposure for their webcam in luvcview (making the image dark), and can't enable it again, do the following:<br />
<br />
Install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14468 libwebcam from the AUR].<br />
<br />
Issue the following command:<br />
$ uvcdynctrl --set "Exposure, Auto" 4<br />
<br />
{{Note | Be sure the "OS Installation" option is set to "finished" in the BIOS' "Advanced" tab or your camera may not work in some applications (like Skype).}}<br />
<br />
{{Note | Make sure you are a member of the video group edit /etc/group and add your username to video}}<br />
<br />
===Microphone===<br />
<br />
Solution for problems with the internal microphone.<br />
<br />
1. First of all set in alsamixer "Input Source" to "i-Mic"<br />
<br />
2. Increase "Capture" and "i-Mic Boost" to your needs<br />
<br />
3. Edit {{Filename|/etc/asound.state}} the following, change the 2 "false" to "true" like showing:<br />
....snap.....<br />
control.11 {<br />
comment.access 'read write'<br />
comment.type BOOLEAN<br />
comment.count 2<br />
iface MIXER<br />
name 'Capture Switch'<br />
value.0 true<br />
value.1 true<br />
}<br />
....snap....<br />
<br />
4. After editing run following as root<br />
# alsactl restore<br />
<br />
5. Now your internal microphone should be working.<br />
<br />
==Additional Tips & Tweaks==<br />
<br />
===Tweaking kernel-eee===<br />
<br />
Toofishes' kernel, also known as kernel-eee, can be recompiled to include custom features. You can download toofishes' kernel PKGBUILD and all the nesseary files from his gitweb by installing the git package and using the following command:<br />
<br />
$ git clone git://code.toofishes.net/dan/eee.git<br />
<br />
or if you are behind a proxy and can't use the git protocol:<br />
<br />
$ git clone http://code.toofishes.net/git/dan/eee.git<br />
<br />
There are two ways to tweak the kernel. The first is simply to edit the {{Filename|kernelconfig}} file with your favorite editor and the second is to insert a {{Codeline|make menuconfig}} line into the PKGBUILD before the kernel's compilation.<br />
<br />
===Using Wine with toofishes' kernel===<br />
<br />
Normally, Wine won't work with toofishes' kernel because it is compiled with VMSPLIT_2G_OPT option. In order to use Wine with toofishes' kernel, you have to recompile his kernel with VMSPLIT_3G option.<br />
<br />
Download the kernel PKGBUILD and all the necessary files from toofishes' gitweb using the above instructions, then change the following lines in the {{Filename|kernelconfig}} file from this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 # CONFIG_VMSPLIT_3G is not set<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 CONFIG_VMSPLIT_2G_OPT=y<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
to this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 CONFIG_VMSPLIT_3G=y<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 # CONFIG_VMSPLIT_2G_OPT is not set<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
<br />
Compile and install the kernel and Wine should now work.<br />
<br />
===Power down with the power button===<br />
<br />
{{Note | If you are using ighea's acpi-eee or dkite's acpid_eee package then you should already be able to shutdown by pressing the power button and should not need to do this.}}<br />
<br />
The two alternatives here are described in [[Allow users to shutdown]].<br />
<br />
If you don't already or don't plan to use sudo, it may be simpler to use the setuid /sbin/halt method, otherwise using sudo is preferred.<br />
<br />
Below are all the steps required for the sudo method. If you want to use the setuid method, read the article linked above and perform the 'power' file step here, while omitting the 'sudo' in it.<br />
<br />
# pacman -S sudo<br />
<br />
As root, do the following:<br />
# visudo<br />
<br />
Add the following line to the file:<br />
USER HOST = NOPASSWD: /sbin/poweroff<br />
<br />
Where {{Codeline|USER}} is the user you want to be able to power down with and {{Codeline|HOST}} is your hostname (from {{Filename|/etc/rc.conf}}).<br />
<br />
Now, create a file called {{Filename|/etc/acpi/events/power}}, containing:<br />
# /etc/acpi/events/power<br />
# This is called when the user presses the power button<br />
<br />
event=button/power (PWR.||PBTN)<br />
action=sudo /sbin/poweroff<br />
<br />
Make sure that you execute:<br />
# /etc/rc.d/acpid start<br />
<br />
And/or add acpid to the daemons list in {{Filename|/etc/rc.conf}}:<br />
DAEMONS=(hal, acpid ...)<br />
<br />
===Use cpufreq for power saving===<br />
<br />
{{Note | toofishes dropped CPU scaling from his latest kernel builds, due to the fact, confirmed by other users, that there were no effective power savings with p4-clockmod's module, and it introduced "unacceptable latency", even with relatively low percentage up thresholds.}}<br />
<br />
Install cpufrequtitls:<br />
# pacman -S cpufrequtils<br />
<br />
For scaling down the processor you have to load the p4_clockmod module. Insert it into your {{Filename|/etc/rc.conf}} MODULES array for loading it at startup. <br />
MODULES=(... p4_clockmod ...)<br />
<br />
Add 'cpufreq' to the DAEMONS array in {{Filename|/etc/rc.conf}} to have it start on startup.<br />
DAEMONS=(... cpufreq ...)<br />
<br />
Add the following into {{Filename|/etc/conf.d/cpufreq}}:<br />
governor="ondemand"<br />
min_freq="113MHz"<br />
max_freq="900MHz"<br />
<br />
With enabled cpufreq it scales the processor between 113MHz up to max. frequency. That should save a lot on battery power. The stated 900MHz will be never reached by the eeePC, the p4_clockmod reports a wrong frequency here. But scaling works, you can feel it in the performance of eeePC that he slow down the processor.<br />
<br />
{{Note | The merits of p4-clockmod are debatable. Particularly on the EEEPC 701, battery time isn't extended due to its usage, and some users have even reported less battery duration. More hints to the reasons why can be read in [http://www.codemonkey.org.uk/2009/01/18/forthcoming-p4clockmod/ this] fine blog entry.}}<br />
<br />
===More responsive system with ondemand governor===<br />
The default up_threshold (where it will bump to a faster speed) for the CPU governor is 80, which means it will increase the CPU speed when utilization is above 80%. This can make X applications have a bit of lag. <br />
<br />
Try changing this value:<br />
$ sudo bash -c "echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold"<br />
<br />
With 40 it still leaves the majority of CPU cycles at the lowest available clock speed but increases responsiveness. You can add this line to one of your startup scripts (such as {{Filename|/etc/rc.local}}) if you wish to keep it, for example:<br />
<br />
#!/bin/bash<br />
#<br />
# /etc/rc.local: Local multi-user startup script.<br />
#<br />
<br />
echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold<br />
<br />
Also, following line is also reported to help makes system more responsive. You can use it by adding it to your {{Filename|/etc/rc.local}}:<br />
echo 2000000 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate<br />
<br />
===Speeding up udev for faster boot===<br />
*[[Speedup udev]]<br />
*http://dev.laptop.org/ticket/4349<br />
*[http://www.eeesale.com/Asus-Eee-PC-overclock-Benchmarks.htm Speed up the Eee PC]<br />
<br />
You can also disable the autoload by editing your {{Filename|[[rc.conf]]}}:<br />
...<br />
MOD_AUTOLOAD="no"<br />
...<br />
MODULES=(pciehp ath5k)<br />
<br />
===Update your BIOS without Xandros===<br />
{{Warning | You can break your system, do not update if you are not sure of what you are doing!}}<br />
<br />
First, you need to download the ''.rom'' file.<br />
*[http://update.eeepc.asus.com/bios/ Asus' official BIOS]<br />
*[http://forum.eeeuser.com/viewtopic.php?id=3485 EeeUser's topic]<br />
<br />
You also need an USB stick formatted in FAT32. To format the USBStick, use the cfdisk tool:<br />
# cfdisk /dev/sdc # could be something else than "c"<br />
<br />
Choose [delete], [type]: "fat32" (code 0B), [write] and then exit with [quit].<br />
<br />
NOTE to EEE PC 900 owners and possibly others: Using this method will require a flash drive formatted with a '''FAT16''' file-system. If the BIOS update process hangs up at "Reading file 900.ROM" for more than a few minutes then it should be safe to power down your EEE PC and reformat your flashdrive's file-system to the correct one. You can force FAT16 creation with the following command:<br />
# mkdosfs -F 16 /dev/device-path<br />
<br />
Now just copy the ''.rom'' on the USBStick :<br />
$ cp /somewhere/blabla/.../thecurrentnameofthefile.ROM /path/to/mounted/usb_stick/701.rom<br />
The name of the copy '''must''' be xxxx.rom where xxxx is the model of your eee PC. (i.e. 900 users it's 900.rom)<br />
<br />
Next step, reboot the eeepc with the USB stick pluged-in, and press Alt+F2. It will launch the built-in tool. Everything should be Ok, you can make a coffee during the update. When it asks you to push the power-button it has finished.<br />
<br />
At the next boot, you'll be invited to configure the BIOS. Check if the everything is enabled (my webcam and wireless were disabled after the update) and if it displays the good version in the main screen. It's done!<br />
<br />
=== More usable font sizes ===<br />
<br />
====The_glu's method====<br />
<br />
I found an easy solution that works on a 901:<br />
<br />
Edit {{Filename|/etc/X11/xinit/xserverrc}} and add "-dpi 134":<br />
exec /usr/bin/X -nolisten tcp -dpi 134<br />
<br />
Restart X and fonts should have the correct size. Notice it's won't works if you have Xft*dpi: in your {{Filename|.XDefaults}}.<br />
<br />
You don't need to edit your config file to set a smaller font size, I you did you should set font-size to 10 or you will have to small fonts...<br />
<br />
==== Old method ====<br />
<br />
On a default installation with Xfce 4 my font sizes were too big, here is what I did to sort them out.<br />
<br />
First, I set the DPI by adding the following to {{Filename|~/.Xdefaults}}:<br />
Xft*dpi: 134<br />
<br />
This then caused the fonts to be even bigger, so I set them all to be font-size 6 by adding the following into {{Filename|~/.gtkrc-2.0}} (note that this will be overwritten if you use any tools to change GTK settings):<br />
style "user-font"<br />
{<br />
font_name="Bitstream Vera Sans 6"<br />
}<br />
widget_class "*" style "user-font"<br />
<br />
To do the same with KDE fonts (without KDE installed) you have to add the following to {{Filename|~/.kde/share/config/kdeglobals}}:<br />
[General]<br />
StandardFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
activeFont=Bitstream Vera Sans,6,-1,5,75,0,0,0,0,0<br />
fixed=Bitstream Vera Sans Mono,6,-1,5,50,0,0,0,0,0<br />
font=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
menuFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
taskbarFont=Bitstream Vera Sans,6,-1,5,50,1,0,0,0,0<br />
toolBarFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
<br />
To make your fonts even prettier enable the [[Fonts#Fonts_with_LCD_filter_enabled|LCD Fonts]].<br />
<br />
==== Alternative Method ====<br />
<br />
For me it worked far better to open the gnome appearance control panel, go to the fonts tab, click defaults, and change the resolution to be 96 dpi. Changing .Xdefaults doesnt work when running gnome, as gnome-settings-daemon overrides it. You can then leave all font sizes at their default, and things should look good. Simply changing the font sizes and leaving the DPI at its technically correct value (~134) gave me weird layout problems in some apps, and oddly large fonts in others.<br />
<br />
==Known problems and their solutions==<br />
<br />
===Sound===<br />
<br />
For most people, sound should work right out of the box with no troubles. However, others might need to add the following line to {{Filename|/etc/modprobe.conf}}<br />
options snd-hda-intel model=3stack-dig<br />
or the following one for the Eee PC 900 model<br />
options snd-hda-intel model=auto<br />
<br />
If your internal microphone doesn't work, you probably have to turn the capture feature on. Simply fire up alsamixer, find your Capture control, and press spacebar to enable it.<br />
<br />
===Webcam===<br />
<br />
If for some reason webcam have been disabled on your 701, you can enable it by issuing the following command as root: <br />
<br />
echo 1 > /sys/devices/platform/eeepc/camera<br />
<br />
If you want the webcam application that the default Xandos installation uses, install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14469 ucview from the AUR].<br />
<br />
The webcam also works fine with the latest version of Skype.<br />
<br />
If you already have mplayer installed you can launch:<br />
$ mplayer -fps 15 tv://<br />
<br />
I have yet to get it working with vlc or any other software such as xawtv. If you know how, please update this.<br />
<br />
*'''NOTE:''' For anyone who has accidentally disabled Auto Exposure for their webcam in luvcview (making the image dark), and can't enable it again, do the following:<br />
<br />
Install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14468 libwebcam from the AUR].<br />
<br />
Issue the following command:<br />
$ uvcdynctrl --set "Exposure, Auto" 4<br />
<br />
{{Note | Be sure the "OS Installation" option is set to "finished" in the BIOS' "Advanced" tab or your camera may not work in some applications (like Skype).}}<br />
<br />
{{Note | Make sure you are a member of the video group edit /etc/group and add your username to video}}<br />
<br />
===Microphone===<br />
<br />
Solution for problems with the internal microphone.<br />
<br />
1. First of all set in alsamixer "Input Source" to "i-Mic"<br />
<br />
2. Increase "Capture" and "i-Mic Boost" to your needs<br />
<br />
3. Edit {{Filename|/etc/asound.state}} the following, change the 2 "false" to "true" like showing:<br />
....snap.....<br />
control.11 {<br />
comment.access 'read write'<br />
comment.type BOOLEAN<br />
comment.count 2<br />
iface MIXER<br />
name 'Capture Switch'<br />
value.0 true<br />
value.1 true<br />
}<br />
....snap....<br />
<br />
4. After editing run following as root<br />
# alsactl restore<br />
<br />
5. Now your internal microphone should be working.<br />
<br />
===Wireless doesn't work, even after installing custom Madwifi module===<br />
<br />
I found that Arch tried to use the ath5k module for wireless, and that meant it took control of the card rather than ath_pci (the module I had compiled and installed). I got a Madwifi status 3 message in dmesg when this happened.<br />
<br />
The solution is to blacklist the ath5k module in {{Filename|/etc/rc.conf}}:<br />
<br />
MODULES = ( ... !ath5k ... )<br />
<br />
===Laggy or Unresponsive ACPI Events===<br />
<br />
The latest kernel (2.6.26) introduces new problems with Eee's ACPI events handling. Basically, ACPI events become very laggy and after some time ACPI get disabled after a heavy usage (e.g. changing volume, brightness). This problem affects both stock kernel and toofishes' kernel.<br />
<br />
It appears that the solution is to apply this [http://bugzilla.kernel.org/attachment.cgi?id=16862 patch] ([http://bugzilla.kernel.org/show_bug.cgi?id=10724 original bug report]) to the kernel. <br />
<br />
{{Note | The latest toofishes' kernel, version 2.6.26-1, now includes the patch, but you can still use ighea's one for the extras features listed below.}}<br />
<br />
Until toofishes update his kernel to include the patch, you can use ighea's slightly modified toofishes' kernel that included the above patch, as well as other modifications:<br />
<br />
*Support for Wine <br />
*uvesafb is built as module <br />
*Use [http://bbs.archlinux.org/viewtopic.php?pid=393860#p393860 new eeepc-laptop driver] (which also handles fan-control) instead of older acus_acpi or asus-laptop -drivers.<br />
<br />
You can get the modified kernel, as well as the associative packages, from [http://koti.kapsi.fi/~ighea/eee/kernel-eee/ here].<br />
<br />
After you have downloaded the packages, Install them using this command:<br />
# pacman -U kernel-eee-2.6.26-1-i686.pkg.tar.gz madwifi-eee-svn-3752-1-i686.pkg.tar.gz <br />
<br />
You might also want to use IgnorePkg-line in {{Filename|/etc/pacman.conf}} to hold packages from being accidentally updated.<br />
IgnorePkg = kernel-eee madwifi-eee-svn<br />
<br />
Also don't forget to upgrade ighea's acpi-eee package to version 9.6.<br />
<br />
===Unclean unmount during shutdown when having home directory mounted on SD card===<br />
<br />
If you experienced unclean unmount during shutdown when having your home directory on SD card, then add the following 3 lines to "Write to wtmp file before unmounting" section of your {{Filename|/etc/rc.shutdown}} file:<br />
<pre><br />
...<br />
<br />
stat_busy "Unmounting Filesystems"<br />
/bin/umount -a -t noramfs,notmpfs,nosysfs,noproc<br />
<br />
# Add these 3 lines<br />
sync;sync;sync;<br />
eject /dev/sdb # Or whichever is your SD-card's device name. /dev/disk/by-uuid/ followed by the UUID identifier is preferable though.<br />
sleep 3<br />
# End of hack<br />
<br />
stat_done<br />
<br />
...<br />
</pre><br />
<br />
===Booting from card without initrd===<br />
<br />
Let's say you decided to install Arch Linux on a card and compiled your own kernel (or used the kernel26eee kernel) without initrd. Card reader on EeePC is connected as an USB device. Unfortunately, USB storage devices are detected with a delay, so we must tell the kernel to wait until this device becomes available. You do this with "rootwait" option passed to kernel at boot time.<br />
<br />
===Sleeping and waking system on a card===<br />
<br />
If you have Arch Linux on a card, waking up from sleeping state will most likely fail. The only solution is to enable the CONFIG_USB_PERSIST option in kernel. The kernel26eee package should have this option enabled.<br />
<br />
The command to do this is:<br />
echo 1 >/sys/bus/usb/devices/.../power/persist<br />
<br />
Replace the {{Codeline|"..."}} with the device like 1-3 or 1-5 where the first number is the bus and the second is the device <br />
<br />
Each device that is connected to your computer gets an entry in the sysfs "system file system" it is a virtual file system like proc<br />
<br />
More info:<br />
*http://www.mjmwired.net/kernel/Documentation/usb/persist.txt<br />
*http://forum.eeeuser.com/viewtopic.php?id=22712<br />
<br />
===Display doesn't wake up properly===<br />
<br />
If you encounter black display (but apparently working system) after suspend/resume, consider using the "uswsusp" package (available in the official repositories) and correcting suspend2ram script in /etc/acpi, where you use this line to make the machine go to sleep:<br />
<br />
/usr/sbin/s2ram --force --vbe_post --vbe_mode<br />
<br />
==Battery Tests==<br />
<br />
The following are reported battery runtimes:<br />
<br />
{| class="wikitable" style="text-align:left"<br />
|+Battery runtimes<br />
|-<br />
! Task !! Series !! Wireless !! Screen Brightness !! FSB Speed !! Fan Speed !! Runtime !! Comments<br />
|-<br />
! DVD Playback<br />
| 701 || On || Max || 85mhz || 100% || 134min || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! DVD Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! AVI Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading AVI from SSD<br />
|-<br />
! IM and Surf<br />
| 701 || On || ~30% || ??? || low || 173min || Normal web-browsing, Flash should reduce runtime a lot !<br />
|-<br />
! Programming and PDF reading<br />
| 1000HA || Off || ~40% || ??? || low || +6hs || Using Evince and SPE under XFCE with camera and USB disabled<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || +4hs || Stock kernel without laptop-mode<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || 5hs || Stock kernel with laptop-mode and other tweaks<br />
|}<br />
<br />
N.B. - Will add battery runtimes as I am able to test them, please contribute.<br />
<br />
-- Grecko.1<br />
<br />
Still tweaking, but disabling everything from BIOS got me about 6 hours and a half. With eee-kernel, I *could* get a little more.<br />
<br />
-- ekuber</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=ASUS_Eee_PC_701&diff=86178ASUS Eee PC 7012009-12-03T13:03:27Z<p>Zodmaner: /* Asus Eee PC model 701 repository from toofishes */</p>
<hr />
<div>{{stub}}<br />
[[Category:Getting and installing Arch (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|Русский|Инсталляция Arch Linux на Asus EEE PC}}<br />
{{i18n_links_end}}<br />
<br />
Most of this information is from the [http://bbs.archlinux.org/viewtopic.php?pid=297632 Arch Forum]. You can also find a lot of helpful information from the [http://forum.eeeuser.com/ EEEUser Forum]. <br />
<br />
==Before You Begin==<br />
<br />
===Avoiding Pitfalls===<br />
<br />
The install is pretty normal, except that you'll need to [http://forum.eeeuser.com/viewtopic.php?id=890 avoid the pitfalls] of our alternative Linux install:<br />
<br />
# Never choose to use a journaling file system on the SSD partitions<br />
# Never use a swap partition on the SSD<br />
# Edit your new installation fstab to mount the SSD partitions "noatime"<br />
# Never log messages or error log to the SSD<br />
<br />
The rules ensure that we won't reach the maximum limit of writes on our SSD faster than we should, although this is being contested (see [http://wiki.eeeuser.com/ssd_write_limit this link] and [http://www.storagesearch.com/ssdmyths-endurance.html this other link]).<br />
<br />
Some other minor modifications can be made to decrease number of non-mandatory writes by applications: deactivate {{Filename|~/.viminfo}} in vi, deactivate less history file ({{Filename|~/.lesshst}}), and so on.<br />
<br />
===Choosing Your Installation Media===<br />
<br />
The Eee PC does not have an optical drive installed on the machine. This means you will need to install Arch Linux through one of the alternative methods:<br />
<br />
# [[Beginners_Guide#USB_stick|USB stick]] '''(Recommended)'''<br />
# External USB CD-ROM drive<br />
# [[PXE|Network (PXE)]]<br />
<br />
==Installing Arch Linux==<br />
<br />
With the release of the 2009.08 installation media, installing Arch Linux on Asus Eee PC model 701 is pretty easy and straightforward since the stock kernel on Arch installation media support all of the 701 hardwares out of the box. <br />
<br />
Therefore, aside from the recommended partition scheme described below, there shouldn't be any other major differences between installing Arch Linux on the 701 and any other computer. You should be able to successfully install Arch on the 701 by following instructions on [[Beginners_Guide|Beginners' Guide]] without any problem.<br />
<br />
===Prepare Hard Drive===<br />
<br />
The most important different between the 701 and other machines is that the 701 use SSD drive instead of normal hard drive. This section advise on how to set up a partition scheme that is best suited to the 701. <br />
<br />
The default Eee PC drive is split up into four partitions (here is [http://forum.eeeuser.com/viewtopic.php?id=1805 some information] about the partitioning): <br />
<br />
* It is easiest to wipe the existing partitions and use one or two partitions for your install. One partition would be just '/', and two partitions would be '/boot' and '/'.<br />
* Choose "NONE" for swap in case your eee has a SSD (see #2 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]])<br />
* Select "ext2" as your filesystem in case your eee has a SSD (see #1 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]]). If your model has a standard HD choose "ext3".<br />
<br />
===Install X===<br />
<br />
Install X by follow instructions on the [[Beginners_Guide#Step_2:_Install_X|Beginners' Guide]], then install the Intel graphics driver:<br />
# pacman -Sy xf86-video-intel<br />
<br />
You may also wish to install the Synaptics drivers for the touchpad (not needed for Eee PC 900):<br />
# pacman -Sy xf86-input-synaptics<br />
<br />
With the latest version of X from extra repository, X should work on the 701 '''without any need for xorg.conf'''. However, if for some reason you wish to use an xorg.conf file, you can use an old [[Example_Xorg_configuration_file_for_Asus_Eee_PC_701|example Xorg configuration file for Asus Eee PC model 701]] as a template or automatically generate a new one by running the following command:<br />
<br />
# Xorg -configure<br />
<br />
Consult [[Xorg_input_hotplugging|Xorg Input Hotplugging]] for more information on how to config input devices using HAL.<br />
<br />
The synaptics stuff can be removed if you have a EEE PC 900. The {{Codeline|Option "AutoAddDevices"}} line is important if you need a non-default XkbLayout, because if you don't have it, xorg will find 3 keyboards (at least with the 900 model).<br />
The Modeline has obviously to be removed or modified if you dont have a model with this resolution.<br />
<br />
===Getting Hot Keys, Graphic Indicators and Shutdown with the Power Button Working===<br />
<br />
If you want to have working hot keys (wifi, brightness, volume etc), an OSD, and be able to assign actions to things like the powerbutton and closing the lid, then you should install '''ighea's acpi-eee''' package.<br />
<br />
==== ighea's acpi-eee ====<br />
<br />
Get the latest package from [http://kapsi.fi/ighea/eee/acpi-eee/ here].<br />
<br />
The package can be easily installed with:<br />
# pacman -U acpi-eee-10.0-1-i686.pkg.tar.gz<br />
<br />
See messages during installation for more details and don't forget to edit {{Filename|/etc/acpi/eee.conf}} to suit your tastes.<br />
<br />
*For those who use the wireless on/off acpi command; the {{Codeline|NETWORK_UP_COMMAND&#61;""}} setting in {{Filename|/etc/acpi/eee.conf}}, when applicable, should at least release the network. For example, using netcfg2, {{Codeline|NETWORK_UP_COMMAND&#61;"netcfg2 -a"}} will release the connections from before disabling wireless, allowing new ones to be made without netcfg thinking that it's already connected. It is also possible to reconnect to your previous network, however, the network tool you use needs to have a somewhat lengthy timeout as it takes 15-20 seconds for your wireless device to reappear. <br />
<br />
{{Note | Make sure '''asusosd''' is enabled on startup if you want to have the Graphic Indicators from Xandros. To run asusosd simply type {{Codeline|asusosd &}} at a command prompt.}}<br />
<br />
==Asus Eee PC model 701 repository from toofishes==<br />
<br />
Toofishes created a repository for the 701. The repository contained customized kernel built specifically for the 701 and some additional packages. <br />
<br />
While the stock Arch kernel works very well with the 701, toofishes kernel have the following advantages:<br />
<br />
* Faster boot time &ndash; because most of the modules have been compile into the kernel, no time is wasted waiting for the modules to load<br />
* No need to generate initial ramdisk every time a kernel is upgrade <br />
* Small size (around 4MB)<br />
<br />
To use the repository, add:<br />
[eee]<br />
Server = http://code.toofishes.net/packages/eee<br />
to your {{Filename|/etc/pacman.conf}} and then issue:<br />
pacman -Syu<br />
<br />
===Package List===<br />
Currently, toofishes' repository contains the following packages:<br />
<br />
*'''kernel-eee''' &ndash; customized kernel for Asus Eee PC model 701<br />
*'''luvcview''' &ndash; webcam program for testing webcam driver<br />
<br />
===Kernel-eee Installation Instruction===<br />
Simply use pacman to install the package you need. Install the packages with this command:<br />
# pacman -Sy kernel-eee<br />
<br />
then, add the following to {{Filename|/boot/grub/menu.lst}}; note that no initrd is needed:<br />
# (2) Arch Linux<br />
title Arch Linux Eee kernel<br />
root (hd0,0)<br />
kernel /boot/vmlinuzeee root=/dev/sda1 ro<br />
<br />
Restart and select Arch Linux Eee kernel from the grub boot menu.<br />
<br />
==Troubleshooting Sound, Webcam and Microphone Problems==<br />
<br />
===Sound===<br />
<br />
For most people, sound should work right out of the box with no troubles. However, others might need to add the following line to {{Filename|/etc/modprobe.conf}}<br />
options snd-hda-intel model=3stack-dig<br />
or the following one for the Eee PC 900 model<br />
options snd-hda-intel model=auto<br />
<br />
If your internal microphone doesn't work, you probably have to turn the capture feature on. Simply fire up alsamixer, find your Capture control, and press spacebar to enable it.<br />
<br />
===Webcam===<br />
<br />
If for some reason webcam have been disabled on your 701, you can enable it by issuing the following command as root: <br />
<br />
echo 1 > /sys/devices/platform/eeepc/camera<br />
<br />
If you want the webcam application that the default Xandos installation uses, install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14469 ucview from the AUR].<br />
<br />
The webcam also works fine with the latest version of Skype.<br />
<br />
If you already have mplayer installed you can launch:<br />
$ mplayer -fps 15 tv://<br />
<br />
I have yet to get it working with vlc or any other software such as xawtv. If you know how, please update this.<br />
<br />
*'''NOTE:''' For anyone who has accidentally disabled Auto Exposure for their webcam in luvcview (making the image dark), and can't enable it again, do the following:<br />
<br />
Install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14468 libwebcam from the AUR].<br />
<br />
Issue the following command:<br />
$ uvcdynctrl --set "Exposure, Auto" 4<br />
<br />
{{Note | Be sure the "OS Installation" option is set to "finished" in the BIOS' "Advanced" tab or your camera may not work in some applications (like Skype).}}<br />
<br />
{{Note | Make sure you are a member of the video group edit /etc/group and add your username to video}}<br />
<br />
===Microphone===<br />
<br />
Solution for problems with the internal microphone.<br />
<br />
1. First of all set in alsamixer "Input Source" to "i-Mic"<br />
<br />
2. Increase "Capture" and "i-Mic Boost" to your needs<br />
<br />
3. Edit {{Filename|/etc/asound.state}} the following, change the 2 "false" to "true" like showing:<br />
....snap.....<br />
control.11 {<br />
comment.access 'read write'<br />
comment.type BOOLEAN<br />
comment.count 2<br />
iface MIXER<br />
name 'Capture Switch'<br />
value.0 true<br />
value.1 true<br />
}<br />
....snap....<br />
<br />
4. After editing run following as root<br />
# alsactl restore<br />
<br />
5. Now your internal microphone should be working.<br />
<br />
==Additional Tips & Tweaks==<br />
<br />
===Tweaking kernel-eee===<br />
<br />
Toofishes' kernel, also known as kernel-eee, can be recompiled to include custom features. You can download toofishes' kernel PKGBUILD and all the nesseary files from his gitweb by installing the git package and using the following command:<br />
<br />
$ git clone git://code.toofishes.net/dan/eee.git<br />
<br />
or if you are behind a proxy and can't use the git protocol:<br />
<br />
$ git clone http://code.toofishes.net/git/dan/eee.git<br />
<br />
There are two ways to tweak the kernel. The first is simply to edit the {{Filename|kernelconfig}} file with your favorite editor and the second is to insert a {{Codeline|make menuconfig}} line into the PKGBUILD before the kernel's compilation.<br />
<br />
===Using Wine with toofishes' kernel===<br />
<br />
Normally, Wine won't work with toofishes' kernel because it is compiled with VMSPLIT_2G_OPT option. In order to use Wine with toofishes' kernel, you have to recompile his kernel with VMSPLIT_3G option.<br />
<br />
Download the kernel PKGBUILD and all the necessary files from toofishes' gitweb using the above instructions, then change the following lines in the {{Filename|kernelconfig}} file from this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 # CONFIG_VMSPLIT_3G is not set<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 CONFIG_VMSPLIT_2G_OPT=y<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
to this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 CONFIG_VMSPLIT_3G=y<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 # CONFIG_VMSPLIT_2G_OPT is not set<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
<br />
Compile and install the kernel and Wine should now work.<br />
<br />
===Power down with the power button===<br />
<br />
{{Note | If you are using ighea's acpi-eee or dkite's acpid_eee package then you should already be able to shutdown by pressing the power button and should not need to do this.}}<br />
<br />
The two alternatives here are described in [[Allow users to shutdown]].<br />
<br />
If you don't already or don't plan to use sudo, it may be simpler to use the setuid /sbin/halt method, otherwise using sudo is preferred.<br />
<br />
Below are all the steps required for the sudo method. If you want to use the setuid method, read the article linked above and perform the 'power' file step here, while omitting the 'sudo' in it.<br />
<br />
# pacman -S sudo<br />
<br />
As root, do the following:<br />
# visudo<br />
<br />
Add the following line to the file:<br />
USER HOST = NOPASSWD: /sbin/poweroff<br />
<br />
Where {{Codeline|USER}} is the user you want to be able to power down with and {{Codeline|HOST}} is your hostname (from {{Filename|/etc/rc.conf}}).<br />
<br />
Now, create a file called {{Filename|/etc/acpi/events/power}}, containing:<br />
# /etc/acpi/events/power<br />
# This is called when the user presses the power button<br />
<br />
event=button/power (PWR.||PBTN)<br />
action=sudo /sbin/poweroff<br />
<br />
Make sure that you execute:<br />
# /etc/rc.d/acpid start<br />
<br />
And/or add acpid to the daemons list in {{Filename|/etc/rc.conf}}:<br />
DAEMONS=(hal, acpid ...)<br />
<br />
===Use cpufreq for power saving===<br />
<br />
{{Note | toofishes dropped CPU scaling from his latest kernel builds, due to the fact, confirmed by other users, that there were no effective power savings with p4-clockmod's module, and it introduced "unacceptable latency", even with relatively low percentage up thresholds.}}<br />
<br />
Install cpufrequtitls:<br />
# pacman -S cpufrequtils<br />
<br />
For scaling down the processor you have to load the p4_clockmod module. Insert it into your {{Filename|/etc/rc.conf}} MODULES array for loading it at startup. <br />
MODULES=(... p4_clockmod ...)<br />
<br />
Add 'cpufreq' to the DAEMONS array in {{Filename|/etc/rc.conf}} to have it start on startup.<br />
DAEMONS=(... cpufreq ...)<br />
<br />
Add the following into {{Filename|/etc/conf.d/cpufreq}}:<br />
governor="ondemand"<br />
min_freq="113MHz"<br />
max_freq="900MHz"<br />
<br />
With enabled cpufreq it scales the processor between 113MHz up to max. frequency. That should save a lot on battery power. The stated 900MHz will be never reached by the eeePC, the p4_clockmod reports a wrong frequency here. But scaling works, you can feel it in the performance of eeePC that he slow down the processor.<br />
<br />
{{Note | The merits of p4-clockmod are debatable. Particularly on the EEEPC 701, battery time isn't extended due to its usage, and some users have even reported less battery duration. More hints to the reasons why can be read in [http://www.codemonkey.org.uk/2009/01/18/forthcoming-p4clockmod/ this] fine blog entry.}}<br />
<br />
===More responsive system with ondemand governor===<br />
The default up_threshold (where it will bump to a faster speed) for the CPU governor is 80, which means it will increase the CPU speed when utilization is above 80%. This can make X applications have a bit of lag. <br />
<br />
Try changing this value:<br />
$ sudo bash -c "echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold"<br />
<br />
With 40 it still leaves the majority of CPU cycles at the lowest available clock speed but increases responsiveness. You can add this line to one of your startup scripts (such as {{Filename|/etc/rc.local}}) if you wish to keep it, for example:<br />
<br />
#!/bin/bash<br />
#<br />
# /etc/rc.local: Local multi-user startup script.<br />
#<br />
<br />
echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold<br />
<br />
Also, following line is also reported to help makes system more responsive. You can use it by adding it to your {{Filename|/etc/rc.local}}:<br />
echo 2000000 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate<br />
<br />
===Speeding up udev for faster boot===<br />
*[[Speedup udev]]<br />
*http://dev.laptop.org/ticket/4349<br />
*[http://www.eeesale.com/Asus-Eee-PC-overclock-Benchmarks.htm Speed up the Eee PC]<br />
<br />
You can also disable the autoload by editing your {{Filename|[[rc.conf]]}}:<br />
...<br />
MOD_AUTOLOAD="no"<br />
...<br />
MODULES=(pciehp ath5k)<br />
<br />
===Update your BIOS without Xandros===<br />
{{Warning | You can break your system, do not update if you are not sure of what you are doing!}}<br />
<br />
First, you need to download the ''.rom'' file.<br />
*[http://update.eeepc.asus.com/bios/ Asus' official BIOS]<br />
*[http://forum.eeeuser.com/viewtopic.php?id=3485 EeeUser's topic]<br />
<br />
You also need an USB stick formatted in FAT32. To format the USBStick, use the cfdisk tool:<br />
# cfdisk /dev/sdc # could be something else than "c"<br />
<br />
Choose [delete], [type]: "fat32" (code 0B), [write] and then exit with [quit].<br />
<br />
NOTE to EEE PC 900 owners and possibly others: Using this method will require a flash drive formatted with a '''FAT16''' file-system. If the BIOS update process hangs up at "Reading file 900.ROM" for more than a few minutes then it should be safe to power down your EEE PC and reformat your flashdrive's file-system to the correct one. You can force FAT16 creation with the following command:<br />
# mkdosfs -F 16 /dev/device-path<br />
<br />
Now just copy the ''.rom'' on the USBStick :<br />
$ cp /somewhere/blabla/.../thecurrentnameofthefile.ROM /path/to/mounted/usb_stick/701.rom<br />
The name of the copy '''must''' be xxxx.rom where xxxx is the model of your eee PC. (i.e. 900 users it's 900.rom)<br />
<br />
Next step, reboot the eeepc with the USB stick pluged-in, and press Alt+F2. It will launch the built-in tool. Everything should be Ok, you can make a coffee during the update. When it asks you to push the power-button it has finished.<br />
<br />
At the next boot, you'll be invited to configure the BIOS. Check if the everything is enabled (my webcam and wireless were disabled after the update) and if it displays the good version in the main screen. It's done!<br />
<br />
=== More usable font sizes ===<br />
<br />
====The_glu's method====<br />
<br />
I found an easy solution that works on a 901:<br />
<br />
Edit {{Filename|/etc/X11/xinit/xserverrc}} and add "-dpi 134":<br />
exec /usr/bin/X -nolisten tcp -dpi 134<br />
<br />
Restart X and fonts should have the correct size. Notice it's won't works if you have Xft*dpi: in your {{Filename|.XDefaults}}.<br />
<br />
You don't need to edit your config file to set a smaller font size, I you did you should set font-size to 10 or you will have to small fonts...<br />
<br />
==== Old method ====<br />
<br />
On a default installation with Xfce 4 my font sizes were too big, here is what I did to sort them out.<br />
<br />
First, I set the DPI by adding the following to {{Filename|~/.Xdefaults}}:<br />
Xft*dpi: 134<br />
<br />
This then caused the fonts to be even bigger, so I set them all to be font-size 6 by adding the following into {{Filename|~/.gtkrc-2.0}} (note that this will be overwritten if you use any tools to change GTK settings):<br />
style "user-font"<br />
{<br />
font_name="Bitstream Vera Sans 6"<br />
}<br />
widget_class "*" style "user-font"<br />
<br />
To do the same with KDE fonts (without KDE installed) you have to add the following to {{Filename|~/.kde/share/config/kdeglobals}}:<br />
[General]<br />
StandardFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
activeFont=Bitstream Vera Sans,6,-1,5,75,0,0,0,0,0<br />
fixed=Bitstream Vera Sans Mono,6,-1,5,50,0,0,0,0,0<br />
font=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
menuFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
taskbarFont=Bitstream Vera Sans,6,-1,5,50,1,0,0,0,0<br />
toolBarFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
<br />
To make your fonts even prettier enable the [[Fonts#Fonts_with_LCD_filter_enabled|LCD Fonts]].<br />
<br />
==== Alternative Method ====<br />
<br />
For me it worked far better to open the gnome appearance control panel, go to the fonts tab, click defaults, and change the resolution to be 96 dpi. Changing .Xdefaults doesnt work when running gnome, as gnome-settings-daemon overrides it. You can then leave all font sizes at their default, and things should look good. Simply changing the font sizes and leaving the DPI at its technically correct value (~134) gave me weird layout problems in some apps, and oddly large fonts in others.<br />
<br />
==Known problems and their solutions==<br />
<br />
===Wireless doesn't work, even after installing custom Madwifi module===<br />
<br />
I found that Arch tried to use the ath5k module for wireless, and that meant it took control of the card rather than ath_pci (the module I had compiled and installed). I got a Madwifi status 3 message in dmesg when this happened.<br />
<br />
The solution is to blacklist the ath5k module in {{Filename|/etc/rc.conf}}:<br />
<br />
MODULES = ( ... !ath5k ... )<br />
<br />
===Laggy or Unresponsive ACPI Events===<br />
<br />
The latest kernel (2.6.26) introduces new problems with Eee's ACPI events handling. Basically, ACPI events become very laggy and after some time ACPI get disabled after a heavy usage (e.g. changing volume, brightness). This problem affects both stock kernel and toofishes' kernel.<br />
<br />
It appears that the solution is to apply this [http://bugzilla.kernel.org/attachment.cgi?id=16862 patch] ([http://bugzilla.kernel.org/show_bug.cgi?id=10724 original bug report]) to the kernel. <br />
<br />
{{Note | The latest toofishes' kernel, version 2.6.26-1, now includes the patch, but you can still use ighea's one for the extras features listed below.}}<br />
<br />
Until toofishes update his kernel to include the patch, you can use ighea's slightly modified toofishes' kernel that included the above patch, as well as other modifications:<br />
<br />
*Support for Wine <br />
*uvesafb is built as module <br />
*Use [http://bbs.archlinux.org/viewtopic.php?pid=393860#p393860 new eeepc-laptop driver] (which also handles fan-control) instead of older acus_acpi or asus-laptop -drivers.<br />
<br />
You can get the modified kernel, as well as the associative packages, from [http://koti.kapsi.fi/~ighea/eee/kernel-eee/ here].<br />
<br />
After you have downloaded the packages, Install them using this command:<br />
# pacman -U kernel-eee-2.6.26-1-i686.pkg.tar.gz madwifi-eee-svn-3752-1-i686.pkg.tar.gz <br />
<br />
You might also want to use IgnorePkg-line in {{Filename|/etc/pacman.conf}} to hold packages from being accidentally updated.<br />
IgnorePkg = kernel-eee madwifi-eee-svn<br />
<br />
Also don't forget to upgrade ighea's acpi-eee package to version 9.6.<br />
<br />
===Unclean unmount during shutdown when having home directory mounted on SD card===<br />
<br />
If you experienced unclean unmount during shutdown when having your home directory on SD card, then add the following 3 lines to "Write to wtmp file before unmounting" section of your {{Filename|/etc/rc.shutdown}} file:<br />
<pre><br />
...<br />
<br />
stat_busy "Unmounting Filesystems"<br />
/bin/umount -a -t noramfs,notmpfs,nosysfs,noproc<br />
<br />
# Add these 3 lines<br />
sync;sync;sync;<br />
eject /dev/sdb # Or whichever is your SD-card's device name. /dev/disk/by-uuid/ followed by the UUID identifier is preferable though.<br />
sleep 3<br />
# End of hack<br />
<br />
stat_done<br />
<br />
...<br />
</pre><br />
<br />
===Booting from card without initrd===<br />
<br />
Let's say you decided to install Arch Linux on a card and compiled your own kernel (or used the kernel26eee kernel) without initrd. Card reader on EeePC is connected as an USB device. Unfortunately, USB storage devices are detected with a delay, so we must tell the kernel to wait until this device becomes available. You do this with "rootwait" option passed to kernel at boot time.<br />
<br />
===Sleeping and waking system on a card===<br />
<br />
If you have Arch Linux on a card, waking up from sleeping state will most likely fail. The only solution is to enable the CONFIG_USB_PERSIST option in kernel. The kernel26eee package should have this option enabled.<br />
<br />
The command to do this is:<br />
echo 1 >/sys/bus/usb/devices/.../power/persist<br />
<br />
Replace the {{Codeline|"..."}} with the device like 1-3 or 1-5 where the first number is the bus and the second is the device <br />
<br />
Each device that is connected to your computer gets an entry in the sysfs "system file system" it is a virtual file system like proc<br />
<br />
More info:<br />
*http://www.mjmwired.net/kernel/Documentation/usb/persist.txt<br />
*http://forum.eeeuser.com/viewtopic.php?id=22712<br />
<br />
===Display doesn't wake up properly===<br />
<br />
If you encounter black display (but apparently working system) after suspend/resume, consider using the "uswsusp" package (available in the official repositories) and correcting suspend2ram script in /etc/acpi, where you use this line to make the machine go to sleep:<br />
<br />
/usr/sbin/s2ram --force --vbe_post --vbe_mode<br />
<br />
==Battery Tests==<br />
<br />
The following are reported battery runtimes:<br />
<br />
{| class="wikitable" style="text-align:left"<br />
|+Battery runtimes<br />
|-<br />
! Task !! Series !! Wireless !! Screen Brightness !! FSB Speed !! Fan Speed !! Runtime !! Comments<br />
|-<br />
! DVD Playback<br />
| 701 || On || Max || 85mhz || 100% || 134min || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! DVD Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! AVI Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading AVI from SSD<br />
|-<br />
! IM and Surf<br />
| 701 || On || ~30% || ??? || low || 173min || Normal web-browsing, Flash should reduce runtime a lot !<br />
|-<br />
! Programming and PDF reading<br />
| 1000HA || Off || ~40% || ??? || low || +6hs || Using Evince and SPE under XFCE with camera and USB disabled<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || +4hs || Stock kernel without laptop-mode<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || 5hs || Stock kernel with laptop-mode and other tweaks<br />
|}<br />
<br />
N.B. - Will add battery runtimes as I am able to test them, please contribute.<br />
<br />
-- Grecko.1<br />
<br />
Still tweaking, but disabling everything from BIOS got me about 6 hours and a half. With eee-kernel, I *could* get a little more.<br />
<br />
-- ekuber</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=ASUS_Eee_PC_701&diff=86177ASUS Eee PC 7012009-12-03T13:02:31Z<p>Zodmaner: /* Installing Arch Linux */</p>
<hr />
<div>{{stub}}<br />
[[Category:Getting and installing Arch (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|Русский|Инсталляция Arch Linux на Asus EEE PC}}<br />
{{i18n_links_end}}<br />
<br />
Most of this information is from the [http://bbs.archlinux.org/viewtopic.php?pid=297632 Arch Forum]. You can also find a lot of helpful information from the [http://forum.eeeuser.com/ EEEUser Forum]. <br />
<br />
==Before You Begin==<br />
<br />
===Avoiding Pitfalls===<br />
<br />
The install is pretty normal, except that you'll need to [http://forum.eeeuser.com/viewtopic.php?id=890 avoid the pitfalls] of our alternative Linux install:<br />
<br />
# Never choose to use a journaling file system on the SSD partitions<br />
# Never use a swap partition on the SSD<br />
# Edit your new installation fstab to mount the SSD partitions "noatime"<br />
# Never log messages or error log to the SSD<br />
<br />
The rules ensure that we won't reach the maximum limit of writes on our SSD faster than we should, although this is being contested (see [http://wiki.eeeuser.com/ssd_write_limit this link] and [http://www.storagesearch.com/ssdmyths-endurance.html this other link]).<br />
<br />
Some other minor modifications can be made to decrease number of non-mandatory writes by applications: deactivate {{Filename|~/.viminfo}} in vi, deactivate less history file ({{Filename|~/.lesshst}}), and so on.<br />
<br />
===Choosing Your Installation Media===<br />
<br />
The Eee PC does not have an optical drive installed on the machine. This means you will need to install Arch Linux through one of the alternative methods:<br />
<br />
# [[Beginners_Guide#USB_stick|USB stick]] '''(Recommended)'''<br />
# External USB CD-ROM drive<br />
# [[PXE|Network (PXE)]]<br />
<br />
==Installing Arch Linux==<br />
<br />
With the release of the 2009.08 installation media, installing Arch Linux on Asus Eee PC model 701 is pretty easy and straightforward since the stock kernel on Arch installation media support all of the 701 hardwares out of the box. <br />
<br />
Therefore, aside from the recommended partition scheme described below, there shouldn't be any other major differences between installing Arch Linux on the 701 and any other computer. You should be able to successfully install Arch on the 701 by following instructions on [[Beginners_Guide|Beginners' Guide]] without any problem.<br />
<br />
===Prepare Hard Drive===<br />
<br />
The most important different between the 701 and other machines is that the 701 use SSD drive instead of normal hard drive. This section advise on how to set up a partition scheme that is best suited to the 701. <br />
<br />
The default Eee PC drive is split up into four partitions (here is [http://forum.eeeuser.com/viewtopic.php?id=1805 some information] about the partitioning): <br />
<br />
* It is easiest to wipe the existing partitions and use one or two partitions for your install. One partition would be just '/', and two partitions would be '/boot' and '/'.<br />
* Choose "NONE" for swap in case your eee has a SSD (see #2 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]])<br />
* Select "ext2" as your filesystem in case your eee has a SSD (see #1 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]]). If your model has a standard HD choose "ext3".<br />
<br />
===Install X===<br />
<br />
Install X by follow instructions on the [[Beginners_Guide#Step_2:_Install_X|Beginners' Guide]], then install the Intel graphics driver:<br />
# pacman -Sy xf86-video-intel<br />
<br />
You may also wish to install the Synaptics drivers for the touchpad (not needed for Eee PC 900):<br />
# pacman -Sy xf86-input-synaptics<br />
<br />
With the latest version of X from extra repository, X should work on the 701 '''without any need for xorg.conf'''. However, if for some reason you wish to use an xorg.conf file, you can use an old [[Example_Xorg_configuration_file_for_Asus_Eee_PC_701|example Xorg configuration file for Asus Eee PC model 701]] as a template or automatically generate a new one by running the following command:<br />
<br />
# Xorg -configure<br />
<br />
Consult [[Xorg_input_hotplugging|Xorg Input Hotplugging]] for more information on how to config input devices using HAL.<br />
<br />
The synaptics stuff can be removed if you have a EEE PC 900. The {{Codeline|Option "AutoAddDevices"}} line is important if you need a non-default XkbLayout, because if you don't have it, xorg will find 3 keyboards (at least with the 900 model).<br />
The Modeline has obviously to be removed or modified if you dont have a model with this resolution.<br />
<br />
===Getting Hot Keys, Graphic Indicators and Shutdown with the Power Button Working===<br />
<br />
If you want to have working hot keys (wifi, brightness, volume etc), an OSD, and be able to assign actions to things like the powerbutton and closing the lid, then you should install '''ighea's acpi-eee''' package.<br />
<br />
==== ighea's acpi-eee ====<br />
<br />
Get the latest package from [http://kapsi.fi/ighea/eee/acpi-eee/ here].<br />
<br />
The package can be easily installed with:<br />
# pacman -U acpi-eee-10.0-1-i686.pkg.tar.gz<br />
<br />
See messages during installation for more details and don't forget to edit {{Filename|/etc/acpi/eee.conf}} to suit your tastes.<br />
<br />
*For those who use the wireless on/off acpi command; the {{Codeline|NETWORK_UP_COMMAND&#61;""}} setting in {{Filename|/etc/acpi/eee.conf}}, when applicable, should at least release the network. For example, using netcfg2, {{Codeline|NETWORK_UP_COMMAND&#61;"netcfg2 -a"}} will release the connections from before disabling wireless, allowing new ones to be made without netcfg thinking that it's already connected. It is also possible to reconnect to your previous network, however, the network tool you use needs to have a somewhat lengthy timeout as it takes 15-20 seconds for your wireless device to reappear. <br />
<br />
{{Note | Make sure '''asusosd''' is enabled on startup if you want to have the Graphic Indicators from Xandros. To run asusosd simply type {{Codeline|asusosd &}} at a command prompt.}}<br />
<br />
==Asus Eee PC model 701 repository from toofishes==<br />
<br />
{{ Note | You might want to do this after you have successfully installed Arch Linux on the 701.}}<br />
<br />
Toofishes created a repository for the 701. The repository contained customized kernel built specifically for the 701 and some additional packages. <br />
<br />
While the stock Arch kernel works very well with the 701, toofishes kernel have the following advantages:<br />
<br />
* Faster boot time &ndash; because most of the modules have been compile into the kernel, no time is wasted waiting for the modules to load<br />
* No need to generate initial ramdisk every time a kernel is upgrade <br />
* Small size (around 4MB)<br />
<br />
To use the repository, add:<br />
[eee]<br />
Server = http://code.toofishes.net/packages/eee<br />
to your {{Filename|/etc/pacman.conf}} and then issue:<br />
pacman -Syu<br />
<br />
===Package List===<br />
Currently, toofishes' repository contains the following packages:<br />
<br />
*'''kernel-eee''' &ndash; customized kernel for Asus Eee PC model 701<br />
*'''luvcview''' &ndash; webcam program for testing webcam driver<br />
<br />
===Kernel-eee Installation Instruction===<br />
Simply use pacman to install the package you need. Install the packages with this command:<br />
# pacman -Sy kernel-eee<br />
<br />
then, add the following to {{Filename|/boot/grub/menu.lst}}; note that no initrd is needed:<br />
# (2) Arch Linux<br />
title Arch Linux Eee kernel<br />
root (hd0,0)<br />
kernel /boot/vmlinuzeee root=/dev/sda1 ro<br />
<br />
Restart and select Arch Linux Eee kernel from the grub boot menu.<br />
<br />
==Troubleshooting Sound, Webcam and Microphone Problems==<br />
<br />
===Sound===<br />
<br />
For most people, sound should work right out of the box with no troubles. However, others might need to add the following line to {{Filename|/etc/modprobe.conf}}<br />
options snd-hda-intel model=3stack-dig<br />
or the following one for the Eee PC 900 model<br />
options snd-hda-intel model=auto<br />
<br />
If your internal microphone doesn't work, you probably have to turn the capture feature on. Simply fire up alsamixer, find your Capture control, and press spacebar to enable it.<br />
<br />
===Webcam===<br />
<br />
If for some reason webcam have been disabled on your 701, you can enable it by issuing the following command as root: <br />
<br />
echo 1 > /sys/devices/platform/eeepc/camera<br />
<br />
If you want the webcam application that the default Xandos installation uses, install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14469 ucview from the AUR].<br />
<br />
The webcam also works fine with the latest version of Skype.<br />
<br />
If you already have mplayer installed you can launch:<br />
$ mplayer -fps 15 tv://<br />
<br />
I have yet to get it working with vlc or any other software such as xawtv. If you know how, please update this.<br />
<br />
*'''NOTE:''' For anyone who has accidentally disabled Auto Exposure for their webcam in luvcview (making the image dark), and can't enable it again, do the following:<br />
<br />
Install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14468 libwebcam from the AUR].<br />
<br />
Issue the following command:<br />
$ uvcdynctrl --set "Exposure, Auto" 4<br />
<br />
{{Note | Be sure the "OS Installation" option is set to "finished" in the BIOS' "Advanced" tab or your camera may not work in some applications (like Skype).}}<br />
<br />
{{Note | Make sure you are a member of the video group edit /etc/group and add your username to video}}<br />
<br />
===Microphone===<br />
<br />
Solution for problems with the internal microphone.<br />
<br />
1. First of all set in alsamixer "Input Source" to "i-Mic"<br />
<br />
2. Increase "Capture" and "i-Mic Boost" to your needs<br />
<br />
3. Edit {{Filename|/etc/asound.state}} the following, change the 2 "false" to "true" like showing:<br />
....snap.....<br />
control.11 {<br />
comment.access 'read write'<br />
comment.type BOOLEAN<br />
comment.count 2<br />
iface MIXER<br />
name 'Capture Switch'<br />
value.0 true<br />
value.1 true<br />
}<br />
....snap....<br />
<br />
4. After editing run following as root<br />
# alsactl restore<br />
<br />
5. Now your internal microphone should be working.<br />
<br />
==Additional Tips & Tweaks==<br />
<br />
===Tweaking kernel-eee===<br />
<br />
Toofishes' kernel, also known as kernel-eee, can be recompiled to include custom features. You can download toofishes' kernel PKGBUILD and all the nesseary files from his gitweb by installing the git package and using the following command:<br />
<br />
$ git clone git://code.toofishes.net/dan/eee.git<br />
<br />
or if you are behind a proxy and can't use the git protocol:<br />
<br />
$ git clone http://code.toofishes.net/git/dan/eee.git<br />
<br />
There are two ways to tweak the kernel. The first is simply to edit the {{Filename|kernelconfig}} file with your favorite editor and the second is to insert a {{Codeline|make menuconfig}} line into the PKGBUILD before the kernel's compilation.<br />
<br />
===Using Wine with toofishes' kernel===<br />
<br />
Normally, Wine won't work with toofishes' kernel because it is compiled with VMSPLIT_2G_OPT option. In order to use Wine with toofishes' kernel, you have to recompile his kernel with VMSPLIT_3G option.<br />
<br />
Download the kernel PKGBUILD and all the necessary files from toofishes' gitweb using the above instructions, then change the following lines in the {{Filename|kernelconfig}} file from this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 # CONFIG_VMSPLIT_3G is not set<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 CONFIG_VMSPLIT_2G_OPT=y<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
to this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 CONFIG_VMSPLIT_3G=y<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 # CONFIG_VMSPLIT_2G_OPT is not set<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
<br />
Compile and install the kernel and Wine should now work.<br />
<br />
===Power down with the power button===<br />
<br />
{{Note | If you are using ighea's acpi-eee or dkite's acpid_eee package then you should already be able to shutdown by pressing the power button and should not need to do this.}}<br />
<br />
The two alternatives here are described in [[Allow users to shutdown]].<br />
<br />
If you don't already or don't plan to use sudo, it may be simpler to use the setuid /sbin/halt method, otherwise using sudo is preferred.<br />
<br />
Below are all the steps required for the sudo method. If you want to use the setuid method, read the article linked above and perform the 'power' file step here, while omitting the 'sudo' in it.<br />
<br />
# pacman -S sudo<br />
<br />
As root, do the following:<br />
# visudo<br />
<br />
Add the following line to the file:<br />
USER HOST = NOPASSWD: /sbin/poweroff<br />
<br />
Where {{Codeline|USER}} is the user you want to be able to power down with and {{Codeline|HOST}} is your hostname (from {{Filename|/etc/rc.conf}}).<br />
<br />
Now, create a file called {{Filename|/etc/acpi/events/power}}, containing:<br />
# /etc/acpi/events/power<br />
# This is called when the user presses the power button<br />
<br />
event=button/power (PWR.||PBTN)<br />
action=sudo /sbin/poweroff<br />
<br />
Make sure that you execute:<br />
# /etc/rc.d/acpid start<br />
<br />
And/or add acpid to the daemons list in {{Filename|/etc/rc.conf}}:<br />
DAEMONS=(hal, acpid ...)<br />
<br />
===Use cpufreq for power saving===<br />
<br />
{{Note | toofishes dropped CPU scaling from his latest kernel builds, due to the fact, confirmed by other users, that there were no effective power savings with p4-clockmod's module, and it introduced "unacceptable latency", even with relatively low percentage up thresholds.}}<br />
<br />
Install cpufrequtitls:<br />
# pacman -S cpufrequtils<br />
<br />
For scaling down the processor you have to load the p4_clockmod module. Insert it into your {{Filename|/etc/rc.conf}} MODULES array for loading it at startup. <br />
MODULES=(... p4_clockmod ...)<br />
<br />
Add 'cpufreq' to the DAEMONS array in {{Filename|/etc/rc.conf}} to have it start on startup.<br />
DAEMONS=(... cpufreq ...)<br />
<br />
Add the following into {{Filename|/etc/conf.d/cpufreq}}:<br />
governor="ondemand"<br />
min_freq="113MHz"<br />
max_freq="900MHz"<br />
<br />
With enabled cpufreq it scales the processor between 113MHz up to max. frequency. That should save a lot on battery power. The stated 900MHz will be never reached by the eeePC, the p4_clockmod reports a wrong frequency here. But scaling works, you can feel it in the performance of eeePC that he slow down the processor.<br />
<br />
{{Note | The merits of p4-clockmod are debatable. Particularly on the EEEPC 701, battery time isn't extended due to its usage, and some users have even reported less battery duration. More hints to the reasons why can be read in [http://www.codemonkey.org.uk/2009/01/18/forthcoming-p4clockmod/ this] fine blog entry.}}<br />
<br />
===More responsive system with ondemand governor===<br />
The default up_threshold (where it will bump to a faster speed) for the CPU governor is 80, which means it will increase the CPU speed when utilization is above 80%. This can make X applications have a bit of lag. <br />
<br />
Try changing this value:<br />
$ sudo bash -c "echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold"<br />
<br />
With 40 it still leaves the majority of CPU cycles at the lowest available clock speed but increases responsiveness. You can add this line to one of your startup scripts (such as {{Filename|/etc/rc.local}}) if you wish to keep it, for example:<br />
<br />
#!/bin/bash<br />
#<br />
# /etc/rc.local: Local multi-user startup script.<br />
#<br />
<br />
echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold<br />
<br />
Also, following line is also reported to help makes system more responsive. You can use it by adding it to your {{Filename|/etc/rc.local}}:<br />
echo 2000000 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate<br />
<br />
===Speeding up udev for faster boot===<br />
*[[Speedup udev]]<br />
*http://dev.laptop.org/ticket/4349<br />
*[http://www.eeesale.com/Asus-Eee-PC-overclock-Benchmarks.htm Speed up the Eee PC]<br />
<br />
You can also disable the autoload by editing your {{Filename|[[rc.conf]]}}:<br />
...<br />
MOD_AUTOLOAD="no"<br />
...<br />
MODULES=(pciehp ath5k)<br />
<br />
===Update your BIOS without Xandros===<br />
{{Warning | You can break your system, do not update if you are not sure of what you are doing!}}<br />
<br />
First, you need to download the ''.rom'' file.<br />
*[http://update.eeepc.asus.com/bios/ Asus' official BIOS]<br />
*[http://forum.eeeuser.com/viewtopic.php?id=3485 EeeUser's topic]<br />
<br />
You also need an USB stick formatted in FAT32. To format the USBStick, use the cfdisk tool:<br />
# cfdisk /dev/sdc # could be something else than "c"<br />
<br />
Choose [delete], [type]: "fat32" (code 0B), [write] and then exit with [quit].<br />
<br />
NOTE to EEE PC 900 owners and possibly others: Using this method will require a flash drive formatted with a '''FAT16''' file-system. If the BIOS update process hangs up at "Reading file 900.ROM" for more than a few minutes then it should be safe to power down your EEE PC and reformat your flashdrive's file-system to the correct one. You can force FAT16 creation with the following command:<br />
# mkdosfs -F 16 /dev/device-path<br />
<br />
Now just copy the ''.rom'' on the USBStick :<br />
$ cp /somewhere/blabla/.../thecurrentnameofthefile.ROM /path/to/mounted/usb_stick/701.rom<br />
The name of the copy '''must''' be xxxx.rom where xxxx is the model of your eee PC. (i.e. 900 users it's 900.rom)<br />
<br />
Next step, reboot the eeepc with the USB stick pluged-in, and press Alt+F2. It will launch the built-in tool. Everything should be Ok, you can make a coffee during the update. When it asks you to push the power-button it has finished.<br />
<br />
At the next boot, you'll be invited to configure the BIOS. Check if the everything is enabled (my webcam and wireless were disabled after the update) and if it displays the good version in the main screen. It's done!<br />
<br />
=== More usable font sizes ===<br />
<br />
====The_glu's method====<br />
<br />
I found an easy solution that works on a 901:<br />
<br />
Edit {{Filename|/etc/X11/xinit/xserverrc}} and add "-dpi 134":<br />
exec /usr/bin/X -nolisten tcp -dpi 134<br />
<br />
Restart X and fonts should have the correct size. Notice it's won't works if you have Xft*dpi: in your {{Filename|.XDefaults}}.<br />
<br />
You don't need to edit your config file to set a smaller font size, I you did you should set font-size to 10 or you will have to small fonts...<br />
<br />
==== Old method ====<br />
<br />
On a default installation with Xfce 4 my font sizes were too big, here is what I did to sort them out.<br />
<br />
First, I set the DPI by adding the following to {{Filename|~/.Xdefaults}}:<br />
Xft*dpi: 134<br />
<br />
This then caused the fonts to be even bigger, so I set them all to be font-size 6 by adding the following into {{Filename|~/.gtkrc-2.0}} (note that this will be overwritten if you use any tools to change GTK settings):<br />
style "user-font"<br />
{<br />
font_name="Bitstream Vera Sans 6"<br />
}<br />
widget_class "*" style "user-font"<br />
<br />
To do the same with KDE fonts (without KDE installed) you have to add the following to {{Filename|~/.kde/share/config/kdeglobals}}:<br />
[General]<br />
StandardFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
activeFont=Bitstream Vera Sans,6,-1,5,75,0,0,0,0,0<br />
fixed=Bitstream Vera Sans Mono,6,-1,5,50,0,0,0,0,0<br />
font=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
menuFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
taskbarFont=Bitstream Vera Sans,6,-1,5,50,1,0,0,0,0<br />
toolBarFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
<br />
To make your fonts even prettier enable the [[Fonts#Fonts_with_LCD_filter_enabled|LCD Fonts]].<br />
<br />
==== Alternative Method ====<br />
<br />
For me it worked far better to open the gnome appearance control panel, go to the fonts tab, click defaults, and change the resolution to be 96 dpi. Changing .Xdefaults doesnt work when running gnome, as gnome-settings-daemon overrides it. You can then leave all font sizes at their default, and things should look good. Simply changing the font sizes and leaving the DPI at its technically correct value (~134) gave me weird layout problems in some apps, and oddly large fonts in others.<br />
<br />
==Known problems and their solutions==<br />
<br />
===Wireless doesn't work, even after installing custom Madwifi module===<br />
<br />
I found that Arch tried to use the ath5k module for wireless, and that meant it took control of the card rather than ath_pci (the module I had compiled and installed). I got a Madwifi status 3 message in dmesg when this happened.<br />
<br />
The solution is to blacklist the ath5k module in {{Filename|/etc/rc.conf}}:<br />
<br />
MODULES = ( ... !ath5k ... )<br />
<br />
===Laggy or Unresponsive ACPI Events===<br />
<br />
The latest kernel (2.6.26) introduces new problems with Eee's ACPI events handling. Basically, ACPI events become very laggy and after some time ACPI get disabled after a heavy usage (e.g. changing volume, brightness). This problem affects both stock kernel and toofishes' kernel.<br />
<br />
It appears that the solution is to apply this [http://bugzilla.kernel.org/attachment.cgi?id=16862 patch] ([http://bugzilla.kernel.org/show_bug.cgi?id=10724 original bug report]) to the kernel. <br />
<br />
{{Note | The latest toofishes' kernel, version 2.6.26-1, now includes the patch, but you can still use ighea's one for the extras features listed below.}}<br />
<br />
Until toofishes update his kernel to include the patch, you can use ighea's slightly modified toofishes' kernel that included the above patch, as well as other modifications:<br />
<br />
*Support for Wine <br />
*uvesafb is built as module <br />
*Use [http://bbs.archlinux.org/viewtopic.php?pid=393860#p393860 new eeepc-laptop driver] (which also handles fan-control) instead of older acus_acpi or asus-laptop -drivers.<br />
<br />
You can get the modified kernel, as well as the associative packages, from [http://koti.kapsi.fi/~ighea/eee/kernel-eee/ here].<br />
<br />
After you have downloaded the packages, Install them using this command:<br />
# pacman -U kernel-eee-2.6.26-1-i686.pkg.tar.gz madwifi-eee-svn-3752-1-i686.pkg.tar.gz <br />
<br />
You might also want to use IgnorePkg-line in {{Filename|/etc/pacman.conf}} to hold packages from being accidentally updated.<br />
IgnorePkg = kernel-eee madwifi-eee-svn<br />
<br />
Also don't forget to upgrade ighea's acpi-eee package to version 9.6.<br />
<br />
===Unclean unmount during shutdown when having home directory mounted on SD card===<br />
<br />
If you experienced unclean unmount during shutdown when having your home directory on SD card, then add the following 3 lines to "Write to wtmp file before unmounting" section of your {{Filename|/etc/rc.shutdown}} file:<br />
<pre><br />
...<br />
<br />
stat_busy "Unmounting Filesystems"<br />
/bin/umount -a -t noramfs,notmpfs,nosysfs,noproc<br />
<br />
# Add these 3 lines<br />
sync;sync;sync;<br />
eject /dev/sdb # Or whichever is your SD-card's device name. /dev/disk/by-uuid/ followed by the UUID identifier is preferable though.<br />
sleep 3<br />
# End of hack<br />
<br />
stat_done<br />
<br />
...<br />
</pre><br />
<br />
===Booting from card without initrd===<br />
<br />
Let's say you decided to install Arch Linux on a card and compiled your own kernel (or used the kernel26eee kernel) without initrd. Card reader on EeePC is connected as an USB device. Unfortunately, USB storage devices are detected with a delay, so we must tell the kernel to wait until this device becomes available. You do this with "rootwait" option passed to kernel at boot time.<br />
<br />
===Sleeping and waking system on a card===<br />
<br />
If you have Arch Linux on a card, waking up from sleeping state will most likely fail. The only solution is to enable the CONFIG_USB_PERSIST option in kernel. The kernel26eee package should have this option enabled.<br />
<br />
The command to do this is:<br />
echo 1 >/sys/bus/usb/devices/.../power/persist<br />
<br />
Replace the {{Codeline|"..."}} with the device like 1-3 or 1-5 where the first number is the bus and the second is the device <br />
<br />
Each device that is connected to your computer gets an entry in the sysfs "system file system" it is a virtual file system like proc<br />
<br />
More info:<br />
*http://www.mjmwired.net/kernel/Documentation/usb/persist.txt<br />
*http://forum.eeeuser.com/viewtopic.php?id=22712<br />
<br />
===Display doesn't wake up properly===<br />
<br />
If you encounter black display (but apparently working system) after suspend/resume, consider using the "uswsusp" package (available in the official repositories) and correcting suspend2ram script in /etc/acpi, where you use this line to make the machine go to sleep:<br />
<br />
/usr/sbin/s2ram --force --vbe_post --vbe_mode<br />
<br />
==Battery Tests==<br />
<br />
The following are reported battery runtimes:<br />
<br />
{| class="wikitable" style="text-align:left"<br />
|+Battery runtimes<br />
|-<br />
! Task !! Series !! Wireless !! Screen Brightness !! FSB Speed !! Fan Speed !! Runtime !! Comments<br />
|-<br />
! DVD Playback<br />
| 701 || On || Max || 85mhz || 100% || 134min || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! DVD Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! AVI Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading AVI from SSD<br />
|-<br />
! IM and Surf<br />
| 701 || On || ~30% || ??? || low || 173min || Normal web-browsing, Flash should reduce runtime a lot !<br />
|-<br />
! Programming and PDF reading<br />
| 1000HA || Off || ~40% || ??? || low || +6hs || Using Evince and SPE under XFCE with camera and USB disabled<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || +4hs || Stock kernel without laptop-mode<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || 5hs || Stock kernel with laptop-mode and other tweaks<br />
|}<br />
<br />
N.B. - Will add battery runtimes as I am able to test them, please contribute.<br />
<br />
-- Grecko.1<br />
<br />
Still tweaking, but disabling everything from BIOS got me about 6 hours and a half. With eee-kernel, I *could* get a little more.<br />
<br />
-- ekuber</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=ASUS_Eee_PC_701&diff=86175ASUS Eee PC 7012009-12-03T13:00:45Z<p>Zodmaner: /* Known problems and their solutions */ Removed obsolete shutdown problem (no longer happen in newer kernel).</p>
<hr />
<div>{{stub}}<br />
[[Category:Getting and installing Arch (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|Русский|Инсталляция Arch Linux на Asus EEE PC}}<br />
{{i18n_links_end}}<br />
<br />
Most of this information is from the [http://bbs.archlinux.org/viewtopic.php?pid=297632 Arch Forum]. You can also find a lot of helpful information from the [http://forum.eeeuser.com/ EEEUser Forum]. <br />
<br />
==Before You Begin==<br />
<br />
===Avoiding Pitfalls===<br />
<br />
The install is pretty normal, except that you'll need to [http://forum.eeeuser.com/viewtopic.php?id=890 avoid the pitfalls] of our alternative Linux install:<br />
<br />
# Never choose to use a journaling file system on the SSD partitions<br />
# Never use a swap partition on the SSD<br />
# Edit your new installation fstab to mount the SSD partitions "noatime"<br />
# Never log messages or error log to the SSD<br />
<br />
The rules ensure that we won't reach the maximum limit of writes on our SSD faster than we should, although this is being contested (see [http://wiki.eeeuser.com/ssd_write_limit this link] and [http://www.storagesearch.com/ssdmyths-endurance.html this other link]).<br />
<br />
Some other minor modifications can be made to decrease number of non-mandatory writes by applications: deactivate {{Filename|~/.viminfo}} in vi, deactivate less history file ({{Filename|~/.lesshst}}), and so on.<br />
<br />
===Choosing Your Installation Media===<br />
<br />
The Eee PC does not have an optical drive installed on the machine. This means you will need to install Arch Linux through one of the alternative methods:<br />
<br />
# [[Beginners_Guide#USB_stick|USB stick]] '''(Recommended)'''<br />
# External USB CD-ROM drive<br />
# [[PXE|Network (PXE)]]<br />
<br />
==Installing Arch Linux==<br />
<br />
With the release of the 2009.08 installation media, installing Arch Linux on Asus Eee PC model 701 is pretty easy and straightforward since the stock kernel on Arch installation media support all of the 701 hardwares out of the box. <br />
<br />
Therefore, aside from the recommended partition scheme described below, there shouldn't be any other differences between installing Arch Linux on the 701 and any other computer. You should be able to successfully install Arch on the 701 by following instructions on [[Beginners_Guide|Beginners' Guide]] without any problem.<br />
<br />
===Prepare Hard Drive===<br />
<br />
The most important different between the 701 and other machines is that the 701 use SSD drive instead of normal hard drive. This section advise on how to set up a partition scheme that is best suited to the 701. <br />
<br />
The default Eee PC drive is split up into four partitions (here is [http://forum.eeeuser.com/viewtopic.php?id=1805 some information] about the partitioning): <br />
<br />
* It is easiest to wipe the existing partitions and use one or two partitions for your install. One partition would be just '/', and two partitions would be '/boot' and '/'.<br />
* Choose "NONE" for swap in case your eee has a SSD (see #2 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]])<br />
* Select "ext2" as your filesystem in case your eee has a SSD (see #1 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]]). If your model has a standard HD choose "ext3".<br />
<br />
===Install X===<br />
<br />
Install X by follow instructions on the [[Beginners_Guide#Step_2:_Install_X|Beginners' Guide]], then install the Intel graphics driver:<br />
# pacman -Sy xf86-video-intel<br />
<br />
You may also wish to install the Synaptics drivers for the touchpad (not needed for Eee PC 900):<br />
# pacman -Sy xf86-input-synaptics<br />
<br />
With the latest version of X from extra repository, X should work on the 701 '''without any need for xorg.conf'''. However, if for some reason you wish to use an xorg.conf file, you can use an old [[Example_Xorg_configuration_file_for_Asus_Eee_PC_701|example Xorg configuration file for Asus Eee PC model 701]] as a template or automatically generate a new one by running the following command:<br />
<br />
# Xorg -configure<br />
<br />
Consult [[Xorg_input_hotplugging|Xorg Input Hotplugging]] for more information on how to config input devices using HAL.<br />
<br />
The synaptics stuff can be removed if you have a EEE PC 900. The {{Codeline|Option "AutoAddDevices"}} line is important if you need a non-default XkbLayout, because if you don't have it, xorg will find 3 keyboards (at least with the 900 model).<br />
The Modeline has obviously to be removed or modified if you dont have a model with this resolution.<br />
<br />
===Getting Hot Keys, Graphic Indicators and Shutdown with the Power Button Working===<br />
<br />
If you want to have working hot keys (wifi, brightness, volume etc), an OSD, and be able to assign actions to things like the powerbutton and closing the lid, then you should install '''ighea's acpi-eee''' package.<br />
<br />
==== ighea's acpi-eee ====<br />
<br />
Get the latest package from [http://kapsi.fi/ighea/eee/acpi-eee/ here].<br />
<br />
The package can be easily installed with:<br />
# pacman -U acpi-eee-10.0-1-i686.pkg.tar.gz<br />
<br />
See messages during installation for more details and don't forget to edit {{Filename|/etc/acpi/eee.conf}} to suit your tastes.<br />
<br />
*For those who use the wireless on/off acpi command; the {{Codeline|NETWORK_UP_COMMAND&#61;""}} setting in {{Filename|/etc/acpi/eee.conf}}, when applicable, should at least release the network. For example, using netcfg2, {{Codeline|NETWORK_UP_COMMAND&#61;"netcfg2 -a"}} will release the connections from before disabling wireless, allowing new ones to be made without netcfg thinking that it's already connected. It is also possible to reconnect to your previous network, however, the network tool you use needs to have a somewhat lengthy timeout as it takes 15-20 seconds for your wireless device to reappear. <br />
<br />
{{Note | Make sure '''asusosd''' is enabled on startup if you want to have the Graphic Indicators from Xandros. To run asusosd simply type {{Codeline|asusosd &}} at a command prompt.}}<br />
<br />
==Asus Eee PC model 701 repository from toofishes==<br />
<br />
{{ Note | You might want to do this after you have successfully installed Arch Linux on the 701.}}<br />
<br />
Toofishes created a repository for the 701. The repository contained customized kernel built specifically for the 701 and some additional packages. <br />
<br />
While the stock Arch kernel works very well with the 701, toofishes kernel have the following advantages:<br />
<br />
* Faster boot time &ndash; because most of the modules have been compile into the kernel, no time is wasted waiting for the modules to load<br />
* No need to generate initial ramdisk every time a kernel is upgrade <br />
* Small size (around 4MB)<br />
<br />
To use the repository, add:<br />
[eee]<br />
Server = http://code.toofishes.net/packages/eee<br />
to your {{Filename|/etc/pacman.conf}} and then issue:<br />
pacman -Syu<br />
<br />
===Package List===<br />
Currently, toofishes' repository contains the following packages:<br />
<br />
*'''kernel-eee''' &ndash; customized kernel for Asus Eee PC model 701<br />
*'''luvcview''' &ndash; webcam program for testing webcam driver<br />
<br />
===Kernel-eee Installation Instruction===<br />
Simply use pacman to install the package you need. Install the packages with this command:<br />
# pacman -Sy kernel-eee<br />
<br />
then, add the following to {{Filename|/boot/grub/menu.lst}}; note that no initrd is needed:<br />
# (2) Arch Linux<br />
title Arch Linux Eee kernel<br />
root (hd0,0)<br />
kernel /boot/vmlinuzeee root=/dev/sda1 ro<br />
<br />
Restart and select Arch Linux Eee kernel from the grub boot menu.<br />
<br />
==Troubleshooting Sound, Webcam and Microphone Problems==<br />
<br />
===Sound===<br />
<br />
For most people, sound should work right out of the box with no troubles. However, others might need to add the following line to {{Filename|/etc/modprobe.conf}}<br />
options snd-hda-intel model=3stack-dig<br />
or the following one for the Eee PC 900 model<br />
options snd-hda-intel model=auto<br />
<br />
If your internal microphone doesn't work, you probably have to turn the capture feature on. Simply fire up alsamixer, find your Capture control, and press spacebar to enable it.<br />
<br />
===Webcam===<br />
<br />
If for some reason webcam have been disabled on your 701, you can enable it by issuing the following command as root: <br />
<br />
echo 1 > /sys/devices/platform/eeepc/camera<br />
<br />
If you want the webcam application that the default Xandos installation uses, install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14469 ucview from the AUR].<br />
<br />
The webcam also works fine with the latest version of Skype.<br />
<br />
If you already have mplayer installed you can launch:<br />
$ mplayer -fps 15 tv://<br />
<br />
I have yet to get it working with vlc or any other software such as xawtv. If you know how, please update this.<br />
<br />
*'''NOTE:''' For anyone who has accidentally disabled Auto Exposure for their webcam in luvcview (making the image dark), and can't enable it again, do the following:<br />
<br />
Install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14468 libwebcam from the AUR].<br />
<br />
Issue the following command:<br />
$ uvcdynctrl --set "Exposure, Auto" 4<br />
<br />
{{Note | Be sure the "OS Installation" option is set to "finished" in the BIOS' "Advanced" tab or your camera may not work in some applications (like Skype).}}<br />
<br />
{{Note | Make sure you are a member of the video group edit /etc/group and add your username to video}}<br />
<br />
===Microphone===<br />
<br />
Solution for problems with the internal microphone.<br />
<br />
1. First of all set in alsamixer "Input Source" to "i-Mic"<br />
<br />
2. Increase "Capture" and "i-Mic Boost" to your needs<br />
<br />
3. Edit {{Filename|/etc/asound.state}} the following, change the 2 "false" to "true" like showing:<br />
....snap.....<br />
control.11 {<br />
comment.access 'read write'<br />
comment.type BOOLEAN<br />
comment.count 2<br />
iface MIXER<br />
name 'Capture Switch'<br />
value.0 true<br />
value.1 true<br />
}<br />
....snap....<br />
<br />
4. After editing run following as root<br />
# alsactl restore<br />
<br />
5. Now your internal microphone should be working.<br />
<br />
==Additional Tips & Tweaks==<br />
<br />
===Tweaking kernel-eee===<br />
<br />
Toofishes' kernel, also known as kernel-eee, can be recompiled to include custom features. You can download toofishes' kernel PKGBUILD and all the nesseary files from his gitweb by installing the git package and using the following command:<br />
<br />
$ git clone git://code.toofishes.net/dan/eee.git<br />
<br />
or if you are behind a proxy and can't use the git protocol:<br />
<br />
$ git clone http://code.toofishes.net/git/dan/eee.git<br />
<br />
There are two ways to tweak the kernel. The first is simply to edit the {{Filename|kernelconfig}} file with your favorite editor and the second is to insert a {{Codeline|make menuconfig}} line into the PKGBUILD before the kernel's compilation.<br />
<br />
===Using Wine with toofishes' kernel===<br />
<br />
Normally, Wine won't work with toofishes' kernel because it is compiled with VMSPLIT_2G_OPT option. In order to use Wine with toofishes' kernel, you have to recompile his kernel with VMSPLIT_3G option.<br />
<br />
Download the kernel PKGBUILD and all the necessary files from toofishes' gitweb using the above instructions, then change the following lines in the {{Filename|kernelconfig}} file from this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 # CONFIG_VMSPLIT_3G is not set<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 CONFIG_VMSPLIT_2G_OPT=y<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
to this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 CONFIG_VMSPLIT_3G=y<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 # CONFIG_VMSPLIT_2G_OPT is not set<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
<br />
Compile and install the kernel and Wine should now work.<br />
<br />
===Power down with the power button===<br />
<br />
{{Note | If you are using ighea's acpi-eee or dkite's acpid_eee package then you should already be able to shutdown by pressing the power button and should not need to do this.}}<br />
<br />
The two alternatives here are described in [[Allow users to shutdown]].<br />
<br />
If you don't already or don't plan to use sudo, it may be simpler to use the setuid /sbin/halt method, otherwise using sudo is preferred.<br />
<br />
Below are all the steps required for the sudo method. If you want to use the setuid method, read the article linked above and perform the 'power' file step here, while omitting the 'sudo' in it.<br />
<br />
# pacman -S sudo<br />
<br />
As root, do the following:<br />
# visudo<br />
<br />
Add the following line to the file:<br />
USER HOST = NOPASSWD: /sbin/poweroff<br />
<br />
Where {{Codeline|USER}} is the user you want to be able to power down with and {{Codeline|HOST}} is your hostname (from {{Filename|/etc/rc.conf}}).<br />
<br />
Now, create a file called {{Filename|/etc/acpi/events/power}}, containing:<br />
# /etc/acpi/events/power<br />
# This is called when the user presses the power button<br />
<br />
event=button/power (PWR.||PBTN)<br />
action=sudo /sbin/poweroff<br />
<br />
Make sure that you execute:<br />
# /etc/rc.d/acpid start<br />
<br />
And/or add acpid to the daemons list in {{Filename|/etc/rc.conf}}:<br />
DAEMONS=(hal, acpid ...)<br />
<br />
===Use cpufreq for power saving===<br />
<br />
{{Note | toofishes dropped CPU scaling from his latest kernel builds, due to the fact, confirmed by other users, that there were no effective power savings with p4-clockmod's module, and it introduced "unacceptable latency", even with relatively low percentage up thresholds.}}<br />
<br />
Install cpufrequtitls:<br />
# pacman -S cpufrequtils<br />
<br />
For scaling down the processor you have to load the p4_clockmod module. Insert it into your {{Filename|/etc/rc.conf}} MODULES array for loading it at startup. <br />
MODULES=(... p4_clockmod ...)<br />
<br />
Add 'cpufreq' to the DAEMONS array in {{Filename|/etc/rc.conf}} to have it start on startup.<br />
DAEMONS=(... cpufreq ...)<br />
<br />
Add the following into {{Filename|/etc/conf.d/cpufreq}}:<br />
governor="ondemand"<br />
min_freq="113MHz"<br />
max_freq="900MHz"<br />
<br />
With enabled cpufreq it scales the processor between 113MHz up to max. frequency. That should save a lot on battery power. The stated 900MHz will be never reached by the eeePC, the p4_clockmod reports a wrong frequency here. But scaling works, you can feel it in the performance of eeePC that he slow down the processor.<br />
<br />
{{Note | The merits of p4-clockmod are debatable. Particularly on the EEEPC 701, battery time isn't extended due to its usage, and some users have even reported less battery duration. More hints to the reasons why can be read in [http://www.codemonkey.org.uk/2009/01/18/forthcoming-p4clockmod/ this] fine blog entry.}}<br />
<br />
===More responsive system with ondemand governor===<br />
The default up_threshold (where it will bump to a faster speed) for the CPU governor is 80, which means it will increase the CPU speed when utilization is above 80%. This can make X applications have a bit of lag. <br />
<br />
Try changing this value:<br />
$ sudo bash -c "echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold"<br />
<br />
With 40 it still leaves the majority of CPU cycles at the lowest available clock speed but increases responsiveness. You can add this line to one of your startup scripts (such as {{Filename|/etc/rc.local}}) if you wish to keep it, for example:<br />
<br />
#!/bin/bash<br />
#<br />
# /etc/rc.local: Local multi-user startup script.<br />
#<br />
<br />
echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold<br />
<br />
Also, following line is also reported to help makes system more responsive. You can use it by adding it to your {{Filename|/etc/rc.local}}:<br />
echo 2000000 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate<br />
<br />
===Speeding up udev for faster boot===<br />
*[[Speedup udev]]<br />
*http://dev.laptop.org/ticket/4349<br />
*[http://www.eeesale.com/Asus-Eee-PC-overclock-Benchmarks.htm Speed up the Eee PC]<br />
<br />
You can also disable the autoload by editing your {{Filename|[[rc.conf]]}}:<br />
...<br />
MOD_AUTOLOAD="no"<br />
...<br />
MODULES=(pciehp ath5k)<br />
<br />
===Update your BIOS without Xandros===<br />
{{Warning | You can break your system, do not update if you are not sure of what you are doing!}}<br />
<br />
First, you need to download the ''.rom'' file.<br />
*[http://update.eeepc.asus.com/bios/ Asus' official BIOS]<br />
*[http://forum.eeeuser.com/viewtopic.php?id=3485 EeeUser's topic]<br />
<br />
You also need an USB stick formatted in FAT32. To format the USBStick, use the cfdisk tool:<br />
# cfdisk /dev/sdc # could be something else than "c"<br />
<br />
Choose [delete], [type]: "fat32" (code 0B), [write] and then exit with [quit].<br />
<br />
NOTE to EEE PC 900 owners and possibly others: Using this method will require a flash drive formatted with a '''FAT16''' file-system. If the BIOS update process hangs up at "Reading file 900.ROM" for more than a few minutes then it should be safe to power down your EEE PC and reformat your flashdrive's file-system to the correct one. You can force FAT16 creation with the following command:<br />
# mkdosfs -F 16 /dev/device-path<br />
<br />
Now just copy the ''.rom'' on the USBStick :<br />
$ cp /somewhere/blabla/.../thecurrentnameofthefile.ROM /path/to/mounted/usb_stick/701.rom<br />
The name of the copy '''must''' be xxxx.rom where xxxx is the model of your eee PC. (i.e. 900 users it's 900.rom)<br />
<br />
Next step, reboot the eeepc with the USB stick pluged-in, and press Alt+F2. It will launch the built-in tool. Everything should be Ok, you can make a coffee during the update. When it asks you to push the power-button it has finished.<br />
<br />
At the next boot, you'll be invited to configure the BIOS. Check if the everything is enabled (my webcam and wireless were disabled after the update) and if it displays the good version in the main screen. It's done!<br />
<br />
=== More usable font sizes ===<br />
<br />
====The_glu's method====<br />
<br />
I found an easy solution that works on a 901:<br />
<br />
Edit {{Filename|/etc/X11/xinit/xserverrc}} and add "-dpi 134":<br />
exec /usr/bin/X -nolisten tcp -dpi 134<br />
<br />
Restart X and fonts should have the correct size. Notice it's won't works if you have Xft*dpi: in your {{Filename|.XDefaults}}.<br />
<br />
You don't need to edit your config file to set a smaller font size, I you did you should set font-size to 10 or you will have to small fonts...<br />
<br />
==== Old method ====<br />
<br />
On a default installation with Xfce 4 my font sizes were too big, here is what I did to sort them out.<br />
<br />
First, I set the DPI by adding the following to {{Filename|~/.Xdefaults}}:<br />
Xft*dpi: 134<br />
<br />
This then caused the fonts to be even bigger, so I set them all to be font-size 6 by adding the following into {{Filename|~/.gtkrc-2.0}} (note that this will be overwritten if you use any tools to change GTK settings):<br />
style "user-font"<br />
{<br />
font_name="Bitstream Vera Sans 6"<br />
}<br />
widget_class "*" style "user-font"<br />
<br />
To do the same with KDE fonts (without KDE installed) you have to add the following to {{Filename|~/.kde/share/config/kdeglobals}}:<br />
[General]<br />
StandardFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
activeFont=Bitstream Vera Sans,6,-1,5,75,0,0,0,0,0<br />
fixed=Bitstream Vera Sans Mono,6,-1,5,50,0,0,0,0,0<br />
font=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
menuFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
taskbarFont=Bitstream Vera Sans,6,-1,5,50,1,0,0,0,0<br />
toolBarFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
<br />
To make your fonts even prettier enable the [[Fonts#Fonts_with_LCD_filter_enabled|LCD Fonts]].<br />
<br />
==== Alternative Method ====<br />
<br />
For me it worked far better to open the gnome appearance control panel, go to the fonts tab, click defaults, and change the resolution to be 96 dpi. Changing .Xdefaults doesnt work when running gnome, as gnome-settings-daemon overrides it. You can then leave all font sizes at their default, and things should look good. Simply changing the font sizes and leaving the DPI at its technically correct value (~134) gave me weird layout problems in some apps, and oddly large fonts in others.<br />
<br />
==Known problems and their solutions==<br />
<br />
===Wireless doesn't work, even after installing custom Madwifi module===<br />
<br />
I found that Arch tried to use the ath5k module for wireless, and that meant it took control of the card rather than ath_pci (the module I had compiled and installed). I got a Madwifi status 3 message in dmesg when this happened.<br />
<br />
The solution is to blacklist the ath5k module in {{Filename|/etc/rc.conf}}:<br />
<br />
MODULES = ( ... !ath5k ... )<br />
<br />
===Laggy or Unresponsive ACPI Events===<br />
<br />
The latest kernel (2.6.26) introduces new problems with Eee's ACPI events handling. Basically, ACPI events become very laggy and after some time ACPI get disabled after a heavy usage (e.g. changing volume, brightness). This problem affects both stock kernel and toofishes' kernel.<br />
<br />
It appears that the solution is to apply this [http://bugzilla.kernel.org/attachment.cgi?id=16862 patch] ([http://bugzilla.kernel.org/show_bug.cgi?id=10724 original bug report]) to the kernel. <br />
<br />
{{Note | The latest toofishes' kernel, version 2.6.26-1, now includes the patch, but you can still use ighea's one for the extras features listed below.}}<br />
<br />
Until toofishes update his kernel to include the patch, you can use ighea's slightly modified toofishes' kernel that included the above patch, as well as other modifications:<br />
<br />
*Support for Wine <br />
*uvesafb is built as module <br />
*Use [http://bbs.archlinux.org/viewtopic.php?pid=393860#p393860 new eeepc-laptop driver] (which also handles fan-control) instead of older acus_acpi or asus-laptop -drivers.<br />
<br />
You can get the modified kernel, as well as the associative packages, from [http://koti.kapsi.fi/~ighea/eee/kernel-eee/ here].<br />
<br />
After you have downloaded the packages, Install them using this command:<br />
# pacman -U kernel-eee-2.6.26-1-i686.pkg.tar.gz madwifi-eee-svn-3752-1-i686.pkg.tar.gz <br />
<br />
You might also want to use IgnorePkg-line in {{Filename|/etc/pacman.conf}} to hold packages from being accidentally updated.<br />
IgnorePkg = kernel-eee madwifi-eee-svn<br />
<br />
Also don't forget to upgrade ighea's acpi-eee package to version 9.6.<br />
<br />
===Unclean unmount during shutdown when having home directory mounted on SD card===<br />
<br />
If you experienced unclean unmount during shutdown when having your home directory on SD card, then add the following 3 lines to "Write to wtmp file before unmounting" section of your {{Filename|/etc/rc.shutdown}} file:<br />
<pre><br />
...<br />
<br />
stat_busy "Unmounting Filesystems"<br />
/bin/umount -a -t noramfs,notmpfs,nosysfs,noproc<br />
<br />
# Add these 3 lines<br />
sync;sync;sync;<br />
eject /dev/sdb # Or whichever is your SD-card's device name. /dev/disk/by-uuid/ followed by the UUID identifier is preferable though.<br />
sleep 3<br />
# End of hack<br />
<br />
stat_done<br />
<br />
...<br />
</pre><br />
<br />
===Booting from card without initrd===<br />
<br />
Let's say you decided to install Arch Linux on a card and compiled your own kernel (or used the kernel26eee kernel) without initrd. Card reader on EeePC is connected as an USB device. Unfortunately, USB storage devices are detected with a delay, so we must tell the kernel to wait until this device becomes available. You do this with "rootwait" option passed to kernel at boot time.<br />
<br />
===Sleeping and waking system on a card===<br />
<br />
If you have Arch Linux on a card, waking up from sleeping state will most likely fail. The only solution is to enable the CONFIG_USB_PERSIST option in kernel. The kernel26eee package should have this option enabled.<br />
<br />
The command to do this is:<br />
echo 1 >/sys/bus/usb/devices/.../power/persist<br />
<br />
Replace the {{Codeline|"..."}} with the device like 1-3 or 1-5 where the first number is the bus and the second is the device <br />
<br />
Each device that is connected to your computer gets an entry in the sysfs "system file system" it is a virtual file system like proc<br />
<br />
More info:<br />
*http://www.mjmwired.net/kernel/Documentation/usb/persist.txt<br />
*http://forum.eeeuser.com/viewtopic.php?id=22712<br />
<br />
===Display doesn't wake up properly===<br />
<br />
If you encounter black display (but apparently working system) after suspend/resume, consider using the "uswsusp" package (available in the official repositories) and correcting suspend2ram script in /etc/acpi, where you use this line to make the machine go to sleep:<br />
<br />
/usr/sbin/s2ram --force --vbe_post --vbe_mode<br />
<br />
==Battery Tests==<br />
<br />
The following are reported battery runtimes:<br />
<br />
{| class="wikitable" style="text-align:left"<br />
|+Battery runtimes<br />
|-<br />
! Task !! Series !! Wireless !! Screen Brightness !! FSB Speed !! Fan Speed !! Runtime !! Comments<br />
|-<br />
! DVD Playback<br />
| 701 || On || Max || 85mhz || 100% || 134min || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! DVD Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! AVI Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading AVI from SSD<br />
|-<br />
! IM and Surf<br />
| 701 || On || ~30% || ??? || low || 173min || Normal web-browsing, Flash should reduce runtime a lot !<br />
|-<br />
! Programming and PDF reading<br />
| 1000HA || Off || ~40% || ??? || low || +6hs || Using Evince and SPE under XFCE with camera and USB disabled<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || +4hs || Stock kernel without laptop-mode<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || 5hs || Stock kernel with laptop-mode and other tweaks<br />
|}<br />
<br />
N.B. - Will add battery runtimes as I am able to test them, please contribute.<br />
<br />
-- Grecko.1<br />
<br />
Still tweaking, but disabling everything from BIOS got me about 6 hours and a half. With eee-kernel, I *could* get a little more.<br />
<br />
-- ekuber</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=ASUS_Eee_PC_701&diff=86174ASUS Eee PC 7012009-12-03T12:57:40Z<p>Zodmaner: Move install X and acpi section into install Arch Linux section.</p>
<hr />
<div>{{stub}}<br />
[[Category:Getting and installing Arch (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|Русский|Инсталляция Arch Linux на Asus EEE PC}}<br />
{{i18n_links_end}}<br />
<br />
Most of this information is from the [http://bbs.archlinux.org/viewtopic.php?pid=297632 Arch Forum]. You can also find a lot of helpful information from the [http://forum.eeeuser.com/ EEEUser Forum]. <br />
<br />
==Before You Begin==<br />
<br />
===Avoiding Pitfalls===<br />
<br />
The install is pretty normal, except that you'll need to [http://forum.eeeuser.com/viewtopic.php?id=890 avoid the pitfalls] of our alternative Linux install:<br />
<br />
# Never choose to use a journaling file system on the SSD partitions<br />
# Never use a swap partition on the SSD<br />
# Edit your new installation fstab to mount the SSD partitions "noatime"<br />
# Never log messages or error log to the SSD<br />
<br />
The rules ensure that we won't reach the maximum limit of writes on our SSD faster than we should, although this is being contested (see [http://wiki.eeeuser.com/ssd_write_limit this link] and [http://www.storagesearch.com/ssdmyths-endurance.html this other link]).<br />
<br />
Some other minor modifications can be made to decrease number of non-mandatory writes by applications: deactivate {{Filename|~/.viminfo}} in vi, deactivate less history file ({{Filename|~/.lesshst}}), and so on.<br />
<br />
===Choosing Your Installation Media===<br />
<br />
The Eee PC does not have an optical drive installed on the machine. This means you will need to install Arch Linux through one of the alternative methods:<br />
<br />
# [[Beginners_Guide#USB_stick|USB stick]] '''(Recommended)'''<br />
# External USB CD-ROM drive<br />
# [[PXE|Network (PXE)]]<br />
<br />
==Installing Arch Linux==<br />
<br />
With the release of the 2009.08 installation media, installing Arch Linux on Asus Eee PC model 701 is pretty easy and straightforward since the stock kernel on Arch installation media support all of the 701 hardwares out of the box. <br />
<br />
Therefore, aside from the recommended partition scheme described below, there shouldn't be any other differences between installing Arch Linux on the 701 and any other computer. You should be able to successfully install Arch on the 701 by following instructions on [[Beginners_Guide|Beginners' Guide]] without any problem.<br />
<br />
===Prepare Hard Drive===<br />
<br />
The most important different between the 701 and other machines is that the 701 use SSD drive instead of normal hard drive. This section advise on how to set up a partition scheme that is best suited to the 701. <br />
<br />
The default Eee PC drive is split up into four partitions (here is [http://forum.eeeuser.com/viewtopic.php?id=1805 some information] about the partitioning): <br />
<br />
* It is easiest to wipe the existing partitions and use one or two partitions for your install. One partition would be just '/', and two partitions would be '/boot' and '/'.<br />
* Choose "NONE" for swap in case your eee has a SSD (see #2 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]])<br />
* Select "ext2" as your filesystem in case your eee has a SSD (see #1 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]]). If your model has a standard HD choose "ext3".<br />
<br />
===Install X===<br />
<br />
Install X by follow instructions on the [[Beginners_Guide#Step_2:_Install_X|Beginners' Guide]], then install the Intel graphics driver:<br />
# pacman -Sy xf86-video-intel<br />
<br />
You may also wish to install the Synaptics drivers for the touchpad (not needed for Eee PC 900):<br />
# pacman -Sy xf86-input-synaptics<br />
<br />
With the latest version of X from extra repository, X should work on the 701 '''without any need for xorg.conf'''. However, if for some reason you wish to use an xorg.conf file, you can use an old [[Example_Xorg_configuration_file_for_Asus_Eee_PC_701|example Xorg configuration file for Asus Eee PC model 701]] as a template or automatically generate a new one by running the following command:<br />
<br />
# Xorg -configure<br />
<br />
Consult [[Xorg_input_hotplugging|Xorg Input Hotplugging]] for more information on how to config input devices using HAL.<br />
<br />
The synaptics stuff can be removed if you have a EEE PC 900. The {{Codeline|Option "AutoAddDevices"}} line is important if you need a non-default XkbLayout, because if you don't have it, xorg will find 3 keyboards (at least with the 900 model).<br />
The Modeline has obviously to be removed or modified if you dont have a model with this resolution.<br />
<br />
===Getting Hot Keys, Graphic Indicators and Shutdown with the Power Button Working===<br />
<br />
If you want to have working hot keys (wifi, brightness, volume etc), an OSD, and be able to assign actions to things like the powerbutton and closing the lid, then you should install '''ighea's acpi-eee''' package.<br />
<br />
==== ighea's acpi-eee ====<br />
<br />
Get the latest package from [http://kapsi.fi/ighea/eee/acpi-eee/ here].<br />
<br />
The package can be easily installed with:<br />
# pacman -U acpi-eee-10.0-1-i686.pkg.tar.gz<br />
<br />
See messages during installation for more details and don't forget to edit {{Filename|/etc/acpi/eee.conf}} to suit your tastes.<br />
<br />
*For those who use the wireless on/off acpi command; the {{Codeline|NETWORK_UP_COMMAND&#61;""}} setting in {{Filename|/etc/acpi/eee.conf}}, when applicable, should at least release the network. For example, using netcfg2, {{Codeline|NETWORK_UP_COMMAND&#61;"netcfg2 -a"}} will release the connections from before disabling wireless, allowing new ones to be made without netcfg thinking that it's already connected. It is also possible to reconnect to your previous network, however, the network tool you use needs to have a somewhat lengthy timeout as it takes 15-20 seconds for your wireless device to reappear. <br />
<br />
{{Note | Make sure '''asusosd''' is enabled on startup if you want to have the Graphic Indicators from Xandros. To run asusosd simply type {{Codeline|asusosd &}} at a command prompt.}}<br />
<br />
==Asus Eee PC model 701 repository from toofishes==<br />
<br />
{{ Note | You might want to do this after you have successfully installed Arch Linux on the 701.}}<br />
<br />
Toofishes created a repository for the 701. The repository contained customized kernel built specifically for the 701 and some additional packages. <br />
<br />
While the stock Arch kernel works very well with the 701, toofishes kernel have the following advantages:<br />
<br />
* Faster boot time &ndash; because most of the modules have been compile into the kernel, no time is wasted waiting for the modules to load<br />
* No need to generate initial ramdisk every time a kernel is upgrade <br />
* Small size (around 4MB)<br />
<br />
To use the repository, add:<br />
[eee]<br />
Server = http://code.toofishes.net/packages/eee<br />
to your {{Filename|/etc/pacman.conf}} and then issue:<br />
pacman -Syu<br />
<br />
===Package List===<br />
Currently, toofishes' repository contains the following packages:<br />
<br />
*'''kernel-eee''' &ndash; customized kernel for Asus Eee PC model 701<br />
*'''luvcview''' &ndash; webcam program for testing webcam driver<br />
<br />
===Kernel-eee Installation Instruction===<br />
Simply use pacman to install the package you need. Install the packages with this command:<br />
# pacman -Sy kernel-eee<br />
<br />
then, add the following to {{Filename|/boot/grub/menu.lst}}; note that no initrd is needed:<br />
# (2) Arch Linux<br />
title Arch Linux Eee kernel<br />
root (hd0,0)<br />
kernel /boot/vmlinuzeee root=/dev/sda1 ro<br />
<br />
Restart and select Arch Linux Eee kernel from the grub boot menu.<br />
<br />
==Troubleshooting Sound, Webcam and Microphone Problems==<br />
<br />
===Sound===<br />
<br />
For most people, sound should work right out of the box with no troubles. However, others might need to add the following line to {{Filename|/etc/modprobe.conf}}<br />
options snd-hda-intel model=3stack-dig<br />
or the following one for the Eee PC 900 model<br />
options snd-hda-intel model=auto<br />
<br />
If your internal microphone doesn't work, you probably have to turn the capture feature on. Simply fire up alsamixer, find your Capture control, and press spacebar to enable it.<br />
<br />
===Webcam===<br />
<br />
If for some reason webcam have been disabled on your 701, you can enable it by issuing the following command as root: <br />
<br />
echo 1 > /sys/devices/platform/eeepc/camera<br />
<br />
If you want the webcam application that the default Xandos installation uses, install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14469 ucview from the AUR].<br />
<br />
The webcam also works fine with the latest version of Skype.<br />
<br />
If you already have mplayer installed you can launch:<br />
$ mplayer -fps 15 tv://<br />
<br />
I have yet to get it working with vlc or any other software such as xawtv. If you know how, please update this.<br />
<br />
*'''NOTE:''' For anyone who has accidentally disabled Auto Exposure for their webcam in luvcview (making the image dark), and can't enable it again, do the following:<br />
<br />
Install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14468 libwebcam from the AUR].<br />
<br />
Issue the following command:<br />
$ uvcdynctrl --set "Exposure, Auto" 4<br />
<br />
{{Note | Be sure the "OS Installation" option is set to "finished" in the BIOS' "Advanced" tab or your camera may not work in some applications (like Skype).}}<br />
<br />
{{Note | Make sure you are a member of the video group edit /etc/group and add your username to video}}<br />
<br />
===Microphone===<br />
<br />
Solution for problems with the internal microphone.<br />
<br />
1. First of all set in alsamixer "Input Source" to "i-Mic"<br />
<br />
2. Increase "Capture" and "i-Mic Boost" to your needs<br />
<br />
3. Edit {{Filename|/etc/asound.state}} the following, change the 2 "false" to "true" like showing:<br />
....snap.....<br />
control.11 {<br />
comment.access 'read write'<br />
comment.type BOOLEAN<br />
comment.count 2<br />
iface MIXER<br />
name 'Capture Switch'<br />
value.0 true<br />
value.1 true<br />
}<br />
....snap....<br />
<br />
4. After editing run following as root<br />
# alsactl restore<br />
<br />
5. Now your internal microphone should be working.<br />
<br />
==Additional Tips & Tweaks==<br />
<br />
===Tweaking kernel-eee===<br />
<br />
Toofishes' kernel, also known as kernel-eee, can be recompiled to include custom features. You can download toofishes' kernel PKGBUILD and all the nesseary files from his gitweb by installing the git package and using the following command:<br />
<br />
$ git clone git://code.toofishes.net/dan/eee.git<br />
<br />
or if you are behind a proxy and can't use the git protocol:<br />
<br />
$ git clone http://code.toofishes.net/git/dan/eee.git<br />
<br />
There are two ways to tweak the kernel. The first is simply to edit the {{Filename|kernelconfig}} file with your favorite editor and the second is to insert a {{Codeline|make menuconfig}} line into the PKGBUILD before the kernel's compilation.<br />
<br />
===Using Wine with toofishes' kernel===<br />
<br />
Normally, Wine won't work with toofishes' kernel because it is compiled with VMSPLIT_2G_OPT option. In order to use Wine with toofishes' kernel, you have to recompile his kernel with VMSPLIT_3G option.<br />
<br />
Download the kernel PKGBUILD and all the necessary files from toofishes' gitweb using the above instructions, then change the following lines in the {{Filename|kernelconfig}} file from this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 # CONFIG_VMSPLIT_3G is not set<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 CONFIG_VMSPLIT_2G_OPT=y<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
to this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 CONFIG_VMSPLIT_3G=y<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 # CONFIG_VMSPLIT_2G_OPT is not set<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
<br />
Compile and install the kernel and Wine should now work.<br />
<br />
===Power down with the power button===<br />
<br />
{{Note | If you are using ighea's acpi-eee or dkite's acpid_eee package then you should already be able to shutdown by pressing the power button and should not need to do this.}}<br />
<br />
The two alternatives here are described in [[Allow users to shutdown]].<br />
<br />
If you don't already or don't plan to use sudo, it may be simpler to use the setuid /sbin/halt method, otherwise using sudo is preferred.<br />
<br />
Below are all the steps required for the sudo method. If you want to use the setuid method, read the article linked above and perform the 'power' file step here, while omitting the 'sudo' in it.<br />
<br />
# pacman -S sudo<br />
<br />
As root, do the following:<br />
# visudo<br />
<br />
Add the following line to the file:<br />
USER HOST = NOPASSWD: /sbin/poweroff<br />
<br />
Where {{Codeline|USER}} is the user you want to be able to power down with and {{Codeline|HOST}} is your hostname (from {{Filename|/etc/rc.conf}}).<br />
<br />
Now, create a file called {{Filename|/etc/acpi/events/power}}, containing:<br />
# /etc/acpi/events/power<br />
# This is called when the user presses the power button<br />
<br />
event=button/power (PWR.||PBTN)<br />
action=sudo /sbin/poweroff<br />
<br />
Make sure that you execute:<br />
# /etc/rc.d/acpid start<br />
<br />
And/or add acpid to the daemons list in {{Filename|/etc/rc.conf}}:<br />
DAEMONS=(hal, acpid ...)<br />
<br />
===Use cpufreq for power saving===<br />
<br />
{{Note | toofishes dropped CPU scaling from his latest kernel builds, due to the fact, confirmed by other users, that there were no effective power savings with p4-clockmod's module, and it introduced "unacceptable latency", even with relatively low percentage up thresholds.}}<br />
<br />
Install cpufrequtitls:<br />
# pacman -S cpufrequtils<br />
<br />
For scaling down the processor you have to load the p4_clockmod module. Insert it into your {{Filename|/etc/rc.conf}} MODULES array for loading it at startup. <br />
MODULES=(... p4_clockmod ...)<br />
<br />
Add 'cpufreq' to the DAEMONS array in {{Filename|/etc/rc.conf}} to have it start on startup.<br />
DAEMONS=(... cpufreq ...)<br />
<br />
Add the following into {{Filename|/etc/conf.d/cpufreq}}:<br />
governor="ondemand"<br />
min_freq="113MHz"<br />
max_freq="900MHz"<br />
<br />
With enabled cpufreq it scales the processor between 113MHz up to max. frequency. That should save a lot on battery power. The stated 900MHz will be never reached by the eeePC, the p4_clockmod reports a wrong frequency here. But scaling works, you can feel it in the performance of eeePC that he slow down the processor.<br />
<br />
{{Note | The merits of p4-clockmod are debatable. Particularly on the EEEPC 701, battery time isn't extended due to its usage, and some users have even reported less battery duration. More hints to the reasons why can be read in [http://www.codemonkey.org.uk/2009/01/18/forthcoming-p4clockmod/ this] fine blog entry.}}<br />
<br />
===More responsive system with ondemand governor===<br />
The default up_threshold (where it will bump to a faster speed) for the CPU governor is 80, which means it will increase the CPU speed when utilization is above 80%. This can make X applications have a bit of lag. <br />
<br />
Try changing this value:<br />
$ sudo bash -c "echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold"<br />
<br />
With 40 it still leaves the majority of CPU cycles at the lowest available clock speed but increases responsiveness. You can add this line to one of your startup scripts (such as {{Filename|/etc/rc.local}}) if you wish to keep it, for example:<br />
<br />
#!/bin/bash<br />
#<br />
# /etc/rc.local: Local multi-user startup script.<br />
#<br />
<br />
echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold<br />
<br />
Also, following line is also reported to help makes system more responsive. You can use it by adding it to your {{Filename|/etc/rc.local}}:<br />
echo 2000000 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate<br />
<br />
===Speeding up udev for faster boot===<br />
*[[Speedup udev]]<br />
*http://dev.laptop.org/ticket/4349<br />
*[http://www.eeesale.com/Asus-Eee-PC-overclock-Benchmarks.htm Speed up the Eee PC]<br />
<br />
You can also disable the autoload by editing your {{Filename|[[rc.conf]]}}:<br />
...<br />
MOD_AUTOLOAD="no"<br />
...<br />
MODULES=(pciehp ath5k)<br />
<br />
===Update your BIOS without Xandros===<br />
{{Warning | You can break your system, do not update if you are not sure of what you are doing!}}<br />
<br />
First, you need to download the ''.rom'' file.<br />
*[http://update.eeepc.asus.com/bios/ Asus' official BIOS]<br />
*[http://forum.eeeuser.com/viewtopic.php?id=3485 EeeUser's topic]<br />
<br />
You also need an USB stick formatted in FAT32. To format the USBStick, use the cfdisk tool:<br />
# cfdisk /dev/sdc # could be something else than "c"<br />
<br />
Choose [delete], [type]: "fat32" (code 0B), [write] and then exit with [quit].<br />
<br />
NOTE to EEE PC 900 owners and possibly others: Using this method will require a flash drive formatted with a '''FAT16''' file-system. If the BIOS update process hangs up at "Reading file 900.ROM" for more than a few minutes then it should be safe to power down your EEE PC and reformat your flashdrive's file-system to the correct one. You can force FAT16 creation with the following command:<br />
# mkdosfs -F 16 /dev/device-path<br />
<br />
Now just copy the ''.rom'' on the USBStick :<br />
$ cp /somewhere/blabla/.../thecurrentnameofthefile.ROM /path/to/mounted/usb_stick/701.rom<br />
The name of the copy '''must''' be xxxx.rom where xxxx is the model of your eee PC. (i.e. 900 users it's 900.rom)<br />
<br />
Next step, reboot the eeepc with the USB stick pluged-in, and press Alt+F2. It will launch the built-in tool. Everything should be Ok, you can make a coffee during the update. When it asks you to push the power-button it has finished.<br />
<br />
At the next boot, you'll be invited to configure the BIOS. Check if the everything is enabled (my webcam and wireless were disabled after the update) and if it displays the good version in the main screen. It's done!<br />
<br />
=== More usable font sizes ===<br />
<br />
====The_glu's method====<br />
<br />
I found an easy solution that works on a 901:<br />
<br />
Edit {{Filename|/etc/X11/xinit/xserverrc}} and add "-dpi 134":<br />
exec /usr/bin/X -nolisten tcp -dpi 134<br />
<br />
Restart X and fonts should have the correct size. Notice it's won't works if you have Xft*dpi: in your {{Filename|.XDefaults}}.<br />
<br />
You don't need to edit your config file to set a smaller font size, I you did you should set font-size to 10 or you will have to small fonts...<br />
<br />
==== Old method ====<br />
<br />
On a default installation with Xfce 4 my font sizes were too big, here is what I did to sort them out.<br />
<br />
First, I set the DPI by adding the following to {{Filename|~/.Xdefaults}}:<br />
Xft*dpi: 134<br />
<br />
This then caused the fonts to be even bigger, so I set them all to be font-size 6 by adding the following into {{Filename|~/.gtkrc-2.0}} (note that this will be overwritten if you use any tools to change GTK settings):<br />
style "user-font"<br />
{<br />
font_name="Bitstream Vera Sans 6"<br />
}<br />
widget_class "*" style "user-font"<br />
<br />
To do the same with KDE fonts (without KDE installed) you have to add the following to {{Filename|~/.kde/share/config/kdeglobals}}:<br />
[General]<br />
StandardFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
activeFont=Bitstream Vera Sans,6,-1,5,75,0,0,0,0,0<br />
fixed=Bitstream Vera Sans Mono,6,-1,5,50,0,0,0,0,0<br />
font=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
menuFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
taskbarFont=Bitstream Vera Sans,6,-1,5,50,1,0,0,0,0<br />
toolBarFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
<br />
To make your fonts even prettier enable the [[Fonts#Fonts_with_LCD_filter_enabled|LCD Fonts]].<br />
<br />
==== Alternative Method ====<br />
<br />
For me it worked far better to open the gnome appearance control panel, go to the fonts tab, click defaults, and change the resolution to be 96 dpi. Changing .Xdefaults doesnt work when running gnome, as gnome-settings-daemon overrides it. You can then leave all font sizes at their default, and things should look good. Simply changing the font sizes and leaving the DPI at its technically correct value (~134) gave me weird layout problems in some apps, and oddly large fonts in others.<br />
<br />
==Known problems and their solutions==<br />
<br />
===Wireless doesn't work, even after installing custom Madwifi module===<br />
<br />
I found that Arch tried to use the ath5k module for wireless, and that meant it took control of the card rather than ath_pci (the module I had compiled and installed). I got a Madwifi status 3 message in dmesg when this happened.<br />
<br />
The solution is to blacklist the ath5k module in {{Filename|/etc/rc.conf}}:<br />
<br />
MODULES = ( ... !ath5k ... )<br />
<br />
===Laggy or Unresponsive ACPI Events===<br />
<br />
The latest kernel (2.6.26) introduces new problems with Eee's ACPI events handling. Basically, ACPI events become very laggy and after some time ACPI get disabled after a heavy usage (e.g. changing volume, brightness). This problem affects both stock kernel and toofishes' kernel.<br />
<br />
It appears that the solution is to apply this [http://bugzilla.kernel.org/attachment.cgi?id=16862 patch] ([http://bugzilla.kernel.org/show_bug.cgi?id=10724 original bug report]) to the kernel. <br />
<br />
{{Note | The latest toofishes' kernel, version 2.6.26-1, now includes the patch, but you can still use ighea's one for the extras features listed below.}}<br />
<br />
Until toofishes update his kernel to include the patch, you can use ighea's slightly modified toofishes' kernel that included the above patch, as well as other modifications:<br />
<br />
*Support for Wine <br />
*uvesafb is built as module <br />
*Use [http://bbs.archlinux.org/viewtopic.php?pid=393860#p393860 new eeepc-laptop driver] (which also handles fan-control) instead of older acus_acpi or asus-laptop -drivers.<br />
<br />
You can get the modified kernel, as well as the associative packages, from [http://koti.kapsi.fi/~ighea/eee/kernel-eee/ here].<br />
<br />
After you have downloaded the packages, Install them using this command:<br />
# pacman -U kernel-eee-2.6.26-1-i686.pkg.tar.gz madwifi-eee-svn-3752-1-i686.pkg.tar.gz <br />
<br />
You might also want to use IgnorePkg-line in {{Filename|/etc/pacman.conf}} to hold packages from being accidentally updated.<br />
IgnorePkg = kernel-eee madwifi-eee-svn<br />
<br />
Also don't forget to upgrade ighea's acpi-eee package to version 9.6.<br />
<br />
===Shutdown Problem===<br />
<br />
If your Eee won't shutdown properly (i.e. the power indicator LED is on but the LCD screen is off), then add the following lines to your {{Filename|/etc/rc.local.shutdown}} file.<br />
<pre><br />
#! /bin/bash<br />
#<br />
# /etc/rc.local.shutdown: Local shutdown script.<br />
#<br />
<br />
# Comment or uncomment the following two lines according to your system configuration.<br />
<br />
/etc/rc.d/mpd stop # If you're using mpd, then you have to stop its daemon first.<br />
<br />
/etc/rc.d/alsa stop # If you're using ALSA daemon, then you also have to stop it.<br />
<br />
# The following line is Eee specific fix, you always need to have this line in /etc/rc.local.shutdown.<br />
<br />
echo -n "0000:00:1b.0" > /sys/bus/pci/drivers/HDA\ Intel/unbind<br />
</pre><br />
<br />
The above solution should fix the shutdown problem in most cases. But if for some reason the problem still persists, the module may not be able to be unloaded until after all services have finished. Do the above, then in {{Filename|/etc/rc.shutdown}} move <br />
<br />
if [ -x /etc/rc.local.shutdown ]; then<br />
/etc/rc.local.shutdown<br />
fi<br />
<br />
from where it was to directly above the line <br />
<br />
# Terminate all processes<br />
<br />
this will cause the {{Filename|rc.local.shutdown}} script to run after services have been exited. This fixed all issues for the person editing this note.<br />
<br />
===Unclean unmount during shutdown when having home directory mounted on SD card===<br />
<br />
If you experienced unclean unmount during shutdown when having your home directory on SD card, then add the following 3 lines to "Write to wtmp file before unmounting" section of your {{Filename|/etc/rc.shutdown}} file:<br />
<pre><br />
...<br />
<br />
stat_busy "Unmounting Filesystems"<br />
/bin/umount -a -t noramfs,notmpfs,nosysfs,noproc<br />
<br />
# Add these 3 lines<br />
sync;sync;sync;<br />
eject /dev/sdb # Or whichever is your SD-card's device name. /dev/disk/by-uuid/ followed by the UUID identifier is preferable though.<br />
sleep 3<br />
# End of hack<br />
<br />
stat_done<br />
<br />
...<br />
</pre><br />
<br />
===Booting from card without initrd===<br />
<br />
Let's say you decided to install Arch Linux on a card and compiled your own kernel (or used the kernel26eee kernel) without initrd. Card reader on EeePC is connected as an USB device. Unfortunately, USB storage devices are detected with a delay, so we must tell the kernel to wait until this device becomes available. You do this with "rootwait" option passed to kernel at boot time.<br />
<br />
===Sleeping and waking system on a card===<br />
<br />
If you have Arch Linux on a card, waking up from sleeping state will most likely fail. The only solution is to enable the CONFIG_USB_PERSIST option in kernel. The kernel26eee package should have this option enabled.<br />
<br />
The command to do this is:<br />
echo 1 >/sys/bus/usb/devices/.../power/persist<br />
<br />
Replace the {{Codeline|"..."}} with the device like 1-3 or 1-5 where the first number is the bus and the second is the device <br />
<br />
Each device that is connected to your computer gets an entry in the sysfs "system file system" it is a virtual file system like proc<br />
<br />
More info:<br />
*http://www.mjmwired.net/kernel/Documentation/usb/persist.txt<br />
*http://forum.eeeuser.com/viewtopic.php?id=22712<br />
<br />
===Display doesn't wake up properly===<br />
<br />
If you encounter black display (but apparently working system) after suspend/resume, consider using the "uswsusp" package (available in the official repositories) and correcting suspend2ram script in /etc/acpi, where you use this line to make the machine go to sleep:<br />
<br />
/usr/sbin/s2ram --force --vbe_post --vbe_mode<br />
<br />
==Battery Tests==<br />
<br />
The following are reported battery runtimes:<br />
<br />
{| class="wikitable" style="text-align:left"<br />
|+Battery runtimes<br />
|-<br />
! Task !! Series !! Wireless !! Screen Brightness !! FSB Speed !! Fan Speed !! Runtime !! Comments<br />
|-<br />
! DVD Playback<br />
| 701 || On || Max || 85mhz || 100% || 134min || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! DVD Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! AVI Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading AVI from SSD<br />
|-<br />
! IM and Surf<br />
| 701 || On || ~30% || ??? || low || 173min || Normal web-browsing, Flash should reduce runtime a lot !<br />
|-<br />
! Programming and PDF reading<br />
| 1000HA || Off || ~40% || ??? || low || +6hs || Using Evince and SPE under XFCE with camera and USB disabled<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || +4hs || Stock kernel without laptop-mode<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || 5hs || Stock kernel with laptop-mode and other tweaks<br />
|}<br />
<br />
N.B. - Will add battery runtimes as I am able to test them, please contribute.<br />
<br />
-- Grecko.1<br />
<br />
Still tweaking, but disabling everything from BIOS got me about 6 hours and a half. With eee-kernel, I *could* get a little more.<br />
<br />
-- ekuber</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=ASUS_Eee_PC_701&diff=86173ASUS Eee PC 7012009-12-03T12:52:44Z<p>Zodmaner: /* Getting Everything Working */ Renamed section to install X and move sound, webcam & microphone to new section.</p>
<hr />
<div>{{stub}}<br />
[[Category:Getting and installing Arch (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|Русский|Инсталляция Arch Linux на Asus EEE PC}}<br />
{{i18n_links_end}}<br />
<br />
Most of this information is from the [http://bbs.archlinux.org/viewtopic.php?pid=297632 Arch Forum]. You can also find a lot of helpful information from the [http://forum.eeeuser.com/ EEEUser Forum]. <br />
<br />
==Before You Begin==<br />
<br />
===Avoiding Pitfalls===<br />
<br />
The install is pretty normal, except that you'll need to [http://forum.eeeuser.com/viewtopic.php?id=890 avoid the pitfalls] of our alternative Linux install:<br />
<br />
# Never choose to use a journaling file system on the SSD partitions<br />
# Never use a swap partition on the SSD<br />
# Edit your new installation fstab to mount the SSD partitions "noatime"<br />
# Never log messages or error log to the SSD<br />
<br />
The rules ensure that we won't reach the maximum limit of writes on our SSD faster than we should, although this is being contested (see [http://wiki.eeeuser.com/ssd_write_limit this link] and [http://www.storagesearch.com/ssdmyths-endurance.html this other link]).<br />
<br />
Some other minor modifications can be made to decrease number of non-mandatory writes by applications: deactivate {{Filename|~/.viminfo}} in vi, deactivate less history file ({{Filename|~/.lesshst}}), and so on.<br />
<br />
===Choosing Your Installation Media===<br />
<br />
The Eee PC does not have an optical drive installed on the machine. This means you will need to install Arch Linux through one of the alternative methods:<br />
<br />
# [[Beginners_Guide#USB_stick|USB stick]] '''(Recommended)'''<br />
# External USB CD-ROM drive<br />
# [[PXE|Network (PXE)]]<br />
<br />
==Installing Arch Linux==<br />
<br />
With the release of the 2009.08 installation media, installing Arch Linux on Asus Eee PC model 701 is pretty easy and straightforward since the stock kernel on Arch installation media support all of the 701 hardwares out of the box. <br />
<br />
Therefore, aside from the recommended partition scheme described below, there shouldn't be any other differences between installing Arch Linux on the 701 and any other computer. You should be able to successfully install Arch on the 701 by following instructions on [[Beginners_Guide|Beginners' Guide]] without any problem.<br />
<br />
===Prepare Hard Drive===<br />
<br />
<br />
The most important different between the 701 and other machines is that the 701 use SSD drive instead of normal hard drive. This section advise on how to set up a partition scheme that is best suited to the 701. <br />
<br />
The default Eee PC drive is split up into four partitions (here is [http://forum.eeeuser.com/viewtopic.php?id=1805 some information] about the partitioning): <br />
<br />
* It is easiest to wipe the existing partitions and use one or two partitions for your install. One partition would be just '/', and two partitions would be '/boot' and '/'.<br />
* Choose "NONE" for swap in case your eee has a SSD (see #2 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]])<br />
* Select "ext2" as your filesystem in case your eee has a SSD (see #1 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]]). If your model has a standard HD choose "ext3".<br />
<br />
==Asus Eee PC model 701 repository from toofishes==<br />
<br />
{{ Note | You might want to do this after you have successfully installed Arch Linux on the 701.}}<br />
<br />
Toofishes created a repository for the 701. The repository contained customized kernel built specifically for the 701 and some additional packages. <br />
<br />
While the stock Arch kernel works very well with the 701, toofishes kernel have the following advantages:<br />
<br />
* Faster boot time &ndash; because most of the modules have been compile into the kernel, no time is wasted waiting for the modules to load<br />
* No need to generate initial ramdisk every time a kernel is upgrade <br />
* Small size (around 4MB)<br />
<br />
To use the repository, add:<br />
[eee]<br />
Server = http://code.toofishes.net/packages/eee<br />
to your {{Filename|/etc/pacman.conf}} and then issue:<br />
pacman -Syu<br />
<br />
===Package List===<br />
Currently, toofishes' repository contains the following packages:<br />
<br />
*'''kernel-eee''' &ndash; customized kernel for Asus Eee PC model 701<br />
*'''luvcview''' &ndash; webcam program for testing webcam driver<br />
<br />
===Kernel-eee Installation Instruction===<br />
Simply use pacman to install the package you need. Install the packages with this command:<br />
# pacman -Sy kernel-eee<br />
<br />
then, add the following to {{Filename|/boot/grub/menu.lst}}; note that no initrd is needed:<br />
# (2) Arch Linux<br />
title Arch Linux Eee kernel<br />
root (hd0,0)<br />
kernel /boot/vmlinuzeee root=/dev/sda1 ro<br />
<br />
Restart and select Arch Linux Eee kernel from the grub boot menu.<br />
<br />
==Install X==<br />
<br />
Install X by follow instructions on the [[Beginners_Guide#Step_2:_Install_X|Beginners' Guide]], then install the Intel graphics driver:<br />
# pacman -Sy xf86-video-intel<br />
<br />
You may also wish to install the Synaptics drivers for the touchpad (not needed for Eee PC 900):<br />
# pacman -Sy xf86-input-synaptics<br />
<br />
With the latest version of X from extra repository, X should work on the 701 '''without any need for xorg.conf'''. However, if for some reason you wish to use an xorg.conf file, you can use an old [[Example_Xorg_configuration_file_for_Asus_Eee_PC_701|example Xorg configuration file for Asus Eee PC model 701]] as a template or automatically generate a new one by running the following command:<br />
<br />
# Xorg -configure<br />
<br />
Consult [[Xorg_input_hotplugging|Xorg Input Hotplugging]] for more information on how to config input devices using HAL.<br />
<br />
The synaptics stuff can be removed if you have a EEE PC 900. The {{Codeline|Option "AutoAddDevices"}} line is important if you need a non-default XkbLayout, because if you don't have it, xorg will find 3 keyboards (at least with the 900 model).<br />
The Modeline has obviously to be removed or modified if you dont have a model with this resolution.<br />
<br />
==Troubleshooting Sound, Webcam and Microphone Problems==<br />
<br />
===Sound===<br />
<br />
For most people, sound should work right out of the box with no troubles. However, others might need to add the following line to {{Filename|/etc/modprobe.conf}}<br />
options snd-hda-intel model=3stack-dig<br />
or the following one for the Eee PC 900 model<br />
options snd-hda-intel model=auto<br />
<br />
If your internal microphone doesn't work, you probably have to turn the capture feature on. Simply fire up alsamixer, find your Capture control, and press spacebar to enable it.<br />
<br />
===Webcam===<br />
<br />
If for some reason webcam have been disabled on your 701, you can enable it by issuing the following command as root: <br />
<br />
echo 1 > /sys/devices/platform/eeepc/camera<br />
<br />
If you want the webcam application that the default Xandos installation uses, install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14469 ucview from the AUR].<br />
<br />
The webcam also works fine with the latest version of Skype.<br />
<br />
If you already have mplayer installed you can launch:<br />
$ mplayer -fps 15 tv://<br />
<br />
I have yet to get it working with vlc or any other software such as xawtv. If you know how, please update this.<br />
<br />
*'''NOTE:''' For anyone who has accidentally disabled Auto Exposure for their webcam in luvcview (making the image dark), and can't enable it again, do the following:<br />
<br />
Install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14468 libwebcam from the AUR].<br />
<br />
Issue the following command:<br />
$ uvcdynctrl --set "Exposure, Auto" 4<br />
<br />
{{Note | Be sure the "OS Installation" option is set to "finished" in the BIOS' "Advanced" tab or your camera may not work in some applications (like Skype).}}<br />
<br />
{{Note | Make sure you are a member of the video group edit /etc/group and add your username to video}}<br />
<br />
===Microphone===<br />
<br />
Solution for problems with the internal microphone.<br />
<br />
1. First of all set in alsamixer "Input Source" to "i-Mic"<br />
<br />
2. Increase "Capture" and "i-Mic Boost" to your needs<br />
<br />
3. Edit {{Filename|/etc/asound.state}} the following, change the 2 "false" to "true" like showing:<br />
....snap.....<br />
control.11 {<br />
comment.access 'read write'<br />
comment.type BOOLEAN<br />
comment.count 2<br />
iface MIXER<br />
name 'Capture Switch'<br />
value.0 true<br />
value.1 true<br />
}<br />
....snap....<br />
<br />
4. After editing run following as root<br />
# alsactl restore<br />
<br />
5. Now your internal microphone should be working.<br />
<br />
===Getting Hot Keys, Graphic Indicators and Shutdown with the Power Button Working===<br />
<br />
If you want to have working hot keys (wifi, brightness, volume etc), an OSD, and be able to assign actions to things like the powerbutton and closing the lid, then you should install '''ighea's acpi-eee''' package.<br />
<br />
==== ighea's acpi-eee ====<br />
<br />
Get the latest package from [http://kapsi.fi/ighea/eee/acpi-eee/ here].<br />
<br />
The package can be easily installed with:<br />
# pacman -U acpi-eee-10.0-1-i686.pkg.tar.gz<br />
<br />
See messages during installation for more details and don't forget to edit {{Filename|/etc/acpi/eee.conf}} to suit your tastes.<br />
<br />
*For those who use the wireless on/off acpi command; the {{Codeline|NETWORK_UP_COMMAND&#61;""}} setting in {{Filename|/etc/acpi/eee.conf}}, when applicable, should at least release the network. For example, using netcfg2, {{Codeline|NETWORK_UP_COMMAND&#61;"netcfg2 -a"}} will release the connections from before disabling wireless, allowing new ones to be made without netcfg thinking that it's already connected. It is also possible to reconnect to your previous network, however, the network tool you use needs to have a somewhat lengthy timeout as it takes 15-20 seconds for your wireless device to reappear. <br />
<br />
{{Note | Make sure '''asusosd''' is enabled on startup if you want to have the Graphic Indicators from Xandros. To run asusosd simply type {{Codeline|asusosd &}} at a command prompt.}}<br />
<br />
==Additional Tips & Tweaks==<br />
<br />
===Tweaking kernel-eee===<br />
<br />
Toofishes' kernel, also known as kernel-eee, can be recompiled to include custom features. You can download toofishes' kernel PKGBUILD and all the nesseary files from his gitweb by installing the git package and using the following command:<br />
<br />
$ git clone git://code.toofishes.net/dan/eee.git<br />
<br />
or if you are behind a proxy and can't use the git protocol:<br />
<br />
$ git clone http://code.toofishes.net/git/dan/eee.git<br />
<br />
There are two ways to tweak the kernel. The first is simply to edit the {{Filename|kernelconfig}} file with your favorite editor and the second is to insert a {{Codeline|make menuconfig}} line into the PKGBUILD before the kernel's compilation.<br />
<br />
===Using Wine with toofishes' kernel===<br />
<br />
Normally, Wine won't work with toofishes' kernel because it is compiled with VMSPLIT_2G_OPT option. In order to use Wine with toofishes' kernel, you have to recompile his kernel with VMSPLIT_3G option.<br />
<br />
Download the kernel PKGBUILD and all the necessary files from toofishes' gitweb using the above instructions, then change the following lines in the {{Filename|kernelconfig}} file from this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 # CONFIG_VMSPLIT_3G is not set<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 CONFIG_VMSPLIT_2G_OPT=y<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
to this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 CONFIG_VMSPLIT_3G=y<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 # CONFIG_VMSPLIT_2G_OPT is not set<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
<br />
Compile and install the kernel and Wine should now work.<br />
<br />
===Power down with the power button===<br />
<br />
{{Note | If you are using ighea's acpi-eee or dkite's acpid_eee package then you should already be able to shutdown by pressing the power button and should not need to do this.}}<br />
<br />
The two alternatives here are described in [[Allow users to shutdown]].<br />
<br />
If you don't already or don't plan to use sudo, it may be simpler to use the setuid /sbin/halt method, otherwise using sudo is preferred.<br />
<br />
Below are all the steps required for the sudo method. If you want to use the setuid method, read the article linked above and perform the 'power' file step here, while omitting the 'sudo' in it.<br />
<br />
# pacman -S sudo<br />
<br />
As root, do the following:<br />
# visudo<br />
<br />
Add the following line to the file:<br />
USER HOST = NOPASSWD: /sbin/poweroff<br />
<br />
Where {{Codeline|USER}} is the user you want to be able to power down with and {{Codeline|HOST}} is your hostname (from {{Filename|/etc/rc.conf}}).<br />
<br />
Now, create a file called {{Filename|/etc/acpi/events/power}}, containing:<br />
# /etc/acpi/events/power<br />
# This is called when the user presses the power button<br />
<br />
event=button/power (PWR.||PBTN)<br />
action=sudo /sbin/poweroff<br />
<br />
Make sure that you execute:<br />
# /etc/rc.d/acpid start<br />
<br />
And/or add acpid to the daemons list in {{Filename|/etc/rc.conf}}:<br />
DAEMONS=(hal, acpid ...)<br />
<br />
===Use cpufreq for power saving===<br />
<br />
{{Note | toofishes dropped CPU scaling from his latest kernel builds, due to the fact, confirmed by other users, that there were no effective power savings with p4-clockmod's module, and it introduced "unacceptable latency", even with relatively low percentage up thresholds.}}<br />
<br />
Install cpufrequtitls:<br />
# pacman -S cpufrequtils<br />
<br />
For scaling down the processor you have to load the p4_clockmod module. Insert it into your {{Filename|/etc/rc.conf}} MODULES array for loading it at startup. <br />
MODULES=(... p4_clockmod ...)<br />
<br />
Add 'cpufreq' to the DAEMONS array in {{Filename|/etc/rc.conf}} to have it start on startup.<br />
DAEMONS=(... cpufreq ...)<br />
<br />
Add the following into {{Filename|/etc/conf.d/cpufreq}}:<br />
governor="ondemand"<br />
min_freq="113MHz"<br />
max_freq="900MHz"<br />
<br />
With enabled cpufreq it scales the processor between 113MHz up to max. frequency. That should save a lot on battery power. The stated 900MHz will be never reached by the eeePC, the p4_clockmod reports a wrong frequency here. But scaling works, you can feel it in the performance of eeePC that he slow down the processor.<br />
<br />
{{Note | The merits of p4-clockmod are debatable. Particularly on the EEEPC 701, battery time isn't extended due to its usage, and some users have even reported less battery duration. More hints to the reasons why can be read in [http://www.codemonkey.org.uk/2009/01/18/forthcoming-p4clockmod/ this] fine blog entry.}}<br />
<br />
===More responsive system with ondemand governor===<br />
The default up_threshold (where it will bump to a faster speed) for the CPU governor is 80, which means it will increase the CPU speed when utilization is above 80%. This can make X applications have a bit of lag. <br />
<br />
Try changing this value:<br />
$ sudo bash -c "echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold"<br />
<br />
With 40 it still leaves the majority of CPU cycles at the lowest available clock speed but increases responsiveness. You can add this line to one of your startup scripts (such as {{Filename|/etc/rc.local}}) if you wish to keep it, for example:<br />
<br />
#!/bin/bash<br />
#<br />
# /etc/rc.local: Local multi-user startup script.<br />
#<br />
<br />
echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold<br />
<br />
Also, following line is also reported to help makes system more responsive. You can use it by adding it to your {{Filename|/etc/rc.local}}:<br />
echo 2000000 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate<br />
<br />
===Speeding up udev for faster boot===<br />
*[[Speedup udev]]<br />
*http://dev.laptop.org/ticket/4349<br />
*[http://www.eeesale.com/Asus-Eee-PC-overclock-Benchmarks.htm Speed up the Eee PC]<br />
<br />
You can also disable the autoload by editing your {{Filename|[[rc.conf]]}}:<br />
...<br />
MOD_AUTOLOAD="no"<br />
...<br />
MODULES=(pciehp ath5k)<br />
<br />
===Update your BIOS without Xandros===<br />
{{Warning | You can break your system, do not update if you are not sure of what you are doing!}}<br />
<br />
First, you need to download the ''.rom'' file.<br />
*[http://update.eeepc.asus.com/bios/ Asus' official BIOS]<br />
*[http://forum.eeeuser.com/viewtopic.php?id=3485 EeeUser's topic]<br />
<br />
You also need an USB stick formatted in FAT32. To format the USBStick, use the cfdisk tool:<br />
# cfdisk /dev/sdc # could be something else than "c"<br />
<br />
Choose [delete], [type]: "fat32" (code 0B), [write] and then exit with [quit].<br />
<br />
NOTE to EEE PC 900 owners and possibly others: Using this method will require a flash drive formatted with a '''FAT16''' file-system. If the BIOS update process hangs up at "Reading file 900.ROM" for more than a few minutes then it should be safe to power down your EEE PC and reformat your flashdrive's file-system to the correct one. You can force FAT16 creation with the following command:<br />
# mkdosfs -F 16 /dev/device-path<br />
<br />
Now just copy the ''.rom'' on the USBStick :<br />
$ cp /somewhere/blabla/.../thecurrentnameofthefile.ROM /path/to/mounted/usb_stick/701.rom<br />
The name of the copy '''must''' be xxxx.rom where xxxx is the model of your eee PC. (i.e. 900 users it's 900.rom)<br />
<br />
Next step, reboot the eeepc with the USB stick pluged-in, and press Alt+F2. It will launch the built-in tool. Everything should be Ok, you can make a coffee during the update. When it asks you to push the power-button it has finished.<br />
<br />
At the next boot, you'll be invited to configure the BIOS. Check if the everything is enabled (my webcam and wireless were disabled after the update) and if it displays the good version in the main screen. It's done!<br />
<br />
=== More usable font sizes ===<br />
<br />
====The_glu's method====<br />
<br />
I found an easy solution that works on a 901:<br />
<br />
Edit {{Filename|/etc/X11/xinit/xserverrc}} and add "-dpi 134":<br />
exec /usr/bin/X -nolisten tcp -dpi 134<br />
<br />
Restart X and fonts should have the correct size. Notice it's won't works if you have Xft*dpi: in your {{Filename|.XDefaults}}.<br />
<br />
You don't need to edit your config file to set a smaller font size, I you did you should set font-size to 10 or you will have to small fonts...<br />
<br />
==== Old method ====<br />
<br />
On a default installation with Xfce 4 my font sizes were too big, here is what I did to sort them out.<br />
<br />
First, I set the DPI by adding the following to {{Filename|~/.Xdefaults}}:<br />
Xft*dpi: 134<br />
<br />
This then caused the fonts to be even bigger, so I set them all to be font-size 6 by adding the following into {{Filename|~/.gtkrc-2.0}} (note that this will be overwritten if you use any tools to change GTK settings):<br />
style "user-font"<br />
{<br />
font_name="Bitstream Vera Sans 6"<br />
}<br />
widget_class "*" style "user-font"<br />
<br />
To do the same with KDE fonts (without KDE installed) you have to add the following to {{Filename|~/.kde/share/config/kdeglobals}}:<br />
[General]<br />
StandardFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
activeFont=Bitstream Vera Sans,6,-1,5,75,0,0,0,0,0<br />
fixed=Bitstream Vera Sans Mono,6,-1,5,50,0,0,0,0,0<br />
font=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
menuFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
taskbarFont=Bitstream Vera Sans,6,-1,5,50,1,0,0,0,0<br />
toolBarFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
<br />
To make your fonts even prettier enable the [[Fonts#Fonts_with_LCD_filter_enabled|LCD Fonts]].<br />
<br />
==== Alternative Method ====<br />
<br />
For me it worked far better to open the gnome appearance control panel, go to the fonts tab, click defaults, and change the resolution to be 96 dpi. Changing .Xdefaults doesnt work when running gnome, as gnome-settings-daemon overrides it. You can then leave all font sizes at their default, and things should look good. Simply changing the font sizes and leaving the DPI at its technically correct value (~134) gave me weird layout problems in some apps, and oddly large fonts in others.<br />
<br />
==Known problems and their solutions==<br />
<br />
===Wireless doesn't work, even after installing custom Madwifi module===<br />
<br />
I found that Arch tried to use the ath5k module for wireless, and that meant it took control of the card rather than ath_pci (the module I had compiled and installed). I got a Madwifi status 3 message in dmesg when this happened.<br />
<br />
The solution is to blacklist the ath5k module in {{Filename|/etc/rc.conf}}:<br />
<br />
MODULES = ( ... !ath5k ... )<br />
<br />
===Laggy or Unresponsive ACPI Events===<br />
<br />
The latest kernel (2.6.26) introduces new problems with Eee's ACPI events handling. Basically, ACPI events become very laggy and after some time ACPI get disabled after a heavy usage (e.g. changing volume, brightness). This problem affects both stock kernel and toofishes' kernel.<br />
<br />
It appears that the solution is to apply this [http://bugzilla.kernel.org/attachment.cgi?id=16862 patch] ([http://bugzilla.kernel.org/show_bug.cgi?id=10724 original bug report]) to the kernel. <br />
<br />
{{Note | The latest toofishes' kernel, version 2.6.26-1, now includes the patch, but you can still use ighea's one for the extras features listed below.}}<br />
<br />
Until toofishes update his kernel to include the patch, you can use ighea's slightly modified toofishes' kernel that included the above patch, as well as other modifications:<br />
<br />
*Support for Wine <br />
*uvesafb is built as module <br />
*Use [http://bbs.archlinux.org/viewtopic.php?pid=393860#p393860 new eeepc-laptop driver] (which also handles fan-control) instead of older acus_acpi or asus-laptop -drivers.<br />
<br />
You can get the modified kernel, as well as the associative packages, from [http://koti.kapsi.fi/~ighea/eee/kernel-eee/ here].<br />
<br />
After you have downloaded the packages, Install them using this command:<br />
# pacman -U kernel-eee-2.6.26-1-i686.pkg.tar.gz madwifi-eee-svn-3752-1-i686.pkg.tar.gz <br />
<br />
You might also want to use IgnorePkg-line in {{Filename|/etc/pacman.conf}} to hold packages from being accidentally updated.<br />
IgnorePkg = kernel-eee madwifi-eee-svn<br />
<br />
Also don't forget to upgrade ighea's acpi-eee package to version 9.6.<br />
<br />
===Shutdown Problem===<br />
<br />
If your Eee won't shutdown properly (i.e. the power indicator LED is on but the LCD screen is off), then add the following lines to your {{Filename|/etc/rc.local.shutdown}} file.<br />
<pre><br />
#! /bin/bash<br />
#<br />
# /etc/rc.local.shutdown: Local shutdown script.<br />
#<br />
<br />
# Comment or uncomment the following two lines according to your system configuration.<br />
<br />
/etc/rc.d/mpd stop # If you're using mpd, then you have to stop its daemon first.<br />
<br />
/etc/rc.d/alsa stop # If you're using ALSA daemon, then you also have to stop it.<br />
<br />
# The following line is Eee specific fix, you always need to have this line in /etc/rc.local.shutdown.<br />
<br />
echo -n "0000:00:1b.0" > /sys/bus/pci/drivers/HDA\ Intel/unbind<br />
</pre><br />
<br />
The above solution should fix the shutdown problem in most cases. But if for some reason the problem still persists, the module may not be able to be unloaded until after all services have finished. Do the above, then in {{Filename|/etc/rc.shutdown}} move <br />
<br />
if [ -x /etc/rc.local.shutdown ]; then<br />
/etc/rc.local.shutdown<br />
fi<br />
<br />
from where it was to directly above the line <br />
<br />
# Terminate all processes<br />
<br />
this will cause the {{Filename|rc.local.shutdown}} script to run after services have been exited. This fixed all issues for the person editing this note.<br />
<br />
===Unclean unmount during shutdown when having home directory mounted on SD card===<br />
<br />
If you experienced unclean unmount during shutdown when having your home directory on SD card, then add the following 3 lines to "Write to wtmp file before unmounting" section of your {{Filename|/etc/rc.shutdown}} file:<br />
<pre><br />
...<br />
<br />
stat_busy "Unmounting Filesystems"<br />
/bin/umount -a -t noramfs,notmpfs,nosysfs,noproc<br />
<br />
# Add these 3 lines<br />
sync;sync;sync;<br />
eject /dev/sdb # Or whichever is your SD-card's device name. /dev/disk/by-uuid/ followed by the UUID identifier is preferable though.<br />
sleep 3<br />
# End of hack<br />
<br />
stat_done<br />
<br />
...<br />
</pre><br />
<br />
===Booting from card without initrd===<br />
<br />
Let's say you decided to install Arch Linux on a card and compiled your own kernel (or used the kernel26eee kernel) without initrd. Card reader on EeePC is connected as an USB device. Unfortunately, USB storage devices are detected with a delay, so we must tell the kernel to wait until this device becomes available. You do this with "rootwait" option passed to kernel at boot time.<br />
<br />
===Sleeping and waking system on a card===<br />
<br />
If you have Arch Linux on a card, waking up from sleeping state will most likely fail. The only solution is to enable the CONFIG_USB_PERSIST option in kernel. The kernel26eee package should have this option enabled.<br />
<br />
The command to do this is:<br />
echo 1 >/sys/bus/usb/devices/.../power/persist<br />
<br />
Replace the {{Codeline|"..."}} with the device like 1-3 or 1-5 where the first number is the bus and the second is the device <br />
<br />
Each device that is connected to your computer gets an entry in the sysfs "system file system" it is a virtual file system like proc<br />
<br />
More info:<br />
*http://www.mjmwired.net/kernel/Documentation/usb/persist.txt<br />
*http://forum.eeeuser.com/viewtopic.php?id=22712<br />
<br />
===Display doesn't wake up properly===<br />
<br />
If you encounter black display (but apparently working system) after suspend/resume, consider using the "uswsusp" package (available in the official repositories) and correcting suspend2ram script in /etc/acpi, where you use this line to make the machine go to sleep:<br />
<br />
/usr/sbin/s2ram --force --vbe_post --vbe_mode<br />
<br />
==Battery Tests==<br />
<br />
The following are reported battery runtimes:<br />
<br />
{| class="wikitable" style="text-align:left"<br />
|+Battery runtimes<br />
|-<br />
! Task !! Series !! Wireless !! Screen Brightness !! FSB Speed !! Fan Speed !! Runtime !! Comments<br />
|-<br />
! DVD Playback<br />
| 701 || On || Max || 85mhz || 100% || 134min || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! DVD Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! AVI Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading AVI from SSD<br />
|-<br />
! IM and Surf<br />
| 701 || On || ~30% || ??? || low || 173min || Normal web-browsing, Flash should reduce runtime a lot !<br />
|-<br />
! Programming and PDF reading<br />
| 1000HA || Off || ~40% || ??? || low || +6hs || Using Evince and SPE under XFCE with camera and USB disabled<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || +4hs || Stock kernel without laptop-mode<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || 5hs || Stock kernel with laptop-mode and other tweaks<br />
|}<br />
<br />
N.B. - Will add battery runtimes as I am able to test them, please contribute.<br />
<br />
-- Grecko.1<br />
<br />
Still tweaking, but disabling everything from BIOS got me about 6 hours and a half. With eee-kernel, I *could* get a little more.<br />
<br />
-- ekuber</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=Talk:Installing_Arch_Linux_on_the_Asus_EEE_PC&diff=86172Talk:Installing Arch Linux on the Asus EEE PC2009-12-03T12:44:00Z<p>Zodmaner: moved Talk:Installing Arch Linux on the Asus EEE PC to Talk:Asus Eee PC 701:&#32;To better reflect the fact that most of the information on this page is about Eee PC model 701.</p>
<hr />
<div>#REDIRECT [[Talk:Asus Eee PC 701]]</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=Talk:ASUS_Eee_PC_701&diff=86171Talk:ASUS Eee PC 7012009-12-03T12:44:00Z<p>Zodmaner: moved Talk:Installing Arch Linux on the Asus EEE PC to Talk:Asus Eee PC 701:&#32;To better reflect the fact that most of the information on this page is about Eee PC model 701.</p>
<hr />
<div>=Please Finish this article=<br />
The EEE has been out for quite some time now. Please finalize this entry and get it up to date. It remains too long and somewhat convoluted. Thanks for your efforts. [[User:Misfit138|Misfit138]] 17:10, 11 September 2008 (EDT)<br />
<br />
== Changes to the article ==<br />
<br />
I have made quite a radical changes to the article. Please provided your feedback and comment. Also, please correct any mistakes, weather it is technical or grammatical, that you have found on the article.<br />
<br />
The article need a lot of input from people who use filoktetes kernel26eee. So if you use filoktetes kernel, please contribute.<br />
<br />
I would like to thanks all people who have contributed on this article, to whom without which I wouldn't have gotten this far. Thanks guys! You guys rock! :)<br />
<br />
<br />
<br />
Isn't the filoktetes kernel26eee removed from all repos? I think the article needs some heavy editing in the kernel / kernel modules installation part.<br />
[[User:Ighea|Ighea]] 14:58, 21 March 2008 (EDT)<br />
<br />
==Journaling FS and Temp FS for logs==<br />
It should be noted that the Eee 901 uses ext3 by default for the /home partition. A lot of the "don't use a journaling FS" FUD relates to the early days of solid state devices before hardware level wear-leveling was introduced. [http://wiki.eeeuser.com/ssd_write_limit this eeeuser.com article] looks into the matter in more detail.<br />
<br />
Also see this article: http://www.storagesearch.com/ssdmyths-endurance.html<br />
<br />
Perhaps there should at least be a footnote to the warning not to use a journaling FS and to create the logs partition as a tempfs, with pointers to these articles and a brief mention that SSD flash cards have improved.<br />
<br />
== madwifi-newhal-svn ==<br />
<br />
WiFi works very well with http://aur.archlinux.org/packages.php?ID=17392 No need to patch anymore!<br />
<br />
== Info about SSD ==<br />
<br />
I have added some info regarding SSD and avoiding pitfalls. I know this document is for the standard eee pc, however as all other eee users also must follow this guide, I thought it would be nice to remark the difference of SSD and standard HD.<br />
<br />
=== More info about SSD, please! ===<br />
<br />
How do I as a user see what is SSD and what isn't?<br />
<br />
AFAIU I ''need'' a swap partition in order to have hibernation support. What are my options for this?<br />
<br />
== Keyboard problem ==<br />
<br />
I have an asus eee 701, and I've used this wiki article many times in the past to set up my laptop using the stock kernel, always with good results. <br />
<br />
However this last week I reformatted and started over from scratch, upgrading everything to the newest version, and for some reason my keyboard isn't working at all in Xorg. I tried a second time and once again the mouse and video worked great, but keyboard wouldn't respond at all.<br />
<br />
Has there been a change to xorg which would make this xorg.conf keyboard configurations no longer work? <br />
<br />
Also, I have to remove the 'RgbPath "/usr/share/X11/rgb"' line from xorg.conf. Is there a missing step to install this?<br />
<br />
UPDATE to the above questions: <br />
<br />
I had to add this to my xorg.conf to get the keyboard working<br />
<br />
Section "ServerFlags"<br />
Option "AutoAddDevices" "False"<br />
EndSection<br />
<br />
As for the RgbPath I just commented that out.<br />
<br />
UPDATE to the answer to the above questions:<br />
<br />
Thanks, that worked great. I added the AutoAddDevices false to the article's xorg.conf. Is there any reason why this shouldn't be in by default?<br />
<br />
== Suspend to RAM ==<br />
<br />
There's no mention of suspending in this article. Do I need to do something special to get it working with the hotkey? /etc/acpi/eee.conf says that it will run /etc/acpi/suspend2ram.sh when the lid is closed, but it doesn't. The script itself works. The hotkey doesn't, but then again none of the other hotkeys work. The eee daemon is running. Maybe I'm overlooking something. [[User:AntiNeo|AntiNeo]] 11:18, 2 January 2009 (EST)<br />
<br />
== Generic ACPI script package ==<br />
I created a package to unify ACPI events handling in all models. It is inspired from all other different packages. Its name is [http://aur.archlinux.org/packages.php?ID=23318 acpi-eeepc-generic] and you can find it on [http://aur.archlinux.org/packages.php?ID=23318 AUR].<br />
<br />
Actually it should work on these models: 700, 701, 900, 900A, 901, 904HD, S101, 1000, 1000H and 1000HD. Can somebody with one of these test it on their machine? I only own a 1000 but it works flawlessly here. Please test and report here, directly to me, on the AUR page or on the [[Asus_Eee_PC_1000|1000 wiki entry]]. Thank you! :)<br />
--[[User:big_gie|big_gie]] 12:30, 21 January 2009 (EDT)<br />
<br />
== Wifi configuration ==<br />
Please, will you detail the wifi configuration details: in rc.conf, modules loaded, daemons setting, network settings; if you use netcfg, and how you confgured it; settings of wpa_supplicant.conf. The module used: ath_pci, ath5k, madwifi... ?<br />
I had installed archlinux a few days ago, and I cannont have wifi: no IP is given to wlan0, and then, no wifi!</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=Installing_Arch_Linux_on_the_Asus_EEE_PC&diff=86170Installing Arch Linux on the Asus EEE PC2009-12-03T12:44:00Z<p>Zodmaner: moved Installing Arch Linux on the Asus EEE PC to Asus Eee PC 701:&#32;To better reflect the fact that most of the information on this page is about Eee PC model 701.</p>
<hr />
<div>#REDIRECT [[Asus Eee PC 701]]</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=ASUS_Eee_PC_701&diff=86169ASUS Eee PC 7012009-12-03T12:44:00Z<p>Zodmaner: moved Installing Arch Linux on the Asus EEE PC to Asus Eee PC 701:&#32;To better reflect the fact that most of the information on this page is about Eee PC model 701.</p>
<hr />
<div>{{stub}}<br />
[[Category:Getting and installing Arch (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|Русский|Инсталляция Arch Linux на Asus EEE PC}}<br />
{{i18n_links_end}}<br />
<br />
Most of this information is from the [http://bbs.archlinux.org/viewtopic.php?pid=297632 Arch Forum]. You can also find a lot of helpful information from the [http://forum.eeeuser.com/ EEEUser Forum]. <br />
<br />
==Before You Begin==<br />
<br />
===Avoiding Pitfalls===<br />
<br />
The install is pretty normal, except that you'll need to [http://forum.eeeuser.com/viewtopic.php?id=890 avoid the pitfalls] of our alternative Linux install:<br />
<br />
# Never choose to use a journaling file system on the SSD partitions<br />
# Never use a swap partition on the SSD<br />
# Edit your new installation fstab to mount the SSD partitions "noatime"<br />
# Never log messages or error log to the SSD<br />
<br />
The rules ensure that we won't reach the maximum limit of writes on our SSD faster than we should, although this is being contested (see [http://wiki.eeeuser.com/ssd_write_limit this link] and [http://www.storagesearch.com/ssdmyths-endurance.html this other link]).<br />
<br />
Some other minor modifications can be made to decrease number of non-mandatory writes by applications: deactivate {{Filename|~/.viminfo}} in vi, deactivate less history file ({{Filename|~/.lesshst}}), and so on.<br />
<br />
===Choosing Your Installation Media===<br />
<br />
The Eee PC does not have an optical drive installed on the machine. This means you will need to install Arch Linux through one of the alternative methods:<br />
<br />
# [[Beginners_Guide#USB_stick|USB stick]] '''(Recommended)'''<br />
# External USB CD-ROM drive<br />
# [[PXE|Network (PXE)]]<br />
<br />
==Installing Arch Linux==<br />
<br />
With the release of the 2009.08 installation media, installing Arch Linux on Asus Eee PC model 701 is pretty easy and straightforward since the stock kernel on Arch installation media support all of the 701 hardwares out of the box. <br />
<br />
Therefore, aside from the recommended partition scheme described below, there shouldn't be any other differences between installing Arch Linux on the 701 and any other computer. You should be able to successfully install Arch on the 701 by following instructions on [[Beginners_Guide|Beginners' Guide]] without any problem.<br />
<br />
===Prepare Hard Drive===<br />
<br />
<br />
The most important different between the 701 and other machines is that the 701 use SSD drive instead of normal hard drive. This section advise on how to set up a partition scheme that is best suited to the 701. <br />
<br />
The default Eee PC drive is split up into four partitions (here is [http://forum.eeeuser.com/viewtopic.php?id=1805 some information] about the partitioning): <br />
<br />
* It is easiest to wipe the existing partitions and use one or two partitions for your install. One partition would be just '/', and two partitions would be '/boot' and '/'.<br />
* Choose "NONE" for swap in case your eee has a SSD (see #2 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]])<br />
* Select "ext2" as your filesystem in case your eee has a SSD (see #1 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]]). If your model has a standard HD choose "ext3".<br />
<br />
==Asus Eee PC model 701 repository from toofishes==<br />
<br />
{{ Note | You might want to do this after you have successfully installed Arch Linux on the 701.}}<br />
<br />
Toofishes created a repository for the 701. The repository contained customized kernel built specifically for the 701 and some additional packages. <br />
<br />
While the stock Arch kernel works very well with the 701, toofishes kernel have the following advantages:<br />
<br />
* Faster boot time &ndash; because most of the modules have been compile into the kernel, no time is wasted waiting for the modules to load<br />
* No need to generate initial ramdisk every time a kernel is upgrade <br />
* Small size (around 4MB)<br />
<br />
To use the repository, add:<br />
[eee]<br />
Server = http://code.toofishes.net/packages/eee<br />
to your {{Filename|/etc/pacman.conf}} and then issue:<br />
pacman -Syu<br />
<br />
===Package List===<br />
Currently, toofishes' repository contains the following packages:<br />
<br />
*'''kernel-eee''' &ndash; customized kernel for Asus Eee PC model 701<br />
*'''luvcview''' &ndash; webcam program for testing webcam driver<br />
<br />
===Kernel-eee Installation Instruction===<br />
Simply use pacman to install the package you need. Install the packages with this command:<br />
# pacman -Sy kernel-eee<br />
<br />
then, add the following to {{Filename|/boot/grub/menu.lst}}; note that no initrd is needed:<br />
# (2) Arch Linux<br />
title Arch Linux Eee kernel<br />
root (hd0,0)<br />
kernel /boot/vmlinuzeee root=/dev/sda1 ro<br />
<br />
Restart and select Arch Linux Eee kernel from the grub boot menu.<br />
<br />
==Getting Everything Working==<br />
<br />
The following is the guide on how to get the rest of your system working.<br />
<br />
===X===<br />
<br />
Install X by follow instructions on the [[Beginners_Guide#Step_2:_Install_X|Beginners' Guide]], then install the Intel graphics driver:<br />
# pacman -Sy xf86-video-intel<br />
<br />
You may also wish to install the Synaptics drivers for the touchpad (not needed for Eee PC 900):<br />
# pacman -Sy xf86-input-synaptics<br />
<br />
With the latest version of X from extra repository, X should work on the 701 '''without any need for xorg.conf'''. However, if for some reason you wish to use an xorg.conf file, you can use an old [[Example_Xorg_configuration_file_for_Asus_Eee_PC_701|example Xorg configuration file for Asus Eee PC model 701]] as a template or automatically generate a new one by running the following command:<br />
<br />
# Xorg -configure<br />
<br />
Consult [[Xorg_input_hotplugging|Xorg Input Hotplugging]] for more information on how to config input devices using HAL.<br />
<br />
The synaptics stuff can be removed if you have a EEE PC 900. The {{Codeline|Option "AutoAddDevices"}} line is important if you need a non-default XkbLayout, because if you don't have it, xorg will find 3 keyboards (at least with the 900 model).<br />
The Modeline has obviously to be removed or modified if you dont have a model with this resolution.<br />
<br />
===Sound, Webcam & Microphone===<br />
<br />
====Sound====<br />
<br />
For most people, sound should work right out of the box with no troubles (after you have followed the [[Beginners_Guide#Step_1:_Configure_sound_with_alsamixer|guide]], of course). However, others might need to add the following line to {{Filename|/etc/modprobe.conf}}<br />
options snd-hda-intel model=3stack-dig<br />
or the following one for the Eee PC 900 model<br />
options snd-hda-intel model=auto<br />
<br />
If your internal microphone doesn't work, you probably have to turn the capture feature on. Simply fire up alsamixer, find your Capture control, and press spacebar to enable it.<br />
<br />
====Webcam====<br />
<br />
If for some reason webcam have been disable on your 701, you can enable it by issuing the following command as root: <br />
<br />
echo 1 > /sys/devices/platform/eeepc/camera<br />
<br />
If you want the webcam application that the default Xandos installation uses, install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14469 ucview from the AUR].<br />
<br />
The webcam also works fine with the latest version of Skype.<br />
<br />
If you already have mplayer installed you can launch:<br />
$ mplayer -fps 15 tv://<br />
<br />
I have yet to get it working with vlc or any other software such as xawtv. If you know how, please update this.<br />
<br />
*'''NOTE:''' For anyone who has accidentally disabled Auto Exposure for their webcam in luvcview (making the image dark), and can't enable it again, do the following:<br />
<br />
Install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14468 libwebcam from the AUR].<br />
<br />
Issue the following command:<br />
$ uvcdynctrl --set "Exposure, Auto" 4<br />
<br />
{{Note | Be sure the "OS Installation" option is set to "finished" in the BIOS' "Advanced" tab or your camera may not work in some applications (like Skype).}}<br />
<br />
{{Note | Make sure you are a member of the video group edit /etc/group and add your username to video}}<br />
<br />
====Microphone====<br />
<br />
Solution for problems with the internal microphone.<br />
<br />
1. First of all set in alsamixer "Input Source" to "i-Mic"<br />
<br />
2. Increase "Capture" and "i-Mic Boost" to your needs<br />
<br />
3. Edit {{Filename|/etc/asound.state}} the following, change the 2 "false" to "true" like showing:<br />
....snap.....<br />
control.11 {<br />
comment.access 'read write'<br />
comment.type BOOLEAN<br />
comment.count 2<br />
iface MIXER<br />
name 'Capture Switch'<br />
value.0 true<br />
value.1 true<br />
}<br />
....snap....<br />
<br />
4. After editing run following as root<br />
# alsactl restore<br />
<br />
5. Now your internal microphone should be working.<br />
<br />
===Getting Hot Keys, Graphic Indicators and Shutdown with the Power Button Working===<br />
<br />
If you want to have working hot keys (wifi, brightness, volume etc), an OSD, and be able to assign actions to things like the powerbutton and closing the lid, then you should install '''ighea's acpi-eee''' package.<br />
<br />
==== ighea's acpi-eee ====<br />
<br />
Get the latest package from [http://kapsi.fi/ighea/eee/acpi-eee/ here].<br />
<br />
The package can be easily installed with:<br />
# pacman -U acpi-eee-10.0-1-i686.pkg.tar.gz<br />
<br />
See messages during installation for more details and don't forget to edit {{Filename|/etc/acpi/eee.conf}} to suit your tastes.<br />
<br />
*For those who use the wireless on/off acpi command; the {{Codeline|NETWORK_UP_COMMAND&#61;""}} setting in {{Filename|/etc/acpi/eee.conf}}, when applicable, should at least release the network. For example, using netcfg2, {{Codeline|NETWORK_UP_COMMAND&#61;"netcfg2 -a"}} will release the connections from before disabling wireless, allowing new ones to be made without netcfg thinking that it's already connected. It is also possible to reconnect to your previous network, however, the network tool you use needs to have a somewhat lengthy timeout as it takes 15-20 seconds for your wireless device to reappear. <br />
<br />
{{Note | Make sure '''asusosd''' is enabled on startup if you want to have the Graphic Indicators from Xandros. To run asusosd simply type {{Codeline|asusosd &}} at a command prompt.}}<br />
<br />
==Additional Tips & Tweaks==<br />
<br />
===Tweaking kernel-eee===<br />
<br />
Toofishes' kernel, also known as kernel-eee, can be recompiled to include custom features. You can download toofishes' kernel PKGBUILD and all the nesseary files from his gitweb by installing the git package and using the following command:<br />
<br />
$ git clone git://code.toofishes.net/dan/eee.git<br />
<br />
or if you are behind a proxy and can't use the git protocol:<br />
<br />
$ git clone http://code.toofishes.net/git/dan/eee.git<br />
<br />
There are two ways to tweak the kernel. The first is simply to edit the {{Filename|kernelconfig}} file with your favorite editor and the second is to insert a {{Codeline|make menuconfig}} line into the PKGBUILD before the kernel's compilation.<br />
<br />
===Using Wine with toofishes' kernel===<br />
<br />
Normally, Wine won't work with toofishes' kernel because it is compiled with VMSPLIT_2G_OPT option. In order to use Wine with toofishes' kernel, you have to recompile his kernel with VMSPLIT_3G option.<br />
<br />
Download the kernel PKGBUILD and all the necessary files from toofishes' gitweb using the above instructions, then change the following lines in the {{Filename|kernelconfig}} file from this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 # CONFIG_VMSPLIT_3G is not set<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 CONFIG_VMSPLIT_2G_OPT=y<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
to this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 CONFIG_VMSPLIT_3G=y<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 # CONFIG_VMSPLIT_2G_OPT is not set<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
<br />
Compile and install the kernel and Wine should now work.<br />
<br />
===Power down with the power button===<br />
<br />
{{Note | If you are using ighea's acpi-eee or dkite's acpid_eee package then you should already be able to shutdown by pressing the power button and should not need to do this.}}<br />
<br />
The two alternatives here are described in [[Allow users to shutdown]].<br />
<br />
If you don't already or don't plan to use sudo, it may be simpler to use the setuid /sbin/halt method, otherwise using sudo is preferred.<br />
<br />
Below are all the steps required for the sudo method. If you want to use the setuid method, read the article linked above and perform the 'power' file step here, while omitting the 'sudo' in it.<br />
<br />
# pacman -S sudo<br />
<br />
As root, do the following:<br />
# visudo<br />
<br />
Add the following line to the file:<br />
USER HOST = NOPASSWD: /sbin/poweroff<br />
<br />
Where {{Codeline|USER}} is the user you want to be able to power down with and {{Codeline|HOST}} is your hostname (from {{Filename|/etc/rc.conf}}).<br />
<br />
Now, create a file called {{Filename|/etc/acpi/events/power}}, containing:<br />
# /etc/acpi/events/power<br />
# This is called when the user presses the power button<br />
<br />
event=button/power (PWR.||PBTN)<br />
action=sudo /sbin/poweroff<br />
<br />
Make sure that you execute:<br />
# /etc/rc.d/acpid start<br />
<br />
And/or add acpid to the daemons list in {{Filename|/etc/rc.conf}}:<br />
DAEMONS=(hal, acpid ...)<br />
<br />
===Use cpufreq for power saving===<br />
<br />
{{Note | toofishes dropped CPU scaling from his latest kernel builds, due to the fact, confirmed by other users, that there were no effective power savings with p4-clockmod's module, and it introduced "unacceptable latency", even with relatively low percentage up thresholds.}}<br />
<br />
Install cpufrequtitls:<br />
# pacman -S cpufrequtils<br />
<br />
For scaling down the processor you have to load the p4_clockmod module. Insert it into your {{Filename|/etc/rc.conf}} MODULES array for loading it at startup. <br />
MODULES=(... p4_clockmod ...)<br />
<br />
Add 'cpufreq' to the DAEMONS array in {{Filename|/etc/rc.conf}} to have it start on startup.<br />
DAEMONS=(... cpufreq ...)<br />
<br />
Add the following into {{Filename|/etc/conf.d/cpufreq}}:<br />
governor="ondemand"<br />
min_freq="113MHz"<br />
max_freq="900MHz"<br />
<br />
With enabled cpufreq it scales the processor between 113MHz up to max. frequency. That should save a lot on battery power. The stated 900MHz will be never reached by the eeePC, the p4_clockmod reports a wrong frequency here. But scaling works, you can feel it in the performance of eeePC that he slow down the processor.<br />
<br />
{{Note | The merits of p4-clockmod are debatable. Particularly on the EEEPC 701, battery time isn't extended due to its usage, and some users have even reported less battery duration. More hints to the reasons why can be read in [http://www.codemonkey.org.uk/2009/01/18/forthcoming-p4clockmod/ this] fine blog entry.}}<br />
<br />
===More responsive system with ondemand governor===<br />
The default up_threshold (where it will bump to a faster speed) for the CPU governor is 80, which means it will increase the CPU speed when utilization is above 80%. This can make X applications have a bit of lag. <br />
<br />
Try changing this value:<br />
$ sudo bash -c "echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold"<br />
<br />
With 40 it still leaves the majority of CPU cycles at the lowest available clock speed but increases responsiveness. You can add this line to one of your startup scripts (such as {{Filename|/etc/rc.local}}) if you wish to keep it, for example:<br />
<br />
#!/bin/bash<br />
#<br />
# /etc/rc.local: Local multi-user startup script.<br />
#<br />
<br />
echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold<br />
<br />
Also, following line is also reported to help makes system more responsive. You can use it by adding it to your {{Filename|/etc/rc.local}}:<br />
echo 2000000 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate<br />
<br />
===Speeding up udev for faster boot===<br />
*[[Speedup udev]]<br />
*http://dev.laptop.org/ticket/4349<br />
*[http://www.eeesale.com/Asus-Eee-PC-overclock-Benchmarks.htm Speed up the Eee PC]<br />
<br />
You can also disable the autoload by editing your {{Filename|[[rc.conf]]}}:<br />
...<br />
MOD_AUTOLOAD="no"<br />
...<br />
MODULES=(pciehp ath5k)<br />
<br />
===Update your BIOS without Xandros===<br />
{{Warning | You can break your system, do not update if you are not sure of what you are doing!}}<br />
<br />
First, you need to download the ''.rom'' file.<br />
*[http://update.eeepc.asus.com/bios/ Asus' official BIOS]<br />
*[http://forum.eeeuser.com/viewtopic.php?id=3485 EeeUser's topic]<br />
<br />
You also need an USB stick formatted in FAT32. To format the USBStick, use the cfdisk tool:<br />
# cfdisk /dev/sdc # could be something else than "c"<br />
<br />
Choose [delete], [type]: "fat32" (code 0B), [write] and then exit with [quit].<br />
<br />
NOTE to EEE PC 900 owners and possibly others: Using this method will require a flash drive formatted with a '''FAT16''' file-system. If the BIOS update process hangs up at "Reading file 900.ROM" for more than a few minutes then it should be safe to power down your EEE PC and reformat your flashdrive's file-system to the correct one. You can force FAT16 creation with the following command:<br />
# mkdosfs -F 16 /dev/device-path<br />
<br />
Now just copy the ''.rom'' on the USBStick :<br />
$ cp /somewhere/blabla/.../thecurrentnameofthefile.ROM /path/to/mounted/usb_stick/701.rom<br />
The name of the copy '''must''' be xxxx.rom where xxxx is the model of your eee PC. (i.e. 900 users it's 900.rom)<br />
<br />
Next step, reboot the eeepc with the USB stick pluged-in, and press Alt+F2. It will launch the built-in tool. Everything should be Ok, you can make a coffee during the update. When it asks you to push the power-button it has finished.<br />
<br />
At the next boot, you'll be invited to configure the BIOS. Check if the everything is enabled (my webcam and wireless were disabled after the update) and if it displays the good version in the main screen. It's done!<br />
<br />
=== More usable font sizes ===<br />
<br />
====The_glu's method====<br />
<br />
I found an easy solution that works on a 901:<br />
<br />
Edit {{Filename|/etc/X11/xinit/xserverrc}} and add "-dpi 134":<br />
exec /usr/bin/X -nolisten tcp -dpi 134<br />
<br />
Restart X and fonts should have the correct size. Notice it's won't works if you have Xft*dpi: in your {{Filename|.XDefaults}}.<br />
<br />
You don't need to edit your config file to set a smaller font size, I you did you should set font-size to 10 or you will have to small fonts...<br />
<br />
==== Old method ====<br />
<br />
On a default installation with Xfce 4 my font sizes were too big, here is what I did to sort them out.<br />
<br />
First, I set the DPI by adding the following to {{Filename|~/.Xdefaults}}:<br />
Xft*dpi: 134<br />
<br />
This then caused the fonts to be even bigger, so I set them all to be font-size 6 by adding the following into {{Filename|~/.gtkrc-2.0}} (note that this will be overwritten if you use any tools to change GTK settings):<br />
style "user-font"<br />
{<br />
font_name="Bitstream Vera Sans 6"<br />
}<br />
widget_class "*" style "user-font"<br />
<br />
To do the same with KDE fonts (without KDE installed) you have to add the following to {{Filename|~/.kde/share/config/kdeglobals}}:<br />
[General]<br />
StandardFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
activeFont=Bitstream Vera Sans,6,-1,5,75,0,0,0,0,0<br />
fixed=Bitstream Vera Sans Mono,6,-1,5,50,0,0,0,0,0<br />
font=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
menuFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
taskbarFont=Bitstream Vera Sans,6,-1,5,50,1,0,0,0,0<br />
toolBarFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
<br />
To make your fonts even prettier enable the [[Fonts#Fonts_with_LCD_filter_enabled|LCD Fonts]].<br />
<br />
==== Alternative Method ====<br />
<br />
For me it worked far better to open the gnome appearance control panel, go to the fonts tab, click defaults, and change the resolution to be 96 dpi. Changing .Xdefaults doesnt work when running gnome, as gnome-settings-daemon overrides it. You can then leave all font sizes at their default, and things should look good. Simply changing the font sizes and leaving the DPI at its technically correct value (~134) gave me weird layout problems in some apps, and oddly large fonts in others.<br />
<br />
==Known problems and their solutions==<br />
<br />
===Wireless doesn't work, even after installing custom Madwifi module===<br />
<br />
I found that Arch tried to use the ath5k module for wireless, and that meant it took control of the card rather than ath_pci (the module I had compiled and installed). I got a Madwifi status 3 message in dmesg when this happened.<br />
<br />
The solution is to blacklist the ath5k module in {{Filename|/etc/rc.conf}}:<br />
<br />
MODULES = ( ... !ath5k ... )<br />
<br />
===Laggy or Unresponsive ACPI Events===<br />
<br />
The latest kernel (2.6.26) introduces new problems with Eee's ACPI events handling. Basically, ACPI events become very laggy and after some time ACPI get disabled after a heavy usage (e.g. changing volume, brightness). This problem affects both stock kernel and toofishes' kernel.<br />
<br />
It appears that the solution is to apply this [http://bugzilla.kernel.org/attachment.cgi?id=16862 patch] ([http://bugzilla.kernel.org/show_bug.cgi?id=10724 original bug report]) to the kernel. <br />
<br />
{{Note | The latest toofishes' kernel, version 2.6.26-1, now includes the patch, but you can still use ighea's one for the extras features listed below.}}<br />
<br />
Until toofishes update his kernel to include the patch, you can use ighea's slightly modified toofishes' kernel that included the above patch, as well as other modifications:<br />
<br />
*Support for Wine <br />
*uvesafb is built as module <br />
*Use [http://bbs.archlinux.org/viewtopic.php?pid=393860#p393860 new eeepc-laptop driver] (which also handles fan-control) instead of older acus_acpi or asus-laptop -drivers.<br />
<br />
You can get the modified kernel, as well as the associative packages, from [http://koti.kapsi.fi/~ighea/eee/kernel-eee/ here].<br />
<br />
After you have downloaded the packages, Install them using this command:<br />
# pacman -U kernel-eee-2.6.26-1-i686.pkg.tar.gz madwifi-eee-svn-3752-1-i686.pkg.tar.gz <br />
<br />
You might also want to use IgnorePkg-line in {{Filename|/etc/pacman.conf}} to hold packages from being accidentally updated.<br />
IgnorePkg = kernel-eee madwifi-eee-svn<br />
<br />
Also don't forget to upgrade ighea's acpi-eee package to version 9.6.<br />
<br />
===Shutdown Problem===<br />
<br />
If your Eee won't shutdown properly (i.e. the power indicator LED is on but the LCD screen is off), then add the following lines to your {{Filename|/etc/rc.local.shutdown}} file.<br />
<pre><br />
#! /bin/bash<br />
#<br />
# /etc/rc.local.shutdown: Local shutdown script.<br />
#<br />
<br />
# Comment or uncomment the following two lines according to your system configuration.<br />
<br />
/etc/rc.d/mpd stop # If you're using mpd, then you have to stop its daemon first.<br />
<br />
/etc/rc.d/alsa stop # If you're using ALSA daemon, then you also have to stop it.<br />
<br />
# The following line is Eee specific fix, you always need to have this line in /etc/rc.local.shutdown.<br />
<br />
echo -n "0000:00:1b.0" > /sys/bus/pci/drivers/HDA\ Intel/unbind<br />
</pre><br />
<br />
The above solution should fix the shutdown problem in most cases. But if for some reason the problem still persists, the module may not be able to be unloaded until after all services have finished. Do the above, then in {{Filename|/etc/rc.shutdown}} move <br />
<br />
if [ -x /etc/rc.local.shutdown ]; then<br />
/etc/rc.local.shutdown<br />
fi<br />
<br />
from where it was to directly above the line <br />
<br />
# Terminate all processes<br />
<br />
this will cause the {{Filename|rc.local.shutdown}} script to run after services have been exited. This fixed all issues for the person editing this note.<br />
<br />
===Unclean unmount during shutdown when having home directory mounted on SD card===<br />
<br />
If you experienced unclean unmount during shutdown when having your home directory on SD card, then add the following 3 lines to "Write to wtmp file before unmounting" section of your {{Filename|/etc/rc.shutdown}} file:<br />
<pre><br />
...<br />
<br />
stat_busy "Unmounting Filesystems"<br />
/bin/umount -a -t noramfs,notmpfs,nosysfs,noproc<br />
<br />
# Add these 3 lines<br />
sync;sync;sync;<br />
eject /dev/sdb # Or whichever is your SD-card's device name. /dev/disk/by-uuid/ followed by the UUID identifier is preferable though.<br />
sleep 3<br />
# End of hack<br />
<br />
stat_done<br />
<br />
...<br />
</pre><br />
<br />
===Booting from card without initrd===<br />
<br />
Let's say you decided to install Arch Linux on a card and compiled your own kernel (or used the kernel26eee kernel) without initrd. Card reader on EeePC is connected as an USB device. Unfortunately, USB storage devices are detected with a delay, so we must tell the kernel to wait until this device becomes available. You do this with "rootwait" option passed to kernel at boot time.<br />
<br />
===Sleeping and waking system on a card===<br />
<br />
If you have Arch Linux on a card, waking up from sleeping state will most likely fail. The only solution is to enable the CONFIG_USB_PERSIST option in kernel. The kernel26eee package should have this option enabled.<br />
<br />
The command to do this is:<br />
echo 1 >/sys/bus/usb/devices/.../power/persist<br />
<br />
Replace the {{Codeline|"..."}} with the device like 1-3 or 1-5 where the first number is the bus and the second is the device <br />
<br />
Each device that is connected to your computer gets an entry in the sysfs "system file system" it is a virtual file system like proc<br />
<br />
More info:<br />
*http://www.mjmwired.net/kernel/Documentation/usb/persist.txt<br />
*http://forum.eeeuser.com/viewtopic.php?id=22712<br />
<br />
===Display doesn't wake up properly===<br />
<br />
If you encounter black display (but apparently working system) after suspend/resume, consider using the "uswsusp" package (available in the official repositories) and correcting suspend2ram script in /etc/acpi, where you use this line to make the machine go to sleep:<br />
<br />
/usr/sbin/s2ram --force --vbe_post --vbe_mode<br />
<br />
==Battery Tests==<br />
<br />
The following are reported battery runtimes:<br />
<br />
{| class="wikitable" style="text-align:left"<br />
|+Battery runtimes<br />
|-<br />
! Task !! Series !! Wireless !! Screen Brightness !! FSB Speed !! Fan Speed !! Runtime !! Comments<br />
|-<br />
! DVD Playback<br />
| 701 || On || Max || 85mhz || 100% || 134min || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! DVD Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! AVI Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading AVI from SSD<br />
|-<br />
! IM and Surf<br />
| 701 || On || ~30% || ??? || low || 173min || Normal web-browsing, Flash should reduce runtime a lot !<br />
|-<br />
! Programming and PDF reading<br />
| 1000HA || Off || ~40% || ??? || low || +6hs || Using Evince and SPE under XFCE with camera and USB disabled<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || +4hs || Stock kernel without laptop-mode<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || 5hs || Stock kernel with laptop-mode and other tweaks<br />
|}<br />
<br />
N.B. - Will add battery runtimes as I am able to test them, please contribute.<br />
<br />
-- Grecko.1<br />
<br />
Still tweaking, but disabling everything from BIOS got me about 6 hours and a half. With eee-kernel, I *could* get a little more.<br />
<br />
-- ekuber</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=ASUS_Eee_PC_701&diff=86168ASUS Eee PC 7012009-12-03T12:41:37Z<p>Zodmaner: /* Asus Eee PC model 701 repository from toofishes */</p>
<hr />
<div>{{stub}}<br />
[[Category:Getting and installing Arch (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|Русский|Инсталляция Arch Linux на Asus EEE PC}}<br />
{{i18n_links_end}}<br />
<br />
Most of this information is from the [http://bbs.archlinux.org/viewtopic.php?pid=297632 Arch Forum]. You can also find a lot of helpful information from the [http://forum.eeeuser.com/ EEEUser Forum]. <br />
<br />
==Before You Begin==<br />
<br />
===Avoiding Pitfalls===<br />
<br />
The install is pretty normal, except that you'll need to [http://forum.eeeuser.com/viewtopic.php?id=890 avoid the pitfalls] of our alternative Linux install:<br />
<br />
# Never choose to use a journaling file system on the SSD partitions<br />
# Never use a swap partition on the SSD<br />
# Edit your new installation fstab to mount the SSD partitions "noatime"<br />
# Never log messages or error log to the SSD<br />
<br />
The rules ensure that we won't reach the maximum limit of writes on our SSD faster than we should, although this is being contested (see [http://wiki.eeeuser.com/ssd_write_limit this link] and [http://www.storagesearch.com/ssdmyths-endurance.html this other link]).<br />
<br />
Some other minor modifications can be made to decrease number of non-mandatory writes by applications: deactivate {{Filename|~/.viminfo}} in vi, deactivate less history file ({{Filename|~/.lesshst}}), and so on.<br />
<br />
===Choosing Your Installation Media===<br />
<br />
The Eee PC does not have an optical drive installed on the machine. This means you will need to install Arch Linux through one of the alternative methods:<br />
<br />
# [[Beginners_Guide#USB_stick|USB stick]] '''(Recommended)'''<br />
# External USB CD-ROM drive<br />
# [[PXE|Network (PXE)]]<br />
<br />
==Installing Arch Linux==<br />
<br />
With the release of the 2009.08 installation media, installing Arch Linux on Asus Eee PC model 701 is pretty easy and straightforward since the stock kernel on Arch installation media support all of the 701 hardwares out of the box. <br />
<br />
Therefore, aside from the recommended partition scheme described below, there shouldn't be any other differences between installing Arch Linux on the 701 and any other computer. You should be able to successfully install Arch on the 701 by following instructions on [[Beginners_Guide|Beginners' Guide]] without any problem.<br />
<br />
===Prepare Hard Drive===<br />
<br />
<br />
The most important different between the 701 and other machines is that the 701 use SSD drive instead of normal hard drive. This section advise on how to set up a partition scheme that is best suited to the 701. <br />
<br />
The default Eee PC drive is split up into four partitions (here is [http://forum.eeeuser.com/viewtopic.php?id=1805 some information] about the partitioning): <br />
<br />
* It is easiest to wipe the existing partitions and use one or two partitions for your install. One partition would be just '/', and two partitions would be '/boot' and '/'.<br />
* Choose "NONE" for swap in case your eee has a SSD (see #2 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]])<br />
* Select "ext2" as your filesystem in case your eee has a SSD (see #1 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]]). If your model has a standard HD choose "ext3".<br />
<br />
==Asus Eee PC model 701 repository from toofishes==<br />
<br />
{{ Note | You might want to do this after you have successfully installed Arch Linux on the 701.}}<br />
<br />
Toofishes created a repository for the 701. The repository contained customized kernel built specifically for the 701 and some additional packages. <br />
<br />
While the stock Arch kernel works very well with the 701, toofishes kernel have the following advantages:<br />
<br />
* Faster boot time &ndash; because most of the modules have been compile into the kernel, no time is wasted waiting for the modules to load<br />
* No need to generate initial ramdisk every time a kernel is upgrade <br />
* Small size (around 4MB)<br />
<br />
To use the repository, add:<br />
[eee]<br />
Server = http://code.toofishes.net/packages/eee<br />
to your {{Filename|/etc/pacman.conf}} and then issue:<br />
pacman -Syu<br />
<br />
===Package List===<br />
Currently, toofishes' repository contains the following packages:<br />
<br />
*'''kernel-eee''' &ndash; customized kernel for Asus Eee PC model 701<br />
*'''luvcview''' &ndash; webcam program for testing webcam driver<br />
<br />
===Kernel-eee Installation Instruction===<br />
Simply use pacman to install the package you need. Install the packages with this command:<br />
# pacman -Sy kernel-eee<br />
<br />
then, add the following to {{Filename|/boot/grub/menu.lst}}; note that no initrd is needed:<br />
# (2) Arch Linux<br />
title Arch Linux Eee kernel<br />
root (hd0,0)<br />
kernel /boot/vmlinuzeee root=/dev/sda1 ro<br />
<br />
Restart and select Arch Linux Eee kernel from the grub boot menu.<br />
<br />
==Getting Everything Working==<br />
<br />
The following is the guide on how to get the rest of your system working.<br />
<br />
===X===<br />
<br />
Install X by follow instructions on the [[Beginners_Guide#Step_2:_Install_X|Beginners' Guide]], then install the Intel graphics driver:<br />
# pacman -Sy xf86-video-intel<br />
<br />
You may also wish to install the Synaptics drivers for the touchpad (not needed for Eee PC 900):<br />
# pacman -Sy xf86-input-synaptics<br />
<br />
With the latest version of X from extra repository, X should work on the 701 '''without any need for xorg.conf'''. However, if for some reason you wish to use an xorg.conf file, you can use an old [[Example_Xorg_configuration_file_for_Asus_Eee_PC_701|example Xorg configuration file for Asus Eee PC model 701]] as a template or automatically generate a new one by running the following command:<br />
<br />
# Xorg -configure<br />
<br />
Consult [[Xorg_input_hotplugging|Xorg Input Hotplugging]] for more information on how to config input devices using HAL.<br />
<br />
The synaptics stuff can be removed if you have a EEE PC 900. The {{Codeline|Option "AutoAddDevices"}} line is important if you need a non-default XkbLayout, because if you don't have it, xorg will find 3 keyboards (at least with the 900 model).<br />
The Modeline has obviously to be removed or modified if you dont have a model with this resolution.<br />
<br />
===Sound, Webcam & Microphone===<br />
<br />
====Sound====<br />
<br />
For most people, sound should work right out of the box with no troubles (after you have followed the [[Beginners_Guide#Step_1:_Configure_sound_with_alsamixer|guide]], of course). However, others might need to add the following line to {{Filename|/etc/modprobe.conf}}<br />
options snd-hda-intel model=3stack-dig<br />
or the following one for the Eee PC 900 model<br />
options snd-hda-intel model=auto<br />
<br />
If your internal microphone doesn't work, you probably have to turn the capture feature on. Simply fire up alsamixer, find your Capture control, and press spacebar to enable it.<br />
<br />
====Webcam====<br />
<br />
If for some reason webcam have been disable on your 701, you can enable it by issuing the following command as root: <br />
<br />
echo 1 > /sys/devices/platform/eeepc/camera<br />
<br />
If you want the webcam application that the default Xandos installation uses, install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14469 ucview from the AUR].<br />
<br />
The webcam also works fine with the latest version of Skype.<br />
<br />
If you already have mplayer installed you can launch:<br />
$ mplayer -fps 15 tv://<br />
<br />
I have yet to get it working with vlc or any other software such as xawtv. If you know how, please update this.<br />
<br />
*'''NOTE:''' For anyone who has accidentally disabled Auto Exposure for their webcam in luvcview (making the image dark), and can't enable it again, do the following:<br />
<br />
Install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14468 libwebcam from the AUR].<br />
<br />
Issue the following command:<br />
$ uvcdynctrl --set "Exposure, Auto" 4<br />
<br />
{{Note | Be sure the "OS Installation" option is set to "finished" in the BIOS' "Advanced" tab or your camera may not work in some applications (like Skype).}}<br />
<br />
{{Note | Make sure you are a member of the video group edit /etc/group and add your username to video}}<br />
<br />
====Microphone====<br />
<br />
Solution for problems with the internal microphone.<br />
<br />
1. First of all set in alsamixer "Input Source" to "i-Mic"<br />
<br />
2. Increase "Capture" and "i-Mic Boost" to your needs<br />
<br />
3. Edit {{Filename|/etc/asound.state}} the following, change the 2 "false" to "true" like showing:<br />
....snap.....<br />
control.11 {<br />
comment.access 'read write'<br />
comment.type BOOLEAN<br />
comment.count 2<br />
iface MIXER<br />
name 'Capture Switch'<br />
value.0 true<br />
value.1 true<br />
}<br />
....snap....<br />
<br />
4. After editing run following as root<br />
# alsactl restore<br />
<br />
5. Now your internal microphone should be working.<br />
<br />
===Getting Hot Keys, Graphic Indicators and Shutdown with the Power Button Working===<br />
<br />
If you want to have working hot keys (wifi, brightness, volume etc), an OSD, and be able to assign actions to things like the powerbutton and closing the lid, then you should install '''ighea's acpi-eee''' package.<br />
<br />
==== ighea's acpi-eee ====<br />
<br />
Get the latest package from [http://kapsi.fi/ighea/eee/acpi-eee/ here].<br />
<br />
The package can be easily installed with:<br />
# pacman -U acpi-eee-10.0-1-i686.pkg.tar.gz<br />
<br />
See messages during installation for more details and don't forget to edit {{Filename|/etc/acpi/eee.conf}} to suit your tastes.<br />
<br />
*For those who use the wireless on/off acpi command; the {{Codeline|NETWORK_UP_COMMAND&#61;""}} setting in {{Filename|/etc/acpi/eee.conf}}, when applicable, should at least release the network. For example, using netcfg2, {{Codeline|NETWORK_UP_COMMAND&#61;"netcfg2 -a"}} will release the connections from before disabling wireless, allowing new ones to be made without netcfg thinking that it's already connected. It is also possible to reconnect to your previous network, however, the network tool you use needs to have a somewhat lengthy timeout as it takes 15-20 seconds for your wireless device to reappear. <br />
<br />
{{Note | Make sure '''asusosd''' is enabled on startup if you want to have the Graphic Indicators from Xandros. To run asusosd simply type {{Codeline|asusosd &}} at a command prompt.}}<br />
<br />
==Additional Tips & Tweaks==<br />
<br />
===Tweaking kernel-eee===<br />
<br />
Toofishes' kernel, also known as kernel-eee, can be recompiled to include custom features. You can download toofishes' kernel PKGBUILD and all the nesseary files from his gitweb by installing the git package and using the following command:<br />
<br />
$ git clone git://code.toofishes.net/dan/eee.git<br />
<br />
or if you are behind a proxy and can't use the git protocol:<br />
<br />
$ git clone http://code.toofishes.net/git/dan/eee.git<br />
<br />
There are two ways to tweak the kernel. The first is simply to edit the {{Filename|kernelconfig}} file with your favorite editor and the second is to insert a {{Codeline|make menuconfig}} line into the PKGBUILD before the kernel's compilation.<br />
<br />
===Using Wine with toofishes' kernel===<br />
<br />
Normally, Wine won't work with toofishes' kernel because it is compiled with VMSPLIT_2G_OPT option. In order to use Wine with toofishes' kernel, you have to recompile his kernel with VMSPLIT_3G option.<br />
<br />
Download the kernel PKGBUILD and all the necessary files from toofishes' gitweb using the above instructions, then change the following lines in the {{Filename|kernelconfig}} file from this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 # CONFIG_VMSPLIT_3G is not set<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 CONFIG_VMSPLIT_2G_OPT=y<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
to this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 CONFIG_VMSPLIT_3G=y<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 # CONFIG_VMSPLIT_2G_OPT is not set<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
<br />
Compile and install the kernel and Wine should now work.<br />
<br />
===Power down with the power button===<br />
<br />
{{Note | If you are using ighea's acpi-eee or dkite's acpid_eee package then you should already be able to shutdown by pressing the power button and should not need to do this.}}<br />
<br />
The two alternatives here are described in [[Allow users to shutdown]].<br />
<br />
If you don't already or don't plan to use sudo, it may be simpler to use the setuid /sbin/halt method, otherwise using sudo is preferred.<br />
<br />
Below are all the steps required for the sudo method. If you want to use the setuid method, read the article linked above and perform the 'power' file step here, while omitting the 'sudo' in it.<br />
<br />
# pacman -S sudo<br />
<br />
As root, do the following:<br />
# visudo<br />
<br />
Add the following line to the file:<br />
USER HOST = NOPASSWD: /sbin/poweroff<br />
<br />
Where {{Codeline|USER}} is the user you want to be able to power down with and {{Codeline|HOST}} is your hostname (from {{Filename|/etc/rc.conf}}).<br />
<br />
Now, create a file called {{Filename|/etc/acpi/events/power}}, containing:<br />
# /etc/acpi/events/power<br />
# This is called when the user presses the power button<br />
<br />
event=button/power (PWR.||PBTN)<br />
action=sudo /sbin/poweroff<br />
<br />
Make sure that you execute:<br />
# /etc/rc.d/acpid start<br />
<br />
And/or add acpid to the daemons list in {{Filename|/etc/rc.conf}}:<br />
DAEMONS=(hal, acpid ...)<br />
<br />
===Use cpufreq for power saving===<br />
<br />
{{Note | toofishes dropped CPU scaling from his latest kernel builds, due to the fact, confirmed by other users, that there were no effective power savings with p4-clockmod's module, and it introduced "unacceptable latency", even with relatively low percentage up thresholds.}}<br />
<br />
Install cpufrequtitls:<br />
# pacman -S cpufrequtils<br />
<br />
For scaling down the processor you have to load the p4_clockmod module. Insert it into your {{Filename|/etc/rc.conf}} MODULES array for loading it at startup. <br />
MODULES=(... p4_clockmod ...)<br />
<br />
Add 'cpufreq' to the DAEMONS array in {{Filename|/etc/rc.conf}} to have it start on startup.<br />
DAEMONS=(... cpufreq ...)<br />
<br />
Add the following into {{Filename|/etc/conf.d/cpufreq}}:<br />
governor="ondemand"<br />
min_freq="113MHz"<br />
max_freq="900MHz"<br />
<br />
With enabled cpufreq it scales the processor between 113MHz up to max. frequency. That should save a lot on battery power. The stated 900MHz will be never reached by the eeePC, the p4_clockmod reports a wrong frequency here. But scaling works, you can feel it in the performance of eeePC that he slow down the processor.<br />
<br />
{{Note | The merits of p4-clockmod are debatable. Particularly on the EEEPC 701, battery time isn't extended due to its usage, and some users have even reported less battery duration. More hints to the reasons why can be read in [http://www.codemonkey.org.uk/2009/01/18/forthcoming-p4clockmod/ this] fine blog entry.}}<br />
<br />
===More responsive system with ondemand governor===<br />
The default up_threshold (where it will bump to a faster speed) for the CPU governor is 80, which means it will increase the CPU speed when utilization is above 80%. This can make X applications have a bit of lag. <br />
<br />
Try changing this value:<br />
$ sudo bash -c "echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold"<br />
<br />
With 40 it still leaves the majority of CPU cycles at the lowest available clock speed but increases responsiveness. You can add this line to one of your startup scripts (such as {{Filename|/etc/rc.local}}) if you wish to keep it, for example:<br />
<br />
#!/bin/bash<br />
#<br />
# /etc/rc.local: Local multi-user startup script.<br />
#<br />
<br />
echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold<br />
<br />
Also, following line is also reported to help makes system more responsive. You can use it by adding it to your {{Filename|/etc/rc.local}}:<br />
echo 2000000 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate<br />
<br />
===Speeding up udev for faster boot===<br />
*[[Speedup udev]]<br />
*http://dev.laptop.org/ticket/4349<br />
*[http://www.eeesale.com/Asus-Eee-PC-overclock-Benchmarks.htm Speed up the Eee PC]<br />
<br />
You can also disable the autoload by editing your {{Filename|[[rc.conf]]}}:<br />
...<br />
MOD_AUTOLOAD="no"<br />
...<br />
MODULES=(pciehp ath5k)<br />
<br />
===Update your BIOS without Xandros===<br />
{{Warning | You can break your system, do not update if you are not sure of what you are doing!}}<br />
<br />
First, you need to download the ''.rom'' file.<br />
*[http://update.eeepc.asus.com/bios/ Asus' official BIOS]<br />
*[http://forum.eeeuser.com/viewtopic.php?id=3485 EeeUser's topic]<br />
<br />
You also need an USB stick formatted in FAT32. To format the USBStick, use the cfdisk tool:<br />
# cfdisk /dev/sdc # could be something else than "c"<br />
<br />
Choose [delete], [type]: "fat32" (code 0B), [write] and then exit with [quit].<br />
<br />
NOTE to EEE PC 900 owners and possibly others: Using this method will require a flash drive formatted with a '''FAT16''' file-system. If the BIOS update process hangs up at "Reading file 900.ROM" for more than a few minutes then it should be safe to power down your EEE PC and reformat your flashdrive's file-system to the correct one. You can force FAT16 creation with the following command:<br />
# mkdosfs -F 16 /dev/device-path<br />
<br />
Now just copy the ''.rom'' on the USBStick :<br />
$ cp /somewhere/blabla/.../thecurrentnameofthefile.ROM /path/to/mounted/usb_stick/701.rom<br />
The name of the copy '''must''' be xxxx.rom where xxxx is the model of your eee PC. (i.e. 900 users it's 900.rom)<br />
<br />
Next step, reboot the eeepc with the USB stick pluged-in, and press Alt+F2. It will launch the built-in tool. Everything should be Ok, you can make a coffee during the update. When it asks you to push the power-button it has finished.<br />
<br />
At the next boot, you'll be invited to configure the BIOS. Check if the everything is enabled (my webcam and wireless were disabled after the update) and if it displays the good version in the main screen. It's done!<br />
<br />
=== More usable font sizes ===<br />
<br />
====The_glu's method====<br />
<br />
I found an easy solution that works on a 901:<br />
<br />
Edit {{Filename|/etc/X11/xinit/xserverrc}} and add "-dpi 134":<br />
exec /usr/bin/X -nolisten tcp -dpi 134<br />
<br />
Restart X and fonts should have the correct size. Notice it's won't works if you have Xft*dpi: in your {{Filename|.XDefaults}}.<br />
<br />
You don't need to edit your config file to set a smaller font size, I you did you should set font-size to 10 or you will have to small fonts...<br />
<br />
==== Old method ====<br />
<br />
On a default installation with Xfce 4 my font sizes were too big, here is what I did to sort them out.<br />
<br />
First, I set the DPI by adding the following to {{Filename|~/.Xdefaults}}:<br />
Xft*dpi: 134<br />
<br />
This then caused the fonts to be even bigger, so I set them all to be font-size 6 by adding the following into {{Filename|~/.gtkrc-2.0}} (note that this will be overwritten if you use any tools to change GTK settings):<br />
style "user-font"<br />
{<br />
font_name="Bitstream Vera Sans 6"<br />
}<br />
widget_class "*" style "user-font"<br />
<br />
To do the same with KDE fonts (without KDE installed) you have to add the following to {{Filename|~/.kde/share/config/kdeglobals}}:<br />
[General]<br />
StandardFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
activeFont=Bitstream Vera Sans,6,-1,5,75,0,0,0,0,0<br />
fixed=Bitstream Vera Sans Mono,6,-1,5,50,0,0,0,0,0<br />
font=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
menuFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
taskbarFont=Bitstream Vera Sans,6,-1,5,50,1,0,0,0,0<br />
toolBarFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
<br />
To make your fonts even prettier enable the [[Fonts#Fonts_with_LCD_filter_enabled|LCD Fonts]].<br />
<br />
==== Alternative Method ====<br />
<br />
For me it worked far better to open the gnome appearance control panel, go to the fonts tab, click defaults, and change the resolution to be 96 dpi. Changing .Xdefaults doesnt work when running gnome, as gnome-settings-daemon overrides it. You can then leave all font sizes at their default, and things should look good. Simply changing the font sizes and leaving the DPI at its technically correct value (~134) gave me weird layout problems in some apps, and oddly large fonts in others.<br />
<br />
==Known problems and their solutions==<br />
<br />
===Wireless doesn't work, even after installing custom Madwifi module===<br />
<br />
I found that Arch tried to use the ath5k module for wireless, and that meant it took control of the card rather than ath_pci (the module I had compiled and installed). I got a Madwifi status 3 message in dmesg when this happened.<br />
<br />
The solution is to blacklist the ath5k module in {{Filename|/etc/rc.conf}}:<br />
<br />
MODULES = ( ... !ath5k ... )<br />
<br />
===Laggy or Unresponsive ACPI Events===<br />
<br />
The latest kernel (2.6.26) introduces new problems with Eee's ACPI events handling. Basically, ACPI events become very laggy and after some time ACPI get disabled after a heavy usage (e.g. changing volume, brightness). This problem affects both stock kernel and toofishes' kernel.<br />
<br />
It appears that the solution is to apply this [http://bugzilla.kernel.org/attachment.cgi?id=16862 patch] ([http://bugzilla.kernel.org/show_bug.cgi?id=10724 original bug report]) to the kernel. <br />
<br />
{{Note | The latest toofishes' kernel, version 2.6.26-1, now includes the patch, but you can still use ighea's one for the extras features listed below.}}<br />
<br />
Until toofishes update his kernel to include the patch, you can use ighea's slightly modified toofishes' kernel that included the above patch, as well as other modifications:<br />
<br />
*Support for Wine <br />
*uvesafb is built as module <br />
*Use [http://bbs.archlinux.org/viewtopic.php?pid=393860#p393860 new eeepc-laptop driver] (which also handles fan-control) instead of older acus_acpi or asus-laptop -drivers.<br />
<br />
You can get the modified kernel, as well as the associative packages, from [http://koti.kapsi.fi/~ighea/eee/kernel-eee/ here].<br />
<br />
After you have downloaded the packages, Install them using this command:<br />
# pacman -U kernel-eee-2.6.26-1-i686.pkg.tar.gz madwifi-eee-svn-3752-1-i686.pkg.tar.gz <br />
<br />
You might also want to use IgnorePkg-line in {{Filename|/etc/pacman.conf}} to hold packages from being accidentally updated.<br />
IgnorePkg = kernel-eee madwifi-eee-svn<br />
<br />
Also don't forget to upgrade ighea's acpi-eee package to version 9.6.<br />
<br />
===Shutdown Problem===<br />
<br />
If your Eee won't shutdown properly (i.e. the power indicator LED is on but the LCD screen is off), then add the following lines to your {{Filename|/etc/rc.local.shutdown}} file.<br />
<pre><br />
#! /bin/bash<br />
#<br />
# /etc/rc.local.shutdown: Local shutdown script.<br />
#<br />
<br />
# Comment or uncomment the following two lines according to your system configuration.<br />
<br />
/etc/rc.d/mpd stop # If you're using mpd, then you have to stop its daemon first.<br />
<br />
/etc/rc.d/alsa stop # If you're using ALSA daemon, then you also have to stop it.<br />
<br />
# The following line is Eee specific fix, you always need to have this line in /etc/rc.local.shutdown.<br />
<br />
echo -n "0000:00:1b.0" > /sys/bus/pci/drivers/HDA\ Intel/unbind<br />
</pre><br />
<br />
The above solution should fix the shutdown problem in most cases. But if for some reason the problem still persists, the module may not be able to be unloaded until after all services have finished. Do the above, then in {{Filename|/etc/rc.shutdown}} move <br />
<br />
if [ -x /etc/rc.local.shutdown ]; then<br />
/etc/rc.local.shutdown<br />
fi<br />
<br />
from where it was to directly above the line <br />
<br />
# Terminate all processes<br />
<br />
this will cause the {{Filename|rc.local.shutdown}} script to run after services have been exited. This fixed all issues for the person editing this note.<br />
<br />
===Unclean unmount during shutdown when having home directory mounted on SD card===<br />
<br />
If you experienced unclean unmount during shutdown when having your home directory on SD card, then add the following 3 lines to "Write to wtmp file before unmounting" section of your {{Filename|/etc/rc.shutdown}} file:<br />
<pre><br />
...<br />
<br />
stat_busy "Unmounting Filesystems"<br />
/bin/umount -a -t noramfs,notmpfs,nosysfs,noproc<br />
<br />
# Add these 3 lines<br />
sync;sync;sync;<br />
eject /dev/sdb # Or whichever is your SD-card's device name. /dev/disk/by-uuid/ followed by the UUID identifier is preferable though.<br />
sleep 3<br />
# End of hack<br />
<br />
stat_done<br />
<br />
...<br />
</pre><br />
<br />
===Booting from card without initrd===<br />
<br />
Let's say you decided to install Arch Linux on a card and compiled your own kernel (or used the kernel26eee kernel) without initrd. Card reader on EeePC is connected as an USB device. Unfortunately, USB storage devices are detected with a delay, so we must tell the kernel to wait until this device becomes available. You do this with "rootwait" option passed to kernel at boot time.<br />
<br />
===Sleeping and waking system on a card===<br />
<br />
If you have Arch Linux on a card, waking up from sleeping state will most likely fail. The only solution is to enable the CONFIG_USB_PERSIST option in kernel. The kernel26eee package should have this option enabled.<br />
<br />
The command to do this is:<br />
echo 1 >/sys/bus/usb/devices/.../power/persist<br />
<br />
Replace the {{Codeline|"..."}} with the device like 1-3 or 1-5 where the first number is the bus and the second is the device <br />
<br />
Each device that is connected to your computer gets an entry in the sysfs "system file system" it is a virtual file system like proc<br />
<br />
More info:<br />
*http://www.mjmwired.net/kernel/Documentation/usb/persist.txt<br />
*http://forum.eeeuser.com/viewtopic.php?id=22712<br />
<br />
===Display doesn't wake up properly===<br />
<br />
If you encounter black display (but apparently working system) after suspend/resume, consider using the "uswsusp" package (available in the official repositories) and correcting suspend2ram script in /etc/acpi, where you use this line to make the machine go to sleep:<br />
<br />
/usr/sbin/s2ram --force --vbe_post --vbe_mode<br />
<br />
==Battery Tests==<br />
<br />
The following are reported battery runtimes:<br />
<br />
{| class="wikitable" style="text-align:left"<br />
|+Battery runtimes<br />
|-<br />
! Task !! Series !! Wireless !! Screen Brightness !! FSB Speed !! Fan Speed !! Runtime !! Comments<br />
|-<br />
! DVD Playback<br />
| 701 || On || Max || 85mhz || 100% || 134min || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! DVD Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! AVI Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading AVI from SSD<br />
|-<br />
! IM and Surf<br />
| 701 || On || ~30% || ??? || low || 173min || Normal web-browsing, Flash should reduce runtime a lot !<br />
|-<br />
! Programming and PDF reading<br />
| 1000HA || Off || ~40% || ??? || low || +6hs || Using Evince and SPE under XFCE with camera and USB disabled<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || +4hs || Stock kernel without laptop-mode<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || 5hs || Stock kernel with laptop-mode and other tweaks<br />
|}<br />
<br />
N.B. - Will add battery runtimes as I am able to test them, please contribute.<br />
<br />
-- Grecko.1<br />
<br />
Still tweaking, but disabling everything from BIOS got me about 6 hours and a half. With eee-kernel, I *could* get a little more.<br />
<br />
-- ekuber</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=ASUS_Eee_PC_701&diff=86167ASUS Eee PC 7012009-12-03T12:40:18Z<p>Zodmaner: /* Webcam */</p>
<hr />
<div>{{stub}}<br />
[[Category:Getting and installing Arch (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|Русский|Инсталляция Arch Linux на Asus EEE PC}}<br />
{{i18n_links_end}}<br />
<br />
Most of this information is from the [http://bbs.archlinux.org/viewtopic.php?pid=297632 Arch Forum]. You can also find a lot of helpful information from the [http://forum.eeeuser.com/ EEEUser Forum]. <br />
<br />
==Before You Begin==<br />
<br />
===Avoiding Pitfalls===<br />
<br />
The install is pretty normal, except that you'll need to [http://forum.eeeuser.com/viewtopic.php?id=890 avoid the pitfalls] of our alternative Linux install:<br />
<br />
# Never choose to use a journaling file system on the SSD partitions<br />
# Never use a swap partition on the SSD<br />
# Edit your new installation fstab to mount the SSD partitions "noatime"<br />
# Never log messages or error log to the SSD<br />
<br />
The rules ensure that we won't reach the maximum limit of writes on our SSD faster than we should, although this is being contested (see [http://wiki.eeeuser.com/ssd_write_limit this link] and [http://www.storagesearch.com/ssdmyths-endurance.html this other link]).<br />
<br />
Some other minor modifications can be made to decrease number of non-mandatory writes by applications: deactivate {{Filename|~/.viminfo}} in vi, deactivate less history file ({{Filename|~/.lesshst}}), and so on.<br />
<br />
===Choosing Your Installation Media===<br />
<br />
The Eee PC does not have an optical drive installed on the machine. This means you will need to install Arch Linux through one of the alternative methods:<br />
<br />
# [[Beginners_Guide#USB_stick|USB stick]] '''(Recommended)'''<br />
# External USB CD-ROM drive<br />
# [[PXE|Network (PXE)]]<br />
<br />
==Installing Arch Linux==<br />
<br />
With the release of the 2009.08 installation media, installing Arch Linux on Asus Eee PC model 701 is pretty easy and straightforward since the stock kernel on Arch installation media support all of the 701 hardwares out of the box. <br />
<br />
Therefore, aside from the recommended partition scheme described below, there shouldn't be any other differences between installing Arch Linux on the 701 and any other computer. You should be able to successfully install Arch on the 701 by following instructions on [[Beginners_Guide|Beginners' Guide]] without any problem.<br />
<br />
===Prepare Hard Drive===<br />
<br />
<br />
The most important different between the 701 and other machines is that the 701 use SSD drive instead of normal hard drive. This section advise on how to set up a partition scheme that is best suited to the 701. <br />
<br />
The default Eee PC drive is split up into four partitions (here is [http://forum.eeeuser.com/viewtopic.php?id=1805 some information] about the partitioning): <br />
<br />
* It is easiest to wipe the existing partitions and use one or two partitions for your install. One partition would be just '/', and two partitions would be '/boot' and '/'.<br />
* Choose "NONE" for swap in case your eee has a SSD (see #2 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]])<br />
* Select "ext2" as your filesystem in case your eee has a SSD (see #1 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]]). If your model has a standard HD choose "ext3".<br />
<br />
==Asus Eee PC model 701 repository from toofishes==<br />
<br />
{{ Note | You might want to do this after you have successfully installed Arch Linux on the 701.}}<br />
<br />
Toofishes created a repository for the 701. The repository contained customized kernel built specifically for the 701 and some additional packages. <br />
<br />
While the stock Arch kernel works very well with the 701, toofishes kernel have the following advantages:<br />
<br />
* Faster boot time &ndash; because most of the modules have been compile into the kernel, no time is wasted waiting for the modules to load<br />
* No need to generate initial ramdisk every time a kernel is upgrade <br />
* Smaller size (around 4MB)<br />
<br />
To use the repository, add:<br />
[eee]<br />
Server = http://code.toofishes.net/packages/eee<br />
to your {{Filename|/etc/pacman.conf}} and then issue:<br />
pacman -Syu<br />
<br />
===Package List===<br />
Currently, toofishes' repository contains the following packages:<br />
<br />
*'''kernel-eee''' &ndash; customized kernel for Asus Eee PC model 701<br />
*'''luvcview''' &ndash; webcam program for testing webcam driver<br />
<br />
===Kernel-eee Installation Instruction===<br />
Simply use pacman to install the package you need. Install the packages with this command:<br />
# pacman -Sy kernel-eee<br />
<br />
then, add the following to {{Filename|/boot/grub/menu.lst}}; note that no initrd is needed:<br />
# (2) Arch Linux<br />
title Arch Linux Eee kernel<br />
root (hd0,0)<br />
kernel /boot/vmlinuzeee root=/dev/sda1 ro<br />
<br />
Restart and select Arch Linux Eee kernel from the grub boot menu.<br />
<br />
==Getting Everything Working==<br />
<br />
The following is the guide on how to get the rest of your system working.<br />
<br />
===X===<br />
<br />
Install X by follow instructions on the [[Beginners_Guide#Step_2:_Install_X|Beginners' Guide]], then install the Intel graphics driver:<br />
# pacman -Sy xf86-video-intel<br />
<br />
You may also wish to install the Synaptics drivers for the touchpad (not needed for Eee PC 900):<br />
# pacman -Sy xf86-input-synaptics<br />
<br />
With the latest version of X from extra repository, X should work on the 701 '''without any need for xorg.conf'''. However, if for some reason you wish to use an xorg.conf file, you can use an old [[Example_Xorg_configuration_file_for_Asus_Eee_PC_701|example Xorg configuration file for Asus Eee PC model 701]] as a template or automatically generate a new one by running the following command:<br />
<br />
# Xorg -configure<br />
<br />
Consult [[Xorg_input_hotplugging|Xorg Input Hotplugging]] for more information on how to config input devices using HAL.<br />
<br />
The synaptics stuff can be removed if you have a EEE PC 900. The {{Codeline|Option "AutoAddDevices"}} line is important if you need a non-default XkbLayout, because if you don't have it, xorg will find 3 keyboards (at least with the 900 model).<br />
The Modeline has obviously to be removed or modified if you dont have a model with this resolution.<br />
<br />
===Sound, Webcam & Microphone===<br />
<br />
====Sound====<br />
<br />
For most people, sound should work right out of the box with no troubles (after you have followed the [[Beginners_Guide#Step_1:_Configure_sound_with_alsamixer|guide]], of course). However, others might need to add the following line to {{Filename|/etc/modprobe.conf}}<br />
options snd-hda-intel model=3stack-dig<br />
or the following one for the Eee PC 900 model<br />
options snd-hda-intel model=auto<br />
<br />
If your internal microphone doesn't work, you probably have to turn the capture feature on. Simply fire up alsamixer, find your Capture control, and press spacebar to enable it.<br />
<br />
====Webcam====<br />
<br />
If for some reason webcam have been disable on your 701, you can enable it by issuing the following command as root: <br />
<br />
echo 1 > /sys/devices/platform/eeepc/camera<br />
<br />
If you want the webcam application that the default Xandos installation uses, install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14469 ucview from the AUR].<br />
<br />
The webcam also works fine with the latest version of Skype.<br />
<br />
If you already have mplayer installed you can launch:<br />
$ mplayer -fps 15 tv://<br />
<br />
I have yet to get it working with vlc or any other software such as xawtv. If you know how, please update this.<br />
<br />
*'''NOTE:''' For anyone who has accidentally disabled Auto Exposure for their webcam in luvcview (making the image dark), and can't enable it again, do the following:<br />
<br />
Install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14468 libwebcam from the AUR].<br />
<br />
Issue the following command:<br />
$ uvcdynctrl --set "Exposure, Auto" 4<br />
<br />
{{Note | Be sure the "OS Installation" option is set to "finished" in the BIOS' "Advanced" tab or your camera may not work in some applications (like Skype).}}<br />
<br />
{{Note | Make sure you are a member of the video group edit /etc/group and add your username to video}}<br />
<br />
====Microphone====<br />
<br />
Solution for problems with the internal microphone.<br />
<br />
1. First of all set in alsamixer "Input Source" to "i-Mic"<br />
<br />
2. Increase "Capture" and "i-Mic Boost" to your needs<br />
<br />
3. Edit {{Filename|/etc/asound.state}} the following, change the 2 "false" to "true" like showing:<br />
....snap.....<br />
control.11 {<br />
comment.access 'read write'<br />
comment.type BOOLEAN<br />
comment.count 2<br />
iface MIXER<br />
name 'Capture Switch'<br />
value.0 true<br />
value.1 true<br />
}<br />
....snap....<br />
<br />
4. After editing run following as root<br />
# alsactl restore<br />
<br />
5. Now your internal microphone should be working.<br />
<br />
===Getting Hot Keys, Graphic Indicators and Shutdown with the Power Button Working===<br />
<br />
If you want to have working hot keys (wifi, brightness, volume etc), an OSD, and be able to assign actions to things like the powerbutton and closing the lid, then you should install '''ighea's acpi-eee''' package.<br />
<br />
==== ighea's acpi-eee ====<br />
<br />
Get the latest package from [http://kapsi.fi/ighea/eee/acpi-eee/ here].<br />
<br />
The package can be easily installed with:<br />
# pacman -U acpi-eee-10.0-1-i686.pkg.tar.gz<br />
<br />
See messages during installation for more details and don't forget to edit {{Filename|/etc/acpi/eee.conf}} to suit your tastes.<br />
<br />
*For those who use the wireless on/off acpi command; the {{Codeline|NETWORK_UP_COMMAND&#61;""}} setting in {{Filename|/etc/acpi/eee.conf}}, when applicable, should at least release the network. For example, using netcfg2, {{Codeline|NETWORK_UP_COMMAND&#61;"netcfg2 -a"}} will release the connections from before disabling wireless, allowing new ones to be made without netcfg thinking that it's already connected. It is also possible to reconnect to your previous network, however, the network tool you use needs to have a somewhat lengthy timeout as it takes 15-20 seconds for your wireless device to reappear. <br />
<br />
{{Note | Make sure '''asusosd''' is enabled on startup if you want to have the Graphic Indicators from Xandros. To run asusosd simply type {{Codeline|asusosd &}} at a command prompt.}}<br />
<br />
==Additional Tips & Tweaks==<br />
<br />
===Tweaking kernel-eee===<br />
<br />
Toofishes' kernel, also known as kernel-eee, can be recompiled to include custom features. You can download toofishes' kernel PKGBUILD and all the nesseary files from his gitweb by installing the git package and using the following command:<br />
<br />
$ git clone git://code.toofishes.net/dan/eee.git<br />
<br />
or if you are behind a proxy and can't use the git protocol:<br />
<br />
$ git clone http://code.toofishes.net/git/dan/eee.git<br />
<br />
There are two ways to tweak the kernel. The first is simply to edit the {{Filename|kernelconfig}} file with your favorite editor and the second is to insert a {{Codeline|make menuconfig}} line into the PKGBUILD before the kernel's compilation.<br />
<br />
===Using Wine with toofishes' kernel===<br />
<br />
Normally, Wine won't work with toofishes' kernel because it is compiled with VMSPLIT_2G_OPT option. In order to use Wine with toofishes' kernel, you have to recompile his kernel with VMSPLIT_3G option.<br />
<br />
Download the kernel PKGBUILD and all the necessary files from toofishes' gitweb using the above instructions, then change the following lines in the {{Filename|kernelconfig}} file from this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 # CONFIG_VMSPLIT_3G is not set<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 CONFIG_VMSPLIT_2G_OPT=y<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
to this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 CONFIG_VMSPLIT_3G=y<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 # CONFIG_VMSPLIT_2G_OPT is not set<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
<br />
Compile and install the kernel and Wine should now work.<br />
<br />
===Power down with the power button===<br />
<br />
{{Note | If you are using ighea's acpi-eee or dkite's acpid_eee package then you should already be able to shutdown by pressing the power button and should not need to do this.}}<br />
<br />
The two alternatives here are described in [[Allow users to shutdown]].<br />
<br />
If you don't already or don't plan to use sudo, it may be simpler to use the setuid /sbin/halt method, otherwise using sudo is preferred.<br />
<br />
Below are all the steps required for the sudo method. If you want to use the setuid method, read the article linked above and perform the 'power' file step here, while omitting the 'sudo' in it.<br />
<br />
# pacman -S sudo<br />
<br />
As root, do the following:<br />
# visudo<br />
<br />
Add the following line to the file:<br />
USER HOST = NOPASSWD: /sbin/poweroff<br />
<br />
Where {{Codeline|USER}} is the user you want to be able to power down with and {{Codeline|HOST}} is your hostname (from {{Filename|/etc/rc.conf}}).<br />
<br />
Now, create a file called {{Filename|/etc/acpi/events/power}}, containing:<br />
# /etc/acpi/events/power<br />
# This is called when the user presses the power button<br />
<br />
event=button/power (PWR.||PBTN)<br />
action=sudo /sbin/poweroff<br />
<br />
Make sure that you execute:<br />
# /etc/rc.d/acpid start<br />
<br />
And/or add acpid to the daemons list in {{Filename|/etc/rc.conf}}:<br />
DAEMONS=(hal, acpid ...)<br />
<br />
===Use cpufreq for power saving===<br />
<br />
{{Note | toofishes dropped CPU scaling from his latest kernel builds, due to the fact, confirmed by other users, that there were no effective power savings with p4-clockmod's module, and it introduced "unacceptable latency", even with relatively low percentage up thresholds.}}<br />
<br />
Install cpufrequtitls:<br />
# pacman -S cpufrequtils<br />
<br />
For scaling down the processor you have to load the p4_clockmod module. Insert it into your {{Filename|/etc/rc.conf}} MODULES array for loading it at startup. <br />
MODULES=(... p4_clockmod ...)<br />
<br />
Add 'cpufreq' to the DAEMONS array in {{Filename|/etc/rc.conf}} to have it start on startup.<br />
DAEMONS=(... cpufreq ...)<br />
<br />
Add the following into {{Filename|/etc/conf.d/cpufreq}}:<br />
governor="ondemand"<br />
min_freq="113MHz"<br />
max_freq="900MHz"<br />
<br />
With enabled cpufreq it scales the processor between 113MHz up to max. frequency. That should save a lot on battery power. The stated 900MHz will be never reached by the eeePC, the p4_clockmod reports a wrong frequency here. But scaling works, you can feel it in the performance of eeePC that he slow down the processor.<br />
<br />
{{Note | The merits of p4-clockmod are debatable. Particularly on the EEEPC 701, battery time isn't extended due to its usage, and some users have even reported less battery duration. More hints to the reasons why can be read in [http://www.codemonkey.org.uk/2009/01/18/forthcoming-p4clockmod/ this] fine blog entry.}}<br />
<br />
===More responsive system with ondemand governor===<br />
The default up_threshold (where it will bump to a faster speed) for the CPU governor is 80, which means it will increase the CPU speed when utilization is above 80%. This can make X applications have a bit of lag. <br />
<br />
Try changing this value:<br />
$ sudo bash -c "echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold"<br />
<br />
With 40 it still leaves the majority of CPU cycles at the lowest available clock speed but increases responsiveness. You can add this line to one of your startup scripts (such as {{Filename|/etc/rc.local}}) if you wish to keep it, for example:<br />
<br />
#!/bin/bash<br />
#<br />
# /etc/rc.local: Local multi-user startup script.<br />
#<br />
<br />
echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold<br />
<br />
Also, following line is also reported to help makes system more responsive. You can use it by adding it to your {{Filename|/etc/rc.local}}:<br />
echo 2000000 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate<br />
<br />
===Speeding up udev for faster boot===<br />
*[[Speedup udev]]<br />
*http://dev.laptop.org/ticket/4349<br />
*[http://www.eeesale.com/Asus-Eee-PC-overclock-Benchmarks.htm Speed up the Eee PC]<br />
<br />
You can also disable the autoload by editing your {{Filename|[[rc.conf]]}}:<br />
...<br />
MOD_AUTOLOAD="no"<br />
...<br />
MODULES=(pciehp ath5k)<br />
<br />
===Update your BIOS without Xandros===<br />
{{Warning | You can break your system, do not update if you are not sure of what you are doing!}}<br />
<br />
First, you need to download the ''.rom'' file.<br />
*[http://update.eeepc.asus.com/bios/ Asus' official BIOS]<br />
*[http://forum.eeeuser.com/viewtopic.php?id=3485 EeeUser's topic]<br />
<br />
You also need an USB stick formatted in FAT32. To format the USBStick, use the cfdisk tool:<br />
# cfdisk /dev/sdc # could be something else than "c"<br />
<br />
Choose [delete], [type]: "fat32" (code 0B), [write] and then exit with [quit].<br />
<br />
NOTE to EEE PC 900 owners and possibly others: Using this method will require a flash drive formatted with a '''FAT16''' file-system. If the BIOS update process hangs up at "Reading file 900.ROM" for more than a few minutes then it should be safe to power down your EEE PC and reformat your flashdrive's file-system to the correct one. You can force FAT16 creation with the following command:<br />
# mkdosfs -F 16 /dev/device-path<br />
<br />
Now just copy the ''.rom'' on the USBStick :<br />
$ cp /somewhere/blabla/.../thecurrentnameofthefile.ROM /path/to/mounted/usb_stick/701.rom<br />
The name of the copy '''must''' be xxxx.rom where xxxx is the model of your eee PC. (i.e. 900 users it's 900.rom)<br />
<br />
Next step, reboot the eeepc with the USB stick pluged-in, and press Alt+F2. It will launch the built-in tool. Everything should be Ok, you can make a coffee during the update. When it asks you to push the power-button it has finished.<br />
<br />
At the next boot, you'll be invited to configure the BIOS. Check if the everything is enabled (my webcam and wireless were disabled after the update) and if it displays the good version in the main screen. It's done!<br />
<br />
=== More usable font sizes ===<br />
<br />
====The_glu's method====<br />
<br />
I found an easy solution that works on a 901:<br />
<br />
Edit {{Filename|/etc/X11/xinit/xserverrc}} and add "-dpi 134":<br />
exec /usr/bin/X -nolisten tcp -dpi 134<br />
<br />
Restart X and fonts should have the correct size. Notice it's won't works if you have Xft*dpi: in your {{Filename|.XDefaults}}.<br />
<br />
You don't need to edit your config file to set a smaller font size, I you did you should set font-size to 10 or you will have to small fonts...<br />
<br />
==== Old method ====<br />
<br />
On a default installation with Xfce 4 my font sizes were too big, here is what I did to sort them out.<br />
<br />
First, I set the DPI by adding the following to {{Filename|~/.Xdefaults}}:<br />
Xft*dpi: 134<br />
<br />
This then caused the fonts to be even bigger, so I set them all to be font-size 6 by adding the following into {{Filename|~/.gtkrc-2.0}} (note that this will be overwritten if you use any tools to change GTK settings):<br />
style "user-font"<br />
{<br />
font_name="Bitstream Vera Sans 6"<br />
}<br />
widget_class "*" style "user-font"<br />
<br />
To do the same with KDE fonts (without KDE installed) you have to add the following to {{Filename|~/.kde/share/config/kdeglobals}}:<br />
[General]<br />
StandardFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
activeFont=Bitstream Vera Sans,6,-1,5,75,0,0,0,0,0<br />
fixed=Bitstream Vera Sans Mono,6,-1,5,50,0,0,0,0,0<br />
font=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
menuFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
taskbarFont=Bitstream Vera Sans,6,-1,5,50,1,0,0,0,0<br />
toolBarFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
<br />
To make your fonts even prettier enable the [[Fonts#Fonts_with_LCD_filter_enabled|LCD Fonts]].<br />
<br />
==== Alternative Method ====<br />
<br />
For me it worked far better to open the gnome appearance control panel, go to the fonts tab, click defaults, and change the resolution to be 96 dpi. Changing .Xdefaults doesnt work when running gnome, as gnome-settings-daemon overrides it. You can then leave all font sizes at their default, and things should look good. Simply changing the font sizes and leaving the DPI at its technically correct value (~134) gave me weird layout problems in some apps, and oddly large fonts in others.<br />
<br />
==Known problems and their solutions==<br />
<br />
===Wireless doesn't work, even after installing custom Madwifi module===<br />
<br />
I found that Arch tried to use the ath5k module for wireless, and that meant it took control of the card rather than ath_pci (the module I had compiled and installed). I got a Madwifi status 3 message in dmesg when this happened.<br />
<br />
The solution is to blacklist the ath5k module in {{Filename|/etc/rc.conf}}:<br />
<br />
MODULES = ( ... !ath5k ... )<br />
<br />
===Laggy or Unresponsive ACPI Events===<br />
<br />
The latest kernel (2.6.26) introduces new problems with Eee's ACPI events handling. Basically, ACPI events become very laggy and after some time ACPI get disabled after a heavy usage (e.g. changing volume, brightness). This problem affects both stock kernel and toofishes' kernel.<br />
<br />
It appears that the solution is to apply this [http://bugzilla.kernel.org/attachment.cgi?id=16862 patch] ([http://bugzilla.kernel.org/show_bug.cgi?id=10724 original bug report]) to the kernel. <br />
<br />
{{Note | The latest toofishes' kernel, version 2.6.26-1, now includes the patch, but you can still use ighea's one for the extras features listed below.}}<br />
<br />
Until toofishes update his kernel to include the patch, you can use ighea's slightly modified toofishes' kernel that included the above patch, as well as other modifications:<br />
<br />
*Support for Wine <br />
*uvesafb is built as module <br />
*Use [http://bbs.archlinux.org/viewtopic.php?pid=393860#p393860 new eeepc-laptop driver] (which also handles fan-control) instead of older acus_acpi or asus-laptop -drivers.<br />
<br />
You can get the modified kernel, as well as the associative packages, from [http://koti.kapsi.fi/~ighea/eee/kernel-eee/ here].<br />
<br />
After you have downloaded the packages, Install them using this command:<br />
# pacman -U kernel-eee-2.6.26-1-i686.pkg.tar.gz madwifi-eee-svn-3752-1-i686.pkg.tar.gz <br />
<br />
You might also want to use IgnorePkg-line in {{Filename|/etc/pacman.conf}} to hold packages from being accidentally updated.<br />
IgnorePkg = kernel-eee madwifi-eee-svn<br />
<br />
Also don't forget to upgrade ighea's acpi-eee package to version 9.6.<br />
<br />
===Shutdown Problem===<br />
<br />
If your Eee won't shutdown properly (i.e. the power indicator LED is on but the LCD screen is off), then add the following lines to your {{Filename|/etc/rc.local.shutdown}} file.<br />
<pre><br />
#! /bin/bash<br />
#<br />
# /etc/rc.local.shutdown: Local shutdown script.<br />
#<br />
<br />
# Comment or uncomment the following two lines according to your system configuration.<br />
<br />
/etc/rc.d/mpd stop # If you're using mpd, then you have to stop its daemon first.<br />
<br />
/etc/rc.d/alsa stop # If you're using ALSA daemon, then you also have to stop it.<br />
<br />
# The following line is Eee specific fix, you always need to have this line in /etc/rc.local.shutdown.<br />
<br />
echo -n "0000:00:1b.0" > /sys/bus/pci/drivers/HDA\ Intel/unbind<br />
</pre><br />
<br />
The above solution should fix the shutdown problem in most cases. But if for some reason the problem still persists, the module may not be able to be unloaded until after all services have finished. Do the above, then in {{Filename|/etc/rc.shutdown}} move <br />
<br />
if [ -x /etc/rc.local.shutdown ]; then<br />
/etc/rc.local.shutdown<br />
fi<br />
<br />
from where it was to directly above the line <br />
<br />
# Terminate all processes<br />
<br />
this will cause the {{Filename|rc.local.shutdown}} script to run after services have been exited. This fixed all issues for the person editing this note.<br />
<br />
===Unclean unmount during shutdown when having home directory mounted on SD card===<br />
<br />
If you experienced unclean unmount during shutdown when having your home directory on SD card, then add the following 3 lines to "Write to wtmp file before unmounting" section of your {{Filename|/etc/rc.shutdown}} file:<br />
<pre><br />
...<br />
<br />
stat_busy "Unmounting Filesystems"<br />
/bin/umount -a -t noramfs,notmpfs,nosysfs,noproc<br />
<br />
# Add these 3 lines<br />
sync;sync;sync;<br />
eject /dev/sdb # Or whichever is your SD-card's device name. /dev/disk/by-uuid/ followed by the UUID identifier is preferable though.<br />
sleep 3<br />
# End of hack<br />
<br />
stat_done<br />
<br />
...<br />
</pre><br />
<br />
===Booting from card without initrd===<br />
<br />
Let's say you decided to install Arch Linux on a card and compiled your own kernel (or used the kernel26eee kernel) without initrd. Card reader on EeePC is connected as an USB device. Unfortunately, USB storage devices are detected with a delay, so we must tell the kernel to wait until this device becomes available. You do this with "rootwait" option passed to kernel at boot time.<br />
<br />
===Sleeping and waking system on a card===<br />
<br />
If you have Arch Linux on a card, waking up from sleeping state will most likely fail. The only solution is to enable the CONFIG_USB_PERSIST option in kernel. The kernel26eee package should have this option enabled.<br />
<br />
The command to do this is:<br />
echo 1 >/sys/bus/usb/devices/.../power/persist<br />
<br />
Replace the {{Codeline|"..."}} with the device like 1-3 or 1-5 where the first number is the bus and the second is the device <br />
<br />
Each device that is connected to your computer gets an entry in the sysfs "system file system" it is a virtual file system like proc<br />
<br />
More info:<br />
*http://www.mjmwired.net/kernel/Documentation/usb/persist.txt<br />
*http://forum.eeeuser.com/viewtopic.php?id=22712<br />
<br />
===Display doesn't wake up properly===<br />
<br />
If you encounter black display (but apparently working system) after suspend/resume, consider using the "uswsusp" package (available in the official repositories) and correcting suspend2ram script in /etc/acpi, where you use this line to make the machine go to sleep:<br />
<br />
/usr/sbin/s2ram --force --vbe_post --vbe_mode<br />
<br />
==Battery Tests==<br />
<br />
The following are reported battery runtimes:<br />
<br />
{| class="wikitable" style="text-align:left"<br />
|+Battery runtimes<br />
|-<br />
! Task !! Series !! Wireless !! Screen Brightness !! FSB Speed !! Fan Speed !! Runtime !! Comments<br />
|-<br />
! DVD Playback<br />
| 701 || On || Max || 85mhz || 100% || 134min || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! DVD Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! AVI Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading AVI from SSD<br />
|-<br />
! IM and Surf<br />
| 701 || On || ~30% || ??? || low || 173min || Normal web-browsing, Flash should reduce runtime a lot !<br />
|-<br />
! Programming and PDF reading<br />
| 1000HA || Off || ~40% || ??? || low || +6hs || Using Evince and SPE under XFCE with camera and USB disabled<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || +4hs || Stock kernel without laptop-mode<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || 5hs || Stock kernel with laptop-mode and other tweaks<br />
|}<br />
<br />
N.B. - Will add battery runtimes as I am able to test them, please contribute.<br />
<br />
-- Grecko.1<br />
<br />
Still tweaking, but disabling everything from BIOS got me about 6 hours and a half. With eee-kernel, I *could* get a little more.<br />
<br />
-- ekuber</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=ASUS_Eee_PC_701&diff=86166ASUS Eee PC 7012009-12-03T12:38:39Z<p>Zodmaner: /* Sound */</p>
<hr />
<div>{{stub}}<br />
[[Category:Getting and installing Arch (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|Русский|Инсталляция Arch Linux на Asus EEE PC}}<br />
{{i18n_links_end}}<br />
<br />
Most of this information is from the [http://bbs.archlinux.org/viewtopic.php?pid=297632 Arch Forum]. You can also find a lot of helpful information from the [http://forum.eeeuser.com/ EEEUser Forum]. <br />
<br />
==Before You Begin==<br />
<br />
===Avoiding Pitfalls===<br />
<br />
The install is pretty normal, except that you'll need to [http://forum.eeeuser.com/viewtopic.php?id=890 avoid the pitfalls] of our alternative Linux install:<br />
<br />
# Never choose to use a journaling file system on the SSD partitions<br />
# Never use a swap partition on the SSD<br />
# Edit your new installation fstab to mount the SSD partitions "noatime"<br />
# Never log messages or error log to the SSD<br />
<br />
The rules ensure that we won't reach the maximum limit of writes on our SSD faster than we should, although this is being contested (see [http://wiki.eeeuser.com/ssd_write_limit this link] and [http://www.storagesearch.com/ssdmyths-endurance.html this other link]).<br />
<br />
Some other minor modifications can be made to decrease number of non-mandatory writes by applications: deactivate {{Filename|~/.viminfo}} in vi, deactivate less history file ({{Filename|~/.lesshst}}), and so on.<br />
<br />
===Choosing Your Installation Media===<br />
<br />
The Eee PC does not have an optical drive installed on the machine. This means you will need to install Arch Linux through one of the alternative methods:<br />
<br />
# [[Beginners_Guide#USB_stick|USB stick]] '''(Recommended)'''<br />
# External USB CD-ROM drive<br />
# [[PXE|Network (PXE)]]<br />
<br />
==Installing Arch Linux==<br />
<br />
With the release of the 2009.08 installation media, installing Arch Linux on Asus Eee PC model 701 is pretty easy and straightforward since the stock kernel on Arch installation media support all of the 701 hardwares out of the box. <br />
<br />
Therefore, aside from the recommended partition scheme described below, there shouldn't be any other differences between installing Arch Linux on the 701 and any other computer. You should be able to successfully install Arch on the 701 by following instructions on [[Beginners_Guide|Beginners' Guide]] without any problem.<br />
<br />
===Prepare Hard Drive===<br />
<br />
<br />
The most important different between the 701 and other machines is that the 701 use SSD drive instead of normal hard drive. This section advise on how to set up a partition scheme that is best suited to the 701. <br />
<br />
The default Eee PC drive is split up into four partitions (here is [http://forum.eeeuser.com/viewtopic.php?id=1805 some information] about the partitioning): <br />
<br />
* It is easiest to wipe the existing partitions and use one or two partitions for your install. One partition would be just '/', and two partitions would be '/boot' and '/'.<br />
* Choose "NONE" for swap in case your eee has a SSD (see #2 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]])<br />
* Select "ext2" as your filesystem in case your eee has a SSD (see #1 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]]). If your model has a standard HD choose "ext3".<br />
<br />
==Asus Eee PC model 701 repository from toofishes==<br />
<br />
{{ Note | You might want to do this after you have successfully installed Arch Linux on the 701.}}<br />
<br />
Toofishes created a repository for the 701. The repository contained customized kernel built specifically for the 701 and some additional packages. <br />
<br />
While the stock Arch kernel works very well with the 701, toofishes kernel have the following advantages:<br />
<br />
* Faster boot time &ndash; because most of the modules have been compile into the kernel, no time is wasted waiting for the modules to load<br />
* No need to generate initial ramdisk every time a kernel is upgrade <br />
* Smaller size (around 4MB)<br />
<br />
To use the repository, add:<br />
[eee]<br />
Server = http://code.toofishes.net/packages/eee<br />
to your {{Filename|/etc/pacman.conf}} and then issue:<br />
pacman -Syu<br />
<br />
===Package List===<br />
Currently, toofishes' repository contains the following packages:<br />
<br />
*'''kernel-eee''' &ndash; customized kernel for Asus Eee PC model 701<br />
*'''luvcview''' &ndash; webcam program for testing webcam driver<br />
<br />
===Kernel-eee Installation Instruction===<br />
Simply use pacman to install the package you need. Install the packages with this command:<br />
# pacman -Sy kernel-eee<br />
<br />
then, add the following to {{Filename|/boot/grub/menu.lst}}; note that no initrd is needed:<br />
# (2) Arch Linux<br />
title Arch Linux Eee kernel<br />
root (hd0,0)<br />
kernel /boot/vmlinuzeee root=/dev/sda1 ro<br />
<br />
Restart and select Arch Linux Eee kernel from the grub boot menu.<br />
<br />
==Getting Everything Working==<br />
<br />
The following is the guide on how to get the rest of your system working.<br />
<br />
===X===<br />
<br />
Install X by follow instructions on the [[Beginners_Guide#Step_2:_Install_X|Beginners' Guide]], then install the Intel graphics driver:<br />
# pacman -Sy xf86-video-intel<br />
<br />
You may also wish to install the Synaptics drivers for the touchpad (not needed for Eee PC 900):<br />
# pacman -Sy xf86-input-synaptics<br />
<br />
With the latest version of X from extra repository, X should work on the 701 '''without any need for xorg.conf'''. However, if for some reason you wish to use an xorg.conf file, you can use an old [[Example_Xorg_configuration_file_for_Asus_Eee_PC_701|example Xorg configuration file for Asus Eee PC model 701]] as a template or automatically generate a new one by running the following command:<br />
<br />
# Xorg -configure<br />
<br />
Consult [[Xorg_input_hotplugging|Xorg Input Hotplugging]] for more information on how to config input devices using HAL.<br />
<br />
The synaptics stuff can be removed if you have a EEE PC 900. The {{Codeline|Option "AutoAddDevices"}} line is important if you need a non-default XkbLayout, because if you don't have it, xorg will find 3 keyboards (at least with the 900 model).<br />
The Modeline has obviously to be removed or modified if you dont have a model with this resolution.<br />
<br />
===Sound, Webcam & Microphone===<br />
<br />
====Sound====<br />
<br />
For most people, sound should work right out of the box with no troubles (after you have followed the [[Beginners_Guide#Step_1:_Configure_sound_with_alsamixer|guide]], of course). However, others might need to add the following line to {{Filename|/etc/modprobe.conf}}<br />
options snd-hda-intel model=3stack-dig<br />
or the following one for the Eee PC 900 model<br />
options snd-hda-intel model=auto<br />
<br />
If your internal microphone doesn't work, you probably have to turn the capture feature on. Simply fire up alsamixer, find your Capture control, and press spacebar to enable it.<br />
<br />
====Webcam====<br />
<br />
You can enable your built-in webcam by adding the following line to your {{Filename|/etc/rc.local}} file.<br />
<br />
echo 1 > /sys/devices/platform/eeepc/camera<br />
<br />
If you want the webcam application that the default Xandos installation uses, install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14469 ucview from the AUR].<br />
<br />
The webcam also works fine with the latest version of Skype.<br />
<br />
If you already have mplayer installed you can launch:<br />
$ mplayer -fps 15 tv://<br />
<br />
I have yet to get it working with vlc or any other software such as xawtv. If you know how, please update this.<br />
<br />
*'''NOTE:''' For anyone who has accidentally disabled Auto Exposure for their webcam in luvcview (making the image dark), and can't enable it again, do the following:<br />
<br />
Install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14468 libwebcam from the AUR].<br />
<br />
Issue the following command:<br />
$ uvcdynctrl --set "Exposure, Auto" 4<br />
<br />
{{Note | Be sure the "OS Installation" option is set to "finished" in the BIOS' "Advanced" tab or your camera may not work in some applications (like Skype).}}<br />
<br />
{{Note | Make sure you are a member of the video group edit /etc/group and add your username to video}}<br />
<br />
====Microphone====<br />
<br />
Solution for problems with the internal microphone.<br />
<br />
1. First of all set in alsamixer "Input Source" to "i-Mic"<br />
<br />
2. Increase "Capture" and "i-Mic Boost" to your needs<br />
<br />
3. Edit {{Filename|/etc/asound.state}} the following, change the 2 "false" to "true" like showing:<br />
....snap.....<br />
control.11 {<br />
comment.access 'read write'<br />
comment.type BOOLEAN<br />
comment.count 2<br />
iface MIXER<br />
name 'Capture Switch'<br />
value.0 true<br />
value.1 true<br />
}<br />
....snap....<br />
<br />
4. After editing run following as root<br />
# alsactl restore<br />
<br />
5. Now your internal microphone should be working.<br />
<br />
===Getting Hot Keys, Graphic Indicators and Shutdown with the Power Button Working===<br />
<br />
If you want to have working hot keys (wifi, brightness, volume etc), an OSD, and be able to assign actions to things like the powerbutton and closing the lid, then you should install '''ighea's acpi-eee''' package.<br />
<br />
==== ighea's acpi-eee ====<br />
<br />
Get the latest package from [http://kapsi.fi/ighea/eee/acpi-eee/ here].<br />
<br />
The package can be easily installed with:<br />
# pacman -U acpi-eee-10.0-1-i686.pkg.tar.gz<br />
<br />
See messages during installation for more details and don't forget to edit {{Filename|/etc/acpi/eee.conf}} to suit your tastes.<br />
<br />
*For those who use the wireless on/off acpi command; the {{Codeline|NETWORK_UP_COMMAND&#61;""}} setting in {{Filename|/etc/acpi/eee.conf}}, when applicable, should at least release the network. For example, using netcfg2, {{Codeline|NETWORK_UP_COMMAND&#61;"netcfg2 -a"}} will release the connections from before disabling wireless, allowing new ones to be made without netcfg thinking that it's already connected. It is also possible to reconnect to your previous network, however, the network tool you use needs to have a somewhat lengthy timeout as it takes 15-20 seconds for your wireless device to reappear. <br />
<br />
{{Note | Make sure '''asusosd''' is enabled on startup if you want to have the Graphic Indicators from Xandros. To run asusosd simply type {{Codeline|asusosd &}} at a command prompt.}}<br />
<br />
==Additional Tips & Tweaks==<br />
<br />
===Tweaking kernel-eee===<br />
<br />
Toofishes' kernel, also known as kernel-eee, can be recompiled to include custom features. You can download toofishes' kernel PKGBUILD and all the nesseary files from his gitweb by installing the git package and using the following command:<br />
<br />
$ git clone git://code.toofishes.net/dan/eee.git<br />
<br />
or if you are behind a proxy and can't use the git protocol:<br />
<br />
$ git clone http://code.toofishes.net/git/dan/eee.git<br />
<br />
There are two ways to tweak the kernel. The first is simply to edit the {{Filename|kernelconfig}} file with your favorite editor and the second is to insert a {{Codeline|make menuconfig}} line into the PKGBUILD before the kernel's compilation.<br />
<br />
===Using Wine with toofishes' kernel===<br />
<br />
Normally, Wine won't work with toofishes' kernel because it is compiled with VMSPLIT_2G_OPT option. In order to use Wine with toofishes' kernel, you have to recompile his kernel with VMSPLIT_3G option.<br />
<br />
Download the kernel PKGBUILD and all the necessary files from toofishes' gitweb using the above instructions, then change the following lines in the {{Filename|kernelconfig}} file from this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 # CONFIG_VMSPLIT_3G is not set<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 CONFIG_VMSPLIT_2G_OPT=y<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
to this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 CONFIG_VMSPLIT_3G=y<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 # CONFIG_VMSPLIT_2G_OPT is not set<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
<br />
Compile and install the kernel and Wine should now work.<br />
<br />
===Power down with the power button===<br />
<br />
{{Note | If you are using ighea's acpi-eee or dkite's acpid_eee package then you should already be able to shutdown by pressing the power button and should not need to do this.}}<br />
<br />
The two alternatives here are described in [[Allow users to shutdown]].<br />
<br />
If you don't already or don't plan to use sudo, it may be simpler to use the setuid /sbin/halt method, otherwise using sudo is preferred.<br />
<br />
Below are all the steps required for the sudo method. If you want to use the setuid method, read the article linked above and perform the 'power' file step here, while omitting the 'sudo' in it.<br />
<br />
# pacman -S sudo<br />
<br />
As root, do the following:<br />
# visudo<br />
<br />
Add the following line to the file:<br />
USER HOST = NOPASSWD: /sbin/poweroff<br />
<br />
Where {{Codeline|USER}} is the user you want to be able to power down with and {{Codeline|HOST}} is your hostname (from {{Filename|/etc/rc.conf}}).<br />
<br />
Now, create a file called {{Filename|/etc/acpi/events/power}}, containing:<br />
# /etc/acpi/events/power<br />
# This is called when the user presses the power button<br />
<br />
event=button/power (PWR.||PBTN)<br />
action=sudo /sbin/poweroff<br />
<br />
Make sure that you execute:<br />
# /etc/rc.d/acpid start<br />
<br />
And/or add acpid to the daemons list in {{Filename|/etc/rc.conf}}:<br />
DAEMONS=(hal, acpid ...)<br />
<br />
===Use cpufreq for power saving===<br />
<br />
{{Note | toofishes dropped CPU scaling from his latest kernel builds, due to the fact, confirmed by other users, that there were no effective power savings with p4-clockmod's module, and it introduced "unacceptable latency", even with relatively low percentage up thresholds.}}<br />
<br />
Install cpufrequtitls:<br />
# pacman -S cpufrequtils<br />
<br />
For scaling down the processor you have to load the p4_clockmod module. Insert it into your {{Filename|/etc/rc.conf}} MODULES array for loading it at startup. <br />
MODULES=(... p4_clockmod ...)<br />
<br />
Add 'cpufreq' to the DAEMONS array in {{Filename|/etc/rc.conf}} to have it start on startup.<br />
DAEMONS=(... cpufreq ...)<br />
<br />
Add the following into {{Filename|/etc/conf.d/cpufreq}}:<br />
governor="ondemand"<br />
min_freq="113MHz"<br />
max_freq="900MHz"<br />
<br />
With enabled cpufreq it scales the processor between 113MHz up to max. frequency. That should save a lot on battery power. The stated 900MHz will be never reached by the eeePC, the p4_clockmod reports a wrong frequency here. But scaling works, you can feel it in the performance of eeePC that he slow down the processor.<br />
<br />
{{Note | The merits of p4-clockmod are debatable. Particularly on the EEEPC 701, battery time isn't extended due to its usage, and some users have even reported less battery duration. More hints to the reasons why can be read in [http://www.codemonkey.org.uk/2009/01/18/forthcoming-p4clockmod/ this] fine blog entry.}}<br />
<br />
===More responsive system with ondemand governor===<br />
The default up_threshold (where it will bump to a faster speed) for the CPU governor is 80, which means it will increase the CPU speed when utilization is above 80%. This can make X applications have a bit of lag. <br />
<br />
Try changing this value:<br />
$ sudo bash -c "echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold"<br />
<br />
With 40 it still leaves the majority of CPU cycles at the lowest available clock speed but increases responsiveness. You can add this line to one of your startup scripts (such as {{Filename|/etc/rc.local}}) if you wish to keep it, for example:<br />
<br />
#!/bin/bash<br />
#<br />
# /etc/rc.local: Local multi-user startup script.<br />
#<br />
<br />
echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold<br />
<br />
Also, following line is also reported to help makes system more responsive. You can use it by adding it to your {{Filename|/etc/rc.local}}:<br />
echo 2000000 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate<br />
<br />
===Speeding up udev for faster boot===<br />
*[[Speedup udev]]<br />
*http://dev.laptop.org/ticket/4349<br />
*[http://www.eeesale.com/Asus-Eee-PC-overclock-Benchmarks.htm Speed up the Eee PC]<br />
<br />
You can also disable the autoload by editing your {{Filename|[[rc.conf]]}}:<br />
...<br />
MOD_AUTOLOAD="no"<br />
...<br />
MODULES=(pciehp ath5k)<br />
<br />
===Update your BIOS without Xandros===<br />
{{Warning | You can break your system, do not update if you are not sure of what you are doing!}}<br />
<br />
First, you need to download the ''.rom'' file.<br />
*[http://update.eeepc.asus.com/bios/ Asus' official BIOS]<br />
*[http://forum.eeeuser.com/viewtopic.php?id=3485 EeeUser's topic]<br />
<br />
You also need an USB stick formatted in FAT32. To format the USBStick, use the cfdisk tool:<br />
# cfdisk /dev/sdc # could be something else than "c"<br />
<br />
Choose [delete], [type]: "fat32" (code 0B), [write] and then exit with [quit].<br />
<br />
NOTE to EEE PC 900 owners and possibly others: Using this method will require a flash drive formatted with a '''FAT16''' file-system. If the BIOS update process hangs up at "Reading file 900.ROM" for more than a few minutes then it should be safe to power down your EEE PC and reformat your flashdrive's file-system to the correct one. You can force FAT16 creation with the following command:<br />
# mkdosfs -F 16 /dev/device-path<br />
<br />
Now just copy the ''.rom'' on the USBStick :<br />
$ cp /somewhere/blabla/.../thecurrentnameofthefile.ROM /path/to/mounted/usb_stick/701.rom<br />
The name of the copy '''must''' be xxxx.rom where xxxx is the model of your eee PC. (i.e. 900 users it's 900.rom)<br />
<br />
Next step, reboot the eeepc with the USB stick pluged-in, and press Alt+F2. It will launch the built-in tool. Everything should be Ok, you can make a coffee during the update. When it asks you to push the power-button it has finished.<br />
<br />
At the next boot, you'll be invited to configure the BIOS. Check if the everything is enabled (my webcam and wireless were disabled after the update) and if it displays the good version in the main screen. It's done!<br />
<br />
=== More usable font sizes ===<br />
<br />
====The_glu's method====<br />
<br />
I found an easy solution that works on a 901:<br />
<br />
Edit {{Filename|/etc/X11/xinit/xserverrc}} and add "-dpi 134":<br />
exec /usr/bin/X -nolisten tcp -dpi 134<br />
<br />
Restart X and fonts should have the correct size. Notice it's won't works if you have Xft*dpi: in your {{Filename|.XDefaults}}.<br />
<br />
You don't need to edit your config file to set a smaller font size, I you did you should set font-size to 10 or you will have to small fonts...<br />
<br />
==== Old method ====<br />
<br />
On a default installation with Xfce 4 my font sizes were too big, here is what I did to sort them out.<br />
<br />
First, I set the DPI by adding the following to {{Filename|~/.Xdefaults}}:<br />
Xft*dpi: 134<br />
<br />
This then caused the fonts to be even bigger, so I set them all to be font-size 6 by adding the following into {{Filename|~/.gtkrc-2.0}} (note that this will be overwritten if you use any tools to change GTK settings):<br />
style "user-font"<br />
{<br />
font_name="Bitstream Vera Sans 6"<br />
}<br />
widget_class "*" style "user-font"<br />
<br />
To do the same with KDE fonts (without KDE installed) you have to add the following to {{Filename|~/.kde/share/config/kdeglobals}}:<br />
[General]<br />
StandardFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
activeFont=Bitstream Vera Sans,6,-1,5,75,0,0,0,0,0<br />
fixed=Bitstream Vera Sans Mono,6,-1,5,50,0,0,0,0,0<br />
font=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
menuFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
taskbarFont=Bitstream Vera Sans,6,-1,5,50,1,0,0,0,0<br />
toolBarFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
<br />
To make your fonts even prettier enable the [[Fonts#Fonts_with_LCD_filter_enabled|LCD Fonts]].<br />
<br />
==== Alternative Method ====<br />
<br />
For me it worked far better to open the gnome appearance control panel, go to the fonts tab, click defaults, and change the resolution to be 96 dpi. Changing .Xdefaults doesnt work when running gnome, as gnome-settings-daemon overrides it. You can then leave all font sizes at their default, and things should look good. Simply changing the font sizes and leaving the DPI at its technically correct value (~134) gave me weird layout problems in some apps, and oddly large fonts in others.<br />
<br />
==Known problems and their solutions==<br />
<br />
===Wireless doesn't work, even after installing custom Madwifi module===<br />
<br />
I found that Arch tried to use the ath5k module for wireless, and that meant it took control of the card rather than ath_pci (the module I had compiled and installed). I got a Madwifi status 3 message in dmesg when this happened.<br />
<br />
The solution is to blacklist the ath5k module in {{Filename|/etc/rc.conf}}:<br />
<br />
MODULES = ( ... !ath5k ... )<br />
<br />
===Laggy or Unresponsive ACPI Events===<br />
<br />
The latest kernel (2.6.26) introduces new problems with Eee's ACPI events handling. Basically, ACPI events become very laggy and after some time ACPI get disabled after a heavy usage (e.g. changing volume, brightness). This problem affects both stock kernel and toofishes' kernel.<br />
<br />
It appears that the solution is to apply this [http://bugzilla.kernel.org/attachment.cgi?id=16862 patch] ([http://bugzilla.kernel.org/show_bug.cgi?id=10724 original bug report]) to the kernel. <br />
<br />
{{Note | The latest toofishes' kernel, version 2.6.26-1, now includes the patch, but you can still use ighea's one for the extras features listed below.}}<br />
<br />
Until toofishes update his kernel to include the patch, you can use ighea's slightly modified toofishes' kernel that included the above patch, as well as other modifications:<br />
<br />
*Support for Wine <br />
*uvesafb is built as module <br />
*Use [http://bbs.archlinux.org/viewtopic.php?pid=393860#p393860 new eeepc-laptop driver] (which also handles fan-control) instead of older acus_acpi or asus-laptop -drivers.<br />
<br />
You can get the modified kernel, as well as the associative packages, from [http://koti.kapsi.fi/~ighea/eee/kernel-eee/ here].<br />
<br />
After you have downloaded the packages, Install them using this command:<br />
# pacman -U kernel-eee-2.6.26-1-i686.pkg.tar.gz madwifi-eee-svn-3752-1-i686.pkg.tar.gz <br />
<br />
You might also want to use IgnorePkg-line in {{Filename|/etc/pacman.conf}} to hold packages from being accidentally updated.<br />
IgnorePkg = kernel-eee madwifi-eee-svn<br />
<br />
Also don't forget to upgrade ighea's acpi-eee package to version 9.6.<br />
<br />
===Shutdown Problem===<br />
<br />
If your Eee won't shutdown properly (i.e. the power indicator LED is on but the LCD screen is off), then add the following lines to your {{Filename|/etc/rc.local.shutdown}} file.<br />
<pre><br />
#! /bin/bash<br />
#<br />
# /etc/rc.local.shutdown: Local shutdown script.<br />
#<br />
<br />
# Comment or uncomment the following two lines according to your system configuration.<br />
<br />
/etc/rc.d/mpd stop # If you're using mpd, then you have to stop its daemon first.<br />
<br />
/etc/rc.d/alsa stop # If you're using ALSA daemon, then you also have to stop it.<br />
<br />
# The following line is Eee specific fix, you always need to have this line in /etc/rc.local.shutdown.<br />
<br />
echo -n "0000:00:1b.0" > /sys/bus/pci/drivers/HDA\ Intel/unbind<br />
</pre><br />
<br />
The above solution should fix the shutdown problem in most cases. But if for some reason the problem still persists, the module may not be able to be unloaded until after all services have finished. Do the above, then in {{Filename|/etc/rc.shutdown}} move <br />
<br />
if [ -x /etc/rc.local.shutdown ]; then<br />
/etc/rc.local.shutdown<br />
fi<br />
<br />
from where it was to directly above the line <br />
<br />
# Terminate all processes<br />
<br />
this will cause the {{Filename|rc.local.shutdown}} script to run after services have been exited. This fixed all issues for the person editing this note.<br />
<br />
===Unclean unmount during shutdown when having home directory mounted on SD card===<br />
<br />
If you experienced unclean unmount during shutdown when having your home directory on SD card, then add the following 3 lines to "Write to wtmp file before unmounting" section of your {{Filename|/etc/rc.shutdown}} file:<br />
<pre><br />
...<br />
<br />
stat_busy "Unmounting Filesystems"<br />
/bin/umount -a -t noramfs,notmpfs,nosysfs,noproc<br />
<br />
# Add these 3 lines<br />
sync;sync;sync;<br />
eject /dev/sdb # Or whichever is your SD-card's device name. /dev/disk/by-uuid/ followed by the UUID identifier is preferable though.<br />
sleep 3<br />
# End of hack<br />
<br />
stat_done<br />
<br />
...<br />
</pre><br />
<br />
===Booting from card without initrd===<br />
<br />
Let's say you decided to install Arch Linux on a card and compiled your own kernel (or used the kernel26eee kernel) without initrd. Card reader on EeePC is connected as an USB device. Unfortunately, USB storage devices are detected with a delay, so we must tell the kernel to wait until this device becomes available. You do this with "rootwait" option passed to kernel at boot time.<br />
<br />
===Sleeping and waking system on a card===<br />
<br />
If you have Arch Linux on a card, waking up from sleeping state will most likely fail. The only solution is to enable the CONFIG_USB_PERSIST option in kernel. The kernel26eee package should have this option enabled.<br />
<br />
The command to do this is:<br />
echo 1 >/sys/bus/usb/devices/.../power/persist<br />
<br />
Replace the {{Codeline|"..."}} with the device like 1-3 or 1-5 where the first number is the bus and the second is the device <br />
<br />
Each device that is connected to your computer gets an entry in the sysfs "system file system" it is a virtual file system like proc<br />
<br />
More info:<br />
*http://www.mjmwired.net/kernel/Documentation/usb/persist.txt<br />
*http://forum.eeeuser.com/viewtopic.php?id=22712<br />
<br />
===Display doesn't wake up properly===<br />
<br />
If you encounter black display (but apparently working system) after suspend/resume, consider using the "uswsusp" package (available in the official repositories) and correcting suspend2ram script in /etc/acpi, where you use this line to make the machine go to sleep:<br />
<br />
/usr/sbin/s2ram --force --vbe_post --vbe_mode<br />
<br />
==Battery Tests==<br />
<br />
The following are reported battery runtimes:<br />
<br />
{| class="wikitable" style="text-align:left"<br />
|+Battery runtimes<br />
|-<br />
! Task !! Series !! Wireless !! Screen Brightness !! FSB Speed !! Fan Speed !! Runtime !! Comments<br />
|-<br />
! DVD Playback<br />
| 701 || On || Max || 85mhz || 100% || 134min || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! DVD Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! AVI Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading AVI from SSD<br />
|-<br />
! IM and Surf<br />
| 701 || On || ~30% || ??? || low || 173min || Normal web-browsing, Flash should reduce runtime a lot !<br />
|-<br />
! Programming and PDF reading<br />
| 1000HA || Off || ~40% || ??? || low || +6hs || Using Evince and SPE under XFCE with camera and USB disabled<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || +4hs || Stock kernel without laptop-mode<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || 5hs || Stock kernel with laptop-mode and other tweaks<br />
|}<br />
<br />
N.B. - Will add battery runtimes as I am able to test them, please contribute.<br />
<br />
-- Grecko.1<br />
<br />
Still tweaking, but disabling everything from BIOS got me about 6 hours and a half. With eee-kernel, I *could* get a little more.<br />
<br />
-- ekuber</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=ASUS_Eee_PC_701&diff=86165ASUS Eee PC 7012009-12-03T12:37:34Z<p>Zodmaner: /* Getting Everything Working */</p>
<hr />
<div>{{stub}}<br />
[[Category:Getting and installing Arch (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|Русский|Инсталляция Arch Linux на Asus EEE PC}}<br />
{{i18n_links_end}}<br />
<br />
Most of this information is from the [http://bbs.archlinux.org/viewtopic.php?pid=297632 Arch Forum]. You can also find a lot of helpful information from the [http://forum.eeeuser.com/ EEEUser Forum]. <br />
<br />
==Before You Begin==<br />
<br />
===Avoiding Pitfalls===<br />
<br />
The install is pretty normal, except that you'll need to [http://forum.eeeuser.com/viewtopic.php?id=890 avoid the pitfalls] of our alternative Linux install:<br />
<br />
# Never choose to use a journaling file system on the SSD partitions<br />
# Never use a swap partition on the SSD<br />
# Edit your new installation fstab to mount the SSD partitions "noatime"<br />
# Never log messages or error log to the SSD<br />
<br />
The rules ensure that we won't reach the maximum limit of writes on our SSD faster than we should, although this is being contested (see [http://wiki.eeeuser.com/ssd_write_limit this link] and [http://www.storagesearch.com/ssdmyths-endurance.html this other link]).<br />
<br />
Some other minor modifications can be made to decrease number of non-mandatory writes by applications: deactivate {{Filename|~/.viminfo}} in vi, deactivate less history file ({{Filename|~/.lesshst}}), and so on.<br />
<br />
===Choosing Your Installation Media===<br />
<br />
The Eee PC does not have an optical drive installed on the machine. This means you will need to install Arch Linux through one of the alternative methods:<br />
<br />
# [[Beginners_Guide#USB_stick|USB stick]] '''(Recommended)'''<br />
# External USB CD-ROM drive<br />
# [[PXE|Network (PXE)]]<br />
<br />
==Installing Arch Linux==<br />
<br />
With the release of the 2009.08 installation media, installing Arch Linux on Asus Eee PC model 701 is pretty easy and straightforward since the stock kernel on Arch installation media support all of the 701 hardwares out of the box. <br />
<br />
Therefore, aside from the recommended partition scheme described below, there shouldn't be any other differences between installing Arch Linux on the 701 and any other computer. You should be able to successfully install Arch on the 701 by following instructions on [[Beginners_Guide|Beginners' Guide]] without any problem.<br />
<br />
===Prepare Hard Drive===<br />
<br />
<br />
The most important different between the 701 and other machines is that the 701 use SSD drive instead of normal hard drive. This section advise on how to set up a partition scheme that is best suited to the 701. <br />
<br />
The default Eee PC drive is split up into four partitions (here is [http://forum.eeeuser.com/viewtopic.php?id=1805 some information] about the partitioning): <br />
<br />
* It is easiest to wipe the existing partitions and use one or two partitions for your install. One partition would be just '/', and two partitions would be '/boot' and '/'.<br />
* Choose "NONE" for swap in case your eee has a SSD (see #2 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]])<br />
* Select "ext2" as your filesystem in case your eee has a SSD (see #1 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]]). If your model has a standard HD choose "ext3".<br />
<br />
==Asus Eee PC model 701 repository from toofishes==<br />
<br />
{{ Note | You might want to do this after you have successfully installed Arch Linux on the 701.}}<br />
<br />
Toofishes created a repository for the 701. The repository contained customized kernel built specifically for the 701 and some additional packages. <br />
<br />
While the stock Arch kernel works very well with the 701, toofishes kernel have the following advantages:<br />
<br />
* Faster boot time &ndash; because most of the modules have been compile into the kernel, no time is wasted waiting for the modules to load<br />
* No need to generate initial ramdisk every time a kernel is upgrade <br />
* Smaller size (around 4MB)<br />
<br />
To use the repository, add:<br />
[eee]<br />
Server = http://code.toofishes.net/packages/eee<br />
to your {{Filename|/etc/pacman.conf}} and then issue:<br />
pacman -Syu<br />
<br />
===Package List===<br />
Currently, toofishes' repository contains the following packages:<br />
<br />
*'''kernel-eee''' &ndash; customized kernel for Asus Eee PC model 701<br />
*'''luvcview''' &ndash; webcam program for testing webcam driver<br />
<br />
===Kernel-eee Installation Instruction===<br />
Simply use pacman to install the package you need. Install the packages with this command:<br />
# pacman -Sy kernel-eee<br />
<br />
then, add the following to {{Filename|/boot/grub/menu.lst}}; note that no initrd is needed:<br />
# (2) Arch Linux<br />
title Arch Linux Eee kernel<br />
root (hd0,0)<br />
kernel /boot/vmlinuzeee root=/dev/sda1 ro<br />
<br />
Restart and select Arch Linux Eee kernel from the grub boot menu.<br />
<br />
==Getting Everything Working==<br />
<br />
The following is the guide on how to get the rest of your system working.<br />
<br />
===X===<br />
<br />
Install X by follow instructions on the [[Beginners_Guide#Step_2:_Install_X|Beginners' Guide]], then install the Intel graphics driver:<br />
# pacman -Sy xf86-video-intel<br />
<br />
You may also wish to install the Synaptics drivers for the touchpad (not needed for Eee PC 900):<br />
# pacman -Sy xf86-input-synaptics<br />
<br />
With the latest version of X from extra repository, X should work on the 701 '''without any need for xorg.conf'''. However, if for some reason you wish to use an xorg.conf file, you can use an old [[Example_Xorg_configuration_file_for_Asus_Eee_PC_701|example Xorg configuration file for Asus Eee PC model 701]] as a template or automatically generate a new one by running the following command:<br />
<br />
# Xorg -configure<br />
<br />
Consult [[Xorg_input_hotplugging|Xorg Input Hotplugging]] for more information on how to config input devices using HAL.<br />
<br />
The synaptics stuff can be removed if you have a EEE PC 900. The {{Codeline|Option "AutoAddDevices"}} line is important if you need a non-default XkbLayout, because if you don't have it, xorg will find 3 keyboards (at least with the 900 model).<br />
The Modeline has obviously to be removed or modified if you dont have a model with this resolution.<br />
<br />
===Sound, Webcam & Microphone===<br />
<br />
====Sound====<br />
<br />
For most people, sound working right out of the box with no troubles (after you have followed the [[Beginners_Guide#Step_1:_Configure_sound_with_alsamixer|guide]], of course). However, others might need to add the following line to {{Filename|/etc/modprobe.conf}}<br />
options snd-hda-intel model=3stack-dig<br />
or the following one for the Eee PC 900 model<br />
options snd-hda-intel model=auto<br />
<br />
If your internal microphone doesn't work, you probably have to turn the capture feature on. Simply fire up alsamixer, find your Capture control, and press spacebar to enable it.<br />
<br />
====Webcam====<br />
<br />
You can enable your built-in webcam by adding the following line to your {{Filename|/etc/rc.local}} file.<br />
<br />
echo 1 > /sys/devices/platform/eeepc/camera<br />
<br />
If you want the webcam application that the default Xandos installation uses, install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14469 ucview from the AUR].<br />
<br />
The webcam also works fine with the latest version of Skype.<br />
<br />
If you already have mplayer installed you can launch:<br />
$ mplayer -fps 15 tv://<br />
<br />
I have yet to get it working with vlc or any other software such as xawtv. If you know how, please update this.<br />
<br />
*'''NOTE:''' For anyone who has accidentally disabled Auto Exposure for their webcam in luvcview (making the image dark), and can't enable it again, do the following:<br />
<br />
Install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14468 libwebcam from the AUR].<br />
<br />
Issue the following command:<br />
$ uvcdynctrl --set "Exposure, Auto" 4<br />
<br />
{{Note | Be sure the "OS Installation" option is set to "finished" in the BIOS' "Advanced" tab or your camera may not work in some applications (like Skype).}}<br />
<br />
{{Note | Make sure you are a member of the video group edit /etc/group and add your username to video}}<br />
<br />
====Microphone====<br />
<br />
Solution for problems with the internal microphone.<br />
<br />
1. First of all set in alsamixer "Input Source" to "i-Mic"<br />
<br />
2. Increase "Capture" and "i-Mic Boost" to your needs<br />
<br />
3. Edit {{Filename|/etc/asound.state}} the following, change the 2 "false" to "true" like showing:<br />
....snap.....<br />
control.11 {<br />
comment.access 'read write'<br />
comment.type BOOLEAN<br />
comment.count 2<br />
iface MIXER<br />
name 'Capture Switch'<br />
value.0 true<br />
value.1 true<br />
}<br />
....snap....<br />
<br />
4. After editing run following as root<br />
# alsactl restore<br />
<br />
5. Now your internal microphone should be working.<br />
<br />
===Getting Hot Keys, Graphic Indicators and Shutdown with the Power Button Working===<br />
<br />
If you want to have working hot keys (wifi, brightness, volume etc), an OSD, and be able to assign actions to things like the powerbutton and closing the lid, then you should install '''ighea's acpi-eee''' package.<br />
<br />
==== ighea's acpi-eee ====<br />
<br />
Get the latest package from [http://kapsi.fi/ighea/eee/acpi-eee/ here].<br />
<br />
The package can be easily installed with:<br />
# pacman -U acpi-eee-10.0-1-i686.pkg.tar.gz<br />
<br />
See messages during installation for more details and don't forget to edit {{Filename|/etc/acpi/eee.conf}} to suit your tastes.<br />
<br />
*For those who use the wireless on/off acpi command; the {{Codeline|NETWORK_UP_COMMAND&#61;""}} setting in {{Filename|/etc/acpi/eee.conf}}, when applicable, should at least release the network. For example, using netcfg2, {{Codeline|NETWORK_UP_COMMAND&#61;"netcfg2 -a"}} will release the connections from before disabling wireless, allowing new ones to be made without netcfg thinking that it's already connected. It is also possible to reconnect to your previous network, however, the network tool you use needs to have a somewhat lengthy timeout as it takes 15-20 seconds for your wireless device to reappear. <br />
<br />
{{Note | Make sure '''asusosd''' is enabled on startup if you want to have the Graphic Indicators from Xandros. To run asusosd simply type {{Codeline|asusosd &}} at a command prompt.}}<br />
<br />
==Additional Tips & Tweaks==<br />
<br />
===Tweaking kernel-eee===<br />
<br />
Toofishes' kernel, also known as kernel-eee, can be recompiled to include custom features. You can download toofishes' kernel PKGBUILD and all the nesseary files from his gitweb by installing the git package and using the following command:<br />
<br />
$ git clone git://code.toofishes.net/dan/eee.git<br />
<br />
or if you are behind a proxy and can't use the git protocol:<br />
<br />
$ git clone http://code.toofishes.net/git/dan/eee.git<br />
<br />
There are two ways to tweak the kernel. The first is simply to edit the {{Filename|kernelconfig}} file with your favorite editor and the second is to insert a {{Codeline|make menuconfig}} line into the PKGBUILD before the kernel's compilation.<br />
<br />
===Using Wine with toofishes' kernel===<br />
<br />
Normally, Wine won't work with toofishes' kernel because it is compiled with VMSPLIT_2G_OPT option. In order to use Wine with toofishes' kernel, you have to recompile his kernel with VMSPLIT_3G option.<br />
<br />
Download the kernel PKGBUILD and all the necessary files from toofishes' gitweb using the above instructions, then change the following lines in the {{Filename|kernelconfig}} file from this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 # CONFIG_VMSPLIT_3G is not set<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 CONFIG_VMSPLIT_2G_OPT=y<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
to this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 CONFIG_VMSPLIT_3G=y<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 # CONFIG_VMSPLIT_2G_OPT is not set<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
<br />
Compile and install the kernel and Wine should now work.<br />
<br />
===Power down with the power button===<br />
<br />
{{Note | If you are using ighea's acpi-eee or dkite's acpid_eee package then you should already be able to shutdown by pressing the power button and should not need to do this.}}<br />
<br />
The two alternatives here are described in [[Allow users to shutdown]].<br />
<br />
If you don't already or don't plan to use sudo, it may be simpler to use the setuid /sbin/halt method, otherwise using sudo is preferred.<br />
<br />
Below are all the steps required for the sudo method. If you want to use the setuid method, read the article linked above and perform the 'power' file step here, while omitting the 'sudo' in it.<br />
<br />
# pacman -S sudo<br />
<br />
As root, do the following:<br />
# visudo<br />
<br />
Add the following line to the file:<br />
USER HOST = NOPASSWD: /sbin/poweroff<br />
<br />
Where {{Codeline|USER}} is the user you want to be able to power down with and {{Codeline|HOST}} is your hostname (from {{Filename|/etc/rc.conf}}).<br />
<br />
Now, create a file called {{Filename|/etc/acpi/events/power}}, containing:<br />
# /etc/acpi/events/power<br />
# This is called when the user presses the power button<br />
<br />
event=button/power (PWR.||PBTN)<br />
action=sudo /sbin/poweroff<br />
<br />
Make sure that you execute:<br />
# /etc/rc.d/acpid start<br />
<br />
And/or add acpid to the daemons list in {{Filename|/etc/rc.conf}}:<br />
DAEMONS=(hal, acpid ...)<br />
<br />
===Use cpufreq for power saving===<br />
<br />
{{Note | toofishes dropped CPU scaling from his latest kernel builds, due to the fact, confirmed by other users, that there were no effective power savings with p4-clockmod's module, and it introduced "unacceptable latency", even with relatively low percentage up thresholds.}}<br />
<br />
Install cpufrequtitls:<br />
# pacman -S cpufrequtils<br />
<br />
For scaling down the processor you have to load the p4_clockmod module. Insert it into your {{Filename|/etc/rc.conf}} MODULES array for loading it at startup. <br />
MODULES=(... p4_clockmod ...)<br />
<br />
Add 'cpufreq' to the DAEMONS array in {{Filename|/etc/rc.conf}} to have it start on startup.<br />
DAEMONS=(... cpufreq ...)<br />
<br />
Add the following into {{Filename|/etc/conf.d/cpufreq}}:<br />
governor="ondemand"<br />
min_freq="113MHz"<br />
max_freq="900MHz"<br />
<br />
With enabled cpufreq it scales the processor between 113MHz up to max. frequency. That should save a lot on battery power. The stated 900MHz will be never reached by the eeePC, the p4_clockmod reports a wrong frequency here. But scaling works, you can feel it in the performance of eeePC that he slow down the processor.<br />
<br />
{{Note | The merits of p4-clockmod are debatable. Particularly on the EEEPC 701, battery time isn't extended due to its usage, and some users have even reported less battery duration. More hints to the reasons why can be read in [http://www.codemonkey.org.uk/2009/01/18/forthcoming-p4clockmod/ this] fine blog entry.}}<br />
<br />
===More responsive system with ondemand governor===<br />
The default up_threshold (where it will bump to a faster speed) for the CPU governor is 80, which means it will increase the CPU speed when utilization is above 80%. This can make X applications have a bit of lag. <br />
<br />
Try changing this value:<br />
$ sudo bash -c "echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold"<br />
<br />
With 40 it still leaves the majority of CPU cycles at the lowest available clock speed but increases responsiveness. You can add this line to one of your startup scripts (such as {{Filename|/etc/rc.local}}) if you wish to keep it, for example:<br />
<br />
#!/bin/bash<br />
#<br />
# /etc/rc.local: Local multi-user startup script.<br />
#<br />
<br />
echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold<br />
<br />
Also, following line is also reported to help makes system more responsive. You can use it by adding it to your {{Filename|/etc/rc.local}}:<br />
echo 2000000 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate<br />
<br />
===Speeding up udev for faster boot===<br />
*[[Speedup udev]]<br />
*http://dev.laptop.org/ticket/4349<br />
*[http://www.eeesale.com/Asus-Eee-PC-overclock-Benchmarks.htm Speed up the Eee PC]<br />
<br />
You can also disable the autoload by editing your {{Filename|[[rc.conf]]}}:<br />
...<br />
MOD_AUTOLOAD="no"<br />
...<br />
MODULES=(pciehp ath5k)<br />
<br />
===Update your BIOS without Xandros===<br />
{{Warning | You can break your system, do not update if you are not sure of what you are doing!}}<br />
<br />
First, you need to download the ''.rom'' file.<br />
*[http://update.eeepc.asus.com/bios/ Asus' official BIOS]<br />
*[http://forum.eeeuser.com/viewtopic.php?id=3485 EeeUser's topic]<br />
<br />
You also need an USB stick formatted in FAT32. To format the USBStick, use the cfdisk tool:<br />
# cfdisk /dev/sdc # could be something else than "c"<br />
<br />
Choose [delete], [type]: "fat32" (code 0B), [write] and then exit with [quit].<br />
<br />
NOTE to EEE PC 900 owners and possibly others: Using this method will require a flash drive formatted with a '''FAT16''' file-system. If the BIOS update process hangs up at "Reading file 900.ROM" for more than a few minutes then it should be safe to power down your EEE PC and reformat your flashdrive's file-system to the correct one. You can force FAT16 creation with the following command:<br />
# mkdosfs -F 16 /dev/device-path<br />
<br />
Now just copy the ''.rom'' on the USBStick :<br />
$ cp /somewhere/blabla/.../thecurrentnameofthefile.ROM /path/to/mounted/usb_stick/701.rom<br />
The name of the copy '''must''' be xxxx.rom where xxxx is the model of your eee PC. (i.e. 900 users it's 900.rom)<br />
<br />
Next step, reboot the eeepc with the USB stick pluged-in, and press Alt+F2. It will launch the built-in tool. Everything should be Ok, you can make a coffee during the update. When it asks you to push the power-button it has finished.<br />
<br />
At the next boot, you'll be invited to configure the BIOS. Check if the everything is enabled (my webcam and wireless were disabled after the update) and if it displays the good version in the main screen. It's done!<br />
<br />
=== More usable font sizes ===<br />
<br />
====The_glu's method====<br />
<br />
I found an easy solution that works on a 901:<br />
<br />
Edit {{Filename|/etc/X11/xinit/xserverrc}} and add "-dpi 134":<br />
exec /usr/bin/X -nolisten tcp -dpi 134<br />
<br />
Restart X and fonts should have the correct size. Notice it's won't works if you have Xft*dpi: in your {{Filename|.XDefaults}}.<br />
<br />
You don't need to edit your config file to set a smaller font size, I you did you should set font-size to 10 or you will have to small fonts...<br />
<br />
==== Old method ====<br />
<br />
On a default installation with Xfce 4 my font sizes were too big, here is what I did to sort them out.<br />
<br />
First, I set the DPI by adding the following to {{Filename|~/.Xdefaults}}:<br />
Xft*dpi: 134<br />
<br />
This then caused the fonts to be even bigger, so I set them all to be font-size 6 by adding the following into {{Filename|~/.gtkrc-2.0}} (note that this will be overwritten if you use any tools to change GTK settings):<br />
style "user-font"<br />
{<br />
font_name="Bitstream Vera Sans 6"<br />
}<br />
widget_class "*" style "user-font"<br />
<br />
To do the same with KDE fonts (without KDE installed) you have to add the following to {{Filename|~/.kde/share/config/kdeglobals}}:<br />
[General]<br />
StandardFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
activeFont=Bitstream Vera Sans,6,-1,5,75,0,0,0,0,0<br />
fixed=Bitstream Vera Sans Mono,6,-1,5,50,0,0,0,0,0<br />
font=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
menuFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
taskbarFont=Bitstream Vera Sans,6,-1,5,50,1,0,0,0,0<br />
toolBarFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
<br />
To make your fonts even prettier enable the [[Fonts#Fonts_with_LCD_filter_enabled|LCD Fonts]].<br />
<br />
==== Alternative Method ====<br />
<br />
For me it worked far better to open the gnome appearance control panel, go to the fonts tab, click defaults, and change the resolution to be 96 dpi. Changing .Xdefaults doesnt work when running gnome, as gnome-settings-daemon overrides it. You can then leave all font sizes at their default, and things should look good. Simply changing the font sizes and leaving the DPI at its technically correct value (~134) gave me weird layout problems in some apps, and oddly large fonts in others.<br />
<br />
==Known problems and their solutions==<br />
<br />
===Wireless doesn't work, even after installing custom Madwifi module===<br />
<br />
I found that Arch tried to use the ath5k module for wireless, and that meant it took control of the card rather than ath_pci (the module I had compiled and installed). I got a Madwifi status 3 message in dmesg when this happened.<br />
<br />
The solution is to blacklist the ath5k module in {{Filename|/etc/rc.conf}}:<br />
<br />
MODULES = ( ... !ath5k ... )<br />
<br />
===Laggy or Unresponsive ACPI Events===<br />
<br />
The latest kernel (2.6.26) introduces new problems with Eee's ACPI events handling. Basically, ACPI events become very laggy and after some time ACPI get disabled after a heavy usage (e.g. changing volume, brightness). This problem affects both stock kernel and toofishes' kernel.<br />
<br />
It appears that the solution is to apply this [http://bugzilla.kernel.org/attachment.cgi?id=16862 patch] ([http://bugzilla.kernel.org/show_bug.cgi?id=10724 original bug report]) to the kernel. <br />
<br />
{{Note | The latest toofishes' kernel, version 2.6.26-1, now includes the patch, but you can still use ighea's one for the extras features listed below.}}<br />
<br />
Until toofishes update his kernel to include the patch, you can use ighea's slightly modified toofishes' kernel that included the above patch, as well as other modifications:<br />
<br />
*Support for Wine <br />
*uvesafb is built as module <br />
*Use [http://bbs.archlinux.org/viewtopic.php?pid=393860#p393860 new eeepc-laptop driver] (which also handles fan-control) instead of older acus_acpi or asus-laptop -drivers.<br />
<br />
You can get the modified kernel, as well as the associative packages, from [http://koti.kapsi.fi/~ighea/eee/kernel-eee/ here].<br />
<br />
After you have downloaded the packages, Install them using this command:<br />
# pacman -U kernel-eee-2.6.26-1-i686.pkg.tar.gz madwifi-eee-svn-3752-1-i686.pkg.tar.gz <br />
<br />
You might also want to use IgnorePkg-line in {{Filename|/etc/pacman.conf}} to hold packages from being accidentally updated.<br />
IgnorePkg = kernel-eee madwifi-eee-svn<br />
<br />
Also don't forget to upgrade ighea's acpi-eee package to version 9.6.<br />
<br />
===Shutdown Problem===<br />
<br />
If your Eee won't shutdown properly (i.e. the power indicator LED is on but the LCD screen is off), then add the following lines to your {{Filename|/etc/rc.local.shutdown}} file.<br />
<pre><br />
#! /bin/bash<br />
#<br />
# /etc/rc.local.shutdown: Local shutdown script.<br />
#<br />
<br />
# Comment or uncomment the following two lines according to your system configuration.<br />
<br />
/etc/rc.d/mpd stop # If you're using mpd, then you have to stop its daemon first.<br />
<br />
/etc/rc.d/alsa stop # If you're using ALSA daemon, then you also have to stop it.<br />
<br />
# The following line is Eee specific fix, you always need to have this line in /etc/rc.local.shutdown.<br />
<br />
echo -n "0000:00:1b.0" > /sys/bus/pci/drivers/HDA\ Intel/unbind<br />
</pre><br />
<br />
The above solution should fix the shutdown problem in most cases. But if for some reason the problem still persists, the module may not be able to be unloaded until after all services have finished. Do the above, then in {{Filename|/etc/rc.shutdown}} move <br />
<br />
if [ -x /etc/rc.local.shutdown ]; then<br />
/etc/rc.local.shutdown<br />
fi<br />
<br />
from where it was to directly above the line <br />
<br />
# Terminate all processes<br />
<br />
this will cause the {{Filename|rc.local.shutdown}} script to run after services have been exited. This fixed all issues for the person editing this note.<br />
<br />
===Unclean unmount during shutdown when having home directory mounted on SD card===<br />
<br />
If you experienced unclean unmount during shutdown when having your home directory on SD card, then add the following 3 lines to "Write to wtmp file before unmounting" section of your {{Filename|/etc/rc.shutdown}} file:<br />
<pre><br />
...<br />
<br />
stat_busy "Unmounting Filesystems"<br />
/bin/umount -a -t noramfs,notmpfs,nosysfs,noproc<br />
<br />
# Add these 3 lines<br />
sync;sync;sync;<br />
eject /dev/sdb # Or whichever is your SD-card's device name. /dev/disk/by-uuid/ followed by the UUID identifier is preferable though.<br />
sleep 3<br />
# End of hack<br />
<br />
stat_done<br />
<br />
...<br />
</pre><br />
<br />
===Booting from card without initrd===<br />
<br />
Let's say you decided to install Arch Linux on a card and compiled your own kernel (or used the kernel26eee kernel) without initrd. Card reader on EeePC is connected as an USB device. Unfortunately, USB storage devices are detected with a delay, so we must tell the kernel to wait until this device becomes available. You do this with "rootwait" option passed to kernel at boot time.<br />
<br />
===Sleeping and waking system on a card===<br />
<br />
If you have Arch Linux on a card, waking up from sleeping state will most likely fail. The only solution is to enable the CONFIG_USB_PERSIST option in kernel. The kernel26eee package should have this option enabled.<br />
<br />
The command to do this is:<br />
echo 1 >/sys/bus/usb/devices/.../power/persist<br />
<br />
Replace the {{Codeline|"..."}} with the device like 1-3 or 1-5 where the first number is the bus and the second is the device <br />
<br />
Each device that is connected to your computer gets an entry in the sysfs "system file system" it is a virtual file system like proc<br />
<br />
More info:<br />
*http://www.mjmwired.net/kernel/Documentation/usb/persist.txt<br />
*http://forum.eeeuser.com/viewtopic.php?id=22712<br />
<br />
===Display doesn't wake up properly===<br />
<br />
If you encounter black display (but apparently working system) after suspend/resume, consider using the "uswsusp" package (available in the official repositories) and correcting suspend2ram script in /etc/acpi, where you use this line to make the machine go to sleep:<br />
<br />
/usr/sbin/s2ram --force --vbe_post --vbe_mode<br />
<br />
==Battery Tests==<br />
<br />
The following are reported battery runtimes:<br />
<br />
{| class="wikitable" style="text-align:left"<br />
|+Battery runtimes<br />
|-<br />
! Task !! Series !! Wireless !! Screen Brightness !! FSB Speed !! Fan Speed !! Runtime !! Comments<br />
|-<br />
! DVD Playback<br />
| 701 || On || Max || 85mhz || 100% || 134min || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! DVD Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! AVI Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading AVI from SSD<br />
|-<br />
! IM and Surf<br />
| 701 || On || ~30% || ??? || low || 173min || Normal web-browsing, Flash should reduce runtime a lot !<br />
|-<br />
! Programming and PDF reading<br />
| 1000HA || Off || ~40% || ??? || low || +6hs || Using Evince and SPE under XFCE with camera and USB disabled<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || +4hs || Stock kernel without laptop-mode<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || 5hs || Stock kernel with laptop-mode and other tweaks<br />
|}<br />
<br />
N.B. - Will add battery runtimes as I am able to test them, please contribute.<br />
<br />
-- Grecko.1<br />
<br />
Still tweaking, but disabling everything from BIOS got me about 6 hours and a half. With eee-kernel, I *could* get a little more.<br />
<br />
-- ekuber</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=ASUS_Eee_PC_701&diff=86164ASUS Eee PC 7012009-12-03T12:36:15Z<p>Zodmaner: /* Asus Eee PC model 701 repository from toofishes */</p>
<hr />
<div>{{stub}}<br />
[[Category:Getting and installing Arch (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|Русский|Инсталляция Arch Linux на Asus EEE PC}}<br />
{{i18n_links_end}}<br />
<br />
Most of this information is from the [http://bbs.archlinux.org/viewtopic.php?pid=297632 Arch Forum]. You can also find a lot of helpful information from the [http://forum.eeeuser.com/ EEEUser Forum]. <br />
<br />
==Before You Begin==<br />
<br />
===Avoiding Pitfalls===<br />
<br />
The install is pretty normal, except that you'll need to [http://forum.eeeuser.com/viewtopic.php?id=890 avoid the pitfalls] of our alternative Linux install:<br />
<br />
# Never choose to use a journaling file system on the SSD partitions<br />
# Never use a swap partition on the SSD<br />
# Edit your new installation fstab to mount the SSD partitions "noatime"<br />
# Never log messages or error log to the SSD<br />
<br />
The rules ensure that we won't reach the maximum limit of writes on our SSD faster than we should, although this is being contested (see [http://wiki.eeeuser.com/ssd_write_limit this link] and [http://www.storagesearch.com/ssdmyths-endurance.html this other link]).<br />
<br />
Some other minor modifications can be made to decrease number of non-mandatory writes by applications: deactivate {{Filename|~/.viminfo}} in vi, deactivate less history file ({{Filename|~/.lesshst}}), and so on.<br />
<br />
===Choosing Your Installation Media===<br />
<br />
The Eee PC does not have an optical drive installed on the machine. This means you will need to install Arch Linux through one of the alternative methods:<br />
<br />
# [[Beginners_Guide#USB_stick|USB stick]] '''(Recommended)'''<br />
# External USB CD-ROM drive<br />
# [[PXE|Network (PXE)]]<br />
<br />
==Installing Arch Linux==<br />
<br />
With the release of the 2009.08 installation media, installing Arch Linux on Asus Eee PC model 701 is pretty easy and straightforward since the stock kernel on Arch installation media support all of the 701 hardwares out of the box. <br />
<br />
Therefore, aside from the recommended partition scheme described below, there shouldn't be any other differences between installing Arch Linux on the 701 and any other computer. You should be able to successfully install Arch on the 701 by following instructions on [[Beginners_Guide|Beginners' Guide]] without any problem.<br />
<br />
===Prepare Hard Drive===<br />
<br />
<br />
The most important different between the 701 and other machines is that the 701 use SSD drive instead of normal hard drive. This section advise on how to set up a partition scheme that is best suited to the 701. <br />
<br />
The default Eee PC drive is split up into four partitions (here is [http://forum.eeeuser.com/viewtopic.php?id=1805 some information] about the partitioning): <br />
<br />
* It is easiest to wipe the existing partitions and use one or two partitions for your install. One partition would be just '/', and two partitions would be '/boot' and '/'.<br />
* Choose "NONE" for swap in case your eee has a SSD (see #2 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]])<br />
* Select "ext2" as your filesystem in case your eee has a SSD (see #1 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]]). If your model has a standard HD choose "ext3".<br />
<br />
==Asus Eee PC model 701 repository from toofishes==<br />
<br />
{{ Note | You might want to do this after you have successfully installed Arch Linux on the 701.}}<br />
<br />
Toofishes created a repository for the 701. The repository contained customized kernel built specifically for the 701 and some additional packages. <br />
<br />
While the stock Arch kernel works very well with the 701, toofishes kernel have the following advantages:<br />
<br />
* Faster boot time &ndash; because most of the modules have been compile into the kernel, no time is wasted waiting for the modules to load<br />
* No need to generate initial ramdisk every time a kernel is upgrade <br />
* Smaller size (around 4MB)<br />
<br />
To use the repository, add:<br />
[eee]<br />
Server = http://code.toofishes.net/packages/eee<br />
to your {{Filename|/etc/pacman.conf}} and then issue:<br />
pacman -Syu<br />
<br />
===Package List===<br />
Currently, toofishes' repository contains the following packages:<br />
<br />
*'''kernel-eee''' &ndash; customized kernel for Asus Eee PC model 701<br />
*'''luvcview''' &ndash; webcam program for testing webcam driver<br />
<br />
===Kernel-eee Installation Instruction===<br />
Simply use pacman to install the package you need. Install the packages with this command:<br />
# pacman -Sy kernel-eee<br />
<br />
then, add the following to {{Filename|/boot/grub/menu.lst}}; note that no initrd is needed:<br />
# (2) Arch Linux<br />
title Arch Linux Eee kernel<br />
root (hd0,0)<br />
kernel /boot/vmlinuzeee root=/dev/sda1 ro<br />
<br />
Restart and select Arch Linux Eee kernel from the grub boot menu.<br />
<br />
==Getting Everything Working==<br />
<br />
By now, you should have Arch Linux installed. The following is the guide on how to get the rest of your system working.<br />
<br />
===X===<br />
<br />
Install X by follow instructions on the [[Beginners_Guide#Step_2:_Install_X|Beginners' Guide]], then install the Intel graphics driver:<br />
# pacman -Sy xf86-video-intel<br />
<br />
You may also wish to install the Synaptics drivers for the touchpad (not needed for Eee PC 900):<br />
# pacman -Sy xf86-input-synaptics<br />
<br />
With the latest version of X from extra repository, X should work on the 701 '''without any need for xorg.conf'''. However, if for some reason you wish to use an xorg.conf file, you can use an old [[Example_Xorg_configuration_file_for_Asus_Eee_PC_701|example Xorg configuration file for Asus Eee PC model 701]] as a template or automatically generate a new one by running the following command:<br />
<br />
# Xorg -configure<br />
<br />
Consult [[Xorg_input_hotplugging|Xorg Input Hotplugging]] for more information on how to config input devices using HAL.<br />
<br />
The synaptics stuff can be removed if you have a EEE PC 900. The {{Codeline|Option "AutoAddDevices"}} line is important if you need a non-default XkbLayout, because if you don't have it, xorg will find 3 keyboards (at least with the 900 model).<br />
The Modeline has obviously to be removed or modified if you dont have a model with this resolution.<br />
<br />
===Sound, Webcam & Microphone===<br />
<br />
====Sound====<br />
<br />
For most people, sound working right out of the box with no troubles (after you have followed the [[Beginners_Guide#Step_1:_Configure_sound_with_alsamixer|guide]], of course). However, others might need to add the following line to {{Filename|/etc/modprobe.conf}}<br />
options snd-hda-intel model=3stack-dig<br />
or the following one for the Eee PC 900 model<br />
options snd-hda-intel model=auto<br />
<br />
If your internal microphone doesn't work, you probably have to turn the capture feature on. Simply fire up alsamixer, find your Capture control, and press spacebar to enable it.<br />
<br />
====Webcam====<br />
<br />
You can enable your built-in webcam by adding the following line to your {{Filename|/etc/rc.local}} file.<br />
<br />
echo 1 > /sys/devices/platform/eeepc/camera<br />
<br />
If you want the webcam application that the default Xandos installation uses, install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14469 ucview from the AUR].<br />
<br />
The webcam also works fine with the latest version of Skype.<br />
<br />
If you already have mplayer installed you can launch:<br />
$ mplayer -fps 15 tv://<br />
<br />
I have yet to get it working with vlc or any other software such as xawtv. If you know how, please update this.<br />
<br />
*'''NOTE:''' For anyone who has accidentally disabled Auto Exposure for their webcam in luvcview (making the image dark), and can't enable it again, do the following:<br />
<br />
Install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14468 libwebcam from the AUR].<br />
<br />
Issue the following command:<br />
$ uvcdynctrl --set "Exposure, Auto" 4<br />
<br />
{{Note | Be sure the "OS Installation" option is set to "finished" in the BIOS' "Advanced" tab or your camera may not work in some applications (like Skype).}}<br />
<br />
{{Note | Make sure you are a member of the video group edit /etc/group and add your username to video}}<br />
<br />
====Microphone====<br />
<br />
Solution for problems with the internal microphone.<br />
<br />
1. First of all set in alsamixer "Input Source" to "i-Mic"<br />
<br />
2. Increase "Capture" and "i-Mic Boost" to your needs<br />
<br />
3. Edit {{Filename|/etc/asound.state}} the following, change the 2 "false" to "true" like showing:<br />
....snap.....<br />
control.11 {<br />
comment.access 'read write'<br />
comment.type BOOLEAN<br />
comment.count 2<br />
iface MIXER<br />
name 'Capture Switch'<br />
value.0 true<br />
value.1 true<br />
}<br />
....snap....<br />
<br />
4. After editing run following as root<br />
# alsactl restore<br />
<br />
5. Now your internal microphone should be working.<br />
<br />
===Getting Hot Keys, Graphic Indicators and Shutdown with the Power Button Working===<br />
<br />
If you want to have working hot keys (wifi, brightness, volume etc), an OSD, and be able to assign actions to things like the powerbutton and closing the lid, then you should install '''ighea's acpi-eee''' package.<br />
<br />
==== ighea's acpi-eee ====<br />
<br />
Get the latest package from [http://kapsi.fi/ighea/eee/acpi-eee/ here].<br />
<br />
The package can be easily installed with:<br />
# pacman -U acpi-eee-10.0-1-i686.pkg.tar.gz<br />
<br />
See messages during installation for more details and don't forget to edit {{Filename|/etc/acpi/eee.conf}} to suit your tastes.<br />
<br />
*For those who use the wireless on/off acpi command; the {{Codeline|NETWORK_UP_COMMAND&#61;""}} setting in {{Filename|/etc/acpi/eee.conf}}, when applicable, should at least release the network. For example, using netcfg2, {{Codeline|NETWORK_UP_COMMAND&#61;"netcfg2 -a"}} will release the connections from before disabling wireless, allowing new ones to be made without netcfg thinking that it's already connected. It is also possible to reconnect to your previous network, however, the network tool you use needs to have a somewhat lengthy timeout as it takes 15-20 seconds for your wireless device to reappear. <br />
<br />
{{Note | Make sure '''asusosd''' is enabled on startup if you want to have the Graphic Indicators from Xandros. To run asusosd simply type {{Codeline|asusosd &}} at a command prompt.}}<br />
<br />
==Additional Tips & Tweaks==<br />
<br />
===Tweaking kernel-eee===<br />
<br />
Toofishes' kernel, also known as kernel-eee, can be recompiled to include custom features. You can download toofishes' kernel PKGBUILD and all the nesseary files from his gitweb by installing the git package and using the following command:<br />
<br />
$ git clone git://code.toofishes.net/dan/eee.git<br />
<br />
or if you are behind a proxy and can't use the git protocol:<br />
<br />
$ git clone http://code.toofishes.net/git/dan/eee.git<br />
<br />
There are two ways to tweak the kernel. The first is simply to edit the {{Filename|kernelconfig}} file with your favorite editor and the second is to insert a {{Codeline|make menuconfig}} line into the PKGBUILD before the kernel's compilation.<br />
<br />
===Using Wine with toofishes' kernel===<br />
<br />
Normally, Wine won't work with toofishes' kernel because it is compiled with VMSPLIT_2G_OPT option. In order to use Wine with toofishes' kernel, you have to recompile his kernel with VMSPLIT_3G option.<br />
<br />
Download the kernel PKGBUILD and all the necessary files from toofishes' gitweb using the above instructions, then change the following lines in the {{Filename|kernelconfig}} file from this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 # CONFIG_VMSPLIT_3G is not set<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 CONFIG_VMSPLIT_2G_OPT=y<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
to this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 CONFIG_VMSPLIT_3G=y<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 # CONFIG_VMSPLIT_2G_OPT is not set<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
<br />
Compile and install the kernel and Wine should now work.<br />
<br />
===Power down with the power button===<br />
<br />
{{Note | If you are using ighea's acpi-eee or dkite's acpid_eee package then you should already be able to shutdown by pressing the power button and should not need to do this.}}<br />
<br />
The two alternatives here are described in [[Allow users to shutdown]].<br />
<br />
If you don't already or don't plan to use sudo, it may be simpler to use the setuid /sbin/halt method, otherwise using sudo is preferred.<br />
<br />
Below are all the steps required for the sudo method. If you want to use the setuid method, read the article linked above and perform the 'power' file step here, while omitting the 'sudo' in it.<br />
<br />
# pacman -S sudo<br />
<br />
As root, do the following:<br />
# visudo<br />
<br />
Add the following line to the file:<br />
USER HOST = NOPASSWD: /sbin/poweroff<br />
<br />
Where {{Codeline|USER}} is the user you want to be able to power down with and {{Codeline|HOST}} is your hostname (from {{Filename|/etc/rc.conf}}).<br />
<br />
Now, create a file called {{Filename|/etc/acpi/events/power}}, containing:<br />
# /etc/acpi/events/power<br />
# This is called when the user presses the power button<br />
<br />
event=button/power (PWR.||PBTN)<br />
action=sudo /sbin/poweroff<br />
<br />
Make sure that you execute:<br />
# /etc/rc.d/acpid start<br />
<br />
And/or add acpid to the daemons list in {{Filename|/etc/rc.conf}}:<br />
DAEMONS=(hal, acpid ...)<br />
<br />
===Use cpufreq for power saving===<br />
<br />
{{Note | toofishes dropped CPU scaling from his latest kernel builds, due to the fact, confirmed by other users, that there were no effective power savings with p4-clockmod's module, and it introduced "unacceptable latency", even with relatively low percentage up thresholds.}}<br />
<br />
Install cpufrequtitls:<br />
# pacman -S cpufrequtils<br />
<br />
For scaling down the processor you have to load the p4_clockmod module. Insert it into your {{Filename|/etc/rc.conf}} MODULES array for loading it at startup. <br />
MODULES=(... p4_clockmod ...)<br />
<br />
Add 'cpufreq' to the DAEMONS array in {{Filename|/etc/rc.conf}} to have it start on startup.<br />
DAEMONS=(... cpufreq ...)<br />
<br />
Add the following into {{Filename|/etc/conf.d/cpufreq}}:<br />
governor="ondemand"<br />
min_freq="113MHz"<br />
max_freq="900MHz"<br />
<br />
With enabled cpufreq it scales the processor between 113MHz up to max. frequency. That should save a lot on battery power. The stated 900MHz will be never reached by the eeePC, the p4_clockmod reports a wrong frequency here. But scaling works, you can feel it in the performance of eeePC that he slow down the processor.<br />
<br />
{{Note | The merits of p4-clockmod are debatable. Particularly on the EEEPC 701, battery time isn't extended due to its usage, and some users have even reported less battery duration. More hints to the reasons why can be read in [http://www.codemonkey.org.uk/2009/01/18/forthcoming-p4clockmod/ this] fine blog entry.}}<br />
<br />
===More responsive system with ondemand governor===<br />
The default up_threshold (where it will bump to a faster speed) for the CPU governor is 80, which means it will increase the CPU speed when utilization is above 80%. This can make X applications have a bit of lag. <br />
<br />
Try changing this value:<br />
$ sudo bash -c "echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold"<br />
<br />
With 40 it still leaves the majority of CPU cycles at the lowest available clock speed but increases responsiveness. You can add this line to one of your startup scripts (such as {{Filename|/etc/rc.local}}) if you wish to keep it, for example:<br />
<br />
#!/bin/bash<br />
#<br />
# /etc/rc.local: Local multi-user startup script.<br />
#<br />
<br />
echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold<br />
<br />
Also, following line is also reported to help makes system more responsive. You can use it by adding it to your {{Filename|/etc/rc.local}}:<br />
echo 2000000 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate<br />
<br />
===Speeding up udev for faster boot===<br />
*[[Speedup udev]]<br />
*http://dev.laptop.org/ticket/4349<br />
*[http://www.eeesale.com/Asus-Eee-PC-overclock-Benchmarks.htm Speed up the Eee PC]<br />
<br />
You can also disable the autoload by editing your {{Filename|[[rc.conf]]}}:<br />
...<br />
MOD_AUTOLOAD="no"<br />
...<br />
MODULES=(pciehp ath5k)<br />
<br />
===Update your BIOS without Xandros===<br />
{{Warning | You can break your system, do not update if you are not sure of what you are doing!}}<br />
<br />
First, you need to download the ''.rom'' file.<br />
*[http://update.eeepc.asus.com/bios/ Asus' official BIOS]<br />
*[http://forum.eeeuser.com/viewtopic.php?id=3485 EeeUser's topic]<br />
<br />
You also need an USB stick formatted in FAT32. To format the USBStick, use the cfdisk tool:<br />
# cfdisk /dev/sdc # could be something else than "c"<br />
<br />
Choose [delete], [type]: "fat32" (code 0B), [write] and then exit with [quit].<br />
<br />
NOTE to EEE PC 900 owners and possibly others: Using this method will require a flash drive formatted with a '''FAT16''' file-system. If the BIOS update process hangs up at "Reading file 900.ROM" for more than a few minutes then it should be safe to power down your EEE PC and reformat your flashdrive's file-system to the correct one. You can force FAT16 creation with the following command:<br />
# mkdosfs -F 16 /dev/device-path<br />
<br />
Now just copy the ''.rom'' on the USBStick :<br />
$ cp /somewhere/blabla/.../thecurrentnameofthefile.ROM /path/to/mounted/usb_stick/701.rom<br />
The name of the copy '''must''' be xxxx.rom where xxxx is the model of your eee PC. (i.e. 900 users it's 900.rom)<br />
<br />
Next step, reboot the eeepc with the USB stick pluged-in, and press Alt+F2. It will launch the built-in tool. Everything should be Ok, you can make a coffee during the update. When it asks you to push the power-button it has finished.<br />
<br />
At the next boot, you'll be invited to configure the BIOS. Check if the everything is enabled (my webcam and wireless were disabled after the update) and if it displays the good version in the main screen. It's done!<br />
<br />
=== More usable font sizes ===<br />
<br />
====The_glu's method====<br />
<br />
I found an easy solution that works on a 901:<br />
<br />
Edit {{Filename|/etc/X11/xinit/xserverrc}} and add "-dpi 134":<br />
exec /usr/bin/X -nolisten tcp -dpi 134<br />
<br />
Restart X and fonts should have the correct size. Notice it's won't works if you have Xft*dpi: in your {{Filename|.XDefaults}}.<br />
<br />
You don't need to edit your config file to set a smaller font size, I you did you should set font-size to 10 or you will have to small fonts...<br />
<br />
==== Old method ====<br />
<br />
On a default installation with Xfce 4 my font sizes were too big, here is what I did to sort them out.<br />
<br />
First, I set the DPI by adding the following to {{Filename|~/.Xdefaults}}:<br />
Xft*dpi: 134<br />
<br />
This then caused the fonts to be even bigger, so I set them all to be font-size 6 by adding the following into {{Filename|~/.gtkrc-2.0}} (note that this will be overwritten if you use any tools to change GTK settings):<br />
style "user-font"<br />
{<br />
font_name="Bitstream Vera Sans 6"<br />
}<br />
widget_class "*" style "user-font"<br />
<br />
To do the same with KDE fonts (without KDE installed) you have to add the following to {{Filename|~/.kde/share/config/kdeglobals}}:<br />
[General]<br />
StandardFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
activeFont=Bitstream Vera Sans,6,-1,5,75,0,0,0,0,0<br />
fixed=Bitstream Vera Sans Mono,6,-1,5,50,0,0,0,0,0<br />
font=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
menuFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
taskbarFont=Bitstream Vera Sans,6,-1,5,50,1,0,0,0,0<br />
toolBarFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
<br />
To make your fonts even prettier enable the [[Fonts#Fonts_with_LCD_filter_enabled|LCD Fonts]].<br />
<br />
==== Alternative Method ====<br />
<br />
For me it worked far better to open the gnome appearance control panel, go to the fonts tab, click defaults, and change the resolution to be 96 dpi. Changing .Xdefaults doesnt work when running gnome, as gnome-settings-daemon overrides it. You can then leave all font sizes at their default, and things should look good. Simply changing the font sizes and leaving the DPI at its technically correct value (~134) gave me weird layout problems in some apps, and oddly large fonts in others.<br />
<br />
==Known problems and their solutions==<br />
<br />
===Wireless doesn't work, even after installing custom Madwifi module===<br />
<br />
I found that Arch tried to use the ath5k module for wireless, and that meant it took control of the card rather than ath_pci (the module I had compiled and installed). I got a Madwifi status 3 message in dmesg when this happened.<br />
<br />
The solution is to blacklist the ath5k module in {{Filename|/etc/rc.conf}}:<br />
<br />
MODULES = ( ... !ath5k ... )<br />
<br />
===Laggy or Unresponsive ACPI Events===<br />
<br />
The latest kernel (2.6.26) introduces new problems with Eee's ACPI events handling. Basically, ACPI events become very laggy and after some time ACPI get disabled after a heavy usage (e.g. changing volume, brightness). This problem affects both stock kernel and toofishes' kernel.<br />
<br />
It appears that the solution is to apply this [http://bugzilla.kernel.org/attachment.cgi?id=16862 patch] ([http://bugzilla.kernel.org/show_bug.cgi?id=10724 original bug report]) to the kernel. <br />
<br />
{{Note | The latest toofishes' kernel, version 2.6.26-1, now includes the patch, but you can still use ighea's one for the extras features listed below.}}<br />
<br />
Until toofishes update his kernel to include the patch, you can use ighea's slightly modified toofishes' kernel that included the above patch, as well as other modifications:<br />
<br />
*Support for Wine <br />
*uvesafb is built as module <br />
*Use [http://bbs.archlinux.org/viewtopic.php?pid=393860#p393860 new eeepc-laptop driver] (which also handles fan-control) instead of older acus_acpi or asus-laptop -drivers.<br />
<br />
You can get the modified kernel, as well as the associative packages, from [http://koti.kapsi.fi/~ighea/eee/kernel-eee/ here].<br />
<br />
After you have downloaded the packages, Install them using this command:<br />
# pacman -U kernel-eee-2.6.26-1-i686.pkg.tar.gz madwifi-eee-svn-3752-1-i686.pkg.tar.gz <br />
<br />
You might also want to use IgnorePkg-line in {{Filename|/etc/pacman.conf}} to hold packages from being accidentally updated.<br />
IgnorePkg = kernel-eee madwifi-eee-svn<br />
<br />
Also don't forget to upgrade ighea's acpi-eee package to version 9.6.<br />
<br />
===Shutdown Problem===<br />
<br />
If your Eee won't shutdown properly (i.e. the power indicator LED is on but the LCD screen is off), then add the following lines to your {{Filename|/etc/rc.local.shutdown}} file.<br />
<pre><br />
#! /bin/bash<br />
#<br />
# /etc/rc.local.shutdown: Local shutdown script.<br />
#<br />
<br />
# Comment or uncomment the following two lines according to your system configuration.<br />
<br />
/etc/rc.d/mpd stop # If you're using mpd, then you have to stop its daemon first.<br />
<br />
/etc/rc.d/alsa stop # If you're using ALSA daemon, then you also have to stop it.<br />
<br />
# The following line is Eee specific fix, you always need to have this line in /etc/rc.local.shutdown.<br />
<br />
echo -n "0000:00:1b.0" > /sys/bus/pci/drivers/HDA\ Intel/unbind<br />
</pre><br />
<br />
The above solution should fix the shutdown problem in most cases. But if for some reason the problem still persists, the module may not be able to be unloaded until after all services have finished. Do the above, then in {{Filename|/etc/rc.shutdown}} move <br />
<br />
if [ -x /etc/rc.local.shutdown ]; then<br />
/etc/rc.local.shutdown<br />
fi<br />
<br />
from where it was to directly above the line <br />
<br />
# Terminate all processes<br />
<br />
this will cause the {{Filename|rc.local.shutdown}} script to run after services have been exited. This fixed all issues for the person editing this note.<br />
<br />
===Unclean unmount during shutdown when having home directory mounted on SD card===<br />
<br />
If you experienced unclean unmount during shutdown when having your home directory on SD card, then add the following 3 lines to "Write to wtmp file before unmounting" section of your {{Filename|/etc/rc.shutdown}} file:<br />
<pre><br />
...<br />
<br />
stat_busy "Unmounting Filesystems"<br />
/bin/umount -a -t noramfs,notmpfs,nosysfs,noproc<br />
<br />
# Add these 3 lines<br />
sync;sync;sync;<br />
eject /dev/sdb # Or whichever is your SD-card's device name. /dev/disk/by-uuid/ followed by the UUID identifier is preferable though.<br />
sleep 3<br />
# End of hack<br />
<br />
stat_done<br />
<br />
...<br />
</pre><br />
<br />
===Booting from card without initrd===<br />
<br />
Let's say you decided to install Arch Linux on a card and compiled your own kernel (or used the kernel26eee kernel) without initrd. Card reader on EeePC is connected as an USB device. Unfortunately, USB storage devices are detected with a delay, so we must tell the kernel to wait until this device becomes available. You do this with "rootwait" option passed to kernel at boot time.<br />
<br />
===Sleeping and waking system on a card===<br />
<br />
If you have Arch Linux on a card, waking up from sleeping state will most likely fail. The only solution is to enable the CONFIG_USB_PERSIST option in kernel. The kernel26eee package should have this option enabled.<br />
<br />
The command to do this is:<br />
echo 1 >/sys/bus/usb/devices/.../power/persist<br />
<br />
Replace the {{Codeline|"..."}} with the device like 1-3 or 1-5 where the first number is the bus and the second is the device <br />
<br />
Each device that is connected to your computer gets an entry in the sysfs "system file system" it is a virtual file system like proc<br />
<br />
More info:<br />
*http://www.mjmwired.net/kernel/Documentation/usb/persist.txt<br />
*http://forum.eeeuser.com/viewtopic.php?id=22712<br />
<br />
===Display doesn't wake up properly===<br />
<br />
If you encounter black display (but apparently working system) after suspend/resume, consider using the "uswsusp" package (available in the official repositories) and correcting suspend2ram script in /etc/acpi, where you use this line to make the machine go to sleep:<br />
<br />
/usr/sbin/s2ram --force --vbe_post --vbe_mode<br />
<br />
==Battery Tests==<br />
<br />
The following are reported battery runtimes:<br />
<br />
{| class="wikitable" style="text-align:left"<br />
|+Battery runtimes<br />
|-<br />
! Task !! Series !! Wireless !! Screen Brightness !! FSB Speed !! Fan Speed !! Runtime !! Comments<br />
|-<br />
! DVD Playback<br />
| 701 || On || Max || 85mhz || 100% || 134min || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! DVD Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! AVI Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading AVI from SSD<br />
|-<br />
! IM and Surf<br />
| 701 || On || ~30% || ??? || low || 173min || Normal web-browsing, Flash should reduce runtime a lot !<br />
|-<br />
! Programming and PDF reading<br />
| 1000HA || Off || ~40% || ??? || low || +6hs || Using Evince and SPE under XFCE with camera and USB disabled<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || +4hs || Stock kernel without laptop-mode<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || 5hs || Stock kernel with laptop-mode and other tweaks<br />
|}<br />
<br />
N.B. - Will add battery runtimes as I am able to test them, please contribute.<br />
<br />
-- Grecko.1<br />
<br />
Still tweaking, but disabling everything from BIOS got me about 6 hours and a half. With eee-kernel, I *could* get a little more.<br />
<br />
-- ekuber</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=ASUS_Eee_PC_701&diff=86163ASUS Eee PC 7012009-12-03T12:34:48Z<p>Zodmaner: /* Installing Arch Linux */ Move toofishes' repo to a new section</p>
<hr />
<div>{{stub}}<br />
[[Category:Getting and installing Arch (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|Русский|Инсталляция Arch Linux на Asus EEE PC}}<br />
{{i18n_links_end}}<br />
<br />
Most of this information is from the [http://bbs.archlinux.org/viewtopic.php?pid=297632 Arch Forum]. You can also find a lot of helpful information from the [http://forum.eeeuser.com/ EEEUser Forum]. <br />
<br />
==Before You Begin==<br />
<br />
===Avoiding Pitfalls===<br />
<br />
The install is pretty normal, except that you'll need to [http://forum.eeeuser.com/viewtopic.php?id=890 avoid the pitfalls] of our alternative Linux install:<br />
<br />
# Never choose to use a journaling file system on the SSD partitions<br />
# Never use a swap partition on the SSD<br />
# Edit your new installation fstab to mount the SSD partitions "noatime"<br />
# Never log messages or error log to the SSD<br />
<br />
The rules ensure that we won't reach the maximum limit of writes on our SSD faster than we should, although this is being contested (see [http://wiki.eeeuser.com/ssd_write_limit this link] and [http://www.storagesearch.com/ssdmyths-endurance.html this other link]).<br />
<br />
Some other minor modifications can be made to decrease number of non-mandatory writes by applications: deactivate {{Filename|~/.viminfo}} in vi, deactivate less history file ({{Filename|~/.lesshst}}), and so on.<br />
<br />
===Choosing Your Installation Media===<br />
<br />
The Eee PC does not have an optical drive installed on the machine. This means you will need to install Arch Linux through one of the alternative methods:<br />
<br />
# [[Beginners_Guide#USB_stick|USB stick]] '''(Recommended)'''<br />
# External USB CD-ROM drive<br />
# [[PXE|Network (PXE)]]<br />
<br />
==Installing Arch Linux==<br />
<br />
With the release of the 2009.08 installation media, installing Arch Linux on Asus Eee PC model 701 is pretty easy and straightforward since the stock kernel on Arch installation media support all of the 701 hardwares out of the box. <br />
<br />
Therefore, aside from the recommended partition scheme described below, there shouldn't be any other differences between installing Arch Linux on the 701 and any other computer. You should be able to successfully install Arch on the 701 by following instructions on [[Beginners_Guide|Beginners' Guide]] without any problem.<br />
<br />
===Prepare Hard Drive===<br />
<br />
<br />
The most important different between the 701 and other machines is that the 701 use SSD drive instead of normal hard drive. This section advise on how to set up a partition scheme that is best suited to the 701. <br />
<br />
The default Eee PC drive is split up into four partitions (here is [http://forum.eeeuser.com/viewtopic.php?id=1805 some information] about the partitioning): <br />
<br />
* It is easiest to wipe the existing partitions and use one or two partitions for your install. One partition would be just '/', and two partitions would be '/boot' and '/'.<br />
* Choose "NONE" for swap in case your eee has a SSD (see #2 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]])<br />
* Select "ext2" as your filesystem in case your eee has a SSD (see #1 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]]). If your model has a standard HD choose "ext3".<br />
<br />
==Asus Eee PC model 701 repository from toofishes==<br />
<br />
Toofishes created a repository for the 701. The repository contained customized kernel built specifically for the 701 and some additional packages. <br />
<br />
While the stock Arch kernel works very well with the 701, toofishes kernel have the following advantages:<br />
<br />
* Faster boot time &ndash; because most of the modules have been compile into the kernel, no time is wasted waiting for the modules to load<br />
* No need to generate initial ramdisk every time a kernel is upgrade <br />
* Smaller size (around 4MB)<br />
<br />
To use the repository, add:<br />
[eee]<br />
Server = http://code.toofishes.net/packages/eee<br />
to your {{Filename|/etc/pacman.conf}} and then issue:<br />
pacman -Syu<br />
<br />
===Package List===<br />
Currently, toofishes' repository contains the following packages:<br />
<br />
*'''kernel-eee''' &ndash; customized kernel for Asus Eee PC model 701<br />
*'''luvcview''' &ndash; webcam program for testing webcam driver<br />
<br />
===Kernel-eee Installation Instruction===<br />
Simply use pacman to install the package you need. Install the packages with this command:<br />
# pacman -Sy kernel-eee<br />
<br />
then, add the following to {{Filename|/boot/grub/menu.lst}}; note that no initrd is needed:<br />
# (2) Arch Linux<br />
title Arch Linux Eee kernel<br />
root (hd0,0)<br />
kernel /boot/vmlinuzeee root=/dev/sda1 ro<br />
<br />
Restart and select Arch Linux Eee kernel from the grub boot menu.<br />
<br />
==Getting Everything Working==<br />
<br />
By now, you should have Arch Linux installed. The following is the guide on how to get the rest of your system working.<br />
<br />
===X===<br />
<br />
Install X by follow instructions on the [[Beginners_Guide#Step_2:_Install_X|Beginners' Guide]], then install the Intel graphics driver:<br />
# pacman -Sy xf86-video-intel<br />
<br />
You may also wish to install the Synaptics drivers for the touchpad (not needed for Eee PC 900):<br />
# pacman -Sy xf86-input-synaptics<br />
<br />
With the latest version of X from extra repository, X should work on the 701 '''without any need for xorg.conf'''. However, if for some reason you wish to use an xorg.conf file, you can use an old [[Example_Xorg_configuration_file_for_Asus_Eee_PC_701|example Xorg configuration file for Asus Eee PC model 701]] as a template or automatically generate a new one by running the following command:<br />
<br />
# Xorg -configure<br />
<br />
Consult [[Xorg_input_hotplugging|Xorg Input Hotplugging]] for more information on how to config input devices using HAL.<br />
<br />
The synaptics stuff can be removed if you have a EEE PC 900. The {{Codeline|Option "AutoAddDevices"}} line is important if you need a non-default XkbLayout, because if you don't have it, xorg will find 3 keyboards (at least with the 900 model).<br />
The Modeline has obviously to be removed or modified if you dont have a model with this resolution.<br />
<br />
===Sound, Webcam & Microphone===<br />
<br />
====Sound====<br />
<br />
For most people, sound working right out of the box with no troubles (after you have followed the [[Beginners_Guide#Step_1:_Configure_sound_with_alsamixer|guide]], of course). However, others might need to add the following line to {{Filename|/etc/modprobe.conf}}<br />
options snd-hda-intel model=3stack-dig<br />
or the following one for the Eee PC 900 model<br />
options snd-hda-intel model=auto<br />
<br />
If your internal microphone doesn't work, you probably have to turn the capture feature on. Simply fire up alsamixer, find your Capture control, and press spacebar to enable it.<br />
<br />
====Webcam====<br />
<br />
You can enable your built-in webcam by adding the following line to your {{Filename|/etc/rc.local}} file.<br />
<br />
echo 1 > /sys/devices/platform/eeepc/camera<br />
<br />
If you want the webcam application that the default Xandos installation uses, install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14469 ucview from the AUR].<br />
<br />
The webcam also works fine with the latest version of Skype.<br />
<br />
If you already have mplayer installed you can launch:<br />
$ mplayer -fps 15 tv://<br />
<br />
I have yet to get it working with vlc or any other software such as xawtv. If you know how, please update this.<br />
<br />
*'''NOTE:''' For anyone who has accidentally disabled Auto Exposure for their webcam in luvcview (making the image dark), and can't enable it again, do the following:<br />
<br />
Install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14468 libwebcam from the AUR].<br />
<br />
Issue the following command:<br />
$ uvcdynctrl --set "Exposure, Auto" 4<br />
<br />
{{Note | Be sure the "OS Installation" option is set to "finished" in the BIOS' "Advanced" tab or your camera may not work in some applications (like Skype).}}<br />
<br />
{{Note | Make sure you are a member of the video group edit /etc/group and add your username to video}}<br />
<br />
====Microphone====<br />
<br />
Solution for problems with the internal microphone.<br />
<br />
1. First of all set in alsamixer "Input Source" to "i-Mic"<br />
<br />
2. Increase "Capture" and "i-Mic Boost" to your needs<br />
<br />
3. Edit {{Filename|/etc/asound.state}} the following, change the 2 "false" to "true" like showing:<br />
....snap.....<br />
control.11 {<br />
comment.access 'read write'<br />
comment.type BOOLEAN<br />
comment.count 2<br />
iface MIXER<br />
name 'Capture Switch'<br />
value.0 true<br />
value.1 true<br />
}<br />
....snap....<br />
<br />
4. After editing run following as root<br />
# alsactl restore<br />
<br />
5. Now your internal microphone should be working.<br />
<br />
===Getting Hot Keys, Graphic Indicators and Shutdown with the Power Button Working===<br />
<br />
If you want to have working hot keys (wifi, brightness, volume etc), an OSD, and be able to assign actions to things like the powerbutton and closing the lid, then you should install '''ighea's acpi-eee''' package.<br />
<br />
==== ighea's acpi-eee ====<br />
<br />
Get the latest package from [http://kapsi.fi/ighea/eee/acpi-eee/ here].<br />
<br />
The package can be easily installed with:<br />
# pacman -U acpi-eee-10.0-1-i686.pkg.tar.gz<br />
<br />
See messages during installation for more details and don't forget to edit {{Filename|/etc/acpi/eee.conf}} to suit your tastes.<br />
<br />
*For those who use the wireless on/off acpi command; the {{Codeline|NETWORK_UP_COMMAND&#61;""}} setting in {{Filename|/etc/acpi/eee.conf}}, when applicable, should at least release the network. For example, using netcfg2, {{Codeline|NETWORK_UP_COMMAND&#61;"netcfg2 -a"}} will release the connections from before disabling wireless, allowing new ones to be made without netcfg thinking that it's already connected. It is also possible to reconnect to your previous network, however, the network tool you use needs to have a somewhat lengthy timeout as it takes 15-20 seconds for your wireless device to reappear. <br />
<br />
{{Note | Make sure '''asusosd''' is enabled on startup if you want to have the Graphic Indicators from Xandros. To run asusosd simply type {{Codeline|asusosd &}} at a command prompt.}}<br />
<br />
==Additional Tips & Tweaks==<br />
<br />
===Tweaking kernel-eee===<br />
<br />
Toofishes' kernel, also known as kernel-eee, can be recompiled to include custom features. You can download toofishes' kernel PKGBUILD and all the nesseary files from his gitweb by installing the git package and using the following command:<br />
<br />
$ git clone git://code.toofishes.net/dan/eee.git<br />
<br />
or if you are behind a proxy and can't use the git protocol:<br />
<br />
$ git clone http://code.toofishes.net/git/dan/eee.git<br />
<br />
There are two ways to tweak the kernel. The first is simply to edit the {{Filename|kernelconfig}} file with your favorite editor and the second is to insert a {{Codeline|make menuconfig}} line into the PKGBUILD before the kernel's compilation.<br />
<br />
===Using Wine with toofishes' kernel===<br />
<br />
Normally, Wine won't work with toofishes' kernel because it is compiled with VMSPLIT_2G_OPT option. In order to use Wine with toofishes' kernel, you have to recompile his kernel with VMSPLIT_3G option.<br />
<br />
Download the kernel PKGBUILD and all the necessary files from toofishes' gitweb using the above instructions, then change the following lines in the {{Filename|kernelconfig}} file from this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 # CONFIG_VMSPLIT_3G is not set<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 CONFIG_VMSPLIT_2G_OPT=y<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
to this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 CONFIG_VMSPLIT_3G=y<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 # CONFIG_VMSPLIT_2G_OPT is not set<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
<br />
Compile and install the kernel and Wine should now work.<br />
<br />
===Power down with the power button===<br />
<br />
{{Note | If you are using ighea's acpi-eee or dkite's acpid_eee package then you should already be able to shutdown by pressing the power button and should not need to do this.}}<br />
<br />
The two alternatives here are described in [[Allow users to shutdown]].<br />
<br />
If you don't already or don't plan to use sudo, it may be simpler to use the setuid /sbin/halt method, otherwise using sudo is preferred.<br />
<br />
Below are all the steps required for the sudo method. If you want to use the setuid method, read the article linked above and perform the 'power' file step here, while omitting the 'sudo' in it.<br />
<br />
# pacman -S sudo<br />
<br />
As root, do the following:<br />
# visudo<br />
<br />
Add the following line to the file:<br />
USER HOST = NOPASSWD: /sbin/poweroff<br />
<br />
Where {{Codeline|USER}} is the user you want to be able to power down with and {{Codeline|HOST}} is your hostname (from {{Filename|/etc/rc.conf}}).<br />
<br />
Now, create a file called {{Filename|/etc/acpi/events/power}}, containing:<br />
# /etc/acpi/events/power<br />
# This is called when the user presses the power button<br />
<br />
event=button/power (PWR.||PBTN)<br />
action=sudo /sbin/poweroff<br />
<br />
Make sure that you execute:<br />
# /etc/rc.d/acpid start<br />
<br />
And/or add acpid to the daemons list in {{Filename|/etc/rc.conf}}:<br />
DAEMONS=(hal, acpid ...)<br />
<br />
===Use cpufreq for power saving===<br />
<br />
{{Note | toofishes dropped CPU scaling from his latest kernel builds, due to the fact, confirmed by other users, that there were no effective power savings with p4-clockmod's module, and it introduced "unacceptable latency", even with relatively low percentage up thresholds.}}<br />
<br />
Install cpufrequtitls:<br />
# pacman -S cpufrequtils<br />
<br />
For scaling down the processor you have to load the p4_clockmod module. Insert it into your {{Filename|/etc/rc.conf}} MODULES array for loading it at startup. <br />
MODULES=(... p4_clockmod ...)<br />
<br />
Add 'cpufreq' to the DAEMONS array in {{Filename|/etc/rc.conf}} to have it start on startup.<br />
DAEMONS=(... cpufreq ...)<br />
<br />
Add the following into {{Filename|/etc/conf.d/cpufreq}}:<br />
governor="ondemand"<br />
min_freq="113MHz"<br />
max_freq="900MHz"<br />
<br />
With enabled cpufreq it scales the processor between 113MHz up to max. frequency. That should save a lot on battery power. The stated 900MHz will be never reached by the eeePC, the p4_clockmod reports a wrong frequency here. But scaling works, you can feel it in the performance of eeePC that he slow down the processor.<br />
<br />
{{Note | The merits of p4-clockmod are debatable. Particularly on the EEEPC 701, battery time isn't extended due to its usage, and some users have even reported less battery duration. More hints to the reasons why can be read in [http://www.codemonkey.org.uk/2009/01/18/forthcoming-p4clockmod/ this] fine blog entry.}}<br />
<br />
===More responsive system with ondemand governor===<br />
The default up_threshold (where it will bump to a faster speed) for the CPU governor is 80, which means it will increase the CPU speed when utilization is above 80%. This can make X applications have a bit of lag. <br />
<br />
Try changing this value:<br />
$ sudo bash -c "echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold"<br />
<br />
With 40 it still leaves the majority of CPU cycles at the lowest available clock speed but increases responsiveness. You can add this line to one of your startup scripts (such as {{Filename|/etc/rc.local}}) if you wish to keep it, for example:<br />
<br />
#!/bin/bash<br />
#<br />
# /etc/rc.local: Local multi-user startup script.<br />
#<br />
<br />
echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold<br />
<br />
Also, following line is also reported to help makes system more responsive. You can use it by adding it to your {{Filename|/etc/rc.local}}:<br />
echo 2000000 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate<br />
<br />
===Speeding up udev for faster boot===<br />
*[[Speedup udev]]<br />
*http://dev.laptop.org/ticket/4349<br />
*[http://www.eeesale.com/Asus-Eee-PC-overclock-Benchmarks.htm Speed up the Eee PC]<br />
<br />
You can also disable the autoload by editing your {{Filename|[[rc.conf]]}}:<br />
...<br />
MOD_AUTOLOAD="no"<br />
...<br />
MODULES=(pciehp ath5k)<br />
<br />
===Update your BIOS without Xandros===<br />
{{Warning | You can break your system, do not update if you are not sure of what you are doing!}}<br />
<br />
First, you need to download the ''.rom'' file.<br />
*[http://update.eeepc.asus.com/bios/ Asus' official BIOS]<br />
*[http://forum.eeeuser.com/viewtopic.php?id=3485 EeeUser's topic]<br />
<br />
You also need an USB stick formatted in FAT32. To format the USBStick, use the cfdisk tool:<br />
# cfdisk /dev/sdc # could be something else than "c"<br />
<br />
Choose [delete], [type]: "fat32" (code 0B), [write] and then exit with [quit].<br />
<br />
NOTE to EEE PC 900 owners and possibly others: Using this method will require a flash drive formatted with a '''FAT16''' file-system. If the BIOS update process hangs up at "Reading file 900.ROM" for more than a few minutes then it should be safe to power down your EEE PC and reformat your flashdrive's file-system to the correct one. You can force FAT16 creation with the following command:<br />
# mkdosfs -F 16 /dev/device-path<br />
<br />
Now just copy the ''.rom'' on the USBStick :<br />
$ cp /somewhere/blabla/.../thecurrentnameofthefile.ROM /path/to/mounted/usb_stick/701.rom<br />
The name of the copy '''must''' be xxxx.rom where xxxx is the model of your eee PC. (i.e. 900 users it's 900.rom)<br />
<br />
Next step, reboot the eeepc with the USB stick pluged-in, and press Alt+F2. It will launch the built-in tool. Everything should be Ok, you can make a coffee during the update. When it asks you to push the power-button it has finished.<br />
<br />
At the next boot, you'll be invited to configure the BIOS. Check if the everything is enabled (my webcam and wireless were disabled after the update) and if it displays the good version in the main screen. It's done!<br />
<br />
=== More usable font sizes ===<br />
<br />
====The_glu's method====<br />
<br />
I found an easy solution that works on a 901:<br />
<br />
Edit {{Filename|/etc/X11/xinit/xserverrc}} and add "-dpi 134":<br />
exec /usr/bin/X -nolisten tcp -dpi 134<br />
<br />
Restart X and fonts should have the correct size. Notice it's won't works if you have Xft*dpi: in your {{Filename|.XDefaults}}.<br />
<br />
You don't need to edit your config file to set a smaller font size, I you did you should set font-size to 10 or you will have to small fonts...<br />
<br />
==== Old method ====<br />
<br />
On a default installation with Xfce 4 my font sizes were too big, here is what I did to sort them out.<br />
<br />
First, I set the DPI by adding the following to {{Filename|~/.Xdefaults}}:<br />
Xft*dpi: 134<br />
<br />
This then caused the fonts to be even bigger, so I set them all to be font-size 6 by adding the following into {{Filename|~/.gtkrc-2.0}} (note that this will be overwritten if you use any tools to change GTK settings):<br />
style "user-font"<br />
{<br />
font_name="Bitstream Vera Sans 6"<br />
}<br />
widget_class "*" style "user-font"<br />
<br />
To do the same with KDE fonts (without KDE installed) you have to add the following to {{Filename|~/.kde/share/config/kdeglobals}}:<br />
[General]<br />
StandardFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
activeFont=Bitstream Vera Sans,6,-1,5,75,0,0,0,0,0<br />
fixed=Bitstream Vera Sans Mono,6,-1,5,50,0,0,0,0,0<br />
font=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
menuFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
taskbarFont=Bitstream Vera Sans,6,-1,5,50,1,0,0,0,0<br />
toolBarFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
<br />
To make your fonts even prettier enable the [[Fonts#Fonts_with_LCD_filter_enabled|LCD Fonts]].<br />
<br />
==== Alternative Method ====<br />
<br />
For me it worked far better to open the gnome appearance control panel, go to the fonts tab, click defaults, and change the resolution to be 96 dpi. Changing .Xdefaults doesnt work when running gnome, as gnome-settings-daemon overrides it. You can then leave all font sizes at their default, and things should look good. Simply changing the font sizes and leaving the DPI at its technically correct value (~134) gave me weird layout problems in some apps, and oddly large fonts in others.<br />
<br />
==Known problems and their solutions==<br />
<br />
===Wireless doesn't work, even after installing custom Madwifi module===<br />
<br />
I found that Arch tried to use the ath5k module for wireless, and that meant it took control of the card rather than ath_pci (the module I had compiled and installed). I got a Madwifi status 3 message in dmesg when this happened.<br />
<br />
The solution is to blacklist the ath5k module in {{Filename|/etc/rc.conf}}:<br />
<br />
MODULES = ( ... !ath5k ... )<br />
<br />
===Laggy or Unresponsive ACPI Events===<br />
<br />
The latest kernel (2.6.26) introduces new problems with Eee's ACPI events handling. Basically, ACPI events become very laggy and after some time ACPI get disabled after a heavy usage (e.g. changing volume, brightness). This problem affects both stock kernel and toofishes' kernel.<br />
<br />
It appears that the solution is to apply this [http://bugzilla.kernel.org/attachment.cgi?id=16862 patch] ([http://bugzilla.kernel.org/show_bug.cgi?id=10724 original bug report]) to the kernel. <br />
<br />
{{Note | The latest toofishes' kernel, version 2.6.26-1, now includes the patch, but you can still use ighea's one for the extras features listed below.}}<br />
<br />
Until toofishes update his kernel to include the patch, you can use ighea's slightly modified toofishes' kernel that included the above patch, as well as other modifications:<br />
<br />
*Support for Wine <br />
*uvesafb is built as module <br />
*Use [http://bbs.archlinux.org/viewtopic.php?pid=393860#p393860 new eeepc-laptop driver] (which also handles fan-control) instead of older acus_acpi or asus-laptop -drivers.<br />
<br />
You can get the modified kernel, as well as the associative packages, from [http://koti.kapsi.fi/~ighea/eee/kernel-eee/ here].<br />
<br />
After you have downloaded the packages, Install them using this command:<br />
# pacman -U kernel-eee-2.6.26-1-i686.pkg.tar.gz madwifi-eee-svn-3752-1-i686.pkg.tar.gz <br />
<br />
You might also want to use IgnorePkg-line in {{Filename|/etc/pacman.conf}} to hold packages from being accidentally updated.<br />
IgnorePkg = kernel-eee madwifi-eee-svn<br />
<br />
Also don't forget to upgrade ighea's acpi-eee package to version 9.6.<br />
<br />
===Shutdown Problem===<br />
<br />
If your Eee won't shutdown properly (i.e. the power indicator LED is on but the LCD screen is off), then add the following lines to your {{Filename|/etc/rc.local.shutdown}} file.<br />
<pre><br />
#! /bin/bash<br />
#<br />
# /etc/rc.local.shutdown: Local shutdown script.<br />
#<br />
<br />
# Comment or uncomment the following two lines according to your system configuration.<br />
<br />
/etc/rc.d/mpd stop # If you're using mpd, then you have to stop its daemon first.<br />
<br />
/etc/rc.d/alsa stop # If you're using ALSA daemon, then you also have to stop it.<br />
<br />
# The following line is Eee specific fix, you always need to have this line in /etc/rc.local.shutdown.<br />
<br />
echo -n "0000:00:1b.0" > /sys/bus/pci/drivers/HDA\ Intel/unbind<br />
</pre><br />
<br />
The above solution should fix the shutdown problem in most cases. But if for some reason the problem still persists, the module may not be able to be unloaded until after all services have finished. Do the above, then in {{Filename|/etc/rc.shutdown}} move <br />
<br />
if [ -x /etc/rc.local.shutdown ]; then<br />
/etc/rc.local.shutdown<br />
fi<br />
<br />
from where it was to directly above the line <br />
<br />
# Terminate all processes<br />
<br />
this will cause the {{Filename|rc.local.shutdown}} script to run after services have been exited. This fixed all issues for the person editing this note.<br />
<br />
===Unclean unmount during shutdown when having home directory mounted on SD card===<br />
<br />
If you experienced unclean unmount during shutdown when having your home directory on SD card, then add the following 3 lines to "Write to wtmp file before unmounting" section of your {{Filename|/etc/rc.shutdown}} file:<br />
<pre><br />
...<br />
<br />
stat_busy "Unmounting Filesystems"<br />
/bin/umount -a -t noramfs,notmpfs,nosysfs,noproc<br />
<br />
# Add these 3 lines<br />
sync;sync;sync;<br />
eject /dev/sdb # Or whichever is your SD-card's device name. /dev/disk/by-uuid/ followed by the UUID identifier is preferable though.<br />
sleep 3<br />
# End of hack<br />
<br />
stat_done<br />
<br />
...<br />
</pre><br />
<br />
===Booting from card without initrd===<br />
<br />
Let's say you decided to install Arch Linux on a card and compiled your own kernel (or used the kernel26eee kernel) without initrd. Card reader on EeePC is connected as an USB device. Unfortunately, USB storage devices are detected with a delay, so we must tell the kernel to wait until this device becomes available. You do this with "rootwait" option passed to kernel at boot time.<br />
<br />
===Sleeping and waking system on a card===<br />
<br />
If you have Arch Linux on a card, waking up from sleeping state will most likely fail. The only solution is to enable the CONFIG_USB_PERSIST option in kernel. The kernel26eee package should have this option enabled.<br />
<br />
The command to do this is:<br />
echo 1 >/sys/bus/usb/devices/.../power/persist<br />
<br />
Replace the {{Codeline|"..."}} with the device like 1-3 or 1-5 where the first number is the bus and the second is the device <br />
<br />
Each device that is connected to your computer gets an entry in the sysfs "system file system" it is a virtual file system like proc<br />
<br />
More info:<br />
*http://www.mjmwired.net/kernel/Documentation/usb/persist.txt<br />
*http://forum.eeeuser.com/viewtopic.php?id=22712<br />
<br />
===Display doesn't wake up properly===<br />
<br />
If you encounter black display (but apparently working system) after suspend/resume, consider using the "uswsusp" package (available in the official repositories) and correcting suspend2ram script in /etc/acpi, where you use this line to make the machine go to sleep:<br />
<br />
/usr/sbin/s2ram --force --vbe_post --vbe_mode<br />
<br />
==Battery Tests==<br />
<br />
The following are reported battery runtimes:<br />
<br />
{| class="wikitable" style="text-align:left"<br />
|+Battery runtimes<br />
|-<br />
! Task !! Series !! Wireless !! Screen Brightness !! FSB Speed !! Fan Speed !! Runtime !! Comments<br />
|-<br />
! DVD Playback<br />
| 701 || On || Max || 85mhz || 100% || 134min || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! DVD Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! AVI Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading AVI from SSD<br />
|-<br />
! IM and Surf<br />
| 701 || On || ~30% || ??? || low || 173min || Normal web-browsing, Flash should reduce runtime a lot !<br />
|-<br />
! Programming and PDF reading<br />
| 1000HA || Off || ~40% || ??? || low || +6hs || Using Evince and SPE under XFCE with camera and USB disabled<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || +4hs || Stock kernel without laptop-mode<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || 5hs || Stock kernel with laptop-mode and other tweaks<br />
|}<br />
<br />
N.B. - Will add battery runtimes as I am able to test them, please contribute.<br />
<br />
-- Grecko.1<br />
<br />
Still tweaking, but disabling everything from BIOS got me about 6 hours and a half. With eee-kernel, I *could* get a little more.<br />
<br />
-- ekuber</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=ASUS_Eee_PC_701&diff=86162ASUS Eee PC 7012009-12-03T12:29:20Z<p>Zodmaner: /* Sound */</p>
<hr />
<div>{{stub}}<br />
[[Category:Getting and installing Arch (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|Русский|Инсталляция Arch Linux на Asus EEE PC}}<br />
{{i18n_links_end}}<br />
<br />
Most of this information is from the [http://bbs.archlinux.org/viewtopic.php?pid=297632 Arch Forum]. You can also find a lot of helpful information from the [http://forum.eeeuser.com/ EEEUser Forum]. <br />
<br />
==Before You Begin==<br />
<br />
===Avoiding Pitfalls===<br />
<br />
The install is pretty normal, except that you'll need to [http://forum.eeeuser.com/viewtopic.php?id=890 avoid the pitfalls] of our alternative Linux install:<br />
<br />
# Never choose to use a journaling file system on the SSD partitions<br />
# Never use a swap partition on the SSD<br />
# Edit your new installation fstab to mount the SSD partitions "noatime"<br />
# Never log messages or error log to the SSD<br />
<br />
The rules ensure that we won't reach the maximum limit of writes on our SSD faster than we should, although this is being contested (see [http://wiki.eeeuser.com/ssd_write_limit this link] and [http://www.storagesearch.com/ssdmyths-endurance.html this other link]).<br />
<br />
Some other minor modifications can be made to decrease number of non-mandatory writes by applications: deactivate {{Filename|~/.viminfo}} in vi, deactivate less history file ({{Filename|~/.lesshst}}), and so on.<br />
<br />
===Choosing Your Installation Media===<br />
<br />
The Eee PC does not have an optical drive installed on the machine. This means you will need to install Arch Linux through one of the alternative methods:<br />
<br />
# [[Beginners_Guide#USB_stick|USB stick]] '''(Recommended)'''<br />
# External USB CD-ROM drive<br />
# [[PXE|Network (PXE)]]<br />
<br />
==Installing Arch Linux==<br />
<br />
With the release of the 2009.08 installation media, installing Arch Linux on Asus Eee PC model 701 is pretty easy and straightforward since the stock kernel on Arch installation media support all of the 701 hardwares out of the box. <br />
<br />
Therefore, aside from the recommended partition scheme described below, there shouldn't be any other differences between installing Arch Linux on the 701 and any other computer. You should be able to successfully install Arch on the 701 by following instructions on [[Beginners_Guide|Beginners' Guide]] without any problem.<br />
<br />
===Prepare Hard Drive===<br />
<br />
<br />
The most important different between the 701 and other machines is that the 701 use SSD drive instead of normal hard drive. This section advise on how to set up a partition scheme that is best suited to the 701. <br />
<br />
The default Eee PC drive is split up into four partitions (here is [http://forum.eeeuser.com/viewtopic.php?id=1805 some information] about the partitioning): <br />
<br />
* It is easiest to wipe the existing partitions and use one or two partitions for your install. One partition would be just '/', and two partitions would be '/boot' and '/'.<br />
* Choose "NONE" for swap in case your eee has a SSD (see #2 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]])<br />
* Select "ext2" as your filesystem in case your eee has a SSD (see #1 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]]). If your model has a standard HD choose "ext3".<br />
<br />
===Asus Eee PC model 701 repository from toofishes===<br />
<br />
Toofishes created a repository for the 701. The repository contained customized kernel built specifically for the 701 and some additional packages. <br />
<br />
While the stock Arch kernel works very well with the 701, toofishes kernel have the following advantages:<br />
<br />
* Faster boot time &ndash; because most of the modules have been compile into the kernel, no time is wasted waiting for the modules to load<br />
* No need to generate initial ramdisk every time a kernel is upgrade <br />
* Smaller size (around 4MB)<br />
<br />
To use the repository, add:<br />
[eee]<br />
Server = http://code.toofishes.net/packages/eee<br />
to your {{Filename|/etc/pacman.conf}} and then issue:<br />
pacman -Syu<br />
<br />
====Package List====<br />
Currently, toofishes' repository contains the following packages:<br />
<br />
*'''kernel-eee''' &ndash; customized kernel for Asus Eee PC model 701<br />
*'''luvcview''' &ndash; webcam program for testing webcam driver<br />
<br />
====Kernel-eee Installation Instruction====<br />
Simply use pacman to install the package you need. Install the packages with this command:<br />
# pacman -Sy kernel-eee<br />
<br />
then, add the following to {{Filename|/boot/grub/menu.lst}}; note that no initrd is needed:<br />
# (2) Arch Linux<br />
title Arch Linux Eee kernel<br />
root (hd0,0)<br />
kernel /boot/vmlinuzeee root=/dev/sda1 ro<br />
<br />
Restart and select Arch Linux Eee kernel from the grub boot menu.<br />
<br />
==Getting Everything Working==<br />
<br />
By now, you should have Arch Linux installed. The following is the guide on how to get the rest of your system working.<br />
<br />
===X===<br />
<br />
Install X by follow instructions on the [[Beginners_Guide#Step_2:_Install_X|Beginners' Guide]], then install the Intel graphics driver:<br />
# pacman -Sy xf86-video-intel<br />
<br />
You may also wish to install the Synaptics drivers for the touchpad (not needed for Eee PC 900):<br />
# pacman -Sy xf86-input-synaptics<br />
<br />
With the latest version of X from extra repository, X should work on the 701 '''without any need for xorg.conf'''. However, if for some reason you wish to use an xorg.conf file, you can use an old [[Example_Xorg_configuration_file_for_Asus_Eee_PC_701|example Xorg configuration file for Asus Eee PC model 701]] as a template or automatically generate a new one by running the following command:<br />
<br />
# Xorg -configure<br />
<br />
Consult [[Xorg_input_hotplugging|Xorg Input Hotplugging]] for more information on how to config input devices using HAL.<br />
<br />
The synaptics stuff can be removed if you have a EEE PC 900. The {{Codeline|Option "AutoAddDevices"}} line is important if you need a non-default XkbLayout, because if you don't have it, xorg will find 3 keyboards (at least with the 900 model).<br />
The Modeline has obviously to be removed or modified if you dont have a model with this resolution.<br />
<br />
===Sound, Webcam & Microphone===<br />
<br />
====Sound====<br />
<br />
For most people, sound working right out of the box with no troubles (after you have followed the [[Beginners_Guide#Step_1:_Configure_sound_with_alsamixer|guide]], of course). However, others might need to add the following line to {{Filename|/etc/modprobe.conf}}<br />
options snd-hda-intel model=3stack-dig<br />
or the following one for the Eee PC 900 model<br />
options snd-hda-intel model=auto<br />
<br />
If your internal microphone doesn't work, you probably have to turn the capture feature on. Simply fire up alsamixer, find your Capture control, and press spacebar to enable it.<br />
<br />
====Webcam====<br />
<br />
You can enable your built-in webcam by adding the following line to your {{Filename|/etc/rc.local}} file.<br />
<br />
echo 1 > /sys/devices/platform/eeepc/camera<br />
<br />
If you want the webcam application that the default Xandos installation uses, install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14469 ucview from the AUR].<br />
<br />
The webcam also works fine with the latest version of Skype.<br />
<br />
If you already have mplayer installed you can launch:<br />
$ mplayer -fps 15 tv://<br />
<br />
I have yet to get it working with vlc or any other software such as xawtv. If you know how, please update this.<br />
<br />
*'''NOTE:''' For anyone who has accidentally disabled Auto Exposure for their webcam in luvcview (making the image dark), and can't enable it again, do the following:<br />
<br />
Install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14468 libwebcam from the AUR].<br />
<br />
Issue the following command:<br />
$ uvcdynctrl --set "Exposure, Auto" 4<br />
<br />
{{Note | Be sure the "OS Installation" option is set to "finished" in the BIOS' "Advanced" tab or your camera may not work in some applications (like Skype).}}<br />
<br />
{{Note | Make sure you are a member of the video group edit /etc/group and add your username to video}}<br />
<br />
====Microphone====<br />
<br />
Solution for problems with the internal microphone.<br />
<br />
1. First of all set in alsamixer "Input Source" to "i-Mic"<br />
<br />
2. Increase "Capture" and "i-Mic Boost" to your needs<br />
<br />
3. Edit {{Filename|/etc/asound.state}} the following, change the 2 "false" to "true" like showing:<br />
....snap.....<br />
control.11 {<br />
comment.access 'read write'<br />
comment.type BOOLEAN<br />
comment.count 2<br />
iface MIXER<br />
name 'Capture Switch'<br />
value.0 true<br />
value.1 true<br />
}<br />
....snap....<br />
<br />
4. After editing run following as root<br />
# alsactl restore<br />
<br />
5. Now your internal microphone should be working.<br />
<br />
===Getting Hot Keys, Graphic Indicators and Shutdown with the Power Button Working===<br />
<br />
If you want to have working hot keys (wifi, brightness, volume etc), an OSD, and be able to assign actions to things like the powerbutton and closing the lid, then you should install '''ighea's acpi-eee''' package.<br />
<br />
==== ighea's acpi-eee ====<br />
<br />
Get the latest package from [http://kapsi.fi/ighea/eee/acpi-eee/ here].<br />
<br />
The package can be easily installed with:<br />
# pacman -U acpi-eee-10.0-1-i686.pkg.tar.gz<br />
<br />
See messages during installation for more details and don't forget to edit {{Filename|/etc/acpi/eee.conf}} to suit your tastes.<br />
<br />
*For those who use the wireless on/off acpi command; the {{Codeline|NETWORK_UP_COMMAND&#61;""}} setting in {{Filename|/etc/acpi/eee.conf}}, when applicable, should at least release the network. For example, using netcfg2, {{Codeline|NETWORK_UP_COMMAND&#61;"netcfg2 -a"}} will release the connections from before disabling wireless, allowing new ones to be made without netcfg thinking that it's already connected. It is also possible to reconnect to your previous network, however, the network tool you use needs to have a somewhat lengthy timeout as it takes 15-20 seconds for your wireless device to reappear. <br />
<br />
{{Note | Make sure '''asusosd''' is enabled on startup if you want to have the Graphic Indicators from Xandros. To run asusosd simply type {{Codeline|asusosd &}} at a command prompt.}}<br />
<br />
==Additional Tips & Tweaks==<br />
<br />
===Tweaking kernel-eee===<br />
<br />
Toofishes' kernel, also known as kernel-eee, can be recompiled to include custom features. You can download toofishes' kernel PKGBUILD and all the nesseary files from his gitweb by installing the git package and using the following command:<br />
<br />
$ git clone git://code.toofishes.net/dan/eee.git<br />
<br />
or if you are behind a proxy and can't use the git protocol:<br />
<br />
$ git clone http://code.toofishes.net/git/dan/eee.git<br />
<br />
There are two ways to tweak the kernel. The first is simply to edit the {{Filename|kernelconfig}} file with your favorite editor and the second is to insert a {{Codeline|make menuconfig}} line into the PKGBUILD before the kernel's compilation.<br />
<br />
===Using Wine with toofishes' kernel===<br />
<br />
Normally, Wine won't work with toofishes' kernel because it is compiled with VMSPLIT_2G_OPT option. In order to use Wine with toofishes' kernel, you have to recompile his kernel with VMSPLIT_3G option.<br />
<br />
Download the kernel PKGBUILD and all the necessary files from toofishes' gitweb using the above instructions, then change the following lines in the {{Filename|kernelconfig}} file from this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 # CONFIG_VMSPLIT_3G is not set<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 CONFIG_VMSPLIT_2G_OPT=y<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
to this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 CONFIG_VMSPLIT_3G=y<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 # CONFIG_VMSPLIT_2G_OPT is not set<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
<br />
Compile and install the kernel and Wine should now work.<br />
<br />
===Power down with the power button===<br />
<br />
{{Note | If you are using ighea's acpi-eee or dkite's acpid_eee package then you should already be able to shutdown by pressing the power button and should not need to do this.}}<br />
<br />
The two alternatives here are described in [[Allow users to shutdown]].<br />
<br />
If you don't already or don't plan to use sudo, it may be simpler to use the setuid /sbin/halt method, otherwise using sudo is preferred.<br />
<br />
Below are all the steps required for the sudo method. If you want to use the setuid method, read the article linked above and perform the 'power' file step here, while omitting the 'sudo' in it.<br />
<br />
# pacman -S sudo<br />
<br />
As root, do the following:<br />
# visudo<br />
<br />
Add the following line to the file:<br />
USER HOST = NOPASSWD: /sbin/poweroff<br />
<br />
Where {{Codeline|USER}} is the user you want to be able to power down with and {{Codeline|HOST}} is your hostname (from {{Filename|/etc/rc.conf}}).<br />
<br />
Now, create a file called {{Filename|/etc/acpi/events/power}}, containing:<br />
# /etc/acpi/events/power<br />
# This is called when the user presses the power button<br />
<br />
event=button/power (PWR.||PBTN)<br />
action=sudo /sbin/poweroff<br />
<br />
Make sure that you execute:<br />
# /etc/rc.d/acpid start<br />
<br />
And/or add acpid to the daemons list in {{Filename|/etc/rc.conf}}:<br />
DAEMONS=(hal, acpid ...)<br />
<br />
===Use cpufreq for power saving===<br />
<br />
{{Note | toofishes dropped CPU scaling from his latest kernel builds, due to the fact, confirmed by other users, that there were no effective power savings with p4-clockmod's module, and it introduced "unacceptable latency", even with relatively low percentage up thresholds.}}<br />
<br />
Install cpufrequtitls:<br />
# pacman -S cpufrequtils<br />
<br />
For scaling down the processor you have to load the p4_clockmod module. Insert it into your {{Filename|/etc/rc.conf}} MODULES array for loading it at startup. <br />
MODULES=(... p4_clockmod ...)<br />
<br />
Add 'cpufreq' to the DAEMONS array in {{Filename|/etc/rc.conf}} to have it start on startup.<br />
DAEMONS=(... cpufreq ...)<br />
<br />
Add the following into {{Filename|/etc/conf.d/cpufreq}}:<br />
governor="ondemand"<br />
min_freq="113MHz"<br />
max_freq="900MHz"<br />
<br />
With enabled cpufreq it scales the processor between 113MHz up to max. frequency. That should save a lot on battery power. The stated 900MHz will be never reached by the eeePC, the p4_clockmod reports a wrong frequency here. But scaling works, you can feel it in the performance of eeePC that he slow down the processor.<br />
<br />
{{Note | The merits of p4-clockmod are debatable. Particularly on the EEEPC 701, battery time isn't extended due to its usage, and some users have even reported less battery duration. More hints to the reasons why can be read in [http://www.codemonkey.org.uk/2009/01/18/forthcoming-p4clockmod/ this] fine blog entry.}}<br />
<br />
===More responsive system with ondemand governor===<br />
The default up_threshold (where it will bump to a faster speed) for the CPU governor is 80, which means it will increase the CPU speed when utilization is above 80%. This can make X applications have a bit of lag. <br />
<br />
Try changing this value:<br />
$ sudo bash -c "echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold"<br />
<br />
With 40 it still leaves the majority of CPU cycles at the lowest available clock speed but increases responsiveness. You can add this line to one of your startup scripts (such as {{Filename|/etc/rc.local}}) if you wish to keep it, for example:<br />
<br />
#!/bin/bash<br />
#<br />
# /etc/rc.local: Local multi-user startup script.<br />
#<br />
<br />
echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold<br />
<br />
Also, following line is also reported to help makes system more responsive. You can use it by adding it to your {{Filename|/etc/rc.local}}:<br />
echo 2000000 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate<br />
<br />
===Speeding up udev for faster boot===<br />
*[[Speedup udev]]<br />
*http://dev.laptop.org/ticket/4349<br />
*[http://www.eeesale.com/Asus-Eee-PC-overclock-Benchmarks.htm Speed up the Eee PC]<br />
<br />
You can also disable the autoload by editing your {{Filename|[[rc.conf]]}}:<br />
...<br />
MOD_AUTOLOAD="no"<br />
...<br />
MODULES=(pciehp ath5k)<br />
<br />
===Update your BIOS without Xandros===<br />
{{Warning | You can break your system, do not update if you are not sure of what you are doing!}}<br />
<br />
First, you need to download the ''.rom'' file.<br />
*[http://update.eeepc.asus.com/bios/ Asus' official BIOS]<br />
*[http://forum.eeeuser.com/viewtopic.php?id=3485 EeeUser's topic]<br />
<br />
You also need an USB stick formatted in FAT32. To format the USBStick, use the cfdisk tool:<br />
# cfdisk /dev/sdc # could be something else than "c"<br />
<br />
Choose [delete], [type]: "fat32" (code 0B), [write] and then exit with [quit].<br />
<br />
NOTE to EEE PC 900 owners and possibly others: Using this method will require a flash drive formatted with a '''FAT16''' file-system. If the BIOS update process hangs up at "Reading file 900.ROM" for more than a few minutes then it should be safe to power down your EEE PC and reformat your flashdrive's file-system to the correct one. You can force FAT16 creation with the following command:<br />
# mkdosfs -F 16 /dev/device-path<br />
<br />
Now just copy the ''.rom'' on the USBStick :<br />
$ cp /somewhere/blabla/.../thecurrentnameofthefile.ROM /path/to/mounted/usb_stick/701.rom<br />
The name of the copy '''must''' be xxxx.rom where xxxx is the model of your eee PC. (i.e. 900 users it's 900.rom)<br />
<br />
Next step, reboot the eeepc with the USB stick pluged-in, and press Alt+F2. It will launch the built-in tool. Everything should be Ok, you can make a coffee during the update. When it asks you to push the power-button it has finished.<br />
<br />
At the next boot, you'll be invited to configure the BIOS. Check if the everything is enabled (my webcam and wireless were disabled after the update) and if it displays the good version in the main screen. It's done!<br />
<br />
=== More usable font sizes ===<br />
<br />
====The_glu's method====<br />
<br />
I found an easy solution that works on a 901:<br />
<br />
Edit {{Filename|/etc/X11/xinit/xserverrc}} and add "-dpi 134":<br />
exec /usr/bin/X -nolisten tcp -dpi 134<br />
<br />
Restart X and fonts should have the correct size. Notice it's won't works if you have Xft*dpi: in your {{Filename|.XDefaults}}.<br />
<br />
You don't need to edit your config file to set a smaller font size, I you did you should set font-size to 10 or you will have to small fonts...<br />
<br />
==== Old method ====<br />
<br />
On a default installation with Xfce 4 my font sizes were too big, here is what I did to sort them out.<br />
<br />
First, I set the DPI by adding the following to {{Filename|~/.Xdefaults}}:<br />
Xft*dpi: 134<br />
<br />
This then caused the fonts to be even bigger, so I set them all to be font-size 6 by adding the following into {{Filename|~/.gtkrc-2.0}} (note that this will be overwritten if you use any tools to change GTK settings):<br />
style "user-font"<br />
{<br />
font_name="Bitstream Vera Sans 6"<br />
}<br />
widget_class "*" style "user-font"<br />
<br />
To do the same with KDE fonts (without KDE installed) you have to add the following to {{Filename|~/.kde/share/config/kdeglobals}}:<br />
[General]<br />
StandardFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
activeFont=Bitstream Vera Sans,6,-1,5,75,0,0,0,0,0<br />
fixed=Bitstream Vera Sans Mono,6,-1,5,50,0,0,0,0,0<br />
font=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
menuFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
taskbarFont=Bitstream Vera Sans,6,-1,5,50,1,0,0,0,0<br />
toolBarFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
<br />
To make your fonts even prettier enable the [[Fonts#Fonts_with_LCD_filter_enabled|LCD Fonts]].<br />
<br />
==== Alternative Method ====<br />
<br />
For me it worked far better to open the gnome appearance control panel, go to the fonts tab, click defaults, and change the resolution to be 96 dpi. Changing .Xdefaults doesnt work when running gnome, as gnome-settings-daemon overrides it. You can then leave all font sizes at their default, and things should look good. Simply changing the font sizes and leaving the DPI at its technically correct value (~134) gave me weird layout problems in some apps, and oddly large fonts in others.<br />
<br />
==Known problems and their solutions==<br />
<br />
===Wireless doesn't work, even after installing custom Madwifi module===<br />
<br />
I found that Arch tried to use the ath5k module for wireless, and that meant it took control of the card rather than ath_pci (the module I had compiled and installed). I got a Madwifi status 3 message in dmesg when this happened.<br />
<br />
The solution is to blacklist the ath5k module in {{Filename|/etc/rc.conf}}:<br />
<br />
MODULES = ( ... !ath5k ... )<br />
<br />
===Laggy or Unresponsive ACPI Events===<br />
<br />
The latest kernel (2.6.26) introduces new problems with Eee's ACPI events handling. Basically, ACPI events become very laggy and after some time ACPI get disabled after a heavy usage (e.g. changing volume, brightness). This problem affects both stock kernel and toofishes' kernel.<br />
<br />
It appears that the solution is to apply this [http://bugzilla.kernel.org/attachment.cgi?id=16862 patch] ([http://bugzilla.kernel.org/show_bug.cgi?id=10724 original bug report]) to the kernel. <br />
<br />
{{Note | The latest toofishes' kernel, version 2.6.26-1, now includes the patch, but you can still use ighea's one for the extras features listed below.}}<br />
<br />
Until toofishes update his kernel to include the patch, you can use ighea's slightly modified toofishes' kernel that included the above patch, as well as other modifications:<br />
<br />
*Support for Wine <br />
*uvesafb is built as module <br />
*Use [http://bbs.archlinux.org/viewtopic.php?pid=393860#p393860 new eeepc-laptop driver] (which also handles fan-control) instead of older acus_acpi or asus-laptop -drivers.<br />
<br />
You can get the modified kernel, as well as the associative packages, from [http://koti.kapsi.fi/~ighea/eee/kernel-eee/ here].<br />
<br />
After you have downloaded the packages, Install them using this command:<br />
# pacman -U kernel-eee-2.6.26-1-i686.pkg.tar.gz madwifi-eee-svn-3752-1-i686.pkg.tar.gz <br />
<br />
You might also want to use IgnorePkg-line in {{Filename|/etc/pacman.conf}} to hold packages from being accidentally updated.<br />
IgnorePkg = kernel-eee madwifi-eee-svn<br />
<br />
Also don't forget to upgrade ighea's acpi-eee package to version 9.6.<br />
<br />
===Shutdown Problem===<br />
<br />
If your Eee won't shutdown properly (i.e. the power indicator LED is on but the LCD screen is off), then add the following lines to your {{Filename|/etc/rc.local.shutdown}} file.<br />
<pre><br />
#! /bin/bash<br />
#<br />
# /etc/rc.local.shutdown: Local shutdown script.<br />
#<br />
<br />
# Comment or uncomment the following two lines according to your system configuration.<br />
<br />
/etc/rc.d/mpd stop # If you're using mpd, then you have to stop its daemon first.<br />
<br />
/etc/rc.d/alsa stop # If you're using ALSA daemon, then you also have to stop it.<br />
<br />
# The following line is Eee specific fix, you always need to have this line in /etc/rc.local.shutdown.<br />
<br />
echo -n "0000:00:1b.0" > /sys/bus/pci/drivers/HDA\ Intel/unbind<br />
</pre><br />
<br />
The above solution should fix the shutdown problem in most cases. But if for some reason the problem still persists, the module may not be able to be unloaded until after all services have finished. Do the above, then in {{Filename|/etc/rc.shutdown}} move <br />
<br />
if [ -x /etc/rc.local.shutdown ]; then<br />
/etc/rc.local.shutdown<br />
fi<br />
<br />
from where it was to directly above the line <br />
<br />
# Terminate all processes<br />
<br />
this will cause the {{Filename|rc.local.shutdown}} script to run after services have been exited. This fixed all issues for the person editing this note.<br />
<br />
===Unclean unmount during shutdown when having home directory mounted on SD card===<br />
<br />
If you experienced unclean unmount during shutdown when having your home directory on SD card, then add the following 3 lines to "Write to wtmp file before unmounting" section of your {{Filename|/etc/rc.shutdown}} file:<br />
<pre><br />
...<br />
<br />
stat_busy "Unmounting Filesystems"<br />
/bin/umount -a -t noramfs,notmpfs,nosysfs,noproc<br />
<br />
# Add these 3 lines<br />
sync;sync;sync;<br />
eject /dev/sdb # Or whichever is your SD-card's device name. /dev/disk/by-uuid/ followed by the UUID identifier is preferable though.<br />
sleep 3<br />
# End of hack<br />
<br />
stat_done<br />
<br />
...<br />
</pre><br />
<br />
===Booting from card without initrd===<br />
<br />
Let's say you decided to install Arch Linux on a card and compiled your own kernel (or used the kernel26eee kernel) without initrd. Card reader on EeePC is connected as an USB device. Unfortunately, USB storage devices are detected with a delay, so we must tell the kernel to wait until this device becomes available. You do this with "rootwait" option passed to kernel at boot time.<br />
<br />
===Sleeping and waking system on a card===<br />
<br />
If you have Arch Linux on a card, waking up from sleeping state will most likely fail. The only solution is to enable the CONFIG_USB_PERSIST option in kernel. The kernel26eee package should have this option enabled.<br />
<br />
The command to do this is:<br />
echo 1 >/sys/bus/usb/devices/.../power/persist<br />
<br />
Replace the {{Codeline|"..."}} with the device like 1-3 or 1-5 where the first number is the bus and the second is the device <br />
<br />
Each device that is connected to your computer gets an entry in the sysfs "system file system" it is a virtual file system like proc<br />
<br />
More info:<br />
*http://www.mjmwired.net/kernel/Documentation/usb/persist.txt<br />
*http://forum.eeeuser.com/viewtopic.php?id=22712<br />
<br />
===Display doesn't wake up properly===<br />
<br />
If you encounter black display (but apparently working system) after suspend/resume, consider using the "uswsusp" package (available in the official repositories) and correcting suspend2ram script in /etc/acpi, where you use this line to make the machine go to sleep:<br />
<br />
/usr/sbin/s2ram --force --vbe_post --vbe_mode<br />
<br />
==Battery Tests==<br />
<br />
The following are reported battery runtimes:<br />
<br />
{| class="wikitable" style="text-align:left"<br />
|+Battery runtimes<br />
|-<br />
! Task !! Series !! Wireless !! Screen Brightness !! FSB Speed !! Fan Speed !! Runtime !! Comments<br />
|-<br />
! DVD Playback<br />
| 701 || On || Max || 85mhz || 100% || 134min || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! DVD Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! AVI Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading AVI from SSD<br />
|-<br />
! IM and Surf<br />
| 701 || On || ~30% || ??? || low || 173min || Normal web-browsing, Flash should reduce runtime a lot !<br />
|-<br />
! Programming and PDF reading<br />
| 1000HA || Off || ~40% || ??? || low || +6hs || Using Evince and SPE under XFCE with camera and USB disabled<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || +4hs || Stock kernel without laptop-mode<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || 5hs || Stock kernel with laptop-mode and other tweaks<br />
|}<br />
<br />
N.B. - Will add battery runtimes as I am able to test them, please contribute.<br />
<br />
-- Grecko.1<br />
<br />
Still tweaking, but disabling everything from BIOS got me about 6 hours and a half. With eee-kernel, I *could* get a little more.<br />
<br />
-- ekuber</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=ASUS_Eee_PC_701&diff=86161ASUS Eee PC 7012009-12-03T12:24:35Z<p>Zodmaner: /* Sound */</p>
<hr />
<div>{{stub}}<br />
[[Category:Getting and installing Arch (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|Русский|Инсталляция Arch Linux на Asus EEE PC}}<br />
{{i18n_links_end}}<br />
<br />
Most of this information is from the [http://bbs.archlinux.org/viewtopic.php?pid=297632 Arch Forum]. You can also find a lot of helpful information from the [http://forum.eeeuser.com/ EEEUser Forum]. <br />
<br />
==Before You Begin==<br />
<br />
===Avoiding Pitfalls===<br />
<br />
The install is pretty normal, except that you'll need to [http://forum.eeeuser.com/viewtopic.php?id=890 avoid the pitfalls] of our alternative Linux install:<br />
<br />
# Never choose to use a journaling file system on the SSD partitions<br />
# Never use a swap partition on the SSD<br />
# Edit your new installation fstab to mount the SSD partitions "noatime"<br />
# Never log messages or error log to the SSD<br />
<br />
The rules ensure that we won't reach the maximum limit of writes on our SSD faster than we should, although this is being contested (see [http://wiki.eeeuser.com/ssd_write_limit this link] and [http://www.storagesearch.com/ssdmyths-endurance.html this other link]).<br />
<br />
Some other minor modifications can be made to decrease number of non-mandatory writes by applications: deactivate {{Filename|~/.viminfo}} in vi, deactivate less history file ({{Filename|~/.lesshst}}), and so on.<br />
<br />
===Choosing Your Installation Media===<br />
<br />
The Eee PC does not have an optical drive installed on the machine. This means you will need to install Arch Linux through one of the alternative methods:<br />
<br />
# [[Beginners_Guide#USB_stick|USB stick]] '''(Recommended)'''<br />
# External USB CD-ROM drive<br />
# [[PXE|Network (PXE)]]<br />
<br />
==Installing Arch Linux==<br />
<br />
With the release of the 2009.08 installation media, installing Arch Linux on Asus Eee PC model 701 is pretty easy and straightforward since the stock kernel on Arch installation media support all of the 701 hardwares out of the box. <br />
<br />
Therefore, aside from the recommended partition scheme described below, there shouldn't be any other differences between installing Arch Linux on the 701 and any other computer. You should be able to successfully install Arch on the 701 by following instructions on [[Beginners_Guide|Beginners' Guide]] without any problem.<br />
<br />
===Prepare Hard Drive===<br />
<br />
<br />
The most important different between the 701 and other machines is that the 701 use SSD drive instead of normal hard drive. This section advise on how to set up a partition scheme that is best suited to the 701. <br />
<br />
The default Eee PC drive is split up into four partitions (here is [http://forum.eeeuser.com/viewtopic.php?id=1805 some information] about the partitioning): <br />
<br />
* It is easiest to wipe the existing partitions and use one or two partitions for your install. One partition would be just '/', and two partitions would be '/boot' and '/'.<br />
* Choose "NONE" for swap in case your eee has a SSD (see #2 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]])<br />
* Select "ext2" as your filesystem in case your eee has a SSD (see #1 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]]). If your model has a standard HD choose "ext3".<br />
<br />
===Asus Eee PC model 701 repository from toofishes===<br />
<br />
Toofishes created a repository for the 701. The repository contained customized kernel built specifically for the 701 and some additional packages. <br />
<br />
While the stock Arch kernel works very well with the 701, toofishes kernel have the following advantages:<br />
<br />
* Faster boot time &ndash; because most of the modules have been compile into the kernel, no time is wasted waiting for the modules to load<br />
* No need to generate initial ramdisk every time a kernel is upgrade <br />
* Smaller size (around 4MB)<br />
<br />
To use the repository, add:<br />
[eee]<br />
Server = http://code.toofishes.net/packages/eee<br />
to your {{Filename|/etc/pacman.conf}} and then issue:<br />
pacman -Syu<br />
<br />
====Package List====<br />
Currently, toofishes' repository contains the following packages:<br />
<br />
*'''kernel-eee''' &ndash; customized kernel for Asus Eee PC model 701<br />
*'''luvcview''' &ndash; webcam program for testing webcam driver<br />
<br />
====Kernel-eee Installation Instruction====<br />
Simply use pacman to install the package you need. Install the packages with this command:<br />
# pacman -Sy kernel-eee<br />
<br />
then, add the following to {{Filename|/boot/grub/menu.lst}}; note that no initrd is needed:<br />
# (2) Arch Linux<br />
title Arch Linux Eee kernel<br />
root (hd0,0)<br />
kernel /boot/vmlinuzeee root=/dev/sda1 ro<br />
<br />
Restart and select Arch Linux Eee kernel from the grub boot menu.<br />
<br />
==Getting Everything Working==<br />
<br />
By now, you should have Arch Linux installed. The following is the guide on how to get the rest of your system working.<br />
<br />
===X===<br />
<br />
Install X by follow instructions on the [[Beginners_Guide#Step_2:_Install_X|Beginners' Guide]], then install the Intel graphics driver:<br />
# pacman -Sy xf86-video-intel<br />
<br />
You may also wish to install the Synaptics drivers for the touchpad (not needed for Eee PC 900):<br />
# pacman -Sy xf86-input-synaptics<br />
<br />
With the latest version of X from extra repository, X should work on the 701 '''without any need for xorg.conf'''. However, if for some reason you wish to use an xorg.conf file, you can use an old [[Example_Xorg_configuration_file_for_Asus_Eee_PC_701|example Xorg configuration file for Asus Eee PC model 701]] as a template or automatically generate a new one by running the following command:<br />
<br />
# Xorg -configure<br />
<br />
Consult [[Xorg_input_hotplugging|Xorg Input Hotplugging]] for more information on how to config input devices using HAL.<br />
<br />
The synaptics stuff can be removed if you have a EEE PC 900. The {{Codeline|Option "AutoAddDevices"}} line is important if you need a non-default XkbLayout, because if you don't have it, xorg will find 3 keyboards (at least with the 900 model).<br />
The Modeline has obviously to be removed or modified if you dont have a model with this resolution.<br />
<br />
===Sound, Webcam & Microphone===<br />
<br />
====Sound====<br />
<br />
For most people, sound working right out of the box with no troubles. However, others might need to add the following line to {{Filename|/etc/modprobe.conf}}<br />
options snd-hda-intel model=3stack-dig<br />
or the following one for the Eee PC 900 model<br />
options snd-hda-intel model=auto<br />
<br />
If your internal microphone doesn't work, you probably have to turn the capture feature on. Simply fire up alsamixer, find your Capture control, and press spacebar to enable it.<br />
<br />
====Webcam====<br />
<br />
You can enable your built-in webcam by adding the following line to your {{Filename|/etc/rc.local}} file.<br />
<br />
echo 1 > /sys/devices/platform/eeepc/camera<br />
<br />
If you want the webcam application that the default Xandos installation uses, install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14469 ucview from the AUR].<br />
<br />
The webcam also works fine with the latest version of Skype.<br />
<br />
If you already have mplayer installed you can launch:<br />
$ mplayer -fps 15 tv://<br />
<br />
I have yet to get it working with vlc or any other software such as xawtv. If you know how, please update this.<br />
<br />
*'''NOTE:''' For anyone who has accidentally disabled Auto Exposure for their webcam in luvcview (making the image dark), and can't enable it again, do the following:<br />
<br />
Install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14468 libwebcam from the AUR].<br />
<br />
Issue the following command:<br />
$ uvcdynctrl --set "Exposure, Auto" 4<br />
<br />
{{Note | Be sure the "OS Installation" option is set to "finished" in the BIOS' "Advanced" tab or your camera may not work in some applications (like Skype).}}<br />
<br />
{{Note | Make sure you are a member of the video group edit /etc/group and add your username to video}}<br />
<br />
====Microphone====<br />
<br />
Solution for problems with the internal microphone.<br />
<br />
1. First of all set in alsamixer "Input Source" to "i-Mic"<br />
<br />
2. Increase "Capture" and "i-Mic Boost" to your needs<br />
<br />
3. Edit {{Filename|/etc/asound.state}} the following, change the 2 "false" to "true" like showing:<br />
....snap.....<br />
control.11 {<br />
comment.access 'read write'<br />
comment.type BOOLEAN<br />
comment.count 2<br />
iface MIXER<br />
name 'Capture Switch'<br />
value.0 true<br />
value.1 true<br />
}<br />
....snap....<br />
<br />
4. After editing run following as root<br />
# alsactl restore<br />
<br />
5. Now your internal microphone should be working.<br />
<br />
===Getting Hot Keys, Graphic Indicators and Shutdown with the Power Button Working===<br />
<br />
If you want to have working hot keys (wifi, brightness, volume etc), an OSD, and be able to assign actions to things like the powerbutton and closing the lid, then you should install '''ighea's acpi-eee''' package.<br />
<br />
==== ighea's acpi-eee ====<br />
<br />
Get the latest package from [http://kapsi.fi/ighea/eee/acpi-eee/ here].<br />
<br />
The package can be easily installed with:<br />
# pacman -U acpi-eee-10.0-1-i686.pkg.tar.gz<br />
<br />
See messages during installation for more details and don't forget to edit {{Filename|/etc/acpi/eee.conf}} to suit your tastes.<br />
<br />
*For those who use the wireless on/off acpi command; the {{Codeline|NETWORK_UP_COMMAND&#61;""}} setting in {{Filename|/etc/acpi/eee.conf}}, when applicable, should at least release the network. For example, using netcfg2, {{Codeline|NETWORK_UP_COMMAND&#61;"netcfg2 -a"}} will release the connections from before disabling wireless, allowing new ones to be made without netcfg thinking that it's already connected. It is also possible to reconnect to your previous network, however, the network tool you use needs to have a somewhat lengthy timeout as it takes 15-20 seconds for your wireless device to reappear. <br />
<br />
{{Note | Make sure '''asusosd''' is enabled on startup if you want to have the Graphic Indicators from Xandros. To run asusosd simply type {{Codeline|asusosd &}} at a command prompt.}}<br />
<br />
==Additional Tips & Tweaks==<br />
<br />
===Tweaking kernel-eee===<br />
<br />
Toofishes' kernel, also known as kernel-eee, can be recompiled to include custom features. You can download toofishes' kernel PKGBUILD and all the nesseary files from his gitweb by installing the git package and using the following command:<br />
<br />
$ git clone git://code.toofishes.net/dan/eee.git<br />
<br />
or if you are behind a proxy and can't use the git protocol:<br />
<br />
$ git clone http://code.toofishes.net/git/dan/eee.git<br />
<br />
There are two ways to tweak the kernel. The first is simply to edit the {{Filename|kernelconfig}} file with your favorite editor and the second is to insert a {{Codeline|make menuconfig}} line into the PKGBUILD before the kernel's compilation.<br />
<br />
===Using Wine with toofishes' kernel===<br />
<br />
Normally, Wine won't work with toofishes' kernel because it is compiled with VMSPLIT_2G_OPT option. In order to use Wine with toofishes' kernel, you have to recompile his kernel with VMSPLIT_3G option.<br />
<br />
Download the kernel PKGBUILD and all the necessary files from toofishes' gitweb using the above instructions, then change the following lines in the {{Filename|kernelconfig}} file from this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 # CONFIG_VMSPLIT_3G is not set<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 CONFIG_VMSPLIT_2G_OPT=y<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
to this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 CONFIG_VMSPLIT_3G=y<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 # CONFIG_VMSPLIT_2G_OPT is not set<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
<br />
Compile and install the kernel and Wine should now work.<br />
<br />
===Power down with the power button===<br />
<br />
{{Note | If you are using ighea's acpi-eee or dkite's acpid_eee package then you should already be able to shutdown by pressing the power button and should not need to do this.}}<br />
<br />
The two alternatives here are described in [[Allow users to shutdown]].<br />
<br />
If you don't already or don't plan to use sudo, it may be simpler to use the setuid /sbin/halt method, otherwise using sudo is preferred.<br />
<br />
Below are all the steps required for the sudo method. If you want to use the setuid method, read the article linked above and perform the 'power' file step here, while omitting the 'sudo' in it.<br />
<br />
# pacman -S sudo<br />
<br />
As root, do the following:<br />
# visudo<br />
<br />
Add the following line to the file:<br />
USER HOST = NOPASSWD: /sbin/poweroff<br />
<br />
Where {{Codeline|USER}} is the user you want to be able to power down with and {{Codeline|HOST}} is your hostname (from {{Filename|/etc/rc.conf}}).<br />
<br />
Now, create a file called {{Filename|/etc/acpi/events/power}}, containing:<br />
# /etc/acpi/events/power<br />
# This is called when the user presses the power button<br />
<br />
event=button/power (PWR.||PBTN)<br />
action=sudo /sbin/poweroff<br />
<br />
Make sure that you execute:<br />
# /etc/rc.d/acpid start<br />
<br />
And/or add acpid to the daemons list in {{Filename|/etc/rc.conf}}:<br />
DAEMONS=(hal, acpid ...)<br />
<br />
===Use cpufreq for power saving===<br />
<br />
{{Note | toofishes dropped CPU scaling from his latest kernel builds, due to the fact, confirmed by other users, that there were no effective power savings with p4-clockmod's module, and it introduced "unacceptable latency", even with relatively low percentage up thresholds.}}<br />
<br />
Install cpufrequtitls:<br />
# pacman -S cpufrequtils<br />
<br />
For scaling down the processor you have to load the p4_clockmod module. Insert it into your {{Filename|/etc/rc.conf}} MODULES array for loading it at startup. <br />
MODULES=(... p4_clockmod ...)<br />
<br />
Add 'cpufreq' to the DAEMONS array in {{Filename|/etc/rc.conf}} to have it start on startup.<br />
DAEMONS=(... cpufreq ...)<br />
<br />
Add the following into {{Filename|/etc/conf.d/cpufreq}}:<br />
governor="ondemand"<br />
min_freq="113MHz"<br />
max_freq="900MHz"<br />
<br />
With enabled cpufreq it scales the processor between 113MHz up to max. frequency. That should save a lot on battery power. The stated 900MHz will be never reached by the eeePC, the p4_clockmod reports a wrong frequency here. But scaling works, you can feel it in the performance of eeePC that he slow down the processor.<br />
<br />
{{Note | The merits of p4-clockmod are debatable. Particularly on the EEEPC 701, battery time isn't extended due to its usage, and some users have even reported less battery duration. More hints to the reasons why can be read in [http://www.codemonkey.org.uk/2009/01/18/forthcoming-p4clockmod/ this] fine blog entry.}}<br />
<br />
===More responsive system with ondemand governor===<br />
The default up_threshold (where it will bump to a faster speed) for the CPU governor is 80, which means it will increase the CPU speed when utilization is above 80%. This can make X applications have a bit of lag. <br />
<br />
Try changing this value:<br />
$ sudo bash -c "echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold"<br />
<br />
With 40 it still leaves the majority of CPU cycles at the lowest available clock speed but increases responsiveness. You can add this line to one of your startup scripts (such as {{Filename|/etc/rc.local}}) if you wish to keep it, for example:<br />
<br />
#!/bin/bash<br />
#<br />
# /etc/rc.local: Local multi-user startup script.<br />
#<br />
<br />
echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold<br />
<br />
Also, following line is also reported to help makes system more responsive. You can use it by adding it to your {{Filename|/etc/rc.local}}:<br />
echo 2000000 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate<br />
<br />
===Speeding up udev for faster boot===<br />
*[[Speedup udev]]<br />
*http://dev.laptop.org/ticket/4349<br />
*[http://www.eeesale.com/Asus-Eee-PC-overclock-Benchmarks.htm Speed up the Eee PC]<br />
<br />
You can also disable the autoload by editing your {{Filename|[[rc.conf]]}}:<br />
...<br />
MOD_AUTOLOAD="no"<br />
...<br />
MODULES=(pciehp ath5k)<br />
<br />
===Update your BIOS without Xandros===<br />
{{Warning | You can break your system, do not update if you are not sure of what you are doing!}}<br />
<br />
First, you need to download the ''.rom'' file.<br />
*[http://update.eeepc.asus.com/bios/ Asus' official BIOS]<br />
*[http://forum.eeeuser.com/viewtopic.php?id=3485 EeeUser's topic]<br />
<br />
You also need an USB stick formatted in FAT32. To format the USBStick, use the cfdisk tool:<br />
# cfdisk /dev/sdc # could be something else than "c"<br />
<br />
Choose [delete], [type]: "fat32" (code 0B), [write] and then exit with [quit].<br />
<br />
NOTE to EEE PC 900 owners and possibly others: Using this method will require a flash drive formatted with a '''FAT16''' file-system. If the BIOS update process hangs up at "Reading file 900.ROM" for more than a few minutes then it should be safe to power down your EEE PC and reformat your flashdrive's file-system to the correct one. You can force FAT16 creation with the following command:<br />
# mkdosfs -F 16 /dev/device-path<br />
<br />
Now just copy the ''.rom'' on the USBStick :<br />
$ cp /somewhere/blabla/.../thecurrentnameofthefile.ROM /path/to/mounted/usb_stick/701.rom<br />
The name of the copy '''must''' be xxxx.rom where xxxx is the model of your eee PC. (i.e. 900 users it's 900.rom)<br />
<br />
Next step, reboot the eeepc with the USB stick pluged-in, and press Alt+F2. It will launch the built-in tool. Everything should be Ok, you can make a coffee during the update. When it asks you to push the power-button it has finished.<br />
<br />
At the next boot, you'll be invited to configure the BIOS. Check if the everything is enabled (my webcam and wireless were disabled after the update) and if it displays the good version in the main screen. It's done!<br />
<br />
=== More usable font sizes ===<br />
<br />
====The_glu's method====<br />
<br />
I found an easy solution that works on a 901:<br />
<br />
Edit {{Filename|/etc/X11/xinit/xserverrc}} and add "-dpi 134":<br />
exec /usr/bin/X -nolisten tcp -dpi 134<br />
<br />
Restart X and fonts should have the correct size. Notice it's won't works if you have Xft*dpi: in your {{Filename|.XDefaults}}.<br />
<br />
You don't need to edit your config file to set a smaller font size, I you did you should set font-size to 10 or you will have to small fonts...<br />
<br />
==== Old method ====<br />
<br />
On a default installation with Xfce 4 my font sizes were too big, here is what I did to sort them out.<br />
<br />
First, I set the DPI by adding the following to {{Filename|~/.Xdefaults}}:<br />
Xft*dpi: 134<br />
<br />
This then caused the fonts to be even bigger, so I set them all to be font-size 6 by adding the following into {{Filename|~/.gtkrc-2.0}} (note that this will be overwritten if you use any tools to change GTK settings):<br />
style "user-font"<br />
{<br />
font_name="Bitstream Vera Sans 6"<br />
}<br />
widget_class "*" style "user-font"<br />
<br />
To do the same with KDE fonts (without KDE installed) you have to add the following to {{Filename|~/.kde/share/config/kdeglobals}}:<br />
[General]<br />
StandardFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
activeFont=Bitstream Vera Sans,6,-1,5,75,0,0,0,0,0<br />
fixed=Bitstream Vera Sans Mono,6,-1,5,50,0,0,0,0,0<br />
font=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
menuFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
taskbarFont=Bitstream Vera Sans,6,-1,5,50,1,0,0,0,0<br />
toolBarFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
<br />
To make your fonts even prettier enable the [[Fonts#Fonts_with_LCD_filter_enabled|LCD Fonts]].<br />
<br />
==== Alternative Method ====<br />
<br />
For me it worked far better to open the gnome appearance control panel, go to the fonts tab, click defaults, and change the resolution to be 96 dpi. Changing .Xdefaults doesnt work when running gnome, as gnome-settings-daemon overrides it. You can then leave all font sizes at their default, and things should look good. Simply changing the font sizes and leaving the DPI at its technically correct value (~134) gave me weird layout problems in some apps, and oddly large fonts in others.<br />
<br />
==Known problems and their solutions==<br />
<br />
===Wireless doesn't work, even after installing custom Madwifi module===<br />
<br />
I found that Arch tried to use the ath5k module for wireless, and that meant it took control of the card rather than ath_pci (the module I had compiled and installed). I got a Madwifi status 3 message in dmesg when this happened.<br />
<br />
The solution is to blacklist the ath5k module in {{Filename|/etc/rc.conf}}:<br />
<br />
MODULES = ( ... !ath5k ... )<br />
<br />
===Laggy or Unresponsive ACPI Events===<br />
<br />
The latest kernel (2.6.26) introduces new problems with Eee's ACPI events handling. Basically, ACPI events become very laggy and after some time ACPI get disabled after a heavy usage (e.g. changing volume, brightness). This problem affects both stock kernel and toofishes' kernel.<br />
<br />
It appears that the solution is to apply this [http://bugzilla.kernel.org/attachment.cgi?id=16862 patch] ([http://bugzilla.kernel.org/show_bug.cgi?id=10724 original bug report]) to the kernel. <br />
<br />
{{Note | The latest toofishes' kernel, version 2.6.26-1, now includes the patch, but you can still use ighea's one for the extras features listed below.}}<br />
<br />
Until toofishes update his kernel to include the patch, you can use ighea's slightly modified toofishes' kernel that included the above patch, as well as other modifications:<br />
<br />
*Support for Wine <br />
*uvesafb is built as module <br />
*Use [http://bbs.archlinux.org/viewtopic.php?pid=393860#p393860 new eeepc-laptop driver] (which also handles fan-control) instead of older acus_acpi or asus-laptop -drivers.<br />
<br />
You can get the modified kernel, as well as the associative packages, from [http://koti.kapsi.fi/~ighea/eee/kernel-eee/ here].<br />
<br />
After you have downloaded the packages, Install them using this command:<br />
# pacman -U kernel-eee-2.6.26-1-i686.pkg.tar.gz madwifi-eee-svn-3752-1-i686.pkg.tar.gz <br />
<br />
You might also want to use IgnorePkg-line in {{Filename|/etc/pacman.conf}} to hold packages from being accidentally updated.<br />
IgnorePkg = kernel-eee madwifi-eee-svn<br />
<br />
Also don't forget to upgrade ighea's acpi-eee package to version 9.6.<br />
<br />
===Shutdown Problem===<br />
<br />
If your Eee won't shutdown properly (i.e. the power indicator LED is on but the LCD screen is off), then add the following lines to your {{Filename|/etc/rc.local.shutdown}} file.<br />
<pre><br />
#! /bin/bash<br />
#<br />
# /etc/rc.local.shutdown: Local shutdown script.<br />
#<br />
<br />
# Comment or uncomment the following two lines according to your system configuration.<br />
<br />
/etc/rc.d/mpd stop # If you're using mpd, then you have to stop its daemon first.<br />
<br />
/etc/rc.d/alsa stop # If you're using ALSA daemon, then you also have to stop it.<br />
<br />
# The following line is Eee specific fix, you always need to have this line in /etc/rc.local.shutdown.<br />
<br />
echo -n "0000:00:1b.0" > /sys/bus/pci/drivers/HDA\ Intel/unbind<br />
</pre><br />
<br />
The above solution should fix the shutdown problem in most cases. But if for some reason the problem still persists, the module may not be able to be unloaded until after all services have finished. Do the above, then in {{Filename|/etc/rc.shutdown}} move <br />
<br />
if [ -x /etc/rc.local.shutdown ]; then<br />
/etc/rc.local.shutdown<br />
fi<br />
<br />
from where it was to directly above the line <br />
<br />
# Terminate all processes<br />
<br />
this will cause the {{Filename|rc.local.shutdown}} script to run after services have been exited. This fixed all issues for the person editing this note.<br />
<br />
===Unclean unmount during shutdown when having home directory mounted on SD card===<br />
<br />
If you experienced unclean unmount during shutdown when having your home directory on SD card, then add the following 3 lines to "Write to wtmp file before unmounting" section of your {{Filename|/etc/rc.shutdown}} file:<br />
<pre><br />
...<br />
<br />
stat_busy "Unmounting Filesystems"<br />
/bin/umount -a -t noramfs,notmpfs,nosysfs,noproc<br />
<br />
# Add these 3 lines<br />
sync;sync;sync;<br />
eject /dev/sdb # Or whichever is your SD-card's device name. /dev/disk/by-uuid/ followed by the UUID identifier is preferable though.<br />
sleep 3<br />
# End of hack<br />
<br />
stat_done<br />
<br />
...<br />
</pre><br />
<br />
===Booting from card without initrd===<br />
<br />
Let's say you decided to install Arch Linux on a card and compiled your own kernel (or used the kernel26eee kernel) without initrd. Card reader on EeePC is connected as an USB device. Unfortunately, USB storage devices are detected with a delay, so we must tell the kernel to wait until this device becomes available. You do this with "rootwait" option passed to kernel at boot time.<br />
<br />
===Sleeping and waking system on a card===<br />
<br />
If you have Arch Linux on a card, waking up from sleeping state will most likely fail. The only solution is to enable the CONFIG_USB_PERSIST option in kernel. The kernel26eee package should have this option enabled.<br />
<br />
The command to do this is:<br />
echo 1 >/sys/bus/usb/devices/.../power/persist<br />
<br />
Replace the {{Codeline|"..."}} with the device like 1-3 or 1-5 where the first number is the bus and the second is the device <br />
<br />
Each device that is connected to your computer gets an entry in the sysfs "system file system" it is a virtual file system like proc<br />
<br />
More info:<br />
*http://www.mjmwired.net/kernel/Documentation/usb/persist.txt<br />
*http://forum.eeeuser.com/viewtopic.php?id=22712<br />
<br />
===Display doesn't wake up properly===<br />
<br />
If you encounter black display (but apparently working system) after suspend/resume, consider using the "uswsusp" package (available in the official repositories) and correcting suspend2ram script in /etc/acpi, where you use this line to make the machine go to sleep:<br />
<br />
/usr/sbin/s2ram --force --vbe_post --vbe_mode<br />
<br />
==Battery Tests==<br />
<br />
The following are reported battery runtimes:<br />
<br />
{| class="wikitable" style="text-align:left"<br />
|+Battery runtimes<br />
|-<br />
! Task !! Series !! Wireless !! Screen Brightness !! FSB Speed !! Fan Speed !! Runtime !! Comments<br />
|-<br />
! DVD Playback<br />
| 701 || On || Max || 85mhz || 100% || 134min || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! DVD Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! AVI Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading AVI from SSD<br />
|-<br />
! IM and Surf<br />
| 701 || On || ~30% || ??? || low || 173min || Normal web-browsing, Flash should reduce runtime a lot !<br />
|-<br />
! Programming and PDF reading<br />
| 1000HA || Off || ~40% || ??? || low || +6hs || Using Evince and SPE under XFCE with camera and USB disabled<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || +4hs || Stock kernel without laptop-mode<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || 5hs || Stock kernel with laptop-mode and other tweaks<br />
|}<br />
<br />
N.B. - Will add battery runtimes as I am able to test them, please contribute.<br />
<br />
-- Grecko.1<br />
<br />
Still tweaking, but disabling everything from BIOS got me about 6 hours and a half. With eee-kernel, I *could* get a little more.<br />
<br />
-- ekuber</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=ASUS_Eee_PC_701&diff=86160ASUS Eee PC 7012009-12-03T12:24:17Z<p>Zodmaner: /* Sound */</p>
<hr />
<div>{{stub}}<br />
[[Category:Getting and installing Arch (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|Русский|Инсталляция Arch Linux на Asus EEE PC}}<br />
{{i18n_links_end}}<br />
<br />
Most of this information is from the [http://bbs.archlinux.org/viewtopic.php?pid=297632 Arch Forum]. You can also find a lot of helpful information from the [http://forum.eeeuser.com/ EEEUser Forum]. <br />
<br />
==Before You Begin==<br />
<br />
===Avoiding Pitfalls===<br />
<br />
The install is pretty normal, except that you'll need to [http://forum.eeeuser.com/viewtopic.php?id=890 avoid the pitfalls] of our alternative Linux install:<br />
<br />
# Never choose to use a journaling file system on the SSD partitions<br />
# Never use a swap partition on the SSD<br />
# Edit your new installation fstab to mount the SSD partitions "noatime"<br />
# Never log messages or error log to the SSD<br />
<br />
The rules ensure that we won't reach the maximum limit of writes on our SSD faster than we should, although this is being contested (see [http://wiki.eeeuser.com/ssd_write_limit this link] and [http://www.storagesearch.com/ssdmyths-endurance.html this other link]).<br />
<br />
Some other minor modifications can be made to decrease number of non-mandatory writes by applications: deactivate {{Filename|~/.viminfo}} in vi, deactivate less history file ({{Filename|~/.lesshst}}), and so on.<br />
<br />
===Choosing Your Installation Media===<br />
<br />
The Eee PC does not have an optical drive installed on the machine. This means you will need to install Arch Linux through one of the alternative methods:<br />
<br />
# [[Beginners_Guide#USB_stick|USB stick]] '''(Recommended)'''<br />
# External USB CD-ROM drive<br />
# [[PXE|Network (PXE)]]<br />
<br />
==Installing Arch Linux==<br />
<br />
With the release of the 2009.08 installation media, installing Arch Linux on Asus Eee PC model 701 is pretty easy and straightforward since the stock kernel on Arch installation media support all of the 701 hardwares out of the box. <br />
<br />
Therefore, aside from the recommended partition scheme described below, there shouldn't be any other differences between installing Arch Linux on the 701 and any other computer. You should be able to successfully install Arch on the 701 by following instructions on [[Beginners_Guide|Beginners' Guide]] without any problem.<br />
<br />
===Prepare Hard Drive===<br />
<br />
<br />
The most important different between the 701 and other machines is that the 701 use SSD drive instead of normal hard drive. This section advise on how to set up a partition scheme that is best suited to the 701. <br />
<br />
The default Eee PC drive is split up into four partitions (here is [http://forum.eeeuser.com/viewtopic.php?id=1805 some information] about the partitioning): <br />
<br />
* It is easiest to wipe the existing partitions and use one or two partitions for your install. One partition would be just '/', and two partitions would be '/boot' and '/'.<br />
* Choose "NONE" for swap in case your eee has a SSD (see #2 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]])<br />
* Select "ext2" as your filesystem in case your eee has a SSD (see #1 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]]). If your model has a standard HD choose "ext3".<br />
<br />
===Asus Eee PC model 701 repository from toofishes===<br />
<br />
Toofishes created a repository for the 701. The repository contained customized kernel built specifically for the 701 and some additional packages. <br />
<br />
While the stock Arch kernel works very well with the 701, toofishes kernel have the following advantages:<br />
<br />
* Faster boot time &ndash; because most of the modules have been compile into the kernel, no time is wasted waiting for the modules to load<br />
* No need to generate initial ramdisk every time a kernel is upgrade <br />
* Smaller size (around 4MB)<br />
<br />
To use the repository, add:<br />
[eee]<br />
Server = http://code.toofishes.net/packages/eee<br />
to your {{Filename|/etc/pacman.conf}} and then issue:<br />
pacman -Syu<br />
<br />
====Package List====<br />
Currently, toofishes' repository contains the following packages:<br />
<br />
*'''kernel-eee''' &ndash; customized kernel for Asus Eee PC model 701<br />
*'''luvcview''' &ndash; webcam program for testing webcam driver<br />
<br />
====Kernel-eee Installation Instruction====<br />
Simply use pacman to install the package you need. Install the packages with this command:<br />
# pacman -Sy kernel-eee<br />
<br />
then, add the following to {{Filename|/boot/grub/menu.lst}}; note that no initrd is needed:<br />
# (2) Arch Linux<br />
title Arch Linux Eee kernel<br />
root (hd0,0)<br />
kernel /boot/vmlinuzeee root=/dev/sda1 ro<br />
<br />
Restart and select Arch Linux Eee kernel from the grub boot menu.<br />
<br />
==Getting Everything Working==<br />
<br />
By now, you should have Arch Linux installed. The following is the guide on how to get the rest of your system working.<br />
<br />
===X===<br />
<br />
Install X by follow instructions on the [[Beginners_Guide#Step_2:_Install_X|Beginners' Guide]], then install the Intel graphics driver:<br />
# pacman -Sy xf86-video-intel<br />
<br />
You may also wish to install the Synaptics drivers for the touchpad (not needed for Eee PC 900):<br />
# pacman -Sy xf86-input-synaptics<br />
<br />
With the latest version of X from extra repository, X should work on the 701 '''without any need for xorg.conf'''. However, if for some reason you wish to use an xorg.conf file, you can use an old [[Example_Xorg_configuration_file_for_Asus_Eee_PC_701|example Xorg configuration file for Asus Eee PC model 701]] as a template or automatically generate a new one by running the following command:<br />
<br />
# Xorg -configure<br />
<br />
Consult [[Xorg_input_hotplugging|Xorg Input Hotplugging]] for more information on how to config input devices using HAL.<br />
<br />
The synaptics stuff can be removed if you have a EEE PC 900. The {{Codeline|Option "AutoAddDevices"}} line is important if you need a non-default XkbLayout, because if you don't have it, xorg will find 3 keyboards (at least with the 900 model).<br />
The Modeline has obviously to be removed or modified if you dont have a model with this resolution.<br />
<br />
===Sound, Webcam & Microphone===<br />
<br />
====Sound====<br />
<br />
For most people, sound working right out of the box with no troubles. However, others might need to add the following line to {{Filename|/etc/modprobe.conf}}<br />
options snd-hda-intel model=3stack-dig<br />
or the following one for the EeePC 900 model<br />
options snd-hda-intel model=auto<br />
<br />
If your internal microphone doesn't work, you probably have to turn the capture feature on. Simply fire up alsamixer, find your Capture control, and press spacebar to enable it.<br />
<br />
====Webcam====<br />
<br />
You can enable your built-in webcam by adding the following line to your {{Filename|/etc/rc.local}} file.<br />
<br />
echo 1 > /sys/devices/platform/eeepc/camera<br />
<br />
If you want the webcam application that the default Xandos installation uses, install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14469 ucview from the AUR].<br />
<br />
The webcam also works fine with the latest version of Skype.<br />
<br />
If you already have mplayer installed you can launch:<br />
$ mplayer -fps 15 tv://<br />
<br />
I have yet to get it working with vlc or any other software such as xawtv. If you know how, please update this.<br />
<br />
*'''NOTE:''' For anyone who has accidentally disabled Auto Exposure for their webcam in luvcview (making the image dark), and can't enable it again, do the following:<br />
<br />
Install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14468 libwebcam from the AUR].<br />
<br />
Issue the following command:<br />
$ uvcdynctrl --set "Exposure, Auto" 4<br />
<br />
{{Note | Be sure the "OS Installation" option is set to "finished" in the BIOS' "Advanced" tab or your camera may not work in some applications (like Skype).}}<br />
<br />
{{Note | Make sure you are a member of the video group edit /etc/group and add your username to video}}<br />
<br />
====Microphone====<br />
<br />
Solution for problems with the internal microphone.<br />
<br />
1. First of all set in alsamixer "Input Source" to "i-Mic"<br />
<br />
2. Increase "Capture" and "i-Mic Boost" to your needs<br />
<br />
3. Edit {{Filename|/etc/asound.state}} the following, change the 2 "false" to "true" like showing:<br />
....snap.....<br />
control.11 {<br />
comment.access 'read write'<br />
comment.type BOOLEAN<br />
comment.count 2<br />
iface MIXER<br />
name 'Capture Switch'<br />
value.0 true<br />
value.1 true<br />
}<br />
....snap....<br />
<br />
4. After editing run following as root<br />
# alsactl restore<br />
<br />
5. Now your internal microphone should be working.<br />
<br />
===Getting Hot Keys, Graphic Indicators and Shutdown with the Power Button Working===<br />
<br />
If you want to have working hot keys (wifi, brightness, volume etc), an OSD, and be able to assign actions to things like the powerbutton and closing the lid, then you should install '''ighea's acpi-eee''' package.<br />
<br />
==== ighea's acpi-eee ====<br />
<br />
Get the latest package from [http://kapsi.fi/ighea/eee/acpi-eee/ here].<br />
<br />
The package can be easily installed with:<br />
# pacman -U acpi-eee-10.0-1-i686.pkg.tar.gz<br />
<br />
See messages during installation for more details and don't forget to edit {{Filename|/etc/acpi/eee.conf}} to suit your tastes.<br />
<br />
*For those who use the wireless on/off acpi command; the {{Codeline|NETWORK_UP_COMMAND&#61;""}} setting in {{Filename|/etc/acpi/eee.conf}}, when applicable, should at least release the network. For example, using netcfg2, {{Codeline|NETWORK_UP_COMMAND&#61;"netcfg2 -a"}} will release the connections from before disabling wireless, allowing new ones to be made without netcfg thinking that it's already connected. It is also possible to reconnect to your previous network, however, the network tool you use needs to have a somewhat lengthy timeout as it takes 15-20 seconds for your wireless device to reappear. <br />
<br />
{{Note | Make sure '''asusosd''' is enabled on startup if you want to have the Graphic Indicators from Xandros. To run asusosd simply type {{Codeline|asusosd &}} at a command prompt.}}<br />
<br />
==Additional Tips & Tweaks==<br />
<br />
===Tweaking kernel-eee===<br />
<br />
Toofishes' kernel, also known as kernel-eee, can be recompiled to include custom features. You can download toofishes' kernel PKGBUILD and all the nesseary files from his gitweb by installing the git package and using the following command:<br />
<br />
$ git clone git://code.toofishes.net/dan/eee.git<br />
<br />
or if you are behind a proxy and can't use the git protocol:<br />
<br />
$ git clone http://code.toofishes.net/git/dan/eee.git<br />
<br />
There are two ways to tweak the kernel. The first is simply to edit the {{Filename|kernelconfig}} file with your favorite editor and the second is to insert a {{Codeline|make menuconfig}} line into the PKGBUILD before the kernel's compilation.<br />
<br />
===Using Wine with toofishes' kernel===<br />
<br />
Normally, Wine won't work with toofishes' kernel because it is compiled with VMSPLIT_2G_OPT option. In order to use Wine with toofishes' kernel, you have to recompile his kernel with VMSPLIT_3G option.<br />
<br />
Download the kernel PKGBUILD and all the necessary files from toofishes' gitweb using the above instructions, then change the following lines in the {{Filename|kernelconfig}} file from this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 # CONFIG_VMSPLIT_3G is not set<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 CONFIG_VMSPLIT_2G_OPT=y<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
to this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 CONFIG_VMSPLIT_3G=y<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 # CONFIG_VMSPLIT_2G_OPT is not set<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
<br />
Compile and install the kernel and Wine should now work.<br />
<br />
===Power down with the power button===<br />
<br />
{{Note | If you are using ighea's acpi-eee or dkite's acpid_eee package then you should already be able to shutdown by pressing the power button and should not need to do this.}}<br />
<br />
The two alternatives here are described in [[Allow users to shutdown]].<br />
<br />
If you don't already or don't plan to use sudo, it may be simpler to use the setuid /sbin/halt method, otherwise using sudo is preferred.<br />
<br />
Below are all the steps required for the sudo method. If you want to use the setuid method, read the article linked above and perform the 'power' file step here, while omitting the 'sudo' in it.<br />
<br />
# pacman -S sudo<br />
<br />
As root, do the following:<br />
# visudo<br />
<br />
Add the following line to the file:<br />
USER HOST = NOPASSWD: /sbin/poweroff<br />
<br />
Where {{Codeline|USER}} is the user you want to be able to power down with and {{Codeline|HOST}} is your hostname (from {{Filename|/etc/rc.conf}}).<br />
<br />
Now, create a file called {{Filename|/etc/acpi/events/power}}, containing:<br />
# /etc/acpi/events/power<br />
# This is called when the user presses the power button<br />
<br />
event=button/power (PWR.||PBTN)<br />
action=sudo /sbin/poweroff<br />
<br />
Make sure that you execute:<br />
# /etc/rc.d/acpid start<br />
<br />
And/or add acpid to the daemons list in {{Filename|/etc/rc.conf}}:<br />
DAEMONS=(hal, acpid ...)<br />
<br />
===Use cpufreq for power saving===<br />
<br />
{{Note | toofishes dropped CPU scaling from his latest kernel builds, due to the fact, confirmed by other users, that there were no effective power savings with p4-clockmod's module, and it introduced "unacceptable latency", even with relatively low percentage up thresholds.}}<br />
<br />
Install cpufrequtitls:<br />
# pacman -S cpufrequtils<br />
<br />
For scaling down the processor you have to load the p4_clockmod module. Insert it into your {{Filename|/etc/rc.conf}} MODULES array for loading it at startup. <br />
MODULES=(... p4_clockmod ...)<br />
<br />
Add 'cpufreq' to the DAEMONS array in {{Filename|/etc/rc.conf}} to have it start on startup.<br />
DAEMONS=(... cpufreq ...)<br />
<br />
Add the following into {{Filename|/etc/conf.d/cpufreq}}:<br />
governor="ondemand"<br />
min_freq="113MHz"<br />
max_freq="900MHz"<br />
<br />
With enabled cpufreq it scales the processor between 113MHz up to max. frequency. That should save a lot on battery power. The stated 900MHz will be never reached by the eeePC, the p4_clockmod reports a wrong frequency here. But scaling works, you can feel it in the performance of eeePC that he slow down the processor.<br />
<br />
{{Note | The merits of p4-clockmod are debatable. Particularly on the EEEPC 701, battery time isn't extended due to its usage, and some users have even reported less battery duration. More hints to the reasons why can be read in [http://www.codemonkey.org.uk/2009/01/18/forthcoming-p4clockmod/ this] fine blog entry.}}<br />
<br />
===More responsive system with ondemand governor===<br />
The default up_threshold (where it will bump to a faster speed) for the CPU governor is 80, which means it will increase the CPU speed when utilization is above 80%. This can make X applications have a bit of lag. <br />
<br />
Try changing this value:<br />
$ sudo bash -c "echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold"<br />
<br />
With 40 it still leaves the majority of CPU cycles at the lowest available clock speed but increases responsiveness. You can add this line to one of your startup scripts (such as {{Filename|/etc/rc.local}}) if you wish to keep it, for example:<br />
<br />
#!/bin/bash<br />
#<br />
# /etc/rc.local: Local multi-user startup script.<br />
#<br />
<br />
echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold<br />
<br />
Also, following line is also reported to help makes system more responsive. You can use it by adding it to your {{Filename|/etc/rc.local}}:<br />
echo 2000000 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate<br />
<br />
===Speeding up udev for faster boot===<br />
*[[Speedup udev]]<br />
*http://dev.laptop.org/ticket/4349<br />
*[http://www.eeesale.com/Asus-Eee-PC-overclock-Benchmarks.htm Speed up the Eee PC]<br />
<br />
You can also disable the autoload by editing your {{Filename|[[rc.conf]]}}:<br />
...<br />
MOD_AUTOLOAD="no"<br />
...<br />
MODULES=(pciehp ath5k)<br />
<br />
===Update your BIOS without Xandros===<br />
{{Warning | You can break your system, do not update if you are not sure of what you are doing!}}<br />
<br />
First, you need to download the ''.rom'' file.<br />
*[http://update.eeepc.asus.com/bios/ Asus' official BIOS]<br />
*[http://forum.eeeuser.com/viewtopic.php?id=3485 EeeUser's topic]<br />
<br />
You also need an USB stick formatted in FAT32. To format the USBStick, use the cfdisk tool:<br />
# cfdisk /dev/sdc # could be something else than "c"<br />
<br />
Choose [delete], [type]: "fat32" (code 0B), [write] and then exit with [quit].<br />
<br />
NOTE to EEE PC 900 owners and possibly others: Using this method will require a flash drive formatted with a '''FAT16''' file-system. If the BIOS update process hangs up at "Reading file 900.ROM" for more than a few minutes then it should be safe to power down your EEE PC and reformat your flashdrive's file-system to the correct one. You can force FAT16 creation with the following command:<br />
# mkdosfs -F 16 /dev/device-path<br />
<br />
Now just copy the ''.rom'' on the USBStick :<br />
$ cp /somewhere/blabla/.../thecurrentnameofthefile.ROM /path/to/mounted/usb_stick/701.rom<br />
The name of the copy '''must''' be xxxx.rom where xxxx is the model of your eee PC. (i.e. 900 users it's 900.rom)<br />
<br />
Next step, reboot the eeepc with the USB stick pluged-in, and press Alt+F2. It will launch the built-in tool. Everything should be Ok, you can make a coffee during the update. When it asks you to push the power-button it has finished.<br />
<br />
At the next boot, you'll be invited to configure the BIOS. Check if the everything is enabled (my webcam and wireless were disabled after the update) and if it displays the good version in the main screen. It's done!<br />
<br />
=== More usable font sizes ===<br />
<br />
====The_glu's method====<br />
<br />
I found an easy solution that works on a 901:<br />
<br />
Edit {{Filename|/etc/X11/xinit/xserverrc}} and add "-dpi 134":<br />
exec /usr/bin/X -nolisten tcp -dpi 134<br />
<br />
Restart X and fonts should have the correct size. Notice it's won't works if you have Xft*dpi: in your {{Filename|.XDefaults}}.<br />
<br />
You don't need to edit your config file to set a smaller font size, I you did you should set font-size to 10 or you will have to small fonts...<br />
<br />
==== Old method ====<br />
<br />
On a default installation with Xfce 4 my font sizes were too big, here is what I did to sort them out.<br />
<br />
First, I set the DPI by adding the following to {{Filename|~/.Xdefaults}}:<br />
Xft*dpi: 134<br />
<br />
This then caused the fonts to be even bigger, so I set them all to be font-size 6 by adding the following into {{Filename|~/.gtkrc-2.0}} (note that this will be overwritten if you use any tools to change GTK settings):<br />
style "user-font"<br />
{<br />
font_name="Bitstream Vera Sans 6"<br />
}<br />
widget_class "*" style "user-font"<br />
<br />
To do the same with KDE fonts (without KDE installed) you have to add the following to {{Filename|~/.kde/share/config/kdeglobals}}:<br />
[General]<br />
StandardFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
activeFont=Bitstream Vera Sans,6,-1,5,75,0,0,0,0,0<br />
fixed=Bitstream Vera Sans Mono,6,-1,5,50,0,0,0,0,0<br />
font=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
menuFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
taskbarFont=Bitstream Vera Sans,6,-1,5,50,1,0,0,0,0<br />
toolBarFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
<br />
To make your fonts even prettier enable the [[Fonts#Fonts_with_LCD_filter_enabled|LCD Fonts]].<br />
<br />
==== Alternative Method ====<br />
<br />
For me it worked far better to open the gnome appearance control panel, go to the fonts tab, click defaults, and change the resolution to be 96 dpi. Changing .Xdefaults doesnt work when running gnome, as gnome-settings-daemon overrides it. You can then leave all font sizes at their default, and things should look good. Simply changing the font sizes and leaving the DPI at its technically correct value (~134) gave me weird layout problems in some apps, and oddly large fonts in others.<br />
<br />
==Known problems and their solutions==<br />
<br />
===Wireless doesn't work, even after installing custom Madwifi module===<br />
<br />
I found that Arch tried to use the ath5k module for wireless, and that meant it took control of the card rather than ath_pci (the module I had compiled and installed). I got a Madwifi status 3 message in dmesg when this happened.<br />
<br />
The solution is to blacklist the ath5k module in {{Filename|/etc/rc.conf}}:<br />
<br />
MODULES = ( ... !ath5k ... )<br />
<br />
===Laggy or Unresponsive ACPI Events===<br />
<br />
The latest kernel (2.6.26) introduces new problems with Eee's ACPI events handling. Basically, ACPI events become very laggy and after some time ACPI get disabled after a heavy usage (e.g. changing volume, brightness). This problem affects both stock kernel and toofishes' kernel.<br />
<br />
It appears that the solution is to apply this [http://bugzilla.kernel.org/attachment.cgi?id=16862 patch] ([http://bugzilla.kernel.org/show_bug.cgi?id=10724 original bug report]) to the kernel. <br />
<br />
{{Note | The latest toofishes' kernel, version 2.6.26-1, now includes the patch, but you can still use ighea's one for the extras features listed below.}}<br />
<br />
Until toofishes update his kernel to include the patch, you can use ighea's slightly modified toofishes' kernel that included the above patch, as well as other modifications:<br />
<br />
*Support for Wine <br />
*uvesafb is built as module <br />
*Use [http://bbs.archlinux.org/viewtopic.php?pid=393860#p393860 new eeepc-laptop driver] (which also handles fan-control) instead of older acus_acpi or asus-laptop -drivers.<br />
<br />
You can get the modified kernel, as well as the associative packages, from [http://koti.kapsi.fi/~ighea/eee/kernel-eee/ here].<br />
<br />
After you have downloaded the packages, Install them using this command:<br />
# pacman -U kernel-eee-2.6.26-1-i686.pkg.tar.gz madwifi-eee-svn-3752-1-i686.pkg.tar.gz <br />
<br />
You might also want to use IgnorePkg-line in {{Filename|/etc/pacman.conf}} to hold packages from being accidentally updated.<br />
IgnorePkg = kernel-eee madwifi-eee-svn<br />
<br />
Also don't forget to upgrade ighea's acpi-eee package to version 9.6.<br />
<br />
===Shutdown Problem===<br />
<br />
If your Eee won't shutdown properly (i.e. the power indicator LED is on but the LCD screen is off), then add the following lines to your {{Filename|/etc/rc.local.shutdown}} file.<br />
<pre><br />
#! /bin/bash<br />
#<br />
# /etc/rc.local.shutdown: Local shutdown script.<br />
#<br />
<br />
# Comment or uncomment the following two lines according to your system configuration.<br />
<br />
/etc/rc.d/mpd stop # If you're using mpd, then you have to stop its daemon first.<br />
<br />
/etc/rc.d/alsa stop # If you're using ALSA daemon, then you also have to stop it.<br />
<br />
# The following line is Eee specific fix, you always need to have this line in /etc/rc.local.shutdown.<br />
<br />
echo -n "0000:00:1b.0" > /sys/bus/pci/drivers/HDA\ Intel/unbind<br />
</pre><br />
<br />
The above solution should fix the shutdown problem in most cases. But if for some reason the problem still persists, the module may not be able to be unloaded until after all services have finished. Do the above, then in {{Filename|/etc/rc.shutdown}} move <br />
<br />
if [ -x /etc/rc.local.shutdown ]; then<br />
/etc/rc.local.shutdown<br />
fi<br />
<br />
from where it was to directly above the line <br />
<br />
# Terminate all processes<br />
<br />
this will cause the {{Filename|rc.local.shutdown}} script to run after services have been exited. This fixed all issues for the person editing this note.<br />
<br />
===Unclean unmount during shutdown when having home directory mounted on SD card===<br />
<br />
If you experienced unclean unmount during shutdown when having your home directory on SD card, then add the following 3 lines to "Write to wtmp file before unmounting" section of your {{Filename|/etc/rc.shutdown}} file:<br />
<pre><br />
...<br />
<br />
stat_busy "Unmounting Filesystems"<br />
/bin/umount -a -t noramfs,notmpfs,nosysfs,noproc<br />
<br />
# Add these 3 lines<br />
sync;sync;sync;<br />
eject /dev/sdb # Or whichever is your SD-card's device name. /dev/disk/by-uuid/ followed by the UUID identifier is preferable though.<br />
sleep 3<br />
# End of hack<br />
<br />
stat_done<br />
<br />
...<br />
</pre><br />
<br />
===Booting from card without initrd===<br />
<br />
Let's say you decided to install Arch Linux on a card and compiled your own kernel (or used the kernel26eee kernel) without initrd. Card reader on EeePC is connected as an USB device. Unfortunately, USB storage devices are detected with a delay, so we must tell the kernel to wait until this device becomes available. You do this with "rootwait" option passed to kernel at boot time.<br />
<br />
===Sleeping and waking system on a card===<br />
<br />
If you have Arch Linux on a card, waking up from sleeping state will most likely fail. The only solution is to enable the CONFIG_USB_PERSIST option in kernel. The kernel26eee package should have this option enabled.<br />
<br />
The command to do this is:<br />
echo 1 >/sys/bus/usb/devices/.../power/persist<br />
<br />
Replace the {{Codeline|"..."}} with the device like 1-3 or 1-5 where the first number is the bus and the second is the device <br />
<br />
Each device that is connected to your computer gets an entry in the sysfs "system file system" it is a virtual file system like proc<br />
<br />
More info:<br />
*http://www.mjmwired.net/kernel/Documentation/usb/persist.txt<br />
*http://forum.eeeuser.com/viewtopic.php?id=22712<br />
<br />
===Display doesn't wake up properly===<br />
<br />
If you encounter black display (but apparently working system) after suspend/resume, consider using the "uswsusp" package (available in the official repositories) and correcting suspend2ram script in /etc/acpi, where you use this line to make the machine go to sleep:<br />
<br />
/usr/sbin/s2ram --force --vbe_post --vbe_mode<br />
<br />
==Battery Tests==<br />
<br />
The following are reported battery runtimes:<br />
<br />
{| class="wikitable" style="text-align:left"<br />
|+Battery runtimes<br />
|-<br />
! Task !! Series !! Wireless !! Screen Brightness !! FSB Speed !! Fan Speed !! Runtime !! Comments<br />
|-<br />
! DVD Playback<br />
| 701 || On || Max || 85mhz || 100% || 134min || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! DVD Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! AVI Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading AVI from SSD<br />
|-<br />
! IM and Surf<br />
| 701 || On || ~30% || ??? || low || 173min || Normal web-browsing, Flash should reduce runtime a lot !<br />
|-<br />
! Programming and PDF reading<br />
| 1000HA || Off || ~40% || ??? || low || +6hs || Using Evince and SPE under XFCE with camera and USB disabled<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || +4hs || Stock kernel without laptop-mode<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || 5hs || Stock kernel with laptop-mode and other tweaks<br />
|}<br />
<br />
N.B. - Will add battery runtimes as I am able to test them, please contribute.<br />
<br />
-- Grecko.1<br />
<br />
Still tweaking, but disabling everything from BIOS got me about 6 hours and a half. With eee-kernel, I *could* get a little more.<br />
<br />
-- ekuber</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=ASUS_Eee_PC_701&diff=86159ASUS Eee PC 7012009-12-03T12:22:34Z<p>Zodmaner: /* Getting Everything Working */</p>
<hr />
<div>{{stub}}<br />
[[Category:Getting and installing Arch (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|Русский|Инсталляция Arch Linux на Asus EEE PC}}<br />
{{i18n_links_end}}<br />
<br />
Most of this information is from the [http://bbs.archlinux.org/viewtopic.php?pid=297632 Arch Forum]. You can also find a lot of helpful information from the [http://forum.eeeuser.com/ EEEUser Forum]. <br />
<br />
==Before You Begin==<br />
<br />
===Avoiding Pitfalls===<br />
<br />
The install is pretty normal, except that you'll need to [http://forum.eeeuser.com/viewtopic.php?id=890 avoid the pitfalls] of our alternative Linux install:<br />
<br />
# Never choose to use a journaling file system on the SSD partitions<br />
# Never use a swap partition on the SSD<br />
# Edit your new installation fstab to mount the SSD partitions "noatime"<br />
# Never log messages or error log to the SSD<br />
<br />
The rules ensure that we won't reach the maximum limit of writes on our SSD faster than we should, although this is being contested (see [http://wiki.eeeuser.com/ssd_write_limit this link] and [http://www.storagesearch.com/ssdmyths-endurance.html this other link]).<br />
<br />
Some other minor modifications can be made to decrease number of non-mandatory writes by applications: deactivate {{Filename|~/.viminfo}} in vi, deactivate less history file ({{Filename|~/.lesshst}}), and so on.<br />
<br />
===Choosing Your Installation Media===<br />
<br />
The Eee PC does not have an optical drive installed on the machine. This means you will need to install Arch Linux through one of the alternative methods:<br />
<br />
# [[Beginners_Guide#USB_stick|USB stick]] '''(Recommended)'''<br />
# External USB CD-ROM drive<br />
# [[PXE|Network (PXE)]]<br />
<br />
==Installing Arch Linux==<br />
<br />
With the release of the 2009.08 installation media, installing Arch Linux on Asus Eee PC model 701 is pretty easy and straightforward since the stock kernel on Arch installation media support all of the 701 hardwares out of the box. <br />
<br />
Therefore, aside from the recommended partition scheme described below, there shouldn't be any other differences between installing Arch Linux on the 701 and any other computer. You should be able to successfully install Arch on the 701 by following instructions on [[Beginners_Guide|Beginners' Guide]] without any problem.<br />
<br />
===Prepare Hard Drive===<br />
<br />
<br />
The most important different between the 701 and other machines is that the 701 use SSD drive instead of normal hard drive. This section advise on how to set up a partition scheme that is best suited to the 701. <br />
<br />
The default Eee PC drive is split up into four partitions (here is [http://forum.eeeuser.com/viewtopic.php?id=1805 some information] about the partitioning): <br />
<br />
* It is easiest to wipe the existing partitions and use one or two partitions for your install. One partition would be just '/', and two partitions would be '/boot' and '/'.<br />
* Choose "NONE" for swap in case your eee has a SSD (see #2 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]])<br />
* Select "ext2" as your filesystem in case your eee has a SSD (see #1 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]]). If your model has a standard HD choose "ext3".<br />
<br />
===Asus Eee PC model 701 repository from toofishes===<br />
<br />
Toofishes created a repository for the 701. The repository contained customized kernel built specifically for the 701 and some additional packages. <br />
<br />
While the stock Arch kernel works very well with the 701, toofishes kernel have the following advantages:<br />
<br />
* Faster boot time &ndash; because most of the modules have been compile into the kernel, no time is wasted waiting for the modules to load<br />
* No need to generate initial ramdisk every time a kernel is upgrade <br />
* Smaller size (around 4MB)<br />
<br />
To use the repository, add:<br />
[eee]<br />
Server = http://code.toofishes.net/packages/eee<br />
to your {{Filename|/etc/pacman.conf}} and then issue:<br />
pacman -Syu<br />
<br />
====Package List====<br />
Currently, toofishes' repository contains the following packages:<br />
<br />
*'''kernel-eee''' &ndash; customized kernel for Asus Eee PC model 701<br />
*'''luvcview''' &ndash; webcam program for testing webcam driver<br />
<br />
====Kernel-eee Installation Instruction====<br />
Simply use pacman to install the package you need. Install the packages with this command:<br />
# pacman -Sy kernel-eee<br />
<br />
then, add the following to {{Filename|/boot/grub/menu.lst}}; note that no initrd is needed:<br />
# (2) Arch Linux<br />
title Arch Linux Eee kernel<br />
root (hd0,0)<br />
kernel /boot/vmlinuzeee root=/dev/sda1 ro<br />
<br />
Restart and select Arch Linux Eee kernel from the grub boot menu.<br />
<br />
==Getting Everything Working==<br />
<br />
By now, you should have Arch Linux installed. The following is the guide on how to get the rest of your system working.<br />
<br />
===X===<br />
<br />
Install X by follow instructions on the [[Beginners_Guide#Step_2:_Install_X|Beginners' Guide]], then install the Intel graphics driver:<br />
# pacman -Sy xf86-video-intel<br />
<br />
You may also wish to install the Synaptics drivers for the touchpad (not needed for Eee PC 900):<br />
# pacman -Sy xf86-input-synaptics<br />
<br />
With the latest version of X from extra repository, X should work on the 701 '''without any need for xorg.conf'''. However, if for some reason you wish to use an xorg.conf file, you can use an old [[Example_Xorg_configuration_file_for_Asus_Eee_PC_701|example Xorg configuration file for Asus Eee PC model 701]] as a template or automatically generate a new one by running the following command:<br />
<br />
# Xorg -configure<br />
<br />
Consult [[Xorg_input_hotplugging|Xorg Input Hotplugging]] for more information on how to config input devices using HAL.<br />
<br />
The synaptics stuff can be removed if you have a EEE PC 900. The {{Codeline|Option "AutoAddDevices"}} line is important if you need a non-default XkbLayout, because if you don't have it, xorg will find 3 keyboards (at least with the 900 model).<br />
The Modeline has obviously to be removed or modified if you dont have a model with this resolution.<br />
<br />
===Sound, Webcam & Microphone===<br />
<br />
====Sound====<br />
<br />
Some people have reported sound working right out of the box with no troubles. However, others might need to add to {{Filename|/etc/modprobe.conf}} the following line for the EeePC 701<br />
options snd-hda-intel model=3stack-dig<br />
or the following one for the EeePC 900 model<br />
options snd-hda-intel model=auto<br />
<br />
If your internal microphone doesn't work, you probably have to turn the capture feature on. Simply fire up alsamixer, find your Capture control, and press spacebar to enable it.<br />
<br />
====Webcam====<br />
<br />
You can enable your built-in webcam by adding the following line to your {{Filename|/etc/rc.local}} file.<br />
<br />
echo 1 > /sys/devices/platform/eeepc/camera<br />
<br />
If you want the webcam application that the default Xandos installation uses, install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14469 ucview from the AUR].<br />
<br />
The webcam also works fine with the latest version of Skype.<br />
<br />
If you already have mplayer installed you can launch:<br />
$ mplayer -fps 15 tv://<br />
<br />
I have yet to get it working with vlc or any other software such as xawtv. If you know how, please update this.<br />
<br />
*'''NOTE:''' For anyone who has accidentally disabled Auto Exposure for their webcam in luvcview (making the image dark), and can't enable it again, do the following:<br />
<br />
Install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14468 libwebcam from the AUR].<br />
<br />
Issue the following command:<br />
$ uvcdynctrl --set "Exposure, Auto" 4<br />
<br />
{{Note | Be sure the "OS Installation" option is set to "finished" in the BIOS' "Advanced" tab or your camera may not work in some applications (like Skype).}}<br />
<br />
{{Note | Make sure you are a member of the video group edit /etc/group and add your username to video}}<br />
<br />
====Microphone====<br />
<br />
Solution for problems with the internal microphone.<br />
<br />
1. First of all set in alsamixer "Input Source" to "i-Mic"<br />
<br />
2. Increase "Capture" and "i-Mic Boost" to your needs<br />
<br />
3. Edit {{Filename|/etc/asound.state}} the following, change the 2 "false" to "true" like showing:<br />
....snap.....<br />
control.11 {<br />
comment.access 'read write'<br />
comment.type BOOLEAN<br />
comment.count 2<br />
iface MIXER<br />
name 'Capture Switch'<br />
value.0 true<br />
value.1 true<br />
}<br />
....snap....<br />
<br />
4. After editing run following as root<br />
# alsactl restore<br />
<br />
5. Now your internal microphone should be working.<br />
<br />
===Getting Hot Keys, Graphic Indicators and Shutdown with the Power Button Working===<br />
<br />
If you want to have working hot keys (wifi, brightness, volume etc), an OSD, and be able to assign actions to things like the powerbutton and closing the lid, then you should install '''ighea's acpi-eee''' package.<br />
<br />
==== ighea's acpi-eee ====<br />
<br />
Get the latest package from [http://kapsi.fi/ighea/eee/acpi-eee/ here].<br />
<br />
The package can be easily installed with:<br />
# pacman -U acpi-eee-10.0-1-i686.pkg.tar.gz<br />
<br />
See messages during installation for more details and don't forget to edit {{Filename|/etc/acpi/eee.conf}} to suit your tastes.<br />
<br />
*For those who use the wireless on/off acpi command; the {{Codeline|NETWORK_UP_COMMAND&#61;""}} setting in {{Filename|/etc/acpi/eee.conf}}, when applicable, should at least release the network. For example, using netcfg2, {{Codeline|NETWORK_UP_COMMAND&#61;"netcfg2 -a"}} will release the connections from before disabling wireless, allowing new ones to be made without netcfg thinking that it's already connected. It is also possible to reconnect to your previous network, however, the network tool you use needs to have a somewhat lengthy timeout as it takes 15-20 seconds for your wireless device to reappear. <br />
<br />
{{Note | Make sure '''asusosd''' is enabled on startup if you want to have the Graphic Indicators from Xandros. To run asusosd simply type {{Codeline|asusosd &}} at a command prompt.}}<br />
<br />
==Additional Tips & Tweaks==<br />
<br />
===Tweaking kernel-eee===<br />
<br />
Toofishes' kernel, also known as kernel-eee, can be recompiled to include custom features. You can download toofishes' kernel PKGBUILD and all the nesseary files from his gitweb by installing the git package and using the following command:<br />
<br />
$ git clone git://code.toofishes.net/dan/eee.git<br />
<br />
or if you are behind a proxy and can't use the git protocol:<br />
<br />
$ git clone http://code.toofishes.net/git/dan/eee.git<br />
<br />
There are two ways to tweak the kernel. The first is simply to edit the {{Filename|kernelconfig}} file with your favorite editor and the second is to insert a {{Codeline|make menuconfig}} line into the PKGBUILD before the kernel's compilation.<br />
<br />
===Using Wine with toofishes' kernel===<br />
<br />
Normally, Wine won't work with toofishes' kernel because it is compiled with VMSPLIT_2G_OPT option. In order to use Wine with toofishes' kernel, you have to recompile his kernel with VMSPLIT_3G option.<br />
<br />
Download the kernel PKGBUILD and all the necessary files from toofishes' gitweb using the above instructions, then change the following lines in the {{Filename|kernelconfig}} file from this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 # CONFIG_VMSPLIT_3G is not set<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 CONFIG_VMSPLIT_2G_OPT=y<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
to this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 CONFIG_VMSPLIT_3G=y<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 # CONFIG_VMSPLIT_2G_OPT is not set<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
<br />
Compile and install the kernel and Wine should now work.<br />
<br />
===Power down with the power button===<br />
<br />
{{Note | If you are using ighea's acpi-eee or dkite's acpid_eee package then you should already be able to shutdown by pressing the power button and should not need to do this.}}<br />
<br />
The two alternatives here are described in [[Allow users to shutdown]].<br />
<br />
If you don't already or don't plan to use sudo, it may be simpler to use the setuid /sbin/halt method, otherwise using sudo is preferred.<br />
<br />
Below are all the steps required for the sudo method. If you want to use the setuid method, read the article linked above and perform the 'power' file step here, while omitting the 'sudo' in it.<br />
<br />
# pacman -S sudo<br />
<br />
As root, do the following:<br />
# visudo<br />
<br />
Add the following line to the file:<br />
USER HOST = NOPASSWD: /sbin/poweroff<br />
<br />
Where {{Codeline|USER}} is the user you want to be able to power down with and {{Codeline|HOST}} is your hostname (from {{Filename|/etc/rc.conf}}).<br />
<br />
Now, create a file called {{Filename|/etc/acpi/events/power}}, containing:<br />
# /etc/acpi/events/power<br />
# This is called when the user presses the power button<br />
<br />
event=button/power (PWR.||PBTN)<br />
action=sudo /sbin/poweroff<br />
<br />
Make sure that you execute:<br />
# /etc/rc.d/acpid start<br />
<br />
And/or add acpid to the daemons list in {{Filename|/etc/rc.conf}}:<br />
DAEMONS=(hal, acpid ...)<br />
<br />
===Use cpufreq for power saving===<br />
<br />
{{Note | toofishes dropped CPU scaling from his latest kernel builds, due to the fact, confirmed by other users, that there were no effective power savings with p4-clockmod's module, and it introduced "unacceptable latency", even with relatively low percentage up thresholds.}}<br />
<br />
Install cpufrequtitls:<br />
# pacman -S cpufrequtils<br />
<br />
For scaling down the processor you have to load the p4_clockmod module. Insert it into your {{Filename|/etc/rc.conf}} MODULES array for loading it at startup. <br />
MODULES=(... p4_clockmod ...)<br />
<br />
Add 'cpufreq' to the DAEMONS array in {{Filename|/etc/rc.conf}} to have it start on startup.<br />
DAEMONS=(... cpufreq ...)<br />
<br />
Add the following into {{Filename|/etc/conf.d/cpufreq}}:<br />
governor="ondemand"<br />
min_freq="113MHz"<br />
max_freq="900MHz"<br />
<br />
With enabled cpufreq it scales the processor between 113MHz up to max. frequency. That should save a lot on battery power. The stated 900MHz will be never reached by the eeePC, the p4_clockmod reports a wrong frequency here. But scaling works, you can feel it in the performance of eeePC that he slow down the processor.<br />
<br />
{{Note | The merits of p4-clockmod are debatable. Particularly on the EEEPC 701, battery time isn't extended due to its usage, and some users have even reported less battery duration. More hints to the reasons why can be read in [http://www.codemonkey.org.uk/2009/01/18/forthcoming-p4clockmod/ this] fine blog entry.}}<br />
<br />
===More responsive system with ondemand governor===<br />
The default up_threshold (where it will bump to a faster speed) for the CPU governor is 80, which means it will increase the CPU speed when utilization is above 80%. This can make X applications have a bit of lag. <br />
<br />
Try changing this value:<br />
$ sudo bash -c "echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold"<br />
<br />
With 40 it still leaves the majority of CPU cycles at the lowest available clock speed but increases responsiveness. You can add this line to one of your startup scripts (such as {{Filename|/etc/rc.local}}) if you wish to keep it, for example:<br />
<br />
#!/bin/bash<br />
#<br />
# /etc/rc.local: Local multi-user startup script.<br />
#<br />
<br />
echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold<br />
<br />
Also, following line is also reported to help makes system more responsive. You can use it by adding it to your {{Filename|/etc/rc.local}}:<br />
echo 2000000 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate<br />
<br />
===Speeding up udev for faster boot===<br />
*[[Speedup udev]]<br />
*http://dev.laptop.org/ticket/4349<br />
*[http://www.eeesale.com/Asus-Eee-PC-overclock-Benchmarks.htm Speed up the Eee PC]<br />
<br />
You can also disable the autoload by editing your {{Filename|[[rc.conf]]}}:<br />
...<br />
MOD_AUTOLOAD="no"<br />
...<br />
MODULES=(pciehp ath5k)<br />
<br />
===Update your BIOS without Xandros===<br />
{{Warning | You can break your system, do not update if you are not sure of what you are doing!}}<br />
<br />
First, you need to download the ''.rom'' file.<br />
*[http://update.eeepc.asus.com/bios/ Asus' official BIOS]<br />
*[http://forum.eeeuser.com/viewtopic.php?id=3485 EeeUser's topic]<br />
<br />
You also need an USB stick formatted in FAT32. To format the USBStick, use the cfdisk tool:<br />
# cfdisk /dev/sdc # could be something else than "c"<br />
<br />
Choose [delete], [type]: "fat32" (code 0B), [write] and then exit with [quit].<br />
<br />
NOTE to EEE PC 900 owners and possibly others: Using this method will require a flash drive formatted with a '''FAT16''' file-system. If the BIOS update process hangs up at "Reading file 900.ROM" for more than a few minutes then it should be safe to power down your EEE PC and reformat your flashdrive's file-system to the correct one. You can force FAT16 creation with the following command:<br />
# mkdosfs -F 16 /dev/device-path<br />
<br />
Now just copy the ''.rom'' on the USBStick :<br />
$ cp /somewhere/blabla/.../thecurrentnameofthefile.ROM /path/to/mounted/usb_stick/701.rom<br />
The name of the copy '''must''' be xxxx.rom where xxxx is the model of your eee PC. (i.e. 900 users it's 900.rom)<br />
<br />
Next step, reboot the eeepc with the USB stick pluged-in, and press Alt+F2. It will launch the built-in tool. Everything should be Ok, you can make a coffee during the update. When it asks you to push the power-button it has finished.<br />
<br />
At the next boot, you'll be invited to configure the BIOS. Check if the everything is enabled (my webcam and wireless were disabled after the update) and if it displays the good version in the main screen. It's done!<br />
<br />
=== More usable font sizes ===<br />
<br />
====The_glu's method====<br />
<br />
I found an easy solution that works on a 901:<br />
<br />
Edit {{Filename|/etc/X11/xinit/xserverrc}} and add "-dpi 134":<br />
exec /usr/bin/X -nolisten tcp -dpi 134<br />
<br />
Restart X and fonts should have the correct size. Notice it's won't works if you have Xft*dpi: in your {{Filename|.XDefaults}}.<br />
<br />
You don't need to edit your config file to set a smaller font size, I you did you should set font-size to 10 or you will have to small fonts...<br />
<br />
==== Old method ====<br />
<br />
On a default installation with Xfce 4 my font sizes were too big, here is what I did to sort them out.<br />
<br />
First, I set the DPI by adding the following to {{Filename|~/.Xdefaults}}:<br />
Xft*dpi: 134<br />
<br />
This then caused the fonts to be even bigger, so I set them all to be font-size 6 by adding the following into {{Filename|~/.gtkrc-2.0}} (note that this will be overwritten if you use any tools to change GTK settings):<br />
style "user-font"<br />
{<br />
font_name="Bitstream Vera Sans 6"<br />
}<br />
widget_class "*" style "user-font"<br />
<br />
To do the same with KDE fonts (without KDE installed) you have to add the following to {{Filename|~/.kde/share/config/kdeglobals}}:<br />
[General]<br />
StandardFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
activeFont=Bitstream Vera Sans,6,-1,5,75,0,0,0,0,0<br />
fixed=Bitstream Vera Sans Mono,6,-1,5,50,0,0,0,0,0<br />
font=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
menuFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
taskbarFont=Bitstream Vera Sans,6,-1,5,50,1,0,0,0,0<br />
toolBarFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
<br />
To make your fonts even prettier enable the [[Fonts#Fonts_with_LCD_filter_enabled|LCD Fonts]].<br />
<br />
==== Alternative Method ====<br />
<br />
For me it worked far better to open the gnome appearance control panel, go to the fonts tab, click defaults, and change the resolution to be 96 dpi. Changing .Xdefaults doesnt work when running gnome, as gnome-settings-daemon overrides it. You can then leave all font sizes at their default, and things should look good. Simply changing the font sizes and leaving the DPI at its technically correct value (~134) gave me weird layout problems in some apps, and oddly large fonts in others.<br />
<br />
==Known problems and their solutions==<br />
<br />
===Wireless doesn't work, even after installing custom Madwifi module===<br />
<br />
I found that Arch tried to use the ath5k module for wireless, and that meant it took control of the card rather than ath_pci (the module I had compiled and installed). I got a Madwifi status 3 message in dmesg when this happened.<br />
<br />
The solution is to blacklist the ath5k module in {{Filename|/etc/rc.conf}}:<br />
<br />
MODULES = ( ... !ath5k ... )<br />
<br />
===Laggy or Unresponsive ACPI Events===<br />
<br />
The latest kernel (2.6.26) introduces new problems with Eee's ACPI events handling. Basically, ACPI events become very laggy and after some time ACPI get disabled after a heavy usage (e.g. changing volume, brightness). This problem affects both stock kernel and toofishes' kernel.<br />
<br />
It appears that the solution is to apply this [http://bugzilla.kernel.org/attachment.cgi?id=16862 patch] ([http://bugzilla.kernel.org/show_bug.cgi?id=10724 original bug report]) to the kernel. <br />
<br />
{{Note | The latest toofishes' kernel, version 2.6.26-1, now includes the patch, but you can still use ighea's one for the extras features listed below.}}<br />
<br />
Until toofishes update his kernel to include the patch, you can use ighea's slightly modified toofishes' kernel that included the above patch, as well as other modifications:<br />
<br />
*Support for Wine <br />
*uvesafb is built as module <br />
*Use [http://bbs.archlinux.org/viewtopic.php?pid=393860#p393860 new eeepc-laptop driver] (which also handles fan-control) instead of older acus_acpi or asus-laptop -drivers.<br />
<br />
You can get the modified kernel, as well as the associative packages, from [http://koti.kapsi.fi/~ighea/eee/kernel-eee/ here].<br />
<br />
After you have downloaded the packages, Install them using this command:<br />
# pacman -U kernel-eee-2.6.26-1-i686.pkg.tar.gz madwifi-eee-svn-3752-1-i686.pkg.tar.gz <br />
<br />
You might also want to use IgnorePkg-line in {{Filename|/etc/pacman.conf}} to hold packages from being accidentally updated.<br />
IgnorePkg = kernel-eee madwifi-eee-svn<br />
<br />
Also don't forget to upgrade ighea's acpi-eee package to version 9.6.<br />
<br />
===Shutdown Problem===<br />
<br />
If your Eee won't shutdown properly (i.e. the power indicator LED is on but the LCD screen is off), then add the following lines to your {{Filename|/etc/rc.local.shutdown}} file.<br />
<pre><br />
#! /bin/bash<br />
#<br />
# /etc/rc.local.shutdown: Local shutdown script.<br />
#<br />
<br />
# Comment or uncomment the following two lines according to your system configuration.<br />
<br />
/etc/rc.d/mpd stop # If you're using mpd, then you have to stop its daemon first.<br />
<br />
/etc/rc.d/alsa stop # If you're using ALSA daemon, then you also have to stop it.<br />
<br />
# The following line is Eee specific fix, you always need to have this line in /etc/rc.local.shutdown.<br />
<br />
echo -n "0000:00:1b.0" > /sys/bus/pci/drivers/HDA\ Intel/unbind<br />
</pre><br />
<br />
The above solution should fix the shutdown problem in most cases. But if for some reason the problem still persists, the module may not be able to be unloaded until after all services have finished. Do the above, then in {{Filename|/etc/rc.shutdown}} move <br />
<br />
if [ -x /etc/rc.local.shutdown ]; then<br />
/etc/rc.local.shutdown<br />
fi<br />
<br />
from where it was to directly above the line <br />
<br />
# Terminate all processes<br />
<br />
this will cause the {{Filename|rc.local.shutdown}} script to run after services have been exited. This fixed all issues for the person editing this note.<br />
<br />
===Unclean unmount during shutdown when having home directory mounted on SD card===<br />
<br />
If you experienced unclean unmount during shutdown when having your home directory on SD card, then add the following 3 lines to "Write to wtmp file before unmounting" section of your {{Filename|/etc/rc.shutdown}} file:<br />
<pre><br />
...<br />
<br />
stat_busy "Unmounting Filesystems"<br />
/bin/umount -a -t noramfs,notmpfs,nosysfs,noproc<br />
<br />
# Add these 3 lines<br />
sync;sync;sync;<br />
eject /dev/sdb # Or whichever is your SD-card's device name. /dev/disk/by-uuid/ followed by the UUID identifier is preferable though.<br />
sleep 3<br />
# End of hack<br />
<br />
stat_done<br />
<br />
...<br />
</pre><br />
<br />
===Booting from card without initrd===<br />
<br />
Let's say you decided to install Arch Linux on a card and compiled your own kernel (or used the kernel26eee kernel) without initrd. Card reader on EeePC is connected as an USB device. Unfortunately, USB storage devices are detected with a delay, so we must tell the kernel to wait until this device becomes available. You do this with "rootwait" option passed to kernel at boot time.<br />
<br />
===Sleeping and waking system on a card===<br />
<br />
If you have Arch Linux on a card, waking up from sleeping state will most likely fail. The only solution is to enable the CONFIG_USB_PERSIST option in kernel. The kernel26eee package should have this option enabled.<br />
<br />
The command to do this is:<br />
echo 1 >/sys/bus/usb/devices/.../power/persist<br />
<br />
Replace the {{Codeline|"..."}} with the device like 1-3 or 1-5 where the first number is the bus and the second is the device <br />
<br />
Each device that is connected to your computer gets an entry in the sysfs "system file system" it is a virtual file system like proc<br />
<br />
More info:<br />
*http://www.mjmwired.net/kernel/Documentation/usb/persist.txt<br />
*http://forum.eeeuser.com/viewtopic.php?id=22712<br />
<br />
===Display doesn't wake up properly===<br />
<br />
If you encounter black display (but apparently working system) after suspend/resume, consider using the "uswsusp" package (available in the official repositories) and correcting suspend2ram script in /etc/acpi, where you use this line to make the machine go to sleep:<br />
<br />
/usr/sbin/s2ram --force --vbe_post --vbe_mode<br />
<br />
==Battery Tests==<br />
<br />
The following are reported battery runtimes:<br />
<br />
{| class="wikitable" style="text-align:left"<br />
|+Battery runtimes<br />
|-<br />
! Task !! Series !! Wireless !! Screen Brightness !! FSB Speed !! Fan Speed !! Runtime !! Comments<br />
|-<br />
! DVD Playback<br />
| 701 || On || Max || 85mhz || 100% || 134min || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! DVD Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! AVI Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading AVI from SSD<br />
|-<br />
! IM and Surf<br />
| 701 || On || ~30% || ??? || low || 173min || Normal web-browsing, Flash should reduce runtime a lot !<br />
|-<br />
! Programming and PDF reading<br />
| 1000HA || Off || ~40% || ??? || low || +6hs || Using Evince and SPE under XFCE with camera and USB disabled<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || +4hs || Stock kernel without laptop-mode<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || 5hs || Stock kernel with laptop-mode and other tweaks<br />
|}<br />
<br />
N.B. - Will add battery runtimes as I am able to test them, please contribute.<br />
<br />
-- Grecko.1<br />
<br />
Still tweaking, but disabling everything from BIOS got me about 6 hours and a half. With eee-kernel, I *could* get a little more.<br />
<br />
-- ekuber</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=ASUS_Eee_PC_701&diff=86158ASUS Eee PC 7012009-12-03T12:22:07Z<p>Zodmaner: /* Kernel-eee Installation Instruction */</p>
<hr />
<div>{{stub}}<br />
[[Category:Getting and installing Arch (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|Русский|Инсталляция Arch Linux на Asus EEE PC}}<br />
{{i18n_links_end}}<br />
<br />
Most of this information is from the [http://bbs.archlinux.org/viewtopic.php?pid=297632 Arch Forum]. You can also find a lot of helpful information from the [http://forum.eeeuser.com/ EEEUser Forum]. <br />
<br />
==Before You Begin==<br />
<br />
===Avoiding Pitfalls===<br />
<br />
The install is pretty normal, except that you'll need to [http://forum.eeeuser.com/viewtopic.php?id=890 avoid the pitfalls] of our alternative Linux install:<br />
<br />
# Never choose to use a journaling file system on the SSD partitions<br />
# Never use a swap partition on the SSD<br />
# Edit your new installation fstab to mount the SSD partitions "noatime"<br />
# Never log messages or error log to the SSD<br />
<br />
The rules ensure that we won't reach the maximum limit of writes on our SSD faster than we should, although this is being contested (see [http://wiki.eeeuser.com/ssd_write_limit this link] and [http://www.storagesearch.com/ssdmyths-endurance.html this other link]).<br />
<br />
Some other minor modifications can be made to decrease number of non-mandatory writes by applications: deactivate {{Filename|~/.viminfo}} in vi, deactivate less history file ({{Filename|~/.lesshst}}), and so on.<br />
<br />
===Choosing Your Installation Media===<br />
<br />
The Eee PC does not have an optical drive installed on the machine. This means you will need to install Arch Linux through one of the alternative methods:<br />
<br />
# [[Beginners_Guide#USB_stick|USB stick]] '''(Recommended)'''<br />
# External USB CD-ROM drive<br />
# [[PXE|Network (PXE)]]<br />
<br />
==Installing Arch Linux==<br />
<br />
With the release of the 2009.08 installation media, installing Arch Linux on Asus Eee PC model 701 is pretty easy and straightforward since the stock kernel on Arch installation media support all of the 701 hardwares out of the box. <br />
<br />
Therefore, aside from the recommended partition scheme described below, there shouldn't be any other differences between installing Arch Linux on the 701 and any other computer. You should be able to successfully install Arch on the 701 by following instructions on [[Beginners_Guide|Beginners' Guide]] without any problem.<br />
<br />
===Prepare Hard Drive===<br />
<br />
<br />
The most important different between the 701 and other machines is that the 701 use SSD drive instead of normal hard drive. This section advise on how to set up a partition scheme that is best suited to the 701. <br />
<br />
The default Eee PC drive is split up into four partitions (here is [http://forum.eeeuser.com/viewtopic.php?id=1805 some information] about the partitioning): <br />
<br />
* It is easiest to wipe the existing partitions and use one or two partitions for your install. One partition would be just '/', and two partitions would be '/boot' and '/'.<br />
* Choose "NONE" for swap in case your eee has a SSD (see #2 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]])<br />
* Select "ext2" as your filesystem in case your eee has a SSD (see #1 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]]). If your model has a standard HD choose "ext3".<br />
<br />
===Asus Eee PC model 701 repository from toofishes===<br />
<br />
Toofishes created a repository for the 701. The repository contained customized kernel built specifically for the 701 and some additional packages. <br />
<br />
While the stock Arch kernel works very well with the 701, toofishes kernel have the following advantages:<br />
<br />
* Faster boot time &ndash; because most of the modules have been compile into the kernel, no time is wasted waiting for the modules to load<br />
* No need to generate initial ramdisk every time a kernel is upgrade <br />
* Smaller size (around 4MB)<br />
<br />
To use the repository, add:<br />
[eee]<br />
Server = http://code.toofishes.net/packages/eee<br />
to your {{Filename|/etc/pacman.conf}} and then issue:<br />
pacman -Syu<br />
<br />
====Package List====<br />
Currently, toofishes' repository contains the following packages:<br />
<br />
*'''kernel-eee''' &ndash; customized kernel for Asus Eee PC model 701<br />
*'''luvcview''' &ndash; webcam program for testing webcam driver<br />
<br />
====Kernel-eee Installation Instruction====<br />
Simply use pacman to install the package you need. Install the packages with this command:<br />
# pacman -Sy kernel-eee<br />
<br />
then, add the following to {{Filename|/boot/grub/menu.lst}}; note that no initrd is needed:<br />
# (2) Arch Linux<br />
title Arch Linux Eee kernel<br />
root (hd0,0)<br />
kernel /boot/vmlinuzeee root=/dev/sda1 ro<br />
<br />
Restart and select Arch Linux Eee kernel from the grub boot menu.<br />
<br />
==Getting Everything Working==<br />
<br />
By now, you should have Arch installed. The following is the guide on how to get the rest of your system working.<br />
<br />
===X===<br />
<br />
Install X by follow instructions on the [[Beginners_Guide#Step_2:_Install_X|Beginners' Guide]], then install the Intel graphics driver:<br />
# pacman -Sy xf86-video-intel<br />
<br />
You may also wish to install the Synaptics drivers for the touchpad (not needed for Eee PC 900):<br />
# pacman -Sy xf86-input-synaptics<br />
<br />
With the latest version of X from extra repository, X should work on the 701 '''without any need for xorg.conf'''. However, if for some reason you wish to use an xorg.conf file, you can use an old [[Example_Xorg_configuration_file_for_Asus_Eee_PC_701|example Xorg configuration file for Asus Eee PC model 701]] as a template or automatically generate a new one by running the following command:<br />
<br />
# Xorg -configure<br />
<br />
Consult [[Xorg_input_hotplugging|Xorg Input Hotplugging]] for more information on how to config input devices using HAL.<br />
<br />
The synaptics stuff can be removed if you have a EEE PC 900. The {{Codeline|Option "AutoAddDevices"}} line is important if you need a non-default XkbLayout, because if you don't have it, xorg will find 3 keyboards (at least with the 900 model).<br />
The Modeline has obviously to be removed or modified if you dont have a model with this resolution.<br />
<br />
===Sound, Webcam & Microphone===<br />
<br />
====Sound====<br />
<br />
Some people have reported sound working right out of the box with no troubles. However, others might need to add to {{Filename|/etc/modprobe.conf}} the following line for the EeePC 701<br />
options snd-hda-intel model=3stack-dig<br />
or the following one for the EeePC 900 model<br />
options snd-hda-intel model=auto<br />
<br />
If your internal microphone doesn't work, you probably have to turn the capture feature on. Simply fire up alsamixer, find your Capture control, and press spacebar to enable it.<br />
<br />
====Webcam====<br />
<br />
You can enable your built-in webcam by adding the following line to your {{Filename|/etc/rc.local}} file.<br />
<br />
echo 1 > /sys/devices/platform/eeepc/camera<br />
<br />
If you want the webcam application that the default Xandos installation uses, install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14469 ucview from the AUR].<br />
<br />
The webcam also works fine with the latest version of Skype.<br />
<br />
If you already have mplayer installed you can launch:<br />
$ mplayer -fps 15 tv://<br />
<br />
I have yet to get it working with vlc or any other software such as xawtv. If you know how, please update this.<br />
<br />
*'''NOTE:''' For anyone who has accidentally disabled Auto Exposure for their webcam in luvcview (making the image dark), and can't enable it again, do the following:<br />
<br />
Install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14468 libwebcam from the AUR].<br />
<br />
Issue the following command:<br />
$ uvcdynctrl --set "Exposure, Auto" 4<br />
<br />
{{Note | Be sure the "OS Installation" option is set to "finished" in the BIOS' "Advanced" tab or your camera may not work in some applications (like Skype).}}<br />
<br />
{{Note | Make sure you are a member of the video group edit /etc/group and add your username to video}}<br />
<br />
====Microphone====<br />
<br />
Solution for problems with the internal microphone.<br />
<br />
1. First of all set in alsamixer "Input Source" to "i-Mic"<br />
<br />
2. Increase "Capture" and "i-Mic Boost" to your needs<br />
<br />
3. Edit {{Filename|/etc/asound.state}} the following, change the 2 "false" to "true" like showing:<br />
....snap.....<br />
control.11 {<br />
comment.access 'read write'<br />
comment.type BOOLEAN<br />
comment.count 2<br />
iface MIXER<br />
name 'Capture Switch'<br />
value.0 true<br />
value.1 true<br />
}<br />
....snap....<br />
<br />
4. After editing run following as root<br />
# alsactl restore<br />
<br />
5. Now your internal microphone should be working.<br />
<br />
===Getting Hot Keys, Graphic Indicators and Shutdown with the Power Button Working===<br />
<br />
If you want to have working hot keys (wifi, brightness, volume etc), an OSD, and be able to assign actions to things like the powerbutton and closing the lid, then you should install '''ighea's acpi-eee''' package.<br />
<br />
==== ighea's acpi-eee ====<br />
<br />
Get the latest package from [http://kapsi.fi/ighea/eee/acpi-eee/ here].<br />
<br />
The package can be easily installed with:<br />
# pacman -U acpi-eee-10.0-1-i686.pkg.tar.gz<br />
<br />
See messages during installation for more details and don't forget to edit {{Filename|/etc/acpi/eee.conf}} to suit your tastes.<br />
<br />
*For those who use the wireless on/off acpi command; the {{Codeline|NETWORK_UP_COMMAND&#61;""}} setting in {{Filename|/etc/acpi/eee.conf}}, when applicable, should at least release the network. For example, using netcfg2, {{Codeline|NETWORK_UP_COMMAND&#61;"netcfg2 -a"}} will release the connections from before disabling wireless, allowing new ones to be made without netcfg thinking that it's already connected. It is also possible to reconnect to your previous network, however, the network tool you use needs to have a somewhat lengthy timeout as it takes 15-20 seconds for your wireless device to reappear. <br />
<br />
{{Note | Make sure '''asusosd''' is enabled on startup if you want to have the Graphic Indicators from Xandros. To run asusosd simply type {{Codeline|asusosd &}} at a command prompt.}}<br />
<br />
==Additional Tips & Tweaks==<br />
<br />
===Tweaking kernel-eee===<br />
<br />
Toofishes' kernel, also known as kernel-eee, can be recompiled to include custom features. You can download toofishes' kernel PKGBUILD and all the nesseary files from his gitweb by installing the git package and using the following command:<br />
<br />
$ git clone git://code.toofishes.net/dan/eee.git<br />
<br />
or if you are behind a proxy and can't use the git protocol:<br />
<br />
$ git clone http://code.toofishes.net/git/dan/eee.git<br />
<br />
There are two ways to tweak the kernel. The first is simply to edit the {{Filename|kernelconfig}} file with your favorite editor and the second is to insert a {{Codeline|make menuconfig}} line into the PKGBUILD before the kernel's compilation.<br />
<br />
===Using Wine with toofishes' kernel===<br />
<br />
Normally, Wine won't work with toofishes' kernel because it is compiled with VMSPLIT_2G_OPT option. In order to use Wine with toofishes' kernel, you have to recompile his kernel with VMSPLIT_3G option.<br />
<br />
Download the kernel PKGBUILD and all the necessary files from toofishes' gitweb using the above instructions, then change the following lines in the {{Filename|kernelconfig}} file from this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 # CONFIG_VMSPLIT_3G is not set<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 CONFIG_VMSPLIT_2G_OPT=y<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
to this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 CONFIG_VMSPLIT_3G=y<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 # CONFIG_VMSPLIT_2G_OPT is not set<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
<br />
Compile and install the kernel and Wine should now work.<br />
<br />
===Power down with the power button===<br />
<br />
{{Note | If you are using ighea's acpi-eee or dkite's acpid_eee package then you should already be able to shutdown by pressing the power button and should not need to do this.}}<br />
<br />
The two alternatives here are described in [[Allow users to shutdown]].<br />
<br />
If you don't already or don't plan to use sudo, it may be simpler to use the setuid /sbin/halt method, otherwise using sudo is preferred.<br />
<br />
Below are all the steps required for the sudo method. If you want to use the setuid method, read the article linked above and perform the 'power' file step here, while omitting the 'sudo' in it.<br />
<br />
# pacman -S sudo<br />
<br />
As root, do the following:<br />
# visudo<br />
<br />
Add the following line to the file:<br />
USER HOST = NOPASSWD: /sbin/poweroff<br />
<br />
Where {{Codeline|USER}} is the user you want to be able to power down with and {{Codeline|HOST}} is your hostname (from {{Filename|/etc/rc.conf}}).<br />
<br />
Now, create a file called {{Filename|/etc/acpi/events/power}}, containing:<br />
# /etc/acpi/events/power<br />
# This is called when the user presses the power button<br />
<br />
event=button/power (PWR.||PBTN)<br />
action=sudo /sbin/poweroff<br />
<br />
Make sure that you execute:<br />
# /etc/rc.d/acpid start<br />
<br />
And/or add acpid to the daemons list in {{Filename|/etc/rc.conf}}:<br />
DAEMONS=(hal, acpid ...)<br />
<br />
===Use cpufreq for power saving===<br />
<br />
{{Note | toofishes dropped CPU scaling from his latest kernel builds, due to the fact, confirmed by other users, that there were no effective power savings with p4-clockmod's module, and it introduced "unacceptable latency", even with relatively low percentage up thresholds.}}<br />
<br />
Install cpufrequtitls:<br />
# pacman -S cpufrequtils<br />
<br />
For scaling down the processor you have to load the p4_clockmod module. Insert it into your {{Filename|/etc/rc.conf}} MODULES array for loading it at startup. <br />
MODULES=(... p4_clockmod ...)<br />
<br />
Add 'cpufreq' to the DAEMONS array in {{Filename|/etc/rc.conf}} to have it start on startup.<br />
DAEMONS=(... cpufreq ...)<br />
<br />
Add the following into {{Filename|/etc/conf.d/cpufreq}}:<br />
governor="ondemand"<br />
min_freq="113MHz"<br />
max_freq="900MHz"<br />
<br />
With enabled cpufreq it scales the processor between 113MHz up to max. frequency. That should save a lot on battery power. The stated 900MHz will be never reached by the eeePC, the p4_clockmod reports a wrong frequency here. But scaling works, you can feel it in the performance of eeePC that he slow down the processor.<br />
<br />
{{Note | The merits of p4-clockmod are debatable. Particularly on the EEEPC 701, battery time isn't extended due to its usage, and some users have even reported less battery duration. More hints to the reasons why can be read in [http://www.codemonkey.org.uk/2009/01/18/forthcoming-p4clockmod/ this] fine blog entry.}}<br />
<br />
===More responsive system with ondemand governor===<br />
The default up_threshold (where it will bump to a faster speed) for the CPU governor is 80, which means it will increase the CPU speed when utilization is above 80%. This can make X applications have a bit of lag. <br />
<br />
Try changing this value:<br />
$ sudo bash -c "echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold"<br />
<br />
With 40 it still leaves the majority of CPU cycles at the lowest available clock speed but increases responsiveness. You can add this line to one of your startup scripts (such as {{Filename|/etc/rc.local}}) if you wish to keep it, for example:<br />
<br />
#!/bin/bash<br />
#<br />
# /etc/rc.local: Local multi-user startup script.<br />
#<br />
<br />
echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold<br />
<br />
Also, following line is also reported to help makes system more responsive. You can use it by adding it to your {{Filename|/etc/rc.local}}:<br />
echo 2000000 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate<br />
<br />
===Speeding up udev for faster boot===<br />
*[[Speedup udev]]<br />
*http://dev.laptop.org/ticket/4349<br />
*[http://www.eeesale.com/Asus-Eee-PC-overclock-Benchmarks.htm Speed up the Eee PC]<br />
<br />
You can also disable the autoload by editing your {{Filename|[[rc.conf]]}}:<br />
...<br />
MOD_AUTOLOAD="no"<br />
...<br />
MODULES=(pciehp ath5k)<br />
<br />
===Update your BIOS without Xandros===<br />
{{Warning | You can break your system, do not update if you are not sure of what you are doing!}}<br />
<br />
First, you need to download the ''.rom'' file.<br />
*[http://update.eeepc.asus.com/bios/ Asus' official BIOS]<br />
*[http://forum.eeeuser.com/viewtopic.php?id=3485 EeeUser's topic]<br />
<br />
You also need an USB stick formatted in FAT32. To format the USBStick, use the cfdisk tool:<br />
# cfdisk /dev/sdc # could be something else than "c"<br />
<br />
Choose [delete], [type]: "fat32" (code 0B), [write] and then exit with [quit].<br />
<br />
NOTE to EEE PC 900 owners and possibly others: Using this method will require a flash drive formatted with a '''FAT16''' file-system. If the BIOS update process hangs up at "Reading file 900.ROM" for more than a few minutes then it should be safe to power down your EEE PC and reformat your flashdrive's file-system to the correct one. You can force FAT16 creation with the following command:<br />
# mkdosfs -F 16 /dev/device-path<br />
<br />
Now just copy the ''.rom'' on the USBStick :<br />
$ cp /somewhere/blabla/.../thecurrentnameofthefile.ROM /path/to/mounted/usb_stick/701.rom<br />
The name of the copy '''must''' be xxxx.rom where xxxx is the model of your eee PC. (i.e. 900 users it's 900.rom)<br />
<br />
Next step, reboot the eeepc with the USB stick pluged-in, and press Alt+F2. It will launch the built-in tool. Everything should be Ok, you can make a coffee during the update. When it asks you to push the power-button it has finished.<br />
<br />
At the next boot, you'll be invited to configure the BIOS. Check if the everything is enabled (my webcam and wireless were disabled after the update) and if it displays the good version in the main screen. It's done!<br />
<br />
=== More usable font sizes ===<br />
<br />
====The_glu's method====<br />
<br />
I found an easy solution that works on a 901:<br />
<br />
Edit {{Filename|/etc/X11/xinit/xserverrc}} and add "-dpi 134":<br />
exec /usr/bin/X -nolisten tcp -dpi 134<br />
<br />
Restart X and fonts should have the correct size. Notice it's won't works if you have Xft*dpi: in your {{Filename|.XDefaults}}.<br />
<br />
You don't need to edit your config file to set a smaller font size, I you did you should set font-size to 10 or you will have to small fonts...<br />
<br />
==== Old method ====<br />
<br />
On a default installation with Xfce 4 my font sizes were too big, here is what I did to sort them out.<br />
<br />
First, I set the DPI by adding the following to {{Filename|~/.Xdefaults}}:<br />
Xft*dpi: 134<br />
<br />
This then caused the fonts to be even bigger, so I set them all to be font-size 6 by adding the following into {{Filename|~/.gtkrc-2.0}} (note that this will be overwritten if you use any tools to change GTK settings):<br />
style "user-font"<br />
{<br />
font_name="Bitstream Vera Sans 6"<br />
}<br />
widget_class "*" style "user-font"<br />
<br />
To do the same with KDE fonts (without KDE installed) you have to add the following to {{Filename|~/.kde/share/config/kdeglobals}}:<br />
[General]<br />
StandardFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
activeFont=Bitstream Vera Sans,6,-1,5,75,0,0,0,0,0<br />
fixed=Bitstream Vera Sans Mono,6,-1,5,50,0,0,0,0,0<br />
font=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
menuFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
taskbarFont=Bitstream Vera Sans,6,-1,5,50,1,0,0,0,0<br />
toolBarFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
<br />
To make your fonts even prettier enable the [[Fonts#Fonts_with_LCD_filter_enabled|LCD Fonts]].<br />
<br />
==== Alternative Method ====<br />
<br />
For me it worked far better to open the gnome appearance control panel, go to the fonts tab, click defaults, and change the resolution to be 96 dpi. Changing .Xdefaults doesnt work when running gnome, as gnome-settings-daemon overrides it. You can then leave all font sizes at their default, and things should look good. Simply changing the font sizes and leaving the DPI at its technically correct value (~134) gave me weird layout problems in some apps, and oddly large fonts in others.<br />
<br />
==Known problems and their solutions==<br />
<br />
===Wireless doesn't work, even after installing custom Madwifi module===<br />
<br />
I found that Arch tried to use the ath5k module for wireless, and that meant it took control of the card rather than ath_pci (the module I had compiled and installed). I got a Madwifi status 3 message in dmesg when this happened.<br />
<br />
The solution is to blacklist the ath5k module in {{Filename|/etc/rc.conf}}:<br />
<br />
MODULES = ( ... !ath5k ... )<br />
<br />
===Laggy or Unresponsive ACPI Events===<br />
<br />
The latest kernel (2.6.26) introduces new problems with Eee's ACPI events handling. Basically, ACPI events become very laggy and after some time ACPI get disabled after a heavy usage (e.g. changing volume, brightness). This problem affects both stock kernel and toofishes' kernel.<br />
<br />
It appears that the solution is to apply this [http://bugzilla.kernel.org/attachment.cgi?id=16862 patch] ([http://bugzilla.kernel.org/show_bug.cgi?id=10724 original bug report]) to the kernel. <br />
<br />
{{Note | The latest toofishes' kernel, version 2.6.26-1, now includes the patch, but you can still use ighea's one for the extras features listed below.}}<br />
<br />
Until toofishes update his kernel to include the patch, you can use ighea's slightly modified toofishes' kernel that included the above patch, as well as other modifications:<br />
<br />
*Support for Wine <br />
*uvesafb is built as module <br />
*Use [http://bbs.archlinux.org/viewtopic.php?pid=393860#p393860 new eeepc-laptop driver] (which also handles fan-control) instead of older acus_acpi or asus-laptop -drivers.<br />
<br />
You can get the modified kernel, as well as the associative packages, from [http://koti.kapsi.fi/~ighea/eee/kernel-eee/ here].<br />
<br />
After you have downloaded the packages, Install them using this command:<br />
# pacman -U kernel-eee-2.6.26-1-i686.pkg.tar.gz madwifi-eee-svn-3752-1-i686.pkg.tar.gz <br />
<br />
You might also want to use IgnorePkg-line in {{Filename|/etc/pacman.conf}} to hold packages from being accidentally updated.<br />
IgnorePkg = kernel-eee madwifi-eee-svn<br />
<br />
Also don't forget to upgrade ighea's acpi-eee package to version 9.6.<br />
<br />
===Shutdown Problem===<br />
<br />
If your Eee won't shutdown properly (i.e. the power indicator LED is on but the LCD screen is off), then add the following lines to your {{Filename|/etc/rc.local.shutdown}} file.<br />
<pre><br />
#! /bin/bash<br />
#<br />
# /etc/rc.local.shutdown: Local shutdown script.<br />
#<br />
<br />
# Comment or uncomment the following two lines according to your system configuration.<br />
<br />
/etc/rc.d/mpd stop # If you're using mpd, then you have to stop its daemon first.<br />
<br />
/etc/rc.d/alsa stop # If you're using ALSA daemon, then you also have to stop it.<br />
<br />
# The following line is Eee specific fix, you always need to have this line in /etc/rc.local.shutdown.<br />
<br />
echo -n "0000:00:1b.0" > /sys/bus/pci/drivers/HDA\ Intel/unbind<br />
</pre><br />
<br />
The above solution should fix the shutdown problem in most cases. But if for some reason the problem still persists, the module may not be able to be unloaded until after all services have finished. Do the above, then in {{Filename|/etc/rc.shutdown}} move <br />
<br />
if [ -x /etc/rc.local.shutdown ]; then<br />
/etc/rc.local.shutdown<br />
fi<br />
<br />
from where it was to directly above the line <br />
<br />
# Terminate all processes<br />
<br />
this will cause the {{Filename|rc.local.shutdown}} script to run after services have been exited. This fixed all issues for the person editing this note.<br />
<br />
===Unclean unmount during shutdown when having home directory mounted on SD card===<br />
<br />
If you experienced unclean unmount during shutdown when having your home directory on SD card, then add the following 3 lines to "Write to wtmp file before unmounting" section of your {{Filename|/etc/rc.shutdown}} file:<br />
<pre><br />
...<br />
<br />
stat_busy "Unmounting Filesystems"<br />
/bin/umount -a -t noramfs,notmpfs,nosysfs,noproc<br />
<br />
# Add these 3 lines<br />
sync;sync;sync;<br />
eject /dev/sdb # Or whichever is your SD-card's device name. /dev/disk/by-uuid/ followed by the UUID identifier is preferable though.<br />
sleep 3<br />
# End of hack<br />
<br />
stat_done<br />
<br />
...<br />
</pre><br />
<br />
===Booting from card without initrd===<br />
<br />
Let's say you decided to install Arch Linux on a card and compiled your own kernel (or used the kernel26eee kernel) without initrd. Card reader on EeePC is connected as an USB device. Unfortunately, USB storage devices are detected with a delay, so we must tell the kernel to wait until this device becomes available. You do this with "rootwait" option passed to kernel at boot time.<br />
<br />
===Sleeping and waking system on a card===<br />
<br />
If you have Arch Linux on a card, waking up from sleeping state will most likely fail. The only solution is to enable the CONFIG_USB_PERSIST option in kernel. The kernel26eee package should have this option enabled.<br />
<br />
The command to do this is:<br />
echo 1 >/sys/bus/usb/devices/.../power/persist<br />
<br />
Replace the {{Codeline|"..."}} with the device like 1-3 or 1-5 where the first number is the bus and the second is the device <br />
<br />
Each device that is connected to your computer gets an entry in the sysfs "system file system" it is a virtual file system like proc<br />
<br />
More info:<br />
*http://www.mjmwired.net/kernel/Documentation/usb/persist.txt<br />
*http://forum.eeeuser.com/viewtopic.php?id=22712<br />
<br />
===Display doesn't wake up properly===<br />
<br />
If you encounter black display (but apparently working system) after suspend/resume, consider using the "uswsusp" package (available in the official repositories) and correcting suspend2ram script in /etc/acpi, where you use this line to make the machine go to sleep:<br />
<br />
/usr/sbin/s2ram --force --vbe_post --vbe_mode<br />
<br />
==Battery Tests==<br />
<br />
The following are reported battery runtimes:<br />
<br />
{| class="wikitable" style="text-align:left"<br />
|+Battery runtimes<br />
|-<br />
! Task !! Series !! Wireless !! Screen Brightness !! FSB Speed !! Fan Speed !! Runtime !! Comments<br />
|-<br />
! DVD Playback<br />
| 701 || On || Max || 85mhz || 100% || 134min || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! DVD Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! AVI Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading AVI from SSD<br />
|-<br />
! IM and Surf<br />
| 701 || On || ~30% || ??? || low || 173min || Normal web-browsing, Flash should reduce runtime a lot !<br />
|-<br />
! Programming and PDF reading<br />
| 1000HA || Off || ~40% || ??? || low || +6hs || Using Evince and SPE under XFCE with camera and USB disabled<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || +4hs || Stock kernel without laptop-mode<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || 5hs || Stock kernel with laptop-mode and other tweaks<br />
|}<br />
<br />
N.B. - Will add battery runtimes as I am able to test them, please contribute.<br />
<br />
-- Grecko.1<br />
<br />
Still tweaking, but disabling everything from BIOS got me about 6 hours and a half. With eee-kernel, I *could* get a little more.<br />
<br />
-- ekuber</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=ASUS_Eee_PC_701&diff=86157ASUS Eee PC 7012009-12-03T12:21:16Z<p>Zodmaner: </p>
<hr />
<div>{{stub}}<br />
[[Category:Getting and installing Arch (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|Русский|Инсталляция Arch Linux на Asus EEE PC}}<br />
{{i18n_links_end}}<br />
<br />
Most of this information is from the [http://bbs.archlinux.org/viewtopic.php?pid=297632 Arch Forum]. You can also find a lot of helpful information from the [http://forum.eeeuser.com/ EEEUser Forum]. <br />
<br />
==Before You Begin==<br />
<br />
===Avoiding Pitfalls===<br />
<br />
The install is pretty normal, except that you'll need to [http://forum.eeeuser.com/viewtopic.php?id=890 avoid the pitfalls] of our alternative Linux install:<br />
<br />
# Never choose to use a journaling file system on the SSD partitions<br />
# Never use a swap partition on the SSD<br />
# Edit your new installation fstab to mount the SSD partitions "noatime"<br />
# Never log messages or error log to the SSD<br />
<br />
The rules ensure that we won't reach the maximum limit of writes on our SSD faster than we should, although this is being contested (see [http://wiki.eeeuser.com/ssd_write_limit this link] and [http://www.storagesearch.com/ssdmyths-endurance.html this other link]).<br />
<br />
Some other minor modifications can be made to decrease number of non-mandatory writes by applications: deactivate {{Filename|~/.viminfo}} in vi, deactivate less history file ({{Filename|~/.lesshst}}), and so on.<br />
<br />
===Choosing Your Installation Media===<br />
<br />
The Eee PC does not have an optical drive installed on the machine. This means you will need to install Arch Linux through one of the alternative methods:<br />
<br />
# [[Beginners_Guide#USB_stick|USB stick]] '''(Recommended)'''<br />
# External USB CD-ROM drive<br />
# [[PXE|Network (PXE)]]<br />
<br />
==Installing Arch Linux==<br />
<br />
With the release of the 2009.08 installation media, installing Arch Linux on Asus Eee PC model 701 is pretty easy and straightforward since the stock kernel on Arch installation media support all of the 701 hardwares out of the box. <br />
<br />
Therefore, aside from the recommended partition scheme described below, there shouldn't be any other differences between installing Arch Linux on the 701 and any other computer. You should be able to successfully install Arch on the 701 by following instructions on [[Beginners_Guide|Beginners' Guide]] without any problem.<br />
<br />
===Prepare Hard Drive===<br />
<br />
<br />
The most important different between the 701 and other machines is that the 701 use SSD drive instead of normal hard drive. This section advise on how to set up a partition scheme that is best suited to the 701. <br />
<br />
The default Eee PC drive is split up into four partitions (here is [http://forum.eeeuser.com/viewtopic.php?id=1805 some information] about the partitioning): <br />
<br />
* It is easiest to wipe the existing partitions and use one or two partitions for your install. One partition would be just '/', and two partitions would be '/boot' and '/'.<br />
* Choose "NONE" for swap in case your eee has a SSD (see #2 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]])<br />
* Select "ext2" as your filesystem in case your eee has a SSD (see #1 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]]). If your model has a standard HD choose "ext3".<br />
<br />
===Asus Eee PC model 701 repository from toofishes===<br />
<br />
Toofishes created a repository for the 701. The repository contained customized kernel built specifically for the 701 and some additional packages. <br />
<br />
While the stock Arch kernel works very well with the 701, toofishes kernel have the following advantages:<br />
<br />
* Faster boot time &ndash; because most of the modules have been compile into the kernel, no time is wasted waiting for the modules to load<br />
* No need to generate initial ramdisk every time a kernel is upgrade <br />
* Smaller size (around 4MB)<br />
<br />
To use the repository, add:<br />
[eee]<br />
Server = http://code.toofishes.net/packages/eee<br />
to your {{Filename|/etc/pacman.conf}} and then issue:<br />
pacman -Syu<br />
<br />
====Package List====<br />
Currently, toofishes' repository contains the following packages:<br />
<br />
*'''kernel-eee''' &ndash; customized kernel for Asus Eee PC model 701<br />
*'''luvcview''' &ndash; webcam program for testing webcam driver<br />
<br />
====Kernel-eee Installation Instruction====<br />
Simply use pacman to install the package you need. Install the packages with this command:<br />
# pacman -Sy kernel-eee<br />
<br />
Then, add the following to {{Filename|/boot/grub/menu.lst}}; note that no initrd is needed:<br />
# (2) Arch Linux<br />
title Arch Linux Eee kernel<br />
root (hd0,0)<br />
kernel /boot/vmlinuzeee root=/dev/sda1 ro<br />
<br />
Restart and select Arch Linux Eee kernel from the grub boot menu.<br />
<br />
==Getting Everything Working==<br />
<br />
By now, you should have Arch installed. The following is the guide on how to get the rest of your system working.<br />
<br />
===X===<br />
<br />
Install X by follow instructions on the [[Beginners_Guide#Step_2:_Install_X|Beginners' Guide]], then install the Intel graphics driver:<br />
# pacman -Sy xf86-video-intel<br />
<br />
You may also wish to install the Synaptics drivers for the touchpad (not needed for Eee PC 900):<br />
# pacman -Sy xf86-input-synaptics<br />
<br />
With the latest version of X from extra repository, X should work on the 701 '''without any need for xorg.conf'''. However, if for some reason you wish to use an xorg.conf file, you can use an old [[Example_Xorg_configuration_file_for_Asus_Eee_PC_701|example Xorg configuration file for Asus Eee PC model 701]] as a template or automatically generate a new one by running the following command:<br />
<br />
# Xorg -configure<br />
<br />
Consult [[Xorg_input_hotplugging|Xorg Input Hotplugging]] for more information on how to config input devices using HAL.<br />
<br />
The synaptics stuff can be removed if you have a EEE PC 900. The {{Codeline|Option "AutoAddDevices"}} line is important if you need a non-default XkbLayout, because if you don't have it, xorg will find 3 keyboards (at least with the 900 model).<br />
The Modeline has obviously to be removed or modified if you dont have a model with this resolution.<br />
<br />
===Sound, Webcam & Microphone===<br />
<br />
====Sound====<br />
<br />
Some people have reported sound working right out of the box with no troubles. However, others might need to add to {{Filename|/etc/modprobe.conf}} the following line for the EeePC 701<br />
options snd-hda-intel model=3stack-dig<br />
or the following one for the EeePC 900 model<br />
options snd-hda-intel model=auto<br />
<br />
If your internal microphone doesn't work, you probably have to turn the capture feature on. Simply fire up alsamixer, find your Capture control, and press spacebar to enable it.<br />
<br />
====Webcam====<br />
<br />
You can enable your built-in webcam by adding the following line to your {{Filename|/etc/rc.local}} file.<br />
<br />
echo 1 > /sys/devices/platform/eeepc/camera<br />
<br />
If you want the webcam application that the default Xandos installation uses, install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14469 ucview from the AUR].<br />
<br />
The webcam also works fine with the latest version of Skype.<br />
<br />
If you already have mplayer installed you can launch:<br />
$ mplayer -fps 15 tv://<br />
<br />
I have yet to get it working with vlc or any other software such as xawtv. If you know how, please update this.<br />
<br />
*'''NOTE:''' For anyone who has accidentally disabled Auto Exposure for their webcam in luvcview (making the image dark), and can't enable it again, do the following:<br />
<br />
Install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14468 libwebcam from the AUR].<br />
<br />
Issue the following command:<br />
$ uvcdynctrl --set "Exposure, Auto" 4<br />
<br />
{{Note | Be sure the "OS Installation" option is set to "finished" in the BIOS' "Advanced" tab or your camera may not work in some applications (like Skype).}}<br />
<br />
{{Note | Make sure you are a member of the video group edit /etc/group and add your username to video}}<br />
<br />
====Microphone====<br />
<br />
Solution for problems with the internal microphone.<br />
<br />
1. First of all set in alsamixer "Input Source" to "i-Mic"<br />
<br />
2. Increase "Capture" and "i-Mic Boost" to your needs<br />
<br />
3. Edit {{Filename|/etc/asound.state}} the following, change the 2 "false" to "true" like showing:<br />
....snap.....<br />
control.11 {<br />
comment.access 'read write'<br />
comment.type BOOLEAN<br />
comment.count 2<br />
iface MIXER<br />
name 'Capture Switch'<br />
value.0 true<br />
value.1 true<br />
}<br />
....snap....<br />
<br />
4. After editing run following as root<br />
# alsactl restore<br />
<br />
5. Now your internal microphone should be working.<br />
<br />
===Getting Hot Keys, Graphic Indicators and Shutdown with the Power Button Working===<br />
<br />
If you want to have working hot keys (wifi, brightness, volume etc), an OSD, and be able to assign actions to things like the powerbutton and closing the lid, then you should install '''ighea's acpi-eee''' package.<br />
<br />
==== ighea's acpi-eee ====<br />
<br />
Get the latest package from [http://kapsi.fi/ighea/eee/acpi-eee/ here].<br />
<br />
The package can be easily installed with:<br />
# pacman -U acpi-eee-10.0-1-i686.pkg.tar.gz<br />
<br />
See messages during installation for more details and don't forget to edit {{Filename|/etc/acpi/eee.conf}} to suit your tastes.<br />
<br />
*For those who use the wireless on/off acpi command; the {{Codeline|NETWORK_UP_COMMAND&#61;""}} setting in {{Filename|/etc/acpi/eee.conf}}, when applicable, should at least release the network. For example, using netcfg2, {{Codeline|NETWORK_UP_COMMAND&#61;"netcfg2 -a"}} will release the connections from before disabling wireless, allowing new ones to be made without netcfg thinking that it's already connected. It is also possible to reconnect to your previous network, however, the network tool you use needs to have a somewhat lengthy timeout as it takes 15-20 seconds for your wireless device to reappear. <br />
<br />
{{Note | Make sure '''asusosd''' is enabled on startup if you want to have the Graphic Indicators from Xandros. To run asusosd simply type {{Codeline|asusosd &}} at a command prompt.}}<br />
<br />
==Additional Tips & Tweaks==<br />
<br />
===Tweaking kernel-eee===<br />
<br />
Toofishes' kernel, also known as kernel-eee, can be recompiled to include custom features. You can download toofishes' kernel PKGBUILD and all the nesseary files from his gitweb by installing the git package and using the following command:<br />
<br />
$ git clone git://code.toofishes.net/dan/eee.git<br />
<br />
or if you are behind a proxy and can't use the git protocol:<br />
<br />
$ git clone http://code.toofishes.net/git/dan/eee.git<br />
<br />
There are two ways to tweak the kernel. The first is simply to edit the {{Filename|kernelconfig}} file with your favorite editor and the second is to insert a {{Codeline|make menuconfig}} line into the PKGBUILD before the kernel's compilation.<br />
<br />
===Using Wine with toofishes' kernel===<br />
<br />
Normally, Wine won't work with toofishes' kernel because it is compiled with VMSPLIT_2G_OPT option. In order to use Wine with toofishes' kernel, you have to recompile his kernel with VMSPLIT_3G option.<br />
<br />
Download the kernel PKGBUILD and all the necessary files from toofishes' gitweb using the above instructions, then change the following lines in the {{Filename|kernelconfig}} file from this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 # CONFIG_VMSPLIT_3G is not set<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 CONFIG_VMSPLIT_2G_OPT=y<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
to this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 CONFIG_VMSPLIT_3G=y<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 # CONFIG_VMSPLIT_2G_OPT is not set<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
<br />
Compile and install the kernel and Wine should now work.<br />
<br />
===Power down with the power button===<br />
<br />
{{Note | If you are using ighea's acpi-eee or dkite's acpid_eee package then you should already be able to shutdown by pressing the power button and should not need to do this.}}<br />
<br />
The two alternatives here are described in [[Allow users to shutdown]].<br />
<br />
If you don't already or don't plan to use sudo, it may be simpler to use the setuid /sbin/halt method, otherwise using sudo is preferred.<br />
<br />
Below are all the steps required for the sudo method. If you want to use the setuid method, read the article linked above and perform the 'power' file step here, while omitting the 'sudo' in it.<br />
<br />
# pacman -S sudo<br />
<br />
As root, do the following:<br />
# visudo<br />
<br />
Add the following line to the file:<br />
USER HOST = NOPASSWD: /sbin/poweroff<br />
<br />
Where {{Codeline|USER}} is the user you want to be able to power down with and {{Codeline|HOST}} is your hostname (from {{Filename|/etc/rc.conf}}).<br />
<br />
Now, create a file called {{Filename|/etc/acpi/events/power}}, containing:<br />
# /etc/acpi/events/power<br />
# This is called when the user presses the power button<br />
<br />
event=button/power (PWR.||PBTN)<br />
action=sudo /sbin/poweroff<br />
<br />
Make sure that you execute:<br />
# /etc/rc.d/acpid start<br />
<br />
And/or add acpid to the daemons list in {{Filename|/etc/rc.conf}}:<br />
DAEMONS=(hal, acpid ...)<br />
<br />
===Use cpufreq for power saving===<br />
<br />
{{Note | toofishes dropped CPU scaling from his latest kernel builds, due to the fact, confirmed by other users, that there were no effective power savings with p4-clockmod's module, and it introduced "unacceptable latency", even with relatively low percentage up thresholds.}}<br />
<br />
Install cpufrequtitls:<br />
# pacman -S cpufrequtils<br />
<br />
For scaling down the processor you have to load the p4_clockmod module. Insert it into your {{Filename|/etc/rc.conf}} MODULES array for loading it at startup. <br />
MODULES=(... p4_clockmod ...)<br />
<br />
Add 'cpufreq' to the DAEMONS array in {{Filename|/etc/rc.conf}} to have it start on startup.<br />
DAEMONS=(... cpufreq ...)<br />
<br />
Add the following into {{Filename|/etc/conf.d/cpufreq}}:<br />
governor="ondemand"<br />
min_freq="113MHz"<br />
max_freq="900MHz"<br />
<br />
With enabled cpufreq it scales the processor between 113MHz up to max. frequency. That should save a lot on battery power. The stated 900MHz will be never reached by the eeePC, the p4_clockmod reports a wrong frequency here. But scaling works, you can feel it in the performance of eeePC that he slow down the processor.<br />
<br />
{{Note | The merits of p4-clockmod are debatable. Particularly on the EEEPC 701, battery time isn't extended due to its usage, and some users have even reported less battery duration. More hints to the reasons why can be read in [http://www.codemonkey.org.uk/2009/01/18/forthcoming-p4clockmod/ this] fine blog entry.}}<br />
<br />
===More responsive system with ondemand governor===<br />
The default up_threshold (where it will bump to a faster speed) for the CPU governor is 80, which means it will increase the CPU speed when utilization is above 80%. This can make X applications have a bit of lag. <br />
<br />
Try changing this value:<br />
$ sudo bash -c "echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold"<br />
<br />
With 40 it still leaves the majority of CPU cycles at the lowest available clock speed but increases responsiveness. You can add this line to one of your startup scripts (such as {{Filename|/etc/rc.local}}) if you wish to keep it, for example:<br />
<br />
#!/bin/bash<br />
#<br />
# /etc/rc.local: Local multi-user startup script.<br />
#<br />
<br />
echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold<br />
<br />
Also, following line is also reported to help makes system more responsive. You can use it by adding it to your {{Filename|/etc/rc.local}}:<br />
echo 2000000 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate<br />
<br />
===Speeding up udev for faster boot===<br />
*[[Speedup udev]]<br />
*http://dev.laptop.org/ticket/4349<br />
*[http://www.eeesale.com/Asus-Eee-PC-overclock-Benchmarks.htm Speed up the Eee PC]<br />
<br />
You can also disable the autoload by editing your {{Filename|[[rc.conf]]}}:<br />
...<br />
MOD_AUTOLOAD="no"<br />
...<br />
MODULES=(pciehp ath5k)<br />
<br />
===Update your BIOS without Xandros===<br />
{{Warning | You can break your system, do not update if you are not sure of what you are doing!}}<br />
<br />
First, you need to download the ''.rom'' file.<br />
*[http://update.eeepc.asus.com/bios/ Asus' official BIOS]<br />
*[http://forum.eeeuser.com/viewtopic.php?id=3485 EeeUser's topic]<br />
<br />
You also need an USB stick formatted in FAT32. To format the USBStick, use the cfdisk tool:<br />
# cfdisk /dev/sdc # could be something else than "c"<br />
<br />
Choose [delete], [type]: "fat32" (code 0B), [write] and then exit with [quit].<br />
<br />
NOTE to EEE PC 900 owners and possibly others: Using this method will require a flash drive formatted with a '''FAT16''' file-system. If the BIOS update process hangs up at "Reading file 900.ROM" for more than a few minutes then it should be safe to power down your EEE PC and reformat your flashdrive's file-system to the correct one. You can force FAT16 creation with the following command:<br />
# mkdosfs -F 16 /dev/device-path<br />
<br />
Now just copy the ''.rom'' on the USBStick :<br />
$ cp /somewhere/blabla/.../thecurrentnameofthefile.ROM /path/to/mounted/usb_stick/701.rom<br />
The name of the copy '''must''' be xxxx.rom where xxxx is the model of your eee PC. (i.e. 900 users it's 900.rom)<br />
<br />
Next step, reboot the eeepc with the USB stick pluged-in, and press Alt+F2. It will launch the built-in tool. Everything should be Ok, you can make a coffee during the update. When it asks you to push the power-button it has finished.<br />
<br />
At the next boot, you'll be invited to configure the BIOS. Check if the everything is enabled (my webcam and wireless were disabled after the update) and if it displays the good version in the main screen. It's done!<br />
<br />
=== More usable font sizes ===<br />
<br />
====The_glu's method====<br />
<br />
I found an easy solution that works on a 901:<br />
<br />
Edit {{Filename|/etc/X11/xinit/xserverrc}} and add "-dpi 134":<br />
exec /usr/bin/X -nolisten tcp -dpi 134<br />
<br />
Restart X and fonts should have the correct size. Notice it's won't works if you have Xft*dpi: in your {{Filename|.XDefaults}}.<br />
<br />
You don't need to edit your config file to set a smaller font size, I you did you should set font-size to 10 or you will have to small fonts...<br />
<br />
==== Old method ====<br />
<br />
On a default installation with Xfce 4 my font sizes were too big, here is what I did to sort them out.<br />
<br />
First, I set the DPI by adding the following to {{Filename|~/.Xdefaults}}:<br />
Xft*dpi: 134<br />
<br />
This then caused the fonts to be even bigger, so I set them all to be font-size 6 by adding the following into {{Filename|~/.gtkrc-2.0}} (note that this will be overwritten if you use any tools to change GTK settings):<br />
style "user-font"<br />
{<br />
font_name="Bitstream Vera Sans 6"<br />
}<br />
widget_class "*" style "user-font"<br />
<br />
To do the same with KDE fonts (without KDE installed) you have to add the following to {{Filename|~/.kde/share/config/kdeglobals}}:<br />
[General]<br />
StandardFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
activeFont=Bitstream Vera Sans,6,-1,5,75,0,0,0,0,0<br />
fixed=Bitstream Vera Sans Mono,6,-1,5,50,0,0,0,0,0<br />
font=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
menuFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
taskbarFont=Bitstream Vera Sans,6,-1,5,50,1,0,0,0,0<br />
toolBarFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
<br />
To make your fonts even prettier enable the [[Fonts#Fonts_with_LCD_filter_enabled|LCD Fonts]].<br />
<br />
==== Alternative Method ====<br />
<br />
For me it worked far better to open the gnome appearance control panel, go to the fonts tab, click defaults, and change the resolution to be 96 dpi. Changing .Xdefaults doesnt work when running gnome, as gnome-settings-daemon overrides it. You can then leave all font sizes at their default, and things should look good. Simply changing the font sizes and leaving the DPI at its technically correct value (~134) gave me weird layout problems in some apps, and oddly large fonts in others.<br />
<br />
==Known problems and their solutions==<br />
<br />
===Wireless doesn't work, even after installing custom Madwifi module===<br />
<br />
I found that Arch tried to use the ath5k module for wireless, and that meant it took control of the card rather than ath_pci (the module I had compiled and installed). I got a Madwifi status 3 message in dmesg when this happened.<br />
<br />
The solution is to blacklist the ath5k module in {{Filename|/etc/rc.conf}}:<br />
<br />
MODULES = ( ... !ath5k ... )<br />
<br />
===Laggy or Unresponsive ACPI Events===<br />
<br />
The latest kernel (2.6.26) introduces new problems with Eee's ACPI events handling. Basically, ACPI events become very laggy and after some time ACPI get disabled after a heavy usage (e.g. changing volume, brightness). This problem affects both stock kernel and toofishes' kernel.<br />
<br />
It appears that the solution is to apply this [http://bugzilla.kernel.org/attachment.cgi?id=16862 patch] ([http://bugzilla.kernel.org/show_bug.cgi?id=10724 original bug report]) to the kernel. <br />
<br />
{{Note | The latest toofishes' kernel, version 2.6.26-1, now includes the patch, but you can still use ighea's one for the extras features listed below.}}<br />
<br />
Until toofishes update his kernel to include the patch, you can use ighea's slightly modified toofishes' kernel that included the above patch, as well as other modifications:<br />
<br />
*Support for Wine <br />
*uvesafb is built as module <br />
*Use [http://bbs.archlinux.org/viewtopic.php?pid=393860#p393860 new eeepc-laptop driver] (which also handles fan-control) instead of older acus_acpi or asus-laptop -drivers.<br />
<br />
You can get the modified kernel, as well as the associative packages, from [http://koti.kapsi.fi/~ighea/eee/kernel-eee/ here].<br />
<br />
After you have downloaded the packages, Install them using this command:<br />
# pacman -U kernel-eee-2.6.26-1-i686.pkg.tar.gz madwifi-eee-svn-3752-1-i686.pkg.tar.gz <br />
<br />
You might also want to use IgnorePkg-line in {{Filename|/etc/pacman.conf}} to hold packages from being accidentally updated.<br />
IgnorePkg = kernel-eee madwifi-eee-svn<br />
<br />
Also don't forget to upgrade ighea's acpi-eee package to version 9.6.<br />
<br />
===Shutdown Problem===<br />
<br />
If your Eee won't shutdown properly (i.e. the power indicator LED is on but the LCD screen is off), then add the following lines to your {{Filename|/etc/rc.local.shutdown}} file.<br />
<pre><br />
#! /bin/bash<br />
#<br />
# /etc/rc.local.shutdown: Local shutdown script.<br />
#<br />
<br />
# Comment or uncomment the following two lines according to your system configuration.<br />
<br />
/etc/rc.d/mpd stop # If you're using mpd, then you have to stop its daemon first.<br />
<br />
/etc/rc.d/alsa stop # If you're using ALSA daemon, then you also have to stop it.<br />
<br />
# The following line is Eee specific fix, you always need to have this line in /etc/rc.local.shutdown.<br />
<br />
echo -n "0000:00:1b.0" > /sys/bus/pci/drivers/HDA\ Intel/unbind<br />
</pre><br />
<br />
The above solution should fix the shutdown problem in most cases. But if for some reason the problem still persists, the module may not be able to be unloaded until after all services have finished. Do the above, then in {{Filename|/etc/rc.shutdown}} move <br />
<br />
if [ -x /etc/rc.local.shutdown ]; then<br />
/etc/rc.local.shutdown<br />
fi<br />
<br />
from where it was to directly above the line <br />
<br />
# Terminate all processes<br />
<br />
this will cause the {{Filename|rc.local.shutdown}} script to run after services have been exited. This fixed all issues for the person editing this note.<br />
<br />
===Unclean unmount during shutdown when having home directory mounted on SD card===<br />
<br />
If you experienced unclean unmount during shutdown when having your home directory on SD card, then add the following 3 lines to "Write to wtmp file before unmounting" section of your {{Filename|/etc/rc.shutdown}} file:<br />
<pre><br />
...<br />
<br />
stat_busy "Unmounting Filesystems"<br />
/bin/umount -a -t noramfs,notmpfs,nosysfs,noproc<br />
<br />
# Add these 3 lines<br />
sync;sync;sync;<br />
eject /dev/sdb # Or whichever is your SD-card's device name. /dev/disk/by-uuid/ followed by the UUID identifier is preferable though.<br />
sleep 3<br />
# End of hack<br />
<br />
stat_done<br />
<br />
...<br />
</pre><br />
<br />
===Booting from card without initrd===<br />
<br />
Let's say you decided to install Arch Linux on a card and compiled your own kernel (or used the kernel26eee kernel) without initrd. Card reader on EeePC is connected as an USB device. Unfortunately, USB storage devices are detected with a delay, so we must tell the kernel to wait until this device becomes available. You do this with "rootwait" option passed to kernel at boot time.<br />
<br />
===Sleeping and waking system on a card===<br />
<br />
If you have Arch Linux on a card, waking up from sleeping state will most likely fail. The only solution is to enable the CONFIG_USB_PERSIST option in kernel. The kernel26eee package should have this option enabled.<br />
<br />
The command to do this is:<br />
echo 1 >/sys/bus/usb/devices/.../power/persist<br />
<br />
Replace the {{Codeline|"..."}} with the device like 1-3 or 1-5 where the first number is the bus and the second is the device <br />
<br />
Each device that is connected to your computer gets an entry in the sysfs "system file system" it is a virtual file system like proc<br />
<br />
More info:<br />
*http://www.mjmwired.net/kernel/Documentation/usb/persist.txt<br />
*http://forum.eeeuser.com/viewtopic.php?id=22712<br />
<br />
===Display doesn't wake up properly===<br />
<br />
If you encounter black display (but apparently working system) after suspend/resume, consider using the "uswsusp" package (available in the official repositories) and correcting suspend2ram script in /etc/acpi, where you use this line to make the machine go to sleep:<br />
<br />
/usr/sbin/s2ram --force --vbe_post --vbe_mode<br />
<br />
==Battery Tests==<br />
<br />
The following are reported battery runtimes:<br />
<br />
{| class="wikitable" style="text-align:left"<br />
|+Battery runtimes<br />
|-<br />
! Task !! Series !! Wireless !! Screen Brightness !! FSB Speed !! Fan Speed !! Runtime !! Comments<br />
|-<br />
! DVD Playback<br />
| 701 || On || Max || 85mhz || 100% || 134min || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! DVD Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! AVI Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading AVI from SSD<br />
|-<br />
! IM and Surf<br />
| 701 || On || ~30% || ??? || low || 173min || Normal web-browsing, Flash should reduce runtime a lot !<br />
|-<br />
! Programming and PDF reading<br />
| 1000HA || Off || ~40% || ??? || low || +6hs || Using Evince and SPE under XFCE with camera and USB disabled<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || +4hs || Stock kernel without laptop-mode<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || 5hs || Stock kernel with laptop-mode and other tweaks<br />
|}<br />
<br />
N.B. - Will add battery runtimes as I am able to test them, please contribute.<br />
<br />
-- Grecko.1<br />
<br />
Still tweaking, but disabling everything from BIOS got me about 6 hours and a half. With eee-kernel, I *could* get a little more.<br />
<br />
-- ekuber</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=ASUS_Eee_PC_701&diff=86156ASUS Eee PC 7012009-12-03T12:12:02Z<p>Zodmaner: /* Installing Arch Linux */</p>
<hr />
<div>{{stub}}<br />
[[Category:Getting and installing Arch (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|Русский|Инсталляция Arch Linux на Asus EEE PC}}<br />
{{i18n_links_end}}<br />
<br />
Most of this information is from the [http://bbs.archlinux.org/viewtopic.php?pid=297632 Arch Forum]. You can also find a lot of helpful information from the [http://forum.eeeuser.com/ EEEUser Forum]. There is also a nice Arch Linux installation guide on the [http://wiki.eeeuser.com/installingarchlinux EeeUser Wiki].<br />
<br />
Users of 901/1000 series Eee PCs should follow the [[Asus Eee PC 901|work in progress guide]].<br />
User of S101 could also check [[Asus Eee PC S101|work in progress guide]]<br />
<br />
==Before You Begin==<br />
<br />
===Avoiding Pitfalls===<br />
<br />
The install is pretty normal, except that you'll need to [http://forum.eeeuser.com/viewtopic.php?id=890 avoid the pitfalls] of our alternative Linux install:<br />
<br />
# Never choose to use a journaling file system on the SSD partitions<br />
# Never use a swap partition on the SSD<br />
# Edit your new installation fstab to mount the SSD partitions "noatime"<br />
# Never log messages or error log to the SSD<br />
<br />
The rules ensure that we won't reach the maximum limit of writes on our SSD faster than we should, although this is being contested (see [http://wiki.eeeuser.com/ssd_write_limit this link] and [http://www.storagesearch.com/ssdmyths-endurance.html this other link]).<br />
<br />
Some other minor modifications can be made to decrease number of non-mandatory writes by applications: deactivate {{Filename|~/.viminfo}} in vi, deactivate less history file ({{Filename|~/.lesshst}}), and so on.<br />
<br />
===Choosing Your Installation Media===<br />
<br />
The Eee PC does not have an optical drive installed on the machine. This means you will need to install Arch Linux through one of the alternative methods:<br />
<br />
# [[Beginners_Guide#USB_stick|USB stick]] '''(Recommended)'''<br />
# External USB CD-ROM drive<br />
# [[PXE|Network (PXE)]]<br />
<br />
==Installing Arch Linux==<br />
<br />
With the release of the 2009.08 installation media, installing Arch Linux on Asus Eee PC model 701 is pretty easy and straightforward since the stock kernel on Arch installation media support all of the 701 hardwares out of the box. <br />
<br />
Therefore, aside from the recommended partition scheme described below, there shouldn't be any other differences between installing Arch Linux on the 701 and any other computer. You should be able to successfully install Arch on the 701 by following instructions on [[Beginners_Guide|Beginners' Guide]] without any problem.<br />
<br />
===Prepare Hard Drive===<br />
<br />
<br />
The most important different between the 701 and other machines is that the 701 use SSD drive instead of normal hard drive. This section advise on how to set up a partition scheme that is best suited to the 701. <br />
<br />
The default Eee PC drive is split up into four partitions (here is [http://forum.eeeuser.com/viewtopic.php?id=1805 some information] about the partitioning): <br />
<br />
* It is easiest to wipe the existing partitions and use one or two partitions for your install. One partition would be just '/', and two partitions would be '/boot' and '/'.<br />
* Choose "NONE" for swap in case your eee has a SSD (see #2 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]])<br />
* Select "ext2" as your filesystem in case your eee has a SSD (see #1 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]]). If your model has a standard HD choose "ext3".<br />
<br />
===Asus Eee PC model 701 repository from toofishes===<br />
<br />
Toofishes created a repository for the 701. The repository contained customized kernel built specifically for the 701 and some additional packages. <br />
<br />
While the stock Arch kernel works very well with the 701, toofishes kernel have the following advantages:<br />
<br />
* Faster boot time &ndash; because most of the modules have been compile into the kernel, no time is wasted waiting for the modules to load<br />
* No need to generate initial ramdisk every time a kernel is upgrade <br />
* Smaller size (around 4MB)<br />
<br />
To use the repository, add:<br />
[eee]<br />
Server = http://code.toofishes.net/packages/eee<br />
to your {{Filename|/etc/pacman.conf}} and then issue:<br />
pacman -Syu<br />
<br />
====Package List====<br />
Currently, toofishes' repository contains the following packages:<br />
<br />
*'''kernel-eee''' &ndash; customized kernel for Asus Eee PC model 701<br />
*'''luvcview''' &ndash; webcam program for testing webcam driver<br />
<br />
====Kernel-eee Installation Instruction====<br />
Simply use pacman to install the package you need. Install the packages with this command:<br />
# pacman -Sy kernel-eee<br />
<br />
Then, add the following to {{Filename|/boot/grub/menu.lst}}; note that no initrd is needed:<br />
# (2) Arch Linux<br />
title Arch Linux Eee kernel<br />
root (hd0,0)<br />
kernel /boot/vmlinuzeee root=/dev/sda1 ro<br />
<br />
Restart and select Arch Linux Eee kernel from the grub boot menu.<br />
<br />
==Getting Everything Working==<br />
<br />
By now, you should have Arch installed. The following is the guide on how to get the rest of your system working.<br />
<br />
===X===<br />
<br />
Install X by follow instructions on the [[Beginners_Guide#Step_2:_Install_X|Beginners' Guide]], then install the Intel graphics driver:<br />
# pacman -Sy xf86-video-intel<br />
<br />
You may also wish to install the Synaptics drivers for the touchpad (not needed for Eee PC 900):<br />
# pacman -Sy xf86-input-synaptics<br />
<br />
With the latest version of X from extra repository, X should work on the 701 '''without any need for xorg.conf'''. However, if for some reason you wish to use an xorg.conf file, you can use an old [[Example_Xorg_configuration_file_for_Asus_Eee_PC_701|example Xorg configuration file for Asus Eee PC model 701]] as a template or automatically generate a new one by running the following command:<br />
<br />
# Xorg -configure<br />
<br />
Consult [[Xorg_input_hotplugging|Xorg Input Hotplugging]] for more information on how to config input devices using HAL.<br />
<br />
The synaptics stuff can be removed if you have a EEE PC 900. The {{Codeline|Option "AutoAddDevices"}} line is important if you need a non-default XkbLayout, because if you don't have it, xorg will find 3 keyboards (at least with the 900 model).<br />
The Modeline has obviously to be removed or modified if you dont have a model with this resolution.<br />
<br />
===Sound, Webcam & Microphone===<br />
<br />
====Sound====<br />
<br />
Some people have reported sound working right out of the box with no troubles. However, others might need to add to {{Filename|/etc/modprobe.conf}} the following line for the EeePC 701<br />
options snd-hda-intel model=3stack-dig<br />
or the following one for the EeePC 900 model<br />
options snd-hda-intel model=auto<br />
<br />
If your internal microphone doesn't work, you probably have to turn the capture feature on. Simply fire up alsamixer, find your Capture control, and press spacebar to enable it.<br />
<br />
====Webcam====<br />
<br />
You can enable your built-in webcam by adding the following line to your {{Filename|/etc/rc.local}} file.<br />
<br />
echo 1 > /sys/devices/platform/eeepc/camera<br />
<br />
If you want the webcam application that the default Xandos installation uses, install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14469 ucview from the AUR].<br />
<br />
The webcam also works fine with the latest version of Skype.<br />
<br />
If you already have mplayer installed you can launch:<br />
$ mplayer -fps 15 tv://<br />
<br />
I have yet to get it working with vlc or any other software such as xawtv. If you know how, please update this.<br />
<br />
*'''NOTE:''' For anyone who has accidentally disabled Auto Exposure for their webcam in luvcview (making the image dark), and can't enable it again, do the following:<br />
<br />
Install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14468 libwebcam from the AUR].<br />
<br />
Issue the following command:<br />
$ uvcdynctrl --set "Exposure, Auto" 4<br />
<br />
{{Note | Be sure the "OS Installation" option is set to "finished" in the BIOS' "Advanced" tab or your camera may not work in some applications (like Skype).}}<br />
<br />
{{Note | Make sure you are a member of the video group edit /etc/group and add your username to video}}<br />
<br />
====Microphone====<br />
<br />
Solution for problems with the internal microphone.<br />
<br />
1. First of all set in alsamixer "Input Source" to "i-Mic"<br />
<br />
2. Increase "Capture" and "i-Mic Boost" to your needs<br />
<br />
3. Edit {{Filename|/etc/asound.state}} the following, change the 2 "false" to "true" like showing:<br />
....snap.....<br />
control.11 {<br />
comment.access 'read write'<br />
comment.type BOOLEAN<br />
comment.count 2<br />
iface MIXER<br />
name 'Capture Switch'<br />
value.0 true<br />
value.1 true<br />
}<br />
....snap....<br />
<br />
4. After editing run following as root<br />
# alsactl restore<br />
<br />
5. Now your internal microphone should be working.<br />
<br />
===Getting Hot Keys, Graphic Indicators and Shutdown with the Power Button Working===<br />
<br />
If you want to have working hot keys (wifi, brightness, volume etc), an OSD, and be able to assign actions to things like the powerbutton and closing the lid, then you should install '''ighea's acpi-eee''' package.<br />
<br />
==== ighea's acpi-eee ====<br />
<br />
Get the latest package from [http://kapsi.fi/ighea/eee/acpi-eee/ here].<br />
<br />
The package can be easily installed with:<br />
# pacman -U acpi-eee-10.0-1-i686.pkg.tar.gz<br />
<br />
See messages during installation for more details and don't forget to edit {{Filename|/etc/acpi/eee.conf}} to suit your tastes.<br />
<br />
*For those who use the wireless on/off acpi command; the {{Codeline|NETWORK_UP_COMMAND&#61;""}} setting in {{Filename|/etc/acpi/eee.conf}}, when applicable, should at least release the network. For example, using netcfg2, {{Codeline|NETWORK_UP_COMMAND&#61;"netcfg2 -a"}} will release the connections from before disabling wireless, allowing new ones to be made without netcfg thinking that it's already connected. It is also possible to reconnect to your previous network, however, the network tool you use needs to have a somewhat lengthy timeout as it takes 15-20 seconds for your wireless device to reappear. <br />
<br />
{{Note | Make sure '''asusosd''' is enabled on startup if you want to have the Graphic Indicators from Xandros. To run asusosd simply type {{Codeline|asusosd &}} at a command prompt.}}<br />
<br />
==Additional Tips & Tweaks==<br />
<br />
===Tweaking kernel-eee===<br />
<br />
Toofishes' kernel, also known as kernel-eee, can be recompiled to include custom features. You can download toofishes' kernel PKGBUILD and all the nesseary files from his gitweb by installing the git package and using the following command:<br />
<br />
$ git clone git://code.toofishes.net/dan/eee.git<br />
<br />
or if you are behind a proxy and can't use the git protocol:<br />
<br />
$ git clone http://code.toofishes.net/git/dan/eee.git<br />
<br />
There are two ways to tweak the kernel. The first is simply to edit the {{Filename|kernelconfig}} file with your favorite editor and the second is to insert a {{Codeline|make menuconfig}} line into the PKGBUILD before the kernel's compilation.<br />
<br />
===Using Wine with toofishes' kernel===<br />
<br />
Normally, Wine won't work with toofishes' kernel because it is compiled with VMSPLIT_2G_OPT option. In order to use Wine with toofishes' kernel, you have to recompile his kernel with VMSPLIT_3G option.<br />
<br />
Download the kernel PKGBUILD and all the necessary files from toofishes' gitweb using the above instructions, then change the following lines in the {{Filename|kernelconfig}} file from this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 # CONFIG_VMSPLIT_3G is not set<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 CONFIG_VMSPLIT_2G_OPT=y<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
to this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 CONFIG_VMSPLIT_3G=y<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 # CONFIG_VMSPLIT_2G_OPT is not set<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
<br />
Compile and install the kernel and Wine should now work.<br />
<br />
===Power down with the power button===<br />
<br />
{{Note | If you are using ighea's acpi-eee or dkite's acpid_eee package then you should already be able to shutdown by pressing the power button and should not need to do this.}}<br />
<br />
The two alternatives here are described in [[Allow users to shutdown]].<br />
<br />
If you don't already or don't plan to use sudo, it may be simpler to use the setuid /sbin/halt method, otherwise using sudo is preferred.<br />
<br />
Below are all the steps required for the sudo method. If you want to use the setuid method, read the article linked above and perform the 'power' file step here, while omitting the 'sudo' in it.<br />
<br />
# pacman -S sudo<br />
<br />
As root, do the following:<br />
# visudo<br />
<br />
Add the following line to the file:<br />
USER HOST = NOPASSWD: /sbin/poweroff<br />
<br />
Where {{Codeline|USER}} is the user you want to be able to power down with and {{Codeline|HOST}} is your hostname (from {{Filename|/etc/rc.conf}}).<br />
<br />
Now, create a file called {{Filename|/etc/acpi/events/power}}, containing:<br />
# /etc/acpi/events/power<br />
# This is called when the user presses the power button<br />
<br />
event=button/power (PWR.||PBTN)<br />
action=sudo /sbin/poweroff<br />
<br />
Make sure that you execute:<br />
# /etc/rc.d/acpid start<br />
<br />
And/or add acpid to the daemons list in {{Filename|/etc/rc.conf}}:<br />
DAEMONS=(hal, acpid ...)<br />
<br />
===Use cpufreq for power saving===<br />
<br />
{{Note | toofishes dropped CPU scaling from his latest kernel builds, due to the fact, confirmed by other users, that there were no effective power savings with p4-clockmod's module, and it introduced "unacceptable latency", even with relatively low percentage up thresholds.}}<br />
<br />
Install cpufrequtitls:<br />
# pacman -S cpufrequtils<br />
<br />
For scaling down the processor you have to load the p4_clockmod module. Insert it into your {{Filename|/etc/rc.conf}} MODULES array for loading it at startup. <br />
MODULES=(... p4_clockmod ...)<br />
<br />
Add 'cpufreq' to the DAEMONS array in {{Filename|/etc/rc.conf}} to have it start on startup.<br />
DAEMONS=(... cpufreq ...)<br />
<br />
Add the following into {{Filename|/etc/conf.d/cpufreq}}:<br />
governor="ondemand"<br />
min_freq="113MHz"<br />
max_freq="900MHz"<br />
<br />
With enabled cpufreq it scales the processor between 113MHz up to max. frequency. That should save a lot on battery power. The stated 900MHz will be never reached by the eeePC, the p4_clockmod reports a wrong frequency here. But scaling works, you can feel it in the performance of eeePC that he slow down the processor.<br />
<br />
{{Note | The merits of p4-clockmod are debatable. Particularly on the EEEPC 701, battery time isn't extended due to its usage, and some users have even reported less battery duration. More hints to the reasons why can be read in [http://www.codemonkey.org.uk/2009/01/18/forthcoming-p4clockmod/ this] fine blog entry.}}<br />
<br />
===More responsive system with ondemand governor===<br />
The default up_threshold (where it will bump to a faster speed) for the CPU governor is 80, which means it will increase the CPU speed when utilization is above 80%. This can make X applications have a bit of lag. <br />
<br />
Try changing this value:<br />
$ sudo bash -c "echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold"<br />
<br />
With 40 it still leaves the majority of CPU cycles at the lowest available clock speed but increases responsiveness. You can add this line to one of your startup scripts (such as {{Filename|/etc/rc.local}}) if you wish to keep it, for example:<br />
<br />
#!/bin/bash<br />
#<br />
# /etc/rc.local: Local multi-user startup script.<br />
#<br />
<br />
echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold<br />
<br />
Also, following line is also reported to help makes system more responsive. You can use it by adding it to your {{Filename|/etc/rc.local}}:<br />
echo 2000000 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate<br />
<br />
===Speeding up udev for faster boot===<br />
*[[Speedup udev]]<br />
*http://dev.laptop.org/ticket/4349<br />
*[http://www.eeesale.com/Asus-Eee-PC-overclock-Benchmarks.htm Speed up the Eee PC]<br />
<br />
You can also disable the autoload by editing your {{Filename|[[rc.conf]]}}:<br />
...<br />
MOD_AUTOLOAD="no"<br />
...<br />
MODULES=(pciehp ath5k)<br />
<br />
===Update your BIOS without Xandros===<br />
{{Warning | You can break your system, do not update if you are not sure of what you are doing!}}<br />
<br />
First, you need to download the ''.rom'' file.<br />
*[http://update.eeepc.asus.com/bios/ Asus' official BIOS]<br />
*[http://forum.eeeuser.com/viewtopic.php?id=3485 EeeUser's topic]<br />
<br />
You also need an USB stick formatted in FAT32. To format the USBStick, use the cfdisk tool:<br />
# cfdisk /dev/sdc # could be something else than "c"<br />
<br />
Choose [delete], [type]: "fat32" (code 0B), [write] and then exit with [quit].<br />
<br />
NOTE to EEE PC 900 owners and possibly others: Using this method will require a flash drive formatted with a '''FAT16''' file-system. If the BIOS update process hangs up at "Reading file 900.ROM" for more than a few minutes then it should be safe to power down your EEE PC and reformat your flashdrive's file-system to the correct one. You can force FAT16 creation with the following command:<br />
# mkdosfs -F 16 /dev/device-path<br />
<br />
Now just copy the ''.rom'' on the USBStick :<br />
$ cp /somewhere/blabla/.../thecurrentnameofthefile.ROM /path/to/mounted/usb_stick/701.rom<br />
The name of the copy '''must''' be xxxx.rom where xxxx is the model of your eee PC. (i.e. 900 users it's 900.rom)<br />
<br />
Next step, reboot the eeepc with the USB stick pluged-in, and press Alt+F2. It will launch the built-in tool. Everything should be Ok, you can make a coffee during the update. When it asks you to push the power-button it has finished.<br />
<br />
At the next boot, you'll be invited to configure the BIOS. Check if the everything is enabled (my webcam and wireless were disabled after the update) and if it displays the good version in the main screen. It's done!<br />
<br />
=== More usable font sizes ===<br />
<br />
====The_glu's method====<br />
<br />
I found an easy solution that works on a 901:<br />
<br />
Edit {{Filename|/etc/X11/xinit/xserverrc}} and add "-dpi 134":<br />
exec /usr/bin/X -nolisten tcp -dpi 134<br />
<br />
Restart X and fonts should have the correct size. Notice it's won't works if you have Xft*dpi: in your {{Filename|.XDefaults}}.<br />
<br />
You don't need to edit your config file to set a smaller font size, I you did you should set font-size to 10 or you will have to small fonts...<br />
<br />
==== Old method ====<br />
<br />
On a default installation with Xfce 4 my font sizes were too big, here is what I did to sort them out.<br />
<br />
First, I set the DPI by adding the following to {{Filename|~/.Xdefaults}}:<br />
Xft*dpi: 134<br />
<br />
This then caused the fonts to be even bigger, so I set them all to be font-size 6 by adding the following into {{Filename|~/.gtkrc-2.0}} (note that this will be overwritten if you use any tools to change GTK settings):<br />
style "user-font"<br />
{<br />
font_name="Bitstream Vera Sans 6"<br />
}<br />
widget_class "*" style "user-font"<br />
<br />
To do the same with KDE fonts (without KDE installed) you have to add the following to {{Filename|~/.kde/share/config/kdeglobals}}:<br />
[General]<br />
StandardFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
activeFont=Bitstream Vera Sans,6,-1,5,75,0,0,0,0,0<br />
fixed=Bitstream Vera Sans Mono,6,-1,5,50,0,0,0,0,0<br />
font=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
menuFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
taskbarFont=Bitstream Vera Sans,6,-1,5,50,1,0,0,0,0<br />
toolBarFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
<br />
To make your fonts even prettier enable the [[Fonts#Fonts_with_LCD_filter_enabled|LCD Fonts]].<br />
<br />
==== Alternative Method ====<br />
<br />
For me it worked far better to open the gnome appearance control panel, go to the fonts tab, click defaults, and change the resolution to be 96 dpi. Changing .Xdefaults doesnt work when running gnome, as gnome-settings-daemon overrides it. You can then leave all font sizes at their default, and things should look good. Simply changing the font sizes and leaving the DPI at its technically correct value (~134) gave me weird layout problems in some apps, and oddly large fonts in others.<br />
<br />
==Known problems and their solutions==<br />
<br />
===Wireless doesn't work, even after installing custom Madwifi module===<br />
<br />
I found that Arch tried to use the ath5k module for wireless, and that meant it took control of the card rather than ath_pci (the module I had compiled and installed). I got a Madwifi status 3 message in dmesg when this happened.<br />
<br />
The solution is to blacklist the ath5k module in {{Filename|/etc/rc.conf}}:<br />
<br />
MODULES = ( ... !ath5k ... )<br />
<br />
===Laggy or Unresponsive ACPI Events===<br />
<br />
The latest kernel (2.6.26) introduces new problems with Eee's ACPI events handling. Basically, ACPI events become very laggy and after some time ACPI get disabled after a heavy usage (e.g. changing volume, brightness). This problem affects both stock kernel and toofishes' kernel.<br />
<br />
It appears that the solution is to apply this [http://bugzilla.kernel.org/attachment.cgi?id=16862 patch] ([http://bugzilla.kernel.org/show_bug.cgi?id=10724 original bug report]) to the kernel. <br />
<br />
{{Note | The latest toofishes' kernel, version 2.6.26-1, now includes the patch, but you can still use ighea's one for the extras features listed below.}}<br />
<br />
Until toofishes update his kernel to include the patch, you can use ighea's slightly modified toofishes' kernel that included the above patch, as well as other modifications:<br />
<br />
*Support for Wine <br />
*uvesafb is built as module <br />
*Use [http://bbs.archlinux.org/viewtopic.php?pid=393860#p393860 new eeepc-laptop driver] (which also handles fan-control) instead of older acus_acpi or asus-laptop -drivers.<br />
<br />
You can get the modified kernel, as well as the associative packages, from [http://koti.kapsi.fi/~ighea/eee/kernel-eee/ here].<br />
<br />
After you have downloaded the packages, Install them using this command:<br />
# pacman -U kernel-eee-2.6.26-1-i686.pkg.tar.gz madwifi-eee-svn-3752-1-i686.pkg.tar.gz <br />
<br />
You might also want to use IgnorePkg-line in {{Filename|/etc/pacman.conf}} to hold packages from being accidentally updated.<br />
IgnorePkg = kernel-eee madwifi-eee-svn<br />
<br />
Also don't forget to upgrade ighea's acpi-eee package to version 9.6.<br />
<br />
===Shutdown Problem===<br />
<br />
If your Eee won't shutdown properly (i.e. the power indicator LED is on but the LCD screen is off), then add the following lines to your {{Filename|/etc/rc.local.shutdown}} file.<br />
<pre><br />
#! /bin/bash<br />
#<br />
# /etc/rc.local.shutdown: Local shutdown script.<br />
#<br />
<br />
# Comment or uncomment the following two lines according to your system configuration.<br />
<br />
/etc/rc.d/mpd stop # If you're using mpd, then you have to stop its daemon first.<br />
<br />
/etc/rc.d/alsa stop # If you're using ALSA daemon, then you also have to stop it.<br />
<br />
# The following line is Eee specific fix, you always need to have this line in /etc/rc.local.shutdown.<br />
<br />
echo -n "0000:00:1b.0" > /sys/bus/pci/drivers/HDA\ Intel/unbind<br />
</pre><br />
<br />
The above solution should fix the shutdown problem in most cases. But if for some reason the problem still persists, the module may not be able to be unloaded until after all services have finished. Do the above, then in {{Filename|/etc/rc.shutdown}} move <br />
<br />
if [ -x /etc/rc.local.shutdown ]; then<br />
/etc/rc.local.shutdown<br />
fi<br />
<br />
from where it was to directly above the line <br />
<br />
# Terminate all processes<br />
<br />
this will cause the {{Filename|rc.local.shutdown}} script to run after services have been exited. This fixed all issues for the person editing this note.<br />
<br />
===Unclean unmount during shutdown when having home directory mounted on SD card===<br />
<br />
If you experienced unclean unmount during shutdown when having your home directory on SD card, then add the following 3 lines to "Write to wtmp file before unmounting" section of your {{Filename|/etc/rc.shutdown}} file:<br />
<pre><br />
...<br />
<br />
stat_busy "Unmounting Filesystems"<br />
/bin/umount -a -t noramfs,notmpfs,nosysfs,noproc<br />
<br />
# Add these 3 lines<br />
sync;sync;sync;<br />
eject /dev/sdb # Or whichever is your SD-card's device name. /dev/disk/by-uuid/ followed by the UUID identifier is preferable though.<br />
sleep 3<br />
# End of hack<br />
<br />
stat_done<br />
<br />
...<br />
</pre><br />
<br />
===Booting from card without initrd===<br />
<br />
Let's say you decided to install Arch Linux on a card and compiled your own kernel (or used the kernel26eee kernel) without initrd. Card reader on EeePC is connected as an USB device. Unfortunately, USB storage devices are detected with a delay, so we must tell the kernel to wait until this device becomes available. You do this with "rootwait" option passed to kernel at boot time.<br />
<br />
===Sleeping and waking system on a card===<br />
<br />
If you have Arch Linux on a card, waking up from sleeping state will most likely fail. The only solution is to enable the CONFIG_USB_PERSIST option in kernel. The kernel26eee package should have this option enabled.<br />
<br />
The command to do this is:<br />
echo 1 >/sys/bus/usb/devices/.../power/persist<br />
<br />
Replace the {{Codeline|"..."}} with the device like 1-3 or 1-5 where the first number is the bus and the second is the device <br />
<br />
Each device that is connected to your computer gets an entry in the sysfs "system file system" it is a virtual file system like proc<br />
<br />
More info:<br />
*http://www.mjmwired.net/kernel/Documentation/usb/persist.txt<br />
*http://forum.eeeuser.com/viewtopic.php?id=22712<br />
<br />
===Display doesn't wake up properly===<br />
<br />
If you encounter black display (but apparently working system) after suspend/resume, consider using the "uswsusp" package (available in the official repositories) and correcting suspend2ram script in /etc/acpi, where you use this line to make the machine go to sleep:<br />
<br />
/usr/sbin/s2ram --force --vbe_post --vbe_mode<br />
<br />
==Battery Tests==<br />
<br />
The following are reported battery runtimes:<br />
<br />
{| class="wikitable" style="text-align:left"<br />
|+Battery runtimes<br />
|-<br />
! Task !! Series !! Wireless !! Screen Brightness !! FSB Speed !! Fan Speed !! Runtime !! Comments<br />
|-<br />
! DVD Playback<br />
| 701 || On || Max || 85mhz || 100% || 134min || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! DVD Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! AVI Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading AVI from SSD<br />
|-<br />
! IM and Surf<br />
| 701 || On || ~30% || ??? || low || 173min || Normal web-browsing, Flash should reduce runtime a lot !<br />
|-<br />
! Programming and PDF reading<br />
| 1000HA || Off || ~40% || ??? || low || +6hs || Using Evince and SPE under XFCE with camera and USB disabled<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || +4hs || Stock kernel without laptop-mode<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || 5hs || Stock kernel with laptop-mode and other tweaks<br />
|}<br />
<br />
N.B. - Will add battery runtimes as I am able to test them, please contribute.<br />
<br />
-- Grecko.1<br />
<br />
Still tweaking, but disabling everything from BIOS got me about 6 hours and a half. With eee-kernel, I *could* get a little more.<br />
<br />
-- ekuber</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=ASUS_Eee_PC_701&diff=86155ASUS Eee PC 7012009-12-03T12:07:30Z<p>Zodmaner: /* Installing Arch Linux */</p>
<hr />
<div>{{stub}}<br />
[[Category:Getting and installing Arch (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|Русский|Инсталляция Arch Linux на Asus EEE PC}}<br />
{{i18n_links_end}}<br />
<br />
Most of this information is from the [http://bbs.archlinux.org/viewtopic.php?pid=297632 Arch Forum]. You can also find a lot of helpful information from the [http://forum.eeeuser.com/ EEEUser Forum]. There is also a nice Arch Linux installation guide on the [http://wiki.eeeuser.com/installingarchlinux EeeUser Wiki].<br />
<br />
Users of 901/1000 series Eee PCs should follow the [[Asus Eee PC 901|work in progress guide]].<br />
User of S101 could also check [[Asus Eee PC S101|work in progress guide]]<br />
<br />
==Before You Begin==<br />
<br />
===Avoiding Pitfalls===<br />
<br />
The install is pretty normal, except that you'll need to [http://forum.eeeuser.com/viewtopic.php?id=890 avoid the pitfalls] of our alternative Linux install:<br />
<br />
# Never choose to use a journaling file system on the SSD partitions<br />
# Never use a swap partition on the SSD<br />
# Edit your new installation fstab to mount the SSD partitions "noatime"<br />
# Never log messages or error log to the SSD<br />
<br />
The rules ensure that we won't reach the maximum limit of writes on our SSD faster than we should, although this is being contested (see [http://wiki.eeeuser.com/ssd_write_limit this link] and [http://www.storagesearch.com/ssdmyths-endurance.html this other link]).<br />
<br />
Some other minor modifications can be made to decrease number of non-mandatory writes by applications: deactivate {{Filename|~/.viminfo}} in vi, deactivate less history file ({{Filename|~/.lesshst}}), and so on.<br />
<br />
===Choosing Your Installation Media===<br />
<br />
The Eee PC does not have an optical drive installed on the machine. This means you will need to install Arch Linux through one of the alternative methods:<br />
<br />
# [[Beginners_Guide#USB_stick|USB stick]] '''(Recommended)'''<br />
# External USB CD-ROM drive<br />
# [[PXE|Network (PXE)]]<br />
<br />
==Installing Arch Linux==<br />
<br />
With the release of the 2009.08 installation media, installing Arch Linux on Asus Eee PC model 701 is pretty easy and straightforward since the stock kernel on Arch installation media support all of the 701 hardwares out of the box. <br />
<br />
Therefore, you should be able to install Arch Linux on the 701 by following instructions on [[Beginners_Guide|Beginners' Guide]] without any problem.<br />
<br />
The most important different between the 701 and other machines is that the 701 use SSD drive instead of normal hard drive. The following section advise on how to set up a partition scheme that is best suited to the 701. <br />
<br />
===Prepare Hard Drive===<br />
<br />
The default Eee PC drive is split up into four partitions (here is [http://forum.eeeuser.com/viewtopic.php?id=1805 some information] about the partitioning): <br />
<br />
* It is easiest to wipe the existing partitions and use one or two partitions for your install. One partition would be just '/', and two partitions would be '/boot' and '/'.<br />
* Choose "NONE" for swap in case your eee has a SSD (see #2 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]])<br />
* Select "ext2" as your filesystem in case your eee has a SSD (see #1 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]]). If your model has a standard HD choose "ext3".<br />
<br />
===Asus Eee PC model 701 repository from toofishes===<br />
<br />
Toofishes created a repository for the 701. The repository contained customized kernel built specifically for the 701 and some additional packages. <br />
<br />
While the stock Arch kernel works very well with the 701, toofishes kernel have the following advantages:<br />
<br />
* Faster boot time &ndash; because most of the modules have been compile into the kernel, no time is wasted waiting for the modules to load<br />
* No need to generate initial ramdisk every time a kernel is upgrade <br />
* Smaller size (around 4MB)<br />
<br />
To use the repository, add:<br />
[eee]<br />
Server = http://code.toofishes.net/packages/eee<br />
to your {{Filename|/etc/pacman.conf}} and then issue:<br />
pacman -Syu<br />
<br />
====Package List====<br />
Currently, toofishes' repository contains the following packages:<br />
<br />
*'''kernel-eee''' &ndash; customized kernel for Asus Eee PC model 701<br />
*'''luvcview''' &ndash; webcam program for testing webcam driver<br />
<br />
====Kernel-eee Installation Instruction====<br />
Simply use pacman to install the package you need. Install the packages with this command:<br />
# pacman -Sy kernel-eee<br />
<br />
Then, add the following to {{Filename|/boot/grub/menu.lst}}; note that no initrd is needed:<br />
# (2) Arch Linux<br />
title Arch Linux Eee kernel<br />
root (hd0,0)<br />
kernel /boot/vmlinuzeee root=/dev/sda1 ro<br />
<br />
Restart and select Arch Linux Eee kernel from the grub boot menu.<br />
<br />
==Getting Everything Working==<br />
<br />
By now, you should have Arch installed. The following is the guide on how to get the rest of your system working.<br />
<br />
===X===<br />
<br />
Install X by follow instructions on the [[Beginners_Guide#Step_2:_Install_X|Beginners' Guide]], then install the Intel graphics driver:<br />
# pacman -Sy xf86-video-intel<br />
<br />
You may also wish to install the Synaptics drivers for the touchpad (not needed for Eee PC 900):<br />
# pacman -Sy xf86-input-synaptics<br />
<br />
With the latest version of X from extra repository, X should work on the 701 '''without any need for xorg.conf'''. However, if for some reason you wish to use an xorg.conf file, you can use an old [[Example_Xorg_configuration_file_for_Asus_Eee_PC_701|example Xorg configuration file for Asus Eee PC model 701]] as a template or automatically generate a new one by running the following command:<br />
<br />
# Xorg -configure<br />
<br />
Consult [[Xorg_input_hotplugging|Xorg Input Hotplugging]] for more information on how to config input devices using HAL.<br />
<br />
The synaptics stuff can be removed if you have a EEE PC 900. The {{Codeline|Option "AutoAddDevices"}} line is important if you need a non-default XkbLayout, because if you don't have it, xorg will find 3 keyboards (at least with the 900 model).<br />
The Modeline has obviously to be removed or modified if you dont have a model with this resolution.<br />
<br />
===Sound, Webcam & Microphone===<br />
<br />
====Sound====<br />
<br />
Some people have reported sound working right out of the box with no troubles. However, others might need to add to {{Filename|/etc/modprobe.conf}} the following line for the EeePC 701<br />
options snd-hda-intel model=3stack-dig<br />
or the following one for the EeePC 900 model<br />
options snd-hda-intel model=auto<br />
<br />
If your internal microphone doesn't work, you probably have to turn the capture feature on. Simply fire up alsamixer, find your Capture control, and press spacebar to enable it.<br />
<br />
====Webcam====<br />
<br />
You can enable your built-in webcam by adding the following line to your {{Filename|/etc/rc.local}} file.<br />
<br />
echo 1 > /sys/devices/platform/eeepc/camera<br />
<br />
If you want the webcam application that the default Xandos installation uses, install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14469 ucview from the AUR].<br />
<br />
The webcam also works fine with the latest version of Skype.<br />
<br />
If you already have mplayer installed you can launch:<br />
$ mplayer -fps 15 tv://<br />
<br />
I have yet to get it working with vlc or any other software such as xawtv. If you know how, please update this.<br />
<br />
*'''NOTE:''' For anyone who has accidentally disabled Auto Exposure for their webcam in luvcview (making the image dark), and can't enable it again, do the following:<br />
<br />
Install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14468 libwebcam from the AUR].<br />
<br />
Issue the following command:<br />
$ uvcdynctrl --set "Exposure, Auto" 4<br />
<br />
{{Note | Be sure the "OS Installation" option is set to "finished" in the BIOS' "Advanced" tab or your camera may not work in some applications (like Skype).}}<br />
<br />
{{Note | Make sure you are a member of the video group edit /etc/group and add your username to video}}<br />
<br />
====Microphone====<br />
<br />
Solution for problems with the internal microphone.<br />
<br />
1. First of all set in alsamixer "Input Source" to "i-Mic"<br />
<br />
2. Increase "Capture" and "i-Mic Boost" to your needs<br />
<br />
3. Edit {{Filename|/etc/asound.state}} the following, change the 2 "false" to "true" like showing:<br />
....snap.....<br />
control.11 {<br />
comment.access 'read write'<br />
comment.type BOOLEAN<br />
comment.count 2<br />
iface MIXER<br />
name 'Capture Switch'<br />
value.0 true<br />
value.1 true<br />
}<br />
....snap....<br />
<br />
4. After editing run following as root<br />
# alsactl restore<br />
<br />
5. Now your internal microphone should be working.<br />
<br />
===Getting Hot Keys, Graphic Indicators and Shutdown with the Power Button Working===<br />
<br />
If you want to have working hot keys (wifi, brightness, volume etc), an OSD, and be able to assign actions to things like the powerbutton and closing the lid, then you should install '''ighea's acpi-eee''' package.<br />
<br />
==== ighea's acpi-eee ====<br />
<br />
Get the latest package from [http://kapsi.fi/ighea/eee/acpi-eee/ here].<br />
<br />
The package can be easily installed with:<br />
# pacman -U acpi-eee-10.0-1-i686.pkg.tar.gz<br />
<br />
See messages during installation for more details and don't forget to edit {{Filename|/etc/acpi/eee.conf}} to suit your tastes.<br />
<br />
*For those who use the wireless on/off acpi command; the {{Codeline|NETWORK_UP_COMMAND&#61;""}} setting in {{Filename|/etc/acpi/eee.conf}}, when applicable, should at least release the network. For example, using netcfg2, {{Codeline|NETWORK_UP_COMMAND&#61;"netcfg2 -a"}} will release the connections from before disabling wireless, allowing new ones to be made without netcfg thinking that it's already connected. It is also possible to reconnect to your previous network, however, the network tool you use needs to have a somewhat lengthy timeout as it takes 15-20 seconds for your wireless device to reappear. <br />
<br />
{{Note | Make sure '''asusosd''' is enabled on startup if you want to have the Graphic Indicators from Xandros. To run asusosd simply type {{Codeline|asusosd &}} at a command prompt.}}<br />
<br />
==Additional Tips & Tweaks==<br />
<br />
===Tweaking kernel-eee===<br />
<br />
Toofishes' kernel, also known as kernel-eee, can be recompiled to include custom features. You can download toofishes' kernel PKGBUILD and all the nesseary files from his gitweb by installing the git package and using the following command:<br />
<br />
$ git clone git://code.toofishes.net/dan/eee.git<br />
<br />
or if you are behind a proxy and can't use the git protocol:<br />
<br />
$ git clone http://code.toofishes.net/git/dan/eee.git<br />
<br />
There are two ways to tweak the kernel. The first is simply to edit the {{Filename|kernelconfig}} file with your favorite editor and the second is to insert a {{Codeline|make menuconfig}} line into the PKGBUILD before the kernel's compilation.<br />
<br />
===Using Wine with toofishes' kernel===<br />
<br />
Normally, Wine won't work with toofishes' kernel because it is compiled with VMSPLIT_2G_OPT option. In order to use Wine with toofishes' kernel, you have to recompile his kernel with VMSPLIT_3G option.<br />
<br />
Download the kernel PKGBUILD and all the necessary files from toofishes' gitweb using the above instructions, then change the following lines in the {{Filename|kernelconfig}} file from this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 # CONFIG_VMSPLIT_3G is not set<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 CONFIG_VMSPLIT_2G_OPT=y<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
to this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 CONFIG_VMSPLIT_3G=y<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 # CONFIG_VMSPLIT_2G_OPT is not set<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
<br />
Compile and install the kernel and Wine should now work.<br />
<br />
===Power down with the power button===<br />
<br />
{{Note | If you are using ighea's acpi-eee or dkite's acpid_eee package then you should already be able to shutdown by pressing the power button and should not need to do this.}}<br />
<br />
The two alternatives here are described in [[Allow users to shutdown]].<br />
<br />
If you don't already or don't plan to use sudo, it may be simpler to use the setuid /sbin/halt method, otherwise using sudo is preferred.<br />
<br />
Below are all the steps required for the sudo method. If you want to use the setuid method, read the article linked above and perform the 'power' file step here, while omitting the 'sudo' in it.<br />
<br />
# pacman -S sudo<br />
<br />
As root, do the following:<br />
# visudo<br />
<br />
Add the following line to the file:<br />
USER HOST = NOPASSWD: /sbin/poweroff<br />
<br />
Where {{Codeline|USER}} is the user you want to be able to power down with and {{Codeline|HOST}} is your hostname (from {{Filename|/etc/rc.conf}}).<br />
<br />
Now, create a file called {{Filename|/etc/acpi/events/power}}, containing:<br />
# /etc/acpi/events/power<br />
# This is called when the user presses the power button<br />
<br />
event=button/power (PWR.||PBTN)<br />
action=sudo /sbin/poweroff<br />
<br />
Make sure that you execute:<br />
# /etc/rc.d/acpid start<br />
<br />
And/or add acpid to the daemons list in {{Filename|/etc/rc.conf}}:<br />
DAEMONS=(hal, acpid ...)<br />
<br />
===Use cpufreq for power saving===<br />
<br />
{{Note | toofishes dropped CPU scaling from his latest kernel builds, due to the fact, confirmed by other users, that there were no effective power savings with p4-clockmod's module, and it introduced "unacceptable latency", even with relatively low percentage up thresholds.}}<br />
<br />
Install cpufrequtitls:<br />
# pacman -S cpufrequtils<br />
<br />
For scaling down the processor you have to load the p4_clockmod module. Insert it into your {{Filename|/etc/rc.conf}} MODULES array for loading it at startup. <br />
MODULES=(... p4_clockmod ...)<br />
<br />
Add 'cpufreq' to the DAEMONS array in {{Filename|/etc/rc.conf}} to have it start on startup.<br />
DAEMONS=(... cpufreq ...)<br />
<br />
Add the following into {{Filename|/etc/conf.d/cpufreq}}:<br />
governor="ondemand"<br />
min_freq="113MHz"<br />
max_freq="900MHz"<br />
<br />
With enabled cpufreq it scales the processor between 113MHz up to max. frequency. That should save a lot on battery power. The stated 900MHz will be never reached by the eeePC, the p4_clockmod reports a wrong frequency here. But scaling works, you can feel it in the performance of eeePC that he slow down the processor.<br />
<br />
{{Note | The merits of p4-clockmod are debatable. Particularly on the EEEPC 701, battery time isn't extended due to its usage, and some users have even reported less battery duration. More hints to the reasons why can be read in [http://www.codemonkey.org.uk/2009/01/18/forthcoming-p4clockmod/ this] fine blog entry.}}<br />
<br />
===More responsive system with ondemand governor===<br />
The default up_threshold (where it will bump to a faster speed) for the CPU governor is 80, which means it will increase the CPU speed when utilization is above 80%. This can make X applications have a bit of lag. <br />
<br />
Try changing this value:<br />
$ sudo bash -c "echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold"<br />
<br />
With 40 it still leaves the majority of CPU cycles at the lowest available clock speed but increases responsiveness. You can add this line to one of your startup scripts (such as {{Filename|/etc/rc.local}}) if you wish to keep it, for example:<br />
<br />
#!/bin/bash<br />
#<br />
# /etc/rc.local: Local multi-user startup script.<br />
#<br />
<br />
echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold<br />
<br />
Also, following line is also reported to help makes system more responsive. You can use it by adding it to your {{Filename|/etc/rc.local}}:<br />
echo 2000000 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate<br />
<br />
===Speeding up udev for faster boot===<br />
*[[Speedup udev]]<br />
*http://dev.laptop.org/ticket/4349<br />
*[http://www.eeesale.com/Asus-Eee-PC-overclock-Benchmarks.htm Speed up the Eee PC]<br />
<br />
You can also disable the autoload by editing your {{Filename|[[rc.conf]]}}:<br />
...<br />
MOD_AUTOLOAD="no"<br />
...<br />
MODULES=(pciehp ath5k)<br />
<br />
===Update your BIOS without Xandros===<br />
{{Warning | You can break your system, do not update if you are not sure of what you are doing!}}<br />
<br />
First, you need to download the ''.rom'' file.<br />
*[http://update.eeepc.asus.com/bios/ Asus' official BIOS]<br />
*[http://forum.eeeuser.com/viewtopic.php?id=3485 EeeUser's topic]<br />
<br />
You also need an USB stick formatted in FAT32. To format the USBStick, use the cfdisk tool:<br />
# cfdisk /dev/sdc # could be something else than "c"<br />
<br />
Choose [delete], [type]: "fat32" (code 0B), [write] and then exit with [quit].<br />
<br />
NOTE to EEE PC 900 owners and possibly others: Using this method will require a flash drive formatted with a '''FAT16''' file-system. If the BIOS update process hangs up at "Reading file 900.ROM" for more than a few minutes then it should be safe to power down your EEE PC and reformat your flashdrive's file-system to the correct one. You can force FAT16 creation with the following command:<br />
# mkdosfs -F 16 /dev/device-path<br />
<br />
Now just copy the ''.rom'' on the USBStick :<br />
$ cp /somewhere/blabla/.../thecurrentnameofthefile.ROM /path/to/mounted/usb_stick/701.rom<br />
The name of the copy '''must''' be xxxx.rom where xxxx is the model of your eee PC. (i.e. 900 users it's 900.rom)<br />
<br />
Next step, reboot the eeepc with the USB stick pluged-in, and press Alt+F2. It will launch the built-in tool. Everything should be Ok, you can make a coffee during the update. When it asks you to push the power-button it has finished.<br />
<br />
At the next boot, you'll be invited to configure the BIOS. Check if the everything is enabled (my webcam and wireless were disabled after the update) and if it displays the good version in the main screen. It's done!<br />
<br />
=== More usable font sizes ===<br />
<br />
====The_glu's method====<br />
<br />
I found an easy solution that works on a 901:<br />
<br />
Edit {{Filename|/etc/X11/xinit/xserverrc}} and add "-dpi 134":<br />
exec /usr/bin/X -nolisten tcp -dpi 134<br />
<br />
Restart X and fonts should have the correct size. Notice it's won't works if you have Xft*dpi: in your {{Filename|.XDefaults}}.<br />
<br />
You don't need to edit your config file to set a smaller font size, I you did you should set font-size to 10 or you will have to small fonts...<br />
<br />
==== Old method ====<br />
<br />
On a default installation with Xfce 4 my font sizes were too big, here is what I did to sort them out.<br />
<br />
First, I set the DPI by adding the following to {{Filename|~/.Xdefaults}}:<br />
Xft*dpi: 134<br />
<br />
This then caused the fonts to be even bigger, so I set them all to be font-size 6 by adding the following into {{Filename|~/.gtkrc-2.0}} (note that this will be overwritten if you use any tools to change GTK settings):<br />
style "user-font"<br />
{<br />
font_name="Bitstream Vera Sans 6"<br />
}<br />
widget_class "*" style "user-font"<br />
<br />
To do the same with KDE fonts (without KDE installed) you have to add the following to {{Filename|~/.kde/share/config/kdeglobals}}:<br />
[General]<br />
StandardFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
activeFont=Bitstream Vera Sans,6,-1,5,75,0,0,0,0,0<br />
fixed=Bitstream Vera Sans Mono,6,-1,5,50,0,0,0,0,0<br />
font=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
menuFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
taskbarFont=Bitstream Vera Sans,6,-1,5,50,1,0,0,0,0<br />
toolBarFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
<br />
To make your fonts even prettier enable the [[Fonts#Fonts_with_LCD_filter_enabled|LCD Fonts]].<br />
<br />
==== Alternative Method ====<br />
<br />
For me it worked far better to open the gnome appearance control panel, go to the fonts tab, click defaults, and change the resolution to be 96 dpi. Changing .Xdefaults doesnt work when running gnome, as gnome-settings-daemon overrides it. You can then leave all font sizes at their default, and things should look good. Simply changing the font sizes and leaving the DPI at its technically correct value (~134) gave me weird layout problems in some apps, and oddly large fonts in others.<br />
<br />
==Known problems and their solutions==<br />
<br />
===Wireless doesn't work, even after installing custom Madwifi module===<br />
<br />
I found that Arch tried to use the ath5k module for wireless, and that meant it took control of the card rather than ath_pci (the module I had compiled and installed). I got a Madwifi status 3 message in dmesg when this happened.<br />
<br />
The solution is to blacklist the ath5k module in {{Filename|/etc/rc.conf}}:<br />
<br />
MODULES = ( ... !ath5k ... )<br />
<br />
===Laggy or Unresponsive ACPI Events===<br />
<br />
The latest kernel (2.6.26) introduces new problems with Eee's ACPI events handling. Basically, ACPI events become very laggy and after some time ACPI get disabled after a heavy usage (e.g. changing volume, brightness). This problem affects both stock kernel and toofishes' kernel.<br />
<br />
It appears that the solution is to apply this [http://bugzilla.kernel.org/attachment.cgi?id=16862 patch] ([http://bugzilla.kernel.org/show_bug.cgi?id=10724 original bug report]) to the kernel. <br />
<br />
{{Note | The latest toofishes' kernel, version 2.6.26-1, now includes the patch, but you can still use ighea's one for the extras features listed below.}}<br />
<br />
Until toofishes update his kernel to include the patch, you can use ighea's slightly modified toofishes' kernel that included the above patch, as well as other modifications:<br />
<br />
*Support for Wine <br />
*uvesafb is built as module <br />
*Use [http://bbs.archlinux.org/viewtopic.php?pid=393860#p393860 new eeepc-laptop driver] (which also handles fan-control) instead of older acus_acpi or asus-laptop -drivers.<br />
<br />
You can get the modified kernel, as well as the associative packages, from [http://koti.kapsi.fi/~ighea/eee/kernel-eee/ here].<br />
<br />
After you have downloaded the packages, Install them using this command:<br />
# pacman -U kernel-eee-2.6.26-1-i686.pkg.tar.gz madwifi-eee-svn-3752-1-i686.pkg.tar.gz <br />
<br />
You might also want to use IgnorePkg-line in {{Filename|/etc/pacman.conf}} to hold packages from being accidentally updated.<br />
IgnorePkg = kernel-eee madwifi-eee-svn<br />
<br />
Also don't forget to upgrade ighea's acpi-eee package to version 9.6.<br />
<br />
===Shutdown Problem===<br />
<br />
If your Eee won't shutdown properly (i.e. the power indicator LED is on but the LCD screen is off), then add the following lines to your {{Filename|/etc/rc.local.shutdown}} file.<br />
<pre><br />
#! /bin/bash<br />
#<br />
# /etc/rc.local.shutdown: Local shutdown script.<br />
#<br />
<br />
# Comment or uncomment the following two lines according to your system configuration.<br />
<br />
/etc/rc.d/mpd stop # If you're using mpd, then you have to stop its daemon first.<br />
<br />
/etc/rc.d/alsa stop # If you're using ALSA daemon, then you also have to stop it.<br />
<br />
# The following line is Eee specific fix, you always need to have this line in /etc/rc.local.shutdown.<br />
<br />
echo -n "0000:00:1b.0" > /sys/bus/pci/drivers/HDA\ Intel/unbind<br />
</pre><br />
<br />
The above solution should fix the shutdown problem in most cases. But if for some reason the problem still persists, the module may not be able to be unloaded until after all services have finished. Do the above, then in {{Filename|/etc/rc.shutdown}} move <br />
<br />
if [ -x /etc/rc.local.shutdown ]; then<br />
/etc/rc.local.shutdown<br />
fi<br />
<br />
from where it was to directly above the line <br />
<br />
# Terminate all processes<br />
<br />
this will cause the {{Filename|rc.local.shutdown}} script to run after services have been exited. This fixed all issues for the person editing this note.<br />
<br />
===Unclean unmount during shutdown when having home directory mounted on SD card===<br />
<br />
If you experienced unclean unmount during shutdown when having your home directory on SD card, then add the following 3 lines to "Write to wtmp file before unmounting" section of your {{Filename|/etc/rc.shutdown}} file:<br />
<pre><br />
...<br />
<br />
stat_busy "Unmounting Filesystems"<br />
/bin/umount -a -t noramfs,notmpfs,nosysfs,noproc<br />
<br />
# Add these 3 lines<br />
sync;sync;sync;<br />
eject /dev/sdb # Or whichever is your SD-card's device name. /dev/disk/by-uuid/ followed by the UUID identifier is preferable though.<br />
sleep 3<br />
# End of hack<br />
<br />
stat_done<br />
<br />
...<br />
</pre><br />
<br />
===Booting from card without initrd===<br />
<br />
Let's say you decided to install Arch Linux on a card and compiled your own kernel (or used the kernel26eee kernel) without initrd. Card reader on EeePC is connected as an USB device. Unfortunately, USB storage devices are detected with a delay, so we must tell the kernel to wait until this device becomes available. You do this with "rootwait" option passed to kernel at boot time.<br />
<br />
===Sleeping and waking system on a card===<br />
<br />
If you have Arch Linux on a card, waking up from sleeping state will most likely fail. The only solution is to enable the CONFIG_USB_PERSIST option in kernel. The kernel26eee package should have this option enabled.<br />
<br />
The command to do this is:<br />
echo 1 >/sys/bus/usb/devices/.../power/persist<br />
<br />
Replace the {{Codeline|"..."}} with the device like 1-3 or 1-5 where the first number is the bus and the second is the device <br />
<br />
Each device that is connected to your computer gets an entry in the sysfs "system file system" it is a virtual file system like proc<br />
<br />
More info:<br />
*http://www.mjmwired.net/kernel/Documentation/usb/persist.txt<br />
*http://forum.eeeuser.com/viewtopic.php?id=22712<br />
<br />
===Display doesn't wake up properly===<br />
<br />
If you encounter black display (but apparently working system) after suspend/resume, consider using the "uswsusp" package (available in the official repositories) and correcting suspend2ram script in /etc/acpi, where you use this line to make the machine go to sleep:<br />
<br />
/usr/sbin/s2ram --force --vbe_post --vbe_mode<br />
<br />
==Battery Tests==<br />
<br />
The following are reported battery runtimes:<br />
<br />
{| class="wikitable" style="text-align:left"<br />
|+Battery runtimes<br />
|-<br />
! Task !! Series !! Wireless !! Screen Brightness !! FSB Speed !! Fan Speed !! Runtime !! Comments<br />
|-<br />
! DVD Playback<br />
| 701 || On || Max || 85mhz || 100% || 134min || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! DVD Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! AVI Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading AVI from SSD<br />
|-<br />
! IM and Surf<br />
| 701 || On || ~30% || ??? || low || 173min || Normal web-browsing, Flash should reduce runtime a lot !<br />
|-<br />
! Programming and PDF reading<br />
| 1000HA || Off || ~40% || ??? || low || +6hs || Using Evince and SPE under XFCE with camera and USB disabled<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || +4hs || Stock kernel without laptop-mode<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || 5hs || Stock kernel with laptop-mode and other tweaks<br />
|}<br />
<br />
N.B. - Will add battery runtimes as I am able to test them, please contribute.<br />
<br />
-- Grecko.1<br />
<br />
Still tweaking, but disabling everything from BIOS got me about 6 hours and a half. With eee-kernel, I *could* get a little more.<br />
<br />
-- ekuber</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=ASUS_Eee_PC_701&diff=86154ASUS Eee PC 7012009-12-03T11:56:24Z<p>Zodmaner: /* Installing Arch Linux */ Removed the final touch section, to be merged with Prepare HD section.</p>
<hr />
<div>{{stub}}<br />
[[Category:Getting and installing Arch (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|Русский|Инсталляция Arch Linux на Asus EEE PC}}<br />
{{i18n_links_end}}<br />
<br />
Most of this information is from the [http://bbs.archlinux.org/viewtopic.php?pid=297632 Arch Forum]. You can also find a lot of helpful information from the [http://forum.eeeuser.com/ EEEUser Forum]. There is also a nice Arch Linux installation guide on the [http://wiki.eeeuser.com/installingarchlinux EeeUser Wiki].<br />
<br />
Users of 901/1000 series Eee PCs should follow the [[Asus Eee PC 901|work in progress guide]].<br />
User of S101 could also check [[Asus Eee PC S101|work in progress guide]]<br />
<br />
==Before You Begin==<br />
<br />
===Avoiding Pitfalls===<br />
<br />
The install is pretty normal, except that you'll need to [http://forum.eeeuser.com/viewtopic.php?id=890 avoid the pitfalls] of our alternative Linux install:<br />
<br />
# Never choose to use a journaling file system on the SSD partitions<br />
# Never use a swap partition on the SSD<br />
# Edit your new installation fstab to mount the SSD partitions "noatime"<br />
# Never log messages or error log to the SSD<br />
<br />
The rules ensure that we won't reach the maximum limit of writes on our SSD faster than we should, although this is being contested (see [http://wiki.eeeuser.com/ssd_write_limit this link] and [http://www.storagesearch.com/ssdmyths-endurance.html this other link]).<br />
<br />
Some other minor modifications can be made to decrease number of non-mandatory writes by applications: deactivate {{Filename|~/.viminfo}} in vi, deactivate less history file ({{Filename|~/.lesshst}}), and so on.<br />
<br />
===Choosing Your Installation Media===<br />
<br />
The Eee PC does not have an optical drive installed on the machine. This means you will need to install Arch Linux through one of the alternative methods:<br />
<br />
# [[Beginners_Guide#USB_stick|USB stick]] '''(Recommended)'''<br />
# External USB CD-ROM drive<br />
# [[PXE|Network (PXE)]]<br />
<br />
==Installing Arch Linux==<br />
<br />
With the release of the 2009.08 installation media, installing Arch Linux on Asus Eee PC model 701 is very easy and straightforward since the stock kernel on Arch installation media support all of the 701 hardwares out of the box. <br />
<br />
Therefore, you should be able to install Arch Linux on the 701 by following instructions on [[Beginners_Guide|Beginners' Guide]] without any problem.<br />
<br />
===Prepare Hard Drive===<br />
<br />
The default Eee PC drive is split up into four partitions (here is [http://forum.eeeuser.com/viewtopic.php?id=1805 some information] about the partitioning): <br />
<br />
* It is easiest to wipe the existing partitions and use one or two partitions for your install. One partition would be just '/', and two partitions would be '/boot' and '/'.<br />
* Choose "NONE" for swap in case your eee has a SSD (see #2 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]])<br />
* Select "ext2" as your filesystem in case your eee has a SSD (see #1 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]]). If your model has a standard HD choose "ext3".<br />
<br />
===Asus Eee PC model 701 repository from toofishes===<br />
<br />
Toofishes created a repository for the 701. The repository contained customized kernel built specifically for the 701 and some additional packages. <br />
<br />
While the stock Arch kernel works very well with the 701, toofishes kernel have the following advantages:<br />
<br />
* Faster boot time &ndash; because most of the modules have been compile into the kernel, no time is wasted waiting for the modules to load<br />
* No need to generate initial ramdisk every time a kernel is upgrade <br />
* Smaller size (around 4MB)<br />
<br />
To use the repository, add:<br />
[eee]<br />
Server = http://code.toofishes.net/packages/eee<br />
to your {{Filename|/etc/pacman.conf}} and then issue:<br />
pacman -Syu<br />
<br />
====Package List====<br />
Currently, toofishes' repository contains the following packages:<br />
<br />
*'''kernel-eee''' &ndash; customized kernel for Asus Eee PC model 701<br />
*'''luvcview''' &ndash; webcam program for testing webcam driver<br />
<br />
====Kernel-eee Installation Instruction====<br />
Simply use pacman to install the package you need. Install the packages with this command:<br />
# pacman -Sy kernel-eee<br />
<br />
Then, add the following to {{Filename|/boot/grub/menu.lst}}; note that no initrd is needed:<br />
# (2) Arch Linux<br />
title Arch Linux Eee kernel<br />
root (hd0,0)<br />
kernel /boot/vmlinuzeee root=/dev/sda1 ro<br />
<br />
Restart and select Arch Linux Eee kernel from the grub boot menu.<br />
<br />
==Getting Everything Working==<br />
<br />
By now, you should have Arch installed. The following is the guide on how to get the rest of your system working.<br />
<br />
===X===<br />
<br />
Install X by follow instructions on the [[Beginners_Guide#Step_2:_Install_X|Beginners' Guide]], then install the Intel graphics driver:<br />
# pacman -Sy xf86-video-intel<br />
<br />
You may also wish to install the Synaptics drivers for the touchpad (not needed for Eee PC 900):<br />
# pacman -Sy xf86-input-synaptics<br />
<br />
With the latest version of X from extra repository, X should work on the 701 '''without any need for xorg.conf'''. However, if for some reason you wish to use an xorg.conf file, you can use an old [[Example_Xorg_configuration_file_for_Asus_Eee_PC_701|example Xorg configuration file for Asus Eee PC model 701]] as a template or automatically generate a new one by running the following command:<br />
<br />
# Xorg -configure<br />
<br />
Consult [[Xorg_input_hotplugging|Xorg Input Hotplugging]] for more information on how to config input devices using HAL.<br />
<br />
The synaptics stuff can be removed if you have a EEE PC 900. The {{Codeline|Option "AutoAddDevices"}} line is important if you need a non-default XkbLayout, because if you don't have it, xorg will find 3 keyboards (at least with the 900 model).<br />
The Modeline has obviously to be removed or modified if you dont have a model with this resolution.<br />
<br />
===Sound, Webcam & Microphone===<br />
<br />
====Sound====<br />
<br />
Some people have reported sound working right out of the box with no troubles. However, others might need to add to {{Filename|/etc/modprobe.conf}} the following line for the EeePC 701<br />
options snd-hda-intel model=3stack-dig<br />
or the following one for the EeePC 900 model<br />
options snd-hda-intel model=auto<br />
<br />
If your internal microphone doesn't work, you probably have to turn the capture feature on. Simply fire up alsamixer, find your Capture control, and press spacebar to enable it.<br />
<br />
====Webcam====<br />
<br />
You can enable your built-in webcam by adding the following line to your {{Filename|/etc/rc.local}} file.<br />
<br />
echo 1 > /sys/devices/platform/eeepc/camera<br />
<br />
If you want the webcam application that the default Xandos installation uses, install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14469 ucview from the AUR].<br />
<br />
The webcam also works fine with the latest version of Skype.<br />
<br />
If you already have mplayer installed you can launch:<br />
$ mplayer -fps 15 tv://<br />
<br />
I have yet to get it working with vlc or any other software such as xawtv. If you know how, please update this.<br />
<br />
*'''NOTE:''' For anyone who has accidentally disabled Auto Exposure for their webcam in luvcview (making the image dark), and can't enable it again, do the following:<br />
<br />
Install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14468 libwebcam from the AUR].<br />
<br />
Issue the following command:<br />
$ uvcdynctrl --set "Exposure, Auto" 4<br />
<br />
{{Note | Be sure the "OS Installation" option is set to "finished" in the BIOS' "Advanced" tab or your camera may not work in some applications (like Skype).}}<br />
<br />
{{Note | Make sure you are a member of the video group edit /etc/group and add your username to video}}<br />
<br />
====Microphone====<br />
<br />
Solution for problems with the internal microphone.<br />
<br />
1. First of all set in alsamixer "Input Source" to "i-Mic"<br />
<br />
2. Increase "Capture" and "i-Mic Boost" to your needs<br />
<br />
3. Edit {{Filename|/etc/asound.state}} the following, change the 2 "false" to "true" like showing:<br />
....snap.....<br />
control.11 {<br />
comment.access 'read write'<br />
comment.type BOOLEAN<br />
comment.count 2<br />
iface MIXER<br />
name 'Capture Switch'<br />
value.0 true<br />
value.1 true<br />
}<br />
....snap....<br />
<br />
4. After editing run following as root<br />
# alsactl restore<br />
<br />
5. Now your internal microphone should be working.<br />
<br />
===Getting Hot Keys, Graphic Indicators and Shutdown with the Power Button Working===<br />
<br />
If you want to have working hot keys (wifi, brightness, volume etc), an OSD, and be able to assign actions to things like the powerbutton and closing the lid, then you should install '''ighea's acpi-eee''' package.<br />
<br />
==== ighea's acpi-eee ====<br />
<br />
Get the latest package from [http://kapsi.fi/ighea/eee/acpi-eee/ here].<br />
<br />
The package can be easily installed with:<br />
# pacman -U acpi-eee-10.0-1-i686.pkg.tar.gz<br />
<br />
See messages during installation for more details and don't forget to edit {{Filename|/etc/acpi/eee.conf}} to suit your tastes.<br />
<br />
*For those who use the wireless on/off acpi command; the {{Codeline|NETWORK_UP_COMMAND&#61;""}} setting in {{Filename|/etc/acpi/eee.conf}}, when applicable, should at least release the network. For example, using netcfg2, {{Codeline|NETWORK_UP_COMMAND&#61;"netcfg2 -a"}} will release the connections from before disabling wireless, allowing new ones to be made without netcfg thinking that it's already connected. It is also possible to reconnect to your previous network, however, the network tool you use needs to have a somewhat lengthy timeout as it takes 15-20 seconds for your wireless device to reappear. <br />
<br />
{{Note | Make sure '''asusosd''' is enabled on startup if you want to have the Graphic Indicators from Xandros. To run asusosd simply type {{Codeline|asusosd &}} at a command prompt.}}<br />
<br />
==Additional Tips & Tweaks==<br />
<br />
===Tweaking kernel-eee===<br />
<br />
Toofishes' kernel, also known as kernel-eee, can be recompiled to include custom features. You can download toofishes' kernel PKGBUILD and all the nesseary files from his gitweb by installing the git package and using the following command:<br />
<br />
$ git clone git://code.toofishes.net/dan/eee.git<br />
<br />
or if you are behind a proxy and can't use the git protocol:<br />
<br />
$ git clone http://code.toofishes.net/git/dan/eee.git<br />
<br />
There are two ways to tweak the kernel. The first is simply to edit the {{Filename|kernelconfig}} file with your favorite editor and the second is to insert a {{Codeline|make menuconfig}} line into the PKGBUILD before the kernel's compilation.<br />
<br />
===Using Wine with toofishes' kernel===<br />
<br />
Normally, Wine won't work with toofishes' kernel because it is compiled with VMSPLIT_2G_OPT option. In order to use Wine with toofishes' kernel, you have to recompile his kernel with VMSPLIT_3G option.<br />
<br />
Download the kernel PKGBUILD and all the necessary files from toofishes' gitweb using the above instructions, then change the following lines in the {{Filename|kernelconfig}} file from this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 # CONFIG_VMSPLIT_3G is not set<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 CONFIG_VMSPLIT_2G_OPT=y<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
to this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 CONFIG_VMSPLIT_3G=y<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 # CONFIG_VMSPLIT_2G_OPT is not set<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
<br />
Compile and install the kernel and Wine should now work.<br />
<br />
===Power down with the power button===<br />
<br />
{{Note | If you are using ighea's acpi-eee or dkite's acpid_eee package then you should already be able to shutdown by pressing the power button and should not need to do this.}}<br />
<br />
The two alternatives here are described in [[Allow users to shutdown]].<br />
<br />
If you don't already or don't plan to use sudo, it may be simpler to use the setuid /sbin/halt method, otherwise using sudo is preferred.<br />
<br />
Below are all the steps required for the sudo method. If you want to use the setuid method, read the article linked above and perform the 'power' file step here, while omitting the 'sudo' in it.<br />
<br />
# pacman -S sudo<br />
<br />
As root, do the following:<br />
# visudo<br />
<br />
Add the following line to the file:<br />
USER HOST = NOPASSWD: /sbin/poweroff<br />
<br />
Where {{Codeline|USER}} is the user you want to be able to power down with and {{Codeline|HOST}} is your hostname (from {{Filename|/etc/rc.conf}}).<br />
<br />
Now, create a file called {{Filename|/etc/acpi/events/power}}, containing:<br />
# /etc/acpi/events/power<br />
# This is called when the user presses the power button<br />
<br />
event=button/power (PWR.||PBTN)<br />
action=sudo /sbin/poweroff<br />
<br />
Make sure that you execute:<br />
# /etc/rc.d/acpid start<br />
<br />
And/or add acpid to the daemons list in {{Filename|/etc/rc.conf}}:<br />
DAEMONS=(hal, acpid ...)<br />
<br />
===Use cpufreq for power saving===<br />
<br />
{{Note | toofishes dropped CPU scaling from his latest kernel builds, due to the fact, confirmed by other users, that there were no effective power savings with p4-clockmod's module, and it introduced "unacceptable latency", even with relatively low percentage up thresholds.}}<br />
<br />
Install cpufrequtitls:<br />
# pacman -S cpufrequtils<br />
<br />
For scaling down the processor you have to load the p4_clockmod module. Insert it into your {{Filename|/etc/rc.conf}} MODULES array for loading it at startup. <br />
MODULES=(... p4_clockmod ...)<br />
<br />
Add 'cpufreq' to the DAEMONS array in {{Filename|/etc/rc.conf}} to have it start on startup.<br />
DAEMONS=(... cpufreq ...)<br />
<br />
Add the following into {{Filename|/etc/conf.d/cpufreq}}:<br />
governor="ondemand"<br />
min_freq="113MHz"<br />
max_freq="900MHz"<br />
<br />
With enabled cpufreq it scales the processor between 113MHz up to max. frequency. That should save a lot on battery power. The stated 900MHz will be never reached by the eeePC, the p4_clockmod reports a wrong frequency here. But scaling works, you can feel it in the performance of eeePC that he slow down the processor.<br />
<br />
{{Note | The merits of p4-clockmod are debatable. Particularly on the EEEPC 701, battery time isn't extended due to its usage, and some users have even reported less battery duration. More hints to the reasons why can be read in [http://www.codemonkey.org.uk/2009/01/18/forthcoming-p4clockmod/ this] fine blog entry.}}<br />
<br />
===More responsive system with ondemand governor===<br />
The default up_threshold (where it will bump to a faster speed) for the CPU governor is 80, which means it will increase the CPU speed when utilization is above 80%. This can make X applications have a bit of lag. <br />
<br />
Try changing this value:<br />
$ sudo bash -c "echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold"<br />
<br />
With 40 it still leaves the majority of CPU cycles at the lowest available clock speed but increases responsiveness. You can add this line to one of your startup scripts (such as {{Filename|/etc/rc.local}}) if you wish to keep it, for example:<br />
<br />
#!/bin/bash<br />
#<br />
# /etc/rc.local: Local multi-user startup script.<br />
#<br />
<br />
echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold<br />
<br />
Also, following line is also reported to help makes system more responsive. You can use it by adding it to your {{Filename|/etc/rc.local}}:<br />
echo 2000000 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate<br />
<br />
===Speeding up udev for faster boot===<br />
*[[Speedup udev]]<br />
*http://dev.laptop.org/ticket/4349<br />
*[http://www.eeesale.com/Asus-Eee-PC-overclock-Benchmarks.htm Speed up the Eee PC]<br />
<br />
You can also disable the autoload by editing your {{Filename|[[rc.conf]]}}:<br />
...<br />
MOD_AUTOLOAD="no"<br />
...<br />
MODULES=(pciehp ath5k)<br />
<br />
===Update your BIOS without Xandros===<br />
{{Warning | You can break your system, do not update if you are not sure of what you are doing!}}<br />
<br />
First, you need to download the ''.rom'' file.<br />
*[http://update.eeepc.asus.com/bios/ Asus' official BIOS]<br />
*[http://forum.eeeuser.com/viewtopic.php?id=3485 EeeUser's topic]<br />
<br />
You also need an USB stick formatted in FAT32. To format the USBStick, use the cfdisk tool:<br />
# cfdisk /dev/sdc # could be something else than "c"<br />
<br />
Choose [delete], [type]: "fat32" (code 0B), [write] and then exit with [quit].<br />
<br />
NOTE to EEE PC 900 owners and possibly others: Using this method will require a flash drive formatted with a '''FAT16''' file-system. If the BIOS update process hangs up at "Reading file 900.ROM" for more than a few minutes then it should be safe to power down your EEE PC and reformat your flashdrive's file-system to the correct one. You can force FAT16 creation with the following command:<br />
# mkdosfs -F 16 /dev/device-path<br />
<br />
Now just copy the ''.rom'' on the USBStick :<br />
$ cp /somewhere/blabla/.../thecurrentnameofthefile.ROM /path/to/mounted/usb_stick/701.rom<br />
The name of the copy '''must''' be xxxx.rom where xxxx is the model of your eee PC. (i.e. 900 users it's 900.rom)<br />
<br />
Next step, reboot the eeepc with the USB stick pluged-in, and press Alt+F2. It will launch the built-in tool. Everything should be Ok, you can make a coffee during the update. When it asks you to push the power-button it has finished.<br />
<br />
At the next boot, you'll be invited to configure the BIOS. Check if the everything is enabled (my webcam and wireless were disabled after the update) and if it displays the good version in the main screen. It's done!<br />
<br />
=== More usable font sizes ===<br />
<br />
====The_glu's method====<br />
<br />
I found an easy solution that works on a 901:<br />
<br />
Edit {{Filename|/etc/X11/xinit/xserverrc}} and add "-dpi 134":<br />
exec /usr/bin/X -nolisten tcp -dpi 134<br />
<br />
Restart X and fonts should have the correct size. Notice it's won't works if you have Xft*dpi: in your {{Filename|.XDefaults}}.<br />
<br />
You don't need to edit your config file to set a smaller font size, I you did you should set font-size to 10 or you will have to small fonts...<br />
<br />
==== Old method ====<br />
<br />
On a default installation with Xfce 4 my font sizes were too big, here is what I did to sort them out.<br />
<br />
First, I set the DPI by adding the following to {{Filename|~/.Xdefaults}}:<br />
Xft*dpi: 134<br />
<br />
This then caused the fonts to be even bigger, so I set them all to be font-size 6 by adding the following into {{Filename|~/.gtkrc-2.0}} (note that this will be overwritten if you use any tools to change GTK settings):<br />
style "user-font"<br />
{<br />
font_name="Bitstream Vera Sans 6"<br />
}<br />
widget_class "*" style "user-font"<br />
<br />
To do the same with KDE fonts (without KDE installed) you have to add the following to {{Filename|~/.kde/share/config/kdeglobals}}:<br />
[General]<br />
StandardFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
activeFont=Bitstream Vera Sans,6,-1,5,75,0,0,0,0,0<br />
fixed=Bitstream Vera Sans Mono,6,-1,5,50,0,0,0,0,0<br />
font=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
menuFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
taskbarFont=Bitstream Vera Sans,6,-1,5,50,1,0,0,0,0<br />
toolBarFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
<br />
To make your fonts even prettier enable the [[Fonts#Fonts_with_LCD_filter_enabled|LCD Fonts]].<br />
<br />
==== Alternative Method ====<br />
<br />
For me it worked far better to open the gnome appearance control panel, go to the fonts tab, click defaults, and change the resolution to be 96 dpi. Changing .Xdefaults doesnt work when running gnome, as gnome-settings-daemon overrides it. You can then leave all font sizes at their default, and things should look good. Simply changing the font sizes and leaving the DPI at its technically correct value (~134) gave me weird layout problems in some apps, and oddly large fonts in others.<br />
<br />
==Known problems and their solutions==<br />
<br />
===Wireless doesn't work, even after installing custom Madwifi module===<br />
<br />
I found that Arch tried to use the ath5k module for wireless, and that meant it took control of the card rather than ath_pci (the module I had compiled and installed). I got a Madwifi status 3 message in dmesg when this happened.<br />
<br />
The solution is to blacklist the ath5k module in {{Filename|/etc/rc.conf}}:<br />
<br />
MODULES = ( ... !ath5k ... )<br />
<br />
===Laggy or Unresponsive ACPI Events===<br />
<br />
The latest kernel (2.6.26) introduces new problems with Eee's ACPI events handling. Basically, ACPI events become very laggy and after some time ACPI get disabled after a heavy usage (e.g. changing volume, brightness). This problem affects both stock kernel and toofishes' kernel.<br />
<br />
It appears that the solution is to apply this [http://bugzilla.kernel.org/attachment.cgi?id=16862 patch] ([http://bugzilla.kernel.org/show_bug.cgi?id=10724 original bug report]) to the kernel. <br />
<br />
{{Note | The latest toofishes' kernel, version 2.6.26-1, now includes the patch, but you can still use ighea's one for the extras features listed below.}}<br />
<br />
Until toofishes update his kernel to include the patch, you can use ighea's slightly modified toofishes' kernel that included the above patch, as well as other modifications:<br />
<br />
*Support for Wine <br />
*uvesafb is built as module <br />
*Use [http://bbs.archlinux.org/viewtopic.php?pid=393860#p393860 new eeepc-laptop driver] (which also handles fan-control) instead of older acus_acpi or asus-laptop -drivers.<br />
<br />
You can get the modified kernel, as well as the associative packages, from [http://koti.kapsi.fi/~ighea/eee/kernel-eee/ here].<br />
<br />
After you have downloaded the packages, Install them using this command:<br />
# pacman -U kernel-eee-2.6.26-1-i686.pkg.tar.gz madwifi-eee-svn-3752-1-i686.pkg.tar.gz <br />
<br />
You might also want to use IgnorePkg-line in {{Filename|/etc/pacman.conf}} to hold packages from being accidentally updated.<br />
IgnorePkg = kernel-eee madwifi-eee-svn<br />
<br />
Also don't forget to upgrade ighea's acpi-eee package to version 9.6.<br />
<br />
===Shutdown Problem===<br />
<br />
If your Eee won't shutdown properly (i.e. the power indicator LED is on but the LCD screen is off), then add the following lines to your {{Filename|/etc/rc.local.shutdown}} file.<br />
<pre><br />
#! /bin/bash<br />
#<br />
# /etc/rc.local.shutdown: Local shutdown script.<br />
#<br />
<br />
# Comment or uncomment the following two lines according to your system configuration.<br />
<br />
/etc/rc.d/mpd stop # If you're using mpd, then you have to stop its daemon first.<br />
<br />
/etc/rc.d/alsa stop # If you're using ALSA daemon, then you also have to stop it.<br />
<br />
# The following line is Eee specific fix, you always need to have this line in /etc/rc.local.shutdown.<br />
<br />
echo -n "0000:00:1b.0" > /sys/bus/pci/drivers/HDA\ Intel/unbind<br />
</pre><br />
<br />
The above solution should fix the shutdown problem in most cases. But if for some reason the problem still persists, the module may not be able to be unloaded until after all services have finished. Do the above, then in {{Filename|/etc/rc.shutdown}} move <br />
<br />
if [ -x /etc/rc.local.shutdown ]; then<br />
/etc/rc.local.shutdown<br />
fi<br />
<br />
from where it was to directly above the line <br />
<br />
# Terminate all processes<br />
<br />
this will cause the {{Filename|rc.local.shutdown}} script to run after services have been exited. This fixed all issues for the person editing this note.<br />
<br />
===Unclean unmount during shutdown when having home directory mounted on SD card===<br />
<br />
If you experienced unclean unmount during shutdown when having your home directory on SD card, then add the following 3 lines to "Write to wtmp file before unmounting" section of your {{Filename|/etc/rc.shutdown}} file:<br />
<pre><br />
...<br />
<br />
stat_busy "Unmounting Filesystems"<br />
/bin/umount -a -t noramfs,notmpfs,nosysfs,noproc<br />
<br />
# Add these 3 lines<br />
sync;sync;sync;<br />
eject /dev/sdb # Or whichever is your SD-card's device name. /dev/disk/by-uuid/ followed by the UUID identifier is preferable though.<br />
sleep 3<br />
# End of hack<br />
<br />
stat_done<br />
<br />
...<br />
</pre><br />
<br />
===Booting from card without initrd===<br />
<br />
Let's say you decided to install Arch Linux on a card and compiled your own kernel (or used the kernel26eee kernel) without initrd. Card reader on EeePC is connected as an USB device. Unfortunately, USB storage devices are detected with a delay, so we must tell the kernel to wait until this device becomes available. You do this with "rootwait" option passed to kernel at boot time.<br />
<br />
===Sleeping and waking system on a card===<br />
<br />
If you have Arch Linux on a card, waking up from sleeping state will most likely fail. The only solution is to enable the CONFIG_USB_PERSIST option in kernel. The kernel26eee package should have this option enabled.<br />
<br />
The command to do this is:<br />
echo 1 >/sys/bus/usb/devices/.../power/persist<br />
<br />
Replace the {{Codeline|"..."}} with the device like 1-3 or 1-5 where the first number is the bus and the second is the device <br />
<br />
Each device that is connected to your computer gets an entry in the sysfs "system file system" it is a virtual file system like proc<br />
<br />
More info:<br />
*http://www.mjmwired.net/kernel/Documentation/usb/persist.txt<br />
*http://forum.eeeuser.com/viewtopic.php?id=22712<br />
<br />
===Display doesn't wake up properly===<br />
<br />
If you encounter black display (but apparently working system) after suspend/resume, consider using the "uswsusp" package (available in the official repositories) and correcting suspend2ram script in /etc/acpi, where you use this line to make the machine go to sleep:<br />
<br />
/usr/sbin/s2ram --force --vbe_post --vbe_mode<br />
<br />
==Battery Tests==<br />
<br />
The following are reported battery runtimes:<br />
<br />
{| class="wikitable" style="text-align:left"<br />
|+Battery runtimes<br />
|-<br />
! Task !! Series !! Wireless !! Screen Brightness !! FSB Speed !! Fan Speed !! Runtime !! Comments<br />
|-<br />
! DVD Playback<br />
| 701 || On || Max || 85mhz || 100% || 134min || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! DVD Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! AVI Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading AVI from SSD<br />
|-<br />
! IM and Surf<br />
| 701 || On || ~30% || ??? || low || 173min || Normal web-browsing, Flash should reduce runtime a lot !<br />
|-<br />
! Programming and PDF reading<br />
| 1000HA || Off || ~40% || ??? || low || +6hs || Using Evince and SPE under XFCE with camera and USB disabled<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || +4hs || Stock kernel without laptop-mode<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || 5hs || Stock kernel with laptop-mode and other tweaks<br />
|}<br />
<br />
N.B. - Will add battery runtimes as I am able to test them, please contribute.<br />
<br />
-- Grecko.1<br />
<br />
Still tweaking, but disabling everything from BIOS got me about 6 hours and a half. With eee-kernel, I *could* get a little more.<br />
<br />
-- ekuber</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=ASUS_Eee_PC_701&diff=86153ASUS Eee PC 7012009-12-03T11:54:20Z<p>Zodmaner: Removed ages-old warning on top of the article</p>
<hr />
<div>{{stub}}<br />
[[Category:Getting and installing Arch (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|Русский|Инсталляция Arch Linux на Asus EEE PC}}<br />
{{i18n_links_end}}<br />
<br />
Most of this information is from the [http://bbs.archlinux.org/viewtopic.php?pid=297632 Arch Forum]. You can also find a lot of helpful information from the [http://forum.eeeuser.com/ EEEUser Forum]. There is also a nice Arch Linux installation guide on the [http://wiki.eeeuser.com/installingarchlinux EeeUser Wiki].<br />
<br />
Users of 901/1000 series Eee PCs should follow the [[Asus Eee PC 901|work in progress guide]].<br />
User of S101 could also check [[Asus Eee PC S101|work in progress guide]]<br />
<br />
==Before You Begin==<br />
<br />
===Avoiding Pitfalls===<br />
<br />
The install is pretty normal, except that you'll need to [http://forum.eeeuser.com/viewtopic.php?id=890 avoid the pitfalls] of our alternative Linux install:<br />
<br />
# Never choose to use a journaling file system on the SSD partitions<br />
# Never use a swap partition on the SSD<br />
# Edit your new installation fstab to mount the SSD partitions "noatime"<br />
# Never log messages or error log to the SSD<br />
<br />
The rules ensure that we won't reach the maximum limit of writes on our SSD faster than we should, although this is being contested (see [http://wiki.eeeuser.com/ssd_write_limit this link] and [http://www.storagesearch.com/ssdmyths-endurance.html this other link]).<br />
<br />
Some other minor modifications can be made to decrease number of non-mandatory writes by applications: deactivate {{Filename|~/.viminfo}} in vi, deactivate less history file ({{Filename|~/.lesshst}}), and so on.<br />
<br />
===Choosing Your Installation Media===<br />
<br />
The Eee PC does not have an optical drive installed on the machine. This means you will need to install Arch Linux through one of the alternative methods:<br />
<br />
# [[Beginners_Guide#USB_stick|USB stick]] '''(Recommended)'''<br />
# External USB CD-ROM drive<br />
# [[PXE|Network (PXE)]]<br />
<br />
==Installing Arch Linux==<br />
<br />
With the release of the 2009.08 installation media, installing Arch Linux on Asus Eee PC model 701 is very easy and straightforward since the stock kernel on Arch installation media support all of the 701 hardwares out of the box. <br />
<br />
Therefore, you should be able to install Arch Linux on the 701 by following instructions on [[Beginners_Guide|Beginners' Guide]] without any problem.<br />
<br />
===Prepare Hard Drive===<br />
<br />
The default Eee PC drive is split up into four partitions (here is [http://forum.eeeuser.com/viewtopic.php?id=1805 some information] about the partitioning): <br />
<br />
* It is easiest to wipe the existing partitions and use one or two partitions for your install. One partition would be just '/', and two partitions would be '/boot' and '/'.<br />
* Choose "NONE" for swap in case your eee has a SSD (see #2 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]])<br />
* Select "ext2" as your filesystem in case your eee has a SSD (see #1 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]]). If your model has a standard HD choose "ext3".<br />
<br />
===Asus Eee PC model 701 repository from toofishes===<br />
<br />
Toofishes created a repository for the 701. The repository contained customized kernel built specifically for the 701 and some additional packages. <br />
<br />
While the stock Arch kernel works very well with the 701, toofishes kernel have the following advantages:<br />
<br />
* Faster boot time &ndash; because most of the modules have been compile into the kernel, no time is wasted waiting for the modules to load<br />
* No need to generate initial ramdisk every time a kernel is upgrade <br />
* Smaller size (around 4MB)<br />
<br />
To use the repository, add:<br />
[eee]<br />
Server = http://code.toofishes.net/packages/eee<br />
to your {{Filename|/etc/pacman.conf}} and then issue:<br />
pacman -Syu<br />
<br />
====Package List====<br />
Currently, toofishes' repository contains the following packages:<br />
<br />
*'''kernel-eee''' &ndash; customized kernel for Asus Eee PC model 701<br />
*'''luvcview''' &ndash; webcam program for testing webcam driver<br />
<br />
====Kernel-eee Installation Instruction====<br />
Simply use pacman to install the package you need. Install the packages with this command:<br />
# pacman -Sy kernel-eee<br />
<br />
Then, add the following to {{Filename|/boot/grub/menu.lst}}; note that no initrd is needed:<br />
# (2) Arch Linux<br />
title Arch Linux Eee kernel<br />
root (hd0,0)<br />
kernel /boot/vmlinuzeee root=/dev/sda1 ro<br />
<br />
Restart and select Arch Linux Eee kernel from the grub boot menu.<br />
<br />
===Add the Final Touch===<br />
<br />
After you have install kernel-eee and all the related packages as noted above, make these edits to {{Filename|/etc/fstab}}:<br />
<br />
* Add "noatime" and "nodiratime" to the options of your mounts (see #3 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]])<br />
* '''OPTIONAL:''' Add a new line: {{Codeline|"tmpfs /var/log tmpfs size&#61;1M 0 0"}} ('''WARNING:''' this will delete all your logs! See #4 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]]. To save your startup/shutdown logs, look at the pitfalls link above).<br />
<br />
==Getting Everything Working==<br />
<br />
By now, you should have Arch installed. The following is the guide on how to get the rest of your system working.<br />
<br />
===X===<br />
<br />
Install X by follow instructions on the [[Beginners_Guide#Step_2:_Install_X|Beginners' Guide]], then install the Intel graphics driver:<br />
# pacman -Sy xf86-video-intel<br />
<br />
You may also wish to install the Synaptics drivers for the touchpad (not needed for Eee PC 900):<br />
# pacman -Sy xf86-input-synaptics<br />
<br />
With the latest version of X from extra repository, X should work on the 701 '''without any need for xorg.conf'''. However, if for some reason you wish to use an xorg.conf file, you can use an old [[Example_Xorg_configuration_file_for_Asus_Eee_PC_701|example Xorg configuration file for Asus Eee PC model 701]] as a template or automatically generate a new one by running the following command:<br />
<br />
# Xorg -configure<br />
<br />
Consult [[Xorg_input_hotplugging|Xorg Input Hotplugging]] for more information on how to config input devices using HAL.<br />
<br />
The synaptics stuff can be removed if you have a EEE PC 900. The {{Codeline|Option "AutoAddDevices"}} line is important if you need a non-default XkbLayout, because if you don't have it, xorg will find 3 keyboards (at least with the 900 model).<br />
The Modeline has obviously to be removed or modified if you dont have a model with this resolution.<br />
<br />
===Sound, Webcam & Microphone===<br />
<br />
====Sound====<br />
<br />
Some people have reported sound working right out of the box with no troubles. However, others might need to add to {{Filename|/etc/modprobe.conf}} the following line for the EeePC 701<br />
options snd-hda-intel model=3stack-dig<br />
or the following one for the EeePC 900 model<br />
options snd-hda-intel model=auto<br />
<br />
If your internal microphone doesn't work, you probably have to turn the capture feature on. Simply fire up alsamixer, find your Capture control, and press spacebar to enable it.<br />
<br />
====Webcam====<br />
<br />
You can enable your built-in webcam by adding the following line to your {{Filename|/etc/rc.local}} file.<br />
<br />
echo 1 > /sys/devices/platform/eeepc/camera<br />
<br />
If you want the webcam application that the default Xandos installation uses, install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14469 ucview from the AUR].<br />
<br />
The webcam also works fine with the latest version of Skype.<br />
<br />
If you already have mplayer installed you can launch:<br />
$ mplayer -fps 15 tv://<br />
<br />
I have yet to get it working with vlc or any other software such as xawtv. If you know how, please update this.<br />
<br />
*'''NOTE:''' For anyone who has accidentally disabled Auto Exposure for their webcam in luvcview (making the image dark), and can't enable it again, do the following:<br />
<br />
Install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14468 libwebcam from the AUR].<br />
<br />
Issue the following command:<br />
$ uvcdynctrl --set "Exposure, Auto" 4<br />
<br />
{{Note | Be sure the "OS Installation" option is set to "finished" in the BIOS' "Advanced" tab or your camera may not work in some applications (like Skype).}}<br />
<br />
{{Note | Make sure you are a member of the video group edit /etc/group and add your username to video}}<br />
<br />
====Microphone====<br />
<br />
Solution for problems with the internal microphone.<br />
<br />
1. First of all set in alsamixer "Input Source" to "i-Mic"<br />
<br />
2. Increase "Capture" and "i-Mic Boost" to your needs<br />
<br />
3. Edit {{Filename|/etc/asound.state}} the following, change the 2 "false" to "true" like showing:<br />
....snap.....<br />
control.11 {<br />
comment.access 'read write'<br />
comment.type BOOLEAN<br />
comment.count 2<br />
iface MIXER<br />
name 'Capture Switch'<br />
value.0 true<br />
value.1 true<br />
}<br />
....snap....<br />
<br />
4. After editing run following as root<br />
# alsactl restore<br />
<br />
5. Now your internal microphone should be working.<br />
<br />
===Getting Hot Keys, Graphic Indicators and Shutdown with the Power Button Working===<br />
<br />
If you want to have working hot keys (wifi, brightness, volume etc), an OSD, and be able to assign actions to things like the powerbutton and closing the lid, then you should install '''ighea's acpi-eee''' package.<br />
<br />
==== ighea's acpi-eee ====<br />
<br />
Get the latest package from [http://kapsi.fi/ighea/eee/acpi-eee/ here].<br />
<br />
The package can be easily installed with:<br />
# pacman -U acpi-eee-10.0-1-i686.pkg.tar.gz<br />
<br />
See messages during installation for more details and don't forget to edit {{Filename|/etc/acpi/eee.conf}} to suit your tastes.<br />
<br />
*For those who use the wireless on/off acpi command; the {{Codeline|NETWORK_UP_COMMAND&#61;""}} setting in {{Filename|/etc/acpi/eee.conf}}, when applicable, should at least release the network. For example, using netcfg2, {{Codeline|NETWORK_UP_COMMAND&#61;"netcfg2 -a"}} will release the connections from before disabling wireless, allowing new ones to be made without netcfg thinking that it's already connected. It is also possible to reconnect to your previous network, however, the network tool you use needs to have a somewhat lengthy timeout as it takes 15-20 seconds for your wireless device to reappear. <br />
<br />
{{Note | Make sure '''asusosd''' is enabled on startup if you want to have the Graphic Indicators from Xandros. To run asusosd simply type {{Codeline|asusosd &}} at a command prompt.}}<br />
<br />
==Additional Tips & Tweaks==<br />
<br />
===Tweaking kernel-eee===<br />
<br />
Toofishes' kernel, also known as kernel-eee, can be recompiled to include custom features. You can download toofishes' kernel PKGBUILD and all the nesseary files from his gitweb by installing the git package and using the following command:<br />
<br />
$ git clone git://code.toofishes.net/dan/eee.git<br />
<br />
or if you are behind a proxy and can't use the git protocol:<br />
<br />
$ git clone http://code.toofishes.net/git/dan/eee.git<br />
<br />
There are two ways to tweak the kernel. The first is simply to edit the {{Filename|kernelconfig}} file with your favorite editor and the second is to insert a {{Codeline|make menuconfig}} line into the PKGBUILD before the kernel's compilation.<br />
<br />
===Using Wine with toofishes' kernel===<br />
<br />
Normally, Wine won't work with toofishes' kernel because it is compiled with VMSPLIT_2G_OPT option. In order to use Wine with toofishes' kernel, you have to recompile his kernel with VMSPLIT_3G option.<br />
<br />
Download the kernel PKGBUILD and all the necessary files from toofishes' gitweb using the above instructions, then change the following lines in the {{Filename|kernelconfig}} file from this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 # CONFIG_VMSPLIT_3G is not set<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 CONFIG_VMSPLIT_2G_OPT=y<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
to this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 CONFIG_VMSPLIT_3G=y<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 # CONFIG_VMSPLIT_2G_OPT is not set<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
<br />
Compile and install the kernel and Wine should now work.<br />
<br />
===Power down with the power button===<br />
<br />
{{Note | If you are using ighea's acpi-eee or dkite's acpid_eee package then you should already be able to shutdown by pressing the power button and should not need to do this.}}<br />
<br />
The two alternatives here are described in [[Allow users to shutdown]].<br />
<br />
If you don't already or don't plan to use sudo, it may be simpler to use the setuid /sbin/halt method, otherwise using sudo is preferred.<br />
<br />
Below are all the steps required for the sudo method. If you want to use the setuid method, read the article linked above and perform the 'power' file step here, while omitting the 'sudo' in it.<br />
<br />
# pacman -S sudo<br />
<br />
As root, do the following:<br />
# visudo<br />
<br />
Add the following line to the file:<br />
USER HOST = NOPASSWD: /sbin/poweroff<br />
<br />
Where {{Codeline|USER}} is the user you want to be able to power down with and {{Codeline|HOST}} is your hostname (from {{Filename|/etc/rc.conf}}).<br />
<br />
Now, create a file called {{Filename|/etc/acpi/events/power}}, containing:<br />
# /etc/acpi/events/power<br />
# This is called when the user presses the power button<br />
<br />
event=button/power (PWR.||PBTN)<br />
action=sudo /sbin/poweroff<br />
<br />
Make sure that you execute:<br />
# /etc/rc.d/acpid start<br />
<br />
And/or add acpid to the daemons list in {{Filename|/etc/rc.conf}}:<br />
DAEMONS=(hal, acpid ...)<br />
<br />
===Use cpufreq for power saving===<br />
<br />
{{Note | toofishes dropped CPU scaling from his latest kernel builds, due to the fact, confirmed by other users, that there were no effective power savings with p4-clockmod's module, and it introduced "unacceptable latency", even with relatively low percentage up thresholds.}}<br />
<br />
Install cpufrequtitls:<br />
# pacman -S cpufrequtils<br />
<br />
For scaling down the processor you have to load the p4_clockmod module. Insert it into your {{Filename|/etc/rc.conf}} MODULES array for loading it at startup. <br />
MODULES=(... p4_clockmod ...)<br />
<br />
Add 'cpufreq' to the DAEMONS array in {{Filename|/etc/rc.conf}} to have it start on startup.<br />
DAEMONS=(... cpufreq ...)<br />
<br />
Add the following into {{Filename|/etc/conf.d/cpufreq}}:<br />
governor="ondemand"<br />
min_freq="113MHz"<br />
max_freq="900MHz"<br />
<br />
With enabled cpufreq it scales the processor between 113MHz up to max. frequency. That should save a lot on battery power. The stated 900MHz will be never reached by the eeePC, the p4_clockmod reports a wrong frequency here. But scaling works, you can feel it in the performance of eeePC that he slow down the processor.<br />
<br />
{{Note | The merits of p4-clockmod are debatable. Particularly on the EEEPC 701, battery time isn't extended due to its usage, and some users have even reported less battery duration. More hints to the reasons why can be read in [http://www.codemonkey.org.uk/2009/01/18/forthcoming-p4clockmod/ this] fine blog entry.}}<br />
<br />
===More responsive system with ondemand governor===<br />
The default up_threshold (where it will bump to a faster speed) for the CPU governor is 80, which means it will increase the CPU speed when utilization is above 80%. This can make X applications have a bit of lag. <br />
<br />
Try changing this value:<br />
$ sudo bash -c "echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold"<br />
<br />
With 40 it still leaves the majority of CPU cycles at the lowest available clock speed but increases responsiveness. You can add this line to one of your startup scripts (such as {{Filename|/etc/rc.local}}) if you wish to keep it, for example:<br />
<br />
#!/bin/bash<br />
#<br />
# /etc/rc.local: Local multi-user startup script.<br />
#<br />
<br />
echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold<br />
<br />
Also, following line is also reported to help makes system more responsive. You can use it by adding it to your {{Filename|/etc/rc.local}}:<br />
echo 2000000 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate<br />
<br />
===Speeding up udev for faster boot===<br />
*[[Speedup udev]]<br />
*http://dev.laptop.org/ticket/4349<br />
*[http://www.eeesale.com/Asus-Eee-PC-overclock-Benchmarks.htm Speed up the Eee PC]<br />
<br />
You can also disable the autoload by editing your {{Filename|[[rc.conf]]}}:<br />
...<br />
MOD_AUTOLOAD="no"<br />
...<br />
MODULES=(pciehp ath5k)<br />
<br />
===Update your BIOS without Xandros===<br />
{{Warning | You can break your system, do not update if you are not sure of what you are doing!}}<br />
<br />
First, you need to download the ''.rom'' file.<br />
*[http://update.eeepc.asus.com/bios/ Asus' official BIOS]<br />
*[http://forum.eeeuser.com/viewtopic.php?id=3485 EeeUser's topic]<br />
<br />
You also need an USB stick formatted in FAT32. To format the USBStick, use the cfdisk tool:<br />
# cfdisk /dev/sdc # could be something else than "c"<br />
<br />
Choose [delete], [type]: "fat32" (code 0B), [write] and then exit with [quit].<br />
<br />
NOTE to EEE PC 900 owners and possibly others: Using this method will require a flash drive formatted with a '''FAT16''' file-system. If the BIOS update process hangs up at "Reading file 900.ROM" for more than a few minutes then it should be safe to power down your EEE PC and reformat your flashdrive's file-system to the correct one. You can force FAT16 creation with the following command:<br />
# mkdosfs -F 16 /dev/device-path<br />
<br />
Now just copy the ''.rom'' on the USBStick :<br />
$ cp /somewhere/blabla/.../thecurrentnameofthefile.ROM /path/to/mounted/usb_stick/701.rom<br />
The name of the copy '''must''' be xxxx.rom where xxxx is the model of your eee PC. (i.e. 900 users it's 900.rom)<br />
<br />
Next step, reboot the eeepc with the USB stick pluged-in, and press Alt+F2. It will launch the built-in tool. Everything should be Ok, you can make a coffee during the update. When it asks you to push the power-button it has finished.<br />
<br />
At the next boot, you'll be invited to configure the BIOS. Check if the everything is enabled (my webcam and wireless were disabled after the update) and if it displays the good version in the main screen. It's done!<br />
<br />
=== More usable font sizes ===<br />
<br />
====The_glu's method====<br />
<br />
I found an easy solution that works on a 901:<br />
<br />
Edit {{Filename|/etc/X11/xinit/xserverrc}} and add "-dpi 134":<br />
exec /usr/bin/X -nolisten tcp -dpi 134<br />
<br />
Restart X and fonts should have the correct size. Notice it's won't works if you have Xft*dpi: in your {{Filename|.XDefaults}}.<br />
<br />
You don't need to edit your config file to set a smaller font size, I you did you should set font-size to 10 or you will have to small fonts...<br />
<br />
==== Old method ====<br />
<br />
On a default installation with Xfce 4 my font sizes were too big, here is what I did to sort them out.<br />
<br />
First, I set the DPI by adding the following to {{Filename|~/.Xdefaults}}:<br />
Xft*dpi: 134<br />
<br />
This then caused the fonts to be even bigger, so I set them all to be font-size 6 by adding the following into {{Filename|~/.gtkrc-2.0}} (note that this will be overwritten if you use any tools to change GTK settings):<br />
style "user-font"<br />
{<br />
font_name="Bitstream Vera Sans 6"<br />
}<br />
widget_class "*" style "user-font"<br />
<br />
To do the same with KDE fonts (without KDE installed) you have to add the following to {{Filename|~/.kde/share/config/kdeglobals}}:<br />
[General]<br />
StandardFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
activeFont=Bitstream Vera Sans,6,-1,5,75,0,0,0,0,0<br />
fixed=Bitstream Vera Sans Mono,6,-1,5,50,0,0,0,0,0<br />
font=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
menuFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
taskbarFont=Bitstream Vera Sans,6,-1,5,50,1,0,0,0,0<br />
toolBarFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
<br />
To make your fonts even prettier enable the [[Fonts#Fonts_with_LCD_filter_enabled|LCD Fonts]].<br />
<br />
==== Alternative Method ====<br />
<br />
For me it worked far better to open the gnome appearance control panel, go to the fonts tab, click defaults, and change the resolution to be 96 dpi. Changing .Xdefaults doesnt work when running gnome, as gnome-settings-daemon overrides it. You can then leave all font sizes at their default, and things should look good. Simply changing the font sizes and leaving the DPI at its technically correct value (~134) gave me weird layout problems in some apps, and oddly large fonts in others.<br />
<br />
==Known problems and their solutions==<br />
<br />
===Wireless doesn't work, even after installing custom Madwifi module===<br />
<br />
I found that Arch tried to use the ath5k module for wireless, and that meant it took control of the card rather than ath_pci (the module I had compiled and installed). I got a Madwifi status 3 message in dmesg when this happened.<br />
<br />
The solution is to blacklist the ath5k module in {{Filename|/etc/rc.conf}}:<br />
<br />
MODULES = ( ... !ath5k ... )<br />
<br />
===Laggy or Unresponsive ACPI Events===<br />
<br />
The latest kernel (2.6.26) introduces new problems with Eee's ACPI events handling. Basically, ACPI events become very laggy and after some time ACPI get disabled after a heavy usage (e.g. changing volume, brightness). This problem affects both stock kernel and toofishes' kernel.<br />
<br />
It appears that the solution is to apply this [http://bugzilla.kernel.org/attachment.cgi?id=16862 patch] ([http://bugzilla.kernel.org/show_bug.cgi?id=10724 original bug report]) to the kernel. <br />
<br />
{{Note | The latest toofishes' kernel, version 2.6.26-1, now includes the patch, but you can still use ighea's one for the extras features listed below.}}<br />
<br />
Until toofishes update his kernel to include the patch, you can use ighea's slightly modified toofishes' kernel that included the above patch, as well as other modifications:<br />
<br />
*Support for Wine <br />
*uvesafb is built as module <br />
*Use [http://bbs.archlinux.org/viewtopic.php?pid=393860#p393860 new eeepc-laptop driver] (which also handles fan-control) instead of older acus_acpi or asus-laptop -drivers.<br />
<br />
You can get the modified kernel, as well as the associative packages, from [http://koti.kapsi.fi/~ighea/eee/kernel-eee/ here].<br />
<br />
After you have downloaded the packages, Install them using this command:<br />
# pacman -U kernel-eee-2.6.26-1-i686.pkg.tar.gz madwifi-eee-svn-3752-1-i686.pkg.tar.gz <br />
<br />
You might also want to use IgnorePkg-line in {{Filename|/etc/pacman.conf}} to hold packages from being accidentally updated.<br />
IgnorePkg = kernel-eee madwifi-eee-svn<br />
<br />
Also don't forget to upgrade ighea's acpi-eee package to version 9.6.<br />
<br />
===Shutdown Problem===<br />
<br />
If your Eee won't shutdown properly (i.e. the power indicator LED is on but the LCD screen is off), then add the following lines to your {{Filename|/etc/rc.local.shutdown}} file.<br />
<pre><br />
#! /bin/bash<br />
#<br />
# /etc/rc.local.shutdown: Local shutdown script.<br />
#<br />
<br />
# Comment or uncomment the following two lines according to your system configuration.<br />
<br />
/etc/rc.d/mpd stop # If you're using mpd, then you have to stop its daemon first.<br />
<br />
/etc/rc.d/alsa stop # If you're using ALSA daemon, then you also have to stop it.<br />
<br />
# The following line is Eee specific fix, you always need to have this line in /etc/rc.local.shutdown.<br />
<br />
echo -n "0000:00:1b.0" > /sys/bus/pci/drivers/HDA\ Intel/unbind<br />
</pre><br />
<br />
The above solution should fix the shutdown problem in most cases. But if for some reason the problem still persists, the module may not be able to be unloaded until after all services have finished. Do the above, then in {{Filename|/etc/rc.shutdown}} move <br />
<br />
if [ -x /etc/rc.local.shutdown ]; then<br />
/etc/rc.local.shutdown<br />
fi<br />
<br />
from where it was to directly above the line <br />
<br />
# Terminate all processes<br />
<br />
this will cause the {{Filename|rc.local.shutdown}} script to run after services have been exited. This fixed all issues for the person editing this note.<br />
<br />
===Unclean unmount during shutdown when having home directory mounted on SD card===<br />
<br />
If you experienced unclean unmount during shutdown when having your home directory on SD card, then add the following 3 lines to "Write to wtmp file before unmounting" section of your {{Filename|/etc/rc.shutdown}} file:<br />
<pre><br />
...<br />
<br />
stat_busy "Unmounting Filesystems"<br />
/bin/umount -a -t noramfs,notmpfs,nosysfs,noproc<br />
<br />
# Add these 3 lines<br />
sync;sync;sync;<br />
eject /dev/sdb # Or whichever is your SD-card's device name. /dev/disk/by-uuid/ followed by the UUID identifier is preferable though.<br />
sleep 3<br />
# End of hack<br />
<br />
stat_done<br />
<br />
...<br />
</pre><br />
<br />
===Booting from card without initrd===<br />
<br />
Let's say you decided to install Arch Linux on a card and compiled your own kernel (or used the kernel26eee kernel) without initrd. Card reader on EeePC is connected as an USB device. Unfortunately, USB storage devices are detected with a delay, so we must tell the kernel to wait until this device becomes available. You do this with "rootwait" option passed to kernel at boot time.<br />
<br />
===Sleeping and waking system on a card===<br />
<br />
If you have Arch Linux on a card, waking up from sleeping state will most likely fail. The only solution is to enable the CONFIG_USB_PERSIST option in kernel. The kernel26eee package should have this option enabled.<br />
<br />
The command to do this is:<br />
echo 1 >/sys/bus/usb/devices/.../power/persist<br />
<br />
Replace the {{Codeline|"..."}} with the device like 1-3 or 1-5 where the first number is the bus and the second is the device <br />
<br />
Each device that is connected to your computer gets an entry in the sysfs "system file system" it is a virtual file system like proc<br />
<br />
More info:<br />
*http://www.mjmwired.net/kernel/Documentation/usb/persist.txt<br />
*http://forum.eeeuser.com/viewtopic.php?id=22712<br />
<br />
===Display doesn't wake up properly===<br />
<br />
If you encounter black display (but apparently working system) after suspend/resume, consider using the "uswsusp" package (available in the official repositories) and correcting suspend2ram script in /etc/acpi, where you use this line to make the machine go to sleep:<br />
<br />
/usr/sbin/s2ram --force --vbe_post --vbe_mode<br />
<br />
==Battery Tests==<br />
<br />
The following are reported battery runtimes:<br />
<br />
{| class="wikitable" style="text-align:left"<br />
|+Battery runtimes<br />
|-<br />
! Task !! Series !! Wireless !! Screen Brightness !! FSB Speed !! Fan Speed !! Runtime !! Comments<br />
|-<br />
! DVD Playback<br />
| 701 || On || Max || 85mhz || 100% || 134min || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! DVD Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! AVI Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading AVI from SSD<br />
|-<br />
! IM and Surf<br />
| 701 || On || ~30% || ??? || low || 173min || Normal web-browsing, Flash should reduce runtime a lot !<br />
|-<br />
! Programming and PDF reading<br />
| 1000HA || Off || ~40% || ??? || low || +6hs || Using Evince and SPE under XFCE with camera and USB disabled<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || +4hs || Stock kernel without laptop-mode<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || 5hs || Stock kernel with laptop-mode and other tweaks<br />
|}<br />
<br />
N.B. - Will add battery runtimes as I am able to test them, please contribute.<br />
<br />
-- Grecko.1<br />
<br />
Still tweaking, but disabling everything from BIOS got me about 6 hours and a half. With eee-kernel, I *could* get a little more.<br />
<br />
-- ekuber</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=ASUS_Eee_PC_701&diff=86152ASUS Eee PC 7012009-12-03T11:53:02Z<p>Zodmaner: /* Asus Eee PC model 701 repository from toofishes */</p>
<hr />
<div>{{stub}}<br />
[[Category:Getting and installing Arch (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|Русский|Инсталляция Arch Linux на Asus EEE PC}}<br />
{{i18n_links_end}}<br />
<br />
<br />
'''WARNING: THIS ARTICLE IS INCOMPLETE!''' Visit the Arch forum thread link below to get information on installing Arch Linux on the Asus EEE PC. <br />
<br />
Most of this information is from the [http://bbs.archlinux.org/viewtopic.php?pid=297632 Arch Forum]. You can also find a lot of helpful information from the [http://forum.eeeuser.com/ EEEUser Forum]. There is also a nice Arch Linux installation guide on the [http://wiki.eeeuser.com/installingarchlinux EeeUser Wiki].<br />
<br />
Users of 901/1000 series Eee PCs should follow the [[Asus Eee PC 901|work in progress guide]].<br />
User of S101 could also check [[Asus Eee PC S101|work in progress guide]]<br />
<br />
==Before You Begin==<br />
<br />
===Avoiding Pitfalls===<br />
<br />
The install is pretty normal, except that you'll need to [http://forum.eeeuser.com/viewtopic.php?id=890 avoid the pitfalls] of our alternative Linux install:<br />
<br />
# Never choose to use a journaling file system on the SSD partitions<br />
# Never use a swap partition on the SSD<br />
# Edit your new installation fstab to mount the SSD partitions "noatime"<br />
# Never log messages or error log to the SSD<br />
<br />
The rules ensure that we won't reach the maximum limit of writes on our SSD faster than we should, although this is being contested (see [http://wiki.eeeuser.com/ssd_write_limit this link] and [http://www.storagesearch.com/ssdmyths-endurance.html this other link]).<br />
<br />
Some other minor modifications can be made to decrease number of non-mandatory writes by applications: deactivate {{Filename|~/.viminfo}} in vi, deactivate less history file ({{Filename|~/.lesshst}}), and so on.<br />
<br />
===Choosing Your Installation Media===<br />
<br />
The Eee PC does not have an optical drive installed on the machine. This means you will need to install Arch Linux through one of the alternative methods:<br />
<br />
# [[Beginners_Guide#USB_stick|USB stick]] '''(Recommended)'''<br />
# External USB CD-ROM drive<br />
# [[PXE|Network (PXE)]]<br />
<br />
==Installing Arch Linux==<br />
<br />
With the release of the 2009.08 installation media, installing Arch Linux on Asus Eee PC model 701 is very easy and straightforward since the stock kernel on Arch installation media support all of the 701 hardwares out of the box. <br />
<br />
Therefore, you should be able to install Arch Linux on the 701 by following instructions on [[Beginners_Guide|Beginners' Guide]] without any problem.<br />
<br />
===Prepare Hard Drive===<br />
<br />
The default Eee PC drive is split up into four partitions (here is [http://forum.eeeuser.com/viewtopic.php?id=1805 some information] about the partitioning): <br />
<br />
* It is easiest to wipe the existing partitions and use one or two partitions for your install. One partition would be just '/', and two partitions would be '/boot' and '/'.<br />
* Choose "NONE" for swap in case your eee has a SSD (see #2 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]])<br />
* Select "ext2" as your filesystem in case your eee has a SSD (see #1 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]]). If your model has a standard HD choose "ext3".<br />
<br />
===Asus Eee PC model 701 repository from toofishes===<br />
<br />
Toofishes created a repository for the 701. The repository contained customized kernel built specifically for the 701 and some additional packages. <br />
<br />
While the stock Arch kernel works very well with the 701, toofishes kernel have the following advantages:<br />
<br />
* Faster boot time &ndash; because most of the modules have been compile into the kernel, no time is wasted waiting for the modules to load<br />
* No need to generate initial ramdisk every time a kernel is upgrade <br />
* Smaller size (around 4MB)<br />
<br />
To use the repository, add:<br />
[eee]<br />
Server = http://code.toofishes.net/packages/eee<br />
to your {{Filename|/etc/pacman.conf}} and then issue:<br />
pacman -Syu<br />
<br />
====Package List====<br />
Currently, toofishes' repository contains the following packages:<br />
<br />
*'''kernel-eee''' &ndash; customized kernel for Asus Eee PC model 701<br />
*'''luvcview''' &ndash; webcam program for testing webcam driver<br />
<br />
====Kernel-eee Installation Instruction====<br />
Simply use pacman to install the package you need. Install the packages with this command:<br />
# pacman -Sy kernel-eee<br />
<br />
Then, add the following to {{Filename|/boot/grub/menu.lst}}; note that no initrd is needed:<br />
# (2) Arch Linux<br />
title Arch Linux Eee kernel<br />
root (hd0,0)<br />
kernel /boot/vmlinuzeee root=/dev/sda1 ro<br />
<br />
Restart and select Arch Linux Eee kernel from the grub boot menu.<br />
<br />
===Add the Final Touch===<br />
<br />
After you have install kernel-eee and all the related packages as noted above, make these edits to {{Filename|/etc/fstab}}:<br />
<br />
* Add "noatime" and "nodiratime" to the options of your mounts (see #3 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]])<br />
* '''OPTIONAL:''' Add a new line: {{Codeline|"tmpfs /var/log tmpfs size&#61;1M 0 0"}} ('''WARNING:''' this will delete all your logs! See #4 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]]. To save your startup/shutdown logs, look at the pitfalls link above).<br />
<br />
==Getting Everything Working==<br />
<br />
By now, you should have Arch installed. The following is the guide on how to get the rest of your system working.<br />
<br />
===X===<br />
<br />
Install X by follow instructions on the [[Beginners_Guide#Step_2:_Install_X|Beginners' Guide]], then install the Intel graphics driver:<br />
# pacman -Sy xf86-video-intel<br />
<br />
You may also wish to install the Synaptics drivers for the touchpad (not needed for Eee PC 900):<br />
# pacman -Sy xf86-input-synaptics<br />
<br />
With the latest version of X from extra repository, X should work on the 701 '''without any need for xorg.conf'''. However, if for some reason you wish to use an xorg.conf file, you can use an old [[Example_Xorg_configuration_file_for_Asus_Eee_PC_701|example Xorg configuration file for Asus Eee PC model 701]] as a template or automatically generate a new one by running the following command:<br />
<br />
# Xorg -configure<br />
<br />
Consult [[Xorg_input_hotplugging|Xorg Input Hotplugging]] for more information on how to config input devices using HAL.<br />
<br />
The synaptics stuff can be removed if you have a EEE PC 900. The {{Codeline|Option "AutoAddDevices"}} line is important if you need a non-default XkbLayout, because if you don't have it, xorg will find 3 keyboards (at least with the 900 model).<br />
The Modeline has obviously to be removed or modified if you dont have a model with this resolution.<br />
<br />
===Sound, Webcam & Microphone===<br />
<br />
====Sound====<br />
<br />
Some people have reported sound working right out of the box with no troubles. However, others might need to add to {{Filename|/etc/modprobe.conf}} the following line for the EeePC 701<br />
options snd-hda-intel model=3stack-dig<br />
or the following one for the EeePC 900 model<br />
options snd-hda-intel model=auto<br />
<br />
If your internal microphone doesn't work, you probably have to turn the capture feature on. Simply fire up alsamixer, find your Capture control, and press spacebar to enable it.<br />
<br />
====Webcam====<br />
<br />
You can enable your built-in webcam by adding the following line to your {{Filename|/etc/rc.local}} file.<br />
<br />
echo 1 > /sys/devices/platform/eeepc/camera<br />
<br />
If you want the webcam application that the default Xandos installation uses, install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14469 ucview from the AUR].<br />
<br />
The webcam also works fine with the latest version of Skype.<br />
<br />
If you already have mplayer installed you can launch:<br />
$ mplayer -fps 15 tv://<br />
<br />
I have yet to get it working with vlc or any other software such as xawtv. If you know how, please update this.<br />
<br />
*'''NOTE:''' For anyone who has accidentally disabled Auto Exposure for their webcam in luvcview (making the image dark), and can't enable it again, do the following:<br />
<br />
Install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14468 libwebcam from the AUR].<br />
<br />
Issue the following command:<br />
$ uvcdynctrl --set "Exposure, Auto" 4<br />
<br />
{{Note | Be sure the "OS Installation" option is set to "finished" in the BIOS' "Advanced" tab or your camera may not work in some applications (like Skype).}}<br />
<br />
{{Note | Make sure you are a member of the video group edit /etc/group and add your username to video}}<br />
<br />
====Microphone====<br />
<br />
Solution for problems with the internal microphone.<br />
<br />
1. First of all set in alsamixer "Input Source" to "i-Mic"<br />
<br />
2. Increase "Capture" and "i-Mic Boost" to your needs<br />
<br />
3. Edit {{Filename|/etc/asound.state}} the following, change the 2 "false" to "true" like showing:<br />
....snap.....<br />
control.11 {<br />
comment.access 'read write'<br />
comment.type BOOLEAN<br />
comment.count 2<br />
iface MIXER<br />
name 'Capture Switch'<br />
value.0 true<br />
value.1 true<br />
}<br />
....snap....<br />
<br />
4. After editing run following as root<br />
# alsactl restore<br />
<br />
5. Now your internal microphone should be working.<br />
<br />
===Getting Hot Keys, Graphic Indicators and Shutdown with the Power Button Working===<br />
<br />
If you want to have working hot keys (wifi, brightness, volume etc), an OSD, and be able to assign actions to things like the powerbutton and closing the lid, then you should install '''ighea's acpi-eee''' package.<br />
<br />
==== ighea's acpi-eee ====<br />
<br />
Get the latest package from [http://kapsi.fi/ighea/eee/acpi-eee/ here].<br />
<br />
The package can be easily installed with:<br />
# pacman -U acpi-eee-10.0-1-i686.pkg.tar.gz<br />
<br />
See messages during installation for more details and don't forget to edit {{Filename|/etc/acpi/eee.conf}} to suit your tastes.<br />
<br />
*For those who use the wireless on/off acpi command; the {{Codeline|NETWORK_UP_COMMAND&#61;""}} setting in {{Filename|/etc/acpi/eee.conf}}, when applicable, should at least release the network. For example, using netcfg2, {{Codeline|NETWORK_UP_COMMAND&#61;"netcfg2 -a"}} will release the connections from before disabling wireless, allowing new ones to be made without netcfg thinking that it's already connected. It is also possible to reconnect to your previous network, however, the network tool you use needs to have a somewhat lengthy timeout as it takes 15-20 seconds for your wireless device to reappear. <br />
<br />
{{Note | Make sure '''asusosd''' is enabled on startup if you want to have the Graphic Indicators from Xandros. To run asusosd simply type {{Codeline|asusosd &}} at a command prompt.}}<br />
<br />
==Additional Tips & Tweaks==<br />
<br />
===Tweaking kernel-eee===<br />
<br />
Toofishes' kernel, also known as kernel-eee, can be recompiled to include custom features. You can download toofishes' kernel PKGBUILD and all the nesseary files from his gitweb by installing the git package and using the following command:<br />
<br />
$ git clone git://code.toofishes.net/dan/eee.git<br />
<br />
or if you are behind a proxy and can't use the git protocol:<br />
<br />
$ git clone http://code.toofishes.net/git/dan/eee.git<br />
<br />
There are two ways to tweak the kernel. The first is simply to edit the {{Filename|kernelconfig}} file with your favorite editor and the second is to insert a {{Codeline|make menuconfig}} line into the PKGBUILD before the kernel's compilation.<br />
<br />
===Using Wine with toofishes' kernel===<br />
<br />
Normally, Wine won't work with toofishes' kernel because it is compiled with VMSPLIT_2G_OPT option. In order to use Wine with toofishes' kernel, you have to recompile his kernel with VMSPLIT_3G option.<br />
<br />
Download the kernel PKGBUILD and all the necessary files from toofishes' gitweb using the above instructions, then change the following lines in the {{Filename|kernelconfig}} file from this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 # CONFIG_VMSPLIT_3G is not set<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 CONFIG_VMSPLIT_2G_OPT=y<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
to this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 CONFIG_VMSPLIT_3G=y<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 # CONFIG_VMSPLIT_2G_OPT is not set<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
<br />
Compile and install the kernel and Wine should now work.<br />
<br />
===Power down with the power button===<br />
<br />
{{Note | If you are using ighea's acpi-eee or dkite's acpid_eee package then you should already be able to shutdown by pressing the power button and should not need to do this.}}<br />
<br />
The two alternatives here are described in [[Allow users to shutdown]].<br />
<br />
If you don't already or don't plan to use sudo, it may be simpler to use the setuid /sbin/halt method, otherwise using sudo is preferred.<br />
<br />
Below are all the steps required for the sudo method. If you want to use the setuid method, read the article linked above and perform the 'power' file step here, while omitting the 'sudo' in it.<br />
<br />
# pacman -S sudo<br />
<br />
As root, do the following:<br />
# visudo<br />
<br />
Add the following line to the file:<br />
USER HOST = NOPASSWD: /sbin/poweroff<br />
<br />
Where {{Codeline|USER}} is the user you want to be able to power down with and {{Codeline|HOST}} is your hostname (from {{Filename|/etc/rc.conf}}).<br />
<br />
Now, create a file called {{Filename|/etc/acpi/events/power}}, containing:<br />
# /etc/acpi/events/power<br />
# This is called when the user presses the power button<br />
<br />
event=button/power (PWR.||PBTN)<br />
action=sudo /sbin/poweroff<br />
<br />
Make sure that you execute:<br />
# /etc/rc.d/acpid start<br />
<br />
And/or add acpid to the daemons list in {{Filename|/etc/rc.conf}}:<br />
DAEMONS=(hal, acpid ...)<br />
<br />
===Use cpufreq for power saving===<br />
<br />
{{Note | toofishes dropped CPU scaling from his latest kernel builds, due to the fact, confirmed by other users, that there were no effective power savings with p4-clockmod's module, and it introduced "unacceptable latency", even with relatively low percentage up thresholds.}}<br />
<br />
Install cpufrequtitls:<br />
# pacman -S cpufrequtils<br />
<br />
For scaling down the processor you have to load the p4_clockmod module. Insert it into your {{Filename|/etc/rc.conf}} MODULES array for loading it at startup. <br />
MODULES=(... p4_clockmod ...)<br />
<br />
Add 'cpufreq' to the DAEMONS array in {{Filename|/etc/rc.conf}} to have it start on startup.<br />
DAEMONS=(... cpufreq ...)<br />
<br />
Add the following into {{Filename|/etc/conf.d/cpufreq}}:<br />
governor="ondemand"<br />
min_freq="113MHz"<br />
max_freq="900MHz"<br />
<br />
With enabled cpufreq it scales the processor between 113MHz up to max. frequency. That should save a lot on battery power. The stated 900MHz will be never reached by the eeePC, the p4_clockmod reports a wrong frequency here. But scaling works, you can feel it in the performance of eeePC that he slow down the processor.<br />
<br />
{{Note | The merits of p4-clockmod are debatable. Particularly on the EEEPC 701, battery time isn't extended due to its usage, and some users have even reported less battery duration. More hints to the reasons why can be read in [http://www.codemonkey.org.uk/2009/01/18/forthcoming-p4clockmod/ this] fine blog entry.}}<br />
<br />
===More responsive system with ondemand governor===<br />
The default up_threshold (where it will bump to a faster speed) for the CPU governor is 80, which means it will increase the CPU speed when utilization is above 80%. This can make X applications have a bit of lag. <br />
<br />
Try changing this value:<br />
$ sudo bash -c "echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold"<br />
<br />
With 40 it still leaves the majority of CPU cycles at the lowest available clock speed but increases responsiveness. You can add this line to one of your startup scripts (such as {{Filename|/etc/rc.local}}) if you wish to keep it, for example:<br />
<br />
#!/bin/bash<br />
#<br />
# /etc/rc.local: Local multi-user startup script.<br />
#<br />
<br />
echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold<br />
<br />
Also, following line is also reported to help makes system more responsive. You can use it by adding it to your {{Filename|/etc/rc.local}}:<br />
echo 2000000 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate<br />
<br />
===Speeding up udev for faster boot===<br />
*[[Speedup udev]]<br />
*http://dev.laptop.org/ticket/4349<br />
*[http://www.eeesale.com/Asus-Eee-PC-overclock-Benchmarks.htm Speed up the Eee PC]<br />
<br />
You can also disable the autoload by editing your {{Filename|[[rc.conf]]}}:<br />
...<br />
MOD_AUTOLOAD="no"<br />
...<br />
MODULES=(pciehp ath5k)<br />
<br />
===Update your BIOS without Xandros===<br />
{{Warning | You can break your system, do not update if you are not sure of what you are doing!}}<br />
<br />
First, you need to download the ''.rom'' file.<br />
*[http://update.eeepc.asus.com/bios/ Asus' official BIOS]<br />
*[http://forum.eeeuser.com/viewtopic.php?id=3485 EeeUser's topic]<br />
<br />
You also need an USB stick formatted in FAT32. To format the USBStick, use the cfdisk tool:<br />
# cfdisk /dev/sdc # could be something else than "c"<br />
<br />
Choose [delete], [type]: "fat32" (code 0B), [write] and then exit with [quit].<br />
<br />
NOTE to EEE PC 900 owners and possibly others: Using this method will require a flash drive formatted with a '''FAT16''' file-system. If the BIOS update process hangs up at "Reading file 900.ROM" for more than a few minutes then it should be safe to power down your EEE PC and reformat your flashdrive's file-system to the correct one. You can force FAT16 creation with the following command:<br />
# mkdosfs -F 16 /dev/device-path<br />
<br />
Now just copy the ''.rom'' on the USBStick :<br />
$ cp /somewhere/blabla/.../thecurrentnameofthefile.ROM /path/to/mounted/usb_stick/701.rom<br />
The name of the copy '''must''' be xxxx.rom where xxxx is the model of your eee PC. (i.e. 900 users it's 900.rom)<br />
<br />
Next step, reboot the eeepc with the USB stick pluged-in, and press Alt+F2. It will launch the built-in tool. Everything should be Ok, you can make a coffee during the update. When it asks you to push the power-button it has finished.<br />
<br />
At the next boot, you'll be invited to configure the BIOS. Check if the everything is enabled (my webcam and wireless were disabled after the update) and if it displays the good version in the main screen. It's done!<br />
<br />
=== More usable font sizes ===<br />
<br />
====The_glu's method====<br />
<br />
I found an easy solution that works on a 901:<br />
<br />
Edit {{Filename|/etc/X11/xinit/xserverrc}} and add "-dpi 134":<br />
exec /usr/bin/X -nolisten tcp -dpi 134<br />
<br />
Restart X and fonts should have the correct size. Notice it's won't works if you have Xft*dpi: in your {{Filename|.XDefaults}}.<br />
<br />
You don't need to edit your config file to set a smaller font size, I you did you should set font-size to 10 or you will have to small fonts...<br />
<br />
==== Old method ====<br />
<br />
On a default installation with Xfce 4 my font sizes were too big, here is what I did to sort them out.<br />
<br />
First, I set the DPI by adding the following to {{Filename|~/.Xdefaults}}:<br />
Xft*dpi: 134<br />
<br />
This then caused the fonts to be even bigger, so I set them all to be font-size 6 by adding the following into {{Filename|~/.gtkrc-2.0}} (note that this will be overwritten if you use any tools to change GTK settings):<br />
style "user-font"<br />
{<br />
font_name="Bitstream Vera Sans 6"<br />
}<br />
widget_class "*" style "user-font"<br />
<br />
To do the same with KDE fonts (without KDE installed) you have to add the following to {{Filename|~/.kde/share/config/kdeglobals}}:<br />
[General]<br />
StandardFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
activeFont=Bitstream Vera Sans,6,-1,5,75,0,0,0,0,0<br />
fixed=Bitstream Vera Sans Mono,6,-1,5,50,0,0,0,0,0<br />
font=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
menuFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
taskbarFont=Bitstream Vera Sans,6,-1,5,50,1,0,0,0,0<br />
toolBarFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
<br />
To make your fonts even prettier enable the [[Fonts#Fonts_with_LCD_filter_enabled|LCD Fonts]].<br />
<br />
==== Alternative Method ====<br />
<br />
For me it worked far better to open the gnome appearance control panel, go to the fonts tab, click defaults, and change the resolution to be 96 dpi. Changing .Xdefaults doesnt work when running gnome, as gnome-settings-daemon overrides it. You can then leave all font sizes at their default, and things should look good. Simply changing the font sizes and leaving the DPI at its technically correct value (~134) gave me weird layout problems in some apps, and oddly large fonts in others.<br />
<br />
==Known problems and their solutions==<br />
<br />
===Wireless doesn't work, even after installing custom Madwifi module===<br />
<br />
I found that Arch tried to use the ath5k module for wireless, and that meant it took control of the card rather than ath_pci (the module I had compiled and installed). I got a Madwifi status 3 message in dmesg when this happened.<br />
<br />
The solution is to blacklist the ath5k module in {{Filename|/etc/rc.conf}}:<br />
<br />
MODULES = ( ... !ath5k ... )<br />
<br />
===Laggy or Unresponsive ACPI Events===<br />
<br />
The latest kernel (2.6.26) introduces new problems with Eee's ACPI events handling. Basically, ACPI events become very laggy and after some time ACPI get disabled after a heavy usage (e.g. changing volume, brightness). This problem affects both stock kernel and toofishes' kernel.<br />
<br />
It appears that the solution is to apply this [http://bugzilla.kernel.org/attachment.cgi?id=16862 patch] ([http://bugzilla.kernel.org/show_bug.cgi?id=10724 original bug report]) to the kernel. <br />
<br />
{{Note | The latest toofishes' kernel, version 2.6.26-1, now includes the patch, but you can still use ighea's one for the extras features listed below.}}<br />
<br />
Until toofishes update his kernel to include the patch, you can use ighea's slightly modified toofishes' kernel that included the above patch, as well as other modifications:<br />
<br />
*Support for Wine <br />
*uvesafb is built as module <br />
*Use [http://bbs.archlinux.org/viewtopic.php?pid=393860#p393860 new eeepc-laptop driver] (which also handles fan-control) instead of older acus_acpi or asus-laptop -drivers.<br />
<br />
You can get the modified kernel, as well as the associative packages, from [http://koti.kapsi.fi/~ighea/eee/kernel-eee/ here].<br />
<br />
After you have downloaded the packages, Install them using this command:<br />
# pacman -U kernel-eee-2.6.26-1-i686.pkg.tar.gz madwifi-eee-svn-3752-1-i686.pkg.tar.gz <br />
<br />
You might also want to use IgnorePkg-line in {{Filename|/etc/pacman.conf}} to hold packages from being accidentally updated.<br />
IgnorePkg = kernel-eee madwifi-eee-svn<br />
<br />
Also don't forget to upgrade ighea's acpi-eee package to version 9.6.<br />
<br />
===Shutdown Problem===<br />
<br />
If your Eee won't shutdown properly (i.e. the power indicator LED is on but the LCD screen is off), then add the following lines to your {{Filename|/etc/rc.local.shutdown}} file.<br />
<pre><br />
#! /bin/bash<br />
#<br />
# /etc/rc.local.shutdown: Local shutdown script.<br />
#<br />
<br />
# Comment or uncomment the following two lines according to your system configuration.<br />
<br />
/etc/rc.d/mpd stop # If you're using mpd, then you have to stop its daemon first.<br />
<br />
/etc/rc.d/alsa stop # If you're using ALSA daemon, then you also have to stop it.<br />
<br />
# The following line is Eee specific fix, you always need to have this line in /etc/rc.local.shutdown.<br />
<br />
echo -n "0000:00:1b.0" > /sys/bus/pci/drivers/HDA\ Intel/unbind<br />
</pre><br />
<br />
The above solution should fix the shutdown problem in most cases. But if for some reason the problem still persists, the module may not be able to be unloaded until after all services have finished. Do the above, then in {{Filename|/etc/rc.shutdown}} move <br />
<br />
if [ -x /etc/rc.local.shutdown ]; then<br />
/etc/rc.local.shutdown<br />
fi<br />
<br />
from where it was to directly above the line <br />
<br />
# Terminate all processes<br />
<br />
this will cause the {{Filename|rc.local.shutdown}} script to run after services have been exited. This fixed all issues for the person editing this note.<br />
<br />
===Unclean unmount during shutdown when having home directory mounted on SD card===<br />
<br />
If you experienced unclean unmount during shutdown when having your home directory on SD card, then add the following 3 lines to "Write to wtmp file before unmounting" section of your {{Filename|/etc/rc.shutdown}} file:<br />
<pre><br />
...<br />
<br />
stat_busy "Unmounting Filesystems"<br />
/bin/umount -a -t noramfs,notmpfs,nosysfs,noproc<br />
<br />
# Add these 3 lines<br />
sync;sync;sync;<br />
eject /dev/sdb # Or whichever is your SD-card's device name. /dev/disk/by-uuid/ followed by the UUID identifier is preferable though.<br />
sleep 3<br />
# End of hack<br />
<br />
stat_done<br />
<br />
...<br />
</pre><br />
<br />
===Booting from card without initrd===<br />
<br />
Let's say you decided to install Arch Linux on a card and compiled your own kernel (or used the kernel26eee kernel) without initrd. Card reader on EeePC is connected as an USB device. Unfortunately, USB storage devices are detected with a delay, so we must tell the kernel to wait until this device becomes available. You do this with "rootwait" option passed to kernel at boot time.<br />
<br />
===Sleeping and waking system on a card===<br />
<br />
If you have Arch Linux on a card, waking up from sleeping state will most likely fail. The only solution is to enable the CONFIG_USB_PERSIST option in kernel. The kernel26eee package should have this option enabled.<br />
<br />
The command to do this is:<br />
echo 1 >/sys/bus/usb/devices/.../power/persist<br />
<br />
Replace the {{Codeline|"..."}} with the device like 1-3 or 1-5 where the first number is the bus and the second is the device <br />
<br />
Each device that is connected to your computer gets an entry in the sysfs "system file system" it is a virtual file system like proc<br />
<br />
More info:<br />
*http://www.mjmwired.net/kernel/Documentation/usb/persist.txt<br />
*http://forum.eeeuser.com/viewtopic.php?id=22712<br />
<br />
===Display doesn't wake up properly===<br />
<br />
If you encounter black display (but apparently working system) after suspend/resume, consider using the "uswsusp" package (available in the official repositories) and correcting suspend2ram script in /etc/acpi, where you use this line to make the machine go to sleep:<br />
<br />
/usr/sbin/s2ram --force --vbe_post --vbe_mode<br />
<br />
==Battery Tests==<br />
<br />
The following are reported battery runtimes:<br />
<br />
{| class="wikitable" style="text-align:left"<br />
|+Battery runtimes<br />
|-<br />
! Task !! Series !! Wireless !! Screen Brightness !! FSB Speed !! Fan Speed !! Runtime !! Comments<br />
|-<br />
! DVD Playback<br />
| 701 || On || Max || 85mhz || 100% || 134min || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! DVD Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! AVI Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading AVI from SSD<br />
|-<br />
! IM and Surf<br />
| 701 || On || ~30% || ??? || low || 173min || Normal web-browsing, Flash should reduce runtime a lot !<br />
|-<br />
! Programming and PDF reading<br />
| 1000HA || Off || ~40% || ??? || low || +6hs || Using Evince and SPE under XFCE with camera and USB disabled<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || +4hs || Stock kernel without laptop-mode<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || 5hs || Stock kernel with laptop-mode and other tweaks<br />
|}<br />
<br />
N.B. - Will add battery runtimes as I am able to test them, please contribute.<br />
<br />
-- Grecko.1<br />
<br />
Still tweaking, but disabling everything from BIOS got me about 6 hours and a half. With eee-kernel, I *could* get a little more.<br />
<br />
-- ekuber</div>Zodmanerhttps://wiki.archlinux.org/index.php?title=ASUS_Eee_PC_701&diff=86151ASUS Eee PC 7012009-12-03T11:52:43Z<p>Zodmaner: /* Tweaking kernel26eee */</p>
<hr />
<div>{{stub}}<br />
[[Category:Getting and installing Arch (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|Русский|Инсталляция Arch Linux на Asus EEE PC}}<br />
{{i18n_links_end}}<br />
<br />
<br />
'''WARNING: THIS ARTICLE IS INCOMPLETE!''' Visit the Arch forum thread link below to get information on installing Arch Linux on the Asus EEE PC. <br />
<br />
Most of this information is from the [http://bbs.archlinux.org/viewtopic.php?pid=297632 Arch Forum]. You can also find a lot of helpful information from the [http://forum.eeeuser.com/ EEEUser Forum]. There is also a nice Arch Linux installation guide on the [http://wiki.eeeuser.com/installingarchlinux EeeUser Wiki].<br />
<br />
Users of 901/1000 series Eee PCs should follow the [[Asus Eee PC 901|work in progress guide]].<br />
User of S101 could also check [[Asus Eee PC S101|work in progress guide]]<br />
<br />
==Before You Begin==<br />
<br />
===Avoiding Pitfalls===<br />
<br />
The install is pretty normal, except that you'll need to [http://forum.eeeuser.com/viewtopic.php?id=890 avoid the pitfalls] of our alternative Linux install:<br />
<br />
# Never choose to use a journaling file system on the SSD partitions<br />
# Never use a swap partition on the SSD<br />
# Edit your new installation fstab to mount the SSD partitions "noatime"<br />
# Never log messages or error log to the SSD<br />
<br />
The rules ensure that we won't reach the maximum limit of writes on our SSD faster than we should, although this is being contested (see [http://wiki.eeeuser.com/ssd_write_limit this link] and [http://www.storagesearch.com/ssdmyths-endurance.html this other link]).<br />
<br />
Some other minor modifications can be made to decrease number of non-mandatory writes by applications: deactivate {{Filename|~/.viminfo}} in vi, deactivate less history file ({{Filename|~/.lesshst}}), and so on.<br />
<br />
===Choosing Your Installation Media===<br />
<br />
The Eee PC does not have an optical drive installed on the machine. This means you will need to install Arch Linux through one of the alternative methods:<br />
<br />
# [[Beginners_Guide#USB_stick|USB stick]] '''(Recommended)'''<br />
# External USB CD-ROM drive<br />
# [[PXE|Network (PXE)]]<br />
<br />
==Installing Arch Linux==<br />
<br />
With the release of the 2009.08 installation media, installing Arch Linux on Asus Eee PC model 701 is very easy and straightforward since the stock kernel on Arch installation media support all of the 701 hardwares out of the box. <br />
<br />
Therefore, you should be able to install Arch Linux on the 701 by following instructions on [[Beginners_Guide|Beginners' Guide]] without any problem.<br />
<br />
===Prepare Hard Drive===<br />
<br />
The default Eee PC drive is split up into four partitions (here is [http://forum.eeeuser.com/viewtopic.php?id=1805 some information] about the partitioning): <br />
<br />
* It is easiest to wipe the existing partitions and use one or two partitions for your install. One partition would be just '/', and two partitions would be '/boot' and '/'.<br />
* Choose "NONE" for swap in case your eee has a SSD (see #2 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]])<br />
* Select "ext2" as your filesystem in case your eee has a SSD (see #1 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]]). If your model has a standard HD choose "ext3".<br />
<br />
===Asus Eee PC model 701 repository from toofishes===<br />
<br />
toofishes created a repository for the 701. The repository contained customized kernel built specifically for the 701 and some additional packages. <br />
<br />
While the stock Arch kernel works very well with the 701, toofishes kernel have the following advantages:<br />
<br />
* Faster boot time &ndash; because most of the modules have been compile into the kernel, no time is wasted waiting for the modules to load<br />
* No need to generate initial ramdisk every time a kernel is upgrade <br />
* Smaller size (around 4MB)<br />
<br />
To use the repository, add:<br />
[eee]<br />
Server = http://code.toofishes.net/packages/eee<br />
to your {{Filename|/etc/pacman.conf}} and then issue:<br />
pacman -Syu<br />
<br />
====Package List====<br />
Currently, toofishes' repository contains the following packages:<br />
<br />
*'''kernel-eee''' &ndash; customized kernel for Asus Eee PC model 701<br />
*'''luvcview''' &ndash; webcam program for testing webcam driver<br />
<br />
====Kernel-eee Installation Instruction====<br />
Simply use pacman to install the package you need. Install the packages with this command:<br />
# pacman -Sy kernel-eee<br />
<br />
Then, add the following to {{Filename|/boot/grub/menu.lst}}; note that no initrd is needed:<br />
# (2) Arch Linux<br />
title Arch Linux Eee kernel<br />
root (hd0,0)<br />
kernel /boot/vmlinuzeee root=/dev/sda1 ro<br />
<br />
Restart and select Arch Linux Eee kernel from the grub boot menu.<br />
<br />
===Add the Final Touch===<br />
<br />
After you have install kernel-eee and all the related packages as noted above, make these edits to {{Filename|/etc/fstab}}:<br />
<br />
* Add "noatime" and "nodiratime" to the options of your mounts (see #3 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]])<br />
* '''OPTIONAL:''' Add a new line: {{Codeline|"tmpfs /var/log tmpfs size&#61;1M 0 0"}} ('''WARNING:''' this will delete all your logs! See #4 in [[Installing_Arch_Linux_on_the_Asus_EEE_PC#Avoiding_Pitfalls|Avoiding Pitfalls]]. To save your startup/shutdown logs, look at the pitfalls link above).<br />
<br />
==Getting Everything Working==<br />
<br />
By now, you should have Arch installed. The following is the guide on how to get the rest of your system working.<br />
<br />
===X===<br />
<br />
Install X by follow instructions on the [[Beginners_Guide#Step_2:_Install_X|Beginners' Guide]], then install the Intel graphics driver:<br />
# pacman -Sy xf86-video-intel<br />
<br />
You may also wish to install the Synaptics drivers for the touchpad (not needed for Eee PC 900):<br />
# pacman -Sy xf86-input-synaptics<br />
<br />
With the latest version of X from extra repository, X should work on the 701 '''without any need for xorg.conf'''. However, if for some reason you wish to use an xorg.conf file, you can use an old [[Example_Xorg_configuration_file_for_Asus_Eee_PC_701|example Xorg configuration file for Asus Eee PC model 701]] as a template or automatically generate a new one by running the following command:<br />
<br />
# Xorg -configure<br />
<br />
Consult [[Xorg_input_hotplugging|Xorg Input Hotplugging]] for more information on how to config input devices using HAL.<br />
<br />
The synaptics stuff can be removed if you have a EEE PC 900. The {{Codeline|Option "AutoAddDevices"}} line is important if you need a non-default XkbLayout, because if you don't have it, xorg will find 3 keyboards (at least with the 900 model).<br />
The Modeline has obviously to be removed or modified if you dont have a model with this resolution.<br />
<br />
===Sound, Webcam & Microphone===<br />
<br />
====Sound====<br />
<br />
Some people have reported sound working right out of the box with no troubles. However, others might need to add to {{Filename|/etc/modprobe.conf}} the following line for the EeePC 701<br />
options snd-hda-intel model=3stack-dig<br />
or the following one for the EeePC 900 model<br />
options snd-hda-intel model=auto<br />
<br />
If your internal microphone doesn't work, you probably have to turn the capture feature on. Simply fire up alsamixer, find your Capture control, and press spacebar to enable it.<br />
<br />
====Webcam====<br />
<br />
You can enable your built-in webcam by adding the following line to your {{Filename|/etc/rc.local}} file.<br />
<br />
echo 1 > /sys/devices/platform/eeepc/camera<br />
<br />
If you want the webcam application that the default Xandos installation uses, install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14469 ucview from the AUR].<br />
<br />
The webcam also works fine with the latest version of Skype.<br />
<br />
If you already have mplayer installed you can launch:<br />
$ mplayer -fps 15 tv://<br />
<br />
I have yet to get it working with vlc or any other software such as xawtv. If you know how, please update this.<br />
<br />
*'''NOTE:''' For anyone who has accidentally disabled Auto Exposure for their webcam in luvcview (making the image dark), and can't enable it again, do the following:<br />
<br />
Install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14468 libwebcam from the AUR].<br />
<br />
Issue the following command:<br />
$ uvcdynctrl --set "Exposure, Auto" 4<br />
<br />
{{Note | Be sure the "OS Installation" option is set to "finished" in the BIOS' "Advanced" tab or your camera may not work in some applications (like Skype).}}<br />
<br />
{{Note | Make sure you are a member of the video group edit /etc/group and add your username to video}}<br />
<br />
====Microphone====<br />
<br />
Solution for problems with the internal microphone.<br />
<br />
1. First of all set in alsamixer "Input Source" to "i-Mic"<br />
<br />
2. Increase "Capture" and "i-Mic Boost" to your needs<br />
<br />
3. Edit {{Filename|/etc/asound.state}} the following, change the 2 "false" to "true" like showing:<br />
....snap.....<br />
control.11 {<br />
comment.access 'read write'<br />
comment.type BOOLEAN<br />
comment.count 2<br />
iface MIXER<br />
name 'Capture Switch'<br />
value.0 true<br />
value.1 true<br />
}<br />
....snap....<br />
<br />
4. After editing run following as root<br />
# alsactl restore<br />
<br />
5. Now your internal microphone should be working.<br />
<br />
===Getting Hot Keys, Graphic Indicators and Shutdown with the Power Button Working===<br />
<br />
If you want to have working hot keys (wifi, brightness, volume etc), an OSD, and be able to assign actions to things like the powerbutton and closing the lid, then you should install '''ighea's acpi-eee''' package.<br />
<br />
==== ighea's acpi-eee ====<br />
<br />
Get the latest package from [http://kapsi.fi/ighea/eee/acpi-eee/ here].<br />
<br />
The package can be easily installed with:<br />
# pacman -U acpi-eee-10.0-1-i686.pkg.tar.gz<br />
<br />
See messages during installation for more details and don't forget to edit {{Filename|/etc/acpi/eee.conf}} to suit your tastes.<br />
<br />
*For those who use the wireless on/off acpi command; the {{Codeline|NETWORK_UP_COMMAND&#61;""}} setting in {{Filename|/etc/acpi/eee.conf}}, when applicable, should at least release the network. For example, using netcfg2, {{Codeline|NETWORK_UP_COMMAND&#61;"netcfg2 -a"}} will release the connections from before disabling wireless, allowing new ones to be made without netcfg thinking that it's already connected. It is also possible to reconnect to your previous network, however, the network tool you use needs to have a somewhat lengthy timeout as it takes 15-20 seconds for your wireless device to reappear. <br />
<br />
{{Note | Make sure '''asusosd''' is enabled on startup if you want to have the Graphic Indicators from Xandros. To run asusosd simply type {{Codeline|asusosd &}} at a command prompt.}}<br />
<br />
==Additional Tips & Tweaks==<br />
<br />
===Tweaking kernel-eee===<br />
<br />
Toofishes' kernel, also known as kernel-eee, can be recompiled to include custom features. You can download toofishes' kernel PKGBUILD and all the nesseary files from his gitweb by installing the git package and using the following command:<br />
<br />
$ git clone git://code.toofishes.net/dan/eee.git<br />
<br />
or if you are behind a proxy and can't use the git protocol:<br />
<br />
$ git clone http://code.toofishes.net/git/dan/eee.git<br />
<br />
There are two ways to tweak the kernel. The first is simply to edit the {{Filename|kernelconfig}} file with your favorite editor and the second is to insert a {{Codeline|make menuconfig}} line into the PKGBUILD before the kernel's compilation.<br />
<br />
===Using Wine with toofishes' kernel===<br />
<br />
Normally, Wine won't work with toofishes' kernel because it is compiled with VMSPLIT_2G_OPT option. In order to use Wine with toofishes' kernel, you have to recompile his kernel with VMSPLIT_3G option.<br />
<br />
Download the kernel PKGBUILD and all the necessary files from toofishes' gitweb using the above instructions, then change the following lines in the {{Filename|kernelconfig}} file from this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 # CONFIG_VMSPLIT_3G is not set<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 CONFIG_VMSPLIT_2G_OPT=y<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
to this:<br />
<pre><br />
...<br />
230 CONFIG_NOHIGHMEM=y<br />
231 # CONFIG_HIGHMEM4G is not set<br />
232 # CONFIG_HIGHMEM64G is not set<br />
233 CONFIG_VMSPLIT_3G=y<br />
234 # CONFIG_VMSPLIT_3G_OPT is not set<br />
235 # CONFIG_VMSPLIT_2G is not set<br />
236 # CONFIG_VMSPLIT_2G_OPT is not set<br />
237 # CONFIG_VMSPLIT_1G is not set<br />
...<br />
</pre><br />
<br />
Compile and install the kernel and Wine should now work.<br />
<br />
===Power down with the power button===<br />
<br />
{{Note | If you are using ighea's acpi-eee or dkite's acpid_eee package then you should already be able to shutdown by pressing the power button and should not need to do this.}}<br />
<br />
The two alternatives here are described in [[Allow users to shutdown]].<br />
<br />
If you don't already or don't plan to use sudo, it may be simpler to use the setuid /sbin/halt method, otherwise using sudo is preferred.<br />
<br />
Below are all the steps required for the sudo method. If you want to use the setuid method, read the article linked above and perform the 'power' file step here, while omitting the 'sudo' in it.<br />
<br />
# pacman -S sudo<br />
<br />
As root, do the following:<br />
# visudo<br />
<br />
Add the following line to the file:<br />
USER HOST = NOPASSWD: /sbin/poweroff<br />
<br />
Where {{Codeline|USER}} is the user you want to be able to power down with and {{Codeline|HOST}} is your hostname (from {{Filename|/etc/rc.conf}}).<br />
<br />
Now, create a file called {{Filename|/etc/acpi/events/power}}, containing:<br />
# /etc/acpi/events/power<br />
# This is called when the user presses the power button<br />
<br />
event=button/power (PWR.||PBTN)<br />
action=sudo /sbin/poweroff<br />
<br />
Make sure that you execute:<br />
# /etc/rc.d/acpid start<br />
<br />
And/or add acpid to the daemons list in {{Filename|/etc/rc.conf}}:<br />
DAEMONS=(hal, acpid ...)<br />
<br />
===Use cpufreq for power saving===<br />
<br />
{{Note | toofishes dropped CPU scaling from his latest kernel builds, due to the fact, confirmed by other users, that there were no effective power savings with p4-clockmod's module, and it introduced "unacceptable latency", even with relatively low percentage up thresholds.}}<br />
<br />
Install cpufrequtitls:<br />
# pacman -S cpufrequtils<br />
<br />
For scaling down the processor you have to load the p4_clockmod module. Insert it into your {{Filename|/etc/rc.conf}} MODULES array for loading it at startup. <br />
MODULES=(... p4_clockmod ...)<br />
<br />
Add 'cpufreq' to the DAEMONS array in {{Filename|/etc/rc.conf}} to have it start on startup.<br />
DAEMONS=(... cpufreq ...)<br />
<br />
Add the following into {{Filename|/etc/conf.d/cpufreq}}:<br />
governor="ondemand"<br />
min_freq="113MHz"<br />
max_freq="900MHz"<br />
<br />
With enabled cpufreq it scales the processor between 113MHz up to max. frequency. That should save a lot on battery power. The stated 900MHz will be never reached by the eeePC, the p4_clockmod reports a wrong frequency here. But scaling works, you can feel it in the performance of eeePC that he slow down the processor.<br />
<br />
{{Note | The merits of p4-clockmod are debatable. Particularly on the EEEPC 701, battery time isn't extended due to its usage, and some users have even reported less battery duration. More hints to the reasons why can be read in [http://www.codemonkey.org.uk/2009/01/18/forthcoming-p4clockmod/ this] fine blog entry.}}<br />
<br />
===More responsive system with ondemand governor===<br />
The default up_threshold (where it will bump to a faster speed) for the CPU governor is 80, which means it will increase the CPU speed when utilization is above 80%. This can make X applications have a bit of lag. <br />
<br />
Try changing this value:<br />
$ sudo bash -c "echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold"<br />
<br />
With 40 it still leaves the majority of CPU cycles at the lowest available clock speed but increases responsiveness. You can add this line to one of your startup scripts (such as {{Filename|/etc/rc.local}}) if you wish to keep it, for example:<br />
<br />
#!/bin/bash<br />
#<br />
# /etc/rc.local: Local multi-user startup script.<br />
#<br />
<br />
echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold<br />
<br />
Also, following line is also reported to help makes system more responsive. You can use it by adding it to your {{Filename|/etc/rc.local}}:<br />
echo 2000000 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate<br />
<br />
===Speeding up udev for faster boot===<br />
*[[Speedup udev]]<br />
*http://dev.laptop.org/ticket/4349<br />
*[http://www.eeesale.com/Asus-Eee-PC-overclock-Benchmarks.htm Speed up the Eee PC]<br />
<br />
You can also disable the autoload by editing your {{Filename|[[rc.conf]]}}:<br />
...<br />
MOD_AUTOLOAD="no"<br />
...<br />
MODULES=(pciehp ath5k)<br />
<br />
===Update your BIOS without Xandros===<br />
{{Warning | You can break your system, do not update if you are not sure of what you are doing!}}<br />
<br />
First, you need to download the ''.rom'' file.<br />
*[http://update.eeepc.asus.com/bios/ Asus' official BIOS]<br />
*[http://forum.eeeuser.com/viewtopic.php?id=3485 EeeUser's topic]<br />
<br />
You also need an USB stick formatted in FAT32. To format the USBStick, use the cfdisk tool:<br />
# cfdisk /dev/sdc # could be something else than "c"<br />
<br />
Choose [delete], [type]: "fat32" (code 0B), [write] and then exit with [quit].<br />
<br />
NOTE to EEE PC 900 owners and possibly others: Using this method will require a flash drive formatted with a '''FAT16''' file-system. If the BIOS update process hangs up at "Reading file 900.ROM" for more than a few minutes then it should be safe to power down your EEE PC and reformat your flashdrive's file-system to the correct one. You can force FAT16 creation with the following command:<br />
# mkdosfs -F 16 /dev/device-path<br />
<br />
Now just copy the ''.rom'' on the USBStick :<br />
$ cp /somewhere/blabla/.../thecurrentnameofthefile.ROM /path/to/mounted/usb_stick/701.rom<br />
The name of the copy '''must''' be xxxx.rom where xxxx is the model of your eee PC. (i.e. 900 users it's 900.rom)<br />
<br />
Next step, reboot the eeepc with the USB stick pluged-in, and press Alt+F2. It will launch the built-in tool. Everything should be Ok, you can make a coffee during the update. When it asks you to push the power-button it has finished.<br />
<br />
At the next boot, you'll be invited to configure the BIOS. Check if the everything is enabled (my webcam and wireless were disabled after the update) and if it displays the good version in the main screen. It's done!<br />
<br />
=== More usable font sizes ===<br />
<br />
====The_glu's method====<br />
<br />
I found an easy solution that works on a 901:<br />
<br />
Edit {{Filename|/etc/X11/xinit/xserverrc}} and add "-dpi 134":<br />
exec /usr/bin/X -nolisten tcp -dpi 134<br />
<br />
Restart X and fonts should have the correct size. Notice it's won't works if you have Xft*dpi: in your {{Filename|.XDefaults}}.<br />
<br />
You don't need to edit your config file to set a smaller font size, I you did you should set font-size to 10 or you will have to small fonts...<br />
<br />
==== Old method ====<br />
<br />
On a default installation with Xfce 4 my font sizes were too big, here is what I did to sort them out.<br />
<br />
First, I set the DPI by adding the following to {{Filename|~/.Xdefaults}}:<br />
Xft*dpi: 134<br />
<br />
This then caused the fonts to be even bigger, so I set them all to be font-size 6 by adding the following into {{Filename|~/.gtkrc-2.0}} (note that this will be overwritten if you use any tools to change GTK settings):<br />
style "user-font"<br />
{<br />
font_name="Bitstream Vera Sans 6"<br />
}<br />
widget_class "*" style "user-font"<br />
<br />
To do the same with KDE fonts (without KDE installed) you have to add the following to {{Filename|~/.kde/share/config/kdeglobals}}:<br />
[General]<br />
StandardFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
activeFont=Bitstream Vera Sans,6,-1,5,75,0,0,0,0,0<br />
fixed=Bitstream Vera Sans Mono,6,-1,5,50,0,0,0,0,0<br />
font=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
menuFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
taskbarFont=Bitstream Vera Sans,6,-1,5,50,1,0,0,0,0<br />
toolBarFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0<br />
<br />
To make your fonts even prettier enable the [[Fonts#Fonts_with_LCD_filter_enabled|LCD Fonts]].<br />
<br />
==== Alternative Method ====<br />
<br />
For me it worked far better to open the gnome appearance control panel, go to the fonts tab, click defaults, and change the resolution to be 96 dpi. Changing .Xdefaults doesnt work when running gnome, as gnome-settings-daemon overrides it. You can then leave all font sizes at their default, and things should look good. Simply changing the font sizes and leaving the DPI at its technically correct value (~134) gave me weird layout problems in some apps, and oddly large fonts in others.<br />
<br />
==Known problems and their solutions==<br />
<br />
===Wireless doesn't work, even after installing custom Madwifi module===<br />
<br />
I found that Arch tried to use the ath5k module for wireless, and that meant it took control of the card rather than ath_pci (the module I had compiled and installed). I got a Madwifi status 3 message in dmesg when this happened.<br />
<br />
The solution is to blacklist the ath5k module in {{Filename|/etc/rc.conf}}:<br />
<br />
MODULES = ( ... !ath5k ... )<br />
<br />
===Laggy or Unresponsive ACPI Events===<br />
<br />
The latest kernel (2.6.26) introduces new problems with Eee's ACPI events handling. Basically, ACPI events become very laggy and after some time ACPI get disabled after a heavy usage (e.g. changing volume, brightness). This problem affects both stock kernel and toofishes' kernel.<br />
<br />
It appears that the solution is to apply this [http://bugzilla.kernel.org/attachment.cgi?id=16862 patch] ([http://bugzilla.kernel.org/show_bug.cgi?id=10724 original bug report]) to the kernel. <br />
<br />
{{Note | The latest toofishes' kernel, version 2.6.26-1, now includes the patch, but you can still use ighea's one for the extras features listed below.}}<br />
<br />
Until toofishes update his kernel to include the patch, you can use ighea's slightly modified toofishes' kernel that included the above patch, as well as other modifications:<br />
<br />
*Support for Wine <br />
*uvesafb is built as module <br />
*Use [http://bbs.archlinux.org/viewtopic.php?pid=393860#p393860 new eeepc-laptop driver] (which also handles fan-control) instead of older acus_acpi or asus-laptop -drivers.<br />
<br />
You can get the modified kernel, as well as the associative packages, from [http://koti.kapsi.fi/~ighea/eee/kernel-eee/ here].<br />
<br />
After you have downloaded the packages, Install them using this command:<br />
# pacman -U kernel-eee-2.6.26-1-i686.pkg.tar.gz madwifi-eee-svn-3752-1-i686.pkg.tar.gz <br />
<br />
You might also want to use IgnorePkg-line in {{Filename|/etc/pacman.conf}} to hold packages from being accidentally updated.<br />
IgnorePkg = kernel-eee madwifi-eee-svn<br />
<br />
Also don't forget to upgrade ighea's acpi-eee package to version 9.6.<br />
<br />
===Shutdown Problem===<br />
<br />
If your Eee won't shutdown properly (i.e. the power indicator LED is on but the LCD screen is off), then add the following lines to your {{Filename|/etc/rc.local.shutdown}} file.<br />
<pre><br />
#! /bin/bash<br />
#<br />
# /etc/rc.local.shutdown: Local shutdown script.<br />
#<br />
<br />
# Comment or uncomment the following two lines according to your system configuration.<br />
<br />
/etc/rc.d/mpd stop # If you're using mpd, then you have to stop its daemon first.<br />
<br />
/etc/rc.d/alsa stop # If you're using ALSA daemon, then you also have to stop it.<br />
<br />
# The following line is Eee specific fix, you always need to have this line in /etc/rc.local.shutdown.<br />
<br />
echo -n "0000:00:1b.0" > /sys/bus/pci/drivers/HDA\ Intel/unbind<br />
</pre><br />
<br />
The above solution should fix the shutdown problem in most cases. But if for some reason the problem still persists, the module may not be able to be unloaded until after all services have finished. Do the above, then in {{Filename|/etc/rc.shutdown}} move <br />
<br />
if [ -x /etc/rc.local.shutdown ]; then<br />
/etc/rc.local.shutdown<br />
fi<br />
<br />
from where it was to directly above the line <br />
<br />
# Terminate all processes<br />
<br />
this will cause the {{Filename|rc.local.shutdown}} script to run after services have been exited. This fixed all issues for the person editing this note.<br />
<br />
===Unclean unmount during shutdown when having home directory mounted on SD card===<br />
<br />
If you experienced unclean unmount during shutdown when having your home directory on SD card, then add the following 3 lines to "Write to wtmp file before unmounting" section of your {{Filename|/etc/rc.shutdown}} file:<br />
<pre><br />
...<br />
<br />
stat_busy "Unmounting Filesystems"<br />
/bin/umount -a -t noramfs,notmpfs,nosysfs,noproc<br />
<br />
# Add these 3 lines<br />
sync;sync;sync;<br />
eject /dev/sdb # Or whichever is your SD-card's device name. /dev/disk/by-uuid/ followed by the UUID identifier is preferable though.<br />
sleep 3<br />
# End of hack<br />
<br />
stat_done<br />
<br />
...<br />
</pre><br />
<br />
===Booting from card without initrd===<br />
<br />
Let's say you decided to install Arch Linux on a card and compiled your own kernel (or used the kernel26eee kernel) without initrd. Card reader on EeePC is connected as an USB device. Unfortunately, USB storage devices are detected with a delay, so we must tell the kernel to wait until this device becomes available. You do this with "rootwait" option passed to kernel at boot time.<br />
<br />
===Sleeping and waking system on a card===<br />
<br />
If you have Arch Linux on a card, waking up from sleeping state will most likely fail. The only solution is to enable the CONFIG_USB_PERSIST option in kernel. The kernel26eee package should have this option enabled.<br />
<br />
The command to do this is:<br />
echo 1 >/sys/bus/usb/devices/.../power/persist<br />
<br />
Replace the {{Codeline|"..."}} with the device like 1-3 or 1-5 where the first number is the bus and the second is the device <br />
<br />
Each device that is connected to your computer gets an entry in the sysfs "system file system" it is a virtual file system like proc<br />
<br />
More info:<br />
*http://www.mjmwired.net/kernel/Documentation/usb/persist.txt<br />
*http://forum.eeeuser.com/viewtopic.php?id=22712<br />
<br />
===Display doesn't wake up properly===<br />
<br />
If you encounter black display (but apparently working system) after suspend/resume, consider using the "uswsusp" package (available in the official repositories) and correcting suspend2ram script in /etc/acpi, where you use this line to make the machine go to sleep:<br />
<br />
/usr/sbin/s2ram --force --vbe_post --vbe_mode<br />
<br />
==Battery Tests==<br />
<br />
The following are reported battery runtimes:<br />
<br />
{| class="wikitable" style="text-align:left"<br />
|+Battery runtimes<br />
|-<br />
! Task !! Series !! Wireless !! Screen Brightness !! FSB Speed !! Fan Speed !! Runtime !! Comments<br />
|-<br />
! DVD Playback<br />
| 701 || On || Max || 85mhz || 100% || 134min || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! DVD Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading DVD ISO from 16gig SDHC Card<br />
|-<br />
! AVI Playback<br />
| 701 || Off || Max || 85mhz || 100% || ??? || Reading AVI from SSD<br />
|-<br />
! IM and Surf<br />
| 701 || On || ~30% || ??? || low || 173min || Normal web-browsing, Flash should reduce runtime a lot !<br />
|-<br />
! Programming and PDF reading<br />
| 1000HA || Off || ~40% || ??? || low || +6hs || Using Evince and SPE under XFCE with camera and USB disabled<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || +4hs || Stock kernel without laptop-mode<br />
|-<br />
! Surf and OOo<br />
| 1000HA || On || ~40% || ??? || low || 5hs || Stock kernel with laptop-mode and other tweaks<br />
|}<br />
<br />
N.B. - Will add battery runtimes as I am able to test them, please contribute.<br />
<br />
-- Grecko.1<br />
<br />
Still tweaking, but disabling everything from BIOS got me about 6 hours and a half. With eee-kernel, I *could* get a little more.<br />
<br />
-- ekuber</div>Zodmaner