樹莓派研究筆記(8)-- 編譯lakka v2.1源碼


Lakka越玩越覺得強大。如果要是能自己修改一下代碼,實現自定義的一些操作就更好了。還可以修復字體文件,修復在部分機器上自動更換Mac地址導致ip變化的問題。

所以我們來嘗試編譯這個系統。這篇文章幾乎是用我的血淚史完成的,大量重復的編譯失敗,解決了無數問題。大家 且看且珍惜。

1. 安裝 ubuntu 64bit (本文基於16.04 LTS 和Lakka 2.1源碼)並用虛擬機安裝。一定要注意,硬盤分配一定要設置一個大容量硬盤,默認的動態配置只有8G,結果編譯后會出現空間不足的問題。不行就固定分配個80G大小。 (單項目[project = xxx]編譯完成大概需要25G的空間,建議不要全部編譯,選1,2個就行了, 如果全編譯至少要分配個幾百個G空間)還要分配個大內存,我在編譯時候出來了一些莫名其妙的錯誤無法解決,后來大量google才發現是內存問題,建議直接分配4G。(有次是停了虛擬機重新分配內存,居然導致無法啟動......)

df -h

2. 更改root密碼並激活

sudo passwd root
sudo passwd -u root

3.新建文件並激活root的桌面登錄

sudo -i
nano /etc/lightdm/lightdm.conf

[SeatDefaults] greeter-session=unity-greeter user-session=ubuntu greeter-show-manual-login=true 

重新啟動 就可以用root 賬號登錄了。

4. 安裝git

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM