Jump to content

Finepower F1 (finepower-f1): Difference between revisions

From postmarketOS Wiki
mNo edit summary
m source -> syntaxhighlight
 
(12 intermediate revisions by 8 users not shown)
Line 6: Line 6:
| imagecaption = FinePower F1
| imagecaption = FinePower F1
| releaseyear = 2018
| releaseyear = 2018
| originalsoftware = Android 6.0
| originalsoftware = Android
| originalversion = 6.0
| chipset = Spreadtrum SC7731C
| chipset = Spreadtrum SC7731C
| cpu = 4x1.2Ghz Cortex-A7
| cpu = 4x1.2Ghz Cortex-A7
Line 14: Line 15:
| memory = 512 MB
| memory = 512 MB
| architecture = armv7
| architecture = armv7
| type = Feature Phone
| status_usbnet = Y
| status_usbnet = Y
| status_flashing = P
| status_flashing = P
Line 24: Line 26:
| status_battery = <!-- Charging the battery with charging-sdl is possible -->
| status_battery = <!-- Charging the battery with charging-sdl is possible -->
| status_3d = <!-- Hardware accelerated 3D graphics (e.g. with freedreno) -->
| status_3d = <!-- Hardware accelerated 3D graphics (e.g. with freedreno) -->
| status_accel = <!-- The sensor that measures proper acceleration works -->
| status_accel = N
| status_audio = <!-- Using the device's speakers/headphone jack works -->
| status_audio = Y
| status_bluetooth = <!-- It's possible to pair and use other devices via the bluetooth protocol -->
| status_bluetooth = <!-- It's possible to pair and use other devices via the bluetooth protocol -->
| status_camera = <!-- Taking photos and videos works. -->
| status_camera = <!-- Taking photos and videos works. -->
Line 32: Line 34:
| status_sms = <!-- Sending and receiving short messages works as intended. -->
| status_sms = <!-- Sending and receiving short messages works as intended. -->
| status_calls = <!-- Talking to other people over the cellular network. -->
| status_calls = <!-- Talking to other people over the cellular network. -->
| status = boots, framebuffer needs to be fixed
| status = boots
| status_otg = -
| status_otg = -
| booting = yes
| booting = yes
Line 53: Line 55:


== Current issues ==
== Current issues ==
- Framebuffer has red and blue channels swapped.
* Only power button works. Other keys can be enabled in kernel config, but they won't work properly.
- X11 environments don't start.
 
- Keyboard is not detected: only power button works. Probably needs a driver.
The phone uses a proprietary keypad driver called sci-keypad-ext which is an extended version of sci-keypad. In sci-keypad key presses are detected judging by row and column coordinates of the key in keypad matrix. Extended driver adds another variable called gpio-column. One of keypad columns (third) is divided on multiple GPIO columns those can be differentiated only by extended driver. With sci-keypad driver, keys of GPIO columns 2 and 3 repeat value from column 0. GPIO column 1 somehow has something common with power button GPIO, which causes the device to power off. In result: 3 keys (4 with power button) shutdown the device, another 6 keys don't function properly too, repeating the 3 keys from matrix column 2, gpio column 0.
 
* Screen doesn't turn off completely.
 
* SSH doesn't work, use telnet to connect to device


== Hardware ==
== Hardware ==
LCD panel controller: Sintronix ST7796S (MIPI)
* LCD panel controller: Sintronix ST7796S (MIPI)
Back camera: GalaxyCore GC2385 (mipiraw)
* Back camera: GalaxyCore GC2385 (mipiraw)
Front camera: GalaxyCore GC030
* Front camera: GalaxyCore GC030
Wi-Fi, Bluetooth, GPS: sc2351
* Wi-Fi, Bluetooth, GPS: sc2351
Keyboard LED: sc2723
* Keyboard LED: sc2723
Touch panel: FocalTech *
* Touch panel: FocalTech *


=== How to control brightness ===
=== How to control brightness ===
<code>echo 255 > /sys/class/backlight/sprd_backlight/brightness</code>
<syntaxhighlight lang="shell-session">
<code>echo 255 > /sys/class/leds/keyboard-backlight/brightness</code>
# echo 255 > /sys/class/backlight/sprd_backlight/brightness
# echo 255 > /sys/class/leds/keyboard-backlight/brightness
</syntaxhighlight>


== How to enter flash mode ==
== How to enter flash mode ==
Hold Power key and Vol- just after that. Release buttons when logo appears. Navigate to "Reboot to bootloader" option with volume keys and press Power to choose. The phone will reboot in fastboot mode.
Press and hold the Power key, then, immediately press and hold VolumeDown. Release both buttons when the logo appears. Using the volume buttons, navigate to the "Reboot to bootloader" option, pressing Power to select it. The phone will reboot in fastboot mode.
Another option is to connect phone to computer and run
Another option is to connect the phone to a computer and run
<source>$ adb reboot bootloader</source>
<syntaxhighlight lang="shell-session">$ adb reboot bootloader</syntaxhighlight>
or
or
<source>$ sudo fastboot reboot bootloader</source>
Another option is to connect the phone to a computer and run
<syntaxhighlight lang="shell-session">$ sudo fastboot reboot bootloader</syntaxhighlight>


