notro / fbtft

Linux Framebuffer drivers for small TFT LCD display modules. Development has moved to https://git.kernel.org/cgit/linux/kernel/git/gregkh/staging.git/tree/drivers/staging/fbtft?h=staging-testing
1.86k stars 494 forks source link

Driver support for Adafruit 1.5" SPI OLED? #313

Closed rasmushauschild closed 8 years ago

rasmushauschild commented 9 years ago

Hi, I'm working on a Raspberry Pi project featuring this small OLED ( https://www.adafruit.com/product/1431 ). I can't seem to find any driver for this display for the Raspberry pi, but when I asked on the Raspberry Pi forum I was told, that your driver would have support for my screen. Is this correct? If so then what device name should I use in the setup of the driver? Otherwise could you add support for this OLED? Or could I add it myself?

Thanks in advance, Rasmus

notro commented 9 years ago

That display is not supported directly.

Add to /boot/config.txt:

dtparam=spi=on

Try this:

sudo modprobe fbtft_device name=pioled

See here for the default values (gpio): http://lxr.free-electrons.com/source/drivers/staging/fbtft/fbtft_device.c#L764

https://github.com/notro/fbtft/wiki/fbtft_device#usage

rasmushauschild commented 9 years ago

Hi Notro, when I do as you say, and the oled is connected i get this error message: FATAL: module pioled not found. Do you know what I should do? Best regards Rasmus

notro commented 9 years ago

pioled is not the module, it's the value of the name parameter

rasmushauschild commented 9 years ago

What then is the module called? Also I haven't heard about parameters, could you please explain it for me? Thank you so much for your help!

notro commented 9 years ago

As I wrote previously:

modprobe fbtft_device name=pioled

fbtft_device is the module, name is the module parameter.

rasmushauschild commented 9 years ago

I follow circuit basics tutorial ( http://www.circuitbasics.com/setup-lcd-touchscreen-raspberry-pi/#comment-706 ) and in step 4 it tells you to copy and paste a block of text from the tutorial itself into /etc/modules. In that block of text it says waveshare32b multiple times.The tutorial tells you to replace that with the name of your own screen. What name should I put there? Or shouldn't I follow that tutorial? Thanks again

notro commented 9 years ago

The following steps are the only ones necessary to test the display on a plain Raspian installation:

Add this to /boot/config.txt to enable the SPI controller driver:

dtparam=spi=on

Reboot

Load the pioled fbtft device (Linux will autoload the necessary driver):

$ sudo modprobe fbtft_device name=pioled

# You will get a 'graphics fb1: ...' message in the kernel log
$ dmesg | tail

# The framebuffer is present
$ ls -l /dev/fb1

# Show modules
$ lsmod
fb_ssd1351
fbtft
fbtft_device
...

Redirect the console from hdmi to this new framebuffer:

$ con2fbmap 1
console 1 is mapped to framebuffer 0
$ con2fbmap 1 1
$ con2fbmap 1
console 1 is mapped to framebuffer 1

If you don't get anything on the display, either wiring or the init sequence is wrong.

rasmushauschild commented 9 years ago

If I would do it on an instalation on retropie is the process the same then? Also about the wiring, is there a specific way following connections of the screen should be conncted to the Raspberry pis gpio pins? Here's the connections of my screen: MOSI MISO SCK OLECS DC RESET Thank you for your help

notro commented 9 years ago

If I would do it on an instalation on retropie is the process the same then?

Yes.

MOSI -> MOSI
MISO - not needed
SCK -> SCLK
OLECS -> CE0
DC -> GPIO25
RESET -> GPIO24
rasmushauschild commented 9 years ago

Thank you so much, I'll try that tomorrow :)

rasmushauschild commented 9 years ago

It didn't work. If I have a completely fresh install of raspbian do I then just Follow your steps above, or are there more to do? Could you leave me with just a link, or a short guide? Thank you in advance

notro commented 9 years ago

I guess Adafruit has an Arduino library for the display. Check the init sequence in that library against http://lxr.free-electrons.com/source/drivers/staging/fbtft/fb_ssd1351.c#L26

Similar display https://www.raspberrypi.org/forums/viewtopic.php?f=41&t=78636

You could also port the arduino library to the pi and see if you can get it working from userspace. It did that once with a display it couldn't get working with fbtft. Or see if someone already has done that.

rasmushauschild commented 9 years ago

The similar oled you linked to is almost identical to mine! :) If I knew how to, I could probably get it working, but again I don't know any guide or tutorial. :( Do you know any? Thanks in advance

notro commented 9 years ago

I don't know what kind of guide you're looking for, but I would have run these 3 commands and see if I got a console login on the display:

$ sudo modprobe fbtft_device custom name=fb_ssd1351 buswidth=8 gpios=reset:24,dc:25 speed=10000000 width=128 height=96 bgr=1 init=-1,0xFD,0x12,-1,0xFD,0xB1,-1,0xAE,-1,0xB3,0xF1,-1,0xCA,127,-1,0xA0,0x74,-1,0x15,0x00,0x7F,-1,0x75,0x00,0x7F,-1,0xA1,96,-1,0xA2,0x0,-1,0xB5,0x00,-1,0xAB,0x01,-1,0xB1,0x32,-1,0xBE,0x05,-1,0xA6,-1,0xC1,0xC8,0x80,0xC8,-1,0xC7,0x0F,-1,0xB4,0xA0,0xB5,0x55,-1,0xB6,0x01,-1,0xAF,-3

# verify that the driver is loaded
$ dmesg | grep graphics
... graphics fb1: fb_ssd1351 ...

$ con2fbmap 1 1
rasmushauschild commented 9 years ago

When I do so nothing happens on the oled, but in the terminal/cmd prompt it does give some feedback, as shown in the attached image: skaermbillede 2015-09-04 kl 20 22 16 Do you know what I should do?

notro commented 9 years ago

I have run out of things to suggest.

rasmushauschild commented 9 years ago

As soon as I typed reboot the oled begun displaying the console! :) :) However as soon as it booted up again it was blank. Do you know what I could try now?

rasmushauschild commented 9 years ago

By the way, thank you so much for your enormous help! I really appreciate it! :)

rasmushauschild commented 9 years ago

Now it's functioning perfectly in the console! :) However when I type startx nothing happens on the oled. Also every time I reboot I have to type all three commands, that you posted above, to make the Pi display to the oled. How can I make the Pi display to the oled automatically, every time it boots up? Again, thank you so much for all your help! :)

notro commented 9 years ago

Remove sudo modprobe from the fbtft_device line and put the rest in /etc/modules. Now it will load on boot. X windows: Change to /dev/fb1 in /usr/share/X11/xorg.conf.d/99-fbturbo.conf

rasmushauschild commented 9 years ago

When I put the fbtft_device line in /etc/modules and then reboot it doesn't display on the oled automatically. First when i type con2fbmap 1 1. Can I fix this? The other part with the X windows works fine! :)

notro commented 9 years ago

https://github.com/notro/fbtft/wiki/Boot-console#enable-console

rasmushauschild commented 9 years ago

I'm not exactly sure where or what I should type, to make the oled load automatically. Sorry for being such a newbie. :) Also I noticed that the image on the screen is not placed correctly. When it displays the console of the Pi he top of the console is not at the top of the display but aound 3/4 up. However the bottom of the console is at the absolute top of the screen. I think it has something to do with the init of the fbtft_device line you posted above. The only thing I changed in that line was the height, which on my display is 128 instead of 96. Should I change more, if so the what? Thank you in advance

notro commented 9 years ago

Compare the init sequence from the library with the one you use. I see that one setting depends on height. https://github.com/adafruit/Adafruit-SSD1351-library/blob/master/Adafruit_SSD1351.cpp#L376

