3.0.42+ tuned sources

After a bit of thinking, i push back the sources i used to prepare the kernel available here.
This is not a dissident action against the sunxi community.
I have no time left to work more on debugging kernel stuff and perhaps submit some patches to the sunxi github based on this version.
I strongly encourage everyone with the skills to get involve and push back to the great sunxi community his/her work around the new 3.0.57+ and any next version.

UPDATE 09-07-2013
linux-allwinner-src-3.0.42-7.tar.gz (MD5: 95ba8f14356da2384bf9750c7227143f)
/UPDATE

linux-allwinner-src-3.0.42.tar.bz2 (MD5: fe2466fdd6d6057cfc696821af332a08)
linux-allwinner-src-3.0.42.tar.gz (MD5: 949922d5124f339881eca2dfc49f5edd)

You can cross-compile the kernel following howtos from rhombus or everywhere.

From debian (like me), you simply have to get a cross-compiler:

# echo "deb http://www.emdebian.org/debian/ unstable main" >> /etc/apt/sources.list
# apt-get update
# apt-get install gcc-4.7-arm-linux-gnueabihf g++-4.7-arm-linux-gnueabihf cpp-4.7-arm-linux-gnueabihf gcc-4.7-arm-linux-gnueabihf-base libc6-dev-armhf-cross libc-dev-bin-armhf-cross libc6-armhf-cross

And enter in a cross compile env, like with my script:

#!/bin/sh

ARCHCODE="arm"
CCPREFIX='arm-linux-gnueabihf'

[ -n "${CROSS_COMPILE}" ] && { exit; }

echo "Type 'exit' to return to non-crosscompile environment"
export ARCH="$ARCHCODE"
export CROSS_COMPILE="$CCPREFIX-"
export CFLAGS=""
echo "NOW in crosscompile environment for $ARCH ($CROSS_COMPILE)"
/bin/bash
echo 'Back in non-crosscompile environment'

This kernel has minimal modifications against the previous Amery github which is now merged in linux-sunxi.
I didn’t get the current github 3.0.57+ to work with sata like this kernel is.
Probably a clock change one more time.
You have all the pieces.

Happy hacking everyone! 😉

