Kernel for A64 git
#1
To easily build the Kernel as provided in the BSP i have added it to Git including patches to make it actually compile and work suitably:

https://github.com/longsleep/linux-pine6...ne64-hacks

Use it together with my build tools at https://github.com/longsleep/build-pine64-image to create working and bootable Linux images from source.

The Kernel and U-Boot from the BSP uses the device tree from https://github.com/longsleep/build-pine6...pine64.dts and a suitable Kernel configuration is at https://github.com/longsleep/linux-pine6..._defconfig

Start with reading https://github.com/longsleep/build-pine6.../README.md and do not forget about U-Boot https://github.com/longsleep/build-pine6...ostprocess

I publish compiled Linux Kernel builds for image builders from that tree. This gives you Kernel, initrd, dtb and modules which can be easily combined with any rootfs.

Download BSP Linux Kernel tarball

Release history:

**3.10.65-2-pine64-longsleep-39 (20160305)**
- Initial public release

**3.10.65-2-pine64-longsleep-39-1 (20160306)**
- Updated tarball to use new U-Boot file structure

**3.10.65-2-pine64-longsleep-39-2 (20160311)**
- Updated device tree for better thermal behavior
- uEnv.txt is now uEnv.txt.in in tarball
- Kernel firmware is now included
- Kernel headers are now included

**3.10.65-2-pine64-longsleep-43 (20160311)**
- Enabled media platform devices (video)
- Enabled USB UVC and CPiA2 camera driver
- Enabled video engine (cedar_ve)
- Enabled various rc drivers

**3.10.65-3-pine64-longsleep-2 (20160319)**
- Tagged as 3.10.65-3-pine64
- Added device tree for Pine64 512MB/100M NIC model
- Enabled support for USB audio
- Critical shut down is now at 108°C (was 100°C)
- Disabled Kernel mode realtime group scheduling

**3.10.65-4-pine64-longsleep-16 (20160403)**
- Tagged as 3.10.65-4-pine64
- Fixed Ethernet Kernel crash when booted with more than 1GB RAM

**3.10.65-5-pine64-longsleep-19 (20160415)**
- Tagged as 3.10.65-5-pine64
- Support misc input devices (uinput, gpio) as module
- Tree cleanup (thanks to Alexander Graf)
- Fixed EFI boot (thanks to Alexander Graf)
- Removed FEX parsing (thanks to Alexander Graf)
- Fix a possible oops while loading codec (thanks to Alexander Graf)
- Support USB serial devices (cp210x, ftdi_sio) as module
- Support CIFS as module

**3.10.65-7-pine64-longsleep-28 (20160415)**
- Tagged as 3.10.65-7-pine64
- Backported crc32 arm64 optimizations from mainline
- Support more USB serial devices (ch341) as module
- Support more USB devices (acm, printers) as module
- Various crypto modules are now built-in
- Removed and cleaned up lots of debugging
- Audio codec sound driver is no longer built-in and now a module (HDMI audio still built-in)

**3.10.101-0-pine64-longsleep-39 (20160507)**
- Tagged as 3.10.101-0-pine64
- Merged with Linux stable 3.10 tree up to the current 3.10.101 (All say thanks to Mikhail which did the work for Armbian)
- Ported framebuffer patch over from OpenELEC for H3 fixing resolution switching (Thanks to Jernej Škrabec for pointing me to it)
- Enable vsync wait (porting patch from OpenELEC for H3)
- Enable task account support for iotop support (Thanks to Christoph Bayer)
- Enable I2C support (Thanks to Martin Ayotte)
- Enable a ton of USB wifi network drivers as module (see here)
- Enable network scheduling modules

**3.10.101-1-pine64-longsleep-41 (20160516)**
- Tagged as 3.10.101-1-pine64
- Enable XFS, FS2FS and HFS+ as module
- Fix sunxi-ss ahash registration and disable SHA-224
- Enable BLK_DEV_BSG for better udev compatibility

**3.10.101-2-pine64-longsleep-48 (20160521)**
- Tagged as 3.10.101-2-pine64
- Enable various netfilter and namespace features to make LXD happy
- Disable XFS module (not compatible with user namespaces in Kernel 3.10)
- Backported apparmor3
- Enable/changed various additional features to for complete secure container support

**3.10.101-3-pine64-longsleep-50 (20160524)**
- Tagged as 3.10.101-3-pine64
- Backported capability dropping in user namespaces, fixing unprivileged containers

