Juno is an Lenovo X220i, Type 4290W1A with an i3-2310M (2.1GHz, 2 cores, hyperthreading, VT-x) 8GB RAM, 80GB SSD (SSDMAEMC08) and a 320GB harddisk.
The naming
Juno was an ancient Roman goddess, the protector and special counselor of the state.
Rough setup
Flash BIOS version 1.19. Get it here.
- Format an empty USB stick with a FAT32 partition and grub4dos
- Put the ISO file there, too.
Boot it, enter grub4dos and then, on the command line:
root (hd0,0) map /8duj09uc.iso (0xff) map --hook root (0xff) chainloader (0xff) bootSelect menu item 2.
Enter BIOS by pressing ThinkVantage, then F1: enable “Fn and Ctrl Key swap”, disable “Keyboard beep”, enable “Virtualization technology”.
Boot archlinux-2011.08.19.
Since I wanted full disk encryption, shred the harddisk (here sda) with random data:
shred -n1 -v /dev/sdaWe do not shred the SSD (sdb) because that would break the wear-leveling.
Partition scheme: I partitioned manually with fdisk, which automatically 2k-aligned the partitions.
sdb1 128mb /boot ext2 sdb2 rest dm-crypt named cryptssd, -c aes-xts-plain -y -s 512 --align-payload=8192 lvm volume group "ssd" 8g swap ssd-swap swap label swap 20g / ssd-root ext4 label root rest /home ssd-home ext4 label home sda1 128mb /altboot ext2 sda2 rest dm_crypt named crypthdd, -c aes-xts-plain -y -s 512 --align-payload=8192 lvm volume group "hdd" 280g /data hdd-data ext4 label home rest free(The purpose of /altboot is to be able to quickly get a bootable system should the SSD ever break.)
Base configuration
grub.conf:kernel /vmlinuz-linux root=/dev/mapper/ssd-root resume=/dev/mapper/ssd-swap cryptdevice=/dev/sdb2:ssd printk.time=1 ro loglevel=6Install suspend on lid shut, in
/etc/acpi/handler.sh:button/lid) logger "ACPI lid switched $1 $2" if [ -n "`grep close /proc/acpi/button/lid/LID/state`" ]; then /usr/sbin/pm-suspend logger -s "ACPI lid closed"; elif [ -n "`grep open /proc/acpi/button/lid/LID/state`" ]; then logger -s "ACPI lid opened" else logger -s "Couldn't detect Lid state" fiMake ondemand default scheduler in
/etc/conf.d/cpufreq.Extend logrotate keep times.
In
/etc/pacman.conf, make tar.gz packages instead of tar.xz. (I will directly install them mostly, the compression is a waste of time.)Copy old passwd/group/shadow/gshadow.
Copy netcfg data and WPA certificates. Set up net-auto-* stuff in
rc.conf.Setup hooks in
/etc/pm/sleep.d:#### /etc/pm/sleep.d/10mpd !/bin/sh case $1 in hibernate) mpc pause ;; suspend) mpc pause ;; thaw) ;; resume) ;; *) ;; esac #### /etc/pm/sleep.d/50net-auto-wireless #!/bin/sh case $1 in hibernate) ;; suspend) ;; thaw) /etc/rc.d/net-auto-wireless restart ;; resume) /etc/rc.d/net-auto-wireless restart ;; *) ;; esacCopy postfix, dovecot, ntp configs from zorya.
Copy /var/lib/dovecot from zorya.
adduser, groups: adm,wheel,log,games,audio,video,power,scanner,plugdevFor two-finger scrolling, add to your .xinitrc:
synclient EmulateTwoFingerMinW=20 synclient EmulateTwoFingerMinZ=7/etc/fstab: Addrelatimeto/,/home.Add coretemp, acpi_cpufreq, pcrypt to MODULES.
Install laptop-mode-tools, pm-utils.
Install tp_smapi, hdapsd.
Install thinkfan, get a config from here, you need to enable fan control in /etc/modprobe.d/thinkpad.conf:
options thinkpad_acpi fan_control=1Install lots of stuff with
packer --noconfirm. Bitch for broken PKGBUILDs.
Hacks
Thinkfinger doesn’t support the fingerprint reader, but libfprint-unstable with fingerprint-gui works, see the Arch wiki.
Mute microphone: works with xbindkeys:
"amixer sset Capture toggle" m:0x0 + c:248Suspend is broken by default because of iwlagn. Create a file /etc/pm/config.d/iwlagn with contents to unload it automatically:
SUSPEND_MODULES="iwlagn"To save more than 8W of power, configure laptop-mode tools and enable RC6:
i915.i915_enable_rc6=1Some relevant laptop-mode settings:
CONTROL_AC97_POWER="auto" ENABLE_AUTO_HIBERNATION=0 ENABLE_BATTERY_LEVEL_POLLING=0 CONTROL_BLUETOOTH=1 BATT_ENABLE_BLUETOOTH=0 CONTROL_CPU_FREQUENCY=0 # done with cpufreq CONTROL_DPMS_STANDBY=0 CONTROL_ETHERNET=0 # dont fuck with my gigabit CONTROL_INTEL_HDA_POWER="auto" CONTROL_NMI_WATCHDOG="auto" CONTROL_RUNTIME_PM="auto" CONTROL_SCHED_MC_POWER_SAVINGS="auto" CONTROL_SCHED_SMT_POWER_SAVINGS="auto" CONTROL_USB_AUTOSUSPEND="auto"
ChangeLog
- 15nov2011: Update to BIOS 1.24, using the same instructions as above.