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