EmbER-Dev / EmbER

EmbER - Open Source XBMC OS for Amlogic (formally Mx Linux)
http://goo.gl/2Axk0b
GNU General Public License v2.0
30 stars 28 forks source link

move to kernel 3.10 #5

Open xlazom00 opened 10 years ago

xlazom00 commented 10 years ago

Amlogic release new kernel 3.10 http://openlinux.amlogic.com:8000/download/ARM/

It will be nice to move to new kernel :)

C-Prime90 commented 10 years ago

already in the works ;)

xlazom00 commented 10 years ago

why did you close this issue as it is "IN WORKS" you broke whole issues tracking idea :)

dhead666 commented 10 years ago

@croniccorey

What the status of kernel 3.10 ? I'm trying to build it myself using gcc-linaro-arm-linux-gnueabihf-4.7-2013.04. It looks like I can't boot it using the original uboot of the g18ref.

make meson6_defconfig make zImage make meson6_g18.dtd make meson6_g18.dtb cat arch/arm/boot/zImage arch/arm/boot/dts/amlogic/meson6_g18.dtb > new_zImage ./arch/arm/boot/mkimage -A arm -O linux -T kernel -C lzma -a 82000000 -e 82000000 -d new_zImage uImage

This is the output when executing the kernel

Booting kernel from Legacy Image at 82000000 ... Image ame:
Image Type: ARM Linux Kernel Image (lzma compressed) Data Size: 3501226Bytes = 3.3 MiB Load Address: 82000000 Entry Point: 82000000 Verifying Checksum ... OK Uncompressing Kernel Image ... LZMA: uncompress or overwrite error 1 - must RESET board to rcover resetting ...

dhead666 commented 10 years ago

After testing misc configurations of memory addresses to load the kernel and to exract the kernel and failing in all cases, I decided to not compress it at all. So now I get no error but after the first message that the kernel is loading I get no output anymore (I do have ttyS0 set withing the kernel by bootcmd. So ATM using the original uBoot of the g18ref doesn't end well although from what I read it should have worked.

Here're the steps I made:

make meson6_defconfig make UIMAGE_COMPRESSION=none uImage make meson6_g18.dtd make meson6_g18.dtb cat arch/arm/boot/uImage arch/arm/boot/dts/amlogic/meson6_g18.dtb > uImage

xlazom00 commented 10 years ago

try to contact Stane1983 https://github.com/Stane1983

It looks like he made it booting http://www.cnx-software.com/2014/03/10/amlogic-gpl-source-code-release-kernel-3-10-u-boot-and-drivers-wi-fi-nand-tvin-mali-gpu/

dhead666 commented 10 years ago

Nevermind, I found my silly mistake, I forgot to enable the config to append fdt to the kernel. Now I got the kernel loading with the legacy uboot but I encounter a kernel panic.

dhead666 commented 10 years ago

Good news, got Arch Linux running, still things a bit unstable, no networking yet so one need to solder wires to the uart solder pads.

Now I need to figure out how to create a bootable sd card without changing uboot enviroment params on the spi as I want to have a bootable sd card to load Arch.

I'm not sure if Amlogic method for creating bootable sd also automatically flash the uboot from sd to spi, which I don't want. As I understood there are two ways to load uboot from sd, the first is to dd the uboot before the first partition and the second is to have it resided in the first partition but to rename it to something.

If I can't supplied an extra uboot enviroment params file then I'm guessing I will also need to compile my own uboot as it will default to the ones configured at build time and I'm not sure there are uboot sources for the g18 board.

xlazom00 commented 10 years ago

It is really bad that you don't have working ethernet driver in kernel I use it with kernel 3.0 this way: boot kernel over tftp as uboot support this. As you don't need working ethernet to boot linux kernel :) And then with working kernel I use NFS for rootfs http://pastebin.com/V6bhWYqh Try to load kernel from tftp. it is good start

dhead666 commented 10 years ago

I know about tftp booting but it won't help the fact I don't have eth0 registered so the kernel won't be able to nfs the rootfs.

If nothing is off with my kernel config then it possible that the meson6_g18.dtd needs some tweaking.

I think I'll just use an usb ethernet adapter for the time being and will try to figure out how to have a bootable sd card load the rootfs.

xlazom00 commented 10 years ago

http://www.cnx-software.com/2014/05/12/how-to-extract-a-device-tree-file-from-android-firmware-files/

dhead666 commented 10 years ago

Thanks @xlazom00, I didn't know it's possible. I don't think the g18 (meson6) got an Android firmware with FDT support (Amlogic Android SDK 4.4 ?).

I probably need to look at the old board files from the 3.0.50 kernel and see if something is missing in the FDT file.

xlazom00 commented 10 years ago

