Posts Categorized: linux

Ubuntu 16.04 with Ryzen 7 and GA-AB350 Gaming Rev. 1

At time of writing, the stock motherboard BIOS and the kernel that ships with Ubuntu 16.04 LTS do not seem to work well with a Ryzen 7 1700 and GA-AB350 Gaming (Revision 1.0) getting stuck during boot.  I was only able to boot after turning ACPI off, which limited me to a single thread.

However, Fedora’s live CD worked fine for me on this machine. What I ultimately did was clone Fedora’s kernel repo and build F25’s kernel. (At time of writing, that’s at 4.10.4) Booting with this kernel has allowed me to boot without turning ACPI off.  Apparently, one of Fedora’s patches fixes the issue I was having with my new hardware configuration.

The process is as follows:

Prerequisites: You need to have the packages installed that would allow you to build the kernel before doing this. I think all that’s needed is sudo apt-get install build-essential gcc g++ butI’m not 100% sure as I ended up installing a lot of packages while trying to get this to work. Check the Ubuntu docs on how to custom build a kernel.

(Note for the following, at this point I had switched to root, if you stay as a regular user, use sudo as appropriate.)

Now that that’s out of the way:

  1. Clone the the Fedora kernel repo with git.
    git clone git://git.kernel.org/pub/scm/linux/kernel/git/jwboyer/fedora.git
  2. Then checkout branch 25, nevermind the warnings about a detached HEAD, we’re not adding anything to our kernel build so we’re not doing any commits.
    cd fedora && git checkout origin/f25
  3. Copy the non-hidden files to /usr/src/linux-4.10.4. Create the directory if it doesn’t yet exist.
    mkdir /usr/src/linux-4.10.4 && cp -rv * /usr/src/linux-4.10.4
  4. Change directory and configure the kernel build. I used the Fedora 4.8.6 config as my base.
    cd /usr/src/linux-4.10.4
    wget -O .config https://s3.amazonaws.com/rrbits/config-4.8.6-300.fc25.x86_64
    make oldconfig

    When configuring, just selecting all the defaults worked fine for me.

  5. Build your kernel
    make
  6. Build your modules
    make modules
  7. Install your modules. Since we used oldconfig to configure it, these will have a lot of debugging symbols, so let’s strip them while we install them.
    make INSTALL_MOD_STRIP=1 modules_install
  8. Finally, we install our kernel.
    make install

Watch the final output on make install. When building on Ubuntu, it should automatically copy everything to boot, build your initrd, and run update-grub.  If it doesn’t you may have to do these steps manually, otherwise, check and make sure it grub saw your new kernel and initrd.  If it did, you should be good to go.  Make sure you use the kernel you built when you boot.

Mount a VHD or VDI in Linux with vdfuse

My old post on mounting VHDs in Linux is rather outdated. I don’t think it even works anymore. So revisiting this on a newer Ubuntu version now. These instructions are for Ubuntu 14.04, so for other OS installs. You’ll also need your compiler installed, so you may need to run sudo apt-get install build-essential to get them before proceeding.

Continue reading

A Script A Day – Corner Cut – Day 05/05

I decided to do something with ImageMagick for my 5th day’s script. My original idea for day 5 proved to be too much for one night. A script to cut triangular corners into images. Pretty simple, but this may come in handy one day while designing something.

Continue reading

A Script A Day – WhatIs – Day 03/05

Day 3’s script: `whatis`: A wikipedia summary lookup.  It’s operation is pretty straightforward, you give it a search to do and it’ll perform the lookup for you.  If you hit a redirect it should follow it, at least as of time of writing this. (Edit whatis_extract.xsl in the resources directory if it breaks.) Continue reading

A Script A Day – Day 02/05

Continuing along, day 2’s task was to get stock quotes.  Usually a pretty simple task once you find a data source to use.  I settled on using YQL to query Yahoo Finance.  This one has a few requirements (wget, hexdump, xsltproc) as bash is a bit limited.

Continue reading