Lakka越玩越以为强大。若是要是能本身修改一下代码,实现自定义的一些操做就更好了。还能够修复字体文件,修复在部分机器上自动更换Mac地址致使ip变化的问题。node
因此咱们来尝试编译这个系统。这篇文章几乎是用个人血泪史完成的,大量重复的编译失败,解决了无数问题。你们 且看且珍惜。python
1. 安装 ubuntu 64bit (本文基于16.04 LTS 和Lakka 2.1源码)并用虚拟机安装。必定要注意,硬盘分配必定要设置一个大容量硬盘,默认的动态配置只有8G,结果编译后会出现空间不足的问题。不行就固定分配个80G大小。 (单项目[project = xxx]编译完成大概须要25G的空间,建议不要所有编译,选1,2个就好了, 若是全编译至少要分配个几百个G空间)还要分配个大内存,我在编译时候出来了一些莫名其妙的错误没法解决,后来大量google才发现是内存问题,建议直接分配4G。(有次是停了虚拟机从新分配内存,竟然致使没法启动......)linux
df -hgit
2. 更改root密码并激活github
sudo passwd root
sudo passwd -u rootchrome
3.新建文件并激活root的桌面登陆ubuntu
sudo -i
nano /etc/lightdm/lightdm.confsession
[SeatDefaults] greeter-session=unity-greeter user-session=ubuntu greeter-show-manual-login=true
从新启动 就能够用root 帐号登陆了。socket
4. 安装gitide
sudo apt-get update
sudo apt-get install git-all
5. clone 代码
git clone https://github.com/libretro/Lakka-LibreELEC
参考文献:
http://www.lakka.tv/doc/Compiling-Lakka/
6.编译时间过长,关闭屏保和休眠
sudo apt-get install caffeine
若是出现 could not get lock /var/lib/dpkg/lock -open 的错误,那么直接用root帐号删掉 这个文件
sudo rm- R /var/lib/dpkg/lock
安装好后执行 caffeine Indicator, 而后再右上角任务栏小图标,右键选择Active便可。
7. 修改build_all.sh 文件 就能够只编译本身想要的东西了。
执行编译操做:sh build_all.sh
8. 若是遇到错误:Failed to connect to socket /com/ubuntu/upstart
能够根据提示找到当前安装出错的程序,并手动从新安装。 好比:脚本自动安装runit程序时候出现错误
(1)sudo dpkg -l | grep upstart (执行这个命令查看是否安装了系统upstart)
(2)sudo dpkg -l | grep fgetty (a dependency of runit, command should return 1 line shown below)
若是(1) 返回了信息,那么须要删除已经安装的 upstart
sudo apt-get remove --purge upstart
若是(2)返回了信息,那么不须要作任何事情,若是没有返回信息,则须要安装fgetty
sudo apt-get install fgetty
(3)删除安装的不彻底的程序。好比要删除 runit程序
sudo apt-get remove --purge runit
(4)最后从新手动安装 sudo apt-get install runit
参考连接:https://github.com/huginn/huginn/issues/1949
9. 遇到如下错误:
Parallel mksquashfs: Using 4 processors Creating 4.0 filesystem on /home/john/Dev/lakka/Lakka-LibreELEC/target/Lakka-RPi2.arm-8.1.2.system, block size 131072. [===========================================================/] 23953/23953 100% Exportable Squashfs 4.0 filesystem, lzo compressed, data block size 131072 compressed data, compressed metadata, compressed fragments, no xattrs duplicates are removed Filesystem size 298577.08 Kbytes (291.58 Mbytes) 47.52% of uncompressed filesystem size (628263.85 Kbytes) Inode table size 259819 bytes (253.73 Kbytes) 36.41% of uncompressed inode table size (713590 bytes) Directory table size 340430 bytes (332.45 Kbytes) 41.40% of uncompressed directory table size (822336 bytes) Number of duplicate files found 1447 Number of inodes 21494 Number of files 20271 Number of fragments 990 Number of symbolic links 521 Number of device nodes 0 Number of fifo nodes 0 Number of socket nodes 0 Number of directories 702 Number of ids (unique uids + gids) 2 Number of uids 1 root (0) Number of gids 2 root (0) unknown (81) Makefile:12: recipe for target 'image' failed
须要安装u-boot-tools
sudo apt install u-boot-tools
通过长达8小时以上的编译,终于,终于,成功了!!!!这样能够本身来改代码,改界面,或者移植到新的平台上,想一想就好好激动呢!
其余问题:
1.若是要编译Orange PI 还须要安装如下包:
sudo apt-get install swig libpython-dev
sudo apt-get install libssl-dev
sudo apt-get install device-tree-compiler
2.若是重启后没法进入图形界面,能够尝试一下命令从新安装:
$sudo apt-get remove --purge nvidia-*
$sudo apt-get install ubuntu-desktop
3.若是遇到相似这样的错误: pathspec 'b81ef53' did not match any file(s) known to git.
说明当前的URl已经被开源项目给删除了,找不到了。解决办法就是找到对应的包的mk文件,修改成最新版可以git到的地址。
好比: Retroarch-assets 项目
(1). 找到 Lakka_LibreELEC\Packages\Libretro\retroarch-assets\Package.mk 文件修改 压缩包文件名为一个真实存在的URL就好了,下面的步骤为系统自动过程。
(2). 这个时候压缩文件会被下载到 Lakka-LibreELEC\sources\retroarch-assets\ (能够在这一步本身建立或者下载压缩文件)
(3). 而后文件会被自动解压缩Lakka_LibreELEC\Build.Lakka-xxxxxx2.1-devel\retroarch-assets-xxxxxxx 目录下
4. Exiting with failure status due to previous errors
看最后一次出错的包,而后使用上一步中一样的方法升级包到一个合适的版本。
5.若是提示什么什么目录没找到,文件没找到,那么能够手动拷贝文件或目录到错误提示的地方。
6.一些文件:
驱动目录:\packages\linux-drivers
默认字体:\build.lakka-xxxxxxxx\image\system\usr\share\retroarch-assets\xmb\monochrome\font.ttf (真实指向 /usr/share/retroarch-assets/xmb/monochrome/font.ttf) 注意由于image目录每次都会从新生成一边,因此直接修改这里的字体是无效的。
应该要修改:\build.lakka-xxxxxxxx\retroarch-assets-xxxxxx\.install_pkg\usr\share\retroarch-assets\xmb\monochrome\font.ttf
对于隐藏文件夹,能够按Ctrol+H显示出来。能够经过检查\build.lakka-xxxxxxxx\image\system目录下的文件是否更新来判断替换是否成功。
配置文件:\build.lakka-xxxxxxxx\retroarch-xxxxxxx\retroarch.cfg
(修正左下角黄色字体:video_font_path =/usr/share/retroarch-assets/xmb/monochrome/font.ttf)
MAC地址:\packages\sysutils\systemd\scripts\systemd-machine-id-setup