rasmushauschild commented 9 years ago

Everything works now! Only thing is that the screen is flickering, and making a weak buzzing sound when it displays the rasbian desktop. Do you know why?

notro commented 9 years ago

I remember someone having a buzzing sound on another oled and he adjusted some register setting. Have you verified that you are using the same init as the library?

rasmushauschild commented 9 years ago

I haven't verified it, but it does display the console properly.

rasmushauschild commented 9 years ago

Also if I try to insert the fbtft_device line on a retropie image it says: ERROR: could not insert 'fbtft_device': Invalid argument Should I do anything different when I'm working with retropie, or is the fbtft driver not installed yet?

notro commented 9 years ago

I have never used retropie, so I don't know which kernel they are using. What does cat /proc/version show?

rasmushauschild commented 9 years ago

It shows: Linux version 3.18.11+ (dc4@dc4-XPS13-9333) (gcc version 4.8.3 20140303 (prerelease) (crosstool-NG linaro-1.13.1+bzr2650 - Linaro GCC 2014.03) ) #781 PREEMPT Tue Apr 21 18:02:18 BST 2015

notro commented 9 years ago

That's a standard Pi kernel and it should have the fbtft drivers. Try modinfo fbtft_device If that fails, do you have the folder /lib/modules/3.18.11+/kernel/drivers/staging/fbtft?

rasmushauschild commented 9 years ago

When I type modinfo fbtft_device it says: filename: /lib/modules/3.18.11+/kernel/drivers/staging/fbtft/fbtft_device.ko license: GPL author: Noralf Tronnes description: Add a FBTFT device. srcversion: 42360D1CD0E72DEE0838538 depends: fbtft staging: Y intree: Y vermagic: 3.18.11+ preempt mod_unload modversions ARMv6 parm: name:Devicename (required). name=list => list all supported devices. (charp) parm: rotate:Angle to rotate display counter clockwise: 0, 90, 180, 270 (uint) parm: busnum:SPI bus number (default=0) (uint) parm: cs:SPI chip select (default=0) (uint) parm: speed:SPI speed (override device default) (uint) parm: mode:SPI mode (override device default) (int) parm: gpios:List of gpios. Comma separated with the form: reset:23,dc:24 (when overriding the default, all gpios must be specified) (charp) parm: fps:Frames per second (override driver default) (uint) parm: gamma:String representation of Gamma Curve(s). Driver specific. (charp) parm: txbuflen:txbuflen (override driver default) (int) parm: bgr:BGR bit (supported by some drivers). (int) parm: startbyte:Sets the Start byte used by some SPI displays. (uint) parm: custom:Add a custom display device. Use speed= argument to make it a SPI device, else platform_device (bool) parm: width:Display width, used with the custom argument (uint) parm: height:Display height, used with the custom argument (uint) parm: buswidth:Display bus width, used with the custom argument (uint) parm: init:Init sequence, used with the custom argument (array of int) parm: debug:level: 0-7 (the remaining 29 bits is for advanced usage) (ulong) parm: verbose:0 silent, >0 show gpios, >1 show devices, >2 show devices before (default=3) (uint)

Yes, I do have that folder. Inside are following files: fb_agm1264k-fl.ko fb_ili9320.ko fb_ili9486.ko fb_ssd1289.ko fbtft_device.ko fb_upd161704.ko fb_bd663474.ko fb_ili9325.ko fb_pcd8544.ko fb_ssd1306.ko fbtft.ko fb_watterott.ko fb_hx8340bn.ko fb_ili9340.ko fb_ra8875.ko fb_ssd1331.ko fb_tinylcd.ko flexfb.ko fb_hx8347d.ko fb_ili9341.ko fb_s6d02a1.ko fb_ssd1351.ko fb_tls8204.ko fb_hx8353d.ko fb_ili9481.ko fb_s6d1121.ko fb_st7735r.ko fb_uc1701.ko

