Tired of those old stickers you adorned your laptop with? Me too. No, I don’t mean yours. I’m sure yours are fine; well, except for that Bieber Rocks! one. What were you thinking!? Anyway, here’s couple of tips on how to remove Bieber and his sticky cousins.
First, power down your laptop, unplug it, and close the lid. Try to remove as many of those old stickers by simply peeling them off. Some will come off cleanly, many won’t. Don’t worry if some of the residue is left behind. Now head to your kitchen and grab that good old no-stick cooking spray and apply liberally to a small section of the laptop surface. Don’t be stingy. The idea is to keep the area you’re working on soaked in the stuff for at least 10-15 minutes – the longer, the better though. Make sure to not let it run down the sides and creep into cooling vents, on to your keyboard, etc.
Now grab one of those plastic paint scrapers (emphasis on the word plastic here) you’d find at any big-box hardware store and start gently scraping off the remaining sticker residue, reapplying the cooking spray as necessary. Continue working your way across the surface of your laptop by applying the cooking spray, letting it soak in, then gently scraping.
Once you’ve exhausted the capabilities of that paint scraper, any remaining residue can usually be removed with a little more cooking spray and a nylon scrubbing pad.
This simple combination of cooking spray, gentle scraping and patience should remove those old stickers and any remaining residue they leave behind. If for some reason the cooking spray isn’t getting the job done for you then WD-40 or a citrus base adhesive remover like goo gone may be a good alternative. Both should be safe to use on your laptop but of course you should test these products first on someplace inconspicuous.
As a final step gently clean off the surface of the laptop using a clean wash cloth, warm water and dish washing soap, then dry using a clean cloth or paper towel.
There you have it. A couple of tips on how to remove those old laptop stickers using materials you can easily find around the house. Do you have more tips or ideas? Leave them in the comment section.
Time once again to upgrade my desktop computer. My current system, an ASUS P67 Sabertooth motherboard (P67 Chipset/Socket 1155), Intel Core i7-2600K (Sandy Bridge) processor, AMD Radeon HD 6950 GPU, and 8 GB of DDR3-1600 G.Skill RAM, served me well, but I wanted to move on to Intel’s “Ivy Bridge” architecture. This post will document my upgrade, starting with the parts I selected and why; the assembly of the system and the challenges I encountered; and finally, a few thoughts on overclocking the upgraded system.
The Parts
In keeping with previous builds, my goal was to use the best quality components I could find for a reasonable price, and build a good, fast, and reliable machine for PC gaming. In other words, build a machine that’s represents a good value.
The Case – I looked for a mid-tower case that featured good air flow and plenty of room for wiring. The NZXT Tempest case I used for my Sandy Bridge build had served me well, but turned out to be a a bit constraining when it came to routing wiring and keeping the inside of the case looking neat. This time I settled on the Corsair Graphite Series 600T. The 600T is a mid-tower in height, but nearly 11 inches wide. Pre-cut holes with rubber grommets in the motherboard tray combined with plenty of room behind it allowed for clean, uncluttered cable routing; and the dual 200mm fans located at the top of the case assisted in providing very good cooling.
The Power Supply – I decided to go with the Corsair TX750 V2. Corsair’s power supplies are quality products, featuring a single dedicated, single +12V rail for maximum and efficient power distribution and they’re sensibly priced. The unit is 80 PLUS Bronze certified (> 80% efficient) and quiet.
The Processor – After doing a little research and giving it much consideration, I chose the Intel Core i7-3770k processor with a 3.5 GHz base clock frequency, 3.9 GHz maximum default “turbo” frequency, and 8 MB of L3 cache and hyper-threading. Besides the featuring the highest clock frequency among the mid-range Ivy Bridge socket 1155 desktop processors, the “K” suffix means the “turbo mode” multipliers are fully unlocked, giving this processor a lot of overclocking potential.
The Motherboard – The ASUS Sabertooth P67 board meet my needs so well for my Sandy Bridge build that I decided to turn to them once again, selecting the Sabertooth Z77 board for this build.
The Heatsink – After doing a bit a research to make sure it would clear the surrounding components on the motherboard, including the RAM, I chose the Cooler Master Hyper 212 Plus. To improve its already very good cooling capabilities, I purchased an additional Cooler Master 120 mm fan to match the fan the product shipped with and then set it up in a push/pull configuration. This configuration combined with the Corsair case provides very good overall processor cooling. Finally, to ensure that both fans would rotate at reasonably the same speed, I used a PWM splitter from Rosewill to power and control both fans from the processor fan header.
The RAM – I was looking to upgrade to 16 GB of RAM this time around, with timings as low as possible. A factor that I was again glad I considered ahead of time was whether the RAM would fit under the processor’s fan/heatsink due to the close proximity of the RAM slots to processor. I ended up eliminated a couple of products (Corsair’s “Dominator” as an example) because they were simply too tall to fit. Finally I ended up selecting G.Skill’s RipjawsX DDR3-1866 16 GB kit (4 * 4GB), which runs at 1.5v with timings specified at 9-10-9-28.
The Graphics – I with AMD again. After doing looking at some online comparisons, choosing Gigabyte’s version of AMD’s Radeon HD 7870, the GV-R787OC-2GD. At ~$360, it provided the best performance for the money. Indeed, given my 24-inch Dell monitor’s 1920 * 1200 resolution, this GPU should easily handle nearly any game I throw at it.
The Hard Drives – With this build I decided to step up the size and performance of the SSD drive and selected a 2.5-inch OCZ Vertex 4 120 GB SATA 6 Gb/s drive. This will serve as my system drive, containing the operating system and a few of my most used applications and games, while a Western Digital Caviar Black 1TB 7200 RPM 64MB cache SATA 3.0 drive will hold the bulk of my non-OS data.
The Optical Drive – Yup, still use one of these :). In this case, the venerable ASUS DRW-24B1ST.
The Operating System – Not much of a surprise here, I went with Windows 7 Pro 64-bit. The Home Premium version doesn’t support Remote Desktop connections from another computer, a feature I use daily, and this of course is my gaming rig, leaving a Linux out of the hunt (for now). Besides, I get my *nix on using my laptop, which is setup to dual boot windows and several Linux distros, as well as various other machines I administer.
The Build
Time to put those parts to some use. I typically build my systems outside of the case first, then when I’m sure everything is running well, I’ll place the components in the case and dress up the wiring (See Figure 1).
Figure 1
The SATA 3.0 and SATA 6.0 ports on the ASUS Z77 are mounted horizontally on the board, making it easier to connect/disconnect disk drives with graphics cards in place. I connected the 120 GB OCZ Vertex 4 drive to the SATA 6.0 GB port 1, and the 1TB WD Caviar Black drive on the SATA 6.0 port 2. These are the Brown SATA ports on the ASUS Sabertooth Z77 motherboard.
When mounting the Cooler Master Hyper 212 Plus, I was able to achieve the lowest processor temperatures by applying two thin lines of thermal compound, in this case, Artic’s Silver 5, to the two center mounting base partitions heat sync (See Figure 2). My idle temperatures are hovering around ~28C when measured in UEFI and approximately the same when measured from within Windows using Real Temp.
Figure 2
The Sabertooth motherboards are equipped with what ASUS calls “TUF Thermal Armor,” a marketing term that ASUS uses to denote what is essentially a large heatsink that encompasses nearly the entire motherboard. The idea behind this unorthodox design is to conduct the hot air generated by cards and components out of the case through special air flow channels, thus reducing the overall temperature of the motherboard, and by extension the inside the the PC case. To do this effectively, however, ASUS recommends that system builders use a processor fan that directs air downward into the motherboard. Unfortunately, like most processor fan/heatsink products made for the PC enthusiasts market, the Cooler Master Hyper 212 Plus is mounted vertically, directing air out the back of the case, not downward towards the motherboard’s components. In anticipation of the situation, ASUS provides a small 50mm fan and a spot on the motherboard to mount it in order to improve the air flow through the TUF Thermal Armor.
After successfully assembling the components, and firing up the system without issue, I proceeded to update the Z77’s UEFI firmware to the latest version. Fortunately ASUS makes this task incredibly easy, offering a number of ways to perform the update, including directly from Windows. I chose to perform the update directly from within the UEFI. First, I downloaded the latest firmware code to a USB flash drive, then inserted the drive into a USB 2.0 port. I entered the “Advanced Mode” of UEFI, navigated to the “Tool” menu, and selected “ASUS EZ Flash Utility.” I highlighted the USB drive containing the ROM file and selected “Enter” to proceed with the UEFI firmware update.
Before installing the operating system on the OCZ Vertex 4 drive, I decided to do a little research on what it would take to update its firmware from version 1.3 to 1.4, which I understood from the OCZ forums would yield better performance from the drive. I’m glad I did, for as it turned out, the version 1.4 firmware update is destructive; meaning if I had gone through process of installing the OS, the update would have simply deleted it. Therefore, performing an update required attaching the drive to another Windows-based machine.
Then I encountered another challenge. The OCZ firmware update tool would indicate that the firmware had updated successfully to version 1.4 and to reboot; however, the tool would then continue to indicate the firmware was version 1.3. The work-around for this problem was odd but it worked. First, I booted the machine. Then I unplugged the power cable from the back of the drive, waited a couple of minutes, and plugged the power back in. Then I proceeded with the update. Once updated, I rebooted and the update tool reported the firmware had indeed successfully updated to version 1.4. It appears the effort was worth it however. A quick look at the performance of the drive using the ATTO Disk Benchmark indicated sequential reads/writes of 476 MB/384MB respectively using 128 KB transfer size.
After successfully installing Windows 7 and all of the device drivers installed, Window’s Device Manager still indicated that a driver for the “PCI Simple Communications Controller” was still missing (The dreaded yellow exclamation mark). It turned out to be a simple fix, but one I always seem to forget to do – download and install Intel’s Management Engine Interface utility from ASUS.
Finally, to improve the reliability of the Z77 Sabertooth’s Ethernet interface I downloaded and installed Intel’s driver for the 82579 Ethernet network interface controller on the Z77. Then, I entered the UEFI’s Advanced mode, navigated to Advanced -> APM and enabled “Power On By PCI” to activate the board’s Wake-on-LAN feature.
With these issues out of way I continued on, updating Windows, adding applications, tweaking options and generally letting the system burn-in for a bit. Then it was time to move on to overclocking the system.
The Overclock
By default the Core i7-3770K runs at 3.5GHz but can turbo boost itself to 3.9GHz if all four cores are not being utilized, and assuming it is operating within what Intel feels are acceptable power and temperature limits. However, Like all of Intel’s “K”suffix processors, the i7-3770K is multiplier-unlocked – this time up to 63x compared to 57x on the Sandy Bridge Core i7-2770K. Therefore, assuming the BCLK bus is running at its default of 100MHz, you could theoretical achieve a maximum CPU speed of the 6.3GHz simply by adjusting the multiplier, assuming of course that you had the necessary cooling solution.
For this build I took a much more conservative route. Not unlike most of the “enthusiasts” motherboards on the market today, the Sabertooth Z77 offers a method to automatically overclock your system, dispensing with the need in most cases to independently adjust BCLK, multiplier, memory, and voltage settings. In fact, the Z67 offers two methods: one is available by navigating to the in the UEFI’s “EZ Mode” settings and selecting the “Performance” option. The other is available by navigating to Advanced Mode -> Ai Tweaker and selecting “OC Tuner.” I decided to give the EZ Mode Performance option a go and was quite happy with the results (See Figure 3).
Figure 3
The BCLK was increased to 103 MHz and the Turbo Mode multiplier for all four cores to 41. This resulted in an overall processor speed of ~4.2 GHz when running in Turbo Mode. My DDR3-1866 memory essentially remained unchanged. Like I said, conservative. But fast enough for the time being, with plenty of headroom to make further increases in the future if desired.
Next, I adjusted my memory timings to the 9-10-9-28 and ran Memtest86+ for a couple of passes to ensure those timings and the memory in general was sound. Then I ran the 64-bit version of Prime 95 using the “Large in-place FFT” setting for ~24 hours to ensure that the system stability and maximum processor core temperatures were kept in check. I should note that ambient room temperature during the Prime 95 testing was ~21 C. The tests resulted in no errors and the maximum processor core temperatures peaked at ~86 C but on average were ~80C. (See Figure 4).
Figure 4
Conclusion
I couldn’t be more pleased with this build. Intel’s Core i7-3770K processor and ASUS’s Sabertooth Z777 motherboard is a solid mid-range combination. Since its completion, the system has been 100% stable.
Recently I decided it was time to upgrade my main desktop computer. My current system, featuring an Intel DP55KG motherboard (P55 Chipset/Socket 1156), Intel Core i7-860 (Lynnfield) processor, AMD Radeon HD 5870 GPU, and 8 GB of DDR3-1600 Mushkin RAM, had served me well, but I was anxious to give Intel’s “Sandy Bridge” architecture a try. This post will document my upgrade, starting with the parts I selected and why; the assembly of the system and the challenges I encountered; and finally, a few thoughts on overclocking the upgraded system.
The Parts
As I stated in my previous posts concerning my Lynnfield build, I’ve built a good many PCs over the years. My goal now, as it was then, was to use the best quality components I could find for a low price, and build a good, fast, and reliable machine. In other words, build a machine that’s a good value.
The Case – Thermal management in Intel processors have progressed to the point where unless you’re planning on doing some serious overclocking there’s really no reason to consider using water cooling over a good air cooling solution. Consequently, I was looking for a mid-tower case with good air flow. Since the NZXT Tempest case I used for my Lynnfield build had served me well in this regard, I decided to go with the next generation of this case, the NZXT Tempest Evo. Among other things, this case features dual 120mm intake and 140mm exhaust fans, with an additional side 120mm fan and rear 120mm fan, making it one of the better cases for air cooling. Another nice feature that was added to this case is a slightly wider side panel design, thus increasing the available space behind the motherboard for cable routing, as well as a punchout behind the processor so one doesn’t have to completely remove the motherboard from the case in order to replace the heatsink and fan.
The Power Supply – I’ve almost exclusively used power supplies from two manufacturers: Fortron for lower cost builds and PC Power & Cooling. This time however, I decided to go with the Corsair TX750. This is a slightly less expensive unit than a comparable one from PC Power & Cooling, but Corsair does maintain quality products and this unit still features a dedicated, single +12V rail for maximum and efficient power distribution.
The Processor – With Sandy Bridge Intel launched with no less than 29 different SKUs (15 for mobile and 14 for desktop) once again presenting a very challenging decision for the gamer/enthusiast building a new desktop system. After doing some research and giving it much consideration, I chose the Intel Core i7-2600k processor with a 3.4 GHz core clock, 8 MB of L3 cache and hyper-threading. Besides the featuring the highest core clock among the Sandy Bridge desktop processors, the “K” suffix means the “turbo mode” multipliers, from 16x all the way up to 57x, are fully unlocked, giving this processor a lot of overclocking potential.
The Motherboard – I’ve traditionally used ASUS motherboards but then began to run into reliability problems with them over the years. I also grew tired of the growing list of “features” their boards began to offer that I had no use for on my desktop machines (e.g. WiFi, Bluetooth, etc.), resulting in time spent maintaining drivers for these features or trying to disable them altogether. For my Lynnfield build I used Intel’s DP55KG and really liked it. No it didn’t have all the features and overclocking capabilities of say an ASUS or Gigabyte motherboard at the time, but it turned out to be sufficiently overclockable for my needs and has been 100% reliable. However, The Sandy Bridge processor ushered in yet one more socket change by Intel, Socket 1155, taking the option to use my existing Socket 1156-based Intel DP55KG motherboard off the table. Even so, given my overall good experience with Intel motherboards, I initially decided to go with them again for this build and chose their DP67BG. However, no sooner had this board arrived than Intel announced that they had discovered a design error in the P67 chipset. In some cases, the Serial-ATA (SATA) ports within the chipset may degrade over time, potentially impacting the performance or functionality of SATA-linked devices such as hard disk drives and DVD-drives. Since I had just purchased the product I returned it as defective for a full refund. Then I waited for Intel to roll out the next (so called “B3”) version of this board. Unfortunately that day never came, and Intel showed no sign that they would upate this product, so I once again looked to ASUS to meet my needs and ended up selecting their Sabertooth P67 board, my first I should add that featured a Unified Extensible Firmware Interface (“UEFI”). I also purchased a small 50 mm fan from Evercool to help improve upon the board’s “TUF Thermal Armor” cooling capabilities.
The Heatsink – I chose the Cooler Master Hyper 212 after doing a bit a research to make sure it would clear the surrounding components on the motherboard, including the RAM. To improve its already very good cooling capabilities, I purchased an additional 120 mm fan from Cooler Master that matched the fan the product shipped with and set it up in a push/pull configuration. This fan configuration combined with the NZXT case should provide excellent overall processor cooling. Finally, to ensure that both fans would rotate at reasonably the same speed, I used a PWM splitter from Rosewill to power and control both fans from the processor fan header.
The RAM – I was looking for an 8 GB DDR3-1600 dual kit (2 x 4 GB) with the timings as low as possible. Another factor that I was glad I considered ahead of time was whether the RAM would fit under the processor’s fan/heatsink due to the close proximity of the RAM slots to processor. I ended up eliminated a couple of products (Corsair’s “Dominator” as an example) because they were too tall to fit. I ended up selecting G.Skill’s RipjawsX DDR3-1600 8 GB dual kit, which runs at 1.65v with timings that spec at 7-8-7-24-2N. I had heard and read good things about G.Skill memory and was anxious to finally have the opportunity to give one of their products a try.
The Graphics – I have no particular allegiance to either AMD or Nvidia and was willing to go with a product from either depending on its price versus performance. I ended up going with AMD this time around and chose the MSI R6950 Twin Frozr II OC. For ~$290, I felt it provided the best performance for the money.
The Hard Drives – When I built my Lynnfield-based rig, solid state drive (SSD) prices were still relatively high compared to conventional spindle drives and firmware support for features like “trim” so fluid I decided to stick with with my trusty Western Digital “Raptor” drives. SSD prices have since dropped and trim support is now fully implemented so I decided it was time to upgrade. While I wanted to spring for a new SATA revision 3.0 (SATA 6 Gb/s) drive, I could not justify the cost at this time, so I chose instead the OCZ Vertex 2 80 GB SATA revision 2.0 (SATA 3 Gb/s) SSD. This will serve as my system drive, and a Western Digital Caviar Black 1TB 7200 RPM 64MB cache SATA 3.0 drive will hold my data.
The Optical Drive – Believe it or not I actually still use one of these :). I didn’t spend much time shopping for it though, instead I went to Newegg, navigated to CD/DVD Burners, selected “Best Rating” from among the search options, and dutifully paid for the ASUS DRW-24B1ST.
The Operating System – Not much of a surprise here, I went with Windows 7 Pro 64-bit. Why the Pro version instead of Home Premium? Remote Desktop. Home Premium doesn’t support it and I need this feature so I can access this machine remotely. Why Windows and not Linux? Games. I’m a PC gamer and this is my gaming rig (there are many like it but this one’s mine…). Someday perhaps computer gaming on *nix-based systems will be a viable option. No one hopes that day will will come more than I do, but it’s not today.
The Build
With the component selection and purchase out of the way it was time to put them all together. I like to build systems outside of the the case. Then, when I’m sure everything is running well, I’ll place the components in the case and dress up the wiring (See Figure 1).
Figure 1
The SATA 2.0 and SATA 3.0 ports are mounted horizontally, facing the back of the case, instead of vertically, making it much easier to connect/disconnect disk drives with the graphics card in place. I placed the 80 GB OCZ Vertex 2 drive, which will hold the operating system, on the P67 controller’s SATA 3.0 GB port 1, and the 1TB WD Caviar Black drive on the SATA 3.0 port 2. These are the Brown SATA ports on the ASUS Sabertooth P67 motherboard.
The Sabertooth P67 is equipped with what ASUS calls “TUF Thermal Armor,” a rather fancy term for what is essentially a heatsink that encompasses nearly the entire motherboard. The idea behind this somewhat unorthodox design is to conduct the hot air generated by cards and components out of the case through special air flow channels, thus reducing the overall temperature of the motherboard, and by extension the inside the the PC case. To do this effectively, however, ASUS recommends that system builders use a processor fan that directs air downward into the motherboard. Unfortunately, like most processor fan/heatsink products made for the PC enthusiasts market, the Cooler Master Hyper 212 Plus is mounted vertically, directing air out the back of the case, not downward towards the motherboard’s components. In anticipation of the situation, ASUS provides a spot on the motherboard that allows one to mount a small 50mm “assistant” fan, in order to improve the air flow through the TUF Thermal Armor (See Figure 2).
Figure 2
After successfully assembling the components, and firing up the system without issue, I proceeded to update the P67 Sabertooth’s UEFI firmware to the latest version. Fortunately ASUS makes updating the firmware incredibly easy, offering a number of ways to perform the task, including directly from Windows. The one that worked best for me was to perform the update directly from within the UEFI. First, I inserted a USB drive contained the latest UEFI ROM file into a USB port. Then I entered the “Advanced Mode” of UEFI, navigated to the “Tool” menu, and selected “ASUS EZ Flash Utility.” I highlighted the USB drive containing the ROM file and selected “Enter” to proceed with the UEFI firmware update.
With updated UEFI firmware now place, it was time to explore the UEFI settings, ensuring that my drives were detected correctly, disabling unwanted features, etc. One issue I noticed fairly quickly was that my processor temperature was idling at ~42C at a room temperature of ~21C, a little hotter than what I would expect when using the Cooler Master Hyper 212 Plus. It should be noted here that on the P67 Sabertooth, the processor temperature reading in the UEFI can be anywhere between ~5C – ~10C higher than in Windows. That’s normal as the UEFI does not send idle commands to the processor, as is the case when the OS is running. Investigating this issue further led me to this Benchmark Reviews article discussing the best thermal paste application methods for heat-pipe direct touch coolers. After a bit of experimentation, I obtained the lowest processor temps using my Cooler Master Hyper 212 Plus by applying two thin lines of Artic Silver 5 thermal compound to the two center mounting base partitions (See Figure 3), lowering my processor temps to ~37C in UEFI and ~31 when measured from within Windows using Real Temp.
Figure 3
Windows Professional (x64) installed without issue on the OCZ Vertex 2 drive, but this is where my progress came to a temporary halt. One of the first applications I typically install shortly after I finish installing the OS is CPU-Z in order to evaluate processor core stepping and core voltage; internal and external processor clocks and clock multipliers; and memory frequency and timings. CPU-Z showed that the processor multiplier was “stuck” at 1.6 GHz (multipler = 16x), never allowing the processor to rise to its specified default operating frequency of 3.4 GHz (multiplier = 34x) or its default Turbo mode frequency of 3.8 GHz (multiplier = 38x). After trying numerous UEFI tweaks, I gave up and concluded that the board was defective. The replacement board was received a week or so later and after reassembling the requisite parts it worked as designed.
Another issue I encountered involved updating the firmware on the OCZ Vertex 80 GB drive to the most recent version – 1.33 at the time of this post. The OCZ Toolbox firmware update tool did not see the SSD drive because the tool is currently incompatible with the Intel Rapid Storage Technology (“RST”) driver software – V10.0.0.1046 at the time of this post. The work around for this problem was to remove the Intel RST driver, update the firmware, then reinstall the Intel RST driver. Incidentally, I took the opportunity to run a few benchmark tests against this drive using ATTO Disk Benchmark and came away with the 272 MB reads and 258 MB writes (128 KB transfer size).
With all of the device drivers installed Window’s Device Manager was still indicating that a driver for the “PCI Simple Communications Controller” was still missing (The dreaded yellow exclamation mark). It turned out that I needed to download and install Intel’s Management Engine Interface utility from ASUS in order to clear that error.
Finally, to improve the reliability of the P67 Sabertooth’s Wake on Lan feature, I decided to download and install the Intel drivers for the Sabertooth P67’s 82579V Ethernet network interface controller. Then, I entered the UEFI’s Advanced mode, navigated to Advanced -> APM and enabled “Power On By PCI.”
With these issues out of way I continued on, updating Windows, adding applications, tweaking options and generally letting the system burn-in for a bit. Then it was time to move on to overclocking the system.
The Overclock
With the advent of Intel’s “Turbo Mode” feature starting in its Nehalem “Bloomfield” processor, the Base Clock (BCLK) multiplier value was able to automatically increase beyond its default value if the processor was operating within what the design considered to be a safe temperature tolerance. For example, in the Bloomfield architecture, processors were allowed to raise the stock multiplier value by 1 or 2 depending on the number of cores being used so long as the processor’s core temperatures did not rise beyond an arbitrary threshold. Intel’s Lynnfield processors generally ran cooler and so were allowed to be considerably more aggressive with Turbo Mode, increasing Turbo Mode multipliers within a range of ~2-5. In practice what this meant was that when fewer processor cores were in demand by a given application or process, larger multiplier values were used, thus allowing the processor to temporarily run at a higher clock rate than the default multiplier would normally allow. In the case of my Core i7 860 for example, with its BCLK of 133 MHz, it was not uncommon to see it use a multiplier value of 26 in single-threaded applications, yielding a processor speed of 3.46 GHz, well above its stock speed of 2.8 GHz when using the default multiplier of 21.
Consequently, when it came to overclocking, the Lynnfield architecture offered the user somewhat of a choice. You could attempt to overclock the system with Turbo Mode enabled, requiring you to be mindful of the headroom necessary when higher turbo multiplier values kicked in, or you could simply disable Turbo Mode and go with the more traditional overclocking approach. Either way, the steps were similar: adjust the BCLK to achieve your desired processor frequency; adjust the memory multiplier to compensate for the change in BCLK; and, if necessary, adjust the processor voltage, memory voltage, and Uncore voltage to stabilize the system; rinse and repeat.
The new Sandy Bridge technology, however, is a bit more challenging when it comes to overclocking. The new 100 MHz BCLK of Sandy Bridge processors doesn’t give users a lot of latitude in terms of increasing its value. If you’re lucky you can get it to run reliably at say 110 MHz. Multiply that value with your maximum Turbo Mode multiplier value, 38 in the case of the Core i7 2600K, and you’ll achieve ~4.2 GHz. Fortunately, with the K series processor, your overclocking options aren’t limited by the BCLK value; you’re also offered an unlocked multiplier ranging from 34 to 57, allowing you to potentially reach much higher processor speeds when operating in Turbo Mode.
Not unlike most of the “enthusiasts” motherboards on the market today, the Sabertooth P67 offers a method to automatically overclock your system, dispensing with the need in most cases to independently adjust BCLK, memory and voltage settings. In fact, the Sabertooth P67 offers two methods: one is available by navigating to the in the UEFI’s “EZ Mode” settings and selecting the “Performance” option. The other is available by navigating to Advanced Mode -> Ai Tweaker and selecting “OC Tuner.” I decided to give the EZ Mode Performance option a go and was quite happy with the results (See Figure 4).
Figure 4
The BCLK was increased to 103 MHz and the Turbo Mode multiplier for all four cores to 43. This resulted in an overall processor speed of ~4.4 GHz when running in Turbo Mode. My DDR3-1600 memory settled at a speed of 1648 MHz. None of this is going to set any overclocking records, but you know what? It’s plenty fast for me for the time being, with plenty of headroom to make further increases at a later time if desired.
Next, I adjusted my memory timings to the 7-8-7-24 and ran Memtest86+ for a couple of passes to ensure those timings were stable. Then I ran the 64-bit version of Prime 95 using the “Large in-place FFT” setting for ~24 hours to ensure that the system stability and maximum processor core temperatures were kept in check. I should note that ambient room temperature during the Prime 95 testing was ~21 C. The tests resulted in no errors and the maximum processor core temperatures were ~65 C. (See Figure 5).
Figure 5
Conclusion
Intel’s Core i7 2600K processor and ASUS’s Sabertooth P67 motherboard turned out to be a good mid-range combination. Throw in the MSI R6950 Twin Frozr II graphics card and the 8 GB DDR3-1600 dual kit from G.Skill and I couldn’t be more pleased with the results of my first Sandy Bridge build. Since its completion, the system has been 100% stable. Future plans for this system likely include replacing the 80 GB SATA 2.0 drive with a SATA 3.0 drive, and of course do a bit more overclocking.
(20120629- This post has been amended to address changes in current versions of CrunchBang and GParted — iceflatline)
This post will describe how I installed and configured CrunchBang Linux for use on a Lenovo ThinkPad T410, the challenges that I encountered, and how those challenges were overcome.
CrunchBang is a Debian-based distribution featuring the light-weight Openbox window manager. The distribution is essentially a minimalistic Debian system customized to offer a good balance between speed and functionality. The Lenovo ThinkPad T410 that I purchased has the following specifications:
Windows 7 Professional (x64)
Intel Core i7-620M processor (2.66 GHz)
Elpida RAM 4MB (1066 MHz)
Seagate 300GB HDD (7200 RPM)
Intel 82577LM Gigabit Ethernet adapter
11b/g/n wireless LAN Mini-PCI Express Adapter II
NVIDIA NVS 3100m Graphics Adapter
For those of you who may still be contemplating your purchase of this laptop, you may want to consider carefully the wireless adapter choices offered by Lenovo. The Lenovo 11b/g/n wireless adapter (Realtek is the OEM) is not natively supported in CrunchBang at the current time, which required me to compile and install an appropriate driver from Realtek. This was not difficult as you’ll see in the steps below, however you may wish to consider purchasing the machine with the Intel Centrino-based adapter option instead. To the best of my knowledge, this adapter is natively supported in CrunchBang, as well as many other Linux distributions, including Ubuntu.
In addition, if you choose to purchase the laptop with the Nvidia graphics option, be aware that CrunchBang utilizes the in-kernel graphics driver Nouveau. This driver generally works well, however its performance in 3D-based games or desktop effects that require hardware graphics acceleration is limited. Nvidia makes available its proprietary driver, however the installation and configuration of this driver are beyond the scope of this post.
Installation
Among my goals when purchasing the T410 was to be able to dual-boot between Windows 7 and various Linux distributions and/or *BSD. The following steps describe how I reduced the size of the existing Windows 7 partition and re-partition the remaining unallocated disk space in order to install CrunchBang. The Window 7 Boot Configuration Data Editor (BCDEdit) was used to configure the Windows 7 bootloader to display a menu at boot time that allowed me to choose between Windows 7 and CrunchBang. If you’re not interested in preserving your existing Windows 7 install, or plan to install CrunchBang on a virtual machine using an application such as QEMU or VirtualBox then simply skip these steps and proceed with installing CrunchBang directly to the physical or virtual disk.
While I’ve never encountered a situation where the following steps destroyed existing disk data, you should make sure you backup any files you feel are critical before proceeding.
Reducing the Windows 7 Partition
The first thing that I needed to do was reduce the size of the existing Windows 7 partition. I found Windows 7’s own Disk Management tool to be the most efficient method for accomplishing this task. The Disk Management tool can be accessed by using Win+r and entering diskmgmt.msc. I right-clicked on the Windows 7 partition (C:) and selected “Shrink Volume.” Then I entered the amount of space (in Megabytes) that the partition should shrink (which in turn becomes the amount of space available to install CrunchBang), then selected “Shrink” (See Figure 1). CrunchBang needs a minimum of approximately 5 Gigabytes (GB) of free disk space. I chose 80 GB (80000 MB), within which I will create a ~31 GB partition for CrunchBang, a ~1 GB partition for Linux swap, and a ~16 GB NTFS partition that I will use to share files between CrunchBang and Windows 7. The remaining space I will hold in reserve for additional logical partitions. I then exited out of the Disk Management tool and rebooted the system, eventually arriving at the Windows 7 logon screen. Along the way I saw Windows perform a disk check – that’s normal, and only occurred once as a result of this procedure.
Figure 1
Partitioning for CrunchBang
To partition the newly created free disk space, I booted the system from a USB-based flash memory drive containing a stable release of GParted Live. After accepting the default settings for keymap, language, and X-window configuration, I arrived at the GParted desktop (See Figure 2).
Figure 2
I could see the ~80 GB of free disk space that I created currently labeled as unallocated. The hard drive is limited to four primary partitions, so in this unallocated space I created a new extended partition by left-clicking on this space to highlight it, then selecting “New” to create a new partition. I made this partition an Extended Partition, then selected “Add” (See Figure 3).
Figure 3
Once the new extended partition was created, I left-clicked on its unallocated space to highlight it and then selected “New” to create a new partition. I made this partition a Logical Partition and the file system ext4. I reduced the size of this partition to ~31 GB by moving the slider to the left until I reached the desired size (alternatively you can do this by typing in the value in the New Size field) then selected “Add” (See Figure 4).
Figure 4
In the remaining unallocated space, I created two additional logical partitions following the steps above. One was a linux-swap file system and sized to ~1 GB, the second was a NTFS file system consuming ~16GB. I reserved the remaining space unallocated for future use. When completed, I had a partition layout that resembled Figure 5.
Figure 5
After review the newly created partition layout, I selected “Apply All Operations” and GParted proceeded with writing the changes to the disk. After a few minutes I could see the re-partitioned drive (See Figure 6).
Figure 6
GParted retained the device designations /dev/sda1, /dev/sda2, and /dev/sda4 for Windows 7 but had now also assigned the appropriate device designations to my newly minted extended and logical partitions:
I exited out of GParted and reboot the system, confirming that I could see the 16 GB NTFS partition that I had created (designated as drive letter E) in Windows 7.
Installing CrunchBang
I downloaded the 64-bit BPO version of CrunchBang and burned it to a CD, then booted the system using this disk. I chose the “Graphical Install” option and continued through the installation process until I arrived at “Partition disks” where I selected “Manual” to advance to an overview of my existing partitions and mount points (See Figure 7). This is where I instructed CrunchBang which mount points and file systems to use on the partitions I had created.
Figure 7
I selected partition #5 and “Use as:” in the subsequent screen, where I was presented with several file system options. I selected the “Ext4 journaling file system” and chose to format the partition. Then I set its mount point to / since partition #5 will serve as the root partition for CrunchBang. When completed, I selected “Done setting up the partition,” which returned me to screen showing an overview of my partitions and mount points (See Figure 8).
Figure 8
Following similar steps, I selected partition #6 and under “Use as:” selected “Swap area.” The mount was then automatically set and there was no need (or option) to format this partition. Partition #7, the NTFS partition, was left alone for the moment. I will add this partition to /etc/fstab in a later step so that CrunchBang will automatically mount it at boot time. After doing a final review, I selected “Finish partitioning and write changes to disk,” then confirmed my choices by selecting “Yes” in the subsequent screen prompting the installer to write the changes to the partitions (See Figure 9).
Figure 9
CrunchBang needs to be told where to install its bootloader GRUB. Because I will be using the Windows boot loader to boot both operating systems, I elected not to write over it by installing GRUB on the hard drive’s Master Boot Record. Instead, I chose to install GRUB on the partition that will contain the CrunchBang operating system – in my case partition #5 (/dev/sda5) (See Figure 10).
Figure 10
When the installation completed I was asked to reboot the system where I once again arrived at the Windows 7 logon screen.
Configuring for Dual Boot
With the partitions created and CrunchBang installed, it was time to set up the system so that it could boot to Windows 7 or CrunchBang. This involves creating a .bin file containing the boot record of the CrunchBang partition, then copying that file to Windows 7. Window 7’s BCDEdit utility is then used to create a new entry in its BCD store that will point to this file. Windows 7 will then display a menu at boot time that will provides a choice between Windows 7 and CrunchBang.
I once again booted the system using the GParted disk, then opened a terminal and created a temporary mount point:
1
2
sudo su
mkdir/mnt/tmp
Then mounted the device representing the 16GB NTFS partition to this mount point:
1
mount-tntfs-3g/dev/sda7/mnt/tmp
Using the venerable dd command, I wrote the first 512 bytes of the CrunchBang partition to a .bin file and copied that file to the NTFS partition:
I exited GParted and reboot to Windows 7. I navigated to the NTFS partition (E:) where I found the crunch.bin file, and moved that file to the root of the my Windows 7 partition (C:). Next I used BCDEdit to add an entry to Windows 7’s BCD store. Administrative privileges are required to use BCDEdit, so I navigated to Start->All Programs->Accessories, right-clicked on Command Prompt and selected “Run as administrator.” Alternatively you can open the run box using Win+r, enter cmd and then use Ctrl+Shift+Enter. First, I created an menu entry for CrunchBang:
BCDEdit will return an alphanumeric identifier for this entry that I will refer to as {ID} in the remaining steps. You’ll need to replace {ID} by the actual returned identifier. An example of {ID} is {d7294d4e-9837-11de-99ac-f3f3a79e3e93}. Next I specified which windows partition hosts a copy of the crunch.bin file:
1
bcdedit/set{ID}device partition=c:
The path to the crunch.bin file:
1
bcdedit/set{ID}path\crunch.bin
An entry to the displayed menu at boot time:
1
bcdedit/displayorder{ID}/addlast
How long Windows 7 should display the menu:
1
bcdedit/timeout30
That’s it. I rebooted and was presented with a menu where I could choose to boot to Windows 7 or CrunchBang. When I choose CrunchBang, I’m taken to the GRUB menu where I can continue booting to CrunchBang.
By the way, if at any time you want to eliminate the CrunchBang menu option, simply delete the BCD store entry you created using the following command:
1
bcdedit/delete{ID}
Configuration
Internet Connection
After booting to CrunchBang for the first time it was time to establish an Internet connection. Using the T410’s Ethernet port presented no problems, however its 11b/g/n wireless adapter, based on the Realtek 8192SE chipset, is not currently supported by CrunchBang. So, before I could establish a wireless connection, I needed to download and install the appropriate Linux header files, then download, compile and install the Realtek 8192SE Linux wireless driver:
1
apt-get install linux-headers-$(uname-r)
I navigated to the directory where I had downloaded and extracted the Realtek driver file, then changed into the resulting directory to compile and install it:
cd rtl_92ce_92se_92de_linux_mac80211_0004.0816.2011
sudo su
make
make install
After the Realtek driver was installed I reboot the system. To establish a wireless connection, I simply left-clicked on the Network Manager applet icon and selecting my access point. I entered my “WPA and WPA2 Personal” passphrase and was connected to the Internet within a few seconds (See Figure 11).
Figure 11
Run the Post-install Script
With an Internet connection established, I decided to run CrunchBang’s optional post-installation script cb-welcome, designed to help with the initial configuration of a new CrunchBang installation. The script presented me with a series of options that allowed me to update the system’s software package repositories and installed packages, add printer and Java support, and install LibreOffice.
1
cb-welcome
Install and Configure the Pantech UML290 Modem
I own a Pantech UML290, Verizon’s 4G LTE USB Modem. To configure it to work under CrunchBang, I plugged the device in to a USB port, waited for a few moments until the device’s LED began flashing blue, indicating it had found the Verizon network, then left-clicked on the Network Manager applet icon on the bottom desktop panel and selected “New Mobile Broadband (GSM) connection.” I proceeded through the connection wizard until I arrived the “Choose your Provider” screen. Since Verizon was not among the choices on the list, I selected “I can’t find my provider and wish to enter it manually” where I entered the term Verizon in the “provider” field. In the subsequent “Choose your billing plan” screen, I entered the term vzwinternet in the “Selected plan APN (Access Point Name)” field. I then proceeded to the connection wizard’s remaining screen and selected “apply.” I removed the Pantech UML290, rebooted the laptop, plugged it back in and waited for LED to flash blue. Then I left-clicked on the Network Manager applet icon and selected “Verizon connection”, and after a few moments was connected to Verizon’s 4G LTE network.
Configure the Bash Shell
I spend a lot of time at the terminal when using Linux so I configured BASH (“Bourne Again Shell”), CrunchBang’s default shell, so that it contained my favorite aliases and other tweaks. When you start a terminal session in CrunchBang, Bash will read commands from ~/.bashrc. You can add your own command aliases and other changes directly to ~/.bashrc, or simply uncomment and modify some or all of the ones that are provided as examples in that file if desired. The approach that I prefer, however, is to create a separate file containing these modifications, then simply point to that file from within ~/.bashrc. This approach allows me to easily port these changes from one system to another:
1
touch~/.bash_aliases
Then I added my aliases and other tweaks to this file. Here’s an example of my ~/.bash_aliases file:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# This file defines my Bash shell aliases and other tweaks
# This file is linked from ~/.bashrc
# Custom terminal prompt
# Show name@host followed by the current directory
PS1="[\u@\h: \w]$ "
# My Bash aliases
alias ls='ls --color=auto'
alias lsa='ls -a --color=auto'
alias lsl='ls -a -l --color=auto'
alias lsi='ls -a -i --color=auto'
alias lsr='ls -R --color=auto'
alias ps='ps -aef'
alias winshare='sudo mount -t cifs -o username=iceflatline,dir_mode=0755,file_mode=0644,uid=1000,gid=1000 //192.168.10.100/share /media/winhost'
# Set the Terminator titlebar to reflect user@host:dir
Next, I opened ~/.bashrc and uncommented the following lines:
1
2
3
if[-f~/.bash_aliases];then
.~/.bash_aliases
fi
Then I restarted Bash in order for these changes to take effect:
1
exec bash
Configure Terminator
The default terminal emulator in CrunchBang is Terminator, one of my favorites, second only perhaps to Terminal, Xubuntu’s default lightweight terminal emulator.
What Terminator displays in its titlebar is dependent on the environment variable PROMPT_COMMAND. If this variable is not set, the titlebar will display “None” on it’s titlebar. To configure this so it displays the user name and the current directory, I added the following lines to my ~/.bash_aliases file:
To enable window transparency in Terminator I made the cairo composite manager run full time by uncommenting the line (sleep 10s && cb-compmgr –cairo-compmgr) & in ~/.config/openbox/autostart.sh. A fixed transparency setting can be set by right-clicking in the Terminator window and selecting Preferences->Profiles->Background and selecting “Transparent background,” then adjusting the slider to the desired transparency. However I wanted the ability to adjust the level of window transparency using a mouse scroll wheel. To enable this capability I opened ~/.config/openbox/rc.xml and added the following lines in the context name=”Titlebar” area under the mouse section:
1
2
3
4
5
6
7
8
9
10
11
12
13
<!--ICEFLATLINE START-->
<!--Mouse controls forwindow transparency-->
<mousebind button="C-Up"action="Click">
<action name="Execute">
<execute>transset-df-p--inc0.2</execute>
</action>
</mousebind>
<mousebind button="C-Down"action="Click">
<action name="Execute">
<execute>transset-df-p--min0.2--dec0.2</execute>
</action>
</mousebind>
<!--ICEFLATLINE END-->
Then I restarted Openbox in order for these changes to take effect:
1
openbox--restart
Now I can place the mouse pointer on the Terminator titlebar and adjust the window transparency using CTRL + mousewheel. Note that now if you select “Transparent backgound” under Preferences->Profiles->Background, the slider bar determines the minimum transparency achieved using the mouse scroll wheel.
Partition Mounting and Permissions
To ensure that CrunchBang mounts my Windows 7 and NTFS partition at boot time with the correct directory and file permissions, I created two mount points in /media:
Unfortunately, CrunchBang’s Thunar file manager is unable to discover Windows hosts on a network and then automatically mount/unmount their shared folders. Consequently, in order to access a shared folder, one can either use Gigolo, a small utility included with CrunchBang that acts as a frontend to manage connections to local and remote filesystems using GIO/GVfs, or manually mount the remote shares yourself. I chose the latter. First I installed smbfs, a CIFS compatibility package that adds support for the old SMB/CIFS filesystem types smbmount, smbumount, and mount.smbfs:
1
sudo apt-get install smbfs
Created a mount point in /media:
1
sudo mkdir/media/winshare
Then mounted the Windows share on this mount point with the correct directory and file permissions using the IP address of the Windows host, the name of the shared folder, and Windows user name:
To cut down on the amount of typing required each time I needed to mount this share, I added the following command alias in my ~/.bash_aliases file:
1
alias winshare='sudo mount -t cifs -o username=iceflatline,dir_mode=0755,file_mode=0644,uid=1000,gid=1000 //192.168.10.100/share /media/winshare'
Note: A similar mount command can be added to /etc/fstab if there is a desire to have the shared folder mounted automatically when CrunchBang starts.
Enable the Volume, Mute and Microphone Controls
Unfortunately, the audio volume, audio mute, and microphone mute buttons on the T410’s keyboard were not recognized by CrunchBang. To fix that I opened ~/.config/openbox/rc.xml and added the following lines in the keyboard section:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<!--ICEFLATLINE START-->
<!--t410 volume,mute andmic keyboard bindings-->
<keybind key="XF86AudioRaiseVolume">
<action name="Execute">
<command>amixer-qset Master,05+</command>
</action>
</keybind>
<keybind key="XF86AudioLowerVolume">
<action name="Execute">
<command>amixer-qset Master,05-</command>
</action>
</keybind>
<keybind key="XF86AudioMute">
<action name="Execute">
<command>amixer-qset Master,0toggle</command>
</action>
</keybind>
<keybind key="C-0xF8">
<action name="Execute">
<command>amixer-qset Mic1,080%unmute</command>
</action>
</keybind>
<keybind key="0xF8">
<action name="Execute">
<command>amixer-qset Mic1,0mute</command>
</action>
</keybind>
<!--ICEFLATLINE END-->
Getting the microphone mute button to function properly required a small work-around because, unlike the audio mute control (XF86AudioMute), the system does not support the toggle behavior for this key – in other words, the ability to push the button once to mute the microphone, then once again to unmute it. The work-around was to introduce a second key to the setup so that I could mute the microphone using the microphone mute button, then unmute it and set the microphone level to 80% by holding CTRL key and pushing the microphone mute button. Ugly I know, but it works.
Increase The Maximum Audio level
After setting up the volume controls, I noticed that the maximum audio loudness level in CrunchBang was substantially lower when compared to Windows 7. To correct this problem I right-clicked the volume icon in the panel/taskbar, selected “Preferences” and changed value of “Volume adjustment” to 100. Then I opened the file /etc/modprobe.d/alsa-base.conf and added the following line at the end of the file, then rebooted the system:
1
options snd-hda-intel model=thinkpad
Install and Configure Iceweasel
Iceweasel is the default web browser in CrunchBang. Iceweasel is a fork from Firefox with the following purpose: backporting of security fixes to declared Debian stable version; no inclusion of trademarked Mozilla artwork. Beyond that it is functionally the same as Firefox, and as such, can be configured in the same way.
Make the backspace key work
Oddly, the backspace key in Iceweasel does not cause the browser to go back to the previous page as it does in under Windows. To fix that I entered about:config in the address bar, entered browser.backspace_action in the Filter field, double-clicked on its value and changed it from 2 to 0, then restarted Iceweasel.
Force last tab to close
The default behavior in Iceweasel prevents the user from closing the last open tab without also closing the browser. To enable the ability to close the last tab but not the entire browser, I opened about:config, entered browser.tabs.closeWindowWithLastTab in the Filter field, double-clicked on its value and changed it from “true” to “false,” then restarted Iceweasel.
Avoid the Favicons
Favicons are those small icons made available by web sites that are displayed in front of their respective bookmark and tab in Iceweasel. To save on some disk space and speed up browsing, I prevented Iceweasel from loading these icons. To do this I opened about:config and modified the following parameters:
browser.chrome.favicons set to “false” browser.chrome.image_icons.max_size set to 0 browser.chrome.site_icon set to “false”
Eliminate the new tab button
Iceweasel features a small green “+” symbol adjacent to the tab(s) that provides the user with the ability to open a new tab by clicking on it. This is a feature I don’t use, preferring instead to open new tabs using Ctrl+t. To eliminate this feature, as well as some others I don’t use, I created the file ~/.mozilla/firefox/1jp2ynoh.default/chrome/userChrome.css. Note: your default firefox profile directory will be different than the 1jp2ynoh.default directory shown in following example:
Then I restarted Iceweasel in order for these changes to take affect.
Look and Feel
Modify the GRUB Bootloader Menu
By default, the GRUB menu displays at a resolution of 640*480. Hoping to improve on that I installed and ran hwinfo, a tool to help determine which resolutions the T410’s Nvidia GPU could support:
1
2
sudo apt-get install hwinfo
sudo hwinfo--framebuffer
The following sample output from the preceding command suggested a number of resolutions that could be supported. Through some trial and error, I settled on 1024*768:
I opened /etc/default/grub and uncommented and modified the following line:
1
GRUB_GFXMODE=1024x768
While I had this file opened, I also changed the value of GRUB_TIMEOUT to 180 so that the GRUB menu would stay onscreen for 3 minutes rather than the default 5 seconds.
In addition to the issue of resolution and menu duration, the GRUB bootloader menu contained the entry “Windows Recovery Environment,” an entry that I considered superfluous. To eliminate it, I opened /etc/grub.d/30_os-prober and added the following highlighted lines after the section of code that starts around line 92:
if [ -z “${LONGNAME}” ] ; then
LONGNAME=”${LABEL}”
fi
# Added to remove the Windows Recovery entry
if [ “$LONGNAME” = “Windows Recovery Environment (loader)” ] && [ “${DEVICE}” = “/dev/sda1” ] ; then
continue
fi
Then I updated GRUB in order for these changes to take effect:
1
sudo update-grub2
Stop the Clipboard Manager from Launching
I don’t use the Clipboard Manager so there was no need for this to launch at system boot. To stop it I opened ~./config/openbox/autostart.sh and commented out the following line:
1
(sleep3s&&parcellite)&
Move the Panel/Taskbar
By default CrunchBang places its panel/taskbar at the top of the screen. Relocating it to the bottom of the screen was accomplished by opening the file ~/.config/tint2/tint2rc and changing the line Top center horizontal to Bottom center horizontal in the #panel section, then restarting Tint2:
1
sudo tint2restart
Configure Conky
One of my favorite things about using CrunchBang is its inclusion of Conky, a light-weight free and open source system monitor that can display nearly any information about my system. Using sets of variables in Conky’s configuration file I can define what Conky should monitor and where those monitored parameters are displayed on the desktop. The look and feel of how this information is displayed is also highly customizable.
Conky’s default configuration file ~/.conkyrc can be used as a starting point. When configuring Conky for my system I decided to dispense with fancy network graphs and other eye candy and go with a more minimalistic approach instead. I settled on four areas for Conky to monitor, which provide just the information I need while not burdening system resources.
System – Basic system information showing kernel version, uptime, total RAM and Swap usage, etc.
Processor – Shows the top five applications or processes based on CPU usage.
Memory – Shows the top five applications or process based on system RAM usage.
Network – Shows basic information regarding wired and wireless connections, including IP address, inbound and outbound speed, connection quality, etc.
Conky includes support for the use of conditional statements within its configuration file. The ${if_up} variable, for example, checks for the existence of an interface passed to it as an argument. If that interface exists and is up, Conky will display everything between ${if_up} and the matching ${endif}. I used this particular variable to my advantage when configuring the network monitoring section. Instead of displaying information about all my wired and wireless interfaces, even when they were not active, I chose instead to have Conky display information about them only if they were being used. Here’s the configuration file I’m currently using. Feel free use it as is or change it to fit your needs.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
#### Conky Configuration File
### START OF CONFIG
## Conky Display Settings
# Set to yes if you want Conky to be forked in the background
background yes
# Font
use_xft yes
xftfont Sans:size=8
xftalpha1
# Update interval in seconds
update_interval1.0
# This is the number of times Conky will update before quitting
# Set to zero to run forever.
total_run_times0
# Create own window instead of using desktop (required in nautilus)
own_window yes
# Use pseudo transparency with own_window?
own_window_transparent yes
# If own_window is yes, you may use type normal, desktop or override
own_window_type normal
# If own_window is yes, these window manager hints may be used
In order for Conky to recognize any changes you’ve made you’ll need to reboot the system or use the following command:
1
conkywonky
Here’s what this Conky configuration looks like running on my CrunchBang desktop:
Figure 12
Figure 13
Finishing Steps
At this point the installation and basic configuration of CrunchBang on my Lenovo T410 was complete. All that was left for me to do was to download and install/uninstall some applications, stop a few applications and processes from starting automatically, and organize the Openbox menu.
CrunchBang includes a nice set of default applications, however, there were a few not included that I could not do without, including:
ethtool – A utility for controlling network drivers and hardware Filezilla – An FTP client. Geeqie – A graphics file browser. Hamachi – A hosted VPN service now known as “LogMeIn.” htop – An interactive process viewer for Linux. locate – A utility that scans one or more databases of filenames and displays any matches. ntpdate – A client for setting system time from NTP servers. Notepad++ – A text editor (run under wine). OpenVPN – A VPN software and server application. Pidgin – An instant messenger client sysv-rc-conf – A utility to examine run-level services. Truecrypt – Disk encryption software tsclient – A program for remotely accessing and viewing Windows desktops. Wine – Windows emulator.
All of these were applications were available through the package manager. I also took the opportunity to uninstall some of the default applications that I knew I wouldn’t use. Abiword, Catfish, GIMP, gFTP, Gnumeric, and Viewnior fell into this category.
After installing/uninstalling applications, I fired up sysv-rc-conf to examine run-level services:
1
sudo sysv-rc-conf
The default layout displays a grid of all services that have symlinks in /etc/init.d/ and which run-levels they are activated in (See Figure 14). For example, where the cups row and column 2 intersect, if there is an “X” there that means the service will be turned on when entering run-level 2 (run-level 2 through 5 are full multi-user modes and are equivalent in CrunchBang). If there is no X it can mean that either there are no links to the service in that specific run-level, or that the service is turned off when entering that run-level. If more configuration detail is needed, sysv-rc-conf can be started using the priority option.
1
sudo sysv-rc-conf-p
The priority layout also uses a grid, but instead of X’s there are text boxes that can have different values. If the text box starts with the letter S the service will be started when entering that runlevel. The two digits following is the order in which the services are started. If the text box starts with the letter K the service will be stopped when entering that runlevel. If the text box is blank that means there isn’t a symlink in that run-level for that service and it will not be started or stopped.
Using the sysv-rc-conf default layout I toggled the bluetooth, hddtemp, openvpn, rc.local, rsync, and ntp services off.
Figure 14
With those tasks out of the way it was time to clean up and organize the Openbox menu. The Openbox menu is very flexible, displaying virtually anything, but it does have the downside of not automatically updating to show newly installed applications, these need to be added manually.
There are two ways of editing the Openbox menu, a GUI tool called obmenu, or editing the menu file directly. obmenu can be accessed by right-clicking anywhere on the desktop (alternatively you can use Win+Spacebar) and selecting Settings–>Openbox Config–>GUI Menu Editor. Using obmenu is pretty self explanatory, to edit an entry select it and edit the various fields at the bottom, or to add an entry select “New menu” or “New item” from the top. You can also move an entry to another location by selecting “Edit” and either “Move up” or “Move down.” To edit the menu file directly open ~/.config/openbox/menu.xml. The menu.xml file can also be accessed from the Openbox menu by selecting Settings–>Openbox Config–>Edit menu.xml. I setup my Openbox menu so that I had quick access to Terminator, Firefox, Thunar, Gedit, and VLC via the menu labels Terminal, Web Browser, File Manager, Text Editor, and Media Player respectively, and access to all other applications through six top-level menu categories: Communications, Graphics, Multimedia, Office, and Utilities (see Figure 15). I retained CrunchBang’s default settings for everything else in the Openbox menu.
Figure 15
Once my changes were complete I restarted Openbox so that they would take effect:
1
openbox--restart
Conclusion
This concludes the post on how I installed and configured CrunchBang Linux 10 “Statler” R20111125 on my Lenovo T410 laptop. Many of the choices made throughout the installation and configuration steps that I’ve described were of course based on my personal preference. You are encouraged to make your own choices. I suspect that any challenges you encounter along the way can easily be overcome. In short, CrunchBang works well on this laptop.
I recently purchased a Lenovo ThinkPad T410 laptop. This post will describe how I installed and configured Ubuntu Desktop Edition version 10.04 LTS – Long Term Support (32-bit) for use on this machine, the challenges that I encountered, and how those challenges were overcome.
Following are the specifications for the laptop I purchased:
Windows 7 Professional (x64)
Intel Core i7-620M processor (2.66 GHz)
Elpida RAM 4MB (1066 MHz)
Seagate 300GB HDD (7200 RPM)
Intel 82577LM Gigabit Ethernet adapter
11b/g/n wireless LAN Mini-PCI Express Adapter II
NVIDIA NVS 3100m Graphics Adapter
For those of you who may still be contemplating the purchase this laptop, you may want to consider carefully the wireless adapter choices offered by Lenovo. While the Lenovo 11b/g/n wireless adapter (Realtek is the OEM) is supported in Ubuntu 10.04, that was not the case when using many other Linux distributions on this laptop, which required me to compile and install a driver from Realtek. If you plan on using other Linux distributions on this laptop, I would recommend you consider purchasing the machine with the Intel Centrino-based adapter option instead. This adapter is supported in Ubuntu 10.04 as well as many other distributions.
In addition, if you choose to purchase the laptop with the Nvidia graphics option, be aware that Ubuntu 10.04 utilizes an in-kernel graphics driver known as “Nouveau” for this GPU. This driver generally works well, however its performance in 3D-based games or desktop effects that require hardware graphics acceleration is limited. I prefer to use the proprietary Nvidia driver; and with some configuration I am quite happy with its reliability and performance. Understandably though some users may not want to use proprietary software.
Installation
Among my goals when purchasing the T410 was to be able to dual-boot between Windows 7 and various Linux distributions or *BSD. The following steps describe how I reduced the size of Windows 7 and partitioned the remaining space in order to install Ubuntu. The Window 7 Boot Configuration Data Editor (BCDEdit) was used to configure the Windows 7 bootloader to display a menu at boot time that allowed me to choose between Windows 7 and Ubuntu. If you’re not interested in preserving your existing Windows 7 install, or plan to install Ubuntu on a virtual machine application such as QEMU or VirtualBox then simply skip these steps and proceed with installing Ubuntu directly to the physical or virtual disk.
While I’ve never encountered a situation where the following steps destroyed existing disk data, you should make sure you backup any files you feel are critical before proceeding.
Reducing the Windows 7 Partition
The first thing that I needed to do was reduce the size of the Windows 7 partition. I found Windows 7’s own Disk Management tool to be the most efficient method for accomplishing this task. The Disk Management tool can be accessed by using Win+r and entering diskmgmt.msc. I right-clicked on the Windows 7 partition (C:) and selected “Shrink Volume.” Then I entered the amount of space (in Megabytes) that the partition should shrink (which in turn becomes the amount of space available to install Ubuntu), then selected “Shrink” (See Figure 1). Ubuntu Desktop Edition needs a minimum of 15 Gigabytes (GB) of free disk space. I chose 26 GB (26000 MB), in which I will create a 20 GB partition for Ubuntu, a 1 GB partition for Linux swap, and a 5 GB FAT32 partition that will be used to share files between Ubuntu and Windows 7. Then I exited out of the Disk Management tool and rebooted the system, eventually arriving at the Windows 7 logon screen. Along the way I saw Windows perform a disk check – that’s normal, and only occurred once as a result of this procedure.
Figure 1
Partitioning for Ubuntu
To partition the newly created free disk space, I downloaded the latest stable release of GParted Live and burned it to a CD, then boot the system using the GParted disk. After accepting the default settings for keymap, language, and X-window configuration, I arrived at the GParted desktop (See Figure 2).
Figure 2
I could see the 26 GB of free disk space that I created currently labeled as unallocated. The hard drive is limited to four primary partitions, so in this unallocated space I created a new extended partition by left-clicking on this space to highlight it, then selecting “New” to create a new partition. I made this partition an Extended Partition, then selected “Add” (See Figure 3).
Figure 3
Once the new extended partition was created, I left-clicked on its unallocated space to highlight it and then selected “New” to create a new partition. I made this partition a Logical Partition and the file system ext4. I reduced the size of this partition to ~20 GB by moving the slider to the left until I reached the desired size (alternatively you can do this by typing in the value in the New Size field) then selected “Add” (See Figure 4).
Figure 4
In the remaining unallocated space, I created two additional logical partitions following the steps above. One was a linux-swap file system and sized to ~1 GB, the second was a FAT32 file system consuming all remaining unallocated space. When completed, I had a partition layout that resembled Figure 5.
Figure 5
After review the newly created partition layout, I selected “Apply All Operations” and GParted proceeded with writing the changes to the disk. After a few minutes I could see the re-partitioned drive (See Figure 6).
Figure 6
GParted retained the device designations /dev/sda1, /dev/sda2, and /dev/sda4 for Windows 7 but had now also assigned the appropriate device designations to each of my newly minted extended and logical partitions:
I exited out of GParted and reboot the system, confirming that I could see the FAT32 partition that I had created (E:) in Windows 7.
Installing Ubuntu
To install Ubuntu on to the partitions I created using GParted, I downloaded a copy of Ubuntu and burned it to a CD, then boot the system using the Ubuntu disk. I double-clicked the “Install Ubuntu 10.04 LTS” button to get started, and continued through the installation process until I arrived at “Prepare disk space.” I then selected “Specify partitions manually (advanced)” to advance to the “Prepare partitions” screen (See Figure 7). This is where I instructed Ubuntu which mount points and file systems to use on the partitions I had created.
Figure 7
I left-clicked to highlight /dev/sda5 and then selected “Change.” On the pop-up screen I selected the ext4 file system and the checkbox instructing Ubuntu to format the partition. Device /dev/sda5 will serve as the root partition for Ubuntu so I set the mount point to / from the list of choices in the drop-down menu, then selected “Okay” to accept the changes (See Figure 8).
Figure 8
Following similar steps, I moved set the mount point for /dev/sda6 to linux-swap. There was no need to format this partition. The FAT32 partition located at /dev/sda7 was left alone for the moment. I will add this partition to /etc/fstab in a later step so that Ubuntu will automatically mount it at boot time. After doing a final review, I selected “Forward” to continue. I then worked through the “Who are you?” and “Migrate documents and settings” screens until arriving at the “Ready to install” screen (See Figure 9).
Figure 9
Ubuntu needs to be told where to install its bootloader GRUB. It should NOT be installed on /dev/sda, as that would overwrite the hard drive’s Master Boot Record, nor should it be installed on /dev/sda1, as that is used for the Windows 7 bootmanager files and boot configuration data. Instead, GRUB should be installed on partition that will contain the Ubuntu operating system – in my case /dev/sda5. To do this, I left-clicked on the tab that says “Advanced.” This brought up a pop-up screen where I could specify a location for the GRUB bootloader installation (See Figure 10).
Figure 10
After making sure the checkbox for installing the bootloader was checked, I chose /dev/sda5 from the drop-down list as the device for the GRUB bootloader installation, then selected “Okay” to continue with the Ubuntu installation. When the installation completed I was asked to reboot the system where I once again arrived at the Windows 7 logon screen.
Configuring for Dual Boot
With the partitions created and Ubuntu installed, it was time to set up the system so that it could boot to Windows 7 or Ubuntu. This involves copying the Master Boot Record of the Ubuntu boot partition to a file and copying that file to Windows 7, then using Window 7’s BCDEdit utility to create a new entry in its BCD store that will point to that file. Windows 7 will then display a menu at boot time that will provides a choice between Windows 7 and Ubuntu.
I once again booted the system using the GParted disk, then opened a terminal and made a mount point:
1
mkdir/mnt/tmp
I mounted the device containing the FAT32 partition to this mount point:
1
mount/dev/sda7/mnt/tmp
Using the venerable dd command, I wrote the first 512 bytes of the Ubuntu boot partition to a file and copied that file to the FAT32 partition:
Then I exited GParted and reboot to Windows 7. I opened my FAT32 partition (E:) where I found the ubuntu.bin file, and moved that file to the root of the my Windows 7 partition (C:). Next I used BCDEdit to add an entry to Windows 7’s BCD store. Administrative privileges are required to use BCDEdit, so I navigated to Start->All Programs->Accessories, right-clicked on Command Prompt and selected “Run as administrator.” Alternatively you can open the run box using Win+r, enter cmd and then use Ctrl+Shift+Enter. First, I created an menu entry for Ubuntu:
1
bcdedit/create/dUbuntu/application BOOTSECTOR
BCDEdit will return an alphanumeric identifier for this entry that I will refer to as {ID} in the remaining steps. You’ll need to replace {ID} by the actual returned identifier. An example of {ID} is {d7294d4e-9837-11de-99ac-f3f3a79e3e93}. Next I specified which windows partition hosts a copy of the ubuntu.bin file:
1
bcdedit/set{ID}device partition=c:
The path to the ubuntu.bin file:
1
bcdedit/set{ID}path\ubuntu.bin
An entry to the displayed menu at boot time:
1
bcdedit/displayorder{ID}/addlast
How long Windows 7 should display the menu:
1
bcdedit/timeout30
That’s it. I rebooted and was presented with a menu where I can choose to boot to Windows 7 or Ubuntu. When I choose Ubuntu, I’m taken to the GRUB menu where I can choose to continue booting to Ubuntu or return to the previous menu.
On a final note, if at any time you want to eliminate the Ubuntu menu option simply delete the BCD store entry you created using the following command:
1
bcdedit/delete{ID}
Configuration
Establish an Internet Connection
After booting to Ubuntu for the first time the it was time to establish an Internet connection. Using the T410’s Ethernet port presented no problems, and its 11b/g/n wireless adapter is supported by Ubuntu so establishing a wireless connection was as simple as left-clicking on the Network Manager applet icon on the right side of the top desktop panel and selecting my access point (See Figure 11). I entered my “WPA and WPA2 Personal” passphrase and was connected to the Internet within a few seconds.
Figure 11
Update Software Packages
With an Internet connection established it was time to ensure that Ubuntu contained the most recent updates to its software packages. I frequently install packages from Canonical’s “Parter” repository, so before downloading and installing any updates I opened the file /etc/apt/sources.list and uncommented the following two lines:
1
2
deb http://archive.canonical.com/ubuntu lucid partner
This ensures that third-party software will be available for download and installation and that any software installed from this repository will receive subsequent updates. With that out of the way, I proceeded with updating the local package index and upgrading Ubuntu’s existing software packages:
1
sudo apt-get update&&sudo apt-get upgrade
Install and Configure New Terminal Emulator
While the Gnome terminal that Ubuntu defaults to is just fine, I had the occasion recently to use Xubuntu, a Ubuntu derivative that uses the Xfce desktop environment. I really fell in love with Terminal, Xubuntu’s default lightweight terminal emulator. Most importantly though, it doesn’t bore me to tears looking at it all the time. Terminal emulators are like your significant other – you have to be with them all the time so you might as well get the one you want (See Figure 12):
1
sudo apt-get install xfce4-terminal
Once installed Terminal is available by navigating to Applications->Accessories. To make it my default terminal emulator, I opened System->Preferences->Preferred Applications and selected the “System” tab. From the drop-down list I selected “Custom” then entered xfce4-terminal in the Command field.
The default geometry for Terminal is 80 columns by 24 lines (80×24), however I prefer a few more lines. To adjust the geometry I opened Terminal’s configuration file ~/.config/Terminal/terminalrc and changed MiscDefaultGeometry=80×24 to MiscDefaultGeometry=80×32.
To make the terminal window slightly transparent I opened Edit->Preferences in Terminal, selected the Appearance tab, then selected “Transparent background” from the drop-down list under Background. Finally, I set the default transparency to 0.90 using the Transparency slider bar. I also wanted the ability to make the window more transparent as desired without having to open the terminal preferences each time. To accomplish this I first installed the utility compizconfig settings manager:
Then opened the utility by navigating to System->Preferences->CompizConfig Settings Manager and selected the checkbox next to Opacity, Brightness and Saturation under the Accessibility category. Now I can increase and decrease the transparency of Terminal (or any other window for that matter) by holding the Alt key and using the scroll wheel on my mouse.
Figure 12
Configure the Bash Shell
I spend a lot of time at the terminal when using Linux so I configured BASH (“Bourne Again Shell”), Ubuntu’s default shell, so that it contained my favorite aliases and other tweaks. When you start a terminal session in Ubuntu, Bash will read commands from ~/.bashrc. You can add your own command aliases and other changes directly to ~/.bashrc, or simply uncomment and modify some or all of the ones that are provided as examples in that file if desired. The approach that I prefer, however, is to create a separate file containing these modifications, then simply point to that file from within ~/.bashrc. This approach allows me to easily port these changes from one system to another:
1
touch~/.bash_aliases
Then I opened this file and added my aliases and other tweaks. Here’s an example of my ~/.bash_aliases file:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# This file defines my Bash shell aliases and other tweaks
# This file is linked from ~/.bashrc
# Custom terminal prompt
# Show name@host followed by the current directory
PS1="[\u@\h: \w]$ "
# My Bash aliases
alias ls='ls --color=auto'
alias lsa='ls -a --color=auto'
alias lsl='ls -a -l --color=auto'
alias lsi='ls -a -i --color=auto'
alias lsr='ls -R --color=auto'
alias ps='ps -aef'
Then opened it ~/.bashrc and uncommented the following lines:
1
2
3
if[-f~/.bash_aliases];then
.~/.bash_aliases
fi
I used the following command to have Bash immediately recognize my aliases and other tweaks:
1
exec bash
Partition Mounting and Permissions
While Ubuntu successfully detected my Windows 7 partition at /dev/sda2 it did not automatically mount it. What Ubuntu does in these circumstances instead is to make the partition visible in “Places” but not actual mount it anywhere until it is selected, then it chooses a random name and mounts it at /media. Because I use the terminal a lot this behavior is less than desirable as the partition must be selected in “Places” before it is available from the command line. To ensure that Ubuntu mounts this partition as well as the FAT32 partition at boot time with the correct directory and file permissions automatically, I created two mount points in /media:
I purchased my T410 with the Nvidia graphics option. Ubuntu’s nouveau driver is the default driver for this GPU and it works quite well with this laptop, correctly identifying the native resolution of its display as 1440*900 (16:10) and presenting the Ubuntu desktop appropriately. However, I did not want to be without really good hardware graphics acceleration so I installed the Nvidia driver. This was accomplished by navigating to System->Administration->Hardware Drivers, and starting a small utility which located the most current Nvidia driver within a few seconds. I selected “Activate” and the utility downloaded and installed the driver. When the installation was complete I rebooted the laptop, where once again was presented with the correct desktop resolution. Once the Nvidia driver is installed you will still be able to adjust your display settings using the native Gnome tool (System->Preferences->Monitors), however it will now ask if you “…you want to use your graphics driver vendor’s tool instead?” Selecting “Yes” will activate Nvidia’s tool instead. You can access this tool directly by navigating to System->Administration->Nvidia X Server Settings or by using the command nvidia-settings from a terminal.
Fix screen brightness control
After installing the Nvidia driver I noticed that the keyboard function keys for adjusting the screen brightness no longer worked. The fix for this was to open the file /etc/X11/xorg.conf and add the following line to the “Device” section:
1
Option"RegistryDwords""EnableBrightnessControl=1"
Configure Printing
Printing has come a long way in Linux and the Ubuntu distribution is no exception. My T410 is typically connected to one of two printers most of the time: a Canon i560 Ink Jet connected via USB when at work, or a HP CM1312nfi Laser Jet when at home. Ubuntu instantly recognized the i560 when I connected it via USB with no further configuration necessary to meet my needs. Setting up the HP printer was nearly as seamless; although, because it is a network printer, it required a bit more configuration. I can manage both printers by navigating to System->Administration->Printing, and have even more control by pointing my web browser to http://127.0.0.1:631 to use CUPS (the “Common Unix Print System”) settings.
Configure E-mail
Ubuntu comes with Evolution, a “groupware suite” featuring, among other things, contact, calendar and e-mail applications for Linux systems. I’ll be blunt though – Evolution is a piece of shit. The only reason one would choose to use it is if a) they didn’t realize there were alternatives out there, or b) they need an e-mail client that will work with Microsoft’s Exchange Server 2003 or 2007 and those servers are not supporting the POP or IMAP protocols. I, unfortunately, fall into the latter category. My current employer uses Exchange Server 2007 and has elected not to turn on support for POP or IMAP. Unfortunately, out of the box, Evolution does not work with Exchange 2007 under these conditions. Why? Because Exchange Server uses a proprietary RPC protocol, MAPI (“Messaging Application Programming Interface”), that was designed to be used by the Microsoft Outlook client. Fortunately there is a work around for this problem. The Evolution MAPI plugin has been developed by the open source community that will allow Evolution to communicate with an Exchange 2007 server using MAPI. However, Evolution performance using this plugin vary. In my case, for example, while I can send and receive e-mail more or less reliably, the calendar and contacts functionality do not work at all:
1
sudo apt-get install evolution-mapi
After the plugin was installed, I took T410 to work and attached it to the network. I initiated Evolution’s setup assistant by navigating to Applications->Office->Evolution Mail and Calendar. When I reached the “Receiving E-mail” screen, I selected “Exchange MAPI” from the list of choices in the drop-down list under Server Type and entered the Exchange server’s host name, my Exchange user name, and the name of the domain where the Exchange server was located under Configuration, then selected “Authenticate” (See Figure 13). I entered my account password and after a few minutes received the message “Authentication finished successfully.”
Figure 13
If you’re connecting to Exchange Server 2003, and POP or IMAP support is not supported, then you should chose “Microsoft Exchange” instead of Exchange MAPI in the drop-down list. Confirm your Exchange account name is correct and enter the Outlook Web App (OWA) url for the Exchange server, then select “Authenticate.” If you’re lucky enough to have either of IMAP or POP activated in the Exchange server you’re connecting to then you can use just about any e-mail client (including Evolution) as most will support these protocols.
Install and configure a VPN client
With Evolution up and running (more or less), I needed a Virtual Private Network (“VPN”) client that could connect to the Cisco VPN concentrator used by my employer so I could use Ubuntu/Evolution from home or the road. I chose vpnc, a Cisco-compatible VPN client that creates a IPSec-like connection as a tunneling network device. It runs entirely in userspace and does not require kernel modules except the use of the tun driver:
1
sudo apt-get install vpnc
Created a configuration file:
1
2
sudo su
touch/etc/vpnc/default.conf
Then added the following lines to this file:
1
2
3
4
5
IPSec gateway<host name forthe Cisco concentrator>
Domain:<Exchange server domain>
IPSec ID<IPSec group ID>
IPSec secret<Password forthe IPSec group ID>
Xauth username<Account username>
To activate vpnc:
1
sudo vpnc
To disconnect vpnc:
1
sudo vpnc-disconnect
Configure Firefox
Firefox is the default web browser in Ubuntu Desktop Edition 10.04. Following are configuration changes I made to improve its usability.
Install a Flash plugin
Out of the box Firefox lacks support for Adobe’s Flash technology. This can be fixed by installing either Adobe’s own proprietary Flash plugin or one of the open source variations like Gnash or Swfdec. I chose to install Adobe’s Flash plugin:
1
sudo apt-get install adobe-flashplugin
Install a Java plugin
Ubuntu also lacks support for Oracle’s Java technology. This too was easily fixed by installing either Sun’s Java plugin or an open source variation like IcedTea. I chose to install Oracle’s Java plugin.
You can verify the Flash and Java plugins were successfully installed by entering about:plugins the Firefox address bar.
Make the backspace key work
Oddly, the backspace key in Firefox does not cause the browser to go back to the previous page as it does in under Windows. To fix that I entered about:config in the address bar, entered browser.backspace_action in the Filter field, double-clicked on its value and changed it from 2 to 0, then restarted Firefox.
Force last tab to close
The default behavior in Firefox prevents the user from closing the last open tab without also closing the browser. This behavior drove me crazy. To fix that I opened about:config, entered browser.tabs.closeWindowWithLastTab in the Filter field, double-clicked on its value and changed it from “true” to “false,” then restarted Firefox.
Avoid the Favicons
Favicons are those small icons made available by web sites that are displayed in front of their respective bookmark and tab in Firefox. To save on some disk space and speed up browsing, I prevented Firefox from loading these icons. To do this I opened about:config and modified the following parameters:
browser.chrome.favicons set to “false” browser.chrome.image_icons.max_size set to 0 browser.chrome.site_icon set to “false”
Eliminate the new tab button
Firefox features a small green “+” symbol adjacent to the tab(s) that provides the ability for the user to open a new tab by clicking on it. This is a widget I don’t use. To eliminate it, as well as some others, I created a userChrome.css file (your default Firefox profile directory will be different than the op9v3zvx.default directory shown in following command):
1
2
cd~/.mozilla/firefox/op9v3zvx.default/chrome/
cp userChrome-example.css userChrome.css
Then opened this file and added the following lines:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/* Remove the new tab button */
.tabs-newtab-button{display:none;}
/* Remove the Bookmark star */
#star-button {
display:none!important;}
/* Remove the livemark-button (RSS) from the status bar */
#feed-button {
display:none!important;}
/* Remove the go button from the status bar */
#go-button {
display:none!important;}
I restarted Firefox in order for these changes to take affect.
Install and Configure the Novatel USB760 Modem
I use a Novatel USB760 USB modem to connect to Verizon’s wireless data service. This modem also doubles as a USB storage device. The problem is that Ubuntu will automatically mount the USB760 as a CDROM device and not allow it to act as a modem. Simply trying to unmount the device was met with limited success as Ubuntu will attempt to automatically mount it again after an indeterminate period of time. To work around this problem, I plugged the USB760 into one of the USB ports and waited for Ubuntu to fully mount it. Then I modified /etc/udev/rules.d/70-persistent-cd.rules by appending the following to the end of any lines pertaining to “Novatel_Mass_Storage” so that the system would eject the Novatel USB760 as a CDROM device automatically (Note: there should be a space before and after the comma that appears at the start of this line):
I removed the USB760, rebooted the laptop, then plugged it back in and waited for Ubuntu to mount and subsequently eject the device. I could verify this occurred by looking at /media/ and observing that the VZAccess Manager directory was no longer mounted there. I selected the Network Manager applet icon on the right side of the top desktop panel and selected “Auto mobile broadband (CDMA) connection” and proceeded to configure my Verizon wireless connection.
Look and Feel
Lose the Jungle Sounds
To lose the drum and jungle sounds Ubuntu is fond of playing at login and startup I navigated to System->Administration->Login Screen, selected “Unlock” and unchecked “Play login sound.” Then, navigated to System->Preferences->Sound and selected “No sounds” from the Sound theme drop-down list.
Remove Hard Drive Icons from the Desktop
I found the small hard drive icons that Ubuntu places on the desktop to represent mounted disks and partitions distracting. To hide them I opened a terminal and entered gconf-editor to bring up Gnome configuration editor, then navigated to apps->nautilus->desktop and unchecked the “volumes_visible” option.
Fix Low Resolution Boot Graphics
After I installed the Nvidia driver I noticed that the GRUB menu and Ubuntu splash screen were now displayed at a resolution of 640*480. Ugly! Switching from the Nouveau in-kernel graphics driver to one supplied by Nvidia as a binary loaded into Ubuntu’s X windows server apparently meant I no longer had KMS (“Kernel Mode Setting”) support for the video driver, and thus the system fell back to good old VGA mode during boot time. The work around for this was to use uvesafb, a generic driver/frambuffer that supports a wide variety of video cards that have a Video BIOS compliant with the VBE 2.0 standard, v86d, a helper application that runs x86 code in an emulated environment and is required in order to run uvesafb), and hwinfo, a tool to determine which resolutions the Nvidia card could support:
1
sudo apt-get install v86d hwinfo
I ran hwinfo in order to determine which resolutions were supported:
1
sudo hwinfo--framebuffer
The following sample output from the preceding command suggested a number of resolutions that could be supported. Through some trial and error, however, I settled on 1024×768:
After that, I rebooted and basked in the considerably nicer looking screen resolution being used for the GRUB bootloader menu and Ubuntu splash screen.
Modify Keyboard Shortcuts
For better or worse I spend a fair share of my computing time on machines running Windows. As if that heresy wasn’t enough, I’ve also grown rather fond of keyboard shortcuts involving the “Windows” key (known in Ubuntu as the “Mod4” key). You know the ones… Win+d to navigate to the desktop, Win+e to open Explorer, etc. I configured similar shortcuts in Ubuntu by navigating to System->Preferences->Keyboard Shortcuts. Following are the shortcuts I typically configure:
Set focus to the desktop set to “Mod4+d” Lock screen set to “Mod4+l” Run a terminal set to “Mod4+t” Open the Home folder set to “Mod4+e”
Modify the GRUB Bootloader Menu
The GRUB bootloader menu contained a few entries that I considered superfluous. These included the two “Memory test” entries as well as the “Windows Recovery Environment” entry (See Figure 14).
Figure 14
To eliminate the two Memory test entries I made the file /etc/grub.d/20_memtest86+ non-executable:
1
sudo chmod-x/etc/grub.d/20_memtest86+
To eliminate the Windows Recovery Environment menu entry, I opened /etc/grub.d/30_os-prober and added the following lines after the section of code that starts around line 134:
if [ -z “${LONGNAME}” ] ; then
LONGNAME=”${LABEL}”
fi
# Added to remove the Windows Recovery entry
if [ “$LONGNAME” = “Windows Recovery Environment (loader)” ] && [ “${DEVICE}” = “/dev/sda1” ] ; then
continue
fi
Finally, to complete my GRUB modifications, I opened /etc/default/grub and changed the value of GRUB_TIMEOUT so that the GRUB menu would stay onscreen longer than the default 10 seconds. I finished up by updating GRUB:
1
sudo update-grub2
Note: each time you update the Linux kernel, GRUB will add the new version to its menu. You can delete any of the older kernel versions listed in the GRUB menu by uninstalling that particular kernel version from your system. However, I recommend you keep at least one older kernel as well as its associated recovery option as a backup.
Clean up Notifications
Ubuntu’s Indicator Applet resides in the top panel of the desktop and provides a single notification area for multiple messaging applications, including Evolution (See Figure 15). Also located up there is Ubuntu’s new “Me Menu,” a unified interface for managing your presence on instant messaging and social networking services such as Facebook, identi.ca and Twitter.
Figure 15
While many user will find the Indicator Applet useful, I did not:
1
sudo apt-get remove indicator-messages
Ubuntu’s Me Menu wasn’t terrible useful for me either:
1
sudo apt-get remove indicator-me
To see these changes immediately rather then rebooting:
1
killall gnome-panel
Another set of notifications that I found superfluous were the shutdown and restart confirmation prompts that appear when you select either of those options from the Shut Down Applet (See Figure 16).
Figure 16
To disable these, I opened a terminal and entered gconf-editor to bring up Gnome configuration editor, then navigated to apps->indicator-session and checked the “suppress_logout_restart_shutdown” option.
Install and Configure a ThemeInstall and Configure a Theme
Update: The Ubuntu Satanic Edition theme is no longer supported. Consequently the URLs to its gpg key and repository described in the following steps are broken. Alternatively you could find another theme, in which case the following steps (using the appropriate URLs) are likely still valid, or simply use the default Ubuntu theme(s) — iceflatline, 20191223)
The stock Ubuntu theme has come along way since the omnipresent brown that characterized previous versions. But seriously, who wants a stock theme? After mulling it over a bit, I decided a diversion to the dark side was in order – enter Ubuntu Satanic Edition, a comprehensive set of themes to make my desktop dark and malevolent.
Ubuntu SE is stored in a secure repository so before I could download and install it I needed to install its GPG (GNU Privacy Guard) key:
After installation, I navigated to System->Preferences->Appearance and selected “Inhuman Recant” from under the Theme tab, and selected “SE Pentagram” from under the Background tab. Then I modified the color of the top and bottom desktop panels to better match the background image (See Figure 17).
Figure 17
Next I used Ubuntu SE’s built-in sataniconf script to install a login theme that would compliment the desktop theme I chose (to get a list of available logon themes you can run this command with no options):
1
sataniconf gdm SE-Pentagram
Should I tire of the dark side I can use the following two commands to revert the splash, login and desktop themes back to their defaults:
1
2
sataniconf plymouth default
sataniconf gdm default
Install and Configure Conky
One of my favorite things about using Linux and BSD is the ability to use Conky, a light-weight free and open source system monitor that can display nearly any information about your system directly on your desktop:
1
$sudo apt-get install conky
Using sets of variables in Conky’s configuration file I can define what Conky should monitor and where those monitored parameters are displayed on the desktop. The look and feel of what’s displayed is highly customizable. Conky’s default configuration file /etc/conky/conky.conf can be used as a starting point, but it must be copied it to your home folder and renamed .conkyrc before Conky can use it. To start conky manually:
1
$conky-q
To stop it:
1
$killall conky
To enable conky to start automatically at boot time, I navigated to Preferences->Startup Applications and selected “Add.” In the Name field I entered “conky,” in the Command field I entered /usr/bin/conky -p 10 -q and in the Comment field I entered “conky system monitor.” The -p 10 argument in the command makes conky wait for 10 seconds before starting, allowing the desktop sufficient time to fully render. The -q argument makes conky start in quiet mode (See Figure 18).
Figure 18
When configuring Conky for my system I decided to dispense with the fancy network graphs and other eye candy and go with a more minimalistic approach instead. I settled on four areas for Conky to monitor, which provide just the information I need while not burdening system resources.
System – Basic system information showing kernel version, uptime, total RAM and Swap usage, etc.
Processor – Shows the top five applications or processes based on CPU usage.
Memory – Shows the top five applications or process based on system RAM usage.
Network – Shows basic information regarding wired and wireless connections, including IP address, inbound and outbound speed, connection quality, etc.
One of the many cool things about Conky is its support for the use of conditional statements within its configuration file. The ${if_existing} variable, for example, checks for the existence of a file passed to it as an argument. If that file exists it will display everything between ${if_existing} and the matching ${endif}. I used this particular variable to my advantage when configuring the network monitoring section. Instead of displaying information about wired and wireless interfaces that were not in use, I chose instead to have Conky display information about them only if they were active by testing for the existence of their file (e.g., eth0) in /proc/net/route. Here’s the configuration file I’m currently using. Feel free use it as is or change it to fit your needs.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
#### Conky Configuration File
### START OF CONFIG
## Conky Display Settings
# Set to yes if you want Conky to be forked in the background
background yes
# Font
use_xft yes
xftfont Sans:size=8
xftalpha1
# Update interval in seconds
update_interval1.0
# This is the number of times Conky will update before quitting
# Set to zero to run forever.
total_run_times0
# Create own window instead of using desktop (required in nautilus)
own_window yes
# Use pseudo transparency with own_window?
own_window_transparent yes
# If own_window is yes, you may use type normal, desktop or override
own_window_type normal
# If own_window is yes, these window manager hints may be used
Here’s what this Conky configuration looks like running on my Ubuntu SE theme:
Figure 19
Figure 20
Finishing Steps
At this point the installation and basic configuration of Ubuntu on my T410 was complete. All that was left for me to do was to download and install/uninstall some applications, stop a few applications and processes from starting automatically, and organize the Applications menu.
Ubuntu does a good job of providing good default applications that anyone can use. Alas though there are a few packages I can’t seem to do without, including:
ethtool – A utility for controlling network drivers and hardware Filezilla – An FTP client. Geeqie – A graphics file browser. Hamachi – A hosted VPN service now known as “LogMeIn.” htop – An interactive process viewer for Linux. mg – A text editor based on MicroEMACS. Notepad++ – A text editor (run under wine). OpenVPN – A VPN software and server application. Pidgin – An instant messenger client sysv-rc-conf – A utility to examine run-level services. Truecrypt – Disk encryption software VLC – A multimedia player. Wine – Windows emulator. XChat – An IRC chat application.
All of these were available through Ubuntu’s package manager. I also took the opportunity to uninstall some applications that I knew I wouldn’t use. Gwibber, Empathy, F-Spot, Rhythmbox, X-Sane, and a few others fell into this category.
After installing/uninstalling applications, I navigated to System->Preferences->Startup Applications and removed some of the applications I found there so they would not start at boot time. These included Bluetooth, Ubuntu One, Visual assistance, and Remote desktop server. Then I fired up sysv-rc-conf to examine run-level services:
1
sudo sysv-rc-conf
The default layout displays a grid of all services that have symlinks in /etc/init.d/ and which run-levels they are activated in (See Figure 21). For example, where the dns-clean row and column 2 intersect, if there is an “X” there that means the service will be turned on when entering run-level 2 (run-level 2 through 5 are full multi-user modes and are equivalent in Ubuntu). If there is no X it can mean that either there are no links to the service in that specific run-level, or that the service is turned off when entering that run-level. If more configuration detail is needed, sysv-rc-conf can be started using the priority option.
1
sudo sysv-rc-conf-p
The priority layout also uses a grid, but instead of X’s there are text boxes that can have different values. If the text box starts with the letter S the service will be started when entering that runlevel. The two digits following is the order in which the services are started. If the text box starts with the letter K the service will be stopped when entering that runlevel. If the text box is blank that means there isn’t a symlink in that run-level for that service and it will not be started or stopped.
Using the sysv-rc-conf default layout I toggled the bluetooth, kerneloops, rc.local, and speech dispatcher services off.
Figure 21
With those tasks out of the way it was time to clean up and organize the Applications menu. To do this I navigated to System->Preferences->Main menu (See Figure 22). I typically setup my Applications menu so that there are six top-level menu categories: Communications, Games, Graphics & Publishing, Multimedia, Office, and Utilities. These can by created by highlighting “Applications” in the left column then selecting “New Menu.” Once those were categories were created, organizing the existing applications so that they were listed under one of the newly created top-level menu categories was simply a matter of dragging and dropping them to where I wanted them. Note, however, that dragging and dropping an application to a new category does not eliminate it from appearing in its old location. To do that you must uncheck it under its old location using the Item column on the right. Once all of the applications in a particular top-level menu category have been unchecked that category will be hidden and no long appear under the main Applications menu.
Figure 22
Conclusion
This concludes the post on how I installed and configured Ubuntu 10.04 LTS on my Lenovo T410 laptop. Obviously many of the choices made throughout the installation and configuration steps that I’ve described were based on my personal preferences. You of course, are free, indeed encouraged, to make your own choices. As in my case, I suspect that any challenges you encounter along the way can easily be overcome. In short, Ubuntu (as do many other Linux distributions) works well on this laptop.