Need help with kernel source

asked 2015-06-30 15:43:28 +0200

V10lator gravatar image

I'm currently trying to get the kernel sources up&running. My guess is that I need to create the rpm from the spec file, then install the created -devel package. But that doesn't work. After a looong time of compiling rpmbuild fails:

- SNIP -
cp: cannot create directory `/home/nemo/rpmbuild/BUILDROOT/kernel-adaptation-sbj-3.4.106.20150416.1-1.arm//usr/src/linux-3.4.106.20150416.1/include/xen': No space left on device
cp: cannot create directory `/home/nemo/rpmbuild/BUILDROOT/kernel-adaptation-sbj-3.4.106.20150416.1-1.arm//usr/src/linux-3.4.106.20150416.1/include/config': No space left on device
cp: cannot create directory `/home/nemo/rpmbuild/BUILDROOT/kernel-adaptation-sbj-3.4.106.20150416.1-1.arm//usr/src/linux-3.4.106.20150416.1/include/generated': No space left on device
error: Bad exit status from /var/tmp/rpm-tmp.a1UifZ (%install)


RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.a1UifZ (%install)

Most of my files are on the sdcard anyway (even the kernel-adaptation-sbj-3.4.106.20150416.1.tar.bz2 - would build the rpms there, too, if it wouldn't be mounted with nosuid / noexec) so I'm out of ideas. Help please.

edit retag flag offensive close delete

Comments

might be worth setting up a MerSDK somewhere and compiling the kernel with sb2.

This is roughly what we do for device ports, so the same process should be ok

r0kk3rz ( 2015-06-30 15:50:24 +0200 )edit

also, if you feel like documenting your process, there's a convenient location it can be put which is currently rather empty https://wiki.merproject.org/wiki/Compiling_Jolla_kernel

r0kk3rz ( 2015-06-30 16:03:17 +0200 )edit
1

@V10lator: Reading the error message might help too ;)

No space left on device?? Hmm, what could be wrong?

Also you could just compile the source normally (only the wlan is out of tree and as you want to replace that one you will have to figure out that bit anyway)

For a pc with an arm cross-compiler installed (assumming it is arm-linux-gcc, naming varies)

# make ARCH=arm CROSS_COMPILE=arm-linux-  sbj_defconfig
# make ARCH=arm CROSS_COMPILE=arm-linux- zImage

(you can add -jX, with X as many threads as you would like to be there to compile the kernel, usually a sane value for X == number of cpus)

And this should generate a working boot.img you can flash with fastboot if the device is unlocked

#!/bin/sh

set -e

BOOTIMG=boot.img
RAMDISKFILE=ramdisk-sailfish.img

# Create ramdisk
echo "Creating dummy ramdisk.."
touch $RAMDISKFILE
gzip -f $RAMDISKFILE

echo "Creating $BOOTIMG.."

KERNEL=arch/arm/boot/zImage

mkbootimg --kernel $KERNEL --ramdisk ${RAMDISKFILE}.gz --cmdline "init=/sbin/preinit root=/dev/mmcblk0p28 rootfstype=btrfs noinitrd androidboot.hardware=qcom user_debug=31 ehci-hcd.park=3 maxcpus=2 ip=192.168.2.15::192.168.2.14:255.255.255.0::rndis0:off zcache" --base 0x80200000 --offset 0x02000000 --pagesize 2048 -o $BOOTIMG

echo "Cleaning up.."
rm $RAMDISKFILE*

exit 0
Philippe De Swert ( 2015-06-30 17:02:17 +0200 )edit

Never mind, the kernel sources where already builded, so removing everything from BUILDROOT and copying the sources out of BUILD seems to have done the trick. For testing I compiled, packaged and published a exfat kernel module: https://openrepos.net/content/v10lator/exfat-nofuse :)

For now I'll just compile modules (well, for compiling modules the full kernel had to be compiled, in fact I have arch/arm/boot/zImage) as I don't feel like touching the kernel right now (not as long as there are open questions like "why is my kernel a zImage when spec file says it has to be uImage?" or "what happens to my Jolla Smartphone after flashing a bad kernel?").

//EDIT: @Philippe De Swert Another question: How to build the kernel on the device when the only thing consuming space on the device is the kernel build and that takes to much space? ;P

V10lator ( 2015-06-30 17:06:47 +0200 )edit

@V10lator: Never tried to build it on the phone, always been cross-compiling on a machine that is much faster.

Philippe De Swert ( 2015-06-30 18:28:38 +0200 )edit