== Installation ==
== Installation ==
=== Flashing kernel ===
=== Flashing kernel ===
{{note|'''Backup your boot partition before flashing kernel.''' If you have root, you can do it with adb. Connect phone to computer, enable USB debugging in Developer mode. Then
{{note|'''Backup your boot partition before flashing the kernel.''' If you have root, you can do this with adb. Connect the phone to your computer, and enable USB debugging in Developer settings. Then run
<source>$ adb shell
<syntaxhighlight lang="shell-session">$ adb shell
$ su
$ su
# dd if=/dev/block/mmcblk0p16 of=/sdcard/boot.img</source>
# dd if=/dev/block/mmcblk0p16 of=/sdcard/boot.img</syntaxhighlight>
If the phone isn't rooted, use ResearchDownload tool for backup.}}
If your phone isn't rooted, use the ResearchDownload tool to create a backup.}}


Fastboot on this phone doesn't support booting kernel from SD card, so it's required to flash kernel with <code>$ pmbootstrap flasher flash_kernel</code>
Fastboot on this phone doesn't support booting the kernel from an SD card, so it's required to flash the kernel to internal storage with <code>$ pmbootstrap flasher flash_kernel</code>
If you have SD card that is rather fast, consider to not flash rootfs on the phone, because its memory is probably slower (15 Mb/s on read, 9 Mb/s on write).
If you have an SD card that is rather fast, consider flashing rootfs onto it instead of the phone's internal storage, which is quite slow (15 Mb/s on read, 9 Mb/s on write).


=== Partitions layout ===
=== Partitions layout ===
<source lang="bash">
<syntaxhighlight lang="text">
major minor  #blocks  name  
major minor  #blocks  name  
   
   
Line 119: Line 128:
  179      64      4096 mmcblk0boot1  
  179      64      4096 mmcblk0boot1  
  179      32      4096 mmcblk0boot0
  179      32      4096 mmcblk0boot0
</source>
</syntaxhighlight>


<source lang="bash">
<syntaxhighlight lang="text">
boot -> /dev/block/mmcblk0p16
boot -> /dev/block/mmcblk0p16
cache -> /dev/block/mmcblk0p18
cache -> /dev/block/mmcblk0p18
Line 145: Line 154:
wruntimenv1 -> /dev/block/mmcblk0p7
wruntimenv1 -> /dev/block/mmcblk0p7
wruntimenv2 -> /dev/block/mmcblk0p8
wruntimenv2 -> /dev/block/mmcblk0p8
</source>
</syntaxhighlight>


== See also ==
== See also ==
* {{issue|239|pmaports}} - Describing porting process here
* {{issue|239|pmaports}} porting process
* {{MR|645|pmaports}} initial merge request
* [https://github.com/jedld/kernel_7730 Generic kernel for Spreadtrum]
* [https://github.com/jedld/kernel_7730 Generic kernel for Spreadtrum]
* {{Device package|finepower-f1}}
* {{Kernel package|finepower-f1}}

Latest revision as of 22:00, 4 September 2024

FinePower F1
FinePower F1
FinePower F1
Manufacturer FinePower
Name F1
Codename finepower-f1
Released 2018
Type feature phone
Hardware
Chipset Spreadtrum SC7731C
CPU 4x1.2Ghz Cortex-A7
GPU Mali-400 MP1
Display 320x480
Storage 4 GB
Memory 512 MB
Architecture armv7
Software
Original software Android
Original version 6.0
postmarketOS
Category testing
Pre-built images no
Features
Flashing
Partial
USB Networking
Works
Internal storage
No data
SD card
No data
Battery
No data
Screen
Partial
Touchscreen
Works
Multimedia
3D Acceleration
No data
Audio
Works
Camera
No data
Camera Flash
No data
Connectivity
WiFi
No data
Bluetooth
No data
GPS
No data
NFC
No data
Modem
Calls
No data
SMS
No data
Mobile data
No data
Miscellaneous
FDE
No data
HDMI/DP
No data
Sensors
Accelerometer
Broken
Magnetometer
No data
Ambient Light
No data
Proximity
No data
Hall Effect
No data
Haptics
No data
Barometer
No data


Contributors

Maintainer(s)

Users owning this device

Current issues

  • Only power button works. Other keys can be enabled in kernel config, but they won't work properly.

The phone uses a proprietary keypad driver called sci-keypad-ext which is an extended version of sci-keypad. In sci-keypad key presses are detected judging by row and column coordinates of the key in keypad matrix. Extended driver adds another variable called gpio-column. One of keypad columns (third) is divided on multiple GPIO columns those can be differentiated only by extended driver. With sci-keypad driver, keys of GPIO columns 2 and 3 repeat value from column 0. GPIO column 1 somehow has something common with power button GPIO, which causes the device to power off. In result: 3 keys (4 with power button) shutdown the device, another 6 keys don't function properly too, repeating the 3 keys from matrix column 2, gpio column 0.

  • Screen doesn't turn off completely.
  • SSH doesn't work, use telnet to connect to device

Hardware

  • LCD panel controller: Sintronix ST7796S (MIPI)
  • Back camera: GalaxyCore GC2385 (mipiraw)
  • Front camera: GalaxyCore GC030
  • Wi-Fi, Bluetooth, GPS: sc2351
  • Keyboard LED: sc2723
  • Touch panel: FocalTech *

How to control brightness

# echo 255 > /sys/class/backlight/sprd_backlight/brightness
# echo 255 > /sys/class/leds/keyboard-backlight/brightness

How to enter flash mode

Press and hold the Power key, then, immediately press and hold VolumeDown. Release both buttons when the logo appears. Using the volume buttons, navigate to the "Reboot to bootloader" option, pressing Power to select it. The phone will reboot in fastboot mode. Another option is to connect the phone to a computer and run

$ adb reboot bootloader

or Another option is to connect the phone to a computer and run

$ sudo fastboot reboot bootloader

Installation

Flashing kernel

Note Backup your boot partition before flashing the kernel. If you have root, you can do this with adb. Connect the phone to your computer, and enable USB debugging in Developer settings. Then run
$ adb shell
$ su
# dd if=/dev/block/mmcblk0p16 of=/sdcard/boot.img
If your phone isn't rooted, use the ResearchDownload tool to create a backup.

Fastboot on this phone doesn't support booting the kernel from an SD card, so it's required to flash the kernel to internal storage with $ pmbootstrap flasher flash_kernel If you have an SD card that is rather fast, consider flashing rootfs onto it instead of the phone's internal storage, which is quite slow (15 Mb/s on read, 9 Mb/s on write).

Partitions layout

major minor  #blocks  name 
 
 253        0     409600 zram0 
 179        0    3817472 mmcblk0 
 179        1       5120 mmcblk0p1 
 179        2       1024 mmcblk0p2 
 179        3      15360 mmcblk0p3 
 179        4       2048 mmcblk0p4 
 179        5       1024 mmcblk0p5 
 179        6       1024 mmcblk0p6 
 179        7       1024 mmcblk0p7 
 179        8       1024 mmcblk0p8 
 179        9       1024 mmcblk0p9 
 179       10       1024 mmcblk0p10 
 179       11       1024 mmcblk0p11 
 179       12       1024 mmcblk0p12 
 179       13       1024 mmcblk0p13 
 179       14       1024 mmcblk0p14 
 179       15       1024 mmcblk0p15 
 179       16      17408 mmcblk0p16 
 179       17    1228800 mmcblk0p17 
 179       18     153600 mmcblk0p18 
 179       19      15360 mmcblk0p19 
 179       20       1024 mmcblk0p20 
 179       21       2048 mmcblk0p21 
 179       22       6144 mmcblk0p22 
 179       23    2357231 mmcblk0p23 
 179       96        512 mmcblk0rpmb 
 179       64       4096 mmcblk0boot1 
 179       32       4096 mmcblk0boot0
boot -> /dev/block/mmcblk0p16
cache -> /dev/block/mmcblk0p18
fbootlogo -> /dev/block/mmcblk0p15
logo -> /dev/block/mmcblk0p14
misc -> /dev/block/mmcblk0p20
miscdata -> /dev/block/mmcblk0p2
persist -> /dev/block/mmcblk0p21
prodnv -> /dev/block/mmcblk0p1
recovery -> /dev/block/mmcblk0p19
sysinfo -> /dev/block/mmcblk0p22
system -> /dev/block/mmcblk0p17
userdata -> /dev/block/mmcblk0p23
wcnfixnv1 -> /dev/block/mmcblk0p10
wcnfixnv2 -> /dev/block/mmcblk0p11
wcnmodem -> /dev/block/mmcblk0p9
wcnruntimenv1 -> /dev/block/mmcblk0p12
wcnruntimenv2 -> /dev/block/mmcblk0p13
wdsp -> /dev/block/mmcblk0p4
wfixnv1 -> /dev/block/mmcblk0p5
wfixnv2 -> /dev/block/mmcblk0p6
wmodem -> /dev/block/mmcblk0p3
wruntimenv1 -> /dev/block/mmcblk0p7
wruntimenv2 -> /dev/block/mmcblk0p8

See also