Dell XPS13, Developer Edition and Fedora

I am now the proud owner of a Dell XPS13 Developer Edition. It ships with Ubuntu, and I have just installed Fedora 21.

For a “Linux” Laptop, linux support is actually pretty terrible, but you can get all the hardware functioning.

BIOS
First thing, make sure you upgrade the BIOS past A02.

Broadcom wireless chipset
Apparently if you are lucky enough to pick up one of these in Europe it will ship with an Intel wireless chipset, but the US version has a Broadcom wireless card in it.

  • Add the rpmfusion repository
  • Install the required module and support software
    # yum install kmod akmod kmod-wl kernel-devel
  • Reboot your laptop

Microphone
Updating the BIOS will get the sound to work, but the microphone will still not work. Updating to Kernel 4.0 will fix the problem, or waiting for Fedora 22. I found a backported 4.0 here.

Suspend on Chromebook Pixel

Finally trawled the bug reports again to work out what to do. If you are running Fedora on a Pixel this should fix most of the suspend/resume issues.

I think it should be as simple as Editing /etc/default/grub (This file may need to be created).


GRUB_CMDLINE_LINUX_DEFAULT="tpm_tis.force=1 tpm_tis.interrupts=0"

If you already have some default command line options, just append the option above to what is there.

Fedora, Chromebook Pixel, configs

A couple of things I do to make Fedora and the chromebook play nice.

Xorg.conf

Gnome-shell has some support for hi res displays like the pixel or the retina macbook has, but it is hit and miss.

Gnome 3 apps support the pixel density, but nothing else does. Load chrome or firefox and the tiny controls and fonts are unusable. This simplest thing for me was to run the display in a lower resolution.

  1. Open dconf-editor (yum install dconf-editor if needed)
  2. Set org.gnome.desktop.interface.text-scaling-factor = 1.0
  3. Install a custom xorg.conf in /etc/X11/xorg.conf:
    Section "Monitor"
      Identifier     "eDP1"
      Modeline       "1440x960" 113.50  1440 1528 1672 1904  960 963 973 996 -hsync +vsync
      Option         "PreferredMode" "1440x960_59.90"
    EndSection
    Section "Device"
      Identifier     "Integrated Graphics Chipset: Intel(R) HD Graphics 4000"
      Driver         "intel"
    EndSection
    Section "Screen"
      Identifier  "Primary Screen"
      Device      "Integrated Graphics Chipset: Intel(R) HD Graphics 4000"
      DefaultDepth 24
      SubSection "Display"
        Modes "1440x960" "1024x768"
      EndSubSection
    EndSection
    
    
  4. Still to come: suspend issues, keyboard backlight, and keyboard mappings.

    I have the issues solved, I just need the pixel in front of me to remember what I did.

Chromebook Pixel, Fedora 20 and Dualboot

My first update in a very long time. Please do not do this if you are unsure of any of the steps. Though as long as you have a ChromeOS recovery built, your Pixel will be fixable. Also, you will lose your current local data. I have written this from memory, so I take no responsibility for your broken notebook.

So I was lucky enough to get a Chromebook Pixel. I love the hardware, I even like Chromeos, but there are occasions when I want full linux.

You can install any OS you like on a Pixel using the legacy boot options, but this will usually make ChromeOS un-bootable, even if you don’t remove it.

If you google, you will find 2 main options for running another Linux distribution along side ChromeOS:

  1. crouton, running Debian/Ubuntu based distributions in a chroot
  2. chrubuntu, Running ubuntu in a dual-boot environment

But I wanted to dualboot with Fedora. This basic steps are simple.

  • Resize paritions, do not edit partition types or labels.
  • Install Linux on /dev/sda7.

Unfortunately the Fedora installer (Anaconda) will always alter the partition table and stop ChromeOS booting. So we need to install Fedora without using the Fedora Installer. Full Instructions below.
Continue reading Chromebook Pixel, Fedora 20 and Dualboot

Optimistically Honest

I think that is the best advice I can give to anyone sitting in an interview.

An interviewer who doesn’t find the edges of your knowledge isn’t doing a great job. You are not meant to know everything.

“I have never seen that”, or “I’m not completely sure” are much better answers than bullshitting you interviewer. Don’t fake it. But the best answer you can give is, “I don’t know but …”

The gap in your experience is fine. Recruiters don’t really know what you do, they tick boxes, but the interviewer is someone who you will work with or for. They want to see how you think and how you solve problems. We hit the gaps in our knowledge everyday on the job, what we need to prove is that we can fill the gaps on the fly.

So, “I don’t know, but I think ….” goes a long way.

The Nexus 7 and Fedora 17

Fedora support MTP, but the Nexus 7 is not recognised.

But it is fairly straight forward to get ADB, if your using the Developer Tools, and MTP mounting working.

  1. Create the file /etc/udev/rules.d/99-android.rules

    # Google Nexus 7 16 Gb
    SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e41", MODE="0666", OWNER="your-login" # MTP media (multimedia device)
    SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e42", MODE="0666", OWNER="your-login" # MTP media with USB debug on(multimedia device)
    SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e43", MODE="0666", OWNER="your-login" # PTP media (camera)
    SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e44", MODE="0666", OWNER="your-login" # PTP media with USB debug on (camera)
    SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e40", MODE="0666", OWNER="your-login" # Bootloader
    SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d001", MODE="0666", OWNER="your-login" # Recovery
    # MTP Support
    ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e41", SYMLINK+="libmtp-%k", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
    ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e42", SYMLINK+="libmtp-%k", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"

  2. Restart udev

    # systemctl restart udev.service

  3. Install required software

    # yum install mtpfs libmtp

Done.
You should now be able to mount your device:

$ mtpfs /home/user/some_mount_point

The existing help I have found on MTP failed to include both Product IDs. Meaning if USB debugging was enabled on the device libmtp would not recognise your device.

Centos 6, Corosync and Pacemaker for a simple Active/Passive cluster

Just playing with Corosync so I thought I would include a simple howto. For examples sake, we will setup an OpenVPN server with a fail-over.

I set this up on 2 KVM guests using the default network configuration. In the examples I will use the ip addresses of my guests, change them to match your setup.

Continue reading Centos 6, Corosync and Pacemaker for a simple Active/Passive cluster

Mildly Useful Stuff