Archlinux
Contents
Upgrading
Intel Microcode Not Manual
/etc/grub.d/10_linux if test -n "${initrd}" ; then + if test -f "${dirname}/intel-ucode.img"; then + ucode="${rel_dirname}/intel-ucode.img" + else + ucode= + fi # TRANSLATORS: ramdisk isn't identifier. Should be translated. message="$(gettext_printf "Loading initial ramdisk ...")" sed "s/^/$submenu_indentation/" << EOF echo '$(echo "$message" | grub_quote)' - initrd ${rel_dirname}/${initrd} + initrd ${ucode} ${rel_dirname}/${initrd} EOF
- then
grub-mkconfig -o /boot/grub/grub.cfg
Intel Microcode
pacman -Sv intel-ucode yaourt iucode-tool modprobe cpuid bsdtar -Oxf /boot/intel-ucode.img | iucode_tool -tb -lS -
- If an update is available, it should show up below selected microcodes
- https://wiki.archlinux.org/index.php/Microcode#Enabling_Intel_Microcode_Updates
NetworkManager and CIFS fstab
//192.168.1.40/bla /mnt/bla cifs credentials=/your/path/to/smbcredentials,noauto,x-systemd.automount 0 0
This is the work around so the system does not try to mount before network manager brings up the interface.
noauto,x-systemd.automount
smbcredentials
user=theusername password=thepassword
USB Automount
pacman -Sv udiskie
add
udiskie &
to .xintrc
udiskie mounting in /media/
you add this new file in udev rules should work:
create a new file /etc/udev/rules.d/99-udisks2.rules copy&paste this line and save
# UDISKS_FILESYSTEM_SHARED # ==1: mount filesystem to a shared directory (/media/VolumeName) # ==0: mount filesystem to a private directory (/run/media/$USER/VolumeName) # See udisks(8) ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{UDISKS_FILESYSTEM_SHARED}="1"
USB Automount Thunar-Udisks-GVFS
I use Archlinux on a few of my desktop machines. I use XFCE and am for the most part satisfied. The one problem that I have with XFCe is thunar-volman and the fact that one cannot pass mount options to the devices that you mount via the GUI. Even when I set the device up for automount through thunar-volman I cannot find a place to pass my command line options. It seems that thunar-volman uses a combination of gvfs and udisks to mount the disks. To fix this I tried a number of solutions autofs was my first try and for the most part seemed to work. The only problem is that it was not interacting with udisks or gvfs really. I may have been able to pass some options to the autofs mount command and get it to interact with gvfs but I did not explore that option. After quite a few people telling me that autofs was buggy and outdated anyways (I was having problems too) I decided to see if I could get thunar-volman to mount right.
I could not do it and instead of messing about with thunar-volman any more I decided just to have devmon taken out of the archlinux aur to do the automount work for me. It automounts, and I think that it was passing the options that I wanted. The instructions for using devmon are here: https://wiki.archlinux.org/index.php/Udev#Automounting_UDisks_Wrappers and the devmon site is here http://igurublog.wordpress.com/downloads/script-devmon/
I stopped playing with devmon because it did not look like it was passing the --mount-options that I wanted.
So screw everything above. I used a combinition of udev and udisks to automount the sticks and pass the async command.
How I did It: Mount under /media; use partition label if present
The following udev rule set automatically mounts devices/partitions that are represented by /dev/sd* (USB drives, external hard drives and sometimes SD cards). If a partition label is available, it mounts the device to /media/<label> and otherwise to /media/usbhd-sd* (ex: /media/usbhd-sdb1):
/etc/udev/rules.d/11-media-by-label-auto-mount.rules
KERNEL!="sd[a-z][0-9]", GOTO="media_by_label_auto_mount_end" # Import FS infos IMPORT{program}="/sbin/blkid -o udev -p %N" # Get a label if present, otherwise specify one ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}" ENV{ID_FS_LABEL}=="", ENV{dir_name}="usbhd-%k" # Global mount options ACTION=="add", ENV{mount_options}="relatime" # Filesystem-specific mount options ACTION=="add", ENV{ID_FS_TYPE}=="vfat|ntfs", ENV{mount_options}="$env{mount_options},utf8,gid=100,umask=002" # Mount the device ACTION=="add", RUN+="/bin/mkdir -p /media/%E{dir_name}", RUN+="/bin/mount -o $env{mount_options} /dev/%k /media/%E{dir_name}" # Clean up after removal ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l /media/%E{dir_name}", RUN+="/bin/rmdir /media/%E{dir_name}" # Exit LABEL="media_by_label_auto_mount_end"
The above file needs whatever options you would like to add to it.
This is my file:
KERNEL!="sd[a-z][0-9]", GOTO="media_by_label_auto_mount_end" # Import FS infos IMPORT{program}="/sbin/blkid -o udev -p %N" # Get a label if present, otherwise specify one ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}" ENV{ID_FS_LABEL}=="", ENV{dir_name}="usbhd-%k" # Global mount options ACTION=="add", ENV{mount_options}="relatime,async" # Filesystem-specific mount options ACTION=="add", ENV{ID_FS_TYPE}=="vfat|ntfs", ENV{mount_options}="$env{mount_options},utf8,gid=100,umask=002,async" # Mount the device ACTION=="add", RUN+="/bin/mkdir -p /media/%E{dir_name}", RUN+="/bin/mount -o $env{mount_options},async /dev/%k /media/%E{dir_name}" # Clean up after removal ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l /media/%E{dir_name}", RUN+="/bin/rmdir /media/%E{dir_name}" # Exit LABEL="media_by_label_auto_mount_end"
I think I put one to many asyncs but at the moment...whatever.
You need to restart udevd with:
udevadm control --reload-rules
Resources:
- https://wiki.archlinux.org/index.php/USB_Storage_Devices#Mounting_the_USB_stick_as_normal_user_with_mount
- https://wiki.archlinux.org/index.php/Map_Custom_Device_Entries_with_udev#Restart_udev
- https://bbs.archlinux.org/viewtopic.php?pid=1014948
- http://kernelnewbies.org/Linux_2_6_19#head-f01ddab8484abaf0ddea721f329b5a9499d0912e
- https://bbs.archlinux.org/viewtopic.php?pid=1017030
- https://bbs.archlinux.org/viewtopic.php?id=112846
- https://bbs.archlinux.org/viewtopic.php?pid=1017469
Office 2007
Install
(10.25.11)
This works great:
From forum post: https://bbs.archlinux.org/viewtopic.php?id=86436
...to get office 2007 working for me I installed bin32-wine, winetricks and then ran:
$ WINEARCH=win32 WINEPREFIX=~/win32 winecfg and set windows to xp and then ran:
$ WINEPREFIX=~/win32 winetricks msxml3 gdiplus riched20 riched30 vcrun2005sp1 allfonts $ WINEPREFIX=~/win32 wine setup.exe and then to actually use any of the executables you must cd to the directory. IE: $ cd ~/win32/drive_c/Program Files/Microsoft Office/Office12 $ WINEPREFIX=~/win32 wine ./EXCEL.EXE
You could set WINEPREFIX in your bash_profile, or make 32bit wine your default (then you only have to do WINEARCH=win32 winecfg). Anyway the two main problems I had were accidentally emulating 64bit (I know Wine Is Not Emulation) windows instead of 32 bit. Also I found that the programs hang if I didn't cd into the directory, probably because the dlls are linked with the local directory. Anyway everything works this way.
Office 2k7 SP2
Download from: http://www.microsoft.com/download/en/confirmation.aspx?id=5
Install with:
WINEPREFIX=~/win32 wine office2007sp2-kb953195-fullfile-en-us.exe
Winetricks
The droid font downloader in winetricks is broken. The url is part of the google git project atm. Either the maintainer of winetricks will update or kernel.org will change. I just chose to remove the droid font install from the winetricks script. I think you could create a .netrc file with password information in it but I did not test it or do it this way.
If you visit: http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob_plain;f=data/fonts/ and generate a password in a webbrowser then put it in ~/.netrc , then run the script without comments...might work.
This is what I did:
sudo nano -w /usr/bin/winetricks
Search for: do_droid You should see this:
do_droid() { w_download ${DROID_URL}$1';hb=HEAD' $3 $1 w_try cp -f "$W_CACHE"/droid/$1 "$W_FONTSDIR_UNIX" w_register_font $1 "$2" }
load_droid() { # See http://en.wikipedia.org/wiki/Droid_(font) DROID_URL='http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob_plain;f=data/fonts/' do_droid DroidSans-Bold.ttf "Droid Sans Bold" 560e4bcafdebaf29645fbf92633a2ae0d2f9801f do_droid DroidSansFallback.ttf "Droid Sans Fallback" 64de2fde75868ab8d4c6714add08c8f08b3fae1e do_droid DroidSansJapanese.ttf "Droid Sans Japanese" b3a248c11692aa88a30eb25df425b8910fe05dc5 do_droid DroidSansMono.ttf "Droid Sans Mono" 133fb6cf26ea073b456fb557b94ce8c46143b117 do_droid DroidSans.ttf "Droid Sans" 62f2841f61e4be66a0303cd1567ed2d300b4e31c do_droid DroidSerif-BoldItalic.ttf "Droid Serif Bold Italic" b7f2d37c3a062be671774ff52f4fd95cbef813ce do_droid DroidSerif-Bold.ttf "Droid Serif Bold" 294fa99ceaf6077ab633b5a7c7db761e2f76cf8c do_droid DroidSerif-Italic.ttf "Droid Serif Italic" bdd8aad5e6ac546d11e7378bdfabeac7ccbdadfc do_droid DroidSerif-Regular.ttf "Droid Serif" 805c5f975e02f488fa1dd1dd0d44ed4f93b0fab4 }
Comment it out with:
#do_droid() { # w_download ${DROID_URL}$1';hb=HEAD' $3 $1 # w_try cp -f "$W_CACHE"/droid/$1 "$W_FONTSDIR_UNIX" # w_register_font $1 "$2" #}
#load_droid() #{ # # See http://en.wikipedia.org/wiki/Droid_(font) # DROID_URL='http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob_plain;f=data/fonts/' # # do_droid DroidSans-Bold.ttf "Droid Sans Bold" 560e4bcafdebaf29645fbf92633a2ae0d2f9801f # do_droid DroidSansFallback.ttf "Droid Sans Fallback" 64de2fde75868ab8d4c6714add08c8f08b3fae1e # do_droid DroidSansJapanese.ttf "Droid Sans Japanese" b3a248c11692aa88a30eb25df425b8910fe05dc5 # do_droid DroidSansMono.ttf "Droid Sans Mono" 133fb6cf26ea073b456fb557b94ce8c46143b117 # do_droid DroidSans.ttf "Droid Sans" 62f2841f61e4be66a0303cd1567ed2d300b4e31c # do_droid DroidSerif-BoldItalic.ttf "Droid Serif Bold Italic" b7f2d37c3a062be671774ff52f4fd95cbef813ce # do_droid DroidSerif-Bold.ttf "Droid Serif Bold" 294fa99ceaf6077ab633b5a7c7db761e2f76cf8c # do_droid DroidSerif-Italic.ttf "Droid Serif Italic" bdd8aad5e6ac546d11e7378bdfabeac7ccbdadfc # do_droid DroidSerif-Regular.ttf "Droid Serif" 805c5f975e02f488fa1dd1dd0d44ed4f93b0fab4 #}
Save then execute the command from the installation section.
USB Device Automount
autofs works but is buggy and outdated.
- http://en.wikipedia.org/wiki/GVFS
- http://hal.freedesktop.org/docs/udisks/Device.html#Device.FilesystemMount
cpu usage
I am having problem with Firefox and high CPU usage. Lets fix this. I have a feeling it is the flash plugin.
dstat -cdnpmgs --top-bio --top-cpu
Installing
- Configure Networking
- Enable Multilib?
Easy LVM:
# using archlinux-2013.07.01-dual.iso pacman -Syy pacman -S gdisk # answer y gdisk /dev/sda o #answer y n # enter # enter +2M EF02 n # enter # enter +200M # enter n # enter # enter # enter # enter w y cryptsetup luksFormat /dev/sda3 YES # enter passphrase # re-enter passphrase cryptsetup luksOpen /dev/sda3 lvm # enter passphrase pvcreate /dev/mapper/lvm vgcreate MyStorage /dev/mapper/lvm lvcreate -L 7G MyStorage -n rootvol lvcreate -L 500M MyStorage -n swap lvcreate -l 100%FREE MyStorage -n homevol mkfs.ext4 /dev/sda2 mkfs.ext4 /dev/mapper/MyStorage-rootvol mkfs.ext4 /dev/mapper/MyStorage-homevol # ignoring swap at the moment mount /dev/MyStorage/rootvol /mnt mkdir /mnt/home mount /dev/MyStorage/homevol /mnt/home mkdir /mnt/boot mount /dev/sda2 /mnt/boot vi /etc/pacman.d/mirrorlist /waterloo yy # mash page up key to the top p # escape key :wq pacstrap /mnt base genfstab -U -p /mnt >> /mnt/etc/fstab arch-chroot /mnt vi /etc/locale.gen /en_CA h x # escape key :wq locale-gen echo LANG=en_CA.UTF-8 > /etc/locale.conf export LANG=en_CA.UTF-8 ln -s /usr/share/zoneinfo/Canada/Eastern /etc/localtime hwclock --systohc --utc echo arch > /etc/hostname ip addr # note the network device, in my case it is "enp0s3", it is often "eth0" it is not "lo" systemctl enable dhcpcd@enp0s3.service # enp0s3 from above vi /etc/mkinitcpio.conf #make sure this didn't delete the S off HOOKS /^HOOKS /filesystems h i #spcae keymap encrypt lvm2 #escape key :wq pacman -S grub y vi /etc/default/grub /GRUB_CMDLINE_LINUX="" $ i cryptdevice=/dev/sda3:MyStorage # escape key :wq grub-install --recheck /dev/sda mkinitcpio -p linux grub-mkconfig -o /boot/grub/grub.cfg # bunch of warnings about lvmetad, but, I shall ignore passwd # enter password # re-enter password exit umount /mnt/home /mnt/boot /mnt reboot
Saved Links
- https://wiki.archlinux.org/index.php/Users_and_Groups
- https://wiki.archlinux.org/index.php/Xorg
- https://wiki.archlinux.org/index.php/Beginners%27_Guide#Mount_the_partitions
- http://suddenkernelpanic.blogspot.de/2013/03/arch-linux-lvm-on-top-of-luks-2013-style.html
- https://bbs.archlinux.org/viewtopic.php?id=166876
- https://wiki.archlinux.org/index.php/Network_Configuration#Device_names
- https://wiki.archlinux.org/index.php/Beginners%27_Guide#Mount_the_partitions
- https://wiki.archlinux.org/index.php/Grub#GUID_Partition_Table_.28GPT.29_specific_instructions
- https://wiki.archlinux.org/index.php/Dm-crypt_with_LUKS#Initial_Setup
- https://wiki.archlinux.org/index.php/Partitioning
- https://wiki.archlinux.org/index.php/Installation_Guide
Installing with Intel Fake Raid
at the time: 2015.09.01 iso
All I have done so far was get dhcp running, passwd root, and enabled sshd as I am installing over the network.
On to install:
Looks like it loaded mdadm [1]
ls /dev/md imsm0 ZERO_0
Lets see more:
# mdadm --detail-platform
Platform : Intel(R) Matrix Storage Manager Version : 5.6.2.1002 RAID Levels : raid0 raid1 raid10 raid5 Chunk Sizes : 4k 8k 16k 32k 64k 128k 2TB volumes : not supported 2TB disks : not supported Max Disks : 4 Max Volumes : 2 per array, 4 per controller I/O Controller : /sys/devices/pci0000:00/0000:00:1f.2 (SATA)
Read the next paragraph first please.
mdadm should locate the array and create /dev/md/* entries. If it doesn't do this automatically:
mdadm --assemble --scan
I did not find anything here so lets assemble the array inside the container:
mdadm -I /dev/md/imsm0 cat /proc/mdstat
I saw that the array was in auto-read-only and wondered what the heck was going on so I looked[2] and found that when created, before the first write, that just how they are.
ls -l /dev/md/
So, I bumbled through above, to be honest with you, I do not think any of it matters except possible the command with the -I[3] in it. I do not think that even that matters because it looks like after looking at dmesg the array was found and assembled/reconized at boot. The intel raid utility must have wrote the meta data and such. But just in case I was wrong, I left the above.
SO IT LOOKS LIKE YOU CAN START HERE:
mdadm --detail --scan
mdadm --detail --scan >> /etc/mdadm.conf parted /dev/md/ZERO_O
ZERO_0 is my named array inside the imsm0 container[4] so hmm:
fdisk -l /dev/md/ZERO_0
Lets get to partitioning...they say not to partition entire arrays and instead create partitions and assemble them separately but I am not going to do that with intel fake raid.
So you have a few options here. I am not using large disks here but I am going with the MBR/GPT hybrid because, well, because. You could do I would think GPT, MBR, or MBR Hybrid.[5]
gdisk /dev/md/ZERO_0
Example from archlinux wiki:
# gdisk /dev/sdX o # create new empty GUID partition table n # partition 1 [enter], from beginning [enter], to 100GiB [+100GiB], linux fs type [enter] n # partition 2 [enter], from beginning [enter], to 108GiB [+8GiB], linux swap [8200] n # partition 3 [enter], from beginning [enter], [+1MiB], linux fs type [enter] r # recovery/transformation menu h # make hybrid mbr 3 # add partition 3 to hybrid mbr Place EFI GPT (0xEE) partition first in MBR (good for GRUB)? (Y/N): N Enter an MBR hex code (default 83): [enter] Set the bootable flag? (Y/N): Y Unused partition space(s) found. Use one to protect more partitions? (Y/N): N w # write table to disk and exit
v This will give you total disk size.... No problems found. 39063485 free sectors (18.6 GiB) available in 1 segments, the largest of which is 39063485 (18.6 GiB) in size. n 1 [enter] Start at beginning [enter] +16GiB [enter] [enter] n [enter] [enter] +2GiB [enter] 8200 [enter] n [enter] [enter] +1MiB [enter] [enter] r [enter] h [enter] 3 [enter] N [enter] [enter] Y [enter] N [enter] w [enter] Y [enter]
Will have to do this later:[6]
# grub-install --recheck /dev/sdx # grub-mkconfig -o /boot/grub/grub.cfg
Rescue
fsck /dev/your\ drive mount /dev/your\ drive /mnt/somewhere mount /dev/bootpart\ /mnt/somewhere/boot mount /dev /mnt/somewhere/dev -o bind mount /proc /mnt/somewhere/proc -o bind mount /sys /mnt/somewhere/sys -o bind [... connect to the internet by your preffered method ...] cp /etc/resolv.conf /mnt/somewhere/etc chroot /mnt/somewhere /bin/bash cat /proc/mounts | grep -v rootfs > /etc/mtab [... and setup grub and check your system ...]
Yourt Build Dir Space Out
/etc/makepkg.conf:
#-- Specify a directory for package building. #BUILDDIR=/tmp/makepkg
If you're using yaourt, you can tell it to build somewhere else, use --tmp commandline switch or edit /etc/yaourtrc, uncomment and change
#TMPDIR="/tmp"to somewhere else.
- ↑ https://forums.gentoo.org/viewtopic-t-888520-start-0.html
- ↑ https://unix.stackexchange.com/questions/101072/new-md-array-is-auto-read-only-and-has-resync-pending
- ↑ https://serverfault.com/questions/226053/intel-matrix-storage-raid-and-linux-mdadm
- ↑ https://serverfault.com/questions/226053/intel-matrix-storage-raid-and-linux-mdadm
- ↑ https://wiki.archlinux.org/index.php/GUID_Partition_Table#gdisk_basic_.28with_hybrid_MBR.29
- ↑ https://wiki.archlinux.org/index.php/GRUB#GUID_Partition_Table_.28GPT.29_specific_instructions