Installation and configuration reminder for my x230Tablet laptop ====== Overview ====== I "enhanced" my Lenovo x230i Laptop with an Intel 525 128 GB Harddrive in mSata format\\ I intend to use this SSD as main OS partitions (C:\ / ), the original 500GB HD will be for swap/var/home partitions (see underneath).\\ This install covers the useless new "hype" UEFI / GPT crap ... all this to keep laughing at Windows 8!\\ Here's the output of lspci 00:00.0 Host bridge: Intel Corporation 3rd Gen Core processor DRAM Controller (rev 09) 00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09) 00:14.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB xHCI Host Controller (rev 04) 00:16.0 Communication controller: Intel Corporation 7 Series/C210 Series Chipset Family MEI Controller #1 (rev 04) 00:19.0 Ethernet controller: Intel Corporation 82579LM Gigabit Network Connection (rev 04) 00:1a.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (rev 04) 00:1b.0 Audio device: Intel Corporation 7 Series/C210 Series Chipset Family High Definition Audio Controller (rev 04) 00:1c.0 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 1 (rev c4) 00:1c.1 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 2 (rev c4) 00:1c.2 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 3 (rev c4) 00:1d.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (rev 04) 00:1f.0 ISA bridge: Intel Corporation QM77 Express Chipset LPC Controller (rev 04) 00:1f.2 SATA controller: Intel Corporation 7 Series Chipset Family 6-port SATA Controller [AHCI mode] (rev 04) 00:1f.3 SMBus: Intel Corporation 7 Series/C210 Series Chipset Family SMBus Controller (rev 04) 02:00.0 System peripheral: Ricoh Co Ltd PCIe SDXC/MMC Host Controller (rev 07) 03:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8188CE 802.11b/g/n WiFi Adapter (rev 01) Here's the output of lsusb Bus 001 Device 002: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub Bus 003 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub Bus 004 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 003 Device 003: ID 0a5c:21e6 Broadcom Corp. BCM20702 Bluetooth 4.0 [ThinkPad] Bus 003 Device 004: ID 04f2:b2ea Chicony Electronics Co., Ltd Integrated Camera [ThinkPad] Here's the output of cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 58 model name : Intel(R) Core(TM) i3-3120M CPU @ 2.50GHz stepping : 9 microcode : 0x17 cpu MHz : 1200.000 cache size : 3072 KB physical id : 0 siblings : 4 core id : 0 cpu cores : 2 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx f16c lahf_lm arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms bogomips : 4990.41 clflush size : 64 cache_alignment : 64 address sizes : 36 bits physical, 48 bits virtual power management: processor : 1 vendor_id : GenuineIntel cpu family : 6 model : 58 model name : Intel(R) Core(TM) i3-3120M CPU @ 2.50GHz stepping : 9 microcode : 0x17 cpu MHz : 1200.000 cache size : 3072 KB physical id : 0 siblings : 4 core id : 0 cpu cores : 2 apicid : 1 initial apicid : 1 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx f16c lahf_lm arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms bogomips : 4990.41 clflush size : 64 cache_alignment : 64 address sizes : 36 bits physical, 48 bits virtual power management: processor : 2 vendor_id : GenuineIntel cpu family : 6 model : 58 model name : Intel(R) Core(TM) i3-3120M CPU @ 2.50GHz stepping : 9 microcode : 0x17 cpu MHz : 1200.000 cache size : 3072 KB physical id : 0 siblings : 4 core id : 1 cpu cores : 2 apicid : 2 initial apicid : 2 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx f16c lahf_lm arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms bogomips : 4990.41 clflush size : 64 cache_alignment : 64 address sizes : 36 bits physical, 48 bits virtual power management: processor : 3 vendor_id : GenuineIntel cpu family : 6 model : 58 model name : Intel(R) Core(TM) i3-3120M CPU @ 2.50GHz stepping : 9 microcode : 0x17 cpu MHz : 1200.000 cache size : 3072 KB physical id : 0 siblings : 4 core id : 1 cpu cores : 2 apicid : 3 initial apicid : 3 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx f16c lahf_lm arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms bogomips : 4990.41 clflush size : 64 cache_alignment : 64 address sizes : 36 bits physical, 48 bits virtual power management: ====== Base install ====== ===== References ===== * [[https://wiki.archlinux.org/index.php/Installation_Guide|Installation guide]] ===== First install ===== Boot on the USB stick (I created mine using unetbootin ~ lazy :D - the isos are taken from here -> https://www.archlinux.org/download/ take the mirror closest to you and select the netinstall ISO) ===== Basic ===== ===== Remote access ===== Let's launch the network + sshd so we can copy paste some nice commands right from an already installed machine ip addr show Start sshd systemctl start sshd Set a root password passwd ==== Partitionning ==== Done with Clonezilla (again lazyness ;-) ) - you can use cfdisk to do the job ==== Formatting ==== Let's format all these partitions in ext4 format. mkfs.vfat -F32 -n EFI /dev/sdb5 mkfs.ext4 -E discard -L LINUX /dev/sdb6 mkfs.ext4 -L VAR /dev/sda2 mkfs.ext4 -L HOME /dev/sda3 mkswap -L SWAP /dev/sda1 The option -E discard is because /dev/sdb is an SSD!\\ ===== Mount them ===== Mounting and creating mount points: mount /dev/sdb6 /mnt mkdir /mnt/{home,var,boot,boot/efi} mount /dev/sda2 /mnt/var mount /dev/sda3 /mnt/home mount /dev/sdb5 /mnt/boot/efi swapon /dev/sda1 Check mount ===== Base system ===== I'll then install base packages plus base-devel packages pacstrap /mnt base base-devel ===== Fstab ===== For SSD tweaks and to make it shine: [[https://wiki.archlinux.org/index.php/Solid_State_Drives|SSD]] * generate fstab genfstab -L -p /mnt >> /mnt/etc/fstab Yes I use Labels, UUID sucks * edit fstab Before: # # /etc/fstab: static file system information # # # /dev/sdb3 UUID=34cedc78-e156-4dbb-a428-4d594d6b34a8 LABEL=LINUX / ext4 rw,relatime,data=ordered 0 1 # /dev/sda2 UUID=f8a1e862-64b7-41d7-ac7d-4b75b346ceb5 LABEL=VAR /var ext4 rw,relatime,data=ordered 0 2 # /dev/sda3 UUID=57552366-9356-43bf-8bd2-bb0b25a1d318 LABEL=HOME /home ext4 rw,relatime,data=ordered 0 2 # /dev/sdb5 UUID=1F63-6ACD LABEL=EFI /boot/efi vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0 2 # /dev/sda1 UUID=dcba8ead-fb4b-4e06-a9e5-1a55f1c353e0 LABEL=SWAP none swap defaults 0 0 They love UUIDs ... \\ Anyway, let's modify the line of / on SSD\\ After: # # /etc/fstab: static file system information # # # /dev/sdb3 UUID=34cedc78-e156-4dbb-a428-4d594d6b34a8 LABEL=LINUX / ext4 defaults,noatime,discard 0 1 # /dev/sda2 UUID=f8a1e862-64b7-41d7-ac7d-4b75b346ceb5 LABEL=VAR /var ext4 rw,relatime,data=ordered 0 2 # /dev/sda3 UUID=57552366-9356-43bf-8bd2-bb0b25a1d318 LABEL=HOME /home ext4 rw,relatime,data=ordered 0 2 # /dev/sdb5 UUID=1F63-6ACD LABEL=EFI /boot/efi vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0 2 # /dev/sda1 UUID=dcba8ead-fb4b-4e06-a9e5-1a55f1c353e0 LABEL=SWAP none swap defaults 0 0 ===== Bootloader ===== I use Syslinux since it does its job well! [[https://wiki.archlinux.org/index.php/Syslinux|Syslinux]]\\ But for UEFI, it's still work in progress ... so let's go for grub :-( [[https://wiki.archlinux.org/index.php/GRUB#UEFI_systems_2|Grub]]\\ os-prober is supposed to find other systems installed pacstrap /mnt grub-efi-x86_64 os-prober ====== Configuration ====== ===== Environment ===== Let's go to our new system! arch-chroot /mnt * /etc/hostname echo Yoru > /etc/hostname * /etc/locale.gen I'll use en_US.utf-8/iso8859 and fr_FR.* so uncomment: en_US.UTF-8 UTF-8 en_US ISO-8859-1 fr_FR.UTF-8 UTF-8 fr_FR ISO-8859-1 fr_FR@euro ISO-8859-15 The generate locales locale-gen * /etc/locale.conf [[https://wiki.archlinux.org/index.php/Locale|Locale]] LANG="en_US.UTF-8" # Keep the default sort order (e.g. files starting with a '.' # should appear at the start of a directory listing.) LC_COLLATE="C" * /etc/vconsole.conf Default keyboard in console (US variant international ... with a different mapping than on X11! Well done) echo "KEYMAP=us-acentos" > /etc/vconsole.conf * /etc/localtime ln -s /usr/share/zoneinfo/Europe/Paris /etc/localtime * /etc/mkinitcpio.conf No touch just regenerate it in case ... mkinitcpio -p linux * Grub 2 (the return) modprobe dm-mod grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --recheck --debug mkdir -p /boot/grub/locale cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo * root password passwd ===== Reboot===== ==== Umount stuff cleanly ==== First use Ctrl+D to escape from the chroot\\ then: umount /mnt/var /mnt/home /mnt/boot/efi /mnt Now is the time to light a candle and type reboot \\ So thanks to all nice actors involved it didn't work ...\\ I had to tweak the UEFI firmware by hand: * Boot the Arch CD and select UEFI Shell v2 (can't wait for v3 ... ) search the "partition" aka fsX where your EFI crap is located you can do so by typing fs1: [ENTER] then navigate with **dir** to list and **cd** to move\\ Find where your nice grubx64.efi file is located (mine was in /boot/efi/EFI/arch_grub/grubx64.efi which in UEFI shell is ... fs3:\EFI\arch_grub\grubx64.efi)\\ And then a bit more of black magic ... bcfg boot add 0 fs3:\EFI\arch_grub\grubx64.efi "Archlinux" :!: Here I add a new Entry at the TOP ! Check what places you have free (cf [[https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface#UEFI_Shell|UEFI Shell]] ) Then, the nightmare was not over ... GRUB 2 was launching however with some funky UUID m( m( m( ... I corrected the entry .. .thx to the LABELS !!!!: Press 'e' to edit\\ remove: if [ x$feature... search ... else search ... fi then just add in place: search --no-floppy --label LINUX --set-root AND underneath of course they couldn't stop using UUID ... remove: linux /boot/vmlinuz-linux root=UUID=wh4tZ3-FucK-.... By ... wait for it: linux /boot/vmlinuz-linux root=LABEL=LINUX Press F10 And hurray it boots!!!!!!\\ After boot first thing I did was grub-mkconfig -o /boot/grub/grub.cfg It fixed the UUIDs and even found the Windows 8 partition and created the entry ! ===== Pimping up shit created by systemd ===== So, happily you used to refer to your network card as eth0? Forget it! Now huge brains have decided for you, even if you don't have any issue that the notation will change! Great ... so my eth0 is called ... wait for it: enp0s25 perfect. So let's remove that shit! (wlan0 is called wlp3s0 by the way - unfortunately, so far they didn't change the lo interface \o/ it's called ... lo ... what a lack of imagination!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!) ln -s /dev/null /etc/udev/rules.d/80-net-name-slot.rules Reboot! Yeah you know just like on Windows© ===== Network ===== ==== Dhcpcd for eth 0 ==== Once you have back a proper name for you interfaces ... systemctl enable dhcpcd@eth0 And then it slows down your boot! Isn't that nice? Well coded.\\ Reference: [[https://wiki.archlinux.org/index.php/Configuring_Network|Network]] ==== Netctl for wifi ==== Reference: [[https://wiki.archlinux.org/index.php/Netctl]] pacman -S netctl wpa_supplicant cd /etc/netctl/examples/ Copy on of the example regarding the type of network you want to access: cp wireless-wpa-configsection ../university Edit the file with proper settings (SSID / user ... ) cd /etc/netctl vi university I don't use auto-wifi service I start it when needed: netctl start university ===== SSHd ===== Access remotely: pacman -Sy openssh Enable it at boot systemctl enable sshd ===== Security ===== Reference: [[https://wiki.archlinux.org/index.php/SHA_Passwords | SHA_Password]] vi /etc/pam.d/passwd password required pam_unix.so sha512 shadow nullok rounds=65536 Then rehash your passwords! passwd ===== User ===== useradd -g users -m -s /bin/bash warnaud passwd warnaud ===== Fix VI/VIM ===== # ls -altrh `which vi` lrwxrwxrwx 1 root root 2 Nov 16 18:34 /usr/bin/vi -> ex Prefer vim? pacman -S vim rm /usr/bin/vi && ln -s /usr/bin/vim /usr/bin/vi ===== GPM ===== Since gpm is a dependency of vim let's use it! systemctl enable gpm systemctl start gpm ===== Xorg / XDM ===== ==== Xorg ==== Reference: [[https://wiki.archlinux.org/index.php/Xorg|Xorg]] & [[https://wiki.archlinux.org/index.php/Intel|Intel]] Install all those packages ... # pacman -S xorg-server xorg-apps xorg-fonts xorg-fonts-100dpi xorg-fonts-75dpi xorg-twm xorg-xclock xorg-xinit xorg-xdm xterm xf86-video-intel xorg-xmessage xorg-xcalc xorg-xfontsel xorg-utils Reply to questions: :: There are 37 members in group xorg-apps: :: Repository extra 1) xorg-bdftopcf 2) xorg-iceauth 3) xorg-luit 4) xorg-mkfontdir 5) xorg-mkfontscale 6) xorg-sessreg 7) xorg-setxkbmap 8) xorg-smproxy 9) xorg-x11perf 10) xorg-xauth 11) xorg-xbacklight 12) xorg-xcmsdb 13) xorg-xcursorgen 14) xorg-xdpyinfo 15) xorg-xdriinfo 16) xorg-xev 17) xorg-xgamma 18) xorg-xhost 19) xorg-xinput 20) xorg-xkbcomp 21) xorg-xkbevd 22) xorg-xkbutils 23) xorg-xkill 24) xorg-xlsatoms 25) xorg-xlsclients 26) xorg-xmodmap 27) xorg-xpr 28) xorg-xprop 29) xorg-xrandr 30) xorg-xrdb 31) xorg-xrefresh 32) xorg-xset 33) xorg-xsetroot 34) xorg-xvinfo 35) xorg-xwd 36) xorg-xwininfo 37) xorg-xwud Enter a selection (default=all): :: There are 2 members in group xorg-fonts: :: Repository extra 1) xorg-font-util 2) xorg-fonts-encodings Enter a selection (default=all): 1 resolving dependencies... :: There are 4 providers available for libgl: :: Repository extra 1) mesa-libgl 2) nvidia-304xx-utils 3) nvidia-libgl :: Repository community 4) catalyst-utils Enter a number (default=1): 1 Add some modules at boot for KMS vi /etc/mkinitcpio.conf ... MODULES="i915" ... Acceleration method vi /etc/X11/xorg.conf.d/20-intel.conf Section "Device" Identifier "Intel Graphics" Driver "intel" Option "AccelMethod" "sna" EndSection vi /etc/X11/xorg.conf.d/10-evdev.conf Section "InputClass" Identifier "evdev keyboard catchall" MatchIsKeyboard "on" MatchDevicePath "/dev/input/event*" Driver "evdev" Option "XkbLayout" "us" Option "XkbVariant" "intl" EndSection ==== XDM ==== Reference: [[https://wiki.archlinux.org/index.php/XDM]] pacman -S xorg-xdm Enable systemd service systemctl enable xdm.service Optional, if you made a customize version vi /usr/lib/systemd/system/xdm.service [Unit] Description=X-Window Display Manager After=systemd-user-sessions.service [Service] ExecStart=/usr/bin/xdm -c /etc/X11/xdm/lcars-xdm/xdm-config -nodaemon Type=notify NotifyAccess=all [Install] Alias=display-manager.service Copy the necessary files from /etc/skel cp /etc/skel/.xsession ~/. make sure its permission are 774 ==== Fvwm ==== pacman -S fvwm Import my configuration: mkdir ~/.fvwm && cd .fvwm && svn co https://fvwm.svn.beanstalkapp.com/fvwm/trunk/bazooka . ===== Alsa ===== Reference: [[https://wiki.archlinux.org/index.php/Alsa]] pacman -S alsa-utils Set volume levels: alsamixer Test: speaker-test -c 2 ===== Laptop / powersaving (doesn't work ... ) ===== Reference: [[https://wiki.archlinux.org/index.php/Laptop]] ==== ACPID ==== To have access to buttons + power settings, first install acpi and acpid pacman -S acpi acpid Reference:[[https://wiki.archlinux.org/index.php/Acpi]] and [[https://wiki.archlinux.org/index.php/Acpid]] and https://wiki.archlinux.org/index.php/ACPI_hotkeys Start the deamon and enable it: systemctl enable acpid systemctl start acpid ==== TPB ==== For other nice osd display install tpb FIXME: yaourt -S tpb Reference:[[https://wiki.archlinux.org/index.php/ThinkPad_OSD]] Configure it: vi /etc/tpbrc OSDCOLOR Green OSDVERTICAL 0 OSDHORIZONTAL 0 OSDPOS MIDDLE OSDALIGN CENTER ==== Udev ==== Create a special rule to suspend everything if battery is at 2% FIXME Doesn't work ... vi /etc/udev/rules.d/lowbat.rules ## SLEEP IF BATTERY IS LOW SUBSYSTEM=="power_supply", ATTR{status}=="Discharging", ATTR{capacity}=="2", RUN+="/usr/bin/systemctl suspend" ==== i915 ==== Power consumption for Intel Graphics: vi /etc/modprobe.d/modprobe.conf options i915 i915_enable_rc6=1 i915_enable_fbc=1 lvds_downclock=1 Rebuild the kernel: mkinitcpio -p linux && mkinitcpio -p linux-ck ===== TLP ===== Reference:[[https://wiki.archlinux.org/index.php/TLP]] Install required packages: yaourt -S tlp tp_smapi tp_smapi-ck dkms-acpi_call-git smartmontools FIXME tp_smapi doesn't seems to launch ... Enable the service: systemctl enable tlp ===== Sysctl ===== Reference: [[https://wiki.archlinux.org/index.php/Sysctl]] FIXME add in /etc/sysctl.conf vm.dirty_writeback_centisecs=1500 vm.laptop_mode=5 ===== Thinkpad ===== ==== Disable Touchpad ==== Deactivate the useless touchpad: vi /etc/X11/xorg.conf.d/10-evdev.conf Section "InputClass" Identifier "evdev touchpad catchall" MatchIsTouchpad "off" MatchDevicePath "/dev/input/event*" Driver "evdev" EndSection FIXME Check alternate solution:[[https://wiki.archlinux.org/index.php/Synaptics_Touchpad]] ==== TrackNav enhancement ==== This hack will enable scrolling using the middle button + the TrackPoint™®© vi /etc/X11/xorg.conf.d/20-thinkpad.conf Section "InputClass" Identifier "Trackpoint Wheel Emulation" MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint|ThinkPad USB Keyboard with TrackPoint|USB Trackpoint pointing device" MatchDevicePath "/dev/input/event*" Option "EmulateWheel" "true" Option "EmulateWheelButton" "2" Option "Emulate3Buttons" "false" Option "XAxisMapping" "6 7" Option "YAxisMapping" "4 5" EndSection ==== Bluetooth ==== Reference: [[https://wiki.archlinux.org/index.php/Bluetooth]] pacman -S bluez FIXME Any of this required? Optional dependencies for bluez gstreamer0.10-base: bluetooth GStreamer support alsa-lib: Audio bluetooth devices support [installed] dbus-python: to run bluez-simple-agent pygobject: to run bluez-simple-agent libusb-compat: USB adapters support cups: CUPS backend I kind of never use bluetooth so I start it when necessary systemctl start bluetooth.service FIXME .. have some fun with it ==== Multimedia Keys ==== Mute/Volume up and Down are recognized by default in xev, so with xbindkeys let's map them pacman -S xbindkeys Create a file that contain the definition of the buttons + the action(s) vi ~/.xbindkeysrc.scm Here I'll map Mute / Volume up / Volume Down (xbindkey '("XF86AudioMute") "amixer set Master toggle") (xbindkey '("XF86AudioRaiseVolume") "amixer set Master 2dB+ unmute") (xbindkey '("XF86AudioLowerVolume") "amixer set Master 2dB- unmute") Last but not least, add xbindkeys & To your ~/.xinitrc or whatever file launched at login ==== Systemd journal ==== It's always nice to see some logs even if they are in binary format ...... Hint: You are currently not seeing messages from other users and the system. Users in the 'systemd-journal' group can see all messages. Pass -q to turn off this notice. Fix: sudo gpasswd -a USERNAME systemd-journal ===== Other software ===== ==== Archlinuxfr repository ==== vi /etc/pacman.conf ... [archlinuxfr] SigLevel = Never Server = http://repo.archlinux.fr/$arch \o/ No signature ==== Yaourt ==== Reference: [[http://archlinux.fr/yaourt-en]] pacman -Sy yaourt ==== Sudo ==== pacman -S sudo visudo ... root ALL=(ALL) ALL someuser ALL=(ALL) ALL Just add the 'someuser' line ==== Compilation options ===== :!: just for fun not really mandatory Reference: [[https://wiki.archlinux.org/index.php/Makepkg.conf]] vi /etc/makepkg.conf Modify CFLAGS/CXXFLAGS: # -march=native also sets the correct -mtune= CFLAGS="-march=native -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2" CXXFLAGS="${CFLAGS}" Modify MAKEFLAGS (4 = output of nproc) MAKEFLAGS="-j4" ==== Mandatory packages - for terminal users ==== List of software I use and abuse yaourt -S screen bash-completion wavemon glances htop bmon irssi lftp rsync wget curl bc figlet toilet pmount dfc git rdesktop I use yaourt since some of them are not in repositories and then built from aur ==== Cups ==== Reference: [[https://wiki.archlinux.org/index.php/Cups]] pacman -S libcups cups cups-filters ghostscript gsfonts ==== CK Kernel ==== For more aggressive scheduling, you can use the ck patchset\\ References: * https://wiki.archlinux.org/index.php/Kernel26-ck * https://wiki.archlinux.org/index.php/Repo-ck :!: Super up-to-date :!: vi /etc/pacman.conf Add at the end: [repo-ck] SigLevel = PackageRequired Server = http://repo-ck.com/$arch Add keys for signing shit ... pacman-key -r 5EE46C4C pacman-key --lsign-key 5EE46C4C Refresh pacman's database: pacman -Sy Install kernel-ck matching your architecture (see Repo-ck page for reference) pacman -S linux-ck-ivybridge linux-ck-ivybridge-headers Add a nice entry in syslinux vi /boot/syslinux/syslinux.cfg ... DEFAULT arch-ck ... LABEL arch-ck MENU LABEL Arch Linux CK LINUX ../vmlinuz-linux-ck APPEND root=/dev/sdb3 ro INITRD ../initramfs-linux-ck.img quiet ipv6.disable=1 elevator=bfq LABEL arch-ck-fallback MENU LABEL Arch Linux CK Fallback LINUX ../vmlinuz-linux-ck APPEND root=/dev/sdb3 ro INITRD ../initramfs-linux-ck-fallback.img ... Bye bye IPv6 and change the schedule to Con Kolivas' bfq ==== URxvt ==== pacman -S rxvt-unicode urxvt-perls (Not yet implemented : ) URxvt.perl-ext-common: default,clipboard,url-select,keyboard-select URxvt.url-select.launcher: chromium URxvt.url-select.underline: true URxvt.keysym.M-u: perl:url-select:select_next URxvt.keysym.M-Escape: perl:keyboard-select:activate URxvt.keysym.M-s: perl:keyboard-select:search ==== X11 software ==== yaourt -S chromium hsetroot imagemagick vlc emelfm2 flashplugin xosd For acrobat reader/skype, there's a need for the multilib repository ... well coded too! vi /etc/pacman.conf Uncomment: [multilib] Include = /etc/pacman.d/mirrorlist Then: yaourt -Sy acroread skype :!: tons of 32bits libraries .... FIXME acroread libre-office* fonts skype... ===== Final stuff ===== https://wiki.archlinux.org/index.php/Readahead ==== Ntfs share ==== Reference: [[https://wiki.archlinux.org/index.php/Ntfs]] pacman -S ntfs-3g vi /etc/fstab # # /etc/fstab: static file system information # # # /dev/sdb3 UUID=34cedc78-e156-4dbb-a428-4d594d6b34a8 LABEL=LINUX / ext4 defaults,noatime,discard 0 1 # /dev/sda2 UUID=f8a1e862-64b7-41d7-ac7d-4b75b346ceb5 LABEL=VAR /var ext4 rw,relatime,data=ordered 0 2 # /dev/sda3 UUID=57552366-9356-43bf-8bd2-bb0b25a1d318 LABEL=HOME /home ext4 rw,relatime,data=ordered 0 2 # /dev/sda1 UUID=dcba8ead-fb4b-4e06-a9e5-1a55f1c353e0 LABEL=SWAP none swap defaults 0 0 # /dev/sda4 Windows LABEL=DATA /media/data ntfs-3g uid=warnaud,gid=users 0 0 ==== LibreOffice ==== Imagine Office in Java? There you go ...\\ Reference: [[https://wiki.archlinux.org/index.php/LibreOffice]] yaourt -S ttf-dejavu artwiz-fonts libreoffice libreoffice-en-US libreoffice-fr Free to install ~70 pkgs \o/ ==== NTP ==== Reference: [[https://wiki.archlinux.org/index.php/Ntp]] pacman -S ntp vi /etc/ntp.conf server 0.fr.pool.ntp.org iburst server 1.fr.pool.ntp.org iburst server 2.fr.pool.ntp.org iburst server 3.fr.pool.ntp.org iburst systemctl start ntpd Well I don't enable it since ... I mostely have no connection at boot on a laptop ;-)