notro commented 9 years ago

Ok, try loading fbtft_device manually: sudo modprobe fbtft_device ... Maybe the kernel log has anything more about the error: dmesg

rasmushauschild commented 9 years ago

When I try to load it manually it still says: ERROR: could not insert 'fbtft_device': Invalid argument

When I then type dmesg it says a lot, and down in the bottom it does say failed to register SPI device:

[ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Initializing cgroup subsys cpuacct [ 0.000000] Linux version 3.18.11+ (dc4@dc4-XPS13-9333) (gcc version 4.8.3 20140303 (prerelease) (crosstool-NG linaro-1.13.1+bzr2650 - Linaro GCC 2014.03) ) #781 PREEMPT Tue Apr 21 18:02:18 BST 2015 [ 0.000000] CPU: ARMv6-compatible processor [410fb767] revision 7 (ARMv7), cr=00c5387d [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache [ 0.000000] Machine model: Raspberry Pi Model B Plus [ 0.000000] cma: Reserved 8 MiB at 0x0f800000 [ 0.000000] Memory policy: Data cache writeback [ 0.000000] On node 0 totalpages: 65536 [ 0.000000] free_area_init_node: node 0, pgdat c083d364, node_mem_map cf5f4000 [ 0.000000] Normal zone: 512 pages used for memmap [ 0.000000] Normal zone: 0 pages reserved [ 0.000000] Normal zone: 65536 pages, LIFO batch:15 [ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768 [ 0.000000] pcpu-alloc: [0] 0 [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 65024 [ 0.000000] Kernel command line: dma.dmachans=0x7f35 bcm2708_fb.fbwidth=1920 bcm2708_fb.fbheight=1080 bcm2708.boardrev=0x10 bcm2708.serial=0xfd4e46dc smsc95xx.macaddr=B8:27:EB:4E:46:DC bcm2708_fb.fbswap=1 bcm2708.disk_led_gpio=47 bcm2708.disk_led_active_low=0 sdhci-bcm2708.emmc_clock_freq=250000000 vc_mem.mem_base=0x1ec00000 vc_mem.mem_size=0x20000000 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait [ 0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes) [ 0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes) [ 0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes) [ 0.000000] Memory: 242404K/262144K available (5881K kernel code, 348K rwdata, 1868K rodata, 336K init, 733K bss, 19740K reserved) [ 0.000000] Virtual kernel memory layout: [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB) [ 0.000000] fixmap : 0xffc00000 - 0xffe00000 (2048 kB) [ 0.000000] vmalloc : 0xd0800000 - 0xff000000 ( 744 MB) [ 0.000000] lowmem : 0xc0000000 - 0xd0000000 ( 256 MB) [ 0.000000] modules : 0xbf000000 - 0xc0000000 ( 16 MB) [ 0.000000] .text : 0xc0008000 - 0xc07997a0 (7750 kB) [ 0.000000] .init : 0xc079a000 - 0xc07ee000 ( 336 kB) [ 0.000000] .data : 0xc07ee000 - 0xc084513c ( 349 kB) [ 0.000000] .bss : 0xc084513c - 0xc08fc8a8 ( 734 kB) [ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 [ 0.000000] Preemptible hierarchical RCU implementation. [ 0.000000] NR_IRQS:522 [ 0.000025] sched_clock: 32 bits at 1000kHz, resolution 1000ns, wraps every 2147483648000ns [ 0.000074] Switching to timer-based delay loop, resolution 1000ns [ 0.000358] Console: colour dummy device 80x30 [ 0.001449] console [tty1] enabled [ 0.001495] Calibrating delay loop (skipped), value calculated using timer frequency.. 2.00 BogoMIPS (lpj=10000) [ 0.001570] pid_max: default: 32768 minimum: 301 [ 0.001942] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.002009] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.003014] Initializing cgroup subsys memory [ 0.003106] Initializing cgroup subsys devices [ 0.003165] Initializing cgroup subsys freezer [ 0.003219] Initializing cgroup subsys net_cls [ 0.003270] Initializing cgroup subsys blkio [ 0.003388] CPU: Testing write buffer coherency: ok [ 0.003501] ftrace: allocating 19232 entries in 57 pages [ 0.108314] Setting up static identity map for 0x553398 - 0x5533d0 [ 0.111174] devtmpfs: initialized [ 0.128710] VFP support v0.3: implementor 41 architecture 1 part 20 variant b rev 5 [ 0.131752] pinctrl core: initialized pinctrl subsystem [ 0.134444] NET: Registered protocol family 16 [ 0.139984] DMA: preallocated 4096 KiB pool for atomic coherent allocations [ 0.141462] bcm2708.uart_clock = 3000000 [ 0.144403] No ATAGs? [ 0.144467] hw-breakpoint: found 6 breakpoint and 1 watchpoint registers. [ 0.144529] hw-breakpoint: maximum watchpoint size is 4 bytes. [ 0.144594] mailbox: Broadcom VideoCore Mailbox driver [ 0.144756] bcm2708_vcio: mailbox at f200b880 [ 0.145215] bcm_power: Broadcom power driver [ 0.145270] bcm_power_open() -> 0 [ 0.145301] bcm_power_request(0, 8) [ 0.646018] bcm_mailbox_read -> 00000080, 0 [ 0.646069] bcm_power_request -> 0 [ 0.646283] Serial: AMBA PL011 UART driver [ 0.646527] dev:f1: ttyAMA0 at MMIO 0x20201000 (irq = 83, base_baud = 0) is a PL011 rev3 [ 1.035268] console [ttyAMA0] enabled [ 1.098553] SCSI subsystem initialized [ 1.102682] usbcore: registered new interface driver usbfs [ 1.108472] usbcore: registered new interface driver hub [ 1.113977] usbcore: registered new device driver usb [ 1.121230] Switched to clocksource stc [ 1.153508] FS-Cache: Loaded [ 1.156827] CacheFiles: Loaded [ 1.176108] NET: Registered protocol family 2 [ 1.182083] TCP established hash table entries: 2048 (order: 1, 8192 bytes) [ 1.189143] TCP bind hash table entries: 2048 (order: 1, 8192 bytes) [ 1.195792] TCP: Hash tables configured (established 2048 bind 2048) [ 1.202311] TCP: reno registered [ 1.205579] UDP hash table entries: 256 (order: 0, 4096 bytes) [ 1.211505] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) [ 1.218186] NET: Registered protocol family 1 [ 1.223298] RPC: Registered named UNIX socket transport module. [ 1.229269] RPC: Registered udp transport module. [ 1.234108] RPC: Registered tcp transport module. [ 1.238838] RPC: Registered tcp NFSv4.1 backchannel transport module. [ 1.246489] hw perfevents: enabled with armv6_1176 PMU driver, 3 counters available [ 1.254632] bcm2708_dma: DMA manager at f2007000 [ 1.259503] vc-mem: phys_addr:0x00000000 mem_base=0x1ec00000 mem_size:0x20000000(512 MiB) [ 1.269253] futex hash table entries: 256 (order: -1, 3072 bytes) [ 1.275746] audit: initializing netlink subsys (disabled) [ 1.281339] audit: type=2000 audit(1.040:1): initialized [ 1.302039] VFS: Disk quotas dquot_6.5.2 [ 1.306394] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes) [ 1.315885] FS-Cache: Netfs 'nfs' registered for caching [ 1.323081] NFS: Registering the id_resolver key type [ 1.328252] Key type id_resolver registered [ 1.332600] Key type id_legacy registered [ 1.338024] msgmni has been set to 489 [ 1.344438] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252) [ 1.352453] io scheduler noop registered [ 1.356438] io scheduler deadline registered (default) [ 1.362182] io scheduler cfq registered [ 1.368553] BCM2708FB: allocated DMA memory 4fc00000 [ 1.373862] BCM2708FB: allocated DMA channel 0 @ f2007000 [ 1.407531] Console: switching to colour frame buffer device 240x67 [ 1.435742] bcm2708-dmaengine bcm2708-dmaengine: Load BCM2835 DMA engine driver [ 1.443792] uart-pl011 dev:f1: no DMA platform data [ 1.448879] kgdb: Registered I/O driver kgdboc. [ 1.482129] vc-cma: Videocore CMA driver [ 1.486193] vc-cma: vc_cma_base = 0x00000000 [ 1.491007] vc-cma: vc_cma_size = 0x00000000 (0 MiB) [ 1.496672] vc-cma: vc_cma_initial = 0x00000000 (0 MiB) [ 1.516040] brd: module loaded [ 1.526508] loop: module loaded [ 1.530288] vchiq: vchiq_init_state: slot_zero = 0xcf800000, is_master = 0 [ 1.538333] Loading iSCSI transport class v2.0-870. [ 1.545112] usbcore: registered new interface driver smsc95xx [ 1.551466] dwc_otg: version 3.00a 10-AUG-2012 (platform bus) [ 1.757730] Core Release: 2.80a [ 1.761009] Setting default values for core params [ 1.766066] Finished setting default values for core params [ 1.972022] Using Buffer DMA mode [ 1.975467] Periodic Transfer Interrupt Enhancement - disabled [ 1.981563] Multiprocessor Interrupt Enhancement - disabled [ 1.987270] OTG VER PARAM: 0, OTG VER FLAG: 0 [ 1.991779] Dedicated Tx FIFOs mode [ 1.995802] WARN::dwc_otg_hcd_init:1047: FIQ DMA bounce buffers: virt = 0xcfc14000 dma = 0x4fc14000 len=9024 [ 2.005937] FIQ FSM acceleration enabled for : [ 2.005937] Non-periodic Split Transactions [ 2.005937] Periodic Split Transactions [ 2.005937] High-Speed Isochronous Endpoints [ 2.023037] dwc_otg: Microframe scheduler enabled [ 2.023157] WARN::hcd_init_fiq:412: FIQ on core 0 at 0xc03fad3c [ 2.029232] WARN::hcd_init_fiq:413: FIQ ASM at 0xc03fb014 length 36 [ 2.035657] WARN::hcd_init_fiq:438: MPHI regs_base at 0xd0806000 [ 2.041884] dwc_otg bcm2708_usb: DWC OTG Controller [ 2.046955] dwc_otg bcm2708_usb: new USB bus registered, assigned bus number 1 [ 2.054448] dwc_otg bcm2708_usb: irq 32, io mem 0x00000000 [ 2.066025] Init: Port Power? op_state=1 [ 2.075806] Init: Power Port (0) [ 2.085403] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 [ 2.098145] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 2.111371] usb usb1: Product: DWC OTG Controller [ 2.122189] usb usb1: Manufacturer: Linux 3.18.11+ dwc_otg_hcd [ 2.134156] usb usb1: SerialNumber: bcm2708_usb [ 2.145702] hub 1-0:1.0: USB hub found [ 2.155775] hub 1-0:1.0: 1 port detected [ 2.166431] dwc_otg: FIQ enabled [ 2.166458] dwc_otg: NAK holdoff enabled [ 2.166471] dwc_otg: FIQ split-transaction FSM enabled [ 2.166545] Module dwc_common_port init [ 2.167225] usbcore: registered new interface driver usb-storage [ 2.179788] mousedev: PS/2 mouse device common for all mice [ 2.192484] bcm2835-cpufreq: min=700000 max=700000 [ 2.203762] sdhci: Secure Digital Host Controller Interface driver [ 2.215883] sdhci: Copyright(c) Pierre Ossman [ 2.226422] DMA channels allocated for the MMC driver [ 2.271304] Load BCM2835 MMC driver [ 2.286961] sdhci-pltfm: SDHCI platform and OF driver helper [ 2.299316] ledtrig-cpu: registered to indicate activity on CPUs [ 2.313787] hidraw: raw HID events driver (C) Jiri Kosina [ 2.331051] usbcore: registered new interface driver usbhid [ 2.342696] usbhid: USB HID core driver [ 2.355101] TCP: cubic registered [ 2.365664] Indeed it is in host mode hprt0 = 00021501 [ 2.377777] Initializing XFRM netlink socket [ 2.401400] NET: Registered protocol family 17 [ 2.421540] Key type dns_resolver registered [ 2.438887] registered taskstats version 1 [ 2.449109] mmc0: host does not support reading read-only switch, assuming write-enable [ 2.481626] vc-sm: Videocore shared memory driver [ 2.494742] mmc0: new high speed SDHC card at address 0007

[ 2.528852] mmcblk0: mmc0:0007 SD32G 29.0 GiB [ 2.540559] [vc_sm_connected_init]: end - returning 0 [ 2.555221] mmcblk0: p1 p2 [ 2.581068] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null) [ 2.595959] VFS: Mounted root (ext4 filesystem) readonly on device 179:2. [ 2.621078] devtmpfs: mounted [ 2.631633] Freeing unused kernel memory: 336K (c079a000 - c07ee000) [ 2.651499] usb 1-1: new high-speed USB device number 2 using dwc_otg [ 2.664798] Indeed it is in host mode hprt0 = 00001101 [ 2.881851] usb 1-1: New USB device found, idVendor=0424, idProduct=9514 [ 2.895298] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 [ 2.912783] hub 1-1:1.0: USB hub found [ 2.924381] hub 1-1:1.0: 5 ports detected [ 3.211634] usb 1-1.1: new high-speed USB device number 3 using dwc_otg [ 3.342097] usb 1-1.1: New USB device found, idVendor=0424, idProduct=ec00 [ 3.370462] usb 1-1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 [ 3.399265] smsc95xx v1.0.4 [ 3.488991] smsc95xx 1-1.1:1.0 eth0: register 'smsc95xx' at usb-bcm2708_usb-1.1, smsc95xx USB 2.0 Ethernet, b8:27:eb:4e:46:dc [ 3.881613] usb 1-1.2: new low-speed USB device number 4 using dwc_otg [ 4.037172] usb 1-1.2: New USB device found, idVendor=0c40, idProduct=8000 [ 4.061452] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [ 4.091465] usb 1-1.2: Product: 2.4GHz receiver [ 4.118606] usb 1-1.2: Manufacturer: ELMCU [ 4.150045] input: ELMCU 2.4GHz receiver as /devices/platform/bcm2708_usb/usb1/1-1/1-1.2/1-1.2:1.0/0003:0C40:8000.0001/input/input0 [ 4.201783] hid-generic 0003:0C40:8000.0001: input,hidraw0: USB HID v1.11 Keyboard [ELMCU 2.4GHz receiver] on usb-bcm2708_usb-1.2/input0 [ 4.259527] input: ELMCU 2.4GHz receiver as /devices/platform/bcm2708_usb/usb1/1-1/1-1.2/1-1.2:1.1/0003:0C40:8000.0002/input/input1 [ 4.302123] hid-generic 0003:0C40:8000.0002: input,hidraw1: USB HID v1.11 Mouse [ELMCU 2.4GHz receiver] on usb-bcm2708_usb-1.2/input1 [ 4.725350] udevd[159]: starting version 175 [ 8.267193] random: nonblocking pool is initialized [ 11.052245] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null) [ 11.782774] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null) [ 13.317969] fbtft: module is from the staging directory, the quality is unknown, you have been warned. [ 13.348781] fbtft_device: module is from the staging directory, the quality is unknown, you have been warned. [ 13.370130] fbtft_device: SPI devices registered: [ 13.382503] fbtft_device: 'fb' Platform devices registered: [ 13.395353] fbtft_device: bcm2708_fb id=-1 pdata? no [ 13.407726] fbtft_device: spi_busnum_to_master(0) returned NULL [ 13.421496] fbtft_device: failed to register SPI device [ 22.922418] smsc95xx 1-1.1:1.0 eth0: hardware isn't capable of remote wakeup [ 24.511008] smsc95xx 1-1.1:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0xCDE1 [ 32.810090] Adding 102396k swap on /var/swap. Priority:-1 extents:1 across:102396k SSFS [ 33.512731] Bluetooth: Core ver 2.19 [ 33.515460] NET: Registered protocol family 31 [ 33.515499] Bluetooth: HCI device and connection manager initialized [ 33.515557] Bluetooth: HCI socket layer initialized [ 33.515588] Bluetooth: L2CAP socket layer initialized [ 33.515672] Bluetooth: SCO socket layer initialized [ 33.615711] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 [ 33.615754] Bluetooth: BNEP filters: protocol multicast [ 33.615814] Bluetooth: BNEP socket layer initialized [ 33.618400] Bluetooth: RFCOMM TTY layer initialized [ 33.618487] Bluetooth: RFCOMM socket layer initialized [ 33.618547] Bluetooth: RFCOMM ver 1.11 [ 62.268922] fbtft_device: module is from the staging directory, the quality is unknown, you have been warned. [ 62.279945] fbtft_device: SPI devices registered: [ 62.280019] fbtft_device: 'fb' Platform devices registered: [ 62.280229] fbtft_device: bcm2708_fb id=-1 pdata? no [ 62.280368] fbtft_device: spi_busnum_to_master(0) returned NULL [ 62.280388] fbtft_device: failed to register SPI device