**3.10.101-4-pine64-longsleep-51 (20160526)**
- Tagged as 3.10.101-4-pine64
- Release tarballs now include proper headers in /usr/src/linux-headers-<version>
- All gear for out-of-tree module compile now included and at correct location, fixes DKMS support
- Enable network bonding module
- Include network dummy
- Include sound sequencer
- Enable virtual midi and dummy sound sequencer module

**3.10.102-0-pine64-longsleep-7 (20160617)**
- Tagged as 3.10.102-0-pine64
- Merged with Linux stable 3.10.102
- Enable iSCSI support as module
- Enable open vSwitch support as module
- Enable various RC IR devices as module
- Disable non working VFE devices in device tree

**3.10.102-2-pine64-longsleep-66 (20160716)**
- Tagged as 3.10.102-2-pine64
- Remove privilege escalation and information leak ioctl from cedar_ve driver
- Enable various modules to support 'ip rule'
- Use Pine64 logo while booting (thanks to PanderMusubi)

**3.10.102-3-pine64-longsleep-98 (20160820)**
- Tagged as 3.10.102-3-pine64
- Enable spidev as module
- Enable binfmt_misc
- Enable various gamepad devices as modules
- Enable various serial converters as modules
- Backport fix for CVE-2016-5696 from mainline
- Ethernet MAC address is now generated random on boot
- Fix crash on shutdown/reboot (again)
- Enable Dallas 1-Wire as module and in device tree

**3.10.104-1-pine64-longsleep-103 (20161023)**
- Tagged as 3.10.104-1-pine64
- Merged linux-stable 3.10.104
- Merged linux-stable 3.10.103
- Enabe ip multicast (thanks to cztian)
- Merge ov5640 and s5k4ec patch from avafinger (thanks!)

**3.10.104-2-pine64-longsleep-113 (20161215)**
- Tagged as 3.10.104-2-pine64
- Fix I2C touch screen driver for Pine64 7" lcd (thanks to mbergstrand!)
- Add support for overlayfs and enable as module
- Fix ARM erratum #843419 (thanks to Armbian!)
- Backport CVE-2016-8655 fix from mainline
- Fix GbE support by setting some magic bits

**3.10.105-0-pine64-longsleep-3 (20170311)**
- Tagged as 3.10.105-0-pine64
- Merged linux-stable 3.10.105
- Enable various touchscreen drivers as module (thanks to Ben Tinner)
- Squashfs is now a module and has support for lzo and xz compression
- Enable various docker-swarm related kernel features and modules (thanks to atzoum)

To make your own Linux image with this Kernel, check out my simple image releases which combine U-Boot and a suitable disk layout at http://forum.pine64.org/showthread.php?tid=99 for details and download.

Released tarballs are signed with a detached GPG signature (.asc) signed by my personal key 0x090EF0DB. Get the key and verify that the download is intact and unmodified.
Code:
gpg --keyserver keyserver.ubuntu.com --recv-keys 090EF0DB
gpg --with-fingerprint arch-pine64-*.xz.asc


To update both Kernel an U-Boot to the latest releases, run the following commands (as root):
Code:
bash <(curl -s https://raw.githubusercontent.com/longsleep/build-pine64-image/master/simpleimage/platform-scripts/pine64_update_uboot.sh)
bash <(curl -s https://raw.githubusercontent.com/longsleep/build-pine64-image/master/simpleimage/platform-scripts/pine64_update_kernel.sh)
and reboot.

This Kernel does automatically generate a locally administered MAC address for the Ethernet (eth0) interface. Some networks might not be able to handle those correctly. The recommended solution is to manually set the MAC address to the one which is printed on the back of the Pine64 by adding it to /boot/uEnv.txt with a line like ethaddr=xx:xx:xx:xx:xx:xx. The MAC addess is the lower number on the barcode label on the back of your Pine board. Start from the left and add a colon every two chars. So far they all seem to start with 00:06:dc making this the vendor prefix.


Other experimental Kernel variants:

drm **OUTDATED**
The drm Kernel uses another display driver. It is experimental - do not use for production. It is slow with X11 and requires additional work to get it running at all. See http://forum.pine64.org/showthread.php?t...m#pid17035 for instructions and details. The source code is at https://github.com/longsleep/linux-pine6...ks-1.2-drm



Your feedback is most welcome.
#2
I got (last night) a working android kernel with linux partition, but this is far way better...

Hdmi, etc working?
EDIT: **** I just read that ethernet usb etc only works on 3.10 bsp... Sorry, my bad****

Nothing to add... *applause*
Hope this is the begining of a beautiful pine+Linux marriage.
#3
At the moment I do not care much about HDMI and did not test it yet.
#4
I agree... Thanks
#5
(02-14-2016, 03:00 AM)longsleep Wrote: Your feedback is most welcome.

Works like a charm!

Is there any equivalent to fw_printenv/fw_setenv available for allwinner/android u-boot? I just want to adapt u-571 for the pine64.
[url=https://github.com/umiddelb/u-571][/url]
#6
(02-15-2016, 07:25 AM)umiddelb Wrote: Is there any equivalent to fw_printenv/fw_setenv available for allwinner/android u-boot? I just want to adapt u-571 for the pine64.
[url=https://github.com/umiddelb/u-571][/url]

I am not completely sure what you mean but if you are looking for ways to modify/extend the u-boot environments from Linux either put a valid compiled environment into a uboot.env file of the boot partition or use the uEnv.txt file at the same location.
#7
(02-15-2016, 11:05 AM)longsleep Wrote: I am not completely sure what you mean but if you are looking for ways to modify/extend the u-boot environments from Linux either put a valid compiled environment into a uboot.env file of the boot partition or use the uEnv.txt file at the same location.
Other boards/u-boot versions use a specific region on the sd card (or internal flash memory) to store the compiled u-boot environment which is accessible via fw_printenv/fw_setenv then. The configuration file `/etc/fw_env.config` contains information about the device, the offset and the environment size.

Your u-boot version uses a file instead of a memory region to store the compiled environment. This file seems to be inaccessible to fw_printenv ("Bad CRC"). Is there another way to create/alter the compiled environment?
#8
(02-15-2016, 12:11 PM)umiddelb Wrote: Your u-boot version uses a file instead of a memory region to store the compiled environment. This file seems to be inaccessible to fw_printenv ("Bad CRC"). Is there another way to create/alter the compiled environment?

Yes - use mkenvimage (http://free-electrons.com/blog/mkenvimag...generator/) which is also a part of u-boot-tools (if at a reasonable version). Make sure to have correct settings for redundancy (-r) and size (-s) as defined in the U-Boot config file.

If you use my U-Boot tree (which has CONFIG_SYS_REDUNDAND_ENVIRONMENT and CONFIG_ENV_SIZE 128KB to be compatible with Ubuntu Snappy) use something like
Code:
mkenvimage -r -s 131072 -o /media/boot/uboot.env uboot.txt
.
#9
HDMI works now. It requires that you update U-Boot as well. Easiest is to use my latest simpleimage build from http://forum.pine64.org/showthread.php?tid=99
#10
I imported the changes from the 1.2 BSP release to https://github.com/longsleep/linux-pine6....65-bsp1.2 on top of the first BSP.

As there are a lot of changes and GitHub cannot show them all, see http://paste.ubuntu.com/15174117/ for an overview.


Possibly Related Threads…
Thread Author Replies Views Last Post
  PineA64+: Audio in 5.0 Kernel puzzles 6 8,785 11-13-2019, 09:41 AM
Last Post: roel
  Rockpro64 NFS root mount (kernel 4.20) - ethernet help? tenspd137 0 2,874 12-06-2018, 01:14 AM
Last Post: tenspd137
  NVMe and new kernel bjbb17 0 2,568 09-25-2018, 03:39 PM
Last Post: bjbb17
  Real-time linux kernel Artyom 45 70,849 09-11-2018, 01:08 AM
Last Post: zzwpine
  DKMS on kernel 3.10.107-pine64 obrienmd 5 8,425 06-21-2018, 05:45 PM
Last Post: evilbunny
  Gentoo for pine64 - longsleep kernel incoherent 0 3,591 12-09-2017, 08:14 AM
Last Post: incoherent
  [SOLVED] UEFI + Fedora Mainline Kernel Booting! cztian 0 3,262 07-13-2017, 08:38 PM
Last Post: cztian
  Mainline kernel [Solved] jeroen79 11 18,958 02-08-2017, 06:19 AM
Last Post: umiddelb
Question Need help : Issue in running compiled kernel with tftp+uboot dinesh.bhoyar 2 4,558 01-30-2017, 12:44 AM
Last Post: dinesh.bhoyar
  Jackd triggers kernel warning cztian 0 3,458 09-03-2016, 08:16 AM
Last Post: cztian

Forum Jump:


Users browsing this thread: 2 Guest(s)