maemo.org - Talk

maemo.org - Talk (https://talk.maemo.org/index.php)
-   Nokia N900 (https://talk.maemo.org/forumdisplay.php?f=44)
-   -   [WIP]Raspberry Pi as USB HDMI-out (via USB Networking) (https://talk.maemo.org/showthread.php?t=81408)

Estel 2012-01-07 01:53

[WIP]Raspberry Pi as USB HDMI-out (via USB Networking)
 
Update:
Sulu did some nice research on this topic, and proposed most efficient (up to date) approach - connect N900 and Raspberry Pi using so-called PC Suite mode, and mount N900 partitions (*every* partition we feel fancy) from Debian (or any other Linux-based distro we feel fancy, but Debian seems first choice due to Maemo being based on it, and EasyDebian) installed on Raspberry Pi. This also allow us to share N900's WiFi and cellular network, then either use programs bins from N900 itself (would require first-time special preparation on Raspberry Pi, but architecture is same, so should be doable), or just hassle-free 'clone' set of required programs installed on Pi.

This way, we would have (working simultaneously) N900 without *any* CPU/RAM extensive overhead, and programs working on our N900's files, run through Raspberry Pi and displayed on big screen. Of course, N900's partitions would be accessed simultaneously by both N900 and Pi, so we can even multitask to the point of having one thing displayed on big screen (lets say, movie, game, or photo slideshow active for kids/family), and another things running on our N900 (so, we can actually do productive things like hacking something in meantime ;) ).

The only drawback is that we would not be able to use Maemo programs (as opposed to EasyDebian ones) this way (ho ever, there are some ideas for possible 'proper' workaround). Dirty workaround for that, is to use VNC with DisplayLink protocol used, as proposed by javispedro in his post:
http://talk.maemo.org/showpost.php?p...3&postcount=32

Of course, this whole approach mean that we can - if needed - actually benefit from MPU/RAM/etc resources of both N900 and Raspberry Pi, as totally exclusive multitasking, while still sharing the same storage/programs.
---

Old update: (depreciated)
It seems, that it should be possible via USB networking with Raspberry Pi and X export DISPLAY: (using WiFi for that purpose should also work, but bandwidth may be insufficient fir higher resolutions). This approach should work with everything, except videos decoded in N900 DSP (bandwidth limitation of USB ~40 MB/s), or OpenGLES applications (some games like Neverball) - status of the latter is uncertain, and must be verified experimentally.

As for videos, workaround is trivial - play them via Raspberry Pi directly. They can even sit on N900 partition (most likely, vfat) connected to Raspberry Pi in Mass Storage mode. In any case, whatever mode we use, no hostmode on N900 is required (Raspbery Pi may act as host during USB networking), but it doesn't hurt also (if, for some reason, we prefer N900 to take role of host).

It's also possible to forward sound from N900 alongside DISPLAY (pulseaudio), so HDMI sound-transferring capabilities may be also used.

Particularly, we're planning to use full-fledged ARM linuxbox with HDMI out, to forward N900 display (of any set resolution) through it - it's all matter of fact, that, in our case, "full fledged linuxbox" is of credit card (thicker) size, and cost 25$ + shipping from UK.

Even more joyful fact is that Raspberry Pi, giving us long-awaited possibility of using our N900 with HDMI-out, isn't limited to "just" doing that - it may also act as USB-to-Ethernet adapter (in 35$ version, that contains LAN port), or any thing we would except linuxbox to do - in tandem with our N900, or acting standalone.

IMO, using it with our N900 is best "features" overkill in at least few years, comparable to USB hostmode (except, that hostmode required lotta hell of 'magic' difficulty level work - kudos to hostmode team).

Every interested one can contribute right now, even without Raspberry Pi in hand - requirements are only linuxbox with USB port and any video output (VGA, DVI, HDMI...). procedures for creating USB network + forwarding X Display over it should be same for "big" desktop computer and small Raspberry Pi, so we may create bulletproof procedure (or even scripts?) right now, to have it ready for Raspberry Pi (and final tweaking).
---

Original Post (for records):
Quote:

Originally Posted by Estel
As many of You know, Raspberry Pi, a 25$ GNU/Linux computer size of (thick) credit card, is going to be available for wide-spread purchase @ late January/beginning of February. It's low price and powerful capabilities - all powered by FOSS components - brought me an idea.

We all know too well, that TV-Out present on our devices, isn't satisfying, when considering some real usage of Easy Debian or other Maemo apps on 'big screen' - for example, using USB or Bluetooth keyboard and mouse. Not to mention, that connecting video-out to monitors is troublesome, and require additional components.

There are so-called USB-VGA/DVI/HDMI adapters available - which, in fact, are simple external video cards - that we could use as true VGA video out. Yet, they're quite expensive (despite prices failing quickly), and it's PITA to find - for good price - ones that works well with available GNU/Linux modules.

---

In such circumstances, wouldn't it be possible to use Raspberri Pi, configured to work as such USB-to-HDMI bridge? It's very reasonably priced, FOSS powered, USB-capable etc. As device itself, it seems perfect candidate. Yet, here comes my idea for knowledgeable ones:

Is it possible to achieve such a thing? by kind of USB networking and whatsnot? Raspberry Pi is going to be "real" computer, despite small size - so, if such a thing would be do-able using desktop Linuxbox, it should be achievable using Raspberry Pi. What method would You use, if you would consider real-time displaying N900 content to another machine, via USB? Usage of some already existing drivers/modules? How does it compare to already existing solution with not-so-powerful USB video cards (USB VGA etc)?

Little disclaimer - I'm not thinking about some kind of VNC. What we need to achieve, is true real-time display, with custom resolution etc. If it's possible using overpriced, one-purpose-only USB dongles, could we achieve it using Raspberry Pi?

/Estel

// Edit

Sorry for chaotic manner of this post. What I have, is and idea - unfortunately, I lack technical knowledge of how it can be (even theoretically) achieved. That's why I'm trying to describe idea itself as precisely, as I can.


skykooler 2012-01-07 02:39

Re: [Idea]Raspberry Pi as USB HDMI-out
 
Interesting idea. I expect to buy a Pi once they are available to the general public; I will see what is possible then.

laasonen 2012-01-07 03:17

Re: [Idea]Raspberry Pi as USB HDMI-out
 
I have been planning on doing something similar to this with Raspberry Pi. I ordered a 2.5" 128x64 LCD on december (which I got yesterday :)) and I'm planning on soldering it in to a Raspberry Pi, when I get my hands on one :D

I'm going to write a driver for it which lets me control it via lan.

Mike Fila 2012-01-07 03:27

Re: [Idea]Raspberry Pi as USB HDMI-out
 
this is a great idea but I would like at least 720p rather than vga if not 1080p would be ideal. Also rather than have it tethered to the n900 by a cable use a usb wireless dongle or the wired ethernet b rev. and connect over wifi. Then it would be able to used by what ever n900 desktop or laptop.

I know im asking a lot but I wouldnt be surprised if does happen, it just seems like a logical use for RPi.

Estel 2012-01-07 03:44

Re: [Idea]Raspberry Pi as USB HDMI-out
 
I've also thought about using WiFi, but USB offers much more bandwidth, so using it's seems logical for video (also, I think it's the case why there are many USB 'video cards', but no 'wifi video cards').

As for VGA, I was referring to connection type, not resolution. Using VGA cable, I was transmitting 1680x1050 from my notebook to monitor - before I switched to HDMI-DVI adapter - and to be honest, quality difference is indistinguishable.

As I've said in other topic, I would be pretty happy even with *true* 1024x600 output to external monitor/TV with VGA input/etc. Of course, if higher resolutions would be possible, that's great. I also think it should - They've tried Quake3 with higher resolutions on external monitor, and everything was calculated on Raspberry Pi. Using it only as video bridge (with actual programs processed on N900) we should have plenty of free processing power.

Furthermore, just ability to use N900 with proper VGA/DVI (HDMI) output would make me buy Raspberry Pi without any doubt. Yet, it's capable of much more things, so it have a chance to be really universal in tandem with N900, especially considering awesome price.

One thing that comes to my mind - beside true video out - is using it as Ethernet adapter (instead of those uncertain adapters from ebay). Here it's rather trivial - USB networking with N900, and forwarding it to ethernet port.

Possibilities are almost limitless. Yet, most important thing that we can achieve, is - IMO - still the ability to output video to real DVI/HDMI/whatever monitors/TVs. That would really bring dreams about 100% portable computer true - we already have hostmode, USB and Bluetooth mouses/keyboards, all kinds of USB networking, virtual desktops, and Easy Debian working as pure Squeeze distribution (with LibreOffice and Chromium running on N900 blazing fast). The last thing that prevent from really enjoyable usage during travels, is ability to connect to external monitor by real means, not crappy quality TV-Out, peaking @768x576 (PAL) or even worse 720x480 (NTSC).

The hardware is all there - powered by FOSS components. All we need, is wise selection of software and/or writing some parts of code (scripts), if they're lacking.

Ideal would be a true video forwarding over USB, through Raspberry Pi, to it's HDMI out. Yet, if for some reasons, that isn't possible a real-time remote desktop client (using full USB bandwidth) and some virtual X desktop with different resolution on N900 itself (it's already possible) would do the trick. Unfortunately, I'm not aware of such fast FOSS (or not FOSS) remote desktops. And, I really *feel* (funny word for meritocratic discussion, I know) that it should be possible without such resource-hungry workarounds. Though about X forwarding over SSH, but it's reportedly not working well with N900 programs (fixme? as i've never tried it myself), and I have no idea how fast or slow they're.

It just seems to me, that if ridiculously priced, low-performance things can work via USB as external video cards, Raspberry Pi - that is much better when it comes to performance available, and have all needed components - should be also able to do that.

/Estel

Hurrian 2012-01-07 05:06

Re: [Idea]Raspberry Pi as USB HDMI-out
 
What you're looking for would be a Virtual CRTC.

Due to the differences and large changes in DRM between 2.6.28 and (insert Linux HEAD git here), a lot of things will need to be backported if you want the said "true" resolution to be output, and not just upscaled from a VNC client.

Estel 2012-01-07 22:03

Re: [Idea]Raspberry Pi as USB HDMI-out
 
May be not exactly true - see this:
http://mg.pov.lt/maemo-irclog/%23mae...01-07T21:49:22

So, basically, it should work without problems, except for videos (too low bandwidth via USB) - that can be achieved by using N900 vfat as mass storage mode to raspberry pi host - and, it's unknown if it would work or not for OpenGLES applications (Neverball). Everything else should work fine for any sane resolution, and without slowdowns.

Possible bonus is sending sound via pulseaudio (or, as proposed by joerg_rw, usb audio card emulation, whatever that means ;) ), so HDMI capabilities of Raspberry Pi would be 100% used.

Personally, I can't wait to grab one and start experimenting...

/Estel

dr_frost_dk 2012-01-07 22:26

Re: [Idea]Raspberry Pi as USB HDMI-out (via X, export DISPLAY)
 
Sounds like an awesome project.

I myself am getting a PI also, it is without the most AWESOME little thing that can be bought for that kind of money, i really hope that they make in the area of a million of them, no question that they are going to go as .... hard to even find the word there.

I myself am mostly focusing on just having a system on the PI, there are so many applications for it, gaming system (C64, DosBOX etc), media center.

But as a little add on for HDMI out for our N900 sounds very cool, and exchanging SD cards would be enough to go from that function to system on the PI.

Estel 2012-01-07 22:30

Re: [Idea]Raspberry Pi as USB HDMI-out (via X, export DISPLAY)
 
IT seems to me, that system (if not whole, at least barebone version of it) would be needed to work as HDMI out to. Well, we need X on pi listening to export DISPLAY from out N900. It's possible that - using at least few GB SD card - Raspberry Pi with a system designed to do <whatever> would be also possible to act as HDMI out = universal thing to accompany our N900 + with possibility to work standalone for plentora of tasks.

/Estel

// Edit

As what we're planning to do, is to set up ARM full-fledged computer to act as X peer for HDMI output ;) - no matter, that this actual computer is about size of credit card - I think people with linuxboxes can start experimenting right now. Any linuxbox with USB port and VGA or DVI/HDMI should be able to do that. Starting to experiment right now, we can have plentora of already tweaked solutions just waiting for arrival of our Raspberry Pis.

(Especially, that OP here is far from being knowledgeable about X voodoo, so helping hands greatly appreciated).

qole 2012-01-07 22:49

Re: [Idea]Raspberry Pi as USB HDMI-out (via X, export DISPLAY)
 
Berndt at Dreamchip has been working on such a thing for years now, and he has a little box called xbounds that can do this over WiFi for Maemo and Android. Don't know when they're actually planning to release it, it has been "in production" for so long now... I saw a demo on the N900 back in Summer 2010 and it was really good, but I guess he didn't want to release it for the N900 since it is discontinued...


All times are GMT. The time now is 20:31.

vBulletin® Version 3.8.8