GusAntoniassi
-
Posts
6 -
Joined
-
Last visited
Content Type
Forums
Store
Crowdfunding
Applications
Events
Raffles
Community Map
Posts posted by GusAntoniassi
-
-
Some commands that might be useful for debugging:
Running a program as a new window through SSH:
DISPLAY=:0.0 {program name}
Running the program as "full screen" (no desktop environment):
First we need to find the executable path. You can find it with "whereis". I'll use "glxgears" to illustrate:
whereis glxgears
You'll get something like:
Quoteglxgears: /usr/bin/glxgears /usr/share/man/man1/glxgears.1.gz
The executable is usually in a "bin" folder. For glxgears the path is /usr/bin/glxgears.
Now we can run the program with startx through the framebuffer we're using for the screen:
FRAMEBUFFER=/dev/fb0 startx /usr/bin/glxgears
-
Hey guys, I've spent the last couple of weeks trying to get a TFT display with touch screen to work on my Orange Pi PC board, and I've decided to share my step-by-step solution here. This tutorial is heavily based on Guide: How to use Touchscreen + LCD on H3 devices by Kutysam, but I had to do some extra steps for it to work properly. This tutorial is only for Mainline kernel, I was able to get the graphical screen working with Kutysam's guide for Legacy, but couldn't make the touch work.
First of all this is the display I'm using: LCD module Pi TFT 3.5 inch (320*480) Touchscreen Display Module TFT for Raspberry Pi 3. I believe it is a clone of this Waveshare screen.
Also, I am using the image Armbian_5.38_Orangepipc_Debian_stretch_next_4.14.14_desktop, but it should work for the headless version (server) too, if you install a display manager, desktop environment and the X server.
All the commands below are assumed to be run as root user. If you're not root, add "sudo" to the beginning of each command.
---
Preparation
First of all make sure you have the latest package updates by running
apt-get update && apt-get upgrade
This might take a while. If the packages have been installed successfully, reboot. On a fresh install I was getting the following error message:
QuoteE: Could not open file /var/lib/apt/lists/[...] open (2: No such file or directory)
If that happens to you, just run the command again and it should download everything properly. If it still isn't working you could try cleaning the apt cache.
After that, install these Make prerequisites:
apt-get install build-essentials
For some reason the linux-headers package for sunxi is not included in the repository, this thread might explain it better than me. Either way, download and install the package with dpkg:
wget http://apt.armbian.com/pool/main/l/linux-4.14.18-sunxi/linux-headers-next-sunxi_5.41_armhf.deb dpkg -i linux-headers-next-sunxi_5.41_armhf.deb
Now we need to edit armbianEnv.txt to enable the overlays for spi and cs1
nano /boot/armbianEnv.txt
Add the following lines to the end of the file (Be careful with spaces in the end of the lines... I lost a couple of days trying to figure out what the problem was when I had an extra space after "param_spidev_spi_bus=0" )
overlays=spi-spidev spi-add-cs1 param_spidev_spi_bus=0 param_spidev_spi_cs=1
And reboot.
Screen
Now we need to configure fbtft and fbtft_device on boot. Note: I had to put "98" in the start of the filename, or else I'd get the following error: "fbtft_device: spi_busnum_to_master(0) returned NULL" in dmesg after I installed the touchscreen. I believe it has something to do with the load order, so if you're having problems with this file you could try changing the prefix to 99 or removing it.
nano /etc/modules-load.d/98-fbtft.conf
Insert the following on the file:
fbtft fbtft_device
Now we have to load fbtft_device options on boot. Open the file with:
nano /etc/modprobe.d/fbtft.conf
Add the following:
options fbtft_device rotate=90 name=piscreen speed=16000000 gpios=reset:2,dc:71 txbuflen=32768 fps=25
And reboot. At this point your screen should at least turn black. For me, the GUI wouldn't load unless I typed 'startx' on the console. So this is how I fixed it to always display the GUI on boot:
apt-get install xserver-xorg-video-fbdev nano /usr/share/X11/xorg.conf.d/99-fbdev.conf
Insert this in the file:
Section "Device" Identifier "piscreen" Driver "fbdev" Option "fbdev" "/dev/fb0" EndSection
At this point the screen should be displaying the Armbian GUI, with mouse and keyboard working, but without touch screen. Let's fix that.
Touch
First we need to download and compile the ads7846 driver (apparently it is compatible with xpt2046).
mkdir ds7846 cd ds7846 wget https://sourceforge.net/p/openipmi/linux-ipmi/ci/master/tree/drivers/input/touchscreen/ads7846.c?format=raw mv ads7846.c?format=raw ads7846.c nano Makefile
Insert the following on the makefile:
obj-m := ads7846.o KDIR := /lib/modules/$(shell uname -r)/build PWD := $(shell pwd) all: $(MAKE) -C $(KDIR) M=$(PWD) modules clean: $(MAKE) -C $(KDIR) M=$(PWD) clean install: $(MAKE) -C $(KDIR) M=$(PWD) modules_install
Now let's compile and load the module into the kernel:
make make install depmod
Now we'll build and install the ads7846_device module from fbtft_tools:
cd .. git clone https://github.com/notro/fbtft_tools/ cd fbtft_tools/ads7846_device make make install depmod
Let's load ads7846 and ads7846_device on boot
sudo nano /etc/modules-load.d/99-ads7846.conf
After that let's load the options for ads7846_device. These configs worked best for me, but you can play with them and tweak if needed.
nano /etc/modprobe.d/ads7846_device.conf
Insert the following:
options ads7846_device model=7846 cs=1 gpio_pendown=1 keep_vref_on=1 swap_xy=1 pressure_max=255 x_plate_ohms=60 x_min=200 x_max=3900 y_min=200 y_max=3900
Reboot, and the touch should be working!
Well, for me not entirely. The Y axis seemed to be reversed, so here are the steps I took to configure it:
First of all, we need xinput to configure the touch screen options. Install it with this command:
apt-get install xinput
Now we need to set the "swap_xy" option to 0 in ads7846_device configuration file. Open it with:
nano /etc/modprobe.d/ads7846_device.conf
Replace its contents with this:
options ads7846_device model=7846 cs=0 gpio_pendown=1 keep_vref_on=1 swap_xy=0 pressure_max=255 x_plate_ohms=60 x_min=200 x_max=3900 y_min=200 y_max=3900
Reboot to apply the changes. Now we need to find out the touchscreen name on xinput. Run this command:
DISPLAY=:0.0 xinput list
You should get a list of pointer devices, and the touchscreen should be on it. In my case the name is 'ADS7846 Touchscreen'. At this point you might get an "unable to connect to X server error". If that's the case, you can add the required X permissions for your user with the command (taken from this ask ubuntu answer):
export XAUTHORITY=$(eval echo ~`who | grep tty7 | sed 's/\([a-z]*\).*/\1/'`)/.Xauthority
And "xinput list" should be working. Now we can try to configure it with xinput's "set-prop" parameter:
DISPLAY=:0.0 xinput --set-prop 'ADS7846 Touchscreen' 'Coordinate Transformation Matrix' 0 -1 1 1 0 0 0 0 1
Test your display to see if it works. This matrix worked best for me, but you might need to tweak it. Refer to this guide for more info on how coordinate transformation matrices work.
Now you need to run this command every time the session starts. To automate it, I added the command to the .xsessionrc file:
nano /home/{your username}/.xsessionrc
Append the xinput set-prop command:
DISPLAY=:0.0 xinput --set-prop 'ADS7846 Touchscreen' 'Coordinate Transformation Matrix' 0 -1 1 1 0 0 0 0 1
If you have multiple users logging in the session displayed on your screen, you might need to add this file for every user. ".xsessionrc" was the only file where I could get this working.
And that's it! Your display + touch screen should be working properly now!
I am still very newbie with Armbian and single board computers, and there is much I don't understand yet, so if you have any questions, comments or suggestions on this guide please post them below. See you all.
-
Hey chwe, thanks for the replies! I will give Debian_stretch_next a try then when I have a little spare time.
Just so I can understand, both Debian_stretch_next and Debian_stretch_next_desktop are mainline, the only difference being the GUI?
I was under the impression that GUI images were legacy and CLI images were mainline.
I'll post the results as soon as I have something!
-
5 hours ago, chwe said:
is not mainline.. that's the old legacy kernel.
you might need to know which driver is needed for your display.. and which touchdriver...
Isn't legacy Armbian_5.38_Orangepipc_Ubuntu_xenial_default_3.4.113_desktop ? That's what I got from the download page.
In the box where the display came in there is a label that says "Driver: ILI9486", but from what I've seen this is a waveshare 3.5" display clone, and apparently it works with ADS7846 touch screen driver. The display itself worked with no problems by just configuring fbtft.
-
Greetings all.
I've bought an Orange Pi PC recently, along with this screen, and I wanted to make the touch screen work on it.
I have tried following this tutorial and this one, but so far I was only able to get the screen working.
Currently installed image is: Armbian_5.35_Orangepipc_Debian_jessie_default_3.4.113.
When I run `evtest` the only devices detected are `vmouse`, `sunxi-gpiokey` and `sunxi-ths`.
I tried installing a GUI with xorg, lightdm and xfce. To show the GUI on the display I am using the following command:
FRAMEBUFFER=/dev/fb8 startx
But touch still isn't working.
This is the output of armbianmonitor -u: http://ix.io/18t5
This is my armbianEnv.txt:
Spoilerverbosity=1
console=both
overlay_prefix=sun8i-h3
rootdev=UUID=4e480977-eceb-4d3c-a360-936d4336ded5
rootfstype=ext4
overlays=spi-spidev spi-add-cs1
param_spidev_spi_bus=0
param_spidev_spi_cs=1
usbstoragequirks=0x2537:0x1066:u,0x2537:0x1068:uThis is my orangepipc.fex
Spoiler[product] version = "100" machine = "Xunlong Orange Pi PC" [platform] debug_mode = 1 eraseflag = 1 next_work = 2 [target] boot_clock = 1008 storage_type = -1 [key_detect_en] keyen_flag = 0 [fel_key] fel_key_max = 7 fel_key_min = 2 [card_boot] logical_start = 40960 sprite_work_delay = 500 sprite_err_delay = 200 sprite_gpio0 = port:PL10<1><default><default><default> next_work = 3 [box_start_os] used = 1 start_type = 1 irkey_used = 1 pmukey_used = 1 pmukey_num = 3 led_power = 0 led_state = 0 [boot_init_gpio] used = 1 gpio0 = port:PL10<1><default><default><1> gpio1 = port:PG11<1><default><default><1> [recovery_para] used = 1 mode = 2 recovery_key = port:PL04<0><default><default><default> [pm_para] standby_mode = 1 [card0_boot_para] card_ctrl = 0 card_high_speed = 1 card_line = 4 sdc_d1 = port:PF00<2><1><2><default> sdc_d0 = port:PF01<2><1><2><default> sdc_clk = port:PF02<2><1><2><default> sdc_cmd = port:PF03<2><1><2><default> sdc_d3 = port:PF04<2><1><2><default> sdc_d2 = port:PF05<2><1><2><default> [card2_boot_para] card_ctrl = 2 card_high_speed = 1 card_line = 8 sdc_cmd = port:PC06<3><1><2><default> sdc_clk = port:PC05<3><1><2><default> sdc_d0 = port:PC08<3><1><2><default> sdc_d1 = port:PC09<3><1><2><default> sdc_d2 = port:PC10<3><1><2><default> sdc_d3 = port:PC11<3><1><2><default> sdc_d4 = port:PC12<3><1><2><default> sdc_d5 = port:PC13<3><1><2><default> sdc_d6 = port:PC14<3><1><2><default> sdc_d7 = port:PC15<3><1><2><default> sdc_2xmode = 1 sdc_ddrmode = 1 [twi_para] twi_port = 0 twi_scl = port:PA11<2><default><default><default> twi_sda = port:PA12<2><default><default><default> [uart_para] uart_debug_port = 0 uart_debug_tx = port:PA04<2><1><default><default> uart_debug_rx = port:PA05<2><1><default><default> [force_uart_para] force_uart_port = 0 force_uart_tx = port:PF02<3><1><default><default> force_uart_rx = port:PF04<3><1><default><default> [jtag_para] jtag_enable = 0 jtag_ms = port:PA00<3><default><default><default> jtag_ck = port:PA01<3><default><default><default> jtag_do = port:PA02<3><default><default><default> jtag_di = port:PA03<3><default><default><default> [clock] pll_video = 297 pll_ve = 402 pll_periph0 = 600 pll_gpu = 576 pll_periph1 = 600 pll_de = 864 [dram_para] dram_clk = 624 dram_type = 3 dram_zq = 0x3b3bfb dram_odt_en = 1 dram_para1 = 283377664 dram_para2 = 0 dram_mr0 = 6208 dram_mr1 = 64 dram_mr2 = 24 dram_mr3 = 2 dram_tpr0 = 0x48a192 dram_tpr1 = 0x1c2418d dram_tpr2 = 0x76051 dram_tpr3 = 0x0 dram_tpr4 = 0x0 dram_tpr5 = 0x0 dram_tpr6 = 0x64 dram_tpr7 = 0x0 dram_tpr8 = 0x0 dram_tpr9 = 0x0 dram_tpr10 = 0x0 dram_tpr11 = 0x6aaa0000 dram_tpr12 = 0x7979 dram_tpr13 = 0x800800 [wakeup_src_para] cpu_en = 0 cpu_freq = 48 pll_ratio = 273 dram_selfresh_en = 1 dram_freq = 36 wakeup_src0 = wakeup_src_wl = port:PG10<4><default><default><0> wakeup_src_bt = port:PL03<6><default><default><0> [twi0] twi_used = 1 twi_scl = port:PA11<2><default><default><default> twi_sda = port:PA12<2><default><default><default> [twi1] twi_used = 1 twi_scl = port:PA18<3><default><default><default> twi_sda = port:PA19<3><default><default><default> [twi2] twi_used = 0 twi_scl = port:PE12<3><default><default><default> twi_sda = port:PE13<3><default><default><default> [uart0] uart_used = 1 uart_port = 0 uart_type = 2 uart_tx = port:PA04<2><1><default><default> uart_rx = port:PA05<2><1><default><default> [uart1] uart_used = 0 uart_port = 1 uart_type = 4 uart_tx = port:PG06<2><1><default><default> uart_rx = port:PG07<2><1><default><default> uart_rts = port:PG08<2><1><default><default> uart_cts = port:PG09<2><1><default><default> [uart2] uart_used = 0 uart_port = 2 uart_type = 4 uart_tx = port:PA00<2><1><default><default> uart_rx = port:PA01<2><1><default><default> uart_rts = port:PA02<2><1><default><default> uart_cts = port:PA03<2><1><default><default> [uart3] uart_used = 0 uart_port = 3 uart_type = 4 uart_tx = port:PA13<3><1><default><default> uart_rx = port:PA14<3><1><default><default> uart_rts = port:PA15<3><1><default><default> uart_cts = port:PA16<3><1><default><default> [spi0] spi_used = 1 spi_cs_bitmap = 1 spi_mosi = port:PC00<3><default><default><default> spi_miso = port:PC01<3><default><default><default> spi_sclk = port:PC02<3><default><default><default> spi_cs0 = port:PC03<3><1><default><default> [spi1] spi_used = 1 spi_cs_bitmap = 1 spi_cs0 = port:PA13<2><1><default><default> spi_sclk = port:PA14<2><default><default><default> spi_mosi = port:PA15<2><default><default><default> spi_miso = port:PA16<2><default><default><default> [spi_devices] spi_dev_num = 2 [spi_board0] modalias = "spidev" max_speed_hz = 33000000 bus_num = 0 chip_select = 0 mode = 0 full_duplex = 1 manual_cs = 0 [spi_board1] modalias = "spidev" max_speed_hz = 33000000 bus_num = 2 chip_select = 0 mode = 0 full_duplex = 1 manual_cs = 0 [gpio_para] gpio_used = 0 gpio_num = 0 [leds_para] leds_used = 1 green_led = port:PL10<1><default><default><1> green_led_active_low = 0 red_led = port:PA15<1><default><default><0> red_led_active_low = 0 [ths_para] ths_used = 1 ths_trip1_count = 6 ths_trip1_0 = 75 ths_trip1_1 = 80 ths_trip1_2 = 85 ths_trip1_3 = 90 ths_trip1_4 = 95 ths_trip1_5 = 105 ths_trip1_6 = 0 ths_trip1_7 = 0 ths_trip1_0_min = 0 ths_trip1_0_max = 1 ths_trip1_1_min = 1 ths_trip1_1_max = 2 ths_trip1_2_min = 2 ths_trip1_2_max = 3 ths_trip1_3_min = 3 ths_trip1_3_max = 4 ths_trip1_4_min = 4 ths_trip1_4_max = 8 ths_trip1_5_min = 8 ths_trip1_5_max = 8 ths_trip1_6_min = 0 ths_trip1_6_max = 0 ths_trip2_count = 1 ths_trip2_0 = 105 [cooler_table] cooler_count = 9 cooler0 = "1296000 4 4294967295 0" cooler1 = "1200000 4 4294967295 0" cooler2 = "1008000 4 4294967295 0" cooler3 = "816000 4 4294967295 0" cooler4 = "648000 4 4294967295 0" cooler5 = "480000 4 4294967295 0" cooler6 = "480000 3 4294967295 0" cooler7 = "480000 2 4294967295 0" cooler8 = "480000 1 4294967295 0" [nand0_para] nand_support_2ch = 0 nand0_used = 0 nand0_we = port:PC00<2><default><default><default> nand0_ale = port:PC01<2><default><default><default> nand0_cle = port:PC02<2><default><default><default> nand0_ce1 = port:PC03<2><default><default><default> nand0_ce0 = port:PC04<2><default><default><default> nand0_nre = port:PC05<2><default><default><default> nand0_rb0 = port:PC06<2><default><default><default> nand0_rb1 = port:PC07<2><default><default><default> nand0_d0 = port:PC08<2><default><default><default> nand0_d1 = port:PC09<2><default><default><default> nand0_d2 = port:PC10<2><default><default><default> nand0_d3 = port:PC11<2><default><default><default> nand0_d4 = port:PC12<2><default><default><default> nand0_d5 = port:PC13<2><default><default><default> nand0_d6 = port:PC14<2><default><default><default> nand0_d7 = port:PC15<2><default><default><default> nand0_ndqs = port:PC16<2><default><default><default> [boot_disp] advert_disp = 0 auto_hpd = 1 output_type = 4 hdmi_channel = 0 hdmi_mode = 4 cvbs_channel = 1 cvbs_mode = 11 output_full = 1 hdmi_mode_check = 1 [disp_init] disp_init_enable = 1 disp_mode = 0 screen0_output_type = 3 screen0_output_mode = 5 screen1_output_type = 3 screen1_output_mode = 5 fb0_format = 0 fb0_width = 0 fb0_height = 0 fb1_format = 0 fb1_width = 0 fb1_height = 0 [hdmi_para] hdmi_used = 1 hdmi_power = "vcc-hdmi-18" [tv_para] tv_used = 0 tv_dac_used = 1 tv_dac_src0 = 0 [pwm0_para] pwm_used = 0 pwm_positive = port:PA05<3><0><default><default> [gmac0] gmac_used = 2 gmac_power1 = [csi0] vip_used = 1 vip_mode = 0 vip_dev_qty = 1 vip_define_sensor_list = 0 vip_csi_pck = port:PE00<2><default><default><default> vip_csi_mck = port:PE01<2><default><default><default> vip_csi_hsync = port:PE02<2><default><default><default> vip_csi_vsync = port:PE03<2><default><default><default> vip_csi_d0 = port:PE04<2><default><default><default> vip_csi_d1 = port:PE05<2><default><default><default> vip_csi_d2 = port:PE06<2><default><default><default> vip_csi_d3 = port:PE07<2><default><default><default> vip_csi_d4 = port:PE08<2><default><default><default> vip_csi_d5 = port:PE09<2><default><default><default> vip_csi_d6 = port:PE10<2><default><default><default> vip_csi_d7 = port:PE11<2><default><default><default> vip_csi_sck = port:PE12<2><default><default><default> vip_csi_sda = port:PE13<2><default><default><default> vip_dev0_mname = "gc2035" vip_dev0_pos = "front" vip_dev0_lane = 1 vip_dev0_twi_id = 2 vip_dev0_twi_addr = 120 vip_dev0_isp_used = 0 vip_dev0_fmt = 0 vip_dev0_stby_mode = 0 vip_dev0_vflip = 1 vip_dev0_hflip = 1 vip_dev0_iovdd = "" vip_dev0_iovdd_vol = 2800000 vip_dev0_avdd = "" vip_dev0_avdd_vol = 2800000 vip_dev0_dvdd = "" vip_dev0_dvdd_vol = 1800000 vip_dev0_afvdd = "" vip_dev0_afvdd_vol = 2800000 vip_dev0_power_en = port:PA17<1><default><default><1> vip_dev0_reset = port:PE14<1><default><default><1> vip_dev0_pwdn = port:PE15<1><default><default><0> vip_dev0_flash_en = vip_dev0_flash_mode = vip_dev0_af_pwdn = vip_dev0_act_used = 0 vip_dev0_act_name = "ad5820_act" vip_dev0_act_slave = 24 vip_dev1_mname = "" vip_dev1_pos = "rear" vip_dev1_lane = 1 vip_dev1_twi_id = 0 vip_dev1_twi_addr = vip_dev1_isp_used = 0 vip_dev1_fmt = 1 vip_dev1_stby_mode = 0 vip_dev1_vflip = 0 vip_dev1_hflip = 0 vip_dev1_iovdd = "" vip_dev1_iovdd_vol = 2800000 vip_dev1_avdd = "" vip_dev1_avdd_vol = 2800000 vip_dev1_dvdd = "" vip_dev1_dvdd_vol = 1500000 vip_dev1_afvdd = "" vip_dev1_afvdd_vol = 2800000 vip_dev1_power_en = vip_dev1_reset = vip_dev1_pwdn = vip_dev1_flash_en = vip_dev1_flash_mode = vip_dev1_af_pwdn = [tvout_para] tvout_used = 0 tvout_channel_num = tv_en = 0 [tvin_para] tvin_used = 0 tvin_channel_num = [di_para] di_used = 1 [mmc0_para] sdc_used = 1 sdc_detmode = 3 sdc_buswidth = 4 sdc_clk = port:PF02<2><1><2><default> sdc_cmd = port:PF03<2><1><2><default> sdc_d0 = port:PF01<2><1><2><default> sdc_d1 = port:PF00<2><1><2><default> sdc_d2 = port:PF05<2><1><2><default> sdc_d3 = port:PF04<2><1><2><default> sdc_det = port:PF06<0><1><2><default> sdc_use_wp = 0 sdc_wp = sdc_isio = 0 sdc_regulator = "none" sdc_power_supply = "none" [mmc1_para] sdc_used = 1 sdc_detmode = 4 sdc_buswidth = 4 sdc_clk = port:PG00<2><1><3><default> sdc_cmd = port:PG01<2><1><3><default> sdc_d0 = port:PG02<2><1><3><default> sdc_d1 = port:PG03<2><1><3><default> sdc_d2 = port:PG04<2><1><3><default> sdc_d3 = port:PG05<2><1><3><default> sdc_det = sdc_use_wp = 0 sdc_wp = sdc_isio = 1 sdc_regulator = "none" sdc_power_supply = "none" sdc_2xmode = 1 sdc_ddrmode = 1 [mmc2_para] sdc_used = 0 sdc_detmode = 3 sdc_buswidth = 8 sdc_clk = port:PC05<3><1><2><default> sdc_cmd = port:PC06<3><1><2><default> sdc_d0 = port:PC08<3><1><2><default> sdc_d1 = port:PC09<3><1><2><default> sdc_d2 = port:PC10<3><1><2><default> sdc_d3 = port:PC11<3><1><2><default> sdc_d4 = port:PC12<3><1><2><default> sdc_d5 = port:PC13<3><1><2><default> sdc_d6 = port:PC14<3><1><2><default> sdc_d7 = port:PC15<3><1><2><default> emmc_rst = port:PC16<3><1><2><default> sdc_det = sdc_use_wp = 0 sdc_wp = sdc_isio = 0 sdc_regulator = "none" sdc_power_supply = "none" sdc_2xmode = 1 sdc_ddrmode = 1 [smc_para] smc_used = 0 smc_rst = port:PA09<2><default><default><default> smc_vppen = port:PA20<3><default><default><default> smc_vppp = port:PA21<3><default><default><default> smc_det = port:PA10<2><default><default><default> smc_vccen = port:PA06<2><default><default><default> smc_sck = port:PA07<2><default><default><default> smc_sda = port:PA08<2><default><default><default> [usbc0] usb_used = 1 usb_port_type = 2 usb_detect_type = 0 usb_id_gpio = port:PG12<0><1><default><default> usb_det_vbus_gpio = port:PG12<0><1><default><default> usb_drv_vbus_gpio = port:PL02<1><0><default><0> usb_host_init_state = 1 usb_restrict_gpio = usb_restric_flag = 0 usb_restric_voltage = 3550000 usb_restric_capacity = 5 usb_regulator_io = "nocare" usb_regulator_vol = 0 usb_not_suspend = 0 [usbc1] usb_used = 1 usb_drv_vbus_gpio = usb_restrict_gpio = usb_host_init_state = 1 usb_restric_flag = 0 usb_regulator_io = "nocare" usb_regulator_vol = 0 usb_not_suspend = 0 [usbc2] usb_used = 1 usb_drv_vbus_gpio = usb_restrict_gpio = usb_host_init_state = 1 usb_restric_flag = 0 usb_regulator_io = "nocare" usb_regulator_vol = 0 usb_not_suspend = 0 [usbc3] usb_used = 1 usb_drv_vbus_gpio = usb_restrict_gpio = usb_host_init_state = 1 usb_restric_flag = 0 usb_regulator_io = "nocare" usb_regulator_vol = 0 usb_not_suspend = 0 [usb_feature] vendor_id = 6353 mass_storage_id = 1 adb_id = 2 manufacturer_name = "USB Developer" product_name = "Android" serial_number = "20080411" [msc_feature] vendor_name = "USB 2.0" product_name = "USB Flash Driver" release = 100 luns = 3 [serial_feature] serial_unique = 0 [module_para] module_num = 7 module_power0 = "vcc-wifi-33" module_power0_vol = 0 module_power1 = module_power1_vol = module_power2 = module_power2_vol = module_power3 = module_power3_vol = chip_en = lpo_use_apclk = [wifi_para] wifi_used = 0 wifi_sdc_id = 1 wifi_usbc_id = 5 wifi_usbc_type = 1 wl_reg_on = port:PL07<1><default><default><0> wl_host_wake = port:PG10<0><default><default><0> wl_host_wake_invert = 0 [bt_para] bt_used = 0 bt_uart_id = 1 bt_rst_n = bt_wake = bt_host_wake = bt_host_wake_invert = 0 [pcm0] daudio_used = 0 daudio_master = 4 daudio_select = 1 audio_format = 1 signal_inversion = 1 mclk_fs = 128 sample_resolution = 16 slot_width_select = 32 pcm_lrck_period = 32 pcm_lrckr_period = 1 msb_lsb_first = 0 sign_extend = 0 slot_index = 0 slot_width = 32 frame_width = 0 tx_data_mode = 0 rx_data_mode = 0 i2s_mclk = port:PA18<2><1><default><default> i2s_bclk = port:PA19<2><1><default><default> i2s_dout0 = port:PA20<2><1><default><default> i2s_din = port:PA21<2><1><default><default> [pcm1] daudio_used = 0 daudio_master = 4 daudio_select = 1 audio_format = 1 signal_inversion = 1 mclk_fs = 128 sample_resolution = 16 slot_width_select = 32 pcm_lrck_period = 32 pcm_lrckr_period = 1 msb_lsb_first = 0 sign_extend = 0 slot_index = 0 slot_width = 32 frame_width = 0 tx_data_mode = 0 rx_data_mode = 0 i2s_mclk = port:PG10<2><1><default><default> i2s_bclk = port:PG11<2><1><default><default> i2s_dout0 = port:PG12<2><1><default><default> i2s_din = port:PG13<2><1><default><default> [audio0] audio_used = 1 lineout_vol = 31 cap_vol = 5 audio_hp_ldo = "none" adcagc_used = 0 adcdrc_used = 0 dacdrc_used = 0 adchpf_used = 0 dachpf_used = 0 audio_pa_ctrl = port:PA16<1><default><default><0> [spdif0] spdif_used = 0 spdif_dout = port:PA17<2><1><default><default> [audiohub] hub_used = 0 codec_used = 1 spdif_used = 1 hdmi_used = 1 [s_cir0] ir_used = 1 ir_rx = port:PL11<2><1><default><default> ir_power_key_code0 = 87 ir_addr_code0 = 40704 ir_power_key_code1 = 26 ir_addr_code1 = 64260 ir_power_key_code2 = 20 ir_addr_code2 = 32640 ir_power_key_code3 = 21 ir_addr_code3 = 32640 ir_power_key_code4 = 11 ir_addr_code4 = 63240 ir_power_key_code5 = 3 ir_addr_code5 = 239 ir_power_key_code6 = 159 ir_addr_code6 = 19635 ir_power_key_code7 = 10 ir_addr_code7 = 30536 ir_power_key_code8 = 69 ir_addr_code8 = 48386 ir_power_key_code9 = 77 ir_addr_code9 = 56865 ir_power_key_code10 = 24 ir_addr_code10 = 65025 ir_power_key_code11 = 87 ir_addr_code11 = 65280 ir_power_key_code12 = 77 ir_addr_code12 = 65344 [cir] ir_used = 1 ir_tx = port:PH07<2><default><default><default> [dvfs_table] pmuic_type = 2 pmu_gpio0 = port:PL06<1><1><2><1> pmu_level0 = 11300 pmu_level1 = 1100 extremity_freq = 1296000000 max_freq = 1200000000 min_freq = 480000000 LV_count = 7 LV1_freq = 1296000000 LV1_volt = 1320 LV2_freq = 1200000000 LV2_volt = 1240 LV3_freq = 1104000000 LV3_volt = 1180 LV4_freq = 1008000000 LV4_volt = 1140 LV5_freq = 960000000 LV5_volt = 1080 LV6_freq = 816000000 LV6_volt = 1020 LV7_freq = 480000000 LV7_volt = 980 [gpu_dvfs_table] G_LV_count = 3 G_LV0_freq = 312000000 G_LV0_volt = 1200000 G_LV1_freq = 384000000 G_LV1_volt = 1200000 G_LV2_freq = 456000000 G_LV2_volt = 1200000 [Vdevice] Vdevice_used = 0 Vdevice_0 = port:PH10<5><1><2><default> Vdevice_1 = port:PH11<5><1><2><default> [s_uart0] s_uart_used = 0 s_uart_tx = port:PL02<2><default><default><default> s_uart_rx = port:PL03<2><default><default><default> [s_rsb0] s_rsb_used = 1 s_rsb_sck = port:PL00<2><1><2><default> s_rsb_sda = port:PL01<2><1><2><default> [s_jtag0] s_jtag_used = 0 s_jtag_tms = port:PL04<2><1><2><default> s_jtag_tck = port:PL05<2><1><2><default> s_jtag_tdo = port:PL06<2><1><2><default> s_jtag_tdi = port:PL07<2><1><2><default> [s_powchk] s_powchk_used = -2147483648 s_power_reg = 0 s_system_power = 50 [sim0] scr_used = 0 scr_vccen = port:PA06<2><default><default><default> scr_slk = port:PA07<2><default><default><default> scr_sda = port:PA08<2><default><default><default> scr_rst = port:PA09<2><default><default><default> scr_det = port:PA10<2><default><default><default> [ts0] tsc_used = 0 tsc_clk = port:PE00<3><default><default><default> tsc_err = port:PE01<3><default><default><default> tsc_sync = port:PE02<3><default><default><default> tsc_dvld = port:PE03<3><default><default><default> tsc_d0 = port:PE04<3><default><default><default> tsc_d1 = port:PE05<3><default><default><default> tsc_d2 = port:PE06<3><default><default><default> tsc_d3 = port:PE07<3><default><default><default> tsc_d4 = port:PE08<3><default><default><default> tsc_d5 = port:PE09<3><default><default><default> tsc_d6 = port:PE10<3><default><default><default> tsc_d7 = port:PE11<3><default><default><default> [gpio_power_key] key_used = 1 key_io = port:PL03<6><default><default><0> [key_para] key_used = 0 key_cnt = 5 key1_vol = 222 key2_vol = 444 key3_vol = 666 key4_vol = 857 key5_vol = 2000 [d7s_para] d7s_used = 0 din_gpio = port:PD00<1><default><default><1> clk_gpio = port:PD01<1><default><default><1> stb_gpio = port:PD02<1><default><default><1> [mali_para] mali_used = 1 mali_clkdiv = 1 mali_extreme_freq = 600 mali_extreme_vol = 1400 [w1_para] w1_used = 1 gpio = 20 [corekeeper] corekeeper_enabled = 1
And this is the output of `ls /dev/`. I believe there should be /dev/spi0.0 listed, but there isn't.
Spoilerapm_bios audio audio1 autofs block bsg btrfs-control bus cachefiles cedar_dev char console cpu_dma_latency cuse disk disp dsp dsp1 fb0 fb1 fb2 fb3 fb4 fb5 fb6 fb7 fb8 fd full fuse hdmi i2c-0 i2c-1 initctl input ion kmsg log loop0 loop1 loop2 loop3 loop4 loop5 loop6 loop7 loop-control mapper mem misc_fatfs mmcblk0 mmcblk0p1 mqueue net network_latency network_throughput null ppp psaux ptmx pts ram0 ram1 ram2 ram3 ram4 ram5 ram6 ram7 random rfkill rtc rtc0 sda shm snd stderr stdin stdout sunxi-reg sunxi_soc_info tty tty0 tty1 tty10 tty11 tty12 tty13 tty14 tty15 tty16 tty17 tty18 tty19 tty2 tty20 tty21 tty22 tty23 tty24 tty25 tty26 tty27 tty28 tty29 tty3 tty30 tty31 tty32 tty33 tty34 tty35 tty36 tty37 tty38 tty39 tty4 tty40 tty41 tty42 tty43 tty44 tty45 tty46 tty47 tty48 tty49 tty5 tty50 tty51 tty52 tty53 tty54 tty55 tty56 tty57 tty58 tty59 tty6 tty60 tty61 tty62 tty63 tty7 tty8 tty9 ttyS0 tv uhid uinput urandom usbdev1.1 usbdev2.1 usbdev3.1 usbdev4.1 usbdev4.3 usbdev5.1 usbdev6.1 usbdev7.1 usbdev8.1 vcs vcs1 vcs2 vcs3 vcs4 vcs5 vcs6 vcs7 vcsa vcsa1 vcsa2 vcsa3 vcsa4 vcsa5 vcsa6 vcsa7 vmouse watchdog xconsole zero
I believe that is all. If I forgot to add some info please tell me and I'll try to get it right away.Thanks in advance for your attention.
[Solved] Cannot make 3.5" TFT Screen touch work on Orange Pi PC (Mainline Kernel)
in Allwinner sunxi
Posted
Hey @chwe, thanks for the detailed answer! I was having a hard time trying to understand the difference between mainlike and kernel, with their desktop / cli versions, but you explained it very clearly.
I managed to get the display working after a while. I've detailed my steps in this thread. Thanks a lot for your help and attention!