19 thoughts on “3.0.42+ tuned sources

  • Thanks for all your work. It opened a powerful server platform for a lot of people.

    I tried to compile some dvb-usb modules using your patched kernel sources without success. I have seen you have dvb-core.ko in /lib/modules/3.0.42 y 3.0.42+ but the “standard” config you uploaded does not have this option configured as module. After doing:

    make sun4i_defconfig
    make menuconfig
    → DVB=M,
    make -j16 uImage
    make modules

    copying dvb-core.ko to my mele and running ‘insmod dvb-core.ko’ fails and dmesg shows:
    dvb_core: disagrees about version of symbol module_layout

    On the other hand, ‘insmod /lib/modules/3.0.42/kernel/drivers/media/dvb/dvb-core/dvb-core.ko’ (or 3.0.42+) does not show any error

    After some reading, I discovered that this error appears due to mismatched .config files between running and “compiling” kernels. If it is true:
    Guillaume, would it be possible to have your .config?
    The other alternative would be to compile image and every module and substituting uImage and all the ko’s over your distro

    Thanks

      • Thanks Guillaume.
        3.0.57 config is different from 3.0.42 and I did not resolve the problem (I’m not a kernel hacker). After compiling a new uImage and installing new /lib/modules and /lib/firmware resolved the problem with the new drivers, but, as I guessed, appeared some collateral effects 🙁

        I have runned xbmc natively compiled from rellla repo with your SD card image and did some initial tests. With my new kernel and modules xbmc crashed on init:

        00:43:06 T:1095200768 NOTICE: InitWindowSystem: Using EGL Implementation: A10
        00:43:06 T:1095200768 ERROR: EGL error in InitDisplay: 3003
        00:43:06 T:1095200768 ERROR: InitWindowSystem: Could not create display
        00:43:06 T:1095200768 FATAL: CApplication::Create: Unable to init windowing system

        I suspect from a problem with mali drivers in the kernel tree (kernel/drivers/gpu/drm and gpu/mali?). Maybe I’ll give a try with the new sunxi-mali repository

        • To compile a running 3.0.42 which will work with xbmc, you need an updated version of the kernel with latest mali drivers.
          The 3.0.57 is working for xbmc.
          My latest kernel 3.0.42 released on my kernel update page have this driver and allow to run xbmc.
          If you don’t need sata (have a mele?) you can compile the sunxi github repo.

          • Thank you Guillame. This explains that sunxi-mali does not work either.
            I have got a mele A2000 but I will try with 3.0.62+ from linux-sunxi. I’m using now a USB HDD.

  • @guillaume

    Did you run XBMC without artifacts (mp4/mkv videos) or is that not possible due to the framebuffer solution?

  • Hello guillaume,

    can you provide sdcard image with working xbmc. I have mele a2000 and trying to make mediaplayer from it.

    I tried ubuntu image form IconBit (russians), but xbmc shows huge amount of white artifacts on video.

    Also compiled my own xbmc on your ubuntu image, but there is no sound and video has huge lag (kernel form linux-sunxi 3.0.62, because your 3.0.42 does not have HIDRAW option (needed for logitech k400 wireless keyboard)).

    Please share your working sdcard image with xbmc.

    • Hello,

      My xbmc is running on on a 3.0.42+ with updated mali drivers.
      It’s not really usable for video. It’s working but too slow in 1080p to be satisfying for me. 720p is ~watchable~.
      Just take the latest gfx kernel from my page and copy the /allwinner/ from russians. It should do the trick.
      If you don’t need the sata, you could compile a kernel from sunxi.

  • Hi guillaume,

    Thanks for your great work. I installed Mele headless: Debian wheezy (aka testing) armhf with nand install (v1) patched with linux-armhf-headless-1G-3.0.42-3.tar.gz on my cubieboard, it runs smoothly.

    And I want to use Logitech C270 HD Webcam on my box, so I complied your source(by enable UVC) with “.config” file in linux-armhf-headless-1G-3.0.42-3.tar.gz. And copy the new kernel file to my box, the cam can run well.

    But here comes two issues:
    1. Only one USB port is working now. By using lsusb, I found only one USB port is found.
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

    Here is some log by dmesg | grep usb

    Before:
    [ 2.020000] usbhid: USB HID core driver
    [ 2.020000] line6usb driver version 0.9.1beta (revision 690)
    [ 2.030000] usbcore: registered new interface driver line6usb
    [ 7.970000] sw_usb_enable_hcd: usbc_num = 2
    [ 7.970000] [sw-ehci2]: sw_usb_enable_ehci
    [ 8.060000] [sw-ohci2]: sw_usb_enable_ohci
    [ 8.220000] usbcore: registered new interface driver rtl8192cu
    [ 8.380000] usb 3-1: new high speed USB device number 2 using sw-ehci
    [ 8.540000] usb-storage 3-1:1.0: Quirks match for vid 05e3 pid 0723: 8000
    [ 8.560000] scsi0 : usb-storage 3-1:1.0

    After:
    [ 2.070000] usbhid: USB HID core driver
    [ 2.070000] line6usb driver version 0.9.1beta (revision 690)
    [ 2.080000] usbcore: registered new interface driver line6usb

    2. The LED on board does not light any more.

    And I re-complie the kernel again without modifying anything in your .config file. The issues still remained.

    Any help? Thanks.

  • root@tvboxlan:~# 2013 Jun 3 20:29:28 tvboxlan [111425.160000] Unable to handle kernel paging request at virtual address 00fbc800
    2013 Jun 3 20:29:28 tvboxlan [111425.160000] pgd = e7188000
    2013 Jun 3 20:29:28 tvboxlan [111425.160000] [00fbc800] *pgd=00000000
    2013 Jun 3 20:29:28 tvboxlan [111425.160000] Internal error: Oops: 5 [#1] PREEMPT
    2013 Jun 3 20:29:28 tvboxlan [111425.160000] Process transmission-da (pid: 1624, stack limit = 0xe73fe2e8)

    have such panic almost every week. and my box are stuck after that. have no idea how to debug or fix it.

Leave a Reply to guillaume Cancel reply

Your email address will not be published. Required fields are marked *