Bananian

Bananian & recent kernel (Linux 4.0)

8 6785
Hello everyone,

who uses a recent linux kernel with an Banana Pi? I want to use Linux 4.0 (without sunxi extension).
tkaiser  
Edited by tkaiser at Fri May 8, 2015 08:00

There are a couple of users (have a look at eg. this thread). In my opinion the easiest way is to use Igor's build system (all you need is a x86 Ubuntu installation and his build.sh and you get a whole image ready to burn, u-boot and kernel als .deb and can easily switch between different kernels this way):

http://www.igorpecovnik.com/2014/09/07/banana-pi-debian-sd-image/

I use the Kernel 4.0.x releases (4.0.2 at the moment) and I'm fully happy with it.

If you have no experience at compiling and configuring kernels, I agree with tkaiser, then igor's images and scripts are the easiest way to compile the mainline kernel.

If you don't mind compiling on your own, then I think following the linux-sunxi wiki to compile the mainline is sleeker in my opinion. The only caveat here is to find or come up with a configuration that suits your needs (again, igor's config is a good starting point here, though it will contain some stuff you might not actually need). Once you have that, you can automate the kernel compilation and updating with scripts very easily.
I use a set of scripts to check regularily if a new kernel version is available on kernel.org and if yes, automatically compile it and notify me via email. Another script, that I run manually, handles the installation of the kernel and reboot. So updating the kernel only requires me to log in via SSH, issue one command to install the new kernel, and that's it. Even that could be done automatically via cron, but I prefer to choose the installation times myself.

Thank you tkaiser & silentcreek!

Basically I only need Ethernet and USB. Nothing special. It's only a little file server. I think this is possible with the mainline kernel without any patches.

I configured and compiled some kernels (2.6.*) in the past with Gentoo and Debian. At the moment I am not sure how to boot my own kernel without a bootloader like grub. But first I will buy another Banana Pi for my kernel experiments because right now I have only SSH access to my Banana Pi and can't reset remotely. (My Banana Pi is far away )

Yep, Ethernet and USB work just fine without additional patches.

About the bootloader: For the mainline kernel, you should use a recent version of mainline U-Boot (as of today, that would be version 2015.04). It's quite simple to compile and set up - just follow the linux sunxi wiki on both the mainline kernel and mainline u-boot. Basically you write your u-boot binary to your sd card. Then you write a simple configuration file (called boot.cmd) that contains the instructions for u-boot where it can find the kernel and device tree blob. This file has to be converted into a binary file (boot.scr) and written to the first partition of your sd card where u-boot will look for it. Your u-boot and boot.scr do not have to be changed when you update your kernel. You can simply replace your zImage (or uImage, if you compile that) and .dtb file and u-boot will use these during the next boot. So there is no need to run stuff like update-grub etc. when you install a new kernel. A more elegant solution (in my view) than simply overwriting the old kernel during an update, is to work with symlinks to point to the kernel you want to boot. This woul make it easier to switch between kernel versions or revert an update.

atjr  
Thanks u all guys,  your question and answer guild me to build my own kernel.  i try both of  mainline kernel compile and used igor's scripts ...  igor's scripts work perfect. even you decide to used kernel 4.0x.  anyway in case of mainline kernel,  i had build kernel from sunxi branch no problem on ubuntu 14.04 tool chain compile, but on the same machine compile mainline kernel 3.19 or kernel 4.0x it's stuck at  compile process, ubuntu's gcc is version 4.8.2,  

error msg are:
arch/arm/kernel/asm-offsets.c:53:2: error: #error Your compiler is too buggy; it is known to miscompile kernels
#error Your compiler is too buggy; it is known to miscompile kernels
  ^
arch/arm/kernel/asm-offsets.c:54:2: error: #error and result in filesystem corruption and oopses.
#error and result in filesystem corruption and oopses.


i search in google and found it's the same mesg with RSP  when compile own kernel , i thinks problem is gcc versions  but i don't know how to solve it. help please.

tkaiser  
Edited by tkaiser at Thu May 21, 2015 02:30
atjr replied at Wed May 20, 2015 23:15
i thinks problem is gcc versions  but i don't know how to solve it


If you need gcc 4.8.3 you might try to use 'apt pinning' and include utopic packages in your sources.list.

The basic steps are outlined here: https://somewideopenspace.wordpr ... aspberry-pi-wheezy/ and http://unix.stackexchange.com/qu ... running-trusty-tahr

Be careful. Without apt pinning applied correctly you will end up rather sooner than later with a mixture of packages and an instable system. The best idea is a cross-compiling environment inside a virtual machine and regular snapshots before trying out such things

You might as well just download a standalone cross-compiler toolchain that works independent from the packages that your distribution gives you. On Ubuntu 14.04 I use the Linaro toolchain to compile my kernels for the Banana Pi:
http://releases.linaro.org/14.11 ... ux-gnueabihf.tar.xz

Just unpack the archive to a directory, for example /home/yourusername/bin/ and put the full path to the included subfolder "bin" into your PATH variable, e.g. like this:
  1. export PATH="/home/yourusername/bin/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin/:$PATH"
Copy the Code
Then you can run your build commands the usual way.

atjr  
silentcreek replied at Fri May 22, 2015 17:24
You might as well just download a standalone cross-compiler toolchain that works independent from th ...

Wow.,  Thanks for nice tips and tricks,

You have to log in before you can reply Login | Sign Up

Points Rules