mirror of
https://github.com/libretro/Lakka.git
synced 2026-11-07 10:36:03 -10:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2ec783e62e | ||
|
|
1c1e2a3605 | ||
|
|
2040b1f566 | ||
|
|
807f4cd0be | ||
|
|
c79651a1d2 | ||
|
|
285aa2b2ef | ||
|
|
fe35700bea | ||
|
|
90f6ad903b | ||
|
|
33c97b613b | ||
|
|
cdb3819219 | ||
|
|
8e275bf3f6 | ||
|
|
310d4e1fd7 | ||
|
|
d292da576a | ||
|
|
5a565e9ca1 | ||
|
|
ad423e0a48 | ||
|
|
85290d345f | ||
|
|
429f195ee6 | ||
|
|
b32d896745 | ||
|
|
d1ec5002a2 | ||
|
|
b1704b2eb4 | ||
|
|
da7fd37dcb | ||
|
|
2cb476dee2 | ||
|
|
170e4841bd | ||
|
|
8e21ac1437 | ||
|
|
994bbe42e8 | ||
|
|
76b4bb6a2c | ||
|
|
2994aff624 | ||
|
|
86b5b86f14 | ||
|
|
b569ae0860 | ||
|
|
8cf5304427 | ||
|
|
592d533446 | ||
|
|
be61f17e3d | ||
|
|
3bc3ad1749 | ||
|
|
f638c4e101 | ||
|
|
d984acedb5 | ||
|
|
4e94f673f6 | ||
|
|
b56d1a2825 | ||
|
|
d6b3065994 | ||
|
|
21d650e29e | ||
|
|
e2f7a88db5 | ||
|
|
38cafaa97c | ||
|
|
2e2e2ba867 | ||
|
|
4656d16d70 | ||
|
|
b165b657ea | ||
|
|
a5d47c6409 | ||
|
|
0e915177bc | ||
|
|
527e5440e5 | ||
|
|
e67fc0cf32 | ||
|
|
647c2a39ce | ||
|
|
056bd2456a | ||
|
|
d0ce46d7f8 | ||
|
|
9121ac0a3b | ||
|
|
83c560ec75 | ||
|
|
45a43464af | ||
|
|
fc2cd9b179 | ||
|
|
b28f7ea628 | ||
|
|
b8533aea54 | ||
|
|
624f8e3e59 | ||
|
|
b5a21b3c32 | ||
|
|
c1e3c8c0ad | ||
|
|
cb6aeb33d4 | ||
|
|
70076d7e2d | ||
|
|
10dd2ca538 | ||
|
|
098414aab9 | ||
|
|
7559bb0212 | ||
|
|
6493f3284e | ||
|
|
687be62073 | ||
|
|
89b7ec55d5 | ||
|
|
5837c5bd60 | ||
|
|
22d1fc23e6 | ||
|
|
90250c1be3 | ||
|
|
7a7e055371 | ||
|
|
7473627ed1 | ||
|
|
1e25a1895a | ||
|
|
06e62ca4a2 | ||
|
|
0305220d87 | ||
|
|
57715e8186 | ||
|
|
6dd27e11fc | ||
|
|
cafbce2669 | ||
|
|
1803839237 | ||
|
|
130ce72933 | ||
|
|
4b652e50e3 | ||
|
|
11abba684f | ||
|
|
4de2018bf2 | ||
|
|
2e7a3b069d | ||
|
|
b87f62db8c | ||
|
|
d192044e99 | ||
|
|
155cba87a1 | ||
|
|
68674794b7 | ||
|
|
d2930b7ea3 | ||
|
|
dbdd01d36c | ||
|
|
536ba0e242 | ||
|
|
24eba2cc41 | ||
|
|
3ededf9062 | ||
|
|
ebf9c40fea | ||
|
|
fac545f3cf | ||
|
|
47962f40f7 | ||
|
|
95af826306 | ||
|
|
bd067b2db6 | ||
|
|
84fd5161ae | ||
|
|
ee7c0f57ec | ||
|
|
9dfa1f6002 | ||
|
|
d5a259a59b | ||
|
|
aa5e7762d2 | ||
|
|
cee6cea1fa | ||
|
|
936bd6d705 | ||
|
|
9531662da6 | ||
|
|
3a6d718551 | ||
|
|
9738a6e165 | ||
|
|
0bd4d5fd99 | ||
|
|
b403498603 | ||
|
|
f358f7dde2 | ||
|
|
f8b1f05134 | ||
|
|
950d460f3c | ||
|
|
4015de514a | ||
|
|
0c0af56fba | ||
|
|
761c19d071 | ||
|
|
4a3c0a3427 | ||
|
|
6a0603f894 | ||
|
|
79e4a56daf | ||
|
|
8d6de06575 | ||
|
|
c838c0c4cb | ||
|
|
41f37751cf | ||
|
|
3d4e20cdc8 | ||
|
|
8860bfb73a | ||
|
|
e0c766a37e | ||
|
|
96daa285ac | ||
|
|
e7c36602ac | ||
|
|
d41bd299cf | ||
|
|
f998d31d15 | ||
|
|
4b62482ae7 | ||
|
|
88de891767 | ||
|
|
385754a28b | ||
|
|
3ccf0d5207 | ||
|
|
0b49406ba1 | ||
|
|
d23434f1f5 | ||
|
|
d38de1c568 | ||
|
|
dd78769431 | ||
|
|
e04a995f2a | ||
|
|
7629ae8733 | ||
|
|
9e4f0eed8f | ||
|
|
b2e76de703 | ||
|
|
f559b3fbad | ||
|
|
c7e93af096 | ||
|
|
721f2c72d2 | ||
|
|
8849e9eb52 | ||
|
|
89bcbe482d | ||
|
|
eba639f559 | ||
|
|
daa277dbad | ||
|
|
5d2b4bc4b0 | ||
|
|
766ef02468 | ||
|
|
d38f237c46 | ||
|
|
4e3274b466 | ||
|
|
0552534f9c | ||
|
|
79f5d3ffad | ||
|
|
2e3317dceb | ||
|
|
22dbc0f754 | ||
|
|
cf00e7c2ab | ||
|
|
0283b1e1e5 | ||
|
|
e0b1f79c8a | ||
|
|
9fef9cabd3 |
No files matched your search
@@ -1,8 +0,0 @@
|
||||
ncurses-5.8/5.9:
|
||||
- segfaults in nano and dialog -> using ncurses-5.7
|
||||
|
||||
irserver:
|
||||
- rework irserver/init.d for systemd
|
||||
|
||||
settings addon:
|
||||
- remove ps3 sleep? should be fixed in bluez 5.13/5.14
|
||||
+13
-16
@@ -1,32 +1,29 @@
|
||||
# determines TARGET_CPU, if not forced by user
|
||||
if [ -z "$TARGET_CPU" ]; then
|
||||
TARGET_CPU=generic
|
||||
TARGET_CPU=cortex-a53
|
||||
fi
|
||||
|
||||
# TARGET_CPU:
|
||||
# cortex-a35 cortex-a53 cortex-a57 cortex-a72 exynos-m1
|
||||
# qdf24xx thunderx xgene1
|
||||
|
||||
# TARGET_FPU:
|
||||
# This specifies what floating point hardware (or hardware emulation) is
|
||||
# available on the target. Permissible names are:
|
||||
# fpa fpe2 fpe3 maverick vfp vfpv3 vfpv3-fp16 vfpv3-d16 vfpv3-d16-fp16
|
||||
# vfpv3xd vfpv3xd-fp16 neon neon-fp16 vfpv4 vfpv4-d16 fpv4-sp-d16
|
||||
# neon-vfpv4.
|
||||
# generic cortex-a35 cortex-a53 cortex-a57 cortex-a72
|
||||
# exynos-m1 qdf24xx thunderx xgene1 cortex-a57.cortex-a53
|
||||
# cortex-a72.cortex-a53
|
||||
|
||||
# determine architecture's family
|
||||
case $TARGET_CPU in
|
||||
*)
|
||||
generic|cortex-a35|cortex-a53|cortex-a57|cortex-a72|exynos-m1|qdf24xx|thunderx|xgene1|cortex-a57.cortex-a53|cortex-a72.cortex-a53)
|
||||
TARGET_SUBARCH=aarch64
|
||||
TARGET_VARIANT=armv8-a
|
||||
TARGET_ABI=eabi
|
||||
TARGET_CPU_FLAGS="+crc+crypto"
|
||||
TARGET_EXTRA_FLAGS="-mcpu=$TARGET_CPU$TARGET_CPU_FLAGS"
|
||||
TARGET_FPU=neon
|
||||
TARGET_EXTRA_FLAGS="-mcpu=${TARGET_CPU}${TARGET_CPU_FLAGS}"
|
||||
SIMD_SUPPORT="yes"
|
||||
;;
|
||||
esac
|
||||
|
||||
TARGET_GCC_ARCH=${TARGET_SUBARCH/-}
|
||||
TARGET_KERNEL_ARCH=arm64
|
||||
|
||||
# setup ARCH specific *FLAGS
|
||||
TARGET_CFLAGS="-march=$TARGET_VARIANT $TARGET_EXTRA_FLAGS"
|
||||
[ -n "$TARGET_FPU" ] && TARGET_CFLAGS="$TARGET_CFLAGS $TARGET_FPU_FLAGS"
|
||||
TARGET_LDFLAGS="-march=$TARGET_VARIANT -mcpu=$TARGET_CPU$TARGET_CPU_FLAGS"
|
||||
TARGET_CFLAGS="-march=${TARGET_VARIANT}${TARGET_CPU_FLAGS} -mabi=lp64 -Wno-psabi $TARGET_EXTRA_FLAGS"
|
||||
TARGET_LDFLAGS="-march=${TARGET_VARIANT}${TARGET_CPU_FLAGS} -mtune=$TARGET_CPU"
|
||||
GCC_OPTS="--with-abi=lp64 --with-arch=$TARGET_VARIANT"
|
||||
+1
-1
@@ -90,7 +90,7 @@ get_graphicdrivers() {
|
||||
|
||||
if [ "$drv" = "radeonsi" ]; then
|
||||
GALLIUM_DRIVERS="$GALLIUM_DRIVERS,radeonsi"
|
||||
XORG_DRIVERS="$XORG_DRIVERS ati"
|
||||
XORG_DRIVERS="$XORG_DRIVERS ati amdgpu"
|
||||
LLVM_SUPPORT="yes"
|
||||
COMPOSITE_SUPPORT="yes"
|
||||
VDPAU_SUPPORT="yes"
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.3 KiB |
@@ -0,0 +1,338 @@
|
||||
# Name of the Distro to build (full name, without special characters)
|
||||
DISTRONAME="EMU"
|
||||
|
||||
# short project description
|
||||
DESCRIPTION="The DIY retro emulation console"
|
||||
|
||||
# Welcome Message for e.g. SSH Server (up to 5 Lines)
|
||||
GREETING0="###########################################"
|
||||
GREETING1="# Lakka - The DIY retro emulation console #"
|
||||
GREETING2="# ...... visit http://www.lakka.tv ...... #"
|
||||
GREETING3="###########################################"
|
||||
GREETING4=""
|
||||
|
||||
# Root password to integrate in the target system
|
||||
ROOT_PASSWORD="root"
|
||||
|
||||
# Mediacenter to use (kodi / no)
|
||||
MEDIACENTER="no"
|
||||
|
||||
# Skins to install (Confluence)
|
||||
# Space separated list is supported,
|
||||
# e.g. SKINS="Confluence"
|
||||
SKINS="Confluence"
|
||||
|
||||
# Default Skin (Confluence)
|
||||
SKIN_DEFAULT="Confluence"
|
||||
|
||||
# install extra subtitle Fonts for KODI (yes / no)
|
||||
KODI_EXTRA_FONTS="yes"
|
||||
|
||||
# build and install 'RSXS' Screensaver (yes / no)
|
||||
KODI_SCR_RSXS="yes"
|
||||
|
||||
# build and install 'ProjectM' Visualization (yes / no)
|
||||
KODI_VIS_PROJECTM="yes"
|
||||
|
||||
# build and install 'GOOM' Visualization (yes / no)
|
||||
KODI_VIS_GOOM="yes"
|
||||
|
||||
# build and install 'Waveform' Visualization (yes / no)
|
||||
KODI_VIS_WAVEFORM="yes"
|
||||
|
||||
# build and install 'Spectrum' Visualization (yes / no)
|
||||
KODI_VIS_SPECTRUM="yes"
|
||||
|
||||
# build and install 'FishBMC' Visualization (yes / no)
|
||||
# does not work on RPi
|
||||
KODI_VIS_FISHBMC="yes"
|
||||
|
||||
# build and install PulseAudio support (yes / no)
|
||||
PULSEAUDIO_SUPPORT="no"
|
||||
|
||||
# build and install espeak support (yes / no)
|
||||
ESPEAK_SUPPORT="yes"
|
||||
|
||||
# build and install with non-free support
|
||||
# (RAR compression support in KODI) (yes / no)
|
||||
KODI_NONFREE_SUPPORT="yes"
|
||||
|
||||
# build and install with BluRay support (yes / no)
|
||||
KODI_BLURAY_SUPPORT="yes"
|
||||
|
||||
# build and install with BD+ support
|
||||
# (BD+ decryption support in KODI) (yes / no)
|
||||
BLURAY_BDPLUS_SUPPORT="yes"
|
||||
|
||||
# build and install with AACS support
|
||||
# (BD decryption support in KODI) (yes / no)
|
||||
BLURAY_AACS_SUPPORT="yes"
|
||||
|
||||
# build and install with DVDCSS support
|
||||
# (DVD decryption support in KODI) (yes / no)
|
||||
KODI_DVDCSS_SUPPORT="yes"
|
||||
|
||||
# additional drivers to install:
|
||||
# for a list of additinoal drivers see packages/linux-drivers
|
||||
# Space separated list is supported,
|
||||
# e.g. ADDITIONAL_DRIVERS="DRIVER1 DRIVER2"
|
||||
ADDITIONAL_DRIVERS="RTL8192CU RTL8192DU RTL8192EU RTL8188EU RTL8812AU"
|
||||
|
||||
# build and install bluetooth support (yes / no)
|
||||
BLUETOOTH_SUPPORT="yes"
|
||||
|
||||
# build and install with KODI webfrontend (yes / no)
|
||||
KODI_WEBSERVER_SUPPORT="yes"
|
||||
|
||||
# build and install Avahi (Zeroconf) daemon (yes / no)
|
||||
AVAHI_DAEMON="yes"
|
||||
|
||||
# build with UPnP support (yes / no)
|
||||
KODI_UPNP_SUPPORT="yes"
|
||||
|
||||
# build with MySQL support (yes / no)
|
||||
KODI_MYSQL_SUPPORT="yes"
|
||||
|
||||
# build xbmc with sshlib support (yes / no)
|
||||
KODI_SSHLIB_SUPPORT="yes"
|
||||
|
||||
# build xbmc with optical drive support (yes / no)
|
||||
KODI_OPTICAL_SUPPORT="yes"
|
||||
|
||||
# KODI Audio encoders for usage with optical drive support
|
||||
# Space separated list is supported,
|
||||
# e.g. KODI_AUDIOENCODER_ADDONS="ENCODER1 ENCODER2"
|
||||
KODI_AUDIOENCODER_ADDONS="flac lame vorbis wav"
|
||||
|
||||
# build with AirPlay support (stream videos from iDevices to KODI) (yes / no)
|
||||
KODI_AIRPLAY_SUPPORT="yes"
|
||||
|
||||
# build with AirTunes support (stream music from iDevices to KODI) (yes / no)
|
||||
KODI_AIRTUNES_SUPPORT="yes"
|
||||
|
||||
# build with libnfs support (mounting nfs shares with KODI) (yes / no)
|
||||
KODI_NFS_SUPPORT="yes"
|
||||
|
||||
# build with afpfs-ng support (mounting AFP shares with KODI) (yes / no)
|
||||
KODI_AFP_SUPPORT="no"
|
||||
|
||||
# build with Samba Client support (mounting SAMBA shares with KODI) (yes / no)
|
||||
KODI_SAMBA_SUPPORT="yes"
|
||||
|
||||
# build with NFS support (mounting nfs shares via the OS) (yes / no)
|
||||
NFS_SUPPORT="yes"
|
||||
|
||||
# build with Samba Client support (mounting samba shares via the OS) (yes / no)
|
||||
SAMBA_SUPPORT="yes"
|
||||
|
||||
# build and install Samba Server (yes / no)
|
||||
SAMBA_SERVER="yes"
|
||||
|
||||
# build and install SFTP Server (yes / no)
|
||||
SFTP_SERVER="yes"
|
||||
|
||||
# build and install PPP support (yes / no)
|
||||
PPTP_SUPPORT="yes"
|
||||
|
||||
# build and install OpenVPN support (yes / no)
|
||||
OPENVPN_SUPPORT="yes"
|
||||
|
||||
# build and install diskmounter support (udevil)
|
||||
# this service provide auto mounting support for external drives in the
|
||||
# mediacenter also automount internally drives at boottime via udev (yes / no)
|
||||
UDEVIL="yes"
|
||||
|
||||
# build and install exFAT fuse support (yes / no)
|
||||
EXFAT="yes"
|
||||
|
||||
# build and install NTFS-3G fuse support (yes / no)
|
||||
NTFS3G="yes"
|
||||
|
||||
# build and install hfs filesystem utilities (yes / no)
|
||||
HFSTOOLS="yes"
|
||||
|
||||
# Windowmanager to use (ratpoison / fluxbox / none)
|
||||
WINDOWMANAGER="none"
|
||||
|
||||
# Xorg Graphic drivers to use (all / i915,i965,r200,r300,r600,nvidia,nouveau)
|
||||
# Space separated list is supported,
|
||||
# e.g. GRAPHIC_DRIVERS="i915 i965 r300 r600 radeonsi nvidia nouveau"
|
||||
if [ "$TARGET_ARCH" = "i386" ]; then
|
||||
# TODO: create Legacy build with OpenELEC-4.2
|
||||
# install legacy drivers to i386 ARCH
|
||||
GRAPHIC_DRIVERS="r200 r300 r600 i915 i965 nouveau"
|
||||
elif [ "$TARGET_ARCH" = "x86_64" ]; then
|
||||
GRAPHIC_DRIVERS="r300 r600 radeonsi i915 i965 nouveau"
|
||||
fi
|
||||
|
||||
# build and install remote support (yes / no)
|
||||
REMOTE_SUPPORT="no"
|
||||
|
||||
# build and install ATV IR remote support (yes / no)
|
||||
ATVCLIENT_SUPPORT="no"
|
||||
|
||||
# build and install IRServer IR/LCD support (yes / no)
|
||||
IRSERVER_SUPPORT="no"
|
||||
|
||||
# build and install Joystick support (yes / no)
|
||||
JOYSTICK_SUPPORT="yes"
|
||||
|
||||
# build and install CEC adapter support (yes / no)
|
||||
CEC_SUPPORT="yes"
|
||||
|
||||
# build and install iSCSI support - iscsistart (yes / no)
|
||||
ISCSI_SUPPORT="yes"
|
||||
|
||||
# LCD driver to Use - Possible drivers are ( Comma seperated:
|
||||
# bayrad,CFontz,CFontz633,CFontzPacket,curses,CwLnx,dm140,
|
||||
# ea65,EyeboxOne,g15,glcdlib,glk,hd44780,i2500vfd,
|
||||
# icp_a106,imon,imonlcd,IOWarrior,irman,irtrans,
|
||||
# joy,lb216,lcdm001,lcterm,lirc,lis,MD8800,mdm166a,
|
||||
# ms6931,mtc_s16209x,MtxOrb,mx5000,NoritakeVFD,
|
||||
# picolcd,pyramid,sed1330,sed1520,serialPOS,
|
||||
# serialVFD,shuttleVFD,sli,stv5730,SureElec,svga,vlsys_m428
|
||||
# 'all' compiles all drivers;
|
||||
# 'all,!xxx,!yyy' de-selects previously selected drivers
|
||||
# "none" for disable LCD support
|
||||
LCD_DRIVER="irtrans,imon,imonlcd,mdm166a,MtxOrb,lis,dm140,hd44780,CFontz,SureElec,vlsys_m428,serialVFD,shuttleVFD"
|
||||
|
||||
# Support for partitioning and formating disks in initramfs (yes / no)
|
||||
# This adds support for parted and mkfs.ext3/4 to initramfs for OEM usage
|
||||
INITRAMFS_PARTED_SUPPORT="no"
|
||||
|
||||
# build with swap support (yes / no)
|
||||
SWAP_SUPPORT="no"
|
||||
|
||||
# swap support enabled per default (yes / no)
|
||||
SWAP_ENABLED_DEFAULT="no"
|
||||
|
||||
# swapfile size if SWAP_SUPPORT=yes in MB
|
||||
SWAPFILESIZE="256"
|
||||
|
||||
# build with installer (yes / no)
|
||||
INSTALLER_SUPPORT="yes"
|
||||
|
||||
# Testpackages for development (yes / no)
|
||||
TESTING="no"
|
||||
|
||||
# OEM packages for OEM's (yes / no)
|
||||
OEM_SUPPORT="yes"
|
||||
|
||||
# build and install nano text editor (yes / no)
|
||||
NANO_EDITOR="yes"
|
||||
|
||||
# cron support (yes / no)
|
||||
CRON_SUPPORT="yes"
|
||||
|
||||
# Perf support in development builds (yes / no)
|
||||
PERF_SUPPORT="yes"
|
||||
|
||||
# Distribution Specific source location
|
||||
DISTRO_MIRROR="http://sources.openelec.tv/mirror"
|
||||
DISTRO_SRC="http://sources.openelec.tv/$OPENELEC_VERSION"
|
||||
|
||||
# Addon Server Url
|
||||
ADDON_SERVER_URL="http://addons.openelec.tv"
|
||||
|
||||
# set the addon dirs
|
||||
ADDON_PATH="$ADDON_VERSION/$PROJECT/$TARGET_ARCH"
|
||||
ADDON_URL="$ADDON_SERVER_URL/$ADDON_PATH"
|
||||
|
||||
LAKKA_MIRROR="http://sources.lakka.tv"
|
||||
RA_PLAYLIST_NAMES=""\
|
||||
"Atari - 2600.lpl;"\
|
||||
"Atari - 5200.lpl;"\
|
||||
"Atari - 7800.lpl;"\
|
||||
"Atari - Jaguar.lpl;"\
|
||||
"Atari - Lynx.lpl;"\
|
||||
"Atari - ST.lpl;"\
|
||||
"Bandai - WonderSwan Color.lpl;"\
|
||||
"Bandai - WonderSwan.lpl;"\
|
||||
"Cave Story.lpl;"\
|
||||
"Coleco - ColecoVision.lpl;"\
|
||||
"DOOM.lpl;"\
|
||||
"FB Alpha - Arcade Games.lpl;"\
|
||||
"GCE - Vectrex.lpl;"\
|
||||
"Lutro.lpl;"\
|
||||
"Magnavox - Odyssey2.lpl;"\
|
||||
"MAME.lpl;"\
|
||||
"Microsoft - MSX2.lpl;"\
|
||||
"Microsoft - MSX.lpl;"\
|
||||
"NEC - PC Engine SuperGrafx.lpl;"\
|
||||
"NEC - PC Engine - TurboGrafx 16.lpl;"\
|
||||
"Nintendo - Famicom Disk System.lpl;"\
|
||||
"Nintendo - Game Boy Advance (e-Cards).lpl;"\
|
||||
"Nintendo - Game Boy Advance.lpl;"\
|
||||
"Nintendo - Game Boy Color.lpl;"\
|
||||
"Nintendo - Game Boy.lpl;"\
|
||||
"Nintendo - Nintendo 64.lpl;"\
|
||||
"Nintendo - Nintendo DS Decrypted.lpl;"\
|
||||
"Nintendo - Nintendo DS (Download Play) (BETA).lpl;"\
|
||||
"Nintendo - Nintendo DSi Decrypted.lpl;"\
|
||||
"Nintendo - Nintendo DSi (DLC).lpl;"\
|
||||
"Nintendo - Nintendo Entertainment System.lpl;"\
|
||||
"Nintendo - Satellaview.lpl;"\
|
||||
"Nintendo - Super Nintendo Entertainment System.lpl;"\
|
||||
"Nintendo - Virtual Boy.lpl;"\
|
||||
"Quake1.lpl;"\
|
||||
"ScummVM.lpl;"\
|
||||
"Sega - 32X.lpl;"\
|
||||
"Sega - Game Gear.lpl;"\
|
||||
"Sega - Master System - Mark III.lpl;"\
|
||||
"Sega - Mega Drive - Genesis.lpl;"\
|
||||
"Sega - PICO.lpl;"\
|
||||
"Sega - SG-1000.lpl;"\
|
||||
"Sinclair - ZX Spectrum +3.lpl;"\
|
||||
"SNK - Neo Geo Pocket Color.lpl;"\
|
||||
"SNK - Neo Geo Pocket.lpl;"\
|
||||
"Sony - PlayStation Portable.lpl;"\
|
||||
"Sony - PlayStation.lpl"
|
||||
|
||||
RA_PLAYLIST_CORES=""\
|
||||
"/tmp/cores/stella_libretro.so;"\
|
||||
"DETECT;"\
|
||||
"/tmp/cores/prosystem_libretro.so;"\
|
||||
"/tmp/cores/virtualjaguar_libretro.so;"\
|
||||
"/tmp/cores/handy_libretro.so;"\
|
||||
"/tmp/cores/hatari_libretro.so;"\
|
||||
"/tmp/cores/mednafen_wswan_libretro.so;"\
|
||||
"/tmp/cores/mednafen_wswan_libretro.so;"\
|
||||
"/tmp/cores/nxengine_libretro.so;"\
|
||||
"/tmp/cores/bluemsx_libretro.so;"\
|
||||
"/tmp/cores/prboom_libretro.so;"\
|
||||
"/tmp/cores/fba_libretro.so;"\
|
||||
"/tmp/cores/vecx_libretro.so;"\
|
||||
"/tmp/cores/lutro_libretro.so;"\
|
||||
"/tmp/cores/o2em_libretro.so;"\
|
||||
"/tmp/cores/mame_libretro.so;"\
|
||||
"/tmp/cores/bluemsx_libretro.so;"\
|
||||
"/tmp/cores/bluemsx_libretro.so;"\
|
||||
"/tmp/cores/mednafen_supergrafx_libretro.so;"\
|
||||
"/tmp/cores/mednafen_pce_fast_libretro.so;"\
|
||||
"/tmp/cores/nestopia_libretro.so;"\
|
||||
"/tmp/cores/mgba_libretro.so;"\
|
||||
"/tmp/cores/mgba_libretro.so;"\
|
||||
"/tmp/cores/gambatte_libretro.so;"\
|
||||
"/tmp/cores/gambatte_libretro.so;"\
|
||||
"/tmp/cores/mupen64plus_libretro.so;"\
|
||||
"/tmp/cores/desmume_libretro.so;"\
|
||||
"/tmp/cores/desmume_libretro.so;"\
|
||||
"/tmp/cores/desmume_libretro.so;"\
|
||||
"/tmp/cores/desmume_libretro.so;"\
|
||||
"/tmp/cores/nestopia_libretro.so;"\
|
||||
"/tmp/cores/snes9x_next_libretro.so;"\
|
||||
"/tmp/cores/snes9x_next_libretro.so;"\
|
||||
"/tmp/cores/mednafen_vb_libretro.so;"\
|
||||
"/tmp/cores/tyrquake_libretro.so;"\
|
||||
"/tmp/cores/scummvm_libretro.so;"\
|
||||
"/tmp/cores/picodrive_libretro.so;"\
|
||||
"/tmp/cores/genesis_plus_gx_libretro.so;"\
|
||||
"/tmp/cores/genesis_plus_gx_libretro.so;"\
|
||||
"/tmp/cores/genesis_plus_gx_libretro.so;"\
|
||||
"/tmp/cores/picodrive_libretro.so;"\
|
||||
"/tmp/cores/genesis_plus_gx_libretro.so;"\
|
||||
"/tmp/cores/fuse_libretro.so;"\
|
||||
"/tmp/cores/mednafen_ngp_libretro.so;"\
|
||||
"/tmp/cores/mednafen_ngp_libretro.so;"\
|
||||
"/tmp/cores/ppsspp_libretro.so;"\
|
||||
"/tmp/cores/pcsx_rearmed_libretro.so"
|
||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,46 @@
|
||||
# httpd.conf has the following format:
|
||||
#
|
||||
# H:/serverroot # define the server root. It will override -h
|
||||
# A:172.20. # Allow address from 172.20.0.0/16
|
||||
# A:10.0.0.0/25 # Allow any address from 10.0.0.0-10.0.0.127
|
||||
# A:10.0.0.0/255.255.255.128 # Allow any address that previous set
|
||||
# A:127.0.0.1 # Allow local loopback connections
|
||||
# D:* # Deny from other IP connections
|
||||
# E404:/path/e404.html # /path/e404.html is the 404 (not found) error page
|
||||
# I:index.html # Show index.html when a directory is requested
|
||||
#
|
||||
# P:/url:[http://]hostname[:port]/new/path
|
||||
# # When /urlXXXXXX is requested, reverse proxy
|
||||
# # it to http://hostname[:port]/new/pathXXXXXX
|
||||
#
|
||||
# /cgi-bin:foo:bar # Require user foo, pwd bar on urls starting with /cgi-bin/
|
||||
# /adm:admin:setup # Require user admin, pwd setup on urls starting with /adm/
|
||||
# /adm:toor:PaSsWd # or user toor, pwd PaSsWd on urls starting with /adm/
|
||||
# .au:audio/basic # additional mime type for audio.au files
|
||||
# *.php:/path/php # run xxx.php through an interpreter
|
||||
#
|
||||
# A/D may be as a/d or allow/deny - only first char matters.
|
||||
# Deny/Allow IP logic:
|
||||
# - Default is to allow all (Allow all (A:*) is a no-op).
|
||||
# - Deny rules take precedence over allow rules.
|
||||
# - "Deny all" rule (D:*) is applied last.
|
||||
#
|
||||
# Example:
|
||||
# 1. Allow only specified addresses
|
||||
# A:172.20 # Allow any address that begins with 172.20.
|
||||
# A:10.10. # Allow any address that begins with 10.10.
|
||||
# A:127.0.0.1 # Allow local loopback connections
|
||||
# D:* # Deny from other IP connections
|
||||
#
|
||||
# 2. Only deny specified addresses
|
||||
# D:1.2.3. # deny from 1.2.3.0 - 1.2.3.255
|
||||
# D:2.3.4. # deny from 2.3.4.0 - 2.3.4.255
|
||||
# A:* # (optional line added for clarity)
|
||||
#
|
||||
|
||||
H:/usr/www # define the server root. It will override -h
|
||||
A:* # Allow address from all ip's
|
||||
E404:/usr/www/error/404.html # /path/e404.html is the 404 (not found) error page
|
||||
I:index.html # Show index.html when a directory is requested
|
||||
|
||||
*.php:/usr/bin/php-cgi
|
||||
@@ -0,0 +1,66 @@
|
||||
# /etc/inputrc - global inputrc for libreadline
|
||||
# See readline(3readline) and `info rluserman' for more information.
|
||||
|
||||
# Be 8 bit clean.
|
||||
set input-meta on
|
||||
set output-meta on
|
||||
|
||||
# To allow the use of 8bit-characters like the german umlauts, uncomment
|
||||
# the line below. However this makes the meta key not work as a meta key,
|
||||
# which is annoying to those which don't need to type in 8-bit characters.
|
||||
|
||||
# set convert-meta off
|
||||
|
||||
# try to enable the application keypad when it is called. Some systems
|
||||
# need this to enable the arrow keys.
|
||||
# set enable-keypad on
|
||||
|
||||
# see /usr/share/doc/bash/inputrc.arrows for other codes of arrow keys
|
||||
|
||||
# do not bell on tab-completion
|
||||
# set bell-style none
|
||||
# set bell-style visible
|
||||
|
||||
# some defaults / modifications for the emacs mode
|
||||
$if mode=emacs
|
||||
|
||||
# allow the use of the Home/End keys
|
||||
"\e[1~": beginning-of-line
|
||||
"\e[4~": end-of-line
|
||||
|
||||
# allow the use of the Delete/Insert keys
|
||||
"\e[3~": delete-char
|
||||
"\e[2~": quoted-insert
|
||||
|
||||
# mappings for "page up" and "page down" to step to the beginning/end
|
||||
# of the history
|
||||
# "\e[5~": beginning-of-history
|
||||
# "\e[6~": end-of-history
|
||||
|
||||
# alternate mappings for "page up" and "page down" to search the history
|
||||
# "\e[5~": history-search-backward
|
||||
# "\e[6~": history-search-forward
|
||||
|
||||
# mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
|
||||
"\e[1;5C": forward-word
|
||||
"\e[1;5D": backward-word
|
||||
"\e[5C": forward-word
|
||||
"\e[5D": backward-word
|
||||
"\e\e[C": forward-word
|
||||
"\e\e[D": backward-word
|
||||
|
||||
$if term=rxvt
|
||||
"\e[8~": end-of-line
|
||||
"\eOc": forward-word
|
||||
"\eOd": backward-word
|
||||
$endif
|
||||
|
||||
# for non RH/Debian xterm, can't hurt for RH/Debian xterm
|
||||
# "\eOH": beginning-of-line
|
||||
# "\eOF": end-of-line
|
||||
|
||||
# for freebsd console
|
||||
# "\e[H": beginning-of-line
|
||||
# "\e[F": end-of-line
|
||||
|
||||
$endif
|
||||
@@ -0,0 +1,49 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue ([email protected])
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
# parse command line arguments
|
||||
for arg in $(cat /proc/cmdline); do
|
||||
case $arg in
|
||||
debugging)
|
||||
export DEBUG=yes
|
||||
;;
|
||||
progress)
|
||||
PROGRESS=yes
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ -e /storage/.cache/debug.openelec ] ; then
|
||||
export DEBUG=yes
|
||||
fi
|
||||
|
||||
# functions
|
||||
progress() {
|
||||
if test "$PROGRESS" = yes; then
|
||||
logger -s -t Boot "### $1 ###"
|
||||
else
|
||||
logger -t Boot "### $1 ###"
|
||||
fi
|
||||
}
|
||||
|
||||
# read config files
|
||||
for config in /etc/profile.d/*; do
|
||||
if [ -f "$config" ] ; then
|
||||
. $config
|
||||
fi
|
||||
done
|
||||
@@ -0,0 +1 @@
|
||||
SUSPEND_MODULES="jme asix anysee rtl8192se imon r8712u cx23885 cdc_acm ddbridge brcmfmac"
|
||||
@@ -0,0 +1,5 @@
|
||||
# transmission with uTP support
|
||||
# please comment out the follow line to activate this values:
|
||||
|
||||
# net.core.wmem_max=1048576
|
||||
# net.core.rmem_max=4194304
|
||||
Whitespace-only changes.
@@ -0,0 +1,256 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue ([email protected])
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="busybox"
|
||||
PKG_VERSION="1.23.1"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.busybox.net"
|
||||
PKG_URL="http://busybox.net/downloads/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_DEPENDS_HOST=""
|
||||
PKG_DEPENDS_TARGET="toolchain busybox:host hdparm dosfstools e2fsprogs zip unzip pciutils usbutils parted"
|
||||
PKG_DEPENDS_INIT="toolchain"
|
||||
PKG_PRIORITY="required"
|
||||
PKG_SECTION="system"
|
||||
PKG_SHORTDESC="BusyBox: The Swiss Army Knife of Embedded Linux"
|
||||
PKG_LONGDESC="BusyBox combines tiny versions of many common UNIX utilities into a single small executable. It provides replacements for most of the utilities you usually find in GNU fileutils, shellutils, etc. The utilities in BusyBox generally have fewer options than their full-featured GNU cousins; however, the options that are included provide the expected functionality and behave very much like their GNU counterparts. BusyBox provides a fairly complete environment for any small or embedded system."
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
PKG_MAKE_OPTS_HOST="ARCH=$TARGET_ARCH CROSS_COMPILE= KBUILD_VERBOSE=1 install"
|
||||
PKG_MAKE_OPTS_TARGET="ARCH=$TARGET_ARCH \
|
||||
HOSTCC=$HOST_CC \
|
||||
CROSS_COMPILE=$TARGET_PREFIX \
|
||||
KBUILD_VERBOSE=1 \
|
||||
install"
|
||||
PKG_MAKE_OPTS_INIT="ARCH=$TARGET_ARCH \
|
||||
HOSTCC=$HOST_CC \
|
||||
CROSS_COMPILE=$TARGET_PREFIX \
|
||||
KBUILD_VERBOSE=1 \
|
||||
install"
|
||||
|
||||
# nano text editor
|
||||
if [ "$NANO_EDITOR" = "yes" ]; then
|
||||
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET nano"
|
||||
fi
|
||||
|
||||
# nfs support
|
||||
if [ "$NFS_SUPPORT" = yes ]; then
|
||||
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET rpcbind"
|
||||
fi
|
||||
|
||||
if [ -f $PROJECT_DIR/$PROJECT/busybox/busybox-target.conf ]; then
|
||||
BUSYBOX_CFG_FILE_TARGET=$PROJECT_DIR/$PROJECT/busybox/busybox-target.conf
|
||||
else
|
||||
BUSYBOX_CFG_FILE_TARGET=$PKG_DIR/config/busybox-target.conf
|
||||
fi
|
||||
|
||||
if [ -f $PROJECT_DIR/$PROJECT/busybox/busybox-init.conf ]; then
|
||||
BUSYBOX_CFG_FILE_INIT=$PROJECT_DIR/$PROJECT/busybox/busybox-init.conf
|
||||
else
|
||||
BUSYBOX_CFG_FILE_INIT=$PKG_DIR/config/busybox-init.conf
|
||||
fi
|
||||
|
||||
pre_build_target() {
|
||||
mkdir -p $PKG_BUILD/.$TARGET_NAME
|
||||
cp -RP $PKG_BUILD/* $PKG_BUILD/.$TARGET_NAME
|
||||
}
|
||||
|
||||
pre_build_host() {
|
||||
mkdir -p $PKG_BUILD/.$HOST_NAME
|
||||
cp -RP $PKG_BUILD/* $PKG_BUILD/.$HOST_NAME
|
||||
}
|
||||
|
||||
pre_build_init() {
|
||||
mkdir -p $PKG_BUILD/.$TARGET_NAME-init
|
||||
cp -RP $PKG_BUILD/* $PKG_BUILD/.$TARGET_NAME-init
|
||||
}
|
||||
|
||||
configure_host() {
|
||||
cd $ROOT/$PKG_BUILD/.$HOST_NAME
|
||||
cp $PKG_DIR/config/busybox-host.conf .config
|
||||
|
||||
# set install dir
|
||||
sed -i -e "s|^CONFIG_PREFIX=.*$|CONFIG_PREFIX=\"$ROOT/$PKG_BUILD/.install_host\"|" .config
|
||||
|
||||
make oldconfig
|
||||
}
|
||||
|
||||
configure_target() {
|
||||
cd $ROOT/$PKG_BUILD/.$TARGET_NAME
|
||||
cp $BUSYBOX_CFG_FILE_TARGET .config
|
||||
|
||||
# set install dir
|
||||
sed -i -e "s|^CONFIG_PREFIX=.*$|CONFIG_PREFIX=\"$INSTALL\"|" .config
|
||||
|
||||
if [ ! "$DEVTOOLS" = yes ]; then
|
||||
sed -i -e "s|^CONFIG_DEVMEM=.*$|# CONFIG_DEVMEM is not set|" .config
|
||||
fi
|
||||
|
||||
if [ ! "$CRON_SUPPORT" = "yes" ] ; then
|
||||
sed -i -e "s|^CONFIG_CROND=.*$|# CONFIG_CROND is not set|" .config
|
||||
sed -i -e "s|^CONFIG_FEATURE_CROND_D=.*$|# CONFIG_FEATURE_CROND_D is not set|" .config
|
||||
sed -i -e "s|^CONFIG_CRONTAB=.*$|# CONFIG_CRONTAB is not set|" .config
|
||||
fi
|
||||
|
||||
if [ ! "$NFS_SUPPORT" = yes ]; then
|
||||
sed -i -e "s|^CONFIG_FEATURE_MOUNT_NFS=.*$|# CONFIG_FEATURE_MOUNT_NFS is not set|" .config
|
||||
fi
|
||||
|
||||
if [ ! "$SAMBA_SUPPORT" = yes ]; then
|
||||
sed -i -e "s|^CONFIG_FEATURE_MOUNT_CIFS=.*$|# CONFIG_FEATURE_MOUNT_CIFS is not set|" .config
|
||||
fi
|
||||
|
||||
# optimize for size
|
||||
CFLAGS=`echo $CFLAGS | sed -e "s|-Ofast|-Os|"`
|
||||
CFLAGS=`echo $CFLAGS | sed -e "s|-O.|-Os|"`
|
||||
|
||||
# busybox fails to build with GOLD support enabled with binutils-2.25
|
||||
strip_gold
|
||||
|
||||
LDFLAGS="$LDFLAGS -fwhole-program"
|
||||
|
||||
make oldconfig
|
||||
}
|
||||
|
||||
configure_init() {
|
||||
cd $ROOT/$PKG_BUILD/.$TARGET_NAME-init
|
||||
cp $BUSYBOX_CFG_FILE_INIT .config
|
||||
|
||||
# set install dir
|
||||
sed -i -e "s|^CONFIG_PREFIX=.*$|CONFIG_PREFIX=\"$INSTALL\"|" .config
|
||||
|
||||
# optimize for size
|
||||
CFLAGS=`echo $CFLAGS | sed -e "s|-Ofast|-Os|"`
|
||||
CFLAGS=`echo $CFLAGS | sed -e "s|-O.|-Os|"`
|
||||
|
||||
# busybox fails to build with GOLD support enabled with binutils-2.25
|
||||
strip_gold
|
||||
|
||||
LDFLAGS="$LDFLAGS -fwhole-program"
|
||||
|
||||
make oldconfig
|
||||
}
|
||||
|
||||
makeinstall_host() {
|
||||
mkdir -p $ROOT/$TOOLCHAIN/bin
|
||||
cp -R $ROOT/$PKG_BUILD/.install_host/bin/* $ROOT/$TOOLCHAIN/bin
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
mkdir -p $INSTALL/usr/bin
|
||||
cp $PKG_DIR/scripts/createlog $INSTALL/usr/bin/
|
||||
cp $PKG_DIR/scripts/lsb_release $INSTALL/usr/bin/
|
||||
cp $PKG_DIR/scripts/apt-get $INSTALL/usr/bin/
|
||||
cp $PKG_DIR/scripts/passwd $INSTALL/usr/bin/
|
||||
cp $PKG_DIR/scripts/sudo $INSTALL/usr/bin/
|
||||
ln -sf /bin/busybox $INSTALL/usr/bin/env #/usr/bin/env is needed for most python scripts
|
||||
cp $PKG_DIR/scripts/pastebinit $INSTALL/usr/bin/
|
||||
ln -sf pastebinit $INSTALL/usr/bin/paste
|
||||
|
||||
mkdir -p $INSTALL/usr/lib/openelec
|
||||
cp $PKG_DIR/scripts/fs-resize $INSTALL/usr/lib/openelec
|
||||
|
||||
mkdir -p $INSTALL/etc
|
||||
cp $PKG_DIR/config/profile $INSTALL/etc
|
||||
cp $PKG_DIR/config/inputrc $INSTALL/etc
|
||||
cp $PKG_DIR/config/httpd.conf $INSTALL/etc
|
||||
cp $PKG_DIR/config/suspend-modules.conf $INSTALL/etc
|
||||
|
||||
mkdir -p $INSTALL/usr/config/sysctl.d
|
||||
cp $PKG_DIR/config/transmission.conf $INSTALL/usr/config/sysctl.d
|
||||
|
||||
# /etc/fstab is needed by...
|
||||
touch $INSTALL/etc/fstab
|
||||
|
||||
# /etc/machine-id, needed by systemd and dbus
|
||||
ln -sf /run/machine-id $INSTALL/etc/machine-id
|
||||
|
||||
# /etc/hosts must be writeable
|
||||
ln -sf /var/cache/hosts $INSTALL/etc/hosts
|
||||
|
||||
# /etc/mtab is needed by udisks etc...
|
||||
ln -sf /proc/self/mounts $INSTALL/etc/mtab
|
||||
|
||||
# create /etc/hostname
|
||||
ln -sf /proc/sys/kernel/hostname $INSTALL/etc/hostname
|
||||
|
||||
# systemd wants /usr/bin/mkdir
|
||||
mkdir -p $INSTALL/usr/bin
|
||||
ln -sf /bin/busybox $INSTALL/usr/bin/mkdir
|
||||
|
||||
# add webroot
|
||||
mkdir -p $INSTALL/usr/www
|
||||
echo "It works" > $INSTALL/usr/www/index.html
|
||||
|
||||
mkdir -p $INSTALL/usr/www/error
|
||||
echo "404" > $INSTALL/usr/www/error/404.html
|
||||
}
|
||||
|
||||
post_install() {
|
||||
ROOT_PWD="`$ROOT/$TOOLCHAIN/bin/cryptpw -m sha512 $ROOT_PASSWORD`"
|
||||
|
||||
echo "chmod 4755 $INSTALL/bin/busybox" >> $FAKEROOT_SCRIPT
|
||||
echo "chmod 000 $INSTALL/etc/shadow" >> $FAKEROOT_SCRIPT
|
||||
|
||||
add_user root "$ROOT_PWD" 0 0 "Root User" "/storage" "/bin/sh"
|
||||
add_group root 0
|
||||
add_group users 100
|
||||
|
||||
add_user nobody x 65534 65534 "Nobody" "/" "/bin/sh"
|
||||
add_group nogroup 65534
|
||||
|
||||
enable_service debug-shell.service
|
||||
enable_service shell.service
|
||||
enable_service connman-ncurses.service
|
||||
enable_service show-version.service
|
||||
enable_service var.mount
|
||||
enable_service var-log-debug.service
|
||||
enable_service fs-resize.service
|
||||
|
||||
# cron support
|
||||
if [ "$CRON_SUPPORT" = "yes" ] ; then
|
||||
mkdir -p $INSTALL/usr/lib/systemd/system
|
||||
cp $PKG_DIR/system.d.opt/cron.service $INSTALL/usr/lib/systemd/system
|
||||
enable_service cron.service
|
||||
mkdir -p $INSTALL/usr/share/services
|
||||
cp -P $PKG_DIR/default.d/*.conf $INSTALL/usr/share/services
|
||||
cp $PKG_DIR/system.d.opt/cron-defaults.service $INSTALL/usr/lib/systemd/system
|
||||
enable_service cron-defaults.service
|
||||
fi
|
||||
}
|
||||
|
||||
makeinstall_init() {
|
||||
mkdir -p $INSTALL/bin
|
||||
ln -sf busybox $INSTALL/bin/sh
|
||||
chmod 4755 $INSTALL/bin/busybox
|
||||
|
||||
mkdir -p $INSTALL/etc
|
||||
touch $INSTALL/etc/fstab
|
||||
ln -sf /proc/self/mounts $INSTALL/etc/mtab
|
||||
|
||||
if [ -f $PROJECT_DIR/$PROJECT/initramfs/platform_init ]; then
|
||||
cp $PROJECT_DIR/$PROJECT/initramfs/platform_init $INSTALL
|
||||
chmod 755 $INSTALL/platform_init
|
||||
fi
|
||||
|
||||
cp $PKG_DIR/scripts/init $INSTALL
|
||||
chmod 755 $INSTALL/init
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
diff -Naur busybox-1.13.2/init/halt.c busybox-1.13.2a/init/halt.c
|
||||
--- busybox-1.13.2/init/halt.c 2008-11-09 18:28:19.000000000 +0100
|
||||
+++ busybox-1.13.2a/init/halt.c 2009-02-01 16:38:37.000000000 +0100
|
||||
@@ -79,7 +79,7 @@
|
||||
|
||||
/* Perform action. */
|
||||
rc = 1;
|
||||
- if (!(flags & 4)) { /* no -f */
|
||||
+ if (ENABLE_INIT && !(flags & 4)) { /* no -f */
|
||||
//TODO: I tend to think that signalling linuxrc is wrong
|
||||
// pity original author didn't comment on it...
|
||||
if (ENABLE_FEATURE_INITRD) {
|
||||
@@ -0,0 +1,12 @@
|
||||
diff -Naur busybox-1.17.3-old/scripts/trylink busybox-1.17.3-new/scripts/trylink
|
||||
--- busybox-1.17.3-old/scripts/trylink 2010-09-16 16:05:35.000000000 -0700
|
||||
+++ busybox-1.17.3-new/scripts/trylink 2010-10-10 07:38:03.000000000 -0700
|
||||
@@ -49,7 +49,7 @@
|
||||
local tempname="/tmp/temp.$$.$RANDOM"
|
||||
# Can use "-o /dev/null", but older gcc tend to *unlink it* on failure! :(
|
||||
# "-xc": C language. "/dev/null" is an empty source file.
|
||||
- if $CC $1 -shared -xc /dev/null -o "$tempname".o >/dev/null 2>&1; then
|
||||
+ if $CC $CFLAGS $LDFLAGS $1 -shared -xc /dev/null -o "$tempname".o >/dev/null 2>&1; then
|
||||
echo "$1";
|
||||
else
|
||||
echo "$2";
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
From 5f4085ddb16c206b1dc36d481c2aa6684ba392ee Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Saraev <[email protected]>
|
||||
Date: Thu, 18 Jul 2013 19:26:21 +0300
|
||||
Subject: [PATCH] silence crond startup logging
|
||||
|
||||
---
|
||||
miscutils/crond.c | 1 -
|
||||
1 files changed, 0 insertions(+), 1 deletions(-)
|
||||
|
||||
diff -Naur busybox-1.23.0/miscutils/crond.c busybox-1.23.0.patch/miscutils/crond.c
|
||||
--- busybox-1.23.0/miscutils/crond.c 2014-10-04 22:35:59.000000000 +0200
|
||||
+++ busybox-1.23.0.patch/miscutils/crond.c 2014-12-26 23:07:53.386118290 +0100
|
||||
@@ -945,7 +945,6 @@
|
||||
|
||||
reopen_logfile_to_stderr();
|
||||
xchdir(G.crontab_dir_name);
|
||||
- log8("crond (busybox "BB_VER") started, log level %d", G.log_level);
|
||||
rescan_crontab_dir();
|
||||
write_pidfile(CONFIG_PID_FILE_PATH "/crond.pid");
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
#
|
||||
# stolen from OpenWRT
|
||||
#
|
||||
# https://dev.openwrt.org/attachment/ticket/7993/701-make_unicode_printable.patch
|
||||
#
|
||||
|
||||
--- a/libbb/printable_string.c 2013-01-13 20:06:04.210089516 +0800
|
||||
+++ b/libbb/printable_string.c 2013-01-13 20:00:27.917211167 +0800
|
||||
@@ -31,8 +31,6 @@
|
||||
}
|
||||
if (c < ' ')
|
||||
break;
|
||||
- if (c >= 0x7f)
|
||||
- break;
|
||||
s++;
|
||||
}
|
||||
|
||||
@@ -45,7 +43,7 @@
|
||||
unsigned char c = *d;
|
||||
if (c == '\0')
|
||||
break;
|
||||
- if (c < ' ' || c >= 0x7f)
|
||||
+ if (c < ' ')
|
||||
*d = '?';
|
||||
d++;
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue ([email protected])
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
export HOME="/storage"
|
||||
export PATH="/bin:/sbin:/usr/bin:/usr/sbin"
|
||||
export LD_LIBRARY_PATH="/usr/lib:/lib"
|
||||
export HOSTNAME=`cat /etc/hostname`
|
||||
export PS1="\[\e[1;32m\]\h\[\e[1;32m\]:\[\e[1;34m\]\w \[\e[0m\]\\$ "
|
||||
# TODO: k0p: remove this and/or force TERM=xterm ? ping dag-
|
||||
case "$TERM" in
|
||||
linux|nxterm|screen|xterm|xterm-color)
|
||||
;;
|
||||
"")
|
||||
export TERM="linux"
|
||||
;;
|
||||
*)
|
||||
export TERM="xterm"
|
||||
;;
|
||||
esac
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue ([email protected])
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
message="$message\n There is no working 'apt-get'."
|
||||
message="$message\n "
|
||||
message="$message\n 'apt-get' is a command to install, update and remove software which"
|
||||
message="$message\n is stored in a non local repo. 'apt-get' does nothing then connecting to such"
|
||||
message="$message\n repo, downloads the software, unpacks the software, updates a big"
|
||||
message="$message\n local database with all filepaths and other informations about the"
|
||||
message="$message\n installed software or removes or updates installed Software."
|
||||
message="$message\n "
|
||||
message="$message\n With OpenELEC it is not possible to change the system for security and"
|
||||
message="$message\n stability reasons so even 'apt-get' would not be able to do this."
|
||||
message="$message\n We also dont have and want to maintain such a repo for various other"
|
||||
message="$message\n great reasons."
|
||||
message="$message\n "
|
||||
message="$message\n Also Ubuntu or Debian packages are often outdated and not compatible"
|
||||
message="$message\n with OpenELEC"
|
||||
message="$message\n "
|
||||
message="$message\n TIP: use XBMC's addon browser to enhance your OpenELEC system"
|
||||
|
||||
echo -e $message
|
||||
exit 1
|
||||
+146
@@ -0,0 +1,146 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue ([email protected])
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
# create logfile
|
||||
|
||||
DATE=`date -u +%Y-%m-%d-%H.%M.%S`
|
||||
BASEDIR="/tmp"
|
||||
LOGDIR="log-$DATE"
|
||||
RELEASE="`cat /etc/release`"
|
||||
GIT="`cat /etc/issue |grep git`"
|
||||
|
||||
getlog_cmd() {
|
||||
if which $1 >/dev/null; then
|
||||
echo "################################################################################" >> $BASEDIR/$LOGDIR/$LOGFILE
|
||||
echo "# ... output of $@" >> $BASEDIR/$LOGDIR/$LOGFILE
|
||||
echo "# OpenELEC release: $RELEASE" >> $BASEDIR/$LOGDIR/$LOGFILE
|
||||
echo "# $GIT" >> $BASEDIR/$LOGDIR/$LOGFILE
|
||||
echo "################################################################################" >> $BASEDIR/$LOGDIR/$LOGFILE
|
||||
$@ >> $BASEDIR/$LOGDIR/$LOGFILE 2>/dev/null
|
||||
echo "" >> $BASEDIR/$LOGDIR/$LOGFILE
|
||||
fi
|
||||
}
|
||||
|
||||
rm -rf $BASEDIR/$LOGDIR
|
||||
mkdir -p $BASEDIR/$LOGDIR
|
||||
|
||||
# kodi.log
|
||||
LOGFILE="01_KODI.log"
|
||||
for i in `find /storage/.kodi/temp/ -type f -name "*.log"`; do
|
||||
getlog_cmd cat $i
|
||||
done
|
||||
|
||||
# System.log
|
||||
LOGFILE="02_System.log"
|
||||
getlog_cmd dmesg
|
||||
getlog_cmd lsmod
|
||||
getlog_cmd ps xa
|
||||
for i in /storage/.config/hwdb.d/*.hwdb \
|
||||
/storage/.config/modprobe.d/*.conf \
|
||||
/storage/.config/modules-load.d/*.conf \
|
||||
/storage/.config/sleep.d/*.power \
|
||||
/storage/.config/sysctl.d/*.conf \
|
||||
/storage/.config/udev.rules.d/.rules \
|
||||
; do
|
||||
if [ -f "$i" ] ; then
|
||||
getlog_cmd cat $i
|
||||
fi
|
||||
done
|
||||
if [ -f "/storage/.config/autostart.sh" ] ; then
|
||||
getlog_cmd cat /storage/.config/autostart.sh
|
||||
fi
|
||||
if [ -f "/storage/.config/shutdown.sh" ] ; then
|
||||
getlog_cmd cat /storage/.config/shutdown.sh
|
||||
fi
|
||||
getlog_cmd ls -laR /storage/.config/system.d
|
||||
# note: we dont add .mount units here as they may contan
|
||||
# login credentials
|
||||
for i in /storage/.config/system.d/*.service ; do
|
||||
if [ -f "$i" -a ! -L "$i" ] ; then
|
||||
getlog_cmd cat $i
|
||||
fi
|
||||
done
|
||||
|
||||
# Hardware.log
|
||||
LOGFILE="03_Hardware.log"
|
||||
getlog_cmd lspci -vvvvnn
|
||||
getlog_cmd lsusb -vvv
|
||||
getlog_cmd lsusb -t
|
||||
getlog_cmd cat /proc/cpuinfo
|
||||
getlog_cmd cat /proc/meminfo
|
||||
|
||||
# Audio.log
|
||||
LOGFILE="04_Audio.log"
|
||||
getlog_cmd aplay -l
|
||||
getlog_cmd aplay -L
|
||||
getlog_cmd amixer
|
||||
|
||||
# Network.log
|
||||
LOGFILE="05_Network.log"
|
||||
getlog_cmd ifconfig -a
|
||||
getlog_cmd netstat -rn
|
||||
getlog_cmd netstat -nalp
|
||||
getlog_cmd connmanctl services
|
||||
getlog_cmd cat /etc/resolv.conf
|
||||
|
||||
# varlog.log
|
||||
LOGFILE="06_varlog.log"
|
||||
for i in `find /var/log -type f`; do
|
||||
getlog_cmd cat $i
|
||||
done
|
||||
|
||||
# Input.log
|
||||
LOGFILE="07_input.log"
|
||||
getlog_cmd cat /proc/bus/input/devices
|
||||
# make RPi users happy
|
||||
if [ -e /proc/acpi/wakeup ] ; then
|
||||
getlog_cmd cat /proc/acpi/wakeup
|
||||
fi
|
||||
|
||||
# Filesystem.log
|
||||
LOGFILE="08_Filesystem.log"
|
||||
getlog_cmd cat /proc/mounts
|
||||
getlog_cmd df -h
|
||||
getlog_cmd blkid
|
||||
|
||||
# Journal (current)
|
||||
LOGFILE="09_Journal-cur.log"
|
||||
getlog_cmd journalctl --no-pager -b -0
|
||||
|
||||
# Journal (prev)
|
||||
LOGFILE="10_Journal-prev.log"
|
||||
getlog_cmd journalctl --no-pager -b -1
|
||||
|
||||
# addons
|
||||
LOGFILE="11_Addons.log"
|
||||
for i in /storage/.kodi/userdata/addon_data/*/*.log \
|
||||
/storage/.kodi/userdata/addon_data/*/log/* \
|
||||
; do
|
||||
if [ -f "$i" ] ; then
|
||||
getlog_cmd cat $i
|
||||
fi
|
||||
done
|
||||
|
||||
# pack logfiles
|
||||
mkdir -p /storage/logfiles
|
||||
zip -jq /storage/logfiles/log-$DATE.zip $BASEDIR/$LOGDIR/*
|
||||
|
||||
# remove logdir
|
||||
rm -rf $BASEDIR/$LOGDIR
|
||||
+70
@@ -0,0 +1,70 @@
|
||||
#!/bin/sh
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue ([email protected])
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
if [ -e /storage/.please_resize_me ] ; then
|
||||
# this sh** was never intended to be used
|
||||
# on already installed and runing system
|
||||
if [ -d /storage/.kodi -o -d /storage/.config -o -d /storage/.cache ] ; then
|
||||
rm -f /storage/.please_resize_me
|
||||
sync
|
||||
echo "resizing not allowed. rebooting in 15s"
|
||||
sleep 15
|
||||
reboot -f
|
||||
fi
|
||||
# get the disk. /storage on 2nd partition
|
||||
PART=$(grep "/storage " /proc/mounts | cut -d" " -f1 | grep '2$')
|
||||
|
||||
# get disk: /dev/sdx2 -> /dev/sdx, /dev/mmcblkxp2 -> /dev/mmcblkx
|
||||
case $PART in
|
||||
"/dev/mmcblk"*)
|
||||
DISK=$(echo $PART | sed s/p2$//g)
|
||||
;;
|
||||
*)
|
||||
DISK=$(echo $PART | sed s/2$//g)
|
||||
;;
|
||||
esac
|
||||
|
||||
rm -f /storage/.please_resize_me
|
||||
sync
|
||||
|
||||
# just in case
|
||||
if [ ! -z "$DISK" -a ! -z "$PART" ] ; then
|
||||
# get storage partition start
|
||||
PART_START=$(parted -s -m $DISK unit b print |grep -v ^/dev |grep -v BYT | grep ^2: | cut -f2 -d ":")
|
||||
|
||||
# failed to get partition start offset ?
|
||||
if [ ! -z "$PART_START" ] ; then
|
||||
umount $PART
|
||||
# TODO: clean up debug
|
||||
echo "resizing /storage..."
|
||||
echo "this may take a while. please do not reboot or turn off your computer"
|
||||
echo "... parted -s -m $DISK rm 2"
|
||||
parted -s -m $DISK rm 2 &>/dev/null
|
||||
echo "... parted -s -m $DISK unit b mkpart primary $PART_START 100%"
|
||||
parted -s -m $DISK unit b mkpart primary $PART_START 100% &>/dev/null
|
||||
echo "... e2fsck -f -p $PART"
|
||||
e2fsck -f -p $PART &>/dev/null
|
||||
echo "... resize2fs $PART"
|
||||
resize2fs $PART &>/dev/null
|
||||
echo "...done. rebooting in 15s"
|
||||
sleep 15
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
reboot -f
|
||||
+732
@@ -0,0 +1,732 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue ([email protected])
|
||||
# Copyright (C) 2010-2011 Roman Weber ([email protected])
|
||||
# Copyright (C) 2012 Yann Cézard ([email protected])
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
# create directories
|
||||
/bin/busybox mkdir -p /dev
|
||||
/bin/busybox mkdir -p /proc
|
||||
/bin/busybox mkdir -p /sys
|
||||
/bin/busybox mkdir -p /flash
|
||||
/bin/busybox mkdir -p /sysroot
|
||||
/bin/busybox mkdir -p /storage
|
||||
|
||||
# mount all needed special filesystems
|
||||
/bin/busybox mount -t devtmpfs devtmpfs /dev
|
||||
/bin/busybox mount -t proc proc /proc
|
||||
/bin/busybox mount -t sysfs sysfs /sys
|
||||
|
||||
# set needed variables
|
||||
MODULE_DIR=/lib/modules
|
||||
|
||||
UPDATE_DIR=/storage/.update
|
||||
UPDATE_KERNEL="KERNEL"
|
||||
UPDATE_SYSTEM="SYSTEM"
|
||||
IMAGE_KERNEL="KERNEL"
|
||||
IMAGE_SYSTEM="SYSTEM"
|
||||
|
||||
BOOT_STEP="start"
|
||||
MD5_FAILED="0"
|
||||
MD5_NOCHECK="0"
|
||||
SIZE_FAILED="0"
|
||||
RUN_FSCK="yes"
|
||||
RUN_FSCK_DISKS=""
|
||||
|
||||
NBD_DEVS="0"
|
||||
FLASH_FREE_MIN="5"
|
||||
|
||||
INSTALLED_MEMORY=`cat /proc/meminfo | grep 'MemTotal:' | awk '{print $2}'`
|
||||
SYSTEM_TORAM_LIMIT=1024000
|
||||
|
||||
# hide kernel log messages on console
|
||||
echo '1 4 1 7' > /proc/sys/kernel/printk
|
||||
|
||||
# run platform_init script if exists
|
||||
if [ -f "./platform_init" ]; then
|
||||
./platform_init
|
||||
fi
|
||||
|
||||
# clear screen and hide cursor
|
||||
clear
|
||||
if [ -f /sys/devices/virtual/graphics/fbcon/cursor_blink ] ; then
|
||||
echo 0 > /sys/devices/virtual/graphics/fbcon/cursor_blink
|
||||
fi
|
||||
|
||||
# parse command line arguments
|
||||
for arg in $(cat /proc/cmdline); do
|
||||
case $arg in
|
||||
BOOT_IMAGE=*)
|
||||
IMAGE_KERNEL="${arg#*=}"
|
||||
;;
|
||||
SYSTEM_IMAGE=*)
|
||||
IMAGE_SYSTEM="${arg#*=}"
|
||||
;;
|
||||
boot=*)
|
||||
boot="${arg#*=}"
|
||||
case $boot in
|
||||
ISCSI=*|NBD=*|NFS=*)
|
||||
UPDATE_DISABLED=yes
|
||||
FLASH_NETBOOT=yes
|
||||
;;
|
||||
/dev/*|LABEL=*|UUID=*)
|
||||
RUN_FSCK_DISKS="$RUN_FSCK_DISKS $boot"
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
disk=*)
|
||||
disk="${arg#*=}"
|
||||
case $disk in
|
||||
ISCSI=*|NBD=*|NFS=*)
|
||||
STORAGE_NETBOOT=yes
|
||||
;;
|
||||
/dev/*|LABEL=*|UUID=*)
|
||||
RUN_FSCK_DISKS="$RUN_FSCK_DISKS $disk"
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
wol_mac=*)
|
||||
wol_mac="${arg#*=}"
|
||||
;;
|
||||
wol_wait=*)
|
||||
wol_wait="${arg#*=}"
|
||||
;;
|
||||
textmode)
|
||||
INIT_UNIT="--unit=textmode.target"
|
||||
;;
|
||||
installer)
|
||||
INIT_UNIT="--unit=installer.target"
|
||||
;;
|
||||
debugging)
|
||||
DEBUG=yes
|
||||
;;
|
||||
progress)
|
||||
PROGRESS=yes
|
||||
INIT_ARGS="$INIT_ARGS --show-status=1"
|
||||
;;
|
||||
nofsck)
|
||||
RUN_FSCK=no
|
||||
;;
|
||||
nosplash)
|
||||
SPLASH=no
|
||||
;;
|
||||
noram)
|
||||
SYSTEM_TORAM=no
|
||||
;;
|
||||
overlay)
|
||||
OVERLAY=yes
|
||||
;;
|
||||
break=*)
|
||||
BREAK="${arg#*=}"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if test "$DEBUG" = "yes"; then
|
||||
exec 3>&1
|
||||
else
|
||||
exec 3>/dev/null
|
||||
fi
|
||||
SILENT_OUT=3
|
||||
|
||||
progress() {
|
||||
if test "$PROGRESS" = "yes"; then
|
||||
echo "### $1 ###"
|
||||
fi
|
||||
}
|
||||
|
||||
debug_shell() {
|
||||
echo "### Starting debugging shell... type exit to quit ###"
|
||||
|
||||
# show cursor
|
||||
echo 0 > /sys/devices/virtual/graphics/fbcon/cursor_blink
|
||||
|
||||
sh </dev/tty1 >/dev/tty1 2>&1
|
||||
}
|
||||
|
||||
error() {
|
||||
# Display fatal error message
|
||||
# $1:action which caused error, $2:message
|
||||
echo "*** Error in $BOOT_STEP: $1: $2 ***"
|
||||
debug_shell
|
||||
}
|
||||
|
||||
break_after() {
|
||||
# Start debug shell after boot step $1
|
||||
case $BREAK in
|
||||
all|*$1*)
|
||||
debug_shell
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Mount handlers
|
||||
# All handlers take the following parameters:
|
||||
# $1:target, $2:mountpoint, $3:mount options, [$4:fs type]
|
||||
|
||||
mount_common() {
|
||||
# Common mount handler, handles block devices and filesystem images
|
||||
MOUNT_OPTIONS="-o $3"
|
||||
[ -n "$4" ] && MOUNT_OPTIONS="-t $4 $MOUNT_OPTIONS"
|
||||
|
||||
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do
|
||||
ERR_ENV=1
|
||||
|
||||
mount $MOUNT_OPTIONS $1 $2 >&$SILENT_OUT 2>&1
|
||||
[ "$?" -eq "0" ] && ERR_ENV=0 && break
|
||||
|
||||
usleep 1000000
|
||||
done
|
||||
[ "$ERR_ENV" -ne "0" ] && error "mount_common" "Could not mount $1"
|
||||
}
|
||||
|
||||
get_iscsistart_options() {
|
||||
# Convert kernel commandline ISCSI= options to iscsistart options
|
||||
IFS_SAVE="$IFS"
|
||||
IFS=,
|
||||
|
||||
for arg in $1; do
|
||||
val="${arg#*=}"
|
||||
case "$arg" in
|
||||
iscsi_initiator=*)
|
||||
option="-i"
|
||||
;;
|
||||
iscsi_target_name=*)
|
||||
option="-t"
|
||||
;;
|
||||
iscsi_target_ip=*)
|
||||
option="-a"
|
||||
;;
|
||||
iscsi_target_port=*)
|
||||
option="-p"
|
||||
;;
|
||||
iscsi_target_group=*)
|
||||
option="-g"
|
||||
;;
|
||||
iscsi_username=*)
|
||||
option="-u"
|
||||
;;
|
||||
iscsi_password=*)
|
||||
option="-w"
|
||||
;;
|
||||
iscsi_in_username=*)
|
||||
option="-U"
|
||||
;;
|
||||
iscsi_in_password=*)
|
||||
option="-W"
|
||||
;;
|
||||
esac
|
||||
echo "$option $val"
|
||||
done
|
||||
|
||||
IFS="$IFS_SAVE"
|
||||
}
|
||||
|
||||
mount_iscsi() {
|
||||
# Mount iSCSI target
|
||||
ISCSI_DEV="${1##*,}"
|
||||
ISCSI_OPTIONS="${1%,*}"
|
||||
|
||||
if [ ! -f "/sbin/iscsistart" ]; then
|
||||
error "iscsistart" "iSCSI support not available"
|
||||
fi
|
||||
|
||||
if [ "$ISCSI_OPTIONS" = "auto" ]; then
|
||||
progress "Network configuration based on iBFT"
|
||||
/sbin/iscsistart -N >&$SILENT_OUT 2>&1 || \
|
||||
error "iscsistart" "Unable to configure network"
|
||||
progress "iSCSI auto connect based on iBFT"
|
||||
/sbin/iscsistart -b >&$SILENT_OUT 2>&1 || \
|
||||
error "iscsistart" "Unable to auto connect"
|
||||
else
|
||||
/sbin/iscsistart $(get_iscsistart_options "$ISCSI_OPTIONS") >&$SILENT_OUT 2>&1 || \
|
||||
error "iscsistart" "Unable to connect to ISCSI target"
|
||||
fi
|
||||
|
||||
mount_common "$ISCSI_DEV" "$2" "$3" "$4"
|
||||
}
|
||||
|
||||
mount_nbd() {
|
||||
# Mount NBD device
|
||||
NBD_SERVER="${1%%:*}"
|
||||
NBD_PORT="${1#*:}"
|
||||
NBD_DEV="/dev/nbd$NBD_DEVS"
|
||||
|
||||
nbd-client $NBD_SERVER $NBD_PORT $NBD_DEV >&$SILENT_OUT 2>&1 || \
|
||||
error "nbd-client" "Could not connect to NBD server $1"
|
||||
|
||||
mount_common "$NBD_DEV" "$2" "$3" "$4"
|
||||
|
||||
NBD_DEVS=$(( ${NBD_DEVS} + 1 ))
|
||||
}
|
||||
|
||||
mount_nfs() {
|
||||
# Mount NFS export
|
||||
NFS_EXPORT="${1%%,*}"
|
||||
NFS_OPTIONS="${1#*,}"
|
||||
|
||||
[ "$NFS_OPTIONS" = "$1" ] && NFS_OPTIONS=
|
||||
|
||||
mount_common "$NFS_EXPORT" "$2" "$3,nolock,soft,timeo=3,retrans=2,rsize=32768,wsize=32768,$NFS_OPTIONS" "nfs"
|
||||
}
|
||||
|
||||
mount_part() {
|
||||
# Mount a local or network filesystem
|
||||
# $1:[TYPE=]target, $2:mountpoint, $3:mount options, [$4:fs type]
|
||||
progress "mount filesystem $1 ..."
|
||||
|
||||
MOUNT_TARGET="${1#*=}"
|
||||
case $1 in
|
||||
LABEL=*|UUID=*|/*)
|
||||
MOUNT_CMD="mount_common"
|
||||
MOUNT_TARGET="$1"
|
||||
;;
|
||||
ISCSI=*)
|
||||
MOUNT_CMD="mount_iscsi"
|
||||
;;
|
||||
NBD=*)
|
||||
MOUNT_CMD="mount_nbd"
|
||||
;;
|
||||
NFS=*)
|
||||
MOUNT_CMD="mount_nfs"
|
||||
;;
|
||||
*)
|
||||
error "mount_part" "Unknown filesystem $1"
|
||||
;;
|
||||
esac
|
||||
$MOUNT_CMD "$MOUNT_TARGET" "$2" "$3" "$4"
|
||||
}
|
||||
|
||||
update_file() {
|
||||
if [ -f "$UPDATE_DIR/$2" -a -f "$3" ]; then
|
||||
echo "updating $1..."
|
||||
mount -o remount,rw /flash
|
||||
mv $UPDATE_DIR/$2 $3 2>/dev/null
|
||||
# loopback file needs writable /flash all the time
|
||||
if [ "${disk%%=*}" != "FILE" ]; then
|
||||
mount -o remount,ro /flash
|
||||
fi
|
||||
sync
|
||||
fi
|
||||
}
|
||||
|
||||
update_partition() {
|
||||
if [ -f "$UPDATE_DIR/$2" -a -b "$3" ]; then
|
||||
echo "updating $1..."
|
||||
dd if="$UPDATE_DIR/$2" of="$3"
|
||||
fi
|
||||
}
|
||||
|
||||
update_bootloader() {
|
||||
export BOOT_ROOT="/flash"
|
||||
export SYSTEM_ROOT="/sysroot"
|
||||
|
||||
mount_part "/flash/$IMAGE_SYSTEM" "/sysroot" "ro,loop"
|
||||
|
||||
if [ -f $SYSTEM_ROOT/usr/share/bootloader/update.sh ]; then
|
||||
echo "updating Bootloader..."
|
||||
sh $SYSTEM_ROOT/usr/share/bootloader/update.sh
|
||||
sync
|
||||
fi
|
||||
|
||||
umount /sysroot
|
||||
}
|
||||
|
||||
load_modules() {
|
||||
progress "Loading kernel modules"
|
||||
|
||||
[ ! -f "/etc/modules" ] && return
|
||||
for module in $(cat /etc/modules); do
|
||||
progress "Loading kernel module $module"
|
||||
insmod "$MODULE_DIR/$module.ko" || \
|
||||
progress "... Failed to load kernel module $module, skipping"
|
||||
done
|
||||
}
|
||||
|
||||
load_splash() {
|
||||
if [ ! "$SPLASH" = "no" ]; then
|
||||
progress "Loading bootsplash"
|
||||
|
||||
SPLASHIMAGE="/splash/splash-full.png"
|
||||
|
||||
# load uvesafb module if needed
|
||||
if [ -f "$MODULE_DIR/uvesafb.ko" -a ! -e /dev/fb0 ]; then
|
||||
progress "Loading kernel module uvesafb.ko"
|
||||
insmod "$MODULE_DIR/uvesafb.ko" || \
|
||||
progress "... Failed to load kernel module uvesafb, skipping"
|
||||
|
||||
# set framebuffer to a default resolution (1024x768-32)
|
||||
if [ ! "$SWITCH_FRAMEBUFFER" = "no" ]; then
|
||||
fbset -g 1024 768 1024 768 32
|
||||
SPLASHIMAGE="/splash/splash-1024.png"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -e /dev/fb0 ]; then
|
||||
# load splash
|
||||
if [ -f /flash/oemsplash.png ]; then
|
||||
SPLASHIMAGE="/flash/oemsplash.png"
|
||||
elif [ -f /splash/splash.conf ]; then
|
||||
. /splash/splash.conf
|
||||
fi
|
||||
|
||||
ply-image $SPLASHIMAGE > /dev/null 2>&1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
do_reboot() {
|
||||
echo "System reboots now..."
|
||||
|
||||
# syncing filesystem
|
||||
sync
|
||||
|
||||
# unmount filesystems
|
||||
if /bin/busybox mountpoint -q /flash ; then
|
||||
/bin/busybox umount /flash
|
||||
fi
|
||||
|
||||
if /bin/busybox mountpoint -q /storage ; then
|
||||
/bin/busybox umount /storage
|
||||
fi
|
||||
|
||||
usleep 2000000
|
||||
/bin/busybox reboot
|
||||
}
|
||||
|
||||
force_fsck() {
|
||||
echo "Filesystem corruption has been detected"
|
||||
echo "To prevent an automatic repair attempt continuing"
|
||||
echo "press any key or power off your system within the next 120 seconds"
|
||||
echo ""
|
||||
read -t120 -n1
|
||||
# The exit status is 0 if input is available
|
||||
# The exit status is greater than 128 if the timeout is exceeded
|
||||
if [ "$?" -ne "0" -o "$?" -gt "128" ] ; then
|
||||
echo "repairing filesystem.."
|
||||
echo ""
|
||||
/sbin/fsck -T -M -y $RUN_FSCK_DISKS
|
||||
FSCK_RET="$?"
|
||||
if [ "$(( $FSCK_RET & 8 ))" = 8 ] ; then
|
||||
# fubar
|
||||
echo "Forced fsck failed. Your system is broken beyond repair"
|
||||
echo "Please re-install OpenELEC"
|
||||
echo ""
|
||||
echo "Press enter to shutdown now"
|
||||
echo ""
|
||||
read fubar
|
||||
poweroff
|
||||
fi
|
||||
do_reboot
|
||||
else
|
||||
echo "shutting down..."
|
||||
sleep 5
|
||||
sync
|
||||
poweroff
|
||||
fi
|
||||
}
|
||||
|
||||
check_disks() {
|
||||
if [ "$RUN_FSCK" = "yes" -a -n "$RUN_FSCK_DISKS" ]; then
|
||||
progress "Checking disk(s): $RUN_FSCK_DISKS"
|
||||
/sbin/fsck -T -M -p -a $RUN_FSCK_DISKS > /dev/null 2>&1
|
||||
FSCK_RET="$?"
|
||||
|
||||
# FSCK_RET is the bit-wise OR of the exit codes for each filesystem that is checked.
|
||||
if [ "$(( $FSCK_RET & 4 ))" = 4 ] ; then
|
||||
# errors left
|
||||
force_fsck
|
||||
elif [ "$(( $FSCK_RET & 2 ))" = 2 ] ; then
|
||||
# reboot needed
|
||||
echo "filesystem repaired, reboot needed..."
|
||||
do_reboot
|
||||
elif [ "$(( $FSCK_RET & 1 ))" = 1 ] ; then
|
||||
# filesystem errors corrected
|
||||
progress "filesystem errors corrected , continuing..."
|
||||
elif [ "$(( $FSCK_RET & 0 ))" = 0 ] ; then
|
||||
# no errors found
|
||||
progress "no filesystem errors found, continuing..."
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
wakeonlan() {
|
||||
if [ "$STORAGE_NETBOOT" = "yes" ]; then
|
||||
wol_ip=${disk%:*}
|
||||
wol_ip=${wol_ip#*=}
|
||||
elif [ "$FLASH_NETBOOT" = "yes" ]; then
|
||||
wol_ip=${boot%:*}
|
||||
wol_ip=${wol_ip#*=}
|
||||
else
|
||||
return 0
|
||||
fi
|
||||
|
||||
if [ -n "$wol_ip" -a -n "$wol_mac" -a -n "$wol_wait" ]; then
|
||||
progress "Sending Magic Packet (WOL) if needed"
|
||||
|
||||
if ! ping -q -c 2 "$wol_ip" &>/dev/null; then
|
||||
ether-wake "$wol_mac"
|
||||
sleep "$wol_wait"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
mount_flash() {
|
||||
progress "Mounting flash"
|
||||
|
||||
wakeonlan
|
||||
|
||||
mount_part "$boot" "/flash" "ro,noatime"
|
||||
}
|
||||
|
||||
mount_storage() {
|
||||
progress "Mounting storage"
|
||||
|
||||
wakeonlan
|
||||
|
||||
if [ -n "$disk" ]; then
|
||||
if [ -n "$OVERLAY" ]; then
|
||||
OVERLAY_DIR=`cat /sys/class/net/eth0/address | tr -d :`
|
||||
|
||||
mount_part "$disk" "/storage" "rw,noatime"
|
||||
mkdir -p /storage/$OVERLAY_DIR
|
||||
umount /storage
|
||||
|
||||
# split $disk into $target,$options so we can append $OVERLAY_DIR
|
||||
options="${disk#*,}"
|
||||
target="${disk%%,*}"
|
||||
if [ "$options" = "$disk" ]; then
|
||||
disk="$target/$OVERLAY_DIR"
|
||||
else
|
||||
disk="$target/$OVERLAY_DIR,$options"
|
||||
fi
|
||||
fi
|
||||
mount_part "$disk" "/storage" "rw,noatime"
|
||||
fi
|
||||
}
|
||||
|
||||
check_update() {
|
||||
progress "Checking for updates"
|
||||
|
||||
UPDATE_TAR=`ls -1 "$UPDATE_DIR"/*.tar 2>/dev/null | head -n 1`
|
||||
if [ -f "$UPDATE_DIR/$UPDATE_KERNEL" -a -f "$UPDATE_DIR/$UPDATE_SYSTEM" -o -f "$UPDATE_TAR" ] ; then
|
||||
if [ "$UPDATE_DISABLED" = "yes" ] ; then
|
||||
rm -rf $UPDATE_DIR/[0-9a-zA-Z]* &>/dev/null
|
||||
echo "Updating not supported on netboot. normal startup in 10s..."
|
||||
sync
|
||||
usleep 10000000
|
||||
return 0
|
||||
fi
|
||||
|
||||
# check for .tar
|
||||
if [ -f "$UPDATE_TAR" ] ; then
|
||||
echo "Found new .tar archive. extracting..."
|
||||
mkdir -p $UPDATE_DIR/.tmp &>/dev/null
|
||||
tar -xf "$UPDATE_TAR" -C $UPDATE_DIR/.tmp &>/dev/null
|
||||
mv $UPDATE_DIR/.tmp/*/target/* $UPDATE_DIR &>/dev/null
|
||||
rm -f "$UPDATE_TAR" &>/dev/null
|
||||
rm -rf $UPDATE_DIR/.tmp &>/dev/null
|
||||
sync
|
||||
if [ ! -f "$UPDATE_DIR/$UPDATE_KERNEL" -o ! -f "$UPDATE_DIR/$UPDATE_SYSTEM" ] ; then
|
||||
echo "missing ${UPDATE_KERNEL} or ${UPDATE_SYSTEM}... normal startup in 10s"
|
||||
sync
|
||||
usleep 10000000
|
||||
return 0
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -f "$UPDATE_DIR/.nocheck" ] ; then
|
||||
MD5_NOCHECK="1"
|
||||
fi
|
||||
|
||||
# check md5 sums if .nocheck doesn't exist
|
||||
if [ "$MD5_NOCHECK" -eq "0" ] ; then
|
||||
if [ -f "$UPDATE_DIR/${UPDATE_KERNEL}.md5" -a -f "$UPDATE_DIR/${UPDATE_SYSTEM}.md5" ] ; then
|
||||
# *.md5 size-check
|
||||
if [ ! -s "$UPDATE_DIR/${UPDATE_KERNEL}.md5" -o ! -s "$UPDATE_DIR/${UPDATE_SYSTEM}.md5" ] ; then
|
||||
echo "zero-sized .md5 file..."
|
||||
MD5_FAILED="1"
|
||||
else
|
||||
sed -i 's#target#/storage/.update#g' "$UPDATE_DIR/${UPDATE_KERNEL}.md5"
|
||||
sed -i 's#target#/storage/.update#g' "$UPDATE_DIR/${UPDATE_SYSTEM}.md5"
|
||||
|
||||
echo "Checking ${UPDATE_KERNEL}.md5..."
|
||||
md5sum -c "$UPDATE_DIR/${UPDATE_KERNEL}.md5" || MD5_FAILED="1"
|
||||
|
||||
echo "Checking ${UPDATE_SYSTEM}.md5..."
|
||||
md5sum -c "$UPDATE_DIR/${UPDATE_SYSTEM}.md5" || MD5_FAILED="1"
|
||||
fi
|
||||
else
|
||||
echo "missing ${UPDATE_KERNEL}.md5 or ${UPDATE_SYSTEM}.md5..."
|
||||
MD5_FAILED="1"
|
||||
fi
|
||||
fi
|
||||
|
||||
# get sizes
|
||||
FLASH_FREE=$(df /flash/ | awk '/[0-9]%/{print $4}')
|
||||
FLASH_FREE=$(( $FLASH_FREE * 1024 ))
|
||||
|
||||
OLD_KERNEL="0"
|
||||
if [ ! -b $IMAGE_KERNEL ]; then
|
||||
OLD_KERNEL=$(stat -t "/flash/$IMAGE_KERNEL" | awk '{print $2}')
|
||||
fi
|
||||
|
||||
OLD_SYSTEM=$(stat -t "/flash/$IMAGE_SYSTEM" | awk '{print $2}')
|
||||
NEW_KERNEL=$(stat -t "$UPDATE_DIR/$UPDATE_KERNEL" | awk '{print $2}')
|
||||
NEW_SYSTEM=$(stat -t "$UPDATE_DIR/$UPDATE_SYSTEM" | awk '{print $2}')
|
||||
|
||||
# old KERNEL+SYSTEM+free space - new KERNEL+SYSTEM must be higher then 5MB
|
||||
# at least 5MB free after update
|
||||
|
||||
TMP_SIZE=$(($OLD_KERNEL+$OLD_SYSTEM+$FLASH_FREE-$NEW_KERNEL-$NEW_SYSTEM))
|
||||
FLASH_FREE_MIN=$(($FLASH_FREE_MIN*1024*1024))
|
||||
|
||||
if [ $TMP_SIZE -ge $FLASH_FREE_MIN ]; then
|
||||
echo "Checking size: OK"
|
||||
else
|
||||
echo "Checking size: FAILED"
|
||||
SIZE_FAILED="1"
|
||||
fi
|
||||
|
||||
# update if size check is ok
|
||||
if [ "$SIZE_FAILED" -eq "0" ] ; then
|
||||
# update if md5 check is ok or .nocheck exists
|
||||
if [ "$MD5_FAILED" -eq "0" -o "$MD5_NOCHECK" -eq "1" ] ; then
|
||||
if [ -b $IMAGE_KERNEL ]; then
|
||||
update_partition "Kernel" "$UPDATE_KERNEL" "$IMAGE_KERNEL"
|
||||
else
|
||||
update_file "Kernel" "$UPDATE_KERNEL" "/flash/$IMAGE_KERNEL"
|
||||
fi
|
||||
update_file "System" "$UPDATE_SYSTEM" "/flash/$IMAGE_SYSTEM"
|
||||
update_bootloader
|
||||
rm -rf $UPDATE_DIR/[0-9a-zA-Z]* &>/dev/null
|
||||
do_reboot
|
||||
else
|
||||
rm -rf $UPDATE_DIR/[0-9a-zA-Z]* &>/dev/null
|
||||
echo "md5 check failed. normal startup in 30s..."
|
||||
sync
|
||||
usleep 30000000
|
||||
fi
|
||||
else
|
||||
rm -rf $UPDATE_DIR/[0-9a-zA-Z]* &>/dev/null
|
||||
echo "size check failed. normal startup in 30s..."
|
||||
sync
|
||||
usleep 30000000
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
prepare_sysroot() {
|
||||
progress "Preparing system"
|
||||
|
||||
if [ "$SYSTEM_TORAM" = "no" -o "$INSTALLED_MEMORY" -lt "$SYSTEM_TORAM_LIMIT" ]; then
|
||||
mount_part "/flash/$IMAGE_SYSTEM" "/sysroot" "ro,loop"
|
||||
else
|
||||
cp /flash/$IMAGE_SYSTEM /dev/$IMAGE_SYSTEM
|
||||
mount_part "/dev/$IMAGE_SYSTEM" "/sysroot" "ro,loop"
|
||||
fi
|
||||
|
||||
mount --move /flash /sysroot/flash
|
||||
|
||||
if [ -n "$disk" ]; then
|
||||
mount --move /storage /sysroot/storage
|
||||
fi
|
||||
|
||||
if [ ! -d "/sysroot/lib/modules/$(uname -r)/" -a -f "/sysroot/usr/lib/systemd/systemd" ]; then
|
||||
echo ""
|
||||
echo "NEVER TOUCH boot= in extlinux.conf / cmdline.txt"
|
||||
echo "if you dont know what you are doing"
|
||||
echo ""
|
||||
echo "your installation is now broken"
|
||||
echo ""
|
||||
echo "normal boot in 60s..."
|
||||
usleep 60000000
|
||||
fi
|
||||
|
||||
|
||||
[ -f "/sysroot/usr/lib/systemd/systemd" ] || error "final_check" "Could not find system."
|
||||
}
|
||||
|
||||
if [ "${boot%%=*}" = "FILE" ]; then
|
||||
error "check arguments" "boot argument can't be FILE type..."
|
||||
fi
|
||||
|
||||
# main boot sequence
|
||||
for BOOT_STEP in \
|
||||
load_modules \
|
||||
check_disks \
|
||||
mount_flash \
|
||||
load_splash \
|
||||
mount_storage \
|
||||
check_update \
|
||||
prepare_sysroot; do
|
||||
$BOOT_STEP
|
||||
[ -n "$DEBUG" ] && break_after $BOOT_STEP
|
||||
done
|
||||
|
||||
BOOT_STEP=final
|
||||
|
||||
# log if booting from usb / removable storage
|
||||
STORAGE=$(cat /proc/mounts | grep " /sysroot/storage " | awk '{print $1}' | awk -F '/' '{print $3}')
|
||||
FLASH=$(cat /proc/mounts | grep " /sysroot/flash " | awk '{print $1}' | awk -F '/' '{print $3}')
|
||||
for i in $STORAGE $FLASH ; do
|
||||
if [ -n "$i" ] ; then
|
||||
removable="/sys/class/block/*/$i/../removable"
|
||||
if [ -e $removable ] ; then
|
||||
if [ "$(cat $removable 2>/dev/null)" = "1" ] ; then
|
||||
echo "### BIG FAT WARNING" > /dev/kmsg
|
||||
echo "### $i is removable. suspend/resume may not work" > /dev/kmsg
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
done
|
||||
# move some special filesystems
|
||||
/bin/busybox mount --move /dev /sysroot/dev
|
||||
/bin/busybox mount --move /proc /sysroot/proc
|
||||
/bin/busybox mount --move /sys /sysroot/sys
|
||||
|
||||
# tell OE settings addon to disable updates
|
||||
if [ "$UPDATE_DISABLED" = "yes" ] ; then
|
||||
echo "" > /sysroot/dev/.update_disabled
|
||||
fi
|
||||
# swap can not be used over nfs.(see scripts/mount-swap)
|
||||
if [ "$STORAGE_NETBOOT" = "yes" ] ; then
|
||||
echo "" > /sysroot/dev/.storage_netboot
|
||||
fi
|
||||
|
||||
if [ -f /sysroot/storage/.please_connect_me ] ; then
|
||||
INIT_UNIT="--unit=connman-ncurses.target"
|
||||
fi
|
||||
|
||||
if [ -f /sysroot/storage/.please_resize_me ] ; then
|
||||
INIT_UNIT="--unit=fs-resize.target"
|
||||
fi
|
||||
|
||||
BACKUP_FILE=`ls -1 /sysroot/storage/.restore/??????????????.tar 2>/dev/null | head -n 1`
|
||||
if [ -f "$BACKUP_FILE" ] ; then
|
||||
INIT_UNIT="--unit=backup-restore.target"
|
||||
fi
|
||||
|
||||
if [ -f /sysroot/storage/.cache/reset_oe -o -f /sysroot/storage/.cache/reset_xbmc ] ; then
|
||||
INIT_UNIT="--unit=factory-reset.target"
|
||||
fi
|
||||
# switch to new sysroot and start real init
|
||||
exec /bin/busybox switch_root /sysroot /usr/lib/systemd/systemd $INIT_ARGS $INIT_UNIT
|
||||
|
||||
error "switch_root" "Error in initramfs. Could not switch to new root"
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue ([email protected])
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
# show release information
|
||||
. /etc/os-release
|
||||
echo "$PRETTY_NAME"
|
||||
+34
@@ -0,0 +1,34 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue ([email protected])
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
message="$message\n There is no working 'passwd'."
|
||||
message="$message\n"
|
||||
message="$message\n The 'passwd' command changes passwords for user accounts."
|
||||
message="$message\n"
|
||||
message="$message\n With OpenELEC it is not possible to change the system password"
|
||||
message="$message\n"
|
||||
message="$message\n SSH is included only as a last support resort. SSH is off by default."
|
||||
message="$message\n Most users never need SSH and need help using it so we need a default"
|
||||
message="$message\n password. If you need to keep SSH always on then this is unsupported"
|
||||
message="$message\n but can be secured with certificates."
|
||||
message="$message\n"
|
||||
message="$message\n TIP: disable password authentication in ssh and use public key authentication."
|
||||
|
||||
echo -e $message
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue ([email protected])
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
#
|
||||
# wrapper for curl, posting to the sprunge.us pastebin
|
||||
# reads from stdin if called without an argument
|
||||
#
|
||||
|
||||
cat "$@" | curl -F 'sprunge=<-' http://sprunge.us
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue ([email protected])
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
message="$message\n There is no working 'sudo'."
|
||||
message="$message\n "
|
||||
message="$message\n On debian/ubuntu/all general purpose linux distributions 'sudo'"
|
||||
message="$message\n allows a permitted user to execute a command as the superuser"
|
||||
message="$message\n or another user, as specified by the security policy"
|
||||
message="$message\n "
|
||||
message="$message\n With OpenELEC you have root access by default, so you dont need 'sudo'"
|
||||
message="$message\n "
|
||||
|
||||
echo -e $message
|
||||
|
||||
exit 1
|
||||
@@ -0,0 +1,97 @@
|
||||
#!/bin/sh
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue ([email protected])
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
. /etc/suspend-modules.conf
|
||||
|
||||
modunload()
|
||||
{
|
||||
local MOD D C USED MODS I
|
||||
local UNL="$(echo $1 |tr - _)" RET=1
|
||||
|
||||
while read MOD D C USED D; do
|
||||
[ "$MOD" = "$UNL" ] || continue
|
||||
if [ "$USED" = "-" ]; then
|
||||
# no dependent modules, just try to remove this one.
|
||||
_rmmod "$MOD" $C
|
||||
RET=$?
|
||||
else
|
||||
# modules depend on this one. try to remove them first.
|
||||
MODS=",${USED%,}"
|
||||
while [ -n "${MODS}" ]; do
|
||||
# try to unload the last one first
|
||||
MOD="${MODS##*,}"
|
||||
modunload $MOD && RET=0
|
||||
# prune the last one from the list
|
||||
MODS="${MODS%,*}"
|
||||
done
|
||||
# if we unloaded at least one module, then let's
|
||||
# try again!
|
||||
[ $RET -eq 0 ] && modunload $MOD
|
||||
RET=$?
|
||||
fi
|
||||
return $RET
|
||||
done < /proc/modules
|
||||
# if we came this far, there was nothing to do,
|
||||
# the module is no longer loaded.
|
||||
return 0
|
||||
}
|
||||
|
||||
_rmmod()
|
||||
{
|
||||
if modprobe -r "$1"; then
|
||||
touch "/run/openelec/suspend/module:$1"
|
||||
return 0
|
||||
else
|
||||
logger -t suspend-modules "# could not unload '$1', usage count was $2"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
resume_modules()
|
||||
{
|
||||
for x in /run/openelec/suspend/module:* ; do
|
||||
[ -O "${x}" ] || continue
|
||||
modprobe "${x##*:}" &>/dev/null && \
|
||||
logger -t resume-modules "Reloaded module ${x##*:}." || \
|
||||
logger -t resume-modules "Could not reload module ${x##*:}."
|
||||
done
|
||||
}
|
||||
|
||||
suspend_modules()
|
||||
{
|
||||
[ -z "$SUSPEND_MODULES" ] && return 0
|
||||
# clean up
|
||||
rm -rf /run/openelec/suspend
|
||||
mkdir -p /run/openelec/suspend
|
||||
for x in $SUSPEND_MODULES ; do
|
||||
modunload $x && \
|
||||
logger -t suspend-modules "Unloading kernel module $x: Done" || \
|
||||
logger -t suspend-modules "Unloading kernel module $x: Failed"
|
||||
done
|
||||
return 0
|
||||
}
|
||||
|
||||
case $1 in
|
||||
pre)
|
||||
suspend_modules
|
||||
;;
|
||||
post)
|
||||
resume_modules
|
||||
;;
|
||||
esac
|
||||
@@ -0,0 +1 @@
|
||||
kernel.core_pattern=/storage/.cache/cores/core.%E.%t.%p
|
||||
@@ -0,0 +1,2 @@
|
||||
dev.cdrom.lock=0
|
||||
dev.cdrom.autoclose=0
|
||||
@@ -0,0 +1 @@
|
||||
vm.min_free_kbytes=16384
|
||||
@@ -0,0 +1,11 @@
|
||||
[Unit]
|
||||
Description=Cron defaults
|
||||
After=local-fs.target
|
||||
|
||||
ConditionPathExists=!/storage/.cache/services/crond.conf
|
||||
ConditionPathExists=!/storage/.cache/services/crond.disabled
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=/bin/sh -c 'cp /usr/share/services/crond.conf /storage/.cache/services/'
|
||||
RemainAfterExit=yes
|
||||
@@ -0,0 +1,16 @@
|
||||
[Unit]
|
||||
Description=Cron daemon
|
||||
After=cron-defaults.service
|
||||
Requires=cron-defaults.service
|
||||
|
||||
ConditionPathExists=/storage/.cache/services/crond.conf
|
||||
|
||||
[Service]
|
||||
ExecStartPre=/bin/mkdir -p /storage/.cache/cron/crontabs
|
||||
ExecStart=/sbin/crond -f -S
|
||||
KillMode=process
|
||||
TimeoutStopSec=1s
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
[Unit]
|
||||
Description=Wifi Menu
|
||||
After=multi-user.target
|
||||
|
||||
[Service]
|
||||
Environment=TTY=1
|
||||
WorkingDirectory=/storage
|
||||
ExecStart=/bin/sh -c 'clear; echo fufuu; . /etc/profile; exec /usr/bin/connman-ncurses'
|
||||
|
||||
Restart=always
|
||||
RestartSec=0
|
||||
StandardInput=tty
|
||||
TTYPath=/dev/tty1
|
||||
TTYReset=yes
|
||||
TTYVHangup=yes
|
||||
KillMode=process
|
||||
IgnoreSIGPIPE=no
|
||||
# bash ignores SIGTERM
|
||||
KillSignal=SIGHUP
|
||||
|
||||
[Install]
|
||||
WantedBy=connman-ncurses.target
|
||||
@@ -0,0 +1,6 @@
|
||||
[Unit]
|
||||
Description=Wifi Menu
|
||||
Requires=multi-user.target
|
||||
After=multi-user.target
|
||||
Conflicts=rescue.target
|
||||
AllowIsolate=yes
|
||||
@@ -0,0 +1,25 @@
|
||||
[Unit]
|
||||
Description=Debug Shell
|
||||
|
||||
DefaultDependencies=no
|
||||
ConditionKernelCommandLine=|tty
|
||||
ConditionKernelCommandLine=|debugging
|
||||
ConditionPathExists=|/storage/.cache/debug.openelec
|
||||
|
||||
[Service]
|
||||
Environment=TTY=3
|
||||
WorkingDirectory=/storage
|
||||
ExecStart=/bin/sh -c '. /etc/profile; exec /bin/sh'
|
||||
Restart=always
|
||||
RestartSec=0
|
||||
StandardInput=tty
|
||||
TTYPath=/dev/tty3
|
||||
TTYReset=yes
|
||||
TTYVHangup=yes
|
||||
KillMode=process
|
||||
IgnoreSIGPIPE=no
|
||||
# bash ignores SIGTERM
|
||||
KillSignal=SIGHUP
|
||||
|
||||
[Install]
|
||||
WantedBy=sysinit.target
|
||||
@@ -0,0 +1,10 @@
|
||||
[Unit]
|
||||
Description=FS Resize
|
||||
DefaultDependencies=no
|
||||
|
||||
[Service]
|
||||
Type=idle
|
||||
ExecStart=/usr/lib/openelec/fs-resize
|
||||
StandardInput=tty-force
|
||||
StandardOutput=inherit
|
||||
StandardError=inherit
|
||||
@@ -0,0 +1,5 @@
|
||||
[Unit]
|
||||
Description=FS Resize target
|
||||
Requires=fs-resize.service
|
||||
After=fs-resize.service
|
||||
AllowIsolate=yes
|
||||
@@ -0,0 +1,22 @@
|
||||
[Unit]
|
||||
Description=Textmode Shell
|
||||
After=multi-user.target
|
||||
|
||||
[Service]
|
||||
Environment=TTY=1
|
||||
WorkingDirectory=/storage
|
||||
ExecStart=/bin/sh -c 'clear; lsb_release; . /etc/profile; exec /bin/sh'
|
||||
|
||||
Restart=always
|
||||
RestartSec=0
|
||||
StandardInput=tty
|
||||
TTYPath=/dev/tty1
|
||||
TTYReset=yes
|
||||
TTYVHangup=yes
|
||||
KillMode=process
|
||||
IgnoreSIGPIPE=no
|
||||
# bash ignores SIGTERM
|
||||
KillSignal=SIGHUP
|
||||
|
||||
[Install]
|
||||
WantedBy=textmode.target
|
||||
@@ -0,0 +1,13 @@
|
||||
[Unit]
|
||||
Description=Show Version
|
||||
DefaultDependencies=false
|
||||
ConditionKernelCommandLine=!morequiet
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=/usr/bin/lsb_release
|
||||
RemainAfterExit=yes
|
||||
#StandardOutput=tty
|
||||
|
||||
[Install]
|
||||
WantedBy=basic.target
|
||||
@@ -0,0 +1,6 @@
|
||||
[Unit]
|
||||
Description=Textmode
|
||||
Requires=multi-user.target
|
||||
After=multi-user.target
|
||||
Conflicts=rescue.target
|
||||
AllowIsolate=yes
|
||||
@@ -0,0 +1,18 @@
|
||||
[Unit]
|
||||
Description=Debug /var/log relink
|
||||
DefaultDependencies=false
|
||||
After=var.mount
|
||||
Before=systemd-journal-flush.service
|
||||
ConditionKernelCommandLine=!installer
|
||||
ConditionKernelCommandLine=|debugging
|
||||
ConditionPathExists=|/storage/.cache/debug.openelec
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStartPre=/bin/rm -rf /var/log
|
||||
ExecStartPre=-/bin/mkdir -p /storage/log/journal
|
||||
ExecStart=-/bin/ln -sf /storage/log /var/log
|
||||
RemainAfterExit=yes
|
||||
|
||||
[Install]
|
||||
WantedBy=sysinit.target
|
||||
@@ -0,0 +1,22 @@
|
||||
# This file is part of systemd.
|
||||
#
|
||||
# systemd is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU Lesser General Public License as published by
|
||||
# the Free Software Foundation; either version 2.1 of the License, or
|
||||
# (at your option) any later version.
|
||||
|
||||
[Unit]
|
||||
Description=Variable Directory
|
||||
Documentation=man:hier(7)
|
||||
Documentation=http://www.freedesktop.org/wiki/Software/systemd/APIFileSystems
|
||||
DefaultDependencies=no
|
||||
Conflicts=umount.target
|
||||
Before=local-fs.target umount.target
|
||||
|
||||
[Mount]
|
||||
What=tmpfs
|
||||
Where=/var
|
||||
Type=tmpfs
|
||||
|
||||
[Install]
|
||||
WantedBy=local-fs.target
|
||||
@@ -0,0 +1,26 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue ([email protected])
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
d /var/lock 0755 root root - -
|
||||
d /var/media 0755 root root - -
|
||||
|
||||
f /var/run/utmp 1777 root root - -
|
||||
d /storage/.update 0755 root root - -
|
||||
d /storage/.cache/cores 0755 root root - -
|
||||
d /storage/.cache/services 0755 root root - -
|
||||
d /storage/.config 0755 root root - -
|
||||
+16
-7
@@ -18,22 +18,31 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="bluez-tools"
|
||||
PKG_VERSION="193ad6b"
|
||||
PKG_NAME="connman-ncurses"
|
||||
PKG_VERSION="e2ad506"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPLv2"
|
||||
PKG_SITE="https://github.com/khvzak/bluez-tools"
|
||||
PKG_SITE="https://github.com/eurogiciel-oss/connman-json-client"
|
||||
PKG_URL="$LAKKA_MIRROR/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_DEPENDS_TARGET="toolchain dbus glib dbus-glib readline"
|
||||
PKG_DEPENDS_TARGET="toolchain ncurses json-c"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="network"
|
||||
PKG_SHORTDESC="A set of tools to manage bluetooth devices for linux"
|
||||
PKG_LONGDESC="This is a GSoC project to implement a set of new command line tools for bluez. The project is implemented in C and uses the D-Bus interface of bluez."
|
||||
PKG_SHORTDESC="A ncurses UI for connman"
|
||||
PKG_LONGDESC="A ncurses UI for connman"
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="yes"
|
||||
|
||||
PKG_CONFIGURE_OPTS_TARGET="--disable-optimization --enable-debug"
|
||||
|
||||
pre_configure_target() {
|
||||
export LDFLAGS="$LDFLAGS -lncurses"
|
||||
if [ -f ../configure ]; then
|
||||
sed -i "s|/usr/include/ncurses|$SYSROOT_PREFIX/usr/include/ncurses|g" ../configure
|
||||
fi
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
mkdir -p $INSTALL/usr/bin
|
||||
cp connman_ncurses $INSTALL/usr/bin/connman-ncurses
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 77 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 77 KiB |
@@ -76,7 +76,7 @@
|
||||
# for a list of additinoal drivers see packages/linux-drivers
|
||||
# Space separated list is supported,
|
||||
# e.g. ADDITIONAL_DRIVERS="DRIVER1 DRIVER2"
|
||||
ADDITIONAL_DRIVERS="RTL8192CU RTL8192DU RTL8188EU RTL8812AU"
|
||||
ADDITIONAL_DRIVERS="RTL8192CU RTL8192DU RTL8192EU RTL8188EU RTL8812AU"
|
||||
|
||||
# build and install bluetooth support (yes / no)
|
||||
BLUETOOTH_SUPPORT="yes"
|
||||
@@ -239,5 +239,100 @@
|
||||
ADDON_URL="$ADDON_SERVER_URL/$ADDON_PATH"
|
||||
|
||||
LAKKA_MIRROR="http://sources.lakka.tv"
|
||||
RA_PLAYLIST_NAMES="Atari - 2600.lpl;Atari - 5200.lpl;Atari - 7800.lpl;Atari - Jaguar.lpl;Atari - Lynx.lpl;Atari - ST.lpl;Bandai - WonderSwan Color.lpl;Bandai - WonderSwan.lpl;Coleco - ColecoVision.lpl;DOOM.lpl;FB Alpha - Arcade Games.lpl;GCE - Vectrex.lpl;Magnavox - Odyssey2.lpl;MAME.lpl;Microsoft - MSX2.lpl;Microsoft - MSX.lpl;NEC - PC Engine SuperGrafx.lpl;NEC - PC Engine - TurboGrafx 16.lpl;Nintendo - Famicom Disk System.lpl;Nintendo - Game Boy Advance (e-Cards).lpl;Nintendo - Game Boy Advance.lpl;Nintendo - Game Boy Color.lpl;Nintendo - Game Boy.lpl;Nintendo - Nintendo 64.lpl;Nintendo - Nintendo DS Decrypted.lpl;Nintendo - Nintendo DS (Download Play) (BETA).lpl;Nintendo - Nintendo DSi Decrypted.lpl;Nintendo - Nintendo DSi (DLC).lpl;Nintendo - Nintendo Entertainment System.lpl;Nintendo - Satellaview.lpl;Nintendo - Super Nintendo Entertainment System.lpl;Nintendo - Virtual Boy.lpl;Quake1.lpl;ScummVM.lpl;Sega - 32X.lpl;Sega - Game Gear.lpl;Sega - Master System - Mark III.lpl;Sega - Mega Drive - Genesis.lpl;Sega - PICO.lpl;Sega - SG-1000.lpl;Sinclair - ZX Spectrum +3.lpl;SNK - Neo Geo Pocket Color.lpl;SNK - Neo Geo Pocket.lpl;Sony - PlayStation Portable.lpl;Sony - PlayStation.lpl"
|
||||
RA_PLAYLIST_CORES="/tmp/cores/stella_libretro.so;DETECT;/tmp/cores/prosystem_libretro.so;/tmp/cores/virtualjaguar_libretro.so;/tmp/cores/handy_libretro.so;/tmp/cores/hatari_libretro.so;/tmp/cores/mednafen_wswan_libretro.so;/tmp/cores/mednafen_wswan_libretro.so;/tmp/cores/bluemsx_libretro.so;/tmp/cores/prboom_libretro.so;/tmp/cores/fba_libretro.so;/tmp/cores/vecx_libretro.so;/tmp/cores/o2em_libretro.so;/tmp/cores/mame_libretro.so;/tmp/cores/bluemsx_libretro.so;/tmp/cores/bluemsx_libretro.so;/tmp/cores/mednafen_supergrafx_libretro.so;/tmp/cores/mednafen_pce_fast_libretro.so;/tmp/cores/nestopia_libretro.so;/tmp/cores/gpsp_libretro.so;/tmp/cores/gpsp_libretro.so;/tmp/cores/gambatte_libretro.so;/tmp/cores/gambatte_libretro.so;/tmp/cores/mupen64plus_libretro.so;/tmp/cores/desmume_libretro.so;/tmp/cores/desmume_libretro.so;/tmp/cores/desmume_libretro.so;/tmp/cores/desmume_libretro.so;/tmp/cores/nestopia_libretro.so;/tmp/cores/snes9x_next_libretro.so;/tmp/cores/snes9x_next_libretro.so;/tmp/cores/mednafen_vb_libretro.so;/tmp/cores/tyrquake_libretro.so;/tmp/cores/scummvm_libretro.so;/tmp/cores/picodrive_libretro.so;/tmp/cores/genesis_plus_gx_libretro.so;/tmp/cores/genesis_plus_gx_libretro.so;/tmp/cores/genesis_plus_gx_libretro.so;/tmp/cores/picodrive_libretro.so;/tmp/cores/genesis_plus_gx_libretro.so;/tmp/cores/fuse_libretro.so;/tmp/cores/mednafen_ngp_libretro.so;/tmp/cores/mednafen_ngp_libretro.so;/tmp/cores/ppsspp_libretro.so;/tmp/cores/pcsx_rearmed_libretro.so"
|
||||
RA_PLAYLIST_NAMES=""\
|
||||
"Atari - 2600.lpl;"\
|
||||
"Atari - 5200.lpl;"\
|
||||
"Atari - 7800.lpl;"\
|
||||
"Atari - Jaguar.lpl;"\
|
||||
"Atari - Lynx.lpl;"\
|
||||
"Atari - ST.lpl;"\
|
||||
"Bandai - WonderSwan Color.lpl;"\
|
||||
"Bandai - WonderSwan.lpl;"\
|
||||
"Cave Story.lpl;"\
|
||||
"Coleco - ColecoVision.lpl;"\
|
||||
"DOOM.lpl;"\
|
||||
"FB Alpha - Arcade Games.lpl;"\
|
||||
"GCE - Vectrex.lpl;"\
|
||||
"Lutro.lpl;"\
|
||||
"Magnavox - Odyssey2.lpl;"\
|
||||
"MAME.lpl;"\
|
||||
"Microsoft - MSX2.lpl;"\
|
||||
"Microsoft - MSX.lpl;"\
|
||||
"NEC - PC Engine SuperGrafx.lpl;"\
|
||||
"NEC - PC Engine - TurboGrafx 16.lpl;"\
|
||||
"Nintendo - Famicom Disk System.lpl;"\
|
||||
"Nintendo - Game Boy Advance (e-Cards).lpl;"\
|
||||
"Nintendo - Game Boy Advance.lpl;"\
|
||||
"Nintendo - Game Boy Color.lpl;"\
|
||||
"Nintendo - Game Boy.lpl;"\
|
||||
"Nintendo - Nintendo 64.lpl;"\
|
||||
"Nintendo - Nintendo DS Decrypted.lpl;"\
|
||||
"Nintendo - Nintendo DS (Download Play) (BETA).lpl;"\
|
||||
"Nintendo - Nintendo DSi Decrypted.lpl;"\
|
||||
"Nintendo - Nintendo DSi (DLC).lpl;"\
|
||||
"Nintendo - Nintendo Entertainment System.lpl;"\
|
||||
"Nintendo - Satellaview.lpl;"\
|
||||
"Nintendo - Super Nintendo Entertainment System.lpl;"\
|
||||
"Nintendo - Virtual Boy.lpl;"\
|
||||
"Quake1.lpl;"\
|
||||
"ScummVM.lpl;"\
|
||||
"Sega - 32X.lpl;"\
|
||||
"Sega - Game Gear.lpl;"\
|
||||
"Sega - Master System - Mark III.lpl;"\
|
||||
"Sega - Mega Drive - Genesis.lpl;"\
|
||||
"Sega - PICO.lpl;"\
|
||||
"Sega - SG-1000.lpl;"\
|
||||
"Sinclair - ZX Spectrum +3.lpl;"\
|
||||
"SNK - Neo Geo Pocket Color.lpl;"\
|
||||
"SNK - Neo Geo Pocket.lpl;"\
|
||||
"Sony - PlayStation Portable.lpl;"\
|
||||
"Sony - PlayStation.lpl"
|
||||
|
||||
RA_PLAYLIST_CORES=""\
|
||||
"/tmp/cores/stella_libretro.so;"\
|
||||
"DETECT;"\
|
||||
"/tmp/cores/prosystem_libretro.so;"\
|
||||
"/tmp/cores/virtualjaguar_libretro.so;"\
|
||||
"/tmp/cores/handy_libretro.so;"\
|
||||
"/tmp/cores/hatari_libretro.so;"\
|
||||
"/tmp/cores/mednafen_wswan_libretro.so;"\
|
||||
"/tmp/cores/mednafen_wswan_libretro.so;"\
|
||||
"/tmp/cores/nxengine_libretro.so;"\
|
||||
"/tmp/cores/bluemsx_libretro.so;"\
|
||||
"/tmp/cores/prboom_libretro.so;"\
|
||||
"/tmp/cores/fba_libretro.so;"\
|
||||
"/tmp/cores/vecx_libretro.so;"\
|
||||
"/tmp/cores/lutro_libretro.so;"\
|
||||
"/tmp/cores/o2em_libretro.so;"\
|
||||
"/tmp/cores/mame_libretro.so;"\
|
||||
"/tmp/cores/bluemsx_libretro.so;"\
|
||||
"/tmp/cores/bluemsx_libretro.so;"\
|
||||
"/tmp/cores/mednafen_supergrafx_libretro.so;"\
|
||||
"/tmp/cores/mednafen_pce_fast_libretro.so;"\
|
||||
"/tmp/cores/nestopia_libretro.so;"\
|
||||
"/tmp/cores/mgba_libretro.so;"\
|
||||
"/tmp/cores/mgba_libretro.so;"\
|
||||
"/tmp/cores/gambatte_libretro.so;"\
|
||||
"/tmp/cores/gambatte_libretro.so;"\
|
||||
"/tmp/cores/mupen64plus_libretro.so;"\
|
||||
"/tmp/cores/desmume_libretro.so;"\
|
||||
"/tmp/cores/desmume_libretro.so;"\
|
||||
"/tmp/cores/desmume_libretro.so;"\
|
||||
"/tmp/cores/desmume_libretro.so;"\
|
||||
"/tmp/cores/nestopia_libretro.so;"\
|
||||
"/tmp/cores/snes9x_next_libretro.so;"\
|
||||
"/tmp/cores/snes9x_next_libretro.so;"\
|
||||
"/tmp/cores/mednafen_vb_libretro.so;"\
|
||||
"/tmp/cores/tyrquake_libretro.so;"\
|
||||
"/tmp/cores/scummvm_libretro.so;"\
|
||||
"/tmp/cores/picodrive_libretro.so;"\
|
||||
"/tmp/cores/genesis_plus_gx_libretro.so;"\
|
||||
"/tmp/cores/genesis_plus_gx_libretro.so;"\
|
||||
"/tmp/cores/genesis_plus_gx_libretro.so;"\
|
||||
"/tmp/cores/picodrive_libretro.so;"\
|
||||
"/tmp/cores/genesis_plus_gx_libretro.so;"\
|
||||
"/tmp/cores/fuse_libretro.so;"\
|
||||
"/tmp/cores/mednafen_ngp_libretro.so;"\
|
||||
"/tmp/cores/mednafen_ngp_libretro.so;"\
|
||||
"/tmp/cores/ppsspp_libretro.so;"\
|
||||
"/tmp/cores/pcsx_rearmed_libretro.so"
|
||||
+29
-5
@@ -2,21 +2,45 @@
|
||||
|
||||
rm -rf target/
|
||||
|
||||
DISTRO=Lakka PROJECT=RPi ARCH=arm make image -j9
|
||||
DISTRO=Lakka PROJECT=RPi ARCH=arm make noobs -j9
|
||||
DISTRO=Lakka PROJECT=RPi2 ARCH=arm make image -j9
|
||||
DISTRO=Lakka PROJECT=RPi2 ARCH=arm make noobs -j9
|
||||
DISTRO=Lakka PROJECT=imx6 ARCH=arm make image -j9
|
||||
>&2 echo "Generic.x86_64"
|
||||
DISTRO=Lakka PROJECT=Generic ARCH=x86_64 make image -j9
|
||||
>&2 echo "Generic.i386"
|
||||
DISTRO=Lakka PROJECT=Generic ARCH=i386 make image -j9
|
||||
>&2 echo "Generic.x86_64 UEFI"
|
||||
DISTRO=Lakka PROJECT=Generic ARCH=x86_64 UEFI="yes" make image -j9
|
||||
>&2 echo "Generic.i386 UEFI"
|
||||
DISTRO=Lakka PROJECT=Generic ARCH=i386 UEFI="yes" make image -j9
|
||||
>&2 echo "RPi.arm"
|
||||
DISTRO=Lakka PROJECT=RPi ARCH=arm make image -j9
|
||||
>&2 echo "RPi.arm noobs"
|
||||
DISTRO=Lakka PROJECT=RPi ARCH=arm make noobs -j9
|
||||
>&2 echo "RPi2.arm"
|
||||
DISTRO=Lakka PROJECT=RPi2 ARCH=arm make image -j9
|
||||
>&2 echo "RPi2.arm noobs"
|
||||
DISTRO=Lakka PROJECT=RPi2 ARCH=arm make noobs -j9
|
||||
>&2 echo "imx6.cuboxi.arm"
|
||||
DISTRO=Lakka PROJECT=imx6 SYSTEM=cuboxi ARCH=arm make image -j9
|
||||
>&2 echo "imx6.udoo.arm"
|
||||
DISTRO=Lakka PROJECT=imx6 SYSTEM=udoo ARCH=arm scripts/clean retroarch
|
||||
DISTRO=Lakka PROJECT=imx6 SYSTEM=udoo ARCH=arm make image -j9
|
||||
>&2 echo "a20.arm"
|
||||
DISTRO=Lakka PROJECT=a20 ARCH=arm make image -j9
|
||||
>&2 echo "a10.arm"
|
||||
DISTRO=Lakka PROJECT=a10 ARCH=arm make image -j9
|
||||
>&2 echo "Bananapi.arm"
|
||||
DISTRO=Lakka PROJECT=Bananapi ARCH=arm make image -j9
|
||||
>&2 echo "OdroidC1.arm"
|
||||
DISTRO=Lakka PROJECT=OdroidC1 ARCH=arm make image -j9
|
||||
>&2 echo "OdroidXU3.arm"
|
||||
DISTRO=Lakka PROJECT=OdroidXU3 ARCH=arm make image -j9
|
||||
>&2 echo "WeTek_Play.arm"
|
||||
DISTRO=Lakka PROJECT=WeTek_Play ARCH=arm make image -j9
|
||||
>&2 echo "WeTek_Core.arm"
|
||||
DISTRO=Lakka PROJECT=WeTek_Core ARCH=arm make image -j9
|
||||
|
||||
rm target/*.kernel
|
||||
rm target/*.system
|
||||
|
||||
for f in target/*; do
|
||||
md5sum $f > $f.md5
|
||||
sha256sum $f > $f.sha256
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
PKG_NAME="alsa-lib"
|
||||
PKG_VERSION="1.1.0"
|
||||
PKG_REV="1"
|
||||
PKG_REV="4"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.alsa-project.org/"
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
#Keep Alsa default order
|
||||
for i in 5 4 3 2 1 0; do [ -e /dev/snd/pcmC${i}D0p ] && export ALSA_CARD=$i; done
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="binutils"
|
||||
PKG_VERSION="2.25"
|
||||
PKG_VERSION="2.26.1"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue ([email protected])
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="json-c"
|
||||
PKG_VERSION="33ae9f5"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="MIT"
|
||||
PKG_SITE="https://github.com/json-c/json-c"
|
||||
PKG_URL="$LAKKA_MIRROR/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="devel"
|
||||
PKG_SHORTDESC="A JSON implementation in C"
|
||||
PKG_LONGDESC="JSON-C implements a reference counting object model that allows you to easily construct JSON objects in C, output them as JSON formatted strings and parse JSON formatted strings back into the C representation of JSON objects. It aims to conform to RFC 7159"
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="yes"
|
||||
|
||||
PKG_CONFIGURE_OPTS_TARGET="ac_cv_func_realloc_0_nonnull=yes \
|
||||
ac_cv_func_malloc_0_nonnull=yes \
|
||||
--enable-static --disable-shared \
|
||||
--disable-oldname-compat"
|
||||
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="odroidc1-mali"
|
||||
PKG_VERSION="r5p1-01rel0-armhf"
|
||||
PKG_VERSION="31d5c21"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="nonfree"
|
||||
@@ -41,10 +41,10 @@ make_target() {
|
||||
|
||||
makeinstall_target() {
|
||||
mkdir -p $SYSROOT_PREFIX/usr/lib
|
||||
cp -PR usr/lib/* $SYSROOT_PREFIX/usr/lib
|
||||
cp -PR fbdev/mali_libs/* $SYSROOT_PREFIX/usr/lib
|
||||
mkdir -p $SYSROOT_PREFIX/usr/include
|
||||
cp -PR usr/include/* $SYSROOT_PREFIX/usr/include
|
||||
cp -PR fbdev/mali_libs/* $SYSROOT_PREFIX/usr/include
|
||||
mkdir -p $INSTALL/usr/lib
|
||||
cp -PR usr/lib/*.so* $INSTALL/usr/lib
|
||||
cp -PR fbdev/mali_libs/*.so* $INSTALL/usr/lib
|
||||
}
|
||||
|
||||
@@ -19,12 +19,12 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="odroidxu3-mali"
|
||||
PKG_VERSION="r6p0-02rel0"
|
||||
PKG_VERSION="r7p0-02rel0"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="nonfree"
|
||||
PKG_SITE="http://malideveloper.arm.com/resources/drivers/arm-mali-midgard-gpu-user-space-drivers/"
|
||||
PKG_URL="http://malideveloper.arm.com/downloads/drivers/binary/r6p0-02rel0/mali-t62x_r6p0-02rel0_linux_1+fbdev.tar.gz"
|
||||
PKG_URL="http://malideveloper.arm.com/downloads/drivers/binary/r7p0-02rel0/mali-t62x_r7p0-02rel0_linux_1+fbdev.tar.gz"
|
||||
PKG_SOURCE_DIR="fbdev"
|
||||
PKG_BUILD_DEPENDS_TARGET="toolchain"
|
||||
PKG_DEPENDS_TARGET="libump odroidxu3-mali-headers"
|
||||
|
||||
@@ -25,7 +25,7 @@ PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/lakkatv/Lakka"
|
||||
PKG_URL=""
|
||||
PKG_DEPENDS_TARGET="retroarch prosystem o2em 81 fuse-libretro gw-libretro beetle-ngp beetle-sgx genesis-plus-gx mupen64plus lutro gpsp 2048 pcsx_rearmed snes9x-next vecx dinothawr prboom beetle-pce handy picodrive pocketsnes nxengine nestopia gambatte stella fba libretro-ffmpeg"
|
||||
PKG_DEPENDS_TARGET="retroarch tyrquake scummvm dosbox mgba prosystem o2em 81 fuse-libretro gw-libretro beetle-wswan beetle-ngp beetle-sgx genesis-plus-gx mupen64plus lutro gpsp 2048 pcsx_rearmed snes9x-next vecx dinothawr prboom beetle-pce handy picodrive pocketsnes nxengine nestopia gambatte stella fba libretro-ffmpeg"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="virtual"
|
||||
PKG_SHORTDESC="Lakka metapackage for Bananapi"
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue ([email protected])
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="Gamegirl"
|
||||
PKG_VERSION=""
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/lakkatv/Lakka"
|
||||
PKG_URL=""
|
||||
PKG_DEPENDS_TARGET="retroarch tyrquake scummvm dosbox mgba prosystem o2em genesis-plus-gx 81 fuse-libretro gw-libretro lutro gpsp 2048 vecx dinothawr prboom beetle-wswan beetle-ngp beetle-pce beetle-sgx handy picodrive pocketsnes nxengine fceumm gambatte stella fba libretro-ffmpeg gamegirl-screen gamegirl-joypad"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="virtual"
|
||||
PKG_SHORTDESC="Lakka metapackage for Gamegirl"
|
||||
PKG_LONGDESC=""
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
@@ -25,7 +25,10 @@ PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/lakkatv/Lakka"
|
||||
PKG_URL=""
|
||||
PKG_DEPENDS_TARGET="retroarch o2em puae snes9x picodrive 81 yabause hatari dosbox mame2003 gw-libretro fuse-libretro scummvm bluemsx beetle-sgx lutro 4do prosystem bsnes-mercury tyrquake 2048 virtualjaguar ppsspp beetle-vb beetle-wswan desmume beetle-ngp beetle-pcfx beetle-psx mupen64plus vecx snes9x-next dinothawr prboom beetle-pce fba handy genesis-plus-gx nxengine nestopia gambatte stella vbam libretro-ffmpeg"
|
||||
PKG_DEPENDS_TARGET="retroarch uzebox mgba o2em puae snes9x picodrive 81 yabause hatari dosbox mame2003 gw-libretro fuse-libretro scummvm bluemsx beetle-sgx lutro 4do prosystem bsnes-mercury tyrquake 2048 virtualjaguar ppsspp beetle-vb beetle-wswan desmume beetle-ngp beetle-pcfx beetle-psx mupen64plus vecx snes9x-next dinothawr prboom beetle-pce fba handy genesis-plus-gx nxengine nestopia gambatte stella vbam libretro-ffmpeg"
|
||||
if [ "$ARCH" == "x86_64" ]; then
|
||||
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET reicast"
|
||||
fi
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="virtual"
|
||||
PKG_SHORTDESC="Lakka metapackage for Generic"
|
||||
|
||||
@@ -25,7 +25,7 @@ PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/lakkatv/Lakka"
|
||||
PKG_URL=""
|
||||
PKG_DEPENDS_TARGET="retroarch prosystem o2em 81 fuse-libretro gw-libretro beetle-sgx genesis-plus-gx mupen64plus lutro gpsp ppsspp 2048 beetle-vb beetle-wswan beetle-ngp pcsx_rearmed vecx snes9x-next dinothawr prboom beetle-pce handy picodrive nxengine nestopia gambatte stella fba libretro-ffmpeg"
|
||||
PKG_DEPENDS_TARGET="retroarch tyrquake scummvm dosbox mgba prosystem o2em 81 fuse-libretro gw-libretro beetle-sgx genesis-plus-gx mupen64plus lutro gpsp ppsspp 2048 beetle-vb beetle-wswan beetle-ngp pcsx_rearmed vecx snes9x-next dinothawr prboom beetle-pce handy picodrive nxengine nestopia gambatte stella fba libretro-ffmpeg"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="virtual"
|
||||
PKG_SHORTDESC="Lakka metapackage for OdroidC1"
|
||||
|
||||
@@ -25,7 +25,7 @@ PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/lakkatv/Lakka"
|
||||
PKG_URL=""
|
||||
PKG_DEPENDS_TARGET="retroarch prosystem o2em 81 fuse-libretro gw-libretro beetle-sgx genesis-plus-gx mupen64plus lutro gpsp ppsspp 2048 beetle-vb beetle-wswan beetle-ngp pcsx_rearmed vecx snes9x-next dinothawr prboom beetle-pce handy picodrive nxengine nestopia gambatte stella fba libretro-ffmpeg"
|
||||
PKG_DEPENDS_TARGET="retroarch tyrquake scummvm dosbox mgba prosystem o2em 81 fuse-libretro gw-libretro beetle-sgx genesis-plus-gx mupen64plus lutro gpsp ppsspp 2048 beetle-vb beetle-wswan beetle-ngp pcsx_rearmed vecx snes9x-next dinothawr prboom beetle-pce handy picodrive nxengine nestopia gambatte stella fba libretro-ffmpeg"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="virtual"
|
||||
PKG_SHORTDESC="Lakka metapackage for OdroidXU3"
|
||||
|
||||
@@ -25,7 +25,7 @@ PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/lakkatv/Lakka"
|
||||
PKG_URL=""
|
||||
PKG_DEPENDS_TARGET="retroarch prosystem o2em genesis-plus-gx 81 fuse-libretro gw-libretro lutro gpsp 2048 vecx dinothawr prboom beetle-ngp beetle-pce handy picodrive pocketsnes nxengine fceumm gambatte stella fba libretro-ffmpeg"
|
||||
PKG_DEPENDS_TARGET="retroarch tyrquake scummvm dosbox mgba prosystem o2em genesis-plus-gx 81 fuse-libretro gw-libretro lutro gpsp 2048 vecx dinothawr prboom beetle-wswan beetle-ngp beetle-pce beetle-sgx handy picodrive pocketsnes nxengine fceumm gambatte stella fba libretro-ffmpeg"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="virtual"
|
||||
PKG_SHORTDESC="Lakka metapackage for RPi"
|
||||
|
||||
@@ -25,7 +25,7 @@ PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/lakkatv/Lakka"
|
||||
PKG_URL=""
|
||||
PKG_DEPENDS_TARGET="retroarch prosystem o2em ppsspp 81 fuse-libretro gw-libretro beetle-sgx beetle-ngp lutro snes9x-next genesis-plus-gx pcsx_rearmed mupen64plus gpsp 2048 vecx dinothawr prboom beetle-pce handy picodrive pocketsnes nxengine nestopia gambatte stella fba libretro-ffmpeg"
|
||||
PKG_DEPENDS_TARGET="retroarch uzebox tyrquake scummvm dosbox mgba prosystem o2em ppsspp 81 fuse-libretro gw-libretro beetle-wswan beetle-sgx beetle-ngp lutro snes9x-next genesis-plus-gx pcsx_rearmed mupen64plus gpsp 2048 vecx dinothawr prboom beetle-pce handy picodrive pocketsnes nxengine nestopia gambatte stella fba libretro-ffmpeg"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="virtual"
|
||||
PKG_SHORTDESC="Lakka metapackage for RPi 2"
|
||||
|
||||
@@ -25,7 +25,7 @@ PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/lakkatv/Lakka"
|
||||
PKG_URL=""
|
||||
PKG_DEPENDS_TARGET="retroarch prosystem o2em 81 fuse-libretro gw-libretro beetle-sgx genesis-plus-gx mupen64plus lutro gpsp ppsspp 2048 beetle-vb beetle-wswan beetle-ngp pcsx_rearmed vecx snes9x-next dinothawr prboom beetle-pce handy picodrive nxengine nestopia gambatte stella fba libretro-ffmpeg"
|
||||
PKG_DEPENDS_TARGET="retroarch tyrquake scummvm dosbox mgba prosystem o2em 81 fuse-libretro gw-libretro beetle-sgx genesis-plus-gx mupen64plus lutro gpsp ppsspp 2048 beetle-vb beetle-wswan beetle-ngp pcsx_rearmed vecx snes9x-next dinothawr prboom beetle-pce handy picodrive nxengine nestopia gambatte stella fba libretro-ffmpeg"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="virtual"
|
||||
PKG_SHORTDESC="Lakka metapackage for Wandboard"
|
||||
|
||||
@@ -25,7 +25,7 @@ PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/lakkatv/Lakka"
|
||||
PKG_URL=""
|
||||
PKG_DEPENDS_TARGET="retroarch prosystem o2em 81 fuse-libretro gw-libretro beetle-sgx genesis-plus-gx mupen64plus lutro gpsp ppsspp 2048 beetle-vb beetle-wswan beetle-ngp pcsx_rearmed vecx snes9x-next dinothawr prboom beetle-pce handy picodrive nxengine nestopia gambatte stella fba libretro-ffmpeg"
|
||||
PKG_DEPENDS_TARGET="retroarch tyrquake scummvm dosbox mgba prosystem o2em 81 fuse-libretro gw-libretro beetle-sgx genesis-plus-gx mupen64plus lutro gpsp ppsspp 2048 beetle-vb beetle-wswan beetle-ngp pcsx_rearmed vecx snes9x-next dinothawr prboom beetle-pce handy picodrive nxengine nestopia gambatte stella fba libretro-ffmpeg"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="virtual"
|
||||
PKG_SHORTDESC="Lakka metapackage for WeTek_Core"
|
||||
|
||||
@@ -25,7 +25,7 @@ PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/lakkatv/Lakka"
|
||||
PKG_URL=""
|
||||
PKG_DEPENDS_TARGET="retroarch prosystem o2em 81 fuse-libretro gw-libretro beetle-sgx genesis-plus-gx mupen64plus lutro gpsp ppsspp 2048 beetle-vb beetle-wswan beetle-ngp pcsx_rearmed vecx snes9x-next dinothawr prboom beetle-pce handy picodrive nxengine nestopia gambatte stella fba libretro-ffmpeg"
|
||||
PKG_DEPENDS_TARGET="retroarch tyrquake scummvm dosbox mgba prosystem o2em 81 fuse-libretro gw-libretro beetle-sgx genesis-plus-gx mupen64plus lutro gpsp ppsspp 2048 beetle-vb beetle-wswan beetle-ngp pcsx_rearmed vecx snes9x-next dinothawr prboom beetle-pce handy picodrive nxengine nestopia gambatte stella fba libretro-ffmpeg"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="virtual"
|
||||
PKG_SHORTDESC="Lakka metapackage for WeTek_Play"
|
||||
|
||||
@@ -25,7 +25,7 @@ PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/lakkatv/Lakka"
|
||||
PKG_URL=""
|
||||
PKG_DEPENDS_TARGET="retroarch prosystem o2em 81 fuse-libretro gw-libretro beetle-ngp beetle-sgx genesis-plus-gx mupen64plus lutro gpsp 2048 pcsx_rearmed snes9x-next vecx dinothawr prboom beetle-pce handy picodrive pocketsnes nxengine nestopia gambatte stella fba libretro-ffmpeg"
|
||||
PKG_DEPENDS_TARGET="retroarch tyrquake scummvm dosbox mgba prosystem o2em 81 fuse-libretro gw-libretro beetle-wswan beetle-ngp beetle-sgx genesis-plus-gx mupen64plus lutro gpsp 2048 pcsx_rearmed snes9x-next vecx dinothawr prboom beetle-pce handy picodrive pocketsnes nxengine nestopia gambatte stella fba libretro-ffmpeg"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="virtual"
|
||||
PKG_SHORTDESC="Lakka metapackage for Cubieboard"
|
||||
|
||||
@@ -25,7 +25,7 @@ PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/lakkatv/Lakka"
|
||||
PKG_URL=""
|
||||
PKG_DEPENDS_TARGET="retroarch prosystem o2em 81 fuse-libretro gw-libretro beetle-ngp beetle-sgx genesis-plus-gx mupen64plus lutro gpsp 2048 pcsx_rearmed snes9x-next vecx dinothawr prboom beetle-pce handy picodrive pocketsnes nxengine nestopia gambatte stella fba libretro-ffmpeg"
|
||||
PKG_DEPENDS_TARGET="retroarch tyrquake scummvm dosbox mgba prosystem o2em 81 fuse-libretro gw-libretro beetle-wswan beetle-ngp beetle-sgx genesis-plus-gx mupen64plus lutro gpsp 2048 pcsx_rearmed snes9x-next vecx dinothawr prboom beetle-pce handy picodrive pocketsnes nxengine nestopia gambatte stella fba libretro-ffmpeg"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="virtual"
|
||||
PKG_SHORTDESC="Lakka metapackage for Cubieboard2 and Cubietruck"
|
||||
|
||||
@@ -25,7 +25,7 @@ PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/lakkatv/Lakka"
|
||||
PKG_URL=""
|
||||
PKG_DEPENDS_TARGET="retroarch prosystem o2em 81 fuse-libretro gw-libretro beetle-sgx genesis-plus-gx mupen64plus lutro gpsp ppsspp 2048 beetle-vb beetle-wswan beetle-ngp pcsx_rearmed vecx snes9x-next dinothawr prboom beetle-pce handy picodrive nxengine nestopia gambatte stella fba libretro-ffmpeg"
|
||||
PKG_DEPENDS_TARGET="retroarch tyrquake scummvm dosbox mgba prosystem o2em 81 fuse-libretro gw-libretro beetle-sgx genesis-plus-gx mupen64plus lutro gpsp ppsspp 2048 beetle-vb beetle-wswan beetle-ngp pcsx_rearmed vecx snes9x-next dinothawr prboom beetle-pce handy picodrive nxengine nestopia gambatte stella fba libretro-ffmpeg"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="virtual"
|
||||
PKG_SHORTDESC="Lakka metapackage for Cuboxi and Hummingboard"
|
||||
|
||||
@@ -0,0 +1,127 @@
|
||||
Index: gcc-4.9.2/gcc/cp/Make-lang.in
|
||||
===================================================================
|
||||
--- gcc-4.9.2/gcc/cp/Make-lang.in (revision 233574)
|
||||
+++ gcc-4.9.2/gcc/cp/Make-lang.in (working copy)
|
||||
@@ -111,7 +111,7 @@ else
|
||||
# deleting the $(srcdir)/cp/cfns.h file.
|
||||
$(srcdir)/cp/cfns.h:
|
||||
endif
|
||||
- gperf -o -C -E -k '1-6,$$' -j1 -D -N 'libc_name_p' -L ANSI-C \
|
||||
+ gperf -o -C -E -k '1-6,$$' -j1 -D -N 'libc_name_p' -L C++ \
|
||||
$(srcdir)/cp/cfns.gperf --output-file $(srcdir)/cp/cfns.h
|
||||
|
||||
#
|
||||
Index: gcc-4.9.2/gcc/cp/cfns.gperf
|
||||
===================================================================
|
||||
--- gcc-4.9.2/gcc/cp/cfns.gperf (revision 233574)
|
||||
+++ gcc-4.9.2/gcc/cp/cfns.gperf (working copy)
|
||||
@@ -1,3 +1,5 @@
|
||||
+%language=C++
|
||||
+%define class-name libc_name
|
||||
%{
|
||||
/* Copyright (C) 2000-2015 Free Software Foundation, Inc.
|
||||
|
||||
@@ -16,14 +18,6 @@ for more details.
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GCC; see the file COPYING3. If not see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
-#ifdef __GNUC__
|
||||
-__inline
|
||||
-#endif
|
||||
-static unsigned int hash (const char *, unsigned int);
|
||||
-#ifdef __GNUC__
|
||||
-__inline
|
||||
-#endif
|
||||
-const char * libc_name_p (const char *, unsigned int);
|
||||
%}
|
||||
%%
|
||||
# The standard C library functions, for feeding to gperf; the result is used
|
||||
Index: gcc-4.9.2/gcc/cp/cfns.h
|
||||
===================================================================
|
||||
--- gcc-4.9.2/gcc/cp/cfns.h (revision 233574)
|
||||
+++ gcc-4.9.2/gcc/cp/cfns.h (working copy)
|
||||
@@ -1,5 +1,5 @@
|
||||
-/* ANSI-C code produced by gperf version 3.0.3 */
|
||||
-/* Command-line: gperf -o -C -E -k '1-6,$' -j1 -D -N libc_name_p -L ANSI-C cfns.gperf */
|
||||
+/* C++ code produced by gperf version 3.0.4 */
|
||||
+/* Command-line: gperf -o -C -E -k '1-6,$' -j1 -D -N libc_name_p -L C++ --output-file cfns.h cfns.gperf */
|
||||
|
||||
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
|
||||
&& ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
|
||||
@@ -28,7 +28,7 @@
|
||||
#error "gperf generated tables don't work with this execution character set. Please report a bug to <[email protected]>."
|
||||
#endif
|
||||
|
||||
-#line 1 "cfns.gperf"
|
||||
+#line 3 "cfns.gperf"
|
||||
|
||||
/* Copyright (C) 2000-2015 Free Software Foundation, Inc.
|
||||
|
||||
@@ -47,26 +47,19 @@ for more details.
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GCC; see the file COPYING3. If not see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
-#ifdef __GNUC__
|
||||
-__inline
|
||||
-#endif
|
||||
-static unsigned int hash (const char *, unsigned int);
|
||||
-#ifdef __GNUC__
|
||||
-__inline
|
||||
-#endif
|
||||
-const char * libc_name_p (const char *, unsigned int);
|
||||
/* maximum key range = 391, duplicates = 0 */
|
||||
|
||||
-#ifdef __GNUC__
|
||||
-__inline
|
||||
-#else
|
||||
-#ifdef __cplusplus
|
||||
-inline
|
||||
-#endif
|
||||
-#endif
|
||||
-static unsigned int
|
||||
-hash (register const char *str, register unsigned int len)
|
||||
+class libc_name
|
||||
{
|
||||
+private:
|
||||
+ static inline unsigned int hash (const char *str, unsigned int len);
|
||||
+public:
|
||||
+ static const char *libc_name_p (const char *str, unsigned int len);
|
||||
+};
|
||||
+
|
||||
+inline unsigned int
|
||||
+libc_name::hash (register const char *str, register unsigned int len)
|
||||
+{
|
||||
static const unsigned short asso_values[] =
|
||||
{
|
||||
400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
|
||||
@@ -122,14 +115,8 @@ along with GCC; see the file COPYING3. If not see
|
||||
return hval + asso_values[(unsigned char)str[len - 1]];
|
||||
}
|
||||
|
||||
-#ifdef __GNUC__
|
||||
-__inline
|
||||
-#ifdef __GNUC_STDC_INLINE__
|
||||
-__attribute__ ((__gnu_inline__))
|
||||
-#endif
|
||||
-#endif
|
||||
const char *
|
||||
-libc_name_p (register const char *str, register unsigned int len)
|
||||
+libc_name::libc_name_p (register const char *str, register unsigned int len)
|
||||
{
|
||||
enum
|
||||
{
|
||||
Index: gcc-4.9.2/gcc/cp/except.c
|
||||
===================================================================
|
||||
--- gcc-4.9.2/gcc/cp/except.c (revision 233574)
|
||||
+++ gcc-4.9.2/gcc/cp/except.c (working copy)
|
||||
@@ -1030,7 +1030,8 @@ nothrow_libfn_p (const_tree fn)
|
||||
unless the system headers are playing rename tricks, and if
|
||||
they are, we don't want to be confused by them. */
|
||||
id = DECL_NAME (fn);
|
||||
- return !!libc_name_p (IDENTIFIER_POINTER (id), IDENTIFIER_LENGTH (id));
|
||||
+ return !!libc_name::libc_name_p (IDENTIFIER_POINTER (id),
|
||||
+ IDENTIFIER_LENGTH (id));
|
||||
}
|
||||
|
||||
/* Returns nonzero if an exception of type FROM will be caught by a
|
||||
|
||||
@@ -50,7 +50,8 @@ PKG_CONFIGURE_OPTS_HOST="--disable-polly \
|
||||
--disable-debug-runtime \
|
||||
--disable-debug-symbols \
|
||||
--enable-keep-symbols \
|
||||
--enable-targets=r600"
|
||||
--enable-targets=r600 \
|
||||
--disable-bindings"
|
||||
|
||||
PKG_CONFIGURE_OPTS_TARGET="--enable-polly \
|
||||
--disable-libcpp \
|
||||
@@ -80,7 +81,8 @@ PKG_CONFIGURE_OPTS_TARGET="--enable-polly \
|
||||
--enable-timestamps \
|
||||
--disable-backtraces \
|
||||
--disable-libffi \
|
||||
--disable-ltdl-install"
|
||||
--disable-ltdl-install \
|
||||
--disable-bindings"
|
||||
|
||||
if [ "$TARGET_ARCH" = i386 ]; then
|
||||
PKG_CONFIGURE_OPTS_TARGET="$PKG_CONFIGURE_OPTS_TARGET --enable-targets=x86,r600"
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue ([email protected])
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="atari800"
|
||||
PKG_VERSION="6e1883b"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/r-type/libretro-atari800"
|
||||
PKG_URL="$LAKKA_MIRROR/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="libretro"
|
||||
PKG_SHORTDESC="atari800 3.1.0 for libretro/libco WIP"
|
||||
PKG_LONGDESC="atari800 3.1.0 for libretro/libco WIP"
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
makeinstall_target() {
|
||||
mkdir -p $INSTALL/usr/lib/libretro
|
||||
cp atari800_libretro.so $INSTALL/usr/lib/libretro/
|
||||
}
|
||||
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="bsnes-mercury"
|
||||
PKG_VERSION="ccd4994"
|
||||
PKG_VERSION="059235c"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPLv3"
|
||||
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
From f88e8d47bec8315dc3b0a15f73270360c55314ba Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Lars=20Kj=C3=A6rgaard?= <[email protected]>
|
||||
Date: Sun, 26 Jun 2016 16:21:18 +0200
|
||||
Subject: [PATCH] Apply Brunnis input lag fix.
|
||||
|
||||
---
|
||||
sfc/system/system.cpp | 7 ++++++-
|
||||
1 file changed, 6 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/sfc/system/system.cpp b/sfc/system/system.cpp
|
||||
index 4d5db29..27ea216 100644
|
||||
--- a/sfc/system/system.cpp
|
||||
+++ b/sfc/system/system.cpp
|
||||
@@ -282,7 +282,12 @@ void System::reset() {
|
||||
|
||||
void System::scanline() {
|
||||
video.scanline();
|
||||
- if(cpu.vcounter() == 241) scheduler.exit(Scheduler::ExitReason::FrameEvent);
|
||||
+
|
||||
+ const int vcounter_time_to_exit = ( ppu.overscan() == false ? 225 : 240 );
|
||||
+
|
||||
+ // Exit exactly at the right moment in order to minimize input latency - this cuts off 1 full frame of delay.
|
||||
+ if( cpu.vcounter() == vcounter_time_to_exit )
|
||||
+ scheduler.exit( Scheduler::ExitReason::FrameEvent );
|
||||
}
|
||||
|
||||
void System::frame() {
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="common-shaders"
|
||||
PKG_VERSION="f252d6a"
|
||||
PKG_VERSION="7b403c8"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="core-info"
|
||||
PKG_VERSION="d700af8"
|
||||
PKG_VERSION="20b3cde"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue ([email protected])
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="craft"
|
||||
PKG_VERSION="a1e173b"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="MIT"
|
||||
PKG_SITE="https://github.com/libretro/Craft"
|
||||
PKG_URL="$LAKKA_MIRROR/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="libretro"
|
||||
PKG_SHORTDESC="A simple Minecraft clone written in C using modern OpenGL (shaders)."
|
||||
PKG_LONGDESC="A simple Minecraft clone written in C using modern OpenGL (shaders)."
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
pre_configure_target() {
|
||||
cd $ROOT/$PKG_BUILD
|
||||
}
|
||||
|
||||
make_target() {
|
||||
if [ "$OPENGLES_SUPPORT" = yes ]; then
|
||||
make -f Makefile.libretro FORCE_GLES=1
|
||||
else
|
||||
make -f Makefile.libretro
|
||||
fi
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
mkdir -p $INSTALL/usr/lib/libretro
|
||||
cp craft_libretro.so $INSTALL/usr/lib/libretro/
|
||||
}
|
||||
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="dosbox"
|
||||
PKG_VERSION="a8f9cb3"
|
||||
PKG_VERSION="2f5aa7e"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPLv2"
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue ([email protected])
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="emux-sms"
|
||||
PKG_VERSION="867a76f"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPLv2"
|
||||
PKG_SITE="https://github.com/libretro/emux"
|
||||
PKG_URL="$LAKKA_MIRROR/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="libretro"
|
||||
PKG_SHORTDESC="Libretro port of Emux"
|
||||
PKG_LONGDESC="Emux is a cross-platform emulator project supporting various machines with an architecture inspired by the Linux kernel."
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
make_target() {
|
||||
make -C libretro -f Makefile.lakka MACHINE=sms
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
mkdir -p $INSTALL/usr/lib/libretro
|
||||
cp libretro/emux_sms_libretro.so $INSTALL/usr/lib/libretro/emux_sms_libretro.so
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
diff -Naur emux.git/libretro/Makefile.lakka emux.patch/libretro/Makefile.lakka
|
||||
--- emux.git/libretro/Makefile.lakka 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ emux.patch/libretro/Makefile.lakka 2016-05-12 08:46:58.338888783 +0200
|
||||
@@ -0,0 +1,65 @@
|
||||
+HOST_PLATFORM = linux
|
||||
+
|
||||
+TARGET_PLATFORM = lakka
|
||||
+
|
||||
+OBJEXT = .o
|
||||
+SOEXT = .so
|
||||
+
|
||||
+################
|
||||
+# Platform setup
|
||||
+
|
||||
+STATIC_LINKING = 0
|
||||
+platform = unix
|
||||
+PLATDEFS =
|
||||
+PLATCFLAGS = -fpic -fstrict-aliasing
|
||||
+PLATCXXFLAGS = -fpic -fstrict-aliasing
|
||||
+PLATLDFLAGS = -shared -lm -Wl,-version-script=$(BUILD_DIR)/link.T -Wl,-no-undefined
|
||||
+PLATLDXFLAGS = -shared -lm -Wl,-version-script=$(BUILD_DIR)/link.T -Wl,-no-undefined
|
||||
+
|
||||
+################
|
||||
+# libretro setup
|
||||
+
|
||||
+RETRODEFS = -D__LIBRETRO__
|
||||
+RETROCFLAGS =
|
||||
+RETROCXXFLAGS =
|
||||
+RETROLDFLAGS =
|
||||
+RETROLDXFLAGS =
|
||||
+
|
||||
+#################
|
||||
+# Final variables
|
||||
+
|
||||
+DEFINES += $(PLATDEFS) $(RETRODEFS)
|
||||
+CFLAGS += $(PLATCFLAGS) $(RETROCFLAGS) $(DEFINES) $(INCLUDES)
|
||||
+CXXFLAGS += $(PLATCXXFLAGS) $(RETROCXXFLAGS) $(DEFINES) $(INCLUDES)
|
||||
+LDFLAGS += $(PLATLDFLAGS) $(RETROLDFLAGS)
|
||||
+LDXFLAGS += $(PLATLDXFLAGS) $(RETROLDXFLAGS)
|
||||
+
|
||||
+########
|
||||
+# Tuning
|
||||
+
|
||||
+ifneq ($(DEBUG),)
|
||||
+ CFLAGS += -O0 -g
|
||||
+ CXXFLAGS += -O0 -g
|
||||
+else
|
||||
+ CFLAGS += -O3 -DNDEBUG
|
||||
+ CXXFLAGS += -O3 -DNDEBUG
|
||||
+endif
|
||||
+
|
||||
+ifneq ($(LOG_PERFORMANCE),)
|
||||
+ CFLAGS += -DLOG_PERFORMANCE
|
||||
+ CXXFLAGS += -DLOG_PERFORMANCE
|
||||
+endif
|
||||
+
|
||||
+####################################
|
||||
+# Variable setup for Makefile.common
|
||||
+
|
||||
+CORE_DIR ?= ..
|
||||
+BUILD_DIR ?= .
|
||||
+INCLUDES =
|
||||
+
|
||||
+include $(BUILD_DIR)/Makefile.common
|
||||
+
|
||||
+###############
|
||||
+# Include rules
|
||||
+
|
||||
+include $(BUILD_DIR)/Makefile.rules
|
||||
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="fceumm"
|
||||
PKG_VERSION="479d5d8"
|
||||
PKG_VERSION="368f2e6"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPLv2"
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="gambatte"
|
||||
PKG_VERSION="9596337"
|
||||
PKG_VERSION="def1fbd"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPLv2"
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="libretro-database"
|
||||
PKG_VERSION="074523b"
|
||||
PKG_VERSION="9dbef82"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="lutro"
|
||||
PKG_VERSION="9e39edf"
|
||||
PKG_VERSION="927b49a"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="MIT"
|
||||
@@ -39,7 +39,7 @@ make_target() {
|
||||
if [ "$ARCH" == "x86_64" ]; then
|
||||
PTR_SIZE="-m64"
|
||||
fi
|
||||
make WANT_JIT=1 HOST_CC="$HOST_CC" PTR_SIZE="$PTR_SIZE" CROSS="$TARGET_PREFIX"
|
||||
make WANT_JIT=1 HOST_CC="$HOST_CC" PTR_SIZE="$PTR_SIZE" CROSS="$TARGET_PREFIX" HAVE_COMPOSITION=1
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="mame2003"
|
||||
PKG_VERSION="4145a3b"
|
||||
PKG_VERSION="ae84f5d"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="MAME"
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="mgba"
|
||||
PKG_VERSION="68c8e39"
|
||||
PKG_VERSION="608b8e7"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="MPLv2.0"
|
||||
@@ -36,7 +36,11 @@ PKG_AUTORECONF="no"
|
||||
|
||||
make_target() {
|
||||
cd $ROOT/$PKG_BUILD
|
||||
make -f Makefile.libretro
|
||||
if [[ "$ARCH" =~ "arm" ]]; then
|
||||
make -f Makefile.libretro platform=unix-armv HAVE_NEON=1
|
||||
else
|
||||
make -f Makefile.libretro
|
||||
fi
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="mupen64plus"
|
||||
PKG_VERSION="b84dc7c"
|
||||
PKG_VERSION="eb8f3d5"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPLv2"
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
diff -Naur mupen64plus.git/mupen64plus-core/src/plugin/audio_libretro/audio_backend_libretro.c mupen64plus.patch/mupen64plus-core/src/plugin/audio_libretro/audio_backend_libretro.c
|
||||
--- mupen64plus.git/mupen64plus-core/src/plugin/audio_libretro/audio_backend_libretro.c 2015-12-23 17:17:21.886100651 +0100
|
||||
+++ mupen64plus.patch/mupen64plus-core/src/plugin/audio_libretro/audio_backend_libretro.c 2015-12-23 18:14:20.560292807 +0100
|
||||
@@ -77,7 +77,11 @@
|
||||
|
||||
void init_audio_libretro(unsigned max_audio_frames)
|
||||
{
|
||||
+#if defined(__ARM_NEON__)
|
||||
+ rarch_resampler_realloc(&resampler_audio_data, &resampler, "sinc", 1.0);
|
||||
+#else
|
||||
rarch_resampler_realloc(&resampler_audio_data, &resampler, "CC", 1.0);
|
||||
+#endif
|
||||
|
||||
MAX_AUDIO_FRAMES = max_audio_frames;
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="reicast"
|
||||
PKG_VERSION="f39f030"
|
||||
PKG_VERSION="a4b2829"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPLv2"
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="retroarch-assets"
|
||||
PKG_VERSION="70b7d1e"
|
||||
PKG_VERSION="c8f7c0b"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="retroarch-joypad-autoconfig"
|
||||
PKG_VERSION="1628dfc"
|
||||
PKG_VERSION="ec890e8"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -19,13 +19,13 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="retroarch"
|
||||
PKG_VERSION="6f63305"
|
||||
PKG_REV="3"
|
||||
PKG_VERSION="397f82c"
|
||||
PKG_REV="5"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPLv3"
|
||||
PKG_SITE="https://github.com/libretro/RetroArch"
|
||||
PKG_URL="$LAKKA_MIRROR/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_DEPENDS_TARGET="toolchain alsa-lib freetype zlib retroarch-assets core-info retroarch-joypad-autoconfig common-shaders lakka-update libretro-database ffmpeg bluez-tools"
|
||||
PKG_DEPENDS_TARGET="toolchain alsa-lib freetype zlib retroarch-assets core-info retroarch-joypad-autoconfig common-shaders lakka-update libretro-database ffmpeg connman-ncurses"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="libretro"
|
||||
PKG_SHORTDESC="Reference frontend for the libretro API."
|
||||
@@ -80,7 +80,13 @@ pre_configure_target() {
|
||||
}
|
||||
|
||||
make_target() {
|
||||
make V=1 HAVE_LAKKA=1 HAVE_ZARCH=0 LAKKA_PROJECT='\"$PROJECT.$ARCH\"'
|
||||
LAKKA_PROJECT="$PROJECT"
|
||||
if [ "$PROJECT" == "imx6" -a -n "$SYSTEM" ]; then
|
||||
LAKKA_PROJECT="$LAKKA_PROJECT.$SYSTEM"
|
||||
fi
|
||||
LAKKA_PROJECT="$LAKKA_PROJECT.$ARCH"
|
||||
echo $LAKKA_PROJECT
|
||||
make V=1 HAVE_LAKKA=1 HAVE_ZARCH=0 LAKKA_PROJECT=\'\"$LAKKA_PROJECT\"\'
|
||||
make -C gfx/video_filters compiler=$CC extra_flags="$CFLAGS"
|
||||
make -C audio/audio_filters compiler=$CC extra_flags="$CFLAGS"
|
||||
}
|
||||
@@ -101,7 +107,6 @@ makeinstall_target() {
|
||||
sed -i -e "s/# libretro_directory =/libretro_directory = \"\/tmp\/cores\"/" $INSTALL/etc/retroarch.cfg
|
||||
sed -i -e "s/# libretro_info_path =/libretro_info_path = \"\/tmp\/cores\"/" $INSTALL/etc/retroarch.cfg
|
||||
sed -i -e "s/# rgui_browser_directory =/rgui_browser_directory =\/storage\/roms/" $INSTALL/etc/retroarch.cfg
|
||||
sed -i -e "s/# core_assets_directory =/core_assets_directory =\/storage\/roms/" $INSTALL/etc/retroarch.cfg
|
||||
sed -i -e "s/# content_database_path =/content_database_path =\/tmp\/database\/rdb/" $INSTALL/etc/retroarch.cfg
|
||||
sed -i -e "s/# playlist_directory =/playlist_directory =\/storage\/playlists/" $INSTALL/etc/retroarch.cfg
|
||||
sed -i -e "s/# savefile_directory =/savefile_directory =\/storage\/savefiles/" $INSTALL/etc/retroarch.cfg
|
||||
@@ -113,6 +118,7 @@ makeinstall_target() {
|
||||
sed -i -e "s/# assets_directory =/assets_directory =\/tmp\/assets/" $INSTALL/etc/retroarch.cfg
|
||||
sed -i -e "s/# cheat_database_path =/cheat_database_path =\/tmp\/database\/cht/" $INSTALL/etc/retroarch.cfg
|
||||
sed -i -e "s/# menu_driver = \"rgui\"/menu_driver = \"xmb\"/" $INSTALL/etc/retroarch.cfg
|
||||
echo "core_assets_directory =/storage/roms/downloads" >> $INSTALL/etc/retroarch.cfg
|
||||
|
||||
# Video
|
||||
sed -i -e "s/# video_smooth = true/video_smooth = false/" $INSTALL/etc/retroarch.cfg
|
||||
@@ -132,15 +138,17 @@ makeinstall_target() {
|
||||
|
||||
# Input
|
||||
sed -i -e "s/# input_driver = sdl/input_driver = udev/" $INSTALL/etc/retroarch.cfg
|
||||
sed -i -e "s/# input_max_users =/input_max_users = 5/" $INSTALL/etc/retroarch.cfg
|
||||
sed -i -e "s/# input_max_users = 16/input_max_users = 5/" $INSTALL/etc/retroarch.cfg
|
||||
sed -i -e "s/# input_autodetect_enable = true/input_autodetect_enable = true/" $INSTALL/etc/retroarch.cfg
|
||||
sed -i -e "s/# joypad_autoconfig_dir =/joypad_autoconfig_dir = \/tmp\/joypads/" $INSTALL/etc/retroarch.cfg
|
||||
sed -i -e "s/# input_remapping_directory =/input_remapping_directory = \/storage\/remappings/" $INSTALL/etc/retroarch.cfg
|
||||
sed -i -e "s/# input_menu_toggle_gamepad_combo =/input_menu_toggle_gamepad_combo = \"2\"/" $INSTALL/etc/retroarch.cfg
|
||||
sed -i -e "s/# input_menu_toggle_gamepad_combo = 0/input_menu_toggle_gamepad_combo = 2/" $INSTALL/etc/retroarch.cfg
|
||||
|
||||
# Menu
|
||||
sed -i -e "s/# menu_core_enable = true/menu_core_enable = false/" $INSTALL/etc/retroarch.cfg
|
||||
sed -i -e "s/# thumbnails_directory =/thumbnails_directory = \/storage\/thumbnails/" $INSTALL/etc/retroarch.cfg
|
||||
echo "xmb_theme = 2" >> $INSTALL/etc/retroarch.cfg
|
||||
echo "xmb_menu_color_theme = 8" >> $INSTALL/etc/retroarch.cfg
|
||||
|
||||
# Updater
|
||||
if [ "$ARCH" == "arm" ]; then
|
||||
@@ -163,3 +171,8 @@ post_install() {
|
||||
enable_service tmp-database.mount
|
||||
enable_service tmp-assets.mount
|
||||
}
|
||||
|
||||
post_makeinstall_target() {
|
||||
mkdir -p $INSTALL/usr/lib/retroarch
|
||||
cp $PKG_DIR/scripts/retroarch-config $INSTALL/usr/lib/retroarch
|
||||
}
|
||||
@@ -1,18 +1,18 @@
|
||||
diff -Naur retroarch.git/gfx/drivers_context/drm_ctx.c retroarch.patch/gfx/drivers_context/drm_ctx.c
|
||||
--- retroarch.git/gfx/drivers_context/drm_ctx.c 2016-04-08 12:00:23.808205458 +0200
|
||||
+++ retroarch.patch/gfx/drivers_context/drm_ctx.c 2016-04-08 12:35:13.322971465 +0200
|
||||
@@ -324,7 +324,10 @@
|
||||
drm_free();
|
||||
--- retroarch.git/gfx/drivers_context/drm_ctx.c 2016-05-26 23:11:52.632009156 +0200
|
||||
+++ retroarch.patch/gfx/drivers_context/drm_ctx.c 2016-05-26 23:21:07.039178715 +0200
|
||||
@@ -327,7 +327,10 @@
|
||||
|
||||
if (g_drm_fd >= 0)
|
||||
+ {
|
||||
+ drmDropMaster(g_drm_fd);
|
||||
filestream_close(drm->drm);
|
||||
+ }
|
||||
if (drm->drm)
|
||||
if (g_drm_fd >= 0)
|
||||
+ {
|
||||
+ drmDropMaster(g_drm_fd);
|
||||
filestream_close(drm->drm);
|
||||
+ }
|
||||
|
||||
g_gbm_surface = NULL;
|
||||
g_gbm_dev = NULL;
|
||||
@@ -420,6 +423,8 @@
|
||||
@@ -423,6 +426,8 @@
|
||||
drm->fb_width = g_drm_connector->modes[0].hdisplay;
|
||||
drm->fb_height = g_drm_connector->modes[0].vdisplay;
|
||||
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
diff -Naur retroarch/libretro-common/queues/task_queue.c retroarch.patch/libretro-common/queues/task_queue.c
|
||||
--- retroarch/libretro-common/queues/task_queue.c 2016-07-31 00:07:35.497118479 +0200
|
||||
+++ retroarch.patch/libretro-common/queues/task_queue.c 2016-08-02 22:18:01.040639520 +0200
|
||||
@@ -82,7 +82,7 @@
|
||||
{
|
||||
if (task->error)
|
||||
task_queue_msg_push(1, 60, true, "%s: %s",
|
||||
- "Task failed\n", task->title);
|
||||
+ "Task failed", task->title);
|
||||
else
|
||||
task_queue_msg_push(1, 60, true, "100%%: %s", task->title);
|
||||
}
|
||||
diff -Naur retroarch/menu/menu_displaylist.c retroarch.patch/menu/menu_displaylist.c
|
||||
--- retroarch/menu/menu_displaylist.c 2016-07-31 00:07:32.108998293 +0200
|
||||
+++ retroarch.patch/menu/menu_displaylist.c 2016-07-31 00:59:53.660611939 +0200
|
||||
@@ -2688,6 +2688,7 @@
|
||||
MENU_ENUM_LABEL_LOAD_STATE,
|
||||
MENU_SETTING_ACTION_LOADSTATE, 0, 0);
|
||||
|
||||
+#ifndef HAVE_LAKKA
|
||||
menu_entries_append_enum(info->list,
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_UNDO_LOAD_STATE),
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_UNDO_LOAD_STATE),
|
||||
@@ -2699,6 +2700,7 @@
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_UNDO_SAVE_STATE),
|
||||
MENU_ENUM_LABEL_UNDO_SAVE_STATE,
|
||||
MENU_SETTING_ACTION_LOADSTATE, 0, 0);
|
||||
+#endif
|
||||
|
||||
menu_entries_append_enum(info->list,
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CORE_OPTIONS),
|
||||
diff -Naur retroarch/menu/menu_setting.c retroarch.patch/menu/menu_setting.c
|
||||
--- retroarch/menu/menu_setting.c 2016-07-31 00:07:32.072997016 +0200
|
||||
+++ retroarch.patch/menu/menu_setting.c 2016-08-09 14:16:29.955922130 +0200
|
||||
@@ -4288,6 +4288,7 @@
|
||||
parent_group);
|
||||
menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_MENU_SETTINGS);
|
||||
|
||||
+#ifndef HAVE_LAKKA
|
||||
CONFIG_ACTION(
|
||||
list, list_info,
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_USER_INTERFACE_SETTINGS),
|
||||
@@ -4296,6 +4297,7 @@
|
||||
&subgroup_info,
|
||||
parent_group);
|
||||
menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_USER_INTERFACE_SETTINGS);
|
||||
+#endif
|
||||
|
||||
CONFIG_ACTION(
|
||||
list, list_info,
|
||||
@@ -0,0 +1,209 @@
|
||||
diff --git a/intl/msg_hash_us.c b/intl/msg_hash_us.c
|
||||
index fc4bdea..117d064 100644
|
||||
--- a/intl/msg_hash_us.c
|
||||
+++ b/intl/msg_hash_us.c
|
||||
@@ -1350,6 +1350,8 @@ static const char *menu_hash_to_str_us_label_enum(enum msg_hash_enums msg)
|
||||
return "deferred_updater_settings_list";
|
||||
case MENU_ENUM_LABEL_DEFERRED_NETWORK_SETTINGS_LIST:
|
||||
return "deferred_network_settings_list";
|
||||
+ case MENU_ENUM_LABEL_DEFERRED_LAKKA_SERVICES_LIST:
|
||||
+ return "deferred_lakka_services_list";
|
||||
case MENU_ENUM_LABEL_DEFERRED_USER_SETTINGS_LIST:
|
||||
return "deferred_user_settings_list";
|
||||
case MENU_ENUM_LABEL_DEFERRED_DIRECTORY_SETTINGS_LIST:
|
||||
diff --git a/menu/cbs/menu_cbs_deferred_push.c b/menu/cbs/menu_cbs_deferred_push.c
|
||||
index 5eb7384..7abae3e 100644
|
||||
--- a/menu/cbs/menu_cbs_deferred_push.c
|
||||
+++ b/menu/cbs/menu_cbs_deferred_push.c
|
||||
@@ -174,6 +174,11 @@ static int deferred_push_network_settings_list(menu_displaylist_info_t *info)
|
||||
return deferred_push_dlist(info, DISPLAYLIST_NETWORK_SETTINGS_LIST);
|
||||
}
|
||||
|
||||
+static int deferred_push_lakka_services_list(menu_displaylist_info_t *info)
|
||||
+{
|
||||
+ return deferred_push_dlist(info, DISPLAYLIST_LAKKA_SERVICES_LIST);
|
||||
+}
|
||||
+
|
||||
static int deferred_push_user_settings_list(menu_displaylist_info_t *info)
|
||||
{
|
||||
return deferred_push_dlist(info, DISPLAYLIST_USER_SETTINGS_LIST);
|
||||
@@ -746,6 +751,12 @@ static int menu_cbs_init_bind_deferred_push_compare_label(
|
||||
return 0;
|
||||
}
|
||||
|
||||
+ if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_LAKKA_SERVICES_LIST)))
|
||||
+ {
|
||||
+ BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_lakka_services_list);
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_USER_SETTINGS_LIST)))
|
||||
{
|
||||
BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_user_settings_list);
|
||||
diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c
|
||||
index 04ca710..85d27a1 100644
|
||||
--- a/menu/cbs/menu_cbs_ok.c
|
||||
+++ b/menu/cbs/menu_cbs_ok.c
|
||||
@@ -696,6 +696,14 @@ int generic_action_ok_displaylist_push(const char *path,
|
||||
info.enum_idx = MENU_ENUM_LABEL_DEFERRED_NETWORK_SETTINGS_LIST;
|
||||
dl_type = DISPLAYLIST_GENERIC;
|
||||
break;
|
||||
+ case ACTION_OK_DL_LAKKA_SERVICES_LIST:
|
||||
+ info.directory_ptr = idx;
|
||||
+ info.type = type;
|
||||
+ info_path = path;
|
||||
+ info_label = msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_LAKKA_SERVICES_LIST);
|
||||
+ info.enum_idx = MENU_ENUM_LABEL_DEFERRED_LAKKA_SERVICES_LIST;
|
||||
+ dl_type = DISPLAYLIST_GENERIC;
|
||||
+ break;
|
||||
case ACTION_OK_DL_USER_SETTINGS_LIST:
|
||||
info.directory_ptr = idx;
|
||||
info.type = type;
|
||||
@@ -2660,6 +2668,13 @@ static int action_ok_network_list(const char *path,
|
||||
entry_idx, ACTION_OK_DL_NETWORK_SETTINGS_LIST);
|
||||
}
|
||||
|
||||
+static int action_ok_lakka_services(const char *path,
|
||||
+ const char *label, unsigned type, size_t idx, size_t entry_idx)
|
||||
+{
|
||||
+ return generic_action_ok_displaylist_push(path, NULL, label, type, idx,
|
||||
+ entry_idx, ACTION_OK_DL_LAKKA_SERVICES_LIST);
|
||||
+}
|
||||
+
|
||||
static int action_ok_user_list(const char *path,
|
||||
const char *label, unsigned type, size_t idx, size_t entry_idx)
|
||||
{
|
||||
@@ -3390,6 +3405,9 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs,
|
||||
case MENU_ENUM_LABEL_NETWORK_SETTINGS:
|
||||
BIND_ACTION_OK(cbs, action_ok_network_list);
|
||||
break;
|
||||
+ case MENU_ENUM_LABEL_LAKKA_SERVICES:
|
||||
+ BIND_ACTION_OK(cbs, action_ok_lakka_services);
|
||||
+ break;
|
||||
case MENU_ENUM_LABEL_USER_SETTINGS:
|
||||
BIND_ACTION_OK(cbs, action_ok_user_list);
|
||||
break;
|
||||
diff --git a/menu/cbs/menu_cbs_title.c b/menu/cbs/menu_cbs_title.c
|
||||
index 5458f75..824976f 100644
|
||||
--- a/menu/cbs/menu_cbs_title.c
|
||||
+++ b/menu/cbs/menu_cbs_title.c
|
||||
@@ -284,6 +284,13 @@ static int action_get_network_settings_list(const char *path, const char *label,
|
||||
return 0;
|
||||
}
|
||||
|
||||
+static int action_get_lakka_services_list(const char *path, const char *label,
|
||||
+ unsigned menu_type, char *s, size_t len)
|
||||
+{
|
||||
+ sanitize_to_string(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LAKKA_SERVICES), len);
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
static int action_get_user_settings_list(const char *path, const char *label,
|
||||
unsigned menu_type, char *s, size_t len)
|
||||
{
|
||||
@@ -951,6 +958,12 @@ static int menu_cbs_init_bind_title_compare_label(menu_file_list_cbs_t *cbs,
|
||||
return 0;
|
||||
}
|
||||
|
||||
+ if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_LAKKA_SERVICES_LIST)))
|
||||
+ {
|
||||
+ BIND_ACTION_GET_TITLE(cbs, action_get_lakka_services_list);
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_USER_SETTINGS_LIST)))
|
||||
{
|
||||
BIND_ACTION_GET_TITLE(cbs, action_get_user_settings_list);
|
||||
diff --git a/menu/menu_cbs.h b/menu/menu_cbs.h
|
||||
index 5926acc..0a5bf8f 100644
|
||||
--- a/menu/menu_cbs.h
|
||||
+++ b/menu/menu_cbs.h
|
||||
@@ -85,6 +85,7 @@ enum
|
||||
ACTION_OK_DL_RETRO_ACHIEVEMENTS_SETTINGS_LIST,
|
||||
ACTION_OK_DL_UPDATER_SETTINGS_LIST,
|
||||
ACTION_OK_DL_NETWORK_SETTINGS_LIST,
|
||||
+ ACTION_OK_DL_LAKKA_SERVICES_LIST,
|
||||
ACTION_OK_DL_USER_SETTINGS_LIST,
|
||||
ACTION_OK_DL_DIRECTORY_SETTINGS_LIST,
|
||||
ACTION_OK_DL_PRIVACY_SETTINGS_LIST,
|
||||
diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c
|
||||
index a3acfe8..380b3b8 100644
|
||||
--- a/menu/menu_displaylist.c
|
||||
+++ b/menu/menu_displaylist.c
|
||||
@@ -3951,6 +3951,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data)
|
||||
case DISPLAYLIST_RETRO_ACHIEVEMENTS_SETTINGS_LIST:
|
||||
case DISPLAYLIST_UPDATER_SETTINGS_LIST:
|
||||
case DISPLAYLIST_NETWORK_SETTINGS_LIST:
|
||||
+ case DISPLAYLIST_LAKKA_SERVICES_LIST:
|
||||
case DISPLAYLIST_USER_SETTINGS_LIST:
|
||||
case DISPLAYLIST_DIRECTORY_SETTINGS_LIST:
|
||||
case DISPLAYLIST_PRIVACY_SETTINGS_LIST:
|
||||
@@ -4607,6 +4608,22 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data)
|
||||
info->need_refresh = true;
|
||||
info->need_push = true;
|
||||
break;
|
||||
+ case DISPLAYLIST_LAKKA_SERVICES_LIST:
|
||||
+ menu_displaylist_parse_settings_enum(menu, info,
|
||||
+ MENU_ENUM_LABEL_SSH_ENABLE,
|
||||
+ PARSE_ONLY_BOOL, false);
|
||||
+
|
||||
+ menu_displaylist_parse_settings_enum(menu, info,
|
||||
+ MENU_ENUM_LABEL_SAMBA_ENABLE,
|
||||
+ PARSE_ONLY_BOOL, false);
|
||||
+
|
||||
+ menu_displaylist_parse_settings_enum(menu, info,
|
||||
+ MENU_ENUM_LABEL_BLUETOOTH_ENABLE,
|
||||
+ PARSE_ONLY_BOOL, false);
|
||||
+
|
||||
+ info->need_refresh = true;
|
||||
+ info->need_push = true;
|
||||
+ break;
|
||||
case DISPLAYLIST_USER_SETTINGS_LIST:
|
||||
menu_displaylist_parse_settings_enum(menu, info,
|
||||
MENU_ENUM_LABEL_ACCOUNTS_LIST,
|
||||
diff --git a/menu/menu_displaylist.h b/menu/menu_displaylist.h
|
||||
index ff5737f..51df36a 100644
|
||||
--- a/menu/menu_displaylist.h
|
||||
+++ b/menu/menu_displaylist.h
|
||||
@@ -124,6 +124,7 @@ enum menu_displaylist_ctl_state
|
||||
DISPLAYLIST_RETRO_ACHIEVEMENTS_SETTINGS_LIST,
|
||||
DISPLAYLIST_UPDATER_SETTINGS_LIST,
|
||||
DISPLAYLIST_NETWORK_SETTINGS_LIST,
|
||||
+ DISPLAYLIST_LAKKA_SERVICES_LIST,
|
||||
DISPLAYLIST_USER_SETTINGS_LIST,
|
||||
DISPLAYLIST_DIRECTORY_SETTINGS_LIST,
|
||||
DISPLAYLIST_PRIVACY_SETTINGS_LIST,
|
||||
diff --git a/menu/menu_setting.c b/menu/menu_setting.c
|
||||
index dacc66a..0c98055 100644
|
||||
--- a/menu/menu_setting.c
|
||||
+++ b/menu/menu_setting.c
|
||||
@@ -4333,6 +4333,17 @@ static bool setting_append_list(
|
||||
parent_group);
|
||||
menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_NETWORK_SETTINGS);
|
||||
|
||||
+#ifdef HAVE_SYSTEMD
|
||||
+ CONFIG_ACTION(
|
||||
+ list, list_info,
|
||||
+ msg_hash_to_str(MENU_ENUM_LABEL_LAKKA_SERVICES),
|
||||
+ msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LAKKA_SERVICES),
|
||||
+ &group_info,
|
||||
+ &subgroup_info,
|
||||
+ parent_group);
|
||||
+ menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_LAKKA_SERVICES);
|
||||
+#endif
|
||||
+
|
||||
CONFIG_ACTION(
|
||||
list, list_info,
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_PLAYLIST_SETTINGS),
|
||||
diff --git a/msg_hash.h b/msg_hash.h
|
||||
index 218fe86..431bc8c 100644
|
||||
--- a/msg_hash.h
|
||||
+++ b/msg_hash.h
|
||||
@@ -780,6 +780,7 @@ enum msg_hash_enums
|
||||
MENU_ENUM_LABEL_DEFERRED_RETRO_ACHIEVEMENTS_SETTINGS_LIST,
|
||||
MENU_ENUM_LABEL_DEFERRED_UPDATER_SETTINGS_LIST,
|
||||
MENU_ENUM_LABEL_DEFERRED_NETWORK_SETTINGS_LIST,
|
||||
+ MENU_ENUM_LABEL_DEFERRED_LAKKA_SERVICES_LIST,
|
||||
MENU_ENUM_LABEL_DEFERRED_USER_SETTINGS_LIST,
|
||||
MENU_ENUM_LABEL_DEFERRED_DIRECTORY_SETTINGS_LIST,
|
||||
MENU_ENUM_LABEL_DEFERRED_PRIVACY_SETTINGS_LIST,
|
||||
@@ -0,0 +1,143 @@
|
||||
diff -Naur retroarch.git/configuration.c retroarch.patch/configuration.c
|
||||
--- retroarch.git/configuration.c 2016-08-23 13:31:23.945845138 +0200
|
||||
+++ retroarch.patch/configuration.c 2016-08-23 13:43:50.992094516 +0200
|
||||
@@ -598,6 +598,7 @@
|
||||
settings->ssh_enable = path_file_exists(LAKKA_SSH_PATH);
|
||||
settings->samba_enable = path_file_exists(LAKKA_SAMBA_PATH);
|
||||
settings->bluetooth_enable = path_file_exists(LAKKA_BLUETOOTH_PATH);
|
||||
+ settings->connect_enable = path_file_exists(LAKKA_CONNECT_PATH);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_MENU
|
||||
@@ -1817,6 +1818,7 @@
|
||||
settings->ssh_enable = path_file_exists(LAKKA_SSH_PATH);
|
||||
settings->samba_enable = path_file_exists(LAKKA_SAMBA_PATH);
|
||||
settings->bluetooth_enable = path_file_exists(LAKKA_BLUETOOTH_PATH);
|
||||
+ settings->connect_enable = path_file_exists(LAKKA_CONNECT_PATH);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_NETWORKGAMEPAD
|
||||
@@ -3055,6 +3057,10 @@
|
||||
fclose(fopen(LAKKA_BLUETOOTH_PATH, "w"));
|
||||
else
|
||||
remove(LAKKA_BLUETOOTH_PATH);
|
||||
+ if (settings->connect_enable)
|
||||
+ fclose(fopen(LAKKA_CONNECT_PATH, "w"));
|
||||
+ else
|
||||
+ remove(LAKKA_CONNECT_PATH);
|
||||
#endif
|
||||
|
||||
config_set_float(conf, "fastforward_ratio",
|
||||
diff -Naur retroarch.git/configuration.h retroarch.patch/configuration.h
|
||||
--- retroarch.git/configuration.h 2016-08-23 13:31:24.125851460 +0200
|
||||
+++ retroarch.patch/configuration.h 2016-08-23 13:44:30.741490625 +0200
|
||||
@@ -440,6 +440,7 @@
|
||||
bool ssh_enable;
|
||||
bool samba_enable;
|
||||
bool bluetooth_enable;
|
||||
+ bool connect_enable;
|
||||
#endif
|
||||
|
||||
} settings_t;
|
||||
diff -Naur retroarch.git/intl/msg_hash_us.c retroarch.patch/intl/msg_hash_us.c
|
||||
--- retroarch.git/intl/msg_hash_us.c 2016-08-23 13:31:22.105780455 +0200
|
||||
+++ retroarch.patch/intl/msg_hash_us.c 2016-08-23 13:41:35.075320315 +0200
|
||||
@@ -1614,6 +1614,8 @@
|
||||
return "samba_enable";
|
||||
case MENU_ENUM_LABEL_BLUETOOTH_ENABLE:
|
||||
return "bluetooth_enable";
|
||||
+ case MENU_ENUM_LABEL_CONNECT_ENABLE:
|
||||
+ return "connect_enable";
|
||||
case MENU_ENUM_LABEL_NETPLAY_DELAY_FRAMES:
|
||||
return "netplay_delay_frames";
|
||||
case MENU_ENUM_LABEL_NETPLAY_MODE:
|
||||
@@ -2882,6 +2884,8 @@
|
||||
return "SAMBA Enable";
|
||||
case MENU_ENUM_LABEL_VALUE_BLUETOOTH_ENABLE:
|
||||
return "Bluetooth Enable";
|
||||
+ case MENU_ENUM_LABEL_VALUE_CONNECT_ENABLE:
|
||||
+ return "Boot to Wi-Fi Menu";
|
||||
case MENU_ENUM_LABEL_VALUE_NETPLAY_DELAY_FRAMES:
|
||||
return "Netplay Delay Frames";
|
||||
case MENU_ENUM_LABEL_VALUE_NETPLAY_MODE:
|
||||
diff -Naur retroarch.git/lakka.h retroarch.patch/lakka.h
|
||||
--- retroarch.git/lakka.h 2016-08-23 13:31:15.661553920 +0200
|
||||
+++ retroarch.patch/lakka.h 2016-08-23 13:34:05.895537524 +0200
|
||||
@@ -20,6 +20,7 @@
|
||||
#define LAKKA_SSH_PATH "/storage/.cache/services/sshd.conf"
|
||||
#define LAKKA_SAMBA_PATH "/storage/.cache/services/samba.conf"
|
||||
#define LAKKA_BLUETOOTH_PATH "/storage/.cache/services/bluez.conf"
|
||||
+#define LAKKA_CONNECT_PATH "/storage/.please_connect_me"
|
||||
#define LAKKA_UPDATE_DIR "/storage/.update/"
|
||||
|
||||
#endif
|
||||
diff -Naur retroarch.git/menu/menu_displaylist.c retroarch.patch/menu/menu_displaylist.c
|
||||
--- retroarch.git/menu/menu_displaylist.c 2016-08-23 13:31:16.121570091 +0200
|
||||
+++ retroarch.patch/menu/menu_displaylist.c 2016-08-23 13:39:23.250689209 +0200
|
||||
@@ -4623,6 +4623,10 @@
|
||||
MENU_ENUM_LABEL_BLUETOOTH_ENABLE,
|
||||
PARSE_ONLY_BOOL, false);
|
||||
|
||||
+ menu_displaylist_parse_settings_enum(menu, info,
|
||||
+ MENU_ENUM_LABEL_CONNECT_ENABLE,
|
||||
+ PARSE_ONLY_BOOL, false);
|
||||
+
|
||||
info->need_refresh = true;
|
||||
info->need_push = true;
|
||||
break;
|
||||
diff -Naur retroarch.git/menu/menu_setting.c retroarch.patch/menu/menu_setting.c
|
||||
--- retroarch.git/menu/menu_setting.c 2016-08-23 13:31:16.101569388 +0200
|
||||
+++ retroarch.patch/menu/menu_setting.c 2016-08-23 13:38:46.681404387 +0200
|
||||
@@ -3661,6 +3661,16 @@
|
||||
systemd_service_toggle(LAKKA_BLUETOOTH_PATH, (char*)"bluetooth.service",
|
||||
enable);
|
||||
}
|
||||
+
|
||||
+static void connect_enable_toggle_change_handler(void *data)
|
||||
+{
|
||||
+ bool enable = false;
|
||||
+ settings_t *settings = config_get_ptr();
|
||||
+ if (settings && settings->connect_enable)
|
||||
+ fclose(fopen(LAKKA_CONNECT_PATH, "w"));
|
||||
+ else
|
||||
+ remove(LAKKA_CONNECT_PATH);
|
||||
+}
|
||||
#endif
|
||||
|
||||
enum settings_list_type
|
||||
@@ -7729,6 +7739,23 @@
|
||||
(*list)[list_info->index - 1].change_handler = bluetooth_enable_toggle_change_handler;
|
||||
menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_BLUETOOTH_ENABLE);
|
||||
|
||||
+ CONFIG_BOOL(
|
||||
+ list, list_info,
|
||||
+ &settings->connect_enable,
|
||||
+ msg_hash_to_str(MENU_ENUM_LABEL_CONNECT_ENABLE),
|
||||
+ msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CONNECT_ENABLE),
|
||||
+ true,
|
||||
+ msg_hash_to_str(MENU_ENUM_LABEL_VALUE_OFF),
|
||||
+ msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ON),
|
||||
+ &group_info,
|
||||
+ &subgroup_info,
|
||||
+ parent_group,
|
||||
+ general_write_handler,
|
||||
+ general_read_handler,
|
||||
+ SD_FLAG_NONE);
|
||||
+ (*list)[list_info->index - 1].change_handler = connect_enable_toggle_change_handler;
|
||||
+ menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_CONNECT_ENABLE);
|
||||
+
|
||||
END_SUB_GROUP(list, list_info, parent_group);
|
||||
END_GROUP(list, list_info, parent_group);
|
||||
#endif
|
||||
diff -Naur retroarch.git/msg_hash.h retroarch.patch/msg_hash.h
|
||||
--- retroarch.git/msg_hash.h 2016-08-23 13:31:23.869842459 +0200
|
||||
+++ retroarch.patch/msg_hash.h 2016-08-23 13:42:08.852506833 +0200
|
||||
@@ -1034,6 +1034,8 @@
|
||||
MENU_ENUM_LABEL_VALUE_SAMBA_ENABLE,
|
||||
MENU_ENUM_LABEL_BLUETOOTH_ENABLE,
|
||||
MENU_ENUM_LABEL_VALUE_BLUETOOTH_ENABLE,
|
||||
+ MENU_ENUM_LABEL_CONNECT_ENABLE,
|
||||
+ MENU_ENUM_LABEL_VALUE_CONNECT_ENABLE,
|
||||
MENU_ENUM_LABEL_NETPLAY_CLIENT_SWAP_INPUT,
|
||||
MENU_ENUM_LABEL_VALUE_NETPLAY_CLIENT_SWAP_INPUT,
|
||||
MENU_ENUM_LABEL_NETPLAY_DELAY_FRAMES,
|
||||
@@ -0,0 +1,21 @@
|
||||
diff --git a/command.c b/command.c
|
||||
index 921d035..26e4ce0 100644
|
||||
--- a/command.c
|
||||
+++ b/command.c
|
||||
@@ -2278,6 +2278,7 @@ bool command_event(enum event_command cmd, void *data)
|
||||
case CMD_EVENT_SHUTDOWN:
|
||||
#if defined(__linux__) && !defined(ANDROID)
|
||||
runloop_msg_queue_push("Shutting down...", 1, 180, true);
|
||||
+ command_event(CMD_EVENT_MENU_SAVE_CURRENT_CONFIG, NULL);
|
||||
command_event(CMD_EVENT_QUIT, NULL);
|
||||
system("shutdown -P now");
|
||||
#endif
|
||||
@@ -2285,6 +2286,7 @@ bool command_event(enum event_command cmd, void *data)
|
||||
case CMD_EVENT_REBOOT:
|
||||
#if defined(__linux__) && !defined(ANDROID)
|
||||
runloop_msg_queue_push("Rebooting...", 1, 180, true);
|
||||
+ command_event(CMD_EVENT_MENU_SAVE_CURRENT_CONFIG, NULL);
|
||||
command_event(CMD_EVENT_QUIT, NULL);
|
||||
system("shutdown -r now");
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
diff -Naur retroarch.git/menu/menu_displaylist.c retroarch.patch/menu/menu_displaylist.c
|
||||
--- retroarch.git/menu/menu_displaylist.c 2016-08-27 00:44:35.533114074 +0200
|
||||
+++ retroarch.patch/menu/menu_displaylist.c 2016-08-27 00:46:37.393497089 +0200
|
||||
@@ -2916,11 +2916,11 @@
|
||||
#ifdef HAVE_NETWORKING
|
||||
|
||||
#ifdef HAVE_LAKKA
|
||||
- menu_entries_append_enum(info->list,
|
||||
+/* menu_entries_append_enum(info->list,
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_UPDATE_LAKKA),
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_UPDATE_LAKKA),
|
||||
MENU_ENUM_LABEL_UPDATE_LAKKA,
|
||||
- MENU_SETTING_ACTION, 0, 0);
|
||||
+ MENU_SETTING_ACTION, 0, 0);*/
|
||||
|
||||
menu_entries_append_enum(info->list,
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_THUMBNAILS_UPDATER_LIST),
|
||||
@@ -0,0 +1,5 @@
|
||||
#!/bin/sh
|
||||
|
||||
for i in 5 4 3 2 1 0; do [ -e /dev/snd/pcmC${i}D0p ] && export ALSA_CARD=$i; done
|
||||
|
||||
echo "ALSA_CARD=\"$ALSA_CARD\"" > /run/openelec/retroarch.conf
|
||||
@@ -9,6 +9,8 @@ Environment=DISPLAY=:0.0
|
||||
Environment=SDL_MOUSE_RELATIVE=0
|
||||
Environment=FB_MULTI_BUFFER=2
|
||||
Environment=HOME=/storage
|
||||
EnvironmentFile=-/run/openelec/retroarch.conf
|
||||
ExecStartPre=-/usr/lib/retroarch/retroarch-config
|
||||
ExecStart=/usr/bin/retroarch
|
||||
# keep KillMode=process unless there is no good reason to switch to cgroup
|
||||
KillMode=process
|
||||
|
||||
Loaded 100 of 445 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user