Doorgaan naar hoofdcontent

Getting backports to work with recent linux kernel releases

I have been struggling a few days now to get the fantastic "backports" project up and running on my machine (Arch Linux). Here's what I had to do:

First,
make sure you have backport checkout out, and pulled in all the required trees:

# git clone git://git.kernel.org/pub/scm/linux/kernel/git/backports/backports.git
# cd backports
# ./devel/backports-update-manager 


Here's what I found out:

- Make sure your PYTHON_PATH does not contain funny stuff
- devel/pycocci expects Python 2. Arch Linux defaults to Python 3. Use a virtualenv2, or change devel/pycocci's first line to "#!/usr/bin/env python2"
- devel/pycocci crashes randomly when using different threads. I have hacked the script to make it single-threaded. EDIT: This seems to be because of Coccinelle 1.0.6. It does not occur using Cocinnele 1.0.4
- Coccinelle 1.0.6 does not work with all patches included in backports, you need version 1.0.4 with python support. (bin can be found here: http://coccinelle.lip6.fr/distrib/coccinelle-1.0.4-bin-x86-python.tgz)

After this, I was able to reproduce the latest release official backports release "backports-20160324".

Steps:
# cd /path/to/coccinelle-1.0.4
# ln -s spatch.opt spatch
# source env.sh
# cd ~/linux-next-history
# git checkout next-20160324
# cd ~/backports
# git checkout backports-20160324
# ./gentree.py --verbose --clean ~/linux-next-history ~/backports/release

Next step is to move to more recent linux-next / wireless-testing revisions:

Using wireless-next, instead of linux-next, I have now successfully built a backports release using following git revisions:
backports: e8ec27f6c9c5554afa00d55b663d81e0b0cebaed
wireless-testing: wt-2017-04-24 (2f0e53b3d84bfb1af171ad8e556875f3bcb6caa2)

# ./gentree.py --verbose --clean ~/wireless-testing ~/backports/backports-wt-20170424


Happy backporting!

Reacties

Populaire posts van deze blog

[RPi4][ Using the PiMoroni Fan Shim on LibreElec including the LEDs!

I recently bought a brand new Raspberry Pi 4, and wanted to try Kodi on it. There is only one Kodi-distribution which has more or less decent support for RPi 4 at the moment, and that's LibreElec (although still Alpha). Since the RPi 4 is famously overheating and throttling without a fan or at least a heatsink, I got a PiMoroni Fan Shim. Nice piece of hardware, but their library cannot run on LibreElec, because they do not support installing python libraries through pip etc... On LibreElec, the whole rootfs is a read-only squashfs image. So there's no way you can install the Pimoroni python library on LibreElec, but I found an alternative: I found Phil Randal's blog at  http://www.philrandal.co.uk/blog/archives/2019/07/entry_214.html , where he described how to get at least the Fan portion of the Fan Shim working on LibreElec. I decided to build on that, and port the LED functionality to LibreElec as well, without the need for "pip install" or a

Arch Linux: Fixing empty/blank windows for graphical applications that require root

When running applications such as "unetbootin" or "tuxboot", you might get a blank window, instead of the actual application. Even when running it through "gksudo", or having a decent polkit running (e.g. inside Gnome). E.g.: This is because these application use MIT_SHM (Shared memory), which for some reason does not work when running graphical applications as root, while being logged in as a regular user in X. The solution is to disable MIT_SHM. E.g.: $ sudo QT_X11_NO_MITSHM=1 tuxboot

The excellent JTAGenum for Arduino

As I said before, I've been fiddling with finding the JTAG port on a Verbatim PowerBay NAS. I did not succeed (yet), but have had the chance to try out JTAGenum for Arduino. It is an excellent JTAG pin finder (and other things too). Check it out here: http://deadhacker.com/2010/02/03/jtag-enumeration/ The guy's description of the tool is: 1. Given a large set of pins on a device determine which are JTAG lines 2. Enumerate the Instruction Register to find undocumented functionality 3. be easy to build and apply It's really easy to use, but it did not manage to find the JTAG pins on my device. There might be another problem, such as: - JTAG is disabled once the device is powered up - The pins I'm fiddling with are not JTAG pins - I ruined the circuitry already - I'm just not trying hard enough Back to JTAGenum: Since Arduino IDE 1.0.1 , some things have changed and so the GIT version of JTAGenum would not compile as-is. Therefor the JTAGenum sketch had