The Dell Chromebook 13" 7310 (Lulu model) makes for a nice chromebook, and the first thing we want to do is install Ubuntu on it.\n\n!(https://hackernoon.com/hn-images/1*527GmPDAyAzoMQLXxSqORg.png)\n\nDon’t rush to Dell website: it’s out of production. Only student versions are available now\n\n### Legacy boot\n\nIt is not necessary to remove the write-protect switch to boot Linux on this device. I will give here for reference some instructions on the procedure I followed.\n\nFirst step is to switch the chromebook to developer mode; you can use [Arch Linux’ documentation](https://wiki.archlinux.org/index.php/Chrome_OS_devices#Enabling_developer_mode) for this. All steps including “Enabling SeaBIOS” should be followed, but do not reboot the machine yet.\n\n### Flashing the right SeaBIOS\n\nTo install SeaBIOS on this model I used the script provided by John Lewis, you can find documentation and instructions here\\*:\n\n[https://johnlewis.ie/custom-chromebook-firmware/rom-download/](https://johnlewis.ie/custom-chromebook-firmware/rom-download/)\n\nThe matrix there confirms that for this model it is not necessary to remove the write-protect switch, since RW\\_LEGACY mode is supported.\n\n\\*= Please donate to the author to support his work, we would not be here enjoying Ubuntu on this device otherwise.\n\nYou can download and check the script to see what it does; it will detect the model and then download the right ROM file and offer you options to install it on the RW\\_LEGACY slot of the disk.\n\nRun this script (after reading/changing it if you like) on the chromebook root shell started at previous step; once it has completed, congratulations, you now have unlocked a working SeaBIOS for your device!\n\n### gfxboot problems\n\nAfter flashing an Ubuntu 16 installer ISO (desktop or server) to an USB device and booting with Ctrl+L you will unfortunately be blocked by the dreadful gfxboot error:\n\n graphics initialization failledError setting up gfxbootboot: \n\nYou can read online many desperate calls to write _“help”_ and get going to next stage, but that is not helpful nowadays. The bug is explained in detail at the [upstream Launchpad issue here](https://bugs.launchpad.net/ubuntu/+source/gfxboot-theme-ubuntu/+bug/1530530).\n\nBasically this means that the bootloader stage cannot setup a valid video mode, but bear in mind: this is just the bootloader, not the actual installer.\n\n### FAT boot (netboot)\n\nThe easiest solution would have been to change the isolinux.cfg file so that it would pick the first entry (installer) and do not bother displaying a menu, however that proved to be a dead end as I was not successful in modifying the ISO and flashing it again as bootable.\n\nI decided to change approach and try a FAT boot disk from USB, which is commonly referred to as _netboot_/_boot.img.gz_ for Debian/Ubuntu.\n\nYou can download the Ubuntu netboot image from the alternate downloads section:\n\n[**Index of /ubuntu/dists/xenial-updates/main/installer-amd64/current/images/netboot** \n_Edit description_archive.ubuntu.com](http://archive.ubuntu.com/ubuntu/dists/xenial-updates/main/installer-amd64/current/images/netboot/ "http://archive.ubuntu.com/ubuntu/dists/xenial-updates/main/installer-amd64/current/images/netboot/")(http://archive.ubuntu.com/ubuntu/dists/xenial-updates/main/installer-amd64/current/images/netboot/)\n\nThis image is a plain FAT16 partition with a bootable MBR, so no partition table in there. It was probably created with _makeboot_ (could not find instructions online about how Debian/Ubuntu actually creates it) and I was not able to create a larger one from scratch (you will see later why this matters).\n\nYou can flash the image to the correct USB device with:\n\ngunzip < boot.img.gz | dd of=/dev/sdX bs=16M\n\nReplace /dev/sdX with the actual USB mass storage device (try to not flash your main disk in this process).\n\n### Intel Wireless network\n\nThe netboot image will nicely boot and allow us to reach the textual installer, however you will soon realize that the wireless network interface is not recognized. This seems to be due to a single module missing, _iwlmvm_.\n\nJust copying the iwlmvm.ko from the linux-image-extra package inside the initrd will not work, because the kernel symbols do not match; also, adding all the modules from linux-image-extra is not an option because of size constraints (the boot.img is quite small), so I had to patch the existing initrd with the following procedure:\n\n1. create a list of all the module files already present inside the initrd\n2. copy such modules and _boot/vmlinuz-4.4.0–101-generic_ (renamed as simply linux) from [http://security.ubuntu.com/ubuntu/pool/main/l/linux/linux-image-4.4.0-101-generic\\_4.4.0-101.124\\_amd64.deb](http://security.ubuntu.com/ubuntu/pool/main/l/linux/linux-image-extra-4.4.0-101-generic_4.4.0-101.124_amd64.deb)\n3. copy the missing iwlmvm.ko from [http://security.ubuntu.com/ubuntu/pool/main/l/linux/linux-image-extra-4.4.0-101-generic\\_4.4.0-101.124\\_amd64.deb](http://security.ubuntu.com/ubuntu/pool/main/l/linux/linux-image-extra-4.4.0-101-generic_4.4.0-101.124_amd64.deb)\n4. put all the copied files (except the _linux_ kernel) inside the initrd.gz (I removed other unused modules in the process to free up some space)\n5. copy the kernel (_/linux_) and the updated initrd.gz on the mounted boot.img\n\nWhile I was at it I also fixed the _vga=_ line to use the correct value for the chromebook’s display, which is 0x340.\n\n### Success\n\nThe end result is that the installer boots _almost_ flawlessly, you will receive a network not detected error and then you have to go back to the installation menu and choose “Execute a shell”. From the prompt, simply run:\n\n\\# rmmod iwlwifi \n\\# modprobe iwlwifi \n\\# exit\n\nAnd continue the installation after finally being able to configure wireless network.\n\n### First boot\n\nAfter completing the installation you will not see the GRUB boot menu; re-use the boot image to enter the root partition in rescue mode (it will setup a chroot), enable the `GRUB_TERMINAL=console` line in `/etc/default/grub` and then run `update-grub`.\n\nWhile you’re at it, you can copy `/etc/network/interfaces` from the installer environment into your new root filesystem so that on next boot the wireless network will be configured as well.\n\n### The boot image\n\nYou can repeat the steps above yourself to fix the boot image or download the files I changed from [this gist](https://gist.github.com/gdm85/9756b8bdaadcd2af5e2caf9d8d12f1de):\n\nThe most important files are _linux_ and _initrd.gz_; mount the USB storage as you would regularly (Ubuntu will allow you to do this without issues even from GUI) and overwrite the files in it with those provided in the gist.