this 3.0 kernel work on my Geniatech ATV1200 https://github.com/wjb/mx-common/commits/master

And you can look here too customer directory contains boards integration files https://github.com/Stane1983/kernel-amlogic-mx/commits/master

dhead666 commented 10 years ago

I disabled the Amlogic ethernet in the kernel config and now I can see the external usbnet0 adapter via "ip addr" (was not possible when the builtin eth0 was enabled, ip command just frozed the system). The usbnet0 still fails to connect to network and I'm starting to think this might be related to systemd + udev.

I think I'll move to compile the kernel on a native Arch Linux Arm system (CC with distcc) and tweak my kernel config.

xlazom00 commented 10 years ago

Try linaro toolchain? http://www.linaro.org/downloads/#008

dhead666 commented 10 years ago

As I mentioned my attempts were with the linaro toolchain (gcc 4.7), as I'm not a developer I'm not sure if compiling on a native ALARM system (with more recent gcc version) would make a difference but it worth trying.

I was experiencing similar issues with kernel 3.0.50 on Arch so it highly possible that if you're using init.d you'll have a fully working enviroment but my current goal is to have Arch running.

xlazom00 commented 10 years ago

If you are on arm you can use native compiler for example if you have working armhf buildroot in qemu for example or different device. But crosscompiler is simple faster and not everybody want to use nightly compiler in devboard or hobby board :)

I hope that you fix kernel network driver. as tftp and nfs is nice solution for first steps

dhead666 commented 10 years ago

Got lan up with an external USB adapter, something is definetely wrong with the driver of the internal eth0 or with the FDT file. Edit: forgot to mention that I do see allot of errors when using the USB adapter, it might be a kernel USB driver issue or related to the quality of my adapter.

Stane1983 commented 10 years ago

I see you guys managed to boot 3.10 kernel on legacy uboot w/o device tree support enabled. Congrads :) I didn't even try to go that way 'cause I do have all resources (which I cannot share 'cause of SLA with Amlogic). Android KitKat (someone mentioned aml 4.4 sdk) works solid on MX (tested on Visson ATV-102s aka Tronsmart Prometheus), but of course not with kernel released in March.

3.10 compiles with both armel and armhf toolchains. If someone is working on Linux, I'd suggest to use armel Linaro 2012.03 or 2012.04 as there are no armhf Mali libs available, I already asked for it and explained why it's needed. Armel libs as well as Mali API 19 kernel driver can be found in Aml's latest buildroot - http://openlinux.amlogic.com:8000/download/ARM/filesystem/arm-buildroot-2014-03-13-214bab3884.tar.gz

dhead666 commented 10 years ago

Thanks @Stane1983,

My current goal is to have ALARM (Arch Linux Arm) running smoothly with proper ethernet on the g18. ALARM Armv7 rootfs is only hard float so for me it's the only way to go. @croniccorey got more mali blobs, when I'l be happy with the kernel I'll see if one of the blobs would work (maybe the Android binary is armhf and can be re-used with libhybris ?).

The whole situation with Amlogic not releasing public updates to kernel is far than optimal, surely when developers releasing binary blobs, so no community effort fixing issues in public sources.

As a non developer to get the kernel working I need to pick a lot of things on the way, and to figure out whether I made a mistake or there's a bug in the sources can be frustrating. Currently I'm looking in the ethernet driver and trying to figure out why there's a change with the basedir of the device between 3.0.50 to 3.10 and if anything else is changed or missing.

dhead666 commented 10 years ago

Revert my statement, no change in ethernet basedir...stupid mistakes in code comments by Amlogic.

dhead666 commented 10 years ago

Just a little update:

I got ethernet up with kernel 3.10.33, running of course on my g18 device (meson6). Freaking amazing !!!

I hope to start packaging Amlogic's libs this week for Arch Linux (systemd support also bring us closer to OpenELEC).

My next goal is to compile an updated uboot, with 20140306 release I failed to build it with two different toolchains, I need to figure out which toolchain works (and maybe 20140306 release is broken). I need updated uboot as I want the support for the device tree and to have a bootable sd as if I understand it right I need to disable WRITE_TO_NAND_ENABLE so the uboot won't be written automatically when loaded from sd.

I think I'll stop spamming here, I'll post updates on the ALARM forums http://archlinuxarm.org/forum/viewtopic.php?f=27&t=7221

p.s. I created a mega linux-meson repository at https://github.com/MakakLabs/linux-meson

Stane1983 commented 10 years ago

For toolchains, check http://openlinux.amlogic.com:8000/deploy/ deploy scripts, there you will find how toolchains are installed and which ones. You need linaro, codesourcery and arc for u-boot.

dhead666 commented 10 years ago

@Stane1983

Great ! thanks very much, I will have much fun this week.