Author: swordfish6975

Openelec Build for OPI PC and 2 now with HW decoding

  [Copy link]

7

threads

100

posts

647

credits

Senior member

Rank: 4

credits
647
Published in 2016-1-18 02:21:58 | Show all floors
Is it possible to install a browser eg. Chromium

2

threads

94

posts

655

credits

Senior member

Rank: 4

credits
655
Published in 2016-1-18 13:17:26 | Show all floors
Edited by jeevasv at 2016-1-18 13:29

Kudos and Thumbs up to Jernej and Swordfish for starting this and seeing this to this far.

The 8188eu driver in kernel works well and gives enough throughput to stream 1080p content (tested upto 4GB 90min content) across couple of brick walls(need to tune the Wifi settings to a band with less interfrence and restrict to N-only for optimum performance). There is a build issue due to the incomplete linux3.4 patch which goes away if the below snippet is added to OpenELEC-OPi2/projects/H3/patches/linux/linux-01-kernel-3.4.patch


  1. --- a/drivers/net/wireless/rtl8188eu/include/ieee80211.h
  2. +++ b/drivers/net/wireless/rtl8188eu/include/ieee80211.h
  3. @@ -1314,18 +1314,18 @@
  4. (((Addr[2]) & 0xff) == 0xff) && (((Addr[3]) & 0xff) == 0xff) && (((Addr[4]) & 0xff) == 0xff) && \
  5. (((Addr[5]) & 0xff) == 0xff))
  6. #else
  7. -extern __inline int is_multicast_mac_addr(const u8 *addr)
  8. +static __inline int is_multicast_mac_addr(const u8 *addr)
  9. {
  10.          return ((addr[0] != 0xff) && (0x01 & addr[0]));
  11. }

  12. -extern __inline int is_broadcast_mac_addr(const u8 *addr)
  13. +static __inline int is_broadcast_mac_addr(const u8 *addr)
  14. {
  15.          return ((addr[0] == 0xff) && (addr[1] == 0xff) && (addr[2] == 0xff) &&   \
  16.                  (addr[3] == 0xff) && (addr[4] == 0xff) && (addr[5] == 0xff));
  17. }

  18. -extern __inline int is_zero_mac_addr(const u8 *addr)
  19. +static __inline int is_zero_mac_addr(const u8 *addr)
  20. {
  21.          return ((addr[0] == 0x00) && (addr[1] == 0x00) && (addr[2] == 0x00) &&   \
  22.                  (addr[3] == 0x00) && (addr[4] == 0x00) && (addr[5] == 0x00));
Copy code


Already the above snippet is there for /drivers/net/wireless/rtl8189es/include/ieee80211.h and both these files are exactly same. so just copy paste the snippet and correcting the path works.

I have some problems while trying to use the 8188eu with the current master where the external driver is enabled for the same using ADDITIONAL_DRIVERS. Not sure what is wrong.

Any driver which requires firmware loading won't work for example 8192cu etc. systemd version after 215 stopped request_firmware() support. So either the systemd needs to be downgraded to version 215 or the code form drivers/basein the mainline needs to be ported back to 3.4. I don't think it is a huge task and involves only few files like firmware_class.c Kconfig etc. But someone needs to sitdown and analyze.

Not sure about what is going on with CEC. Well if too much work just reprogram the TV remote inactive keys using lirc

0

threads

2

posts

64

credits

Registered member

Rank: 2

credits
64
Published in 2016-1-18 14:53:02 from mobile | Show all floors
i have problem with openelec booting. power on my opipc, red light and ethernet light lit, openelec logo on screen. few seconds later i got in upper left corner this message "cant access tty:control job turned off". help pls

0

threads

1

posts

41

credits

Novice

Rank: 1

credits
41
Published in 2016-1-19 01:48:29 | Show all floors
I have no sound thru HDMI.  I am using an OPI PLUS. What do I need to do?  Everything else seems to working.

4

threads

1118

posts

9502

credits

Moderator

Rank: 7Rank: 7Rank: 7

credits
9502
Published in 2016-1-19 02:08:31 | Show all floors
jeevasv replied at 2016-1-18 06:17
Kudos and Thumbs up to Jernej and Swordfish for starting this and seeing this to this far.

The 8188 ...

I added FW loading support in kernel. Care to test it?

2

threads

94

posts

655

credits

Senior member

Rank: 4

credits
655
Published in 2016-1-19 08:07:13 | Show all floors
jernej replied at 2016-1-19 02:08
I added FW loading support in kernel. Care to test it?



Great great great.

Sure I will. Not sure about today, but soon.
So happy to see that the FW loader patch applied without any issues.





4

threads

1118

posts

9502

credits

Moderator

Rank: 7Rank: 7Rank: 7

credits
9502
Published in 2016-1-19 08:16:20 | Show all floors
Actually I had to remove small part of the patch (it was already there) but otherwise it went smoothly.

2

threads

94

posts

655

credits

Senior member

Rank: 4

credits
655
Published in 2016-1-19 10:20:54 | Show all floors
usertz replied at 2016-1-18 14:53
i have problem with openelec booting. power on my opipc, red light and ethernet light lit, openelec  ...

Most probably a bad/not-so-good sdcard. Try zero out the card using the below command first

  1. sudo dd if=/dev/zero of=/dev/sdb bs=512
Copy code

and then try re-flashing the image.

if still issue persists try with a different card.

2

threads

94

posts

655

credits

Senior member

Rank: 4

credits
655
Published in 2016-1-19 13:08:03 | Show all floors
Edited by jeevasv at 2016-1-19 14:38
jeevasv replied at 2016-1-19 08:07
Great great great.

Sure I will. Not sure about today, but soon.

Did a preliminary testing with the current patches.

Good news. Nothing is broken and did test with rtl8188eus and rtl8188cus and both worked. The rtl8188cus seemed to be  loading the firmware. But can't confirm if it is loading the firmware file from the filesystem(lib/firmware/....).

These drivers are better than whatever is bundled with 3.4 with respect to features like led Support, may be better throughput etc.

Another wifi dongle which I have which is based on rtl8191su chipset(I think it was a 300Mbps mimo draft version) was not detected. Need to see what is different. The same works on RPi.

One more thing I need to note here is that the micro/nano usb dongles are  totally useless for any kind of streaming unless you are in direct line of sight within 1-2 meters of the Wifi router. Otherwise don't use anything without a 2dbi antenna or even a better antenna. Buying a USB dongle with detacheable antenna and then swapping the antenna with a 3dbi or 5dbi will be a better option.

I encourage others also to test with other realtek and ralink wifi dongles.

Ralink now got aquired by Mediatek and the new chipsets are named like mt** eg. MT7601.  Ralink rt2xxx driver is already enabled and now with FW loading support should work for old Ralink chipsets like rt5370, rt2XXX and rt3XXX whhic uses the rt28xx driver. For the new mediatek ones like the mt7601 we need to include it as addtional drivers.

rtl -> realtek
rt -> Ralink
mt -> Mediatek(newer Ralink)

The realtek chipset identifier's second letter in the postfix usually denotes the interface( u-USB, s-SDIO). Eg rtl8188eu-USB, rtl8189es- SDIO.

I am mentioning these here because I see that many people are confusing realtek chipsets for Ralink elsewhere in this forum. Cheers.

2

threads

94

posts

655

credits

Senior member

Rank: 4

credits
655
Published in 2016-1-19 13:12:33 | Show all floors
Edited by jeevasv at 2016-1-19 19:26

OK. I found the reason why my RTL8192SU is not detected. It was originally supported by the rtl8712 driver which is in the staging for so long. Recently in the 4.4 kernel the whole realtek driver set got a major rewrite and everything got merged into the rtlwifi driver. That is another story.

Anyway to enable the support staging and rtl8712 driver need to be enabled like it is enabled in the RPI kernel. Once this is enabled the ieee80211.h header file need to patched for gcc5 support. So here is the patch snippet which needs to be included in the linux3.4 patch file.

  1. --- a/drivers/staging/rtl8712/ieee80211.h
  2. +++ b/drivers/staging/rtl8712/ieee80211.h
  3. @@ -734,7 +734,7 @@
  4. #define IEEE_G            (1<<2)
  5. #define IEEE_MODE_MASK    (IEEE_A|IEEE_B|IEEE_G)

  6. -extern inline int ieee80211_is_empty_essid(const char *essid, int essid_len)
  7. +static __inline int ieee80211_is_empty_essid(const char *essid, int essid_len)
  8. {
  9.          /* Single white space is for Linksys APs */
  10.          if (essid_len == 1 && essid[0] == ' ')
  11. @@ -748,7 +748,7 @@
  12.          return 1;
  13. }

  14. -extern inline int ieee80211_get_hdrlen(u16 fc)
  15. +static __inline int ieee80211_get_hdrlen(u16 fc)
  16. {
  17.          int hdrlen = 24;

Copy code




And with this driver I can see that Firmware loading from file system perfectly. I think that is really great as this will enable mainstream distros like arch to be enabled as it is without worrying about driver support.
You need to log in before you can reply login | Register

Points Rule

Quick reply Top Return list