notro commented 9 years ago

Oh, you haven't enabled spi: dtparam=spi=on

rasmushauschild commented 9 years ago

Oh, sorry for being so helpless :) Now it does display the console, but it wont display the GUI. I have corrected /dev/fb0 to /dev/fb1, so I don't know what it could be, do you?

notro commented 9 years ago

It depends on what you mean with gui. You have to use fbcp to sync/copy fb0 to fb1 for most emulators: https://www.raspberrypi.org/forums/viewtopic.php?p=622842#p622842

rasmushauschild commented 9 years ago

If GUI I means EmulationStation and emulators?

notro commented 9 years ago

If they use opengl, you have to use fbcp. https://github.com/notro/fbtft/wiki/Framebuffer-use#framebuffer-mirroring

rasmushauschild commented 9 years ago

Ok, do you know if the instalation process is identical or similar to fbtft? Also will I be able to use the same fbtft_device line?

notro commented 9 years ago

You use fbcp together with fbtft. fbtft are kernel drivers that, on the Pi, creates a framebuffer /dev/fb1. bcm2708_fb (hdmi) creates /dev/fb0, and has hw accel.

fbcp is an userspace application that takes snapshots of /dev/fb0 every 25ms and copies it to /dev/fb1. So fb1 displays the same as fb0.

I haven't used fbcp myself, apart from testing it.

rasmushauschild commented 9 years ago

Ok, thank you so much for all the help, I really appreciate it! Can I still get help from you with installing fbcp, or should I ask somewhere else? Best regards Rasmus

notro commented 9 years ago

It would be better to ask about that in the pi forums. Most likely someone there has already setup fbcp with retropie.

rasmushauschild commented 9 years ago

That's fine, thanks again :)

cosmikwolf commented 8 years ago

do you guys have any more info about buzzing with the SSD1351? I am experiencing that with an Arduino and I was hoping you guys had some more breadcrumbs I could follow!