Difference between revisions of "PINE64 Don't be evil devkit (pine64-dontbeevil)"

From postmarketOS
Jump to: navigation, search
(Cameras)
(Cameras)
Line 115: Line 115:
 
<source lang="shell-session">
 
<source lang="shell-session">
 
dontbeevil:~# ffmpeg -f v4l2 -i /dev/video0
 
dontbeevil:~# ffmpeg -f v4l2 -i /dev/video0
ffmpeg version 4.1.3 Copyright (c) 2000-2019 the FFmpeg developers
 
  built with gcc 8.3.0 (Alpine 8.3.0)
 
  configuration: --prefix=/usr --enable-avresample --enable-avfilter --enable-gnutls --enable-gpl --enable-libass --enable-libmp3lame --enable-libvorbis --enable-libvpx --enable-libxvid --enable-libx264 --enable-libx265 --enable-libtheora --enable-libv4l2 --enable-postproc --enable-pic --enable-pthreads --enable-shared --enable-libxcb --disable-stripping --disable-static --disable-librtmp --enable-vaapi --enable-vdpau --enable-libopus --disable-debug
 
  libavutil      56. 22.100 / 56. 22.100
 
  libavcodec    58. 35.100 / 58. 35.100
 
  libavformat    58. 20.100 / 58. 20.100
 
  libavdevice    58.  5.100 / 58.  5.100
 
  libavfilter    7. 40.101 /  7. 40.101
 
  libavresample  4.  0.  0 /  4.  0.  0
 
  libswscale      5.  3.100 /  5.  3.100
 
  libswresample  3.  3.100 /  3.  3.100
 
  libpostproc    55.  3.100 / 55.  3.100
 
 
[video4linux2,v4l2 @ 0xffff8042d140] ioctl(VIDIOC_G_PARM): Not a tty
 
[video4linux2,v4l2 @ 0xffff8042d140] ioctl(VIDIOC_G_PARM): Not a tty
 
[video4linux2,v4l2 @ 0xffff8042d140] Time per frame unknown
 
[video4linux2,v4l2 @ 0xffff8042d140] Time per frame unknown

Revision as of 16:49, 19 April 2019

Pine Don't be evil (devkit)
The devkit for the PinePhone
The devkit for the PinePhone
Manufacturer Pine
Name Don't be evil (devkit)
Codename pine-dontbeevil
Released 2019
Original software Linux 5.0.0
Hardware
Chipset Allwinner A64
CPU 4x 1152 MHz Cortex-A53
GPU Mali 400
Memory 2 GB
Architecture aarch64
Non-Android based device
Unixbench Whet/Dhry score 706.5
Features
USB Networking
Unavailable
Flashing
Unavailable
Touchscreen
Broken
Display
Works
WiFi
Broken
Xwayland
Works
FDE
Mainline
Works
Battery
Broken
3D Acceleration
Broken
Accelerometer
Works
Audio
Broken
Bluetooth
Broken
Camera
Broken
GPS
Broken
Mobile data
Broken
SMS
Broken
Calls
Broken
USB OTG
Broken



Contributors

Serial console

There is a 3.3V uart on the 2x5pin connector near the modem. The pin in the corner toward VOL- is GND and the next pin is TX.

Pine-dontbeevil-uart.jpg

The baudrate in u-boot and in Linux is 115200n8

Components

Component Model Mainline
Touchscreen FocalTech FT6336GU edt_ft5x06
Rear camera OmniVision OV5640 Yes, ov5640
Front camera GalaxyCore GC2035 Nope
LCD JD9365D pine64/linux
Wifi/Bluetooth RTL8723BS CONFIG_RTL8723BS
Modem Quectel EC25-E USB_NET_QMI_WWAN
Magnetometer ST LIS3MDL yes
Ambient light / Proximity SensorTek STK3335 works with stk3310
Sixaxis InvenSense MPU-6050 yes

Touchscreen

The touchscreen is controlled by the edt_ft5x06 module on i2c-0. The current issue is that it takes a long while before the i2c-0 bus works after booting. For some reason it takes ~110 seconds before communication is possible. This causes an issue because the module tries to probe the touchscreen before the bus works.

The current workaround is to build edt_ft5x06 as a module and rmmod/modprobe the module after the i2c-0 bus works so it gets probed again.

[   17.942111] edt_ft5x06 0-0038: touchscreen probe failed
...after rmmod edt_ft5x06; modprobe edt_ft5x06...
[ 3989.326377] input: generic ft5x06 (12) as /devices/platform/soc/1c2ac00.i2c/i2c-0/0-0038/input/input2

Cameras

The camera's both share the csi-0 bus. Currently only the rear camera (OV5640) has mainline linux support.

The device tree nodes for the camera and the csi bus have been added but so far it hasn't been possible to get images from the camera. It's not clear if this an issue with the OV5640 driver or with the allwinner csi kernel module.

It's also not clear how the camera switching would work on the software side, maybe Linux just deals with it if the device tree nodes for the second camera get added.

dontbeevil:~# ffmpeg -f v4l2 -i /dev/video0
[video4linux2,v4l2 @ 0xffff8042d140] ioctl(VIDIOC_G_PARM): Not a tty
[video4linux2,v4l2 @ 0xffff8042d140] Time per frame unknown
[video4linux2,v4l2 @ 0xffff8042d140] ioctl(VIDIOC_STREAMON): Invalid argument
/dev/video0: Invalid argument

WiFi/Bluetooth

The kernel module for the RTL8723BS wifi/bluetooth module has been added but the interface for the wifi chip doesn't show up. There is some 802.11 stuff loaded in the kernel. Needs further debugging.

Modem

Haven't looked at yet

Sensors

All sensors work and are accessible as Industrial I/O (iio) devices in linux. To query the data you can cat the files in `/sys/bus/iio/` to make the kernel module query the sensors

dontbeevil:~# cat /sys/bus/iio/devices/iio\:device0/name
mpu6050
dontbeevil:~# cat /sys/bus/iio/devices/iio\:device0/in_accel_z_raw
-17594
dontbeevil:~# echo "Verified gravity still exists"

The stk3310 module doesn't load automatically, after running modprobe stk3310 the third device in `/sys/bus/iio` should show up.

RGB Led

All the required gpio-led stuff is added to the device tree but the gpio-led module doesn't do anything. No led devices, No errors, No log